diff options
233 files changed, 8950 insertions, 4415 deletions
diff --git a/.guix-authorizations b/.guix-authorizations index b42448449c..24db547d98 100644 --- a/.guix-authorizations +++ b/.guix-authorizations @@ -90,6 +90,9 @@ (;; primary: "B68B DF22 73F9 DA0E 63C1 8A32 515B F416 9242 D600" "C699 ED09 E51B CE89 FD1D A078 AAC7 E891 896B 568A" (name "pgarlick")) + (;; primary: "7E9F 5BF6 1680 4367 127B 7A87 F9E6 9FB8 5A75 54F1" + "A420 7B56 C255 109F 2CB3 157E 4990 97AE 5EA8 15D9" + (name "podiki")) ("CD2D 5EAA A98C CB37 DA91 D6B0 5F58 1664 7F8B E551" (name "raghavgururajan")) ("BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC" @@ -80,9 +80,28 @@ Please send Guix bug reports to bug-guix@gnu.org. *** The init RAM disk honors more arguments—e.g. ‘root’ and ‘rootflags’ *** ‘guix system image’ can now generate WSL images *** The mcron task scheduler logs now contain the jobs exit statuses +*** Chromium extensions are now built in a deterministic fashion +*** The ‘rsync’ service lets you specify individual “modules” +*** New services + +anonip, bitmask, fail2ban, gitile, greetd, jami, lightdm, log-cleanup, +nar-herder, opendht, rasdaemon, samba, seatd, strongswan, wsdd + +*** 5311 new packages + +*** 6573 package updates + +Noteworthy updates: +bash 5.1.8, binutils 2.37, clojure 1.11.1, cups 2.3.3op2, emacs 28.2, +enlightenment 0.25.4, gcc-toolchain 12.2.0, gdb 12.1, ghc 8.10.7, +gimp 2.10.32, glibc 2.33, gnome 42.4, gnupg 2.2.32, go 1.19.1, guile 3.0.8, +icecat 102.5.0-guix0-preview1, icedtea 3.19.0, inkscape 1.2.1, julia 1.6.7, +libreoffice 7.4.3.2, linux-libre 6.0.10, ocaml 4.14.0, octave 7.2.0, +openjdk 18, perl 5.34.0, python2 2.7.18, python 3.9.9, racket 8.7, +rust 1.60.0, r 4.2.2, sbcl 2.2.10, shepherd 0.9.3, xorg-server 21.1.4 ** Programming interfaces -*** Package input fields can now plain package lists +*** Package input fields can now be plain package lists *** G-expressions can now be used in build phases *** New ‘modify-inputs’ macro to ease customizing a list of package inputs *** New ‘this-package-input’ and ‘this-package-native-input’ macros @@ -92,7 +111,7 @@ Please send Guix bug reports to bug-guix@gnu.org. *** ‘texlive-union’ is now deprecated in favor of ‘texlive-updmap.cfg’ *** New (guix cpu) module *** New (guix least-authority) module -*** New (guix plaform) module +*** New (guix platform) module *** New (guix read-print) module It provides a comment-preserving reader and a comment-preserving @@ -103,11 +122,14 @@ pretty-printer smarter than (ice-9 pretty-print). This build system lets you build Guix instances from channel specifications, similar to how 'guix time-machine' would do it, as regular packages. +*** New ‘pyproject-build-system’ + +This is an extension of ‘python-build-system’ with support for PEP-517 and +‘pyproject.toml’ files. It may eventually get merged back into +‘python-build-system’. + *** New ‘elm-build-system’ *** New ‘rebar-build-system’ -*** New services -anonip, bitmask, fail2ban, gitile, greetd, jami, lightdm, log-cleanup, -nar-herder, opendht, rasdaemon, samba, seatd, strongswan, wsdd ** Noteworthy bug fixes *** Fall back to Software Heritage when cloning a channel diff --git a/doc/contributing.texi b/doc/contributing.texi index 6a8ffd6524..efc2a05cce 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -1514,7 +1514,7 @@ that we can send the rest of the patches to. @example $ git send-email outgoing/0000-cover-letter.patch -a \ - --to=guix-patches@@debbugs.gnu.org \ + --to=guix-patches@@gnu.org \ $(etc/teams.scm cc-members ...) $ rm outgoing/0000-cover-letter.patch # we don't want to resend it! @end example diff --git a/doc/guix.texi b/doc/guix.texi index aacf748838..053cd1ad41 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -10,8 +10,8 @@ @include version.texi @c Identifier of the OpenPGP key used to sign tarballs and such. -@set OPENPGP-SIGNING-KEY-ID 27D586A4F8900854329FF09F1260E46482E63562 -@set OPENPGP-SIGNING-KEY-URL https://sv.gnu.org/people/viewgpg.php?user_id=127547 +@set OPENPGP-SIGNING-KEY-ID 3CE464558A84FDC69DB40CFB090B11993D9AEBB5 +@set OPENPGP-SIGNING-KEY-URL https://sv.gnu.org/people/viewgpg.php?user_id=15145 @c Base URL for downloads. @set BASE-URL https://ftp.gnu.org/gnu/guix @@ -1522,8 +1522,10 @@ To install the policy run this command as root: semodule -i etc/guix-daemon.cil @end example -Then relabel the file system with @code{restorecon} or by a different -mechanism provided by your system. +Then relabel the file system with @code{restorecon -vR /} or by a +different mechanism provided by your system. You may need to remount +@file{/gnu/store} to make it writable first, e.g. with @code{mount -o +remount,rw /gnu/store}. Once the policy is installed, the file system has been relabeled, and the daemon has been restarted, it should be running in the @@ -1556,7 +1558,7 @@ but it would be preferable to define socket rules for only this label. @code{guix gc} cannot access arbitrary links to profiles. By design, the file label of the destination of a symlink is independent of the file label of the link itself. Although all profiles under -$localstatedir are labelled, the links to these profiles inherit the +@file{$localstatedir} are labelled, the links to these profiles inherit the label of the directory they are in. For links in the user’s home directory this will be @code{user_home_t}. But for links from the root user’s home directory, or @file{/tmp}, or the HTTP server’s working @@ -11706,8 +11708,7 @@ This is the declarative counterpart of @code{text-file}. @end deffn @deffn {Scheme Procedure} computed-file @var{name} @var{gexp} @ - [#:local-build? #t] - [#:options '()] + [#:local-build? #t] [#:options '()] Return an object representing the store item @var{name}, a file or directory computed by @var{gexp}. When @var{local-build?} is true (the default), the derivation is built locally. @var{options} is a list of @@ -13933,6 +13934,25 @@ gnu/packages/multiprecision.scm:40:12: 6.1.2 is already the latest version of gm @end table +If for some reason you don't want to update to the latest version, you +can update to a specific version by appending an equal sign and the +desired version number to the package specification. Note that not all +updaters support this; an error is reported when an updater cannot +refresh to the specified version. + +@example +$ guix refresh trytond-party +gnu/packages/guile.scm:392:2: guile would be upgraded from 3.0.3 to 3.0.5 +$ guix refresh -u guile=3.0.4 +@dots{} +gnu/packages/guile.scm:392:2: guile: updating from version 3.0.3 to version 3.0.4... +@dots{} +$ guix refresh -u guile@@2.0=2.0.12 +@dots{} +gnu/packages/guile.scm:147:2: guile: updating from version 2.0.10 to version 2.0.12... +@dots{} +@end example + Sometimes the upstream name differs from the package name used in Guix, and @command{guix refresh} needs a little help. Most updaters honor the @code{upstream-name} property in package definitions, which can be used @@ -17060,7 +17080,7 @@ I/O faster, and thus paging out unused portions of program memory will expand the RAM available for such caching. For a more detailed description of how memory is managed from the -viewpoint of a monolithic kernel, @xref{Memory +viewpoint of a monolithic kernel, @pxref{Memory Concepts,,, libc, The GNU C Library Reference Manual}. The Linux kernel has support for swap partitions and swap files: the @@ -23237,8 +23257,6 @@ manages all the Bluetooth devices and provides a number of D-Bus interfaces. When AUTO-ENABLE? is true, the bluetooth controller is powered automatically at boot, which can be useful when using a bluetooth keyboard or mouse. - -Users need to be in the @code{lp} group to access the D-Bus service. @end deffn @deffn {Scheme Variable} bluetooth-service-type @@ -25730,6 +25748,11 @@ Data type representing the configuration of opensmtpd. @item @code{package} (default: @var{opensmtpd}) Package object of the OpenSMTPD SMTP server. +@item @code{shepherd-requirement} (default: @code{'()}) +This option can be used to provide a list of symbols naming Shepherd services +that this service will depend on, such as @code{'networking} +if you want to configure OpenSMTPD to listen on non-loopback interfaces. + @item @code{config-file} (default: @code{%default-opensmtpd-config-file}) File-like object of the OpenSMTPD configuration file to use. By default it listens on the loopback network interface, and allows for mail from @@ -28453,6 +28476,8 @@ Local accounts with lower values will silently fail to authenticate. @node LDAP Services @subsection LDAP Services @cindex LDAP + +@subsubheading Authentication against LDAP with nslcd @cindex nslcd, LDAP service The @code{(gnu services authentication)} module provides the @@ -28929,6 +28954,189 @@ Defaults to @samp{()}. @c %end of generated documentation for nslcd-configuration +@subsubheading LDAP Directory Server +@cindex LDAP, server + +The @code{(gnu services ldap)} module provides the +@code{directory-server-service-type}, which can be used to create and +launch an LDAP server instance. + +Here is an example configuration of the +@code{directory-server-service-type}: + +@lisp +(use-service-modules ldap) + +... +(operating-system + ... + (services + (cons + (service directory-server-service-type + (directory-server-instance-configuration + (slapd + (slapd-configuration + (root-password "@{PBKDF2_SHA256@}AAAgAG@dots{}ABSOLUTELYSECRET"))))) + %base-services))) +@end lisp + +The root password should be generated with the @command{pwdhash} utility +that is provided by the @code{389-ds-base} package. + +Note that changes to the directory server configuration will not be +applied to existing instances. You will need to back up and restore +server data manually. Only new directory server instances will be +created upon system reconfiguration. + +@c %start of generated documentation for directory-server-instance-configuration +@deftp {Data Type} directory-server-instance-configuration +Available @code{directory-server-instance-configuration} fields are: + +@table @asis +@item @code{package} (default: @code{389-ds-base}) (type: file-like) +The @code{389-ds-base} package. + +@item @code{config-version} (default: @code{2}) (type: number) +Sets the format version of the configuration file. To use the INF file +with @command{dscreate}, this parameter must be 2. + +@item @code{full-machine-name} (default: @code{"localhost"}) (type: string) +Sets the fully qualified hostname (FQDN) of this system. + +@item @code{selinux} (default: @code{#false}) (type: boolean) +Enables SELinux detection and integration during the installation of +this instance. If set to @code{#true}, @command{dscreate} auto-detects +whether SELinux is enabled. + +@item @code{strict-host-checking} (default: @code{#true}) (type: boolean) +Sets whether the server verifies the forward and reverse record set in +the @code{full-machine-name} parameter. When installing this instance with +GSSAPI authentication behind a load balancer, set this parameter to +@code{#false}. + +@item @code{systemd} (default: @code{#false}) (type: boolean) +Enables systemd platform features. If set to @code{#true}, +@command{dscreate} auto-detects whether systemd is installed. + +@item @code{slapd} (type: slapd-configuration) +Configuration of slapd. + +@deftp {Data Type} slapd-configuration +Available @code{slapd-configuration} fields are: + +@table @asis +@item @code{instance-name} (default: @code{"localhost"}) (type: string) +Sets the name of the instance. You can refer to this value in other +parameters of this INF file using the @code{@{instance_name@}} variable. +Note that this name cannot be changed after the installation! + +@item @code{user} (default: @code{"dirsrv"}) (type: string) +Sets the user name the ns-slapd process will use after the service +started. + +@item @code{group} (default: @code{"dirsrv"}) (type: string) +Sets the group name the ns-slapd process will use after the service +started. + +@item @code{port} (default: @code{389}) (type: number) +Sets the TCP port the instance uses for LDAP connections. + +@item @code{secure-port} (default: @code{636}) (type: number) +Sets the TCP port the instance uses for TLS-secured LDAP connections +(LDAPS). + +@item @code{root-dn} (default: @code{"cn=Directory Manager"}) (type: string) +Sets the @dfn{Distinquished Name} (DN) of the administrator account for this +instance. + +@item @code{root-password} (default: @code{"@{invalid@}YOU-SHOULD-CHANGE-THIS"}) (type: string) +Sets the password of the account specified in the @code{root-dn} +parameter. You can either set this parameter to a plain text password +@command{dscreate} hashes during the installation or to a +"@{algorithm@}hash" string generated by the @command{pwdhash} utility. +Note that setting a plain text password can be a security risk if +unprivileged users can read this INF file! + +@item @code{self-sign-cert} (default: @code{#true}) (type: boolean) +Sets whether the setup creates a self-signed certificate and enables TLS +encryption during the installation. This is not suitable for +production, but it enables administrators to use TLS right after the +installation. You can replace the self-signed certificate with a +certificate issued by a certificate authority. + +@item @code{self-sign-cert-valid-months} (default: @code{24}) (type: number) +Set the number of months the issued self-signed certificate will be +valid. + +@item @code{backup-dir} (default: @code{"/var/lib/dirsrv/slapd-@{instance_name@}/bak"}) (type: string) +Set the backup directory of the instance. + +@item @code{cert-dir} (default: @code{"/etc/dirsrv/slapd-@{instance_name@}"}) (type: string) +Sets the directory of the instance's Network Security Services (NSS) +database. + +@item @code{config-dir} (default: @code{"/etc/dirsrv/slapd-@{instance_name@}"}) (type: string) +Sets the configuration directory of the instance. + +@item @code{db-dir} (default: @code{"/var/lib/dirsrv/slapd-@{instance_name@}/db"}) (type: string) +Sets the database directory of the instance. + +@item @code{initconfig-dir} (default: @code{"/etc/dirsrv/registry"}) (type: string) +Sets the directory of the operating system's rc configuration directory. + +@item @code{ldif-dir} (default: @code{"/var/lib/dirsrv/slapd-@{instance_name@}/ldif"}) (type: string) +Sets the LDIF export and import directory of the instance. + +@item @code{lock-dir} (default: @code{"/var/lock/dirsrv/slapd-@{instance_name@}"}) (type: string) +Sets the lock directory of the instance. + +@item @code{log-dir} (default: @code{"/var/log/dirsrv/slapd-@{instance_name@}"}) (type: string) +Sets the log directory of the instance. + +@item @code{run-dir} (default: @code{"/run/dirsrv"}) (type: string) +Sets PID directory of the instance. + +@item @code{schema-dir} (default: @code{"/etc/dirsrv/slapd-@{instance_name@}/schema"}) (type: string) +Sets schema directory of the instance. + +@item @code{tmp-dir} (default: @code{"/tmp"}) (type: string) +Sets the temporary directory of the instance. +@end table +@end deftp + +@item @code{backend-userroot} (type: backend-userroot-configuration) +Configuration of the userroot backend. + +@deftp {Data Type} backend-userroot-configuration +Available @code{backend-userroot-configuration} fields are: + +@table @asis +@item @code{create-suffix-entry?} (default: @code{#false}) (type: boolean) +Set this parameter to @code{#true} to create a generic root node entry +for the suffix in the database. + +@item @code{require-index?} (default: @code{#false}) (type: boolean) +Set this parameter to @code{#true} to refuse unindexed searches in this +database. + +@item @code{sample-entries} (default: @code{"no"}) (type: string) +Set this parameter to @code{"yes"} to add latest version of sample +entries to this database. Or, use @code{"001003006"} to use the 1.3.6 +version sample entries. Use this option, for example, to create a +database for testing purposes. + +@item @code{suffix} (type: maybe-string) +Sets the root suffix stored in this database. If you do not set the +suffix attribute the install process will not create the backend/suffix. +You can also create multiple backends/suffixes by duplicating this +section. + +@end table +@end deftp +@end table +@end deftp +@c end of generated documentation for directory-server + @node Web Services @subsection Web Services @@ -30820,7 +31028,7 @@ cache.size = 100 * MB ")))) @end lisp -For more information, refer its @url{https://knot-resolver.readthedocs.org/en/stable/daemon.html#configuration, manual}. +For more information, refer its @url{https://knot-resolver.readthedocs.io/en/stable/config-overview.html, manual}. @end deffn @deftp {Data Type} knot-resolver-configuration @@ -31579,6 +31787,10 @@ The optional endpoint for the peer, such as @item @code{public-key} The peer public-key represented as a base64 string. +@item @code{preshared-key} (default: @code{#f}) +An optional pre-shared key file for this peer. The given file will not +be autogenerated. + @item @code{allowed-ips} A list of IP addresses from which incoming traffic for this peer is allowed and to which incoming traffic for this peer is directed. @@ -34065,6 +34277,10 @@ To override a setting, you must use the configuration type for that service: @item @code{file-storage-paths} (default: @code{'()}) List of allowed directories for file storage backend. +@item @code{hooks} (default: @code{#f}) +When set, this should be a file-like object containing a directory with +@url{https://docs.ganeti.org/docs/ganeti/3.0/html/hooks.html,cluster execution hooks}. + @item @code{os} (default: @code{%default-ganeti-os}) List of @code{<ganeti-os>} records. @end table @@ -37209,6 +37425,15 @@ The Nix package to use. @item @code{sandbox} (default: @code{#t}) Specifies whether builds are sandboxed by default. +@item @code{build-directory} (default: @code{"/tmp"}) +The directory where build directory are stored during builds. +This is useful to change if, for example, the default location does not +have enough space to hold build trees for big packages. + +This is similar to setting the @env{TMPDIR} environment variable for +@command{guix-daemon}. @ref{Build Environment Setup, @env{TMPDIR}}, +for more info. + @item @code{build-sandbox-items} (default: @code{'()}) This is a list of strings or objects appended to the @code{build-sandbox-items} field of the configuration file. @@ -39255,7 +39480,7 @@ $ qemu-system-x86_64 \ -nic user,model=virtio-net-pci \ -enable-kvm -m 2048 \ -device virtio-blk,drive=myhd \ - -drive if=none,file=/tmp/qemu-image,id=myhd + -drive if=none,file=guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2,id=myhd @end example Here is what each of these options means: @@ -39291,8 +39516,9 @@ better performance than if it were emulating a complete disk drive. See the QEMU and KVM documentation for more info. @item -drive if=none,file=/tmp/qemu-image,id=myhd -Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing -store of the ``myhd'' drive. +Use our QCOW image, the +@file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as +the backing store of the ``myhd'' drive. @end table The default @command{run-vm.sh} script that is returned by an invocation of @@ -39521,11 +39747,10 @@ The service type for an @emph{extensible} service looks like this: (compose concatenate) ;concatenate the list of rules (extend (lambda (config rules) - (match config - (($ <udev-configuration> udev initial-rules) - (udev-configuration - (udev udev) ;the udev package to use - (rules (append initial-rules rules))))))))) + (udev-configuration + (inherit config) + (rules (append (udev-configuration-rules config) + rules))))))) @end lisp This is the service type for the diff --git a/doc/htmlxref.cnf b/doc/htmlxref.cnf index 21efbe2ddc..d8a7aa12c9 100644 --- a/doc/htmlxref.cnf +++ b/doc/htmlxref.cnf @@ -1,7 +1,7 @@ # htmlxref.cnf - reference file for free Texinfo manuals on the web. # Modified by Ludovic Courtès <ludo@gnu.org> for the GNU Guix manual. -htmlxrefversion=2022-08-04.13; # UTC +htmlxrefversion=2022-12-18.15; # UTC # Copyright 2010-2020, 2022 Free Software Foundation, Inc. # @@ -409,6 +409,8 @@ GUILE_GNOME = ${GS}/guile-gnome/docs guile-gtk node ${GS}/guile-gtk/docs/guile-gtk/ +guile-netlink mono https://git.lepiller.eu/guile-netlink/manual/manual.html + guile-rpc mono ${GS}/guile-rpc/manual/guile-rpc.html guile-rpc node ${GS}/guile-rpc/manual/html_node/ @@ -420,6 +422,8 @@ GUIX = ${GUIX_ROOT}/manual guix.es node ${GUIX}/es/html_node/ guix.fr mono ${GUIX}/fr/guix.fr.html guix.fr node ${GUIX}/fr/html_node/ + guix.pt_BR mono ${GUIX}/pt-br/guix.pt_BR.html + guix.pt_BR node ${GUIX}/pt-br/html_node/ guix.ru mono ${GUIX}/ru/guix.ru.html guix.ru node ${GUIX}/ru/html_node/ guix.zh_CN mono ${GUIX}/zh-cn/guix.zh_CN.html @@ -428,10 +432,12 @@ GUIX = ${GUIX_ROOT}/manual guix node ${GUIX}/en/html_node/ GUIX_COOKBOOK = ${GUIX_ROOT}/cookbook - guix-cookbook.de mono ${GUIX_COOKBOOK}/de/guix-cookbook.html + guix-cookbook.de mono ${GUIX_COOKBOOK}/de/guix-cookbook.de.html guix-cookbook.de node ${GUIX_COOKBOOK}/de/html_node/ - guix-cookbook.fr mono ${GUIX_COOKBOOK}/fr/guix-cookbook.html + guix-cookbook.fr mono ${GUIX_COOKBOOK}/fr/guix-cookbook.fr.html guix-cookbook.fr node ${GUIX_COOKBOOK}/fr/html_node/ + guix-cookbook.sk mono ${GUIX_COOKBOOK}/sk/guix-cookbook.sk.html + guix-cookbook.sk node ${GUIX_COOKBOOK}/sk/html_node/ guix-cookbook mono ${GUIX_COOKBOOK}/en/guix-cookbook.html guix-cookbook node ${GUIX_COOKBOOK}/en/html_node/ diff --git a/etc/guix-daemon.cil.in b/etc/guix-daemon.cil.in index f4767ff666..f55ef226c1 100644 --- a/etc/guix-daemon.cil.in +++ b/etc/guix-daemon.cil.in @@ -1,6 +1,6 @@ ; -*- lisp -*- ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2018, 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020 Daniel Brooks <db48x@db48x.net> ;;; Copyright © 2020 Marius Bakke <marius@gnu.org> ;;; @@ -37,11 +37,13 @@ (block guix_daemon ;; Require existing types + (typeattributeset cil_gen_require domain) (typeattributeset cil_gen_require init_t) - (typeattributeset cil_gen_require tmp_t) + (typeattributeset cil_gen_require init_var_run_t) (typeattributeset cil_gen_require nscd_var_run_t) + (typeattributeset cil_gen_require system_dbusd_var_run_t) + (typeattributeset cil_gen_require tmp_t) (typeattributeset cil_gen_require var_log_t) - (typeattributeset cil_gen_require domain) ;; Declare own types (type guix_daemon_t) @@ -92,6 +94,9 @@ (allow init_t guix_store_content_t (file (open read execute))) + (allow init_t + guix_profiles_t + (dir (setattr))) ;; guix-daemon needs to know the names of users (allow guix_daemon_t @@ -284,6 +289,14 @@ guix_store_content_t (sock_file (create getattr setattr unlink write))) + ;; Access to run state directories + (allow guix_daemon_t + system_dbusd_var_run_t + (dir (search))) + (allow guix_daemon_t + init_var_run_t + (dir (search))) + ;; Access to configuration files and directories (allow guix_daemon_t guix_daemon_conf_t @@ -447,6 +460,8 @@ any (unconfined_u object_r guix_store_content_t (low low))) (filecon "@prefix@/bin/guix-daemon" file (system_u object_r guix_daemon_exec_t (low low))) + (filecon "@guix_localstatedir@/guix/profiles/per-user/[^/]+/current-guix/bin/guix-daemon" + file (system_u object_r guix_daemon_exec_t (low low))) (filecon "@storedir@/.+-(guix-.+|profile)/bin/guix-daemon" file (system_u object_r guix_daemon_exec_t (low low))) (filecon "@storedir@/[a-z0-9]+-guix-daemon" diff --git a/etc/guix-install.sh b/etc/guix-install.sh index fb9006b3e2..3ce9affc06 100755 --- a/etc/guix-install.sh +++ b/etc/guix-install.sh @@ -53,6 +53,7 @@ REQUIRE=( "chmod" "uname" "groupadd" + "useradd" "tail" "tr" "xz" @@ -120,10 +121,8 @@ chk_require() command -v "$c" &>/dev/null || warn+=("$c") done - [ "${#warn}" -ne 0 ] && - { _err "${ERR}Missing commands: ${warn[*]}."; - return 1; } - + [ "${#warn}" -ne 0 ] && die "Missing commands: ${warn[*]}." + _msg "${PAS}verification of required commands completed" } @@ -615,7 +614,10 @@ https://www.gnu.org/software/guix/ EOF # Don't use ‘read -p’ here! It won't display when run non-interactively. echo -n "Press return to continue..."$'\r' - read -r char + if ! read -r char; then + echo + die "Can't read standard input. Hint: don't pipe scripts into a shell." + fi if [ "$char" ]; then echo echo "...that ($char) was not a return!" diff --git a/etc/snippets/tempel/text-mode b/etc/snippets/tempel/text-mode index fd0e95eaa6..1cda91cba0 100644 --- a/etc/snippets/tempel/text-mode +++ b/etc/snippets/tempel/text-mode @@ -1,6 +1,6 @@ -*- mode: lisp-data -*- -text-mode :when (and (fboundp 'git-commit-mode) (git-commit-mode)) +text-mode :when (and (fboundp 'git-commit-mode) git-commit-mode) (add\ "gnu: Add " (p (with-temp-buffer diff --git a/etc/teams.scm.in b/etc/teams.scm.in index 57d4357900..f42a7f6f28 100644 --- a/etc/teams.scm.in +++ b/etc/teams.scm.in @@ -360,6 +360,17 @@ asdf-build-system." "gnu/packages/motti.scm" "guix/build/minetest-build-system.scm"))) +(define-team localization + (team 'localization + #:name "Localization (l10n) team" + #:description + "Localization of your system to specific languages." + #:scope (list "gnu/packages/anthy.scm" + "gnu/packages/fcitx5.scm" + "gnu/packages/fcitx.scm" + "gnu/packages/fonts.scm" + "gnu/packages/ibus.scm"))) + (define-team translations (team 'translations #:name "Translations" @@ -428,6 +439,10 @@ importer." "andreas@enge.fr") science) +(define-member (person "Tobias Geerinckx-Rice" + "me@tobias.gr") + core kernel mentors) + (define-member (person "Björn Höfling" "bjoern.hoefling@bjoernhoefling.de") java) @@ -500,6 +515,10 @@ importer." "rg@raghavgururajan.name") mentors) +(define-member (person "宋文武" + "iyzsong@envs.net") + games localization) + (define (find-team name) (or (hash-ref %teams (string->symbol name)) diff --git a/gnu/bootloader/u-boot.scm b/gnu/bootloader/u-boot.scm index 6cad33b741..de3a43ed70 100644 --- a/gnu/bootloader/u-boot.scm +++ b/gnu/bootloader/u-boot.scm @@ -144,7 +144,7 @@ (define u-boot-beaglebone-black-bootloader (bootloader (inherit u-boot-bootloader) - (package u-boot-am335x-boneblack) + (package u-boot-am335x-evm-boneblack) (disk-image-installer install-beaglebone-black-u-boot))) (define u-boot-allwinner-bootloader diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm index 10c9045740..eea2233563 100644 --- a/gnu/build/activation.scm +++ b/gnu/build/activation.scm @@ -363,9 +363,14 @@ second element is the name it should appear at, such as: "Tell the kernel to look for device firmware under DIRECTORY. This mechanism bypasses udev: it allows Linux to handle firmware loading directly by itself, without having to resort to a \"user helper\"." - (call-with-output-file "/sys/module/firmware_class/parameters/path" - (lambda (port) - (display directory port)))) + + ;; If the kernel was built without firmware loading support, this file + ;; does not exist. Do nothing in that case. + (let ((firmware-path "/sys/module/firmware_class/parameters/path")) + (when (file-exists? firmware-path) + (call-with-output-file firmware-path + (lambda (port) + (display directory port)))))) (define (activate-ptrace-attach) "Allow users to PTRACE_ATTACH their own processes. diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm index e068ffc202..abcf0304c2 100644 --- a/gnu/build/hurd-boot.scm +++ b/gnu/build/hurd-boot.scm @@ -194,7 +194,7 @@ set." ("proc" ("/hurd/procfs" "--stat-mode=444")))) (define devices - '(("dev/full" ("/hurd/null" "--full") #o666) + `(("dev/full" ("/hurd/null" "--full") #o666) ("dev/null" ("/hurd/null") #o666) ("dev/random" ("/hurd/random" "--seed-file" "/var/lib/random-seed") #o644) diff --git a/gnu/build/install.scm b/gnu/build/install.scm index 33a9616c0d..d4982650c1 100644 --- a/gnu/build/install.scm +++ b/gnu/build/install.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013-2020, 2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; @@ -282,12 +282,31 @@ disk." (mount "/.rw-store" (%store-directory) "" MS_MOVE) (rmdir "/.rw-store"))) +(define (umount* directory) + "Unmount DIRECTORY, but retry a few times upon EBUSY." + (let loop ((attempts 5)) + (catch 'system-error + (lambda () + (umount directory)) + (lambda args + (if (and (= EBUSY (system-error-errno args)) + (> attempts 0)) + (begin + (sleep 1) + (loop (- attempts 1))) + (apply throw args)))))) + (define (unmount-cow-store target backing-directory) "Unmount copy-on-write store." (let ((tmp-dir "/remove")) (mkdir-p tmp-dir) (mount (%store-directory) tmp-dir "" MS_MOVE) - (umount tmp-dir) + + ;; We might get EBUSY at this point, possibly because of lingering + ;; processes with open file descriptors. Use 'umount*' to retry upon + ;; EBUSY, leaving a bit of time. See <https://issues.guix.gnu.org/59884>. + (umount* tmp-dir) + (rmdir tmp-dir) (delete-file-recursively (string-append target backing-directory)))) diff --git a/gnu/home/services/xdg.scm b/gnu/home/services/xdg.scm index 865f8b81d7..3007493f85 100644 --- a/gnu/home/services/xdg.scm +++ b/gnu/home/services/xdg.scm @@ -120,22 +120,25 @@ services more consistent.")) home-xdg-base-directories-configuration-fields)) (define (ensure-xdg-base-dirs-on-activation config) - #~(map (lambda (xdg-base-dir-variable) - ((@ (guix build utils) mkdir-p) - (getenv - xdg-base-dir-variable))) - '#$(filter-map - (lambda (field) - (let ((variable - (string-append - "XDG_" - (object->snake-case-string - (configuration-field-name field) 'upper)))) - ;; XDG_RUNTIME_DIR shouldn't be created during activation - ;; and will be provided by elogind or other service. - (and (not (string=? "XDG_RUNTIME_DIR" variable)) - variable))) - home-xdg-base-directories-configuration-fields))) + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (map (lambda (xdg-base-dir-variable) + (mkdir-p + (getenv + xdg-base-dir-variable))) + '#$(filter-map + (lambda (field) + (let ((variable + (string-append + "XDG_" + (object->snake-case-string + (configuration-field-name field) 'upper)))) + ;; XDG_RUNTIME_DIR shouldn't be created during activation + ;; and will be provided by elogind or other service. + (and (not (string=? "XDG_RUNTIME_DIR" variable)) + variable))) + home-xdg-base-directories-configuration-fields))))) (define (last-extension-or-cfg config extensions) "Picks configuration value from last provided extension. If there @@ -245,6 +248,8 @@ pre-populated content.") home-activation-service-type home-xdg-user-directories-activation-service))) (default-value (home-xdg-user-directories-configuration)) + (compose identity) + (extend last-extension-or-cfg) (description "Configure XDG user directories. To disable a directory, point it to the $HOME."))) diff --git a/gnu/installer/final.scm b/gnu/installer/final.scm index 044f79372b..069426a3b8 100644 --- a/gnu/installer/final.scm +++ b/gnu/installer/final.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com> -;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2019, 2020, 2022 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -114,6 +114,8 @@ it can interact with the rest of the system." ;; Catch SIGINT and kill the container process. (sigaction SIGINT (lambda (signum) + ;: FIXME: Use of SIGKILL prevents the dynamic-wind exit handler of + ;; THUNK to run. (false-if-exception (kill pid SIGKILL)))) @@ -196,14 +198,16 @@ or #f. Return #t on success and #f on failure." ;; the loaded cow-store locale files will prevent umounting. (install-locale locale) - ;; Save the database, so that it can be restored once the - ;; cow-store is umounted. + ;; Stop the daemon and save the database, so that it can be + ;; restored once the cow-store is umounted. + (stop-service 'guix-daemon) (copy-file database-file saved-database) + + (installer-log-line "mounting copy-on-write store") (mount-cow-store (%installer-target-dir) backing-directory)) (lambda () ;; We need to drag the guix-daemon to the container MNT ;; namespace, so that it can operate on the cow-store. - (stop-service 'guix-daemon) (start-service 'guix-daemon (list (number->string (getpid)))) (setvbuf (current-output-port) 'none) @@ -213,11 +217,25 @@ or #f. Return #t on success and #f on failure." (set! ret (run-command install-command #:tty? #t))) (lambda () - ;; Restart guix-daemon so that it does no keep the MNT namespace + ;; Stop guix-daemon so that it does no keep the MNT namespace ;; alive. - (restart-service 'guix-daemon) + (stop-service 'guix-daemon) + + ;; Restore the database and restart it. As part of restoring the + ;; database, remove the WAL and shm files in case they were left + ;; behind after guix-daemon was stopped. Failing to do so, + ;; sqlite might behave as if transactions that appear in the WAL + ;; file were committed. (See <https://www.sqlite.org/wal.html>.) + (installer-log-line "restoring store database from '~a'" + saved-database) (copy-file saved-database database-file) + (for-each (lambda (suffix) + (false-if-exception + (delete-file (string-append database-file suffix)))) + '("-wal" "-shm")) + (start-service 'guix-daemon) ;; Finally umount the cow-store and exit the container. + (installer-log-line "unmounting copy-on-write store") (unmount-cow-store (%installer-target-dir) backing-directory) (assert-exit ret)))))))) diff --git a/gnu/installer/newt.scm b/gnu/installer/newt.scm index 798ff53af2..e1c4453168 100644 --- a/gnu/installer/newt.scm +++ b/gnu/installer/newt.scm @@ -116,7 +116,7 @@ report it by email to ~a.") uploaded-name %guix-bug-report-address) (define command-output "") (define (line-accumulator line) (set! command-output - (string-append/shared command-output line "\n"))) + (string-append/shared command-output line))) (define result (run-external-command-with-line-hooks (list line-accumulator) args)) (define exit-val (status:exit-val result)) diff --git a/gnu/installer/utils.scm b/gnu/installer/utils.scm index 061493e6a7..6838410166 100644 --- a/gnu/installer/utils.scm +++ b/gnu/installer/utils.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com> -;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2019, 2020, 2022 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -159,7 +159,9 @@ COMMAND will be run in a pseudoterminal. Returns the integer status value of the child process as returned by waitpid." (define (handler input) (and - (and=> (get-line input) + ;; Lines for progress bars etc. end in \r; treat is as a line ending so + ;; those lines are printed right away. + (and=> (read-delimited "\r\n" input 'concat) (lambda (line) (if (eof-object? line) #f @@ -186,7 +188,7 @@ in a pseudoterminal." (installer-log-line "running command ~s" command) (define result (run-external-command-with-line-hooks - (list %display-line-hook) command + (list display) command #:tty? tty?)) (define exit-val (status:exit-val result)) (define term-sig (status:term-sig result)) @@ -264,7 +266,10 @@ values." (or port (%make-void-port "w"))))) (define (%syslog-line-hook line) - (format (syslog-port) "installer[~d]: ~a~%" (getpid) line)) + (let ((line (if (string-suffix? "\r" line) + (string-append (string-drop-right line 1) "\n") + line))) + (format (syslog-port) "installer[~d]: ~a" (getpid) line))) (define-syntax syslog (lambda (s) @@ -293,11 +298,7 @@ values." port))) (define (%installer-log-line-hook line) - (format (installer-log-port) "~a~%" line)) - -(define (%display-line-hook line) - (display line) - (newline)) + (display line (installer-log-port))) (define %default-installer-line-hooks (list %syslog-line-hook @@ -309,9 +310,10 @@ values." (syntax-case s () ((_ fmt args ...) (string? (syntax->datum #'fmt)) - #'(let ((formatted (format #f fmt args ...))) - (for-each (lambda (f) (f formatted)) - %default-installer-line-hooks)))))) + (with-syntax ((fmt (string-append (syntax->datum #'fmt) "\n"))) + #'(let ((formatted (format #f fmt args ...))) + (for-each (lambda (f) (f formatted)) + %default-installer-line-hooks))))))) ;;; diff --git a/gnu/local.mk b/gnu/local.mk index 7991f0e2e5..a9b823eec3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -671,6 +671,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/guix.scm \ %D%/services/hurd.scm \ %D%/services/kerberos.scm \ + %D%/services/ldap.scm \ %D%/services/lightdm.scm \ %D%/services/linux.scm \ %D%/services/lirc.scm \ @@ -962,8 +963,6 @@ dist_patch_DATA = \ %D%/packages/patches/cdrkit-libre-cross-compile.patch \ %D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch \ %D%/packages/patches/ceph-disable-cpu-optimizations.patch \ - %D%/packages/patches/ceph-boost-compat.patch \ - %D%/packages/patches/ceph-rocksdb-compat.patch \ %D%/packages/patches/chmlib-inttypes.patch \ %D%/packages/patches/cl-asdf-config-directories.patch \ %D%/packages/patches/clamav-config-llvm-libs.patch \ @@ -1111,6 +1110,7 @@ dist_patch_DATA = \ %D%/packages/patches/firebird-riscv64-support-pt1.patch \ %D%/packages/patches/firebird-riscv64-support-pt2.patch \ %D%/packages/patches/flann-cmake-3.11.patch \ + %D%/packages/patches/flashrom-fix-building-on-aarch64.patch \ %D%/packages/patches/flatpak-fix-path.patch \ %D%/packages/patches/flatpak-unset-gdk-pixbuf-for-sandbox.patch \ %D%/packages/patches/fontconfig-cache-ignore-mtime.patch \ @@ -1344,14 +1344,7 @@ dist_patch_DATA = \ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \ %D%/packages/patches/itk-snap-alt-glibc-compat.patch \ %D%/packages/patches/jami-disable-integration-tests.patch \ - %D%/packages/patches/jami-fix-qml-imports.patch \ - %D%/packages/patches/jami-fix-unit-tests-build.patch \ %D%/packages/patches/jami-libjami-headers-search.patch \ - %D%/packages/patches/jami-no-webengine.patch \ - %D%/packages/patches/jami-sipaccount-segfault.patch \ - %D%/packages/patches/jami-sip-contacts.patch \ - %D%/packages/patches/jami-sip-unregister.patch \ - %D%/packages/patches/jami-xcb-link.patch \ %D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \ %D%/packages/patches/jamvm-1.5.1-armv7-support.patch \ %D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \ @@ -1377,9 +1370,9 @@ dist_patch_DATA = \ %D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \ %D%/packages/patches/jsoncpp-pkg-config-version.patch \ %D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch \ - %D%/packages/patches/julia-tracker-16-compat.patch \ %D%/packages/patches/libffi-3.3-powerpc-fixes.patch \ %D%/packages/patches/libffi-float128-powerpc64le.patch \ + %D%/packages/patches/libgeotiff-fix-tests-with-proj-9.1.1.patch \ %D%/packages/patches/libobjc2-unbundle-robin-map.patch \ %D%/packages/patches/librime-fix-build-with-gcc10.patch \ %D%/packages/patches/libvirt-add-install-prefix.patch \ @@ -1606,6 +1599,7 @@ dist_patch_DATA = \ %D%/packages/patches/onnx-use-system-googletest.patch \ %D%/packages/patches/onnx-shared-libraries.patch \ %D%/packages/patches/onnx-skip-model-downloads.patch \ + %D%/packages/patches/openbios-gcc-warnings.patch \ %D%/packages/patches/openboardview-use-system-imgui.patch \ %D%/packages/patches/openbox-python3.patch \ %D%/packages/patches/opencascade-oce-glibc-2.26.patch \ @@ -1642,6 +1636,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-louvain-fix-test.patch \ %D%/packages/patches/python-random2-getrandbits-test.patch \ %D%/packages/patches/python-poppler-qt5-fix-build.patch \ + %D%/packages/patches/python-telingo-fix-comparison.patch \ %D%/packages/patches/python-w3lib-fix-test-failure.patch \ %D%/packages/patches/sdcc-disable-non-free-code.patch \ %D%/packages/patches/sdl-pango-api_additions.patch \ @@ -1719,7 +1714,6 @@ dist_patch_DATA = \ %D%/packages/patches/python-3-fix-tests.patch \ %D%/packages/patches/python-3-hurd-configure.patch \ %D%/packages/patches/python-3-no-static-lib.patch \ - %D%/packages/patches/python-apsw-3.39.2.1-test-fix.patch \ %D%/packages/patches/python-aionotify-0.2.0-py3.8.patch \ %D%/packages/patches/python-argcomplete-1.11.1-fish31.patch \ %D%/packages/patches/python-cross-compile.patch \ @@ -1729,7 +1723,6 @@ dist_patch_DATA = \ %D%/packages/patches/python-docopt-pytest6-compat.patch \ %D%/packages/patches/python-execnet-read-only-fix.patch \ %D%/packages/patches/python-fixtures-remove-monkeypatch-test.patch \ - %D%/packages/patches/python-flask-restful-werkzeug-compat.patch \ %D%/packages/patches/python-ipython-documentation-chars.patch \ %D%/packages/patches/python-ipython-documentation-repro.patch \ %D%/packages/patches/python-keras-integration-test.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 79f91d530d..b9fd3dab27 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1409,14 +1409,14 @@ connection alive.") bind-release-version))) (package (name "isc-dhcp") - (version "4.4.3") + (version "4.4.3-P1") (source (origin (method url-fetch) (uri (string-append "https://ftp.isc.org/isc/dhcp/" version "/dhcp-" version ".tar.gz")) (sha256 (base32 - "062q2g8cj2zv0zv22x6pg21m21bdlscxkg3li0ac0pm0qasccghf")))) + "1ivkvhhvqxap6c51cli7pa6xn76ngxri1zbl45ishz4ranxidi0a")))) (build-system gnu-build-system) (arguments `(#:parallel-build? #f @@ -1559,7 +1559,10 @@ connection alive.") (description "ISC's Dynamic Host Configuration Protocol (DHCP) distribution provides a reference implementation of all aspects of DHCP, through a suite of DHCP -tools: server, client, and relay agent.") +tools: server, client, and relay agent. + +This software is @emph{end-of-life}! ISC does not intend to issue any further +maintenance releases.") (license license:mpl2.0) (properties '((cpe-name . "dhcp")))))) @@ -1802,7 +1805,7 @@ over ssh connections.") (define-public realmd (package (name "realmd") - (version "0.17.0") + (version "0.17.1") (source (origin (method git-fetch) @@ -1811,8 +1814,7 @@ over ssh connections.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "1c6q2a86kk2f1akzc36nh52hfwsmmc0mbp6ayyjxj4zsyk9zx5bf")))) + (base32 "063cf4jkpfj548a7dxmffrpbh3j413nq3zy1zzj20lcfffnnaqwn")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-systemd-unit-dir=no" @@ -3919,13 +3921,13 @@ you are running, what theme or icon set you are using, etc.") (define-public hyfetch (package (name "hyfetch") - (version "1.4.1") + (version "1.4.4") (source (origin (method url-fetch) (uri (pypi-uri "HyFetch" version)) (sha256 - (base32 "18s8r63aqyah34vbahccgkiqw4008i2w5kvhqd9s8bdd4yvsrn4n")))) + (base32 "1k3pcl16y2czkk7wd79yk0w1kqpi4fp8h8szhjs5ywwy20nqmms8")))) (build-system python-build-system) (inputs (list python-hypy-utils python-typing-extensions)) (arguments `(#:phases (modify-phases %standard-phases @@ -4085,14 +4087,14 @@ information tool.") (define-public nnn (package (name "nnn") - (version "4.6") + (version "4.7") (source (origin (method url-fetch) (uri (string-append "https://github.com/jarun/nnn/releases/download/v" version "/nnn-v" version ".tar.gz")) (sha256 - (base32 "0gvyvynw957yirvc1aj65flzni7niaj5bvyk82ka5dfgi2dazb0m")))) + (base32 "0dbm54m3iv8hzar38dsfxh77z4mlpjj649ga82s0wwms4vlrm5pg")))) (build-system gnu-build-system) (inputs (list ncurses readline)) @@ -4309,7 +4311,7 @@ Python loading in HPC environments.") (let ((real-name "inxi")) (package (name "inxi-minimal") - (version "3.3.23-1") + (version "3.3.24-1") (source (origin (method git-fetch) @@ -4318,12 +4320,12 @@ Python loading in HPC environments.") (commit version))) (file-name (git-file-name real-name version)) (sha256 - (base32 "0bpaffv4zqinfk46sbx82gic7572xsqiwb1lf894l1s6a6xi7zrd")))) + (base32 "1nai43251r791qvc1c4hhvcaa6hq7zcjlww7k3ip7br6zgxqjaxm")))) (build-system trivial-build-system) (inputs - `(("bash" ,bash-minimal) - ("perl" ,perl) - ("procps" ,procps))) + (list bash-minimal + perl + procps)) (native-inputs (list gzip)) (arguments @@ -4333,10 +4335,14 @@ Python loading in HPC environments.") (use-modules (guix build utils) (ice-9 match) (srfi srfi-26)) - (setenv "PATH" (string-append - (assoc-ref %build-inputs "bash") "/bin" ":" - (assoc-ref %build-inputs "gzip") "/bin" ":" - (assoc-ref %build-inputs "perl") "/bin" ":")) + (setenv "PATH" (string-join + (map (lambda (file) + (dirname (search-input-file %build-inputs + file))) + (list "bin/bash" + "bin/gzip" + "bin/perl")) + ":")) (copy-recursively (assoc-ref %build-inputs "source") ,(string-append real-name "-" version)) (with-directory-excursion ,(string-append real-name "-" version) @@ -4853,7 +4859,7 @@ entries, providing commands to add, remove, comment, and search.") (define-public nmrpflash (package (name "nmrpflash") - (version "0.9.16") + (version "0.9.19") (source (origin (method git-fetch) @@ -4862,7 +4868,7 @@ entries, providing commands to add, remove, comment, and search.") (url "https://github.com/jclehner/nmrpflash") (commit (string-append "v" version)))) (sha256 - (base32 "0gp66l3a2wznjnlc2ljs8g38mfrf1b9a0qcfxqg2bczmfxnrsynj")) + (base32 "02r2z3mnbj8dfka7adw1l76zq1jh1l13mmkns93c54ychs44jz3d")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (native-inputs @@ -4881,7 +4887,7 @@ entries, providing commands to add, remove, comment, and search.") (lambda* (#:key outputs #:allow-other-keys) (mkdir-p (string-append (assoc-ref outputs "out") "/bin"))))))) (home-page "https://github.com/jclehner/nmrpflash") - (synopsis "Netgear unbrick utility") + (synopsis "Reflash (``unbrick'') Netgear devices with corrupted firmware") (description "This package provides a utility to flash a new firmware image to a Netgear device. It has been tested on Netgear EX2700, EX6120, EX6150v2, DNG3700v2, R6100, R6220, R7000, D7000, WNR3500, R6400, R6800, diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index a2e17e84a3..3ceef8ecd2 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -327,7 +327,7 @@ precision.") (define-public giac (package (name "giac") - (version "1.9.0-29") + (version "1.9.0-33") (source (origin (method url-fetch) @@ -339,7 +339,7 @@ precision.") "~parisse/debian/dists/stable/main/source/" "giac_" version ".tar.gz")) (sha256 - (base32 "03hbg5b0xmdfp919mxn5lsard1mwg1kcm9xrm8gk7wnmr9r1adgn")))) + (base32 "00hdfakys4xpvmf2v851dr4hf3j6483pwwkfy5i63s5hs10mjsq5")))) (build-system gnu-build-system) (arguments (list diff --git a/gnu/packages/arcan.scm b/gnu/packages/arcan.scm index c25d64903c..7483777ff0 100644 --- a/gnu/packages/arcan.scm +++ b/gnu/packages/arcan.scm @@ -123,7 +123,7 @@ (files '("share/arcan/scripts"))))) (inputs `(("apr" ,apr) - ("ffmpeg" ,ffmpeg) + ("ffmpeg" ,ffmpeg-4) ("freetype" ,freetype) ("glib" ,glib) ("glu" ,glu) diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm index ec0dafbc7a..9a5a9c6bcc 100644 --- a/gnu/packages/aspell.scm +++ b/gnu/packages/aspell.scm @@ -320,6 +320,14 @@ dictionaries, including personal ones.") (base32 "0w2k5l5rbqpliripgqwiqixz5ghnjf7i9ggbrc4ly4vy1ia10rmc"))) +(define-public aspell-dict-nb + (aspell-dictionary "nb" "Norwegian Bokmål" + #:version "0.50.1-2" + #:prefix "aspell-" + #:sha256 + (base32 + "1xvns7dwx2sc0msldj7r2hv0426913rg3dpnkxlrvnsyrxzjpbpc"))) + (define-public aspell-dict-pl (aspell-dictionary "pl" "Polish" #:version "0.51-0" diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index c59f4d02a4..5f19fc4764 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -813,7 +813,7 @@ astronomical fields. SkyMaker is part of the EFIGI (native-inputs (list pkg-config)) (inputs - (list gtkmm-3 libskry ffmpeg)) + (list gtkmm-3 libskry ffmpeg-4)) (home-page "https://github.com/GreatAttractor/stackistry") (synopsis "Astronomical lucky imaging/image stacking tool") (description @@ -1714,7 +1714,7 @@ arrays with NumPy as its only dependency.") (copy-recursively "include" include)) #t))))) (inputs - (list ffmpeg)) + (list ffmpeg-4)) (home-page "https://github.com/GreatAttractor/libskry") (synopsis "Astronimical lucky imaging library") (description @@ -2505,13 +2505,13 @@ install an implementation package such as asdf-astropy.") (define-public python-asdf-astropy (package (name "python-asdf-astropy") - (version "0.2.2") + (version "0.3.0") (source (origin (method url-fetch) (uri (pypi-uri "asdf_astropy" version)) (sha256 - (base32 "1b0v4cl7xvly3x1k5k2rvc2l32jqgqp0iyf1j20fkvj450sx74f2")))) + (base32 "1gp5iav0a9g9q0zb22vhzi3v9vwk5wn2nxvr3mvi3bsdcdj3h23v")))) (build-system pyproject-build-system) (native-inputs (list python-coverage diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 875d905ac6..78bd0e1446 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -603,7 +603,11 @@ Filter) modules follow the convention of 1V / Octave.") "--enable-samplerate" "--enable-avcodec"))) (inputs - (list jack-1 libsndfile libsamplerate fftwf ffmpeg)) ; for libavcodec + (list jack-1 + libsndfile + libsamplerate + ffmpeg-4 ;for libavcodec + fftwf)) (native-inputs (list pkg-config)) (home-page "https://aubio.org/") @@ -849,26 +853,16 @@ engineers, musicians, soundtrack editors and composers.") (define-public audacity (package (name "audacity") - (version "3.2.1") + (version "3.2.2") (source (origin - ;; If built from the release tag, Audacity will describe itself - ;; as an "Alpha test version" and suggest to users that they use - ;; the "latest stable released version". - ;; XXX: For 3.2.1 we rebelliously use a git tag anyway because the only - ;; "processed" download is a .zip containing a .tar.gz which does not - ;; fare well with the patch and snippet machinery: - ;; https://github.com/audacity/audacity/issues/3811 - ;; TODO: Find a way to control the "alpha" status even when using git - ;; so we're not reliant on preprocessed source code. (method git-fetch) (uri (git-reference (url "https://github.com/audacity/audacity") (commit (string-append "Audacity-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "00mal30jxbcacs1ka4yb5s8xq81zm7mv3y8l5hvg77abkyvfvdzf")) + (base32 "1akp9marc4y2g9mwwgfnl43q0gbb2dv7vhsnybh8wdn8ql30hfdw")) (patches (search-patches "audacity-ffmpeg-fallback.patch")) (modules '((guix build utils))) (snippet @@ -936,7 +930,11 @@ engineers, musicians, soundtrack editors and composers.") ;; TODO: enable this flag once we've packaged all dependencies ;; "-Daudacity_obey_system_dependencies=on" ;; disable crash reports, updates, ..., anything that phones home - "-Daudacity_has_networking=off") + "-Daudacity_has_networking=off" + ;; When building from Git — even from a release tag — this is undefined, + ;; and Audacity assumes that is is an ‘alpha’ version and includes debug + ;; symbols and extra code. Force level 2, ‘release’. + "-DAUDACITY_BUILD_LEVEL=2") #:imported-modules ((guix build glib-or-gtk-build-system) ,@%cmake-build-system-modules) #:modules @@ -4442,7 +4440,7 @@ simplified, although really accurate, measuring tools.") ,home-page)) #t)))) (build-system gnu-build-system) - (inputs (list ffmpeg sox)) + (inputs (list ffmpeg-4 sox)) (synopsis "Tool to adjust loudness of media files") (description "BS1770GAIN is a loudness scanner compliant with ITU-R BS.1770 and its @@ -5061,7 +5059,7 @@ stream to one or more IceCast and/or ShoutCast servers.") (define-public libltc (package (name "libltc") - (version "1.3.1") + (version "1.3.2") (source (origin (method url-fetch) @@ -5069,8 +5067,7 @@ stream to one or more IceCast and/or ShoutCast servers.") (string-append "https://github.com/x42/libltc/releases/download/v" version "/libltc-" version ".tar.gz")) (sha256 - (base32 - "173h9dgmain3nyrwk6q2d7yl4fnh4vacag4s2p01n5b7nyrkxrjh")))) + (base32 "0j8j7cnw02arh8122d13bwkps1c0mi2xqq55gyi2bs91dk6l4v8a")))) (build-system gnu-build-system) (arguments `(#:parallel-tests? #f)) ;tests fail otherwise diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 00d95e7b3d..8e629c2592 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -633,13 +633,13 @@ detection, and lossless compression.") (define-public borg (package (name "borg") - (version "1.2.2") + (version "1.2.3") (source (origin (method url-fetch) (uri (pypi-uri "borgbackup" version)) (sha256 - (base32 "0q3jwmwwa3jlb02cbkcgh5a9cvwg64vawaypn41bdgpi8ds6hc6p")) + (base32 "11b7jqv9sw22a9512b270d12k3mrcgmmcaimh6bgm5iwcgw1h973")) (modules '((guix build utils))) (snippet #~(begin diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm index e188b27789..e74d50c1a5 100644 --- a/gnu/packages/benchmark.scm +++ b/gnu/packages/benchmark.scm @@ -72,14 +72,14 @@ (define-public fio (package (name "fio") - (version "3.32") + (version "3.33") (source (origin (method url-fetch) (uri (string-append "https://brick.kernel.dk/snaps/" "fio-" version ".tar.bz2")) (sha256 (base32 - "0wlfzx6zwkp81fwqw0pqm9i7v0b89rpfbliwxdd8q4kp4mf3q2dv")))) + "083c1w8jqkvyw7wcy69142inlikzmk1k78mk973rnqdp3a7798qb")))) (build-system gnu-build-system) (arguments (list #:modules diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index c62c5970b8..53c7d048c9 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -2202,6 +2202,53 @@ conditions or various species. @code{AMOUNTAIN} aims to search active modules in multi-layer WGCN using a continuous optimization approach.") (license license:gpl2+))) +(define-public r-amplican + (package + (name "r-amplican") + (version "1.20.0") + (source (origin + (method url-fetch) + (uri (bioconductor-uri "amplican" version)) + (sha256 + (base32 + "1c990i6gxbarcpbdpkz017x94spwzap95l95synlizbkyif4z8ij")))) + (properties `((upstream-name . "amplican"))) + (build-system r-build-system) + (propagated-inputs + (list r-biocgenerics + r-biocparallel + r-biostrings + r-clustercrit + r-data-table + r-dplyr + r-genomeinfodb + r-genomicranges + r-ggplot2 + r-ggthemes + r-gridextra + r-gtable + r-iranges + r-knitr + r-matrix + r-matrixstats + r-rcpp + r-rmarkdown + r-s4vectors + r-shortread + r-stringr + r-waffle)) + (native-inputs (list r-knitr)) + (home-page "https://github.com/valenlab/amplican") + (synopsis "Automated analysis of CRISPR experiments") + (description + "The package performs alignment of the amplicon reads, normalizes +gathered data, calculates multiple statistics (e.g. cut rates, frameshifts) +and presents the results in the form of aggregated reports. Data and +statistics can be broken down by experiments, barcodes, user defined groups, +guides and amplicons allowing for quick identification of potential +problems.") + (license license:gpl3))) + (define-public r-amaretto (package (name "r-amaretto") @@ -2287,13 +2334,13 @@ analysis, modelling, and visualization of spike-in controls.") (define-public r-ancombc (package (name "r-ancombc") - (version "2.0.1") + (version "2.0.2") (source (origin (method url-fetch) (uri (bioconductor-uri "ANCOMBC" version)) (sha256 (base32 - "1bwzvi6j3s66dcll1lb4xy25j4nfn1ln6mc3flh0wgy13l26x8m6")))) + "0dlinv4vhxgni8ygzvfw8pbc6d1v9x5chhrpxblhs2c65bkgyxz5")))) (properties `((upstream-name . "ANCOMBC"))) (build-system r-build-system) (propagated-inputs @@ -2337,6 +2384,65 @@ Methodologies included in the @code{ANCOMBC} package were designed to correct these biases and construct statistically consistent estimators.") (license license:artistic2.0))) +(define-public r-animalcules + (package + (name "r-animalcules") + (version "1.14.0") + (source (origin + (method url-fetch) + (uri (bioconductor-uri "animalcules" version)) + (sha256 + (base32 + "1alpsamrglgvzhcibkaf7m3gyiv61wbj1gvsq4lw6vjka100j9qr")))) + (properties `((upstream-name . "animalcules"))) + (build-system r-build-system) + (propagated-inputs + (list r-ape + r-assertthat + r-biomformat + r-caret + r-covr + r-deseq2 + r-dplyr + r-dt + r-forcats + r-ggplot2 + r-glmnet + r-gunifrac + r-lattice + r-limma + r-magrittr + r-matrix + r-multiassayexperiment + r-plotly + r-plotroc + r-rentrez + r-reshape2 + r-s4vectors + r-scales + r-shiny + r-shinyjs + r-summarizedexperiment + r-tibble + r-tsne + r-umap + r-vegan + r-xml)) + (native-inputs (list r-knitr)) + (home-page "https://github.com/compbiomed/animalcules") + (synopsis "Interactive microbiome analysis toolkit") + (description + "Animalcules is an R package for utilizing up-to-date data analytics, +visualization methods, and machine learning models to provide users an +easy-to-use interactive microbiome analysis framework. It can be used as a +standalone software package or users can explore their data with the +accompanying interactive R Shiny application. Traditional microbiome analysis +such as alpha/beta diversity and differential abundance analysis are enhanced, +while new methods like biomarker identification are introduced by animalcules. +Powerful interactive and dynamic figures generated by animalcules enable users +to understand their data better and discover new insights.") + (license license:artistic2.0))) + (define-public r-aldex2 (package (name "r-aldex2") @@ -2492,6 +2598,37 @@ mapped reads). It is currently designed for un-stranded paired-end RNA-seq data.") (license license:gpl2+))) +(define-public r-altcdfenvs + (package + (name "r-altcdfenvs") + (version "2.60.0") + (source (origin + (method url-fetch) + (uri (bioconductor-uri "altcdfenvs" version)) + (sha256 + (base32 + "0fm4l93j6nm1w1w57zzryc1hkzapp8l16pkwjzdzllvwvsnsg8r0")))) + (properties `((upstream-name . "altcdfenvs"))) + (build-system r-build-system) + (propagated-inputs + (list r-affy + r-biobase + r-biocgenerics + r-biostrings + r-hypergraph + r-makecdfenv + r-s4vectors)) + (home-page "https://bioconductor.org/packages/altcdfenvs") + (synopsis + "Convenience data structures and functions to handle CDF environments") + (description + "The package is usable with Affymetrix GeneChip short oligonucleotide +arrays, and it can be adapted or extended to other platforms. It is able to +modify or replace the grouping of probes in the probe sets. Also, the package +contains simple functions to read R connections in the FASTA format and it can +create an alternative mapping from sequences.") + (license license:gpl2+))) + (define-public r-aneufinder (package (name "r-aneufinder") @@ -2720,6 +2857,40 @@ biological knowledge. Genes, and clinical pathways are incorporated in the model as latent variables.") (license license:gpl3))) +(define-public r-asics + (package + (name "r-asics") + (version "2.14.0") + (source (origin + (method url-fetch) + (uri (bioconductor-uri "ASICS" version)) + (sha256 + (base32 + "0c2b3gdza58vqhharhw8967p2w2knnrm5s2svvnnjbf67qbg45b7")))) + (properties `((upstream-name . "ASICS"))) + (build-system r-build-system) + (propagated-inputs + (list r-biocparallel + r-ggplot2 + r-glmnet + r-gridextra + r-matrix + r-mvtnorm + r-pepsnmr + r-plyr + r-quadprog + r-ropls + r-summarizedexperiment + r-zoo)) + (native-inputs (list r-knitr)) + (home-page "https://bioconductor.org/packages/ASICS") + (synopsis "Automatic statistical identification in complex spectra") + (description + "ASICS quantifies concentration of metabolites in a complex spectrum. +The identification of metabolites is performed by fitting a mixture model to +the spectra of the library with a sparse penalty.") + (license license:gpl2+))) + (define-public r-aspli (package (name "r-aspli") @@ -3121,13 +3292,13 @@ Various visual and textual types of output are available.") (define-public r-bambu (package (name "r-bambu") - (version "3.0.2") + (version "3.0.5") (source (origin (method url-fetch) (uri (bioconductor-uri "bambu" version)) (sha256 (base32 - "0246cn5l1kxysjrzy4prfdxn71vc47a8kciqw384nm2mi3vsy4vx")))) + "12rcbspy4ly714cyxbgd5v2m92vasksxm19m6hd4avasrhcr4d6l")))) (properties `((upstream-name . "bambu"))) (build-system r-build-system) (propagated-inputs @@ -3164,13 +3335,13 @@ usage.") (define-public r-bandits (package (name "r-bandits") - (version "1.14.0") + (version "1.14.1") (source (origin (method url-fetch) (uri (bioconductor-uri "BANDITS" version)) (sha256 (base32 - "18xq8gg1j07gbbxy7r0cc34zwn40mh4fr39zzi8l3z0cymw73qs8")))) + "0dbiz7zgdl3bqrwf4ffb73sc2dd8ygh76fakx5887a14azj8pk8x")))) (properties `((upstream-name . "BANDITS"))) (build-system r-build-system) (propagated-inputs @@ -3309,6 +3480,44 @@ of Bioconductor.") packages.") (license license:artistic2.0))) +(define-public r-cardelino + (package + (name "r-cardelino") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (bioconductor-uri "cardelino" version)) + (sha256 + (base32 + "1ma4clkrkrjvy12ln2d2smyzzsz9y9554f5wgwmh9kv6s4xc66qs")))) + (properties `((upstream-name . "cardelino"))) + (build-system r-build-system) + (propagated-inputs (list r-combinat + r-genomeinfodb + r-genomicranges + r-ggplot2 + r-ggtree + r-matrix + r-matrixstats + r-pheatmap + r-s4vectors + r-snpstats + r-variantannotation + r-vcfr)) + (native-inputs (list r-knitr)) + (home-page "https://github.com/single-cell-genetics/cardelino") + (synopsis "Clone identification from single cell data") + (description + "This package provides methods to infer clonal tree configuration for a +population of cells using single-cell RNA-seq data (scRNA-seq), and possibly +other data modalities. Methods are also provided to assign cells to inferred +clones and explore differences in gene expression between clones. These +methods can flexibly integrate information from imperfect clonal trees +inferred based on bulk exome-seq data, and sparse variant alleles expressed in +scRNA-seq data. A flexible beta-binomial error model that accounts for +stochastic dropout events as well as systematic allelic imbalance is used.") + (license license:gpl3))) + (define-public r-coverageview (package (name "r-coverageview") @@ -3391,13 +3600,13 @@ factorial microarray data.") (define-public r-damefinder (package (name "r-damefinder") - (version "1.10.0") + (version "1.10.1") (source (origin (method url-fetch) (uri (bioconductor-uri "DAMEfinder" version)) (sha256 (base32 - "0ygsgg51473sycsh367rf8plca6zb1jg2l39zcprwvgpiln8mjdg")))) + "1cgykb70mxnhilwwp1jr4dr523zvjxpix173s4ldfh49064gzwc1")))) (properties `((upstream-name . "DAMEfinder"))) (build-system r-build-system) (propagated-inputs @@ -3705,13 +3914,13 @@ negative control samples.") (define-public r-deconvr (package (name "r-deconvr") - (version "1.4.2") + (version "1.4.3") (source (origin (method url-fetch) (uri (bioconductor-uri "deconvR" version)) (sha256 (base32 - "1wa8l9zxdwx32122slnzqyk32klyznxnbziwn98jbp5fxmjka92l")))) + "1jz7q4rv3m85bcvarjhqsyc2330fynb0wr5ajd2qffznczk846xb")))) (properties `((upstream-name . "deconvR"))) (build-system r-build-system) (propagated-inputs @@ -3727,6 +3936,7 @@ negative control samples.") r-mass r-matrixstats r-methylkit + r-minfi r-nnls r-quadprog r-rsq @@ -4787,13 +4997,13 @@ only one command.") (define-public r-biocparallel (package (name "r-biocparallel") - (version "1.32.3") + (version "1.32.4") (source (origin (method url-fetch) (uri (bioconductor-uri "BiocParallel" version)) (sha256 (base32 - "0z2g3p6ip4g865na9bmqaa7w2s52769pmjr3hpiv6x8bhifh3nm5")))) + "1m4i27zx3ajwygwp38lrxf36rs575dkaxxc6jawpj1kzn7whi5ym")))) (properties `((upstream-name . "BiocParallel"))) (build-system r-build-system) @@ -5154,26 +5364,26 @@ distribution.") (define-public r-deseq2 (package (name "r-deseq2") - (version "1.38.1") + (version "1.38.2") (source (origin (method url-fetch) (uri (bioconductor-uri "DESeq2" version)) (sha256 (base32 - "0xp3rfhwn8k1bqzqnjzjqlaq8lqyad7kqjhb29vkbxgzjvafvxmk")))) + "1m81yvcl63h5m7kbbxpjk7hzygxmn4l9mlgqrdmnnls56183h3b4")))) (properties `((upstream-name . "DESeq2"))) (build-system r-build-system) (propagated-inputs (list r-biobase r-biocgenerics r-biocparallel - r-genefilter r-geneplotter r-genomicranges r-ggplot2 r-iranges r-locfit + r-matrixstats r-rcpp r-rcpparmadillo r-s4vectors @@ -5386,13 +5596,13 @@ global-scaling and full-quantile normalization.") (define-public r-edger (package (name "r-edger") - (version "3.40.0") + (version "3.40.1") (source (origin (method url-fetch) (uri (bioconductor-uri "edgeR" version)) (sha256 (base32 - "18vap3qp9blncr4sdl9q1szb4qhm46gldhxy3k3abw9fckcvggwg")))) + "1a0rmczlqmqmip2ix28m4iwcpfj04p6nrcl562bjgaifvgyjqhzg")))) (properties `((upstream-name . "edgeR"))) (build-system r-build-system) (propagated-inputs @@ -5511,14 +5721,14 @@ analysis using other methods.") (define-public r-genefilter (package (name "r-genefilter") - (version "1.80.0") + (version "1.80.2") (source (origin (method url-fetch) (uri (bioconductor-uri "genefilter" version)) (sha256 (base32 - "0swdqdyz956gx44crbx3qai0qx7n7yazg3yw7i93djcgahyz3kk7")))) + "0f25z0hqmrkimv14j03pgjsxpq5rz9ymk151rlg4j4vpc06n73cq")))) (build-system r-build-system) (native-inputs (list gfortran r-knitr)) @@ -5601,13 +5811,13 @@ genomic intervals. In addition, it can use BAM or BigWig files as input.") (define-public r-genomeinfodb (package (name "r-genomeinfodb") - (version "1.34.3") + (version "1.34.4") (source (origin (method url-fetch) (uri (bioconductor-uri "GenomeInfoDb" version)) (sha256 (base32 - "1pw8ml6b33z7zh7h592xl23l8dy32nqq4lzq20p57n9f0krqj1iv")))) + "1nskqmlar85zg96c1fbacl7dqg6r0gl814rc7yh482y4wgmwyg0r")))) (properties `((upstream-name . "GenomeInfoDb"))) (build-system r-build-system) @@ -5661,13 +5871,13 @@ alignments.") (define-public r-genomicfeatures (package (name "r-genomicfeatures") - (version "1.50.2") + (version "1.50.3") (source (origin (method url-fetch) (uri (bioconductor-uri "GenomicFeatures" version)) (sha256 (base32 - "10w15j107hy9qb0lh6jmyw7rinfvy3ca34xsskxw3wf25mh6vhzz")))) + "14pn7lngayascj5k84g2g748assbivpiakss247cdj9ngzx5sfwz")))) (properties `((upstream-name . "GenomicFeatures"))) (build-system r-build-system) @@ -5739,13 +5949,13 @@ provide added flexibility for data combination and manipulation.") (define-public r-genomicranges (package (name "r-genomicranges") - (version "1.50.1") + (version "1.50.2") (source (origin (method url-fetch) (uri (bioconductor-uri "GenomicRanges" version)) (sha256 (base32 - "14m4pvvd9m8kpc7k905km9vib7giq0i9g11bxc1ygw30ifi96966")))) + "13b6bm6nrxx1vgzrzpf59c2lq5w8kjq9hsch5h037f0p9w3w5z9p")))) (properties `((upstream-name . "GenomicRanges"))) (build-system r-build-system) @@ -5823,6 +6033,33 @@ testing and other simple calculations.") Enrichment Analysis} (GSEA).") (license license:artistic2.0))) +(define-public r-harshlight + (package + (name "r-harshlight") + (version "1.70.0") + (source (origin + (method url-fetch) + (uri (bioconductor-uri "Harshlight" version)) + (sha256 + (base32 + "0asjgcnwawg8x7ql0srhb2011rvb4kr2cpsa1cy28nfmjfvdf0qm")))) + (properties `((upstream-name . "Harshlight"))) + (build-system r-build-system) + (propagated-inputs + (list r-affy + r-altcdfenvs + r-biobase)) + (home-page "http://asterion.rockefeller.edu/Harshlight/") + (synopsis "Corrective make-up program for microarray chips") + (description + "The package detects extended diffuse and compact blemishes on microarray +chips. Harshlight marks the areas in a collection of chips (affybatch +objects). A corrected @code{AffyBatch} object will result. The package +replaces the defected areas with @code{N/A}s or the median of the values of +the same probe. The new version handles the substitute value as a whole +matrix to solve the memory problem.") + (license license:gpl2+))) + (define-public r-hpar (package (name "r-hpar") @@ -5875,13 +6112,13 @@ of other R packages who wish to make use of HTSlib.") (define-public r-impute (package (name "r-impute") - (version "1.72.1") + (version "1.72.2") (source (origin (method url-fetch) (uri (bioconductor-uri "impute" version)) (sha256 (base32 - "0862mpbmznizcq5bgnp85dl9q0bip76jkga45gssdrv90wsi2192")))) + "1k697pqlkrwmfszipl9irbzmwhk1vz97j3rh0k5nj2mrj3dr71mv")))) (native-inputs (list gfortran)) (build-system r-build-system) @@ -5944,13 +6181,13 @@ Shiny-based display methods for Bioconductor objects.") (define-public r-lfa (package (name "r-lfa") - (version "1.28.0") + (version "1.28.1") (source (origin (method url-fetch) (uri (bioconductor-uri "lfa" version)) (sha256 - (base32 "1l3ip0bsvbz9nagzv47qjh5hf7qf8ffk4hlnkwagngiwyq84vyp1")))) + (base32 "0047wspvarbnbawrwvfjfz5y6i36l2r2k2501zjya09rjpiq101m")))) (properties `((upstream-name . "lfa"))) (build-system r-build-system) (propagated-inputs (list r-corpcor)) @@ -6010,6 +6247,33 @@ reduction (between group analysis) and joint dimension reduction of two datasets (coinertia analysis).") (license license:artistic2.0))) +(define-public r-makecdfenv + (package + (name "r-makecdfenv") + (version "1.74.0") + (source (origin + (method url-fetch) + (uri (bioconductor-uri "makecdfenv" version)) + (sha256 + (base32 + "0bvj5dg6yfjnhga1z8788zmb98d8shyz8pzz0ggnml87c1p2gy25")))) + (properties `((upstream-name . "makecdfenv"))) + (build-system r-build-system) + (inputs (list zlib)) + (propagated-inputs + (list r-affy + r-affyio + r-biobase + r-zlibbioc)) + (home-page "https://bioconductor.org/packages/makecdfenv") + (synopsis "Chip description file environment maker") + (description + "This package implements two functions. One of them reads an Affymetrix +@acronym{CDF, chip description file} and creates a hash table environment +containing the location/probe set membership mapping. The other one creates a +package that automatically loads that environment.") + (license license:gpl2+))) + (define-public r-metaneighbor (package (name "r-metaneighbor") @@ -7050,13 +7314,13 @@ comprehensive scDblFinder method.") (define-public r-scmap (package (name "r-scmap") - (version "1.20.0") + (version "1.20.1") (source (origin (method url-fetch) (uri (bioconductor-uri "scmap" version)) (sha256 - (base32 "14vyjvfs2n4h0xsy25xg4zdmc8dqbg5vyl3qns6f0rh4bsshqdlm")))) + (base32 "0rq185ynk874vgw4a5s2n92381dj6kxxnx2fcx2v7b2ahr3ybys7")))) (properties `((upstream-name . "scmap"))) (build-system r-build-system) (propagated-inputs @@ -7597,13 +7861,13 @@ dependencies between GO terms can be implemented and applied.") (define-public r-tximport (package (name "r-tximport") - (version "1.26.0") + (version "1.26.1") (source (origin (method url-fetch) (uri (bioconductor-uri "tximport" version)) (sha256 (base32 - "1w1m6r85a5nvcfxbkq5dmczaar8vf3vbrgrmxqkjqhlpcq58z5ng")))) + "1r67q4nb2bx9nqycyr2gnfmh4gizl0c7l510vmlcdvplv3yi73yn")))) (build-system r-build-system) (native-inputs (list r-knitr)) @@ -7970,14 +8234,14 @@ packages.") (define-public r-oligo (package (name "r-oligo") - (version "1.62.0") + (version "1.62.1") (source (origin (method url-fetch) (uri (bioconductor-uri "oligo" version)) (sha256 (base32 - "0l6yb58frh4c080k6h8wyipc5kiz4qi7jimnr62jg8d737rrvnk2")))) + "1rhzav57d092ip9qjsmskj3l8h4xyq8cpa2a2jl8g32fwh0dyvsz")))) (properties `((upstream-name . "oligo"))) (build-system r-build-system) (inputs (list zlib)) @@ -8115,14 +8379,14 @@ signal in the input, that lead to spurious peaks during peak calling.") (define-public r-diffbind (package (name "r-diffbind") - (version "3.8.1") + (version "3.8.3") (source (origin (method url-fetch) (uri (bioconductor-uri "DiffBind" version)) (sha256 (base32 - "1wgnrd1xpl49pdxxjzzl0v9535naapwp3ayqzvrx3z4m6iai2awj")))) + "039gy9ll6ingh3y5h2hp3rhbh2imaryjxzgf8ysk87irlbpnx1qs")))) (properties `((upstream-name . "DiffBind"))) (build-system r-build-system) (propagated-inputs @@ -8323,6 +8587,35 @@ classification and ranking tasks. @dfn{Area under curve} (AUC), precision at a given recall, F-score for single and multiple classes are available.") (license license:gpl2+))) +(define-public r-pepsnmr + (package + (name "r-pepsnmr") + (version "1.16.0") + (source (origin + (method url-fetch) + (uri (bioconductor-uri "PepsNMR" version)) + (sha256 + (base32 + "02i29jinawssqlb33wvj0h9w6cfcvamlyfxdynd38jmwx23l15l5")))) + (properties `((upstream-name . "PepsNMR"))) + (build-system r-build-system) + (propagated-inputs + (list r-ggplot2 + r-gridextra + r-matrix + r-matrixstats + r-ptw + r-reshape2)) + (native-inputs (list r-knitr)) + (home-page "https://github.com/ManonMartin/PepsNMR") + (synopsis "Pre-process 1H-NMR FID signals") + (description + "This package provides R functions for common pre-processing steps that +are applied on @acronym{1H-NMR, proton nuclear magnetic resonance} data. It +also provides a function to read the @acronym{FID, free induction decay} +signals directly in the Bruker format.") + (license license:gpl2))) + ;; This is a CRAN package, but it depends on a Bioconductor package. (define-public r-codedepends (package @@ -8804,13 +9097,13 @@ information.") (define-public r-glmgampoi (package (name "r-glmgampoi") - (version "1.10.0") + (version "1.10.1") (source (origin (method url-fetch) (uri (bioconductor-uri "glmGamPoi" version)) (sha256 (base32 - "12jbqigg4k2ngrk2anbrrxrwkp57bbzdz492lg8lc6w1gygp5yip")))) + "1qxzbh5i208cpghmysailachj8xpx4g4iqk8552xjpjkn54pkpbd")))) (properties `((upstream-name . "glmGamPoi"))) (build-system r-build-system) (propagated-inputs @@ -9331,14 +9624,14 @@ penalized least squares regression method.") (define-public r-dnacopy (package (name "r-dnacopy") - (version "1.72.0") + (version "1.72.2") (source (origin (method url-fetch) (uri (bioconductor-uri "DNAcopy" version)) (sha256 (base32 - "0z2hl68f5f6d2w6gbhax4531g3zbgiihj99h32sa44hp29al38ld")))) + "1f6ilfwhli7bdnr48y2ijdydvw7kjbyz701kgbsw3w7inr6x6ayr")))) (properties `((upstream-name . "DNAcopy"))) (build-system r-build-system) (native-inputs (list gfortran)) @@ -9489,14 +9782,14 @@ coordinates.") (define-public r-lpsymphony (package (name "r-lpsymphony") - (version "1.26.0") + (version "1.26.2") (source (origin (method url-fetch) (uri (bioconductor-uri "lpsymphony" version)) (sha256 (base32 - "0ryl48zxscb35s1gizyspxg48dlqg1j51h9iw2flq16y7y63ppzi")))) + "167zpf7k7gn7gw2cxkqx89y322qinyzjr1naracp5axj4q2qagm3")))) (build-system r-build-system) (arguments (list @@ -10378,14 +10671,14 @@ especially Illumina Infinium methylation microarrays.") (define-public r-linnorm (package (name "r-linnorm") - (version "2.22.0") + (version "2.22.1") (source (origin (method url-fetch) (uri (bioconductor-uri "Linnorm" version)) (sha256 (base32 - "0ndhvdd9gkqyayxqgj5320sgj15di7ji945lpdi3rj5lwldh7na0")))) + "16d7viyidqbsy3mbr2cpq9p291yf362a4blhvs05qxcwm3fjllij")))) (properties `((upstream-name . "Linnorm"))) (build-system r-build-system) (propagated-inputs @@ -10726,14 +11019,14 @@ the data set is suitable for such analysis.") (define-public r-sigpathway (package (name "r-sigpathway") - (version "1.66.0") + (version "1.66.1") (source (origin (method url-fetch) (uri (bioconductor-uri "sigPathway" version)) (sha256 (base32 - "0vb6v61ak8z3hx7d65lr1hrxk89n36j0zi3x0pp828khdyh3zvag")))) + "1ln1n4zwmjw1ils45vix93q3h19xlg4q894yhhxkphgyj0qcy00b")))) (properties `((upstream-name . "sigPathway"))) (build-system r-build-system) (home-page "https://www.pnas.org/cgi/doi/10.1073/pnas.0506577102") @@ -10848,14 +11141,14 @@ data.") (define-public r-enrichplot (package (name "r-enrichplot") - (version "1.18.1") + (version "1.18.3") (source (origin (method url-fetch) (uri (bioconductor-uri "enrichplot" version)) (sha256 (base32 - "1x84wlkqisq1x2zniy4mp02zlsp4v85kxbflalmq0pixlkagq0vr")))) + "0nzcr23m58z3h0n0frxf26z14j7ilcl4fjy7rqm7f2i1wyld70zl")))) (build-system r-build-system) (propagated-inputs (list r-aplot @@ -10926,13 +11219,13 @@ profiles (GO and KEGG) of gene and gene clusters.") (define-public r-clusterexperiment (package (name "r-clusterexperiment") - (version "2.18.0") + (version "2.18.1") (source (origin (method url-fetch) (uri (bioconductor-uri "clusterExperiment" version)) (sha256 (base32 - "04kdiwz8qzr7cr1an1c7a684wqv9pkca0iaym5f069pdjhqvvq0a")))) + "1f3f56d88yiqyj45rhcwqb04wbxr9m4fxhbbckw1j7nykm8100ps")))) (build-system r-build-system) (native-inputs (list r-knitr)) @@ -11695,14 +11988,14 @@ investigation using RNA-seq data.") (define-public r-aucell (package (name "r-aucell") - (version "1.20.1") + (version "1.20.2") (source (origin (method url-fetch) (uri (bioconductor-uri "AUCell" version)) (sha256 (base32 - "0bq729kavqkam2s4dmfzixgznsys61j0lvj5pk3b70gxv44gmpsh")))) + "1qb13qd5xzgrpx6jlg3ll0ff5spz3y06ji31vvqzm759almg2w3s")))) (properties `((upstream-name . "AUCell"))) (build-system r-build-system) (propagated-inputs @@ -11711,6 +12004,7 @@ investigation using RNA-seq data.") r-delayedarray r-delayedmatrixstats r-gseabase + r-matrix r-mixtools r-r-utils r-shiny @@ -12531,14 +12825,14 @@ and data files used across sessions.") (define-public r-iclusterplus (package (name "r-iclusterplus") - (version "1.34.0") + (version "1.34.2") (source (origin (method url-fetch) (uri (bioconductor-uri "iClusterPlus" version)) (sha256 (base32 - "01bl1gmc1v1b4lh88sdazjvm8pl7383dgzxnhmzpxwz7lkcxi1h2")))) + "05y4jmbf8sxl32f3g5lw9ycxky0rw69gax3n2z0kif7xcb5qf3qv")))) (properties `((upstream-name . "iClusterPlus"))) (build-system r-build-system) (native-inputs (list gfortran)) @@ -12971,14 +13265,14 @@ annotations.") (define-public r-rsubread (package (name "r-rsubread") - (version "2.12.0") + (version "2.12.2") (source (origin (method url-fetch) (uri (bioconductor-uri "Rsubread" version)) (sha256 (base32 - "0iha7xln7l3mrmka8rcmmlp74f5km9rc88k9nv6bxw0krr03089n")))) + "1gvd8vmglvzc3bixqxrm4k7yikl2as5l4x6bvvvnwsgx2i7vz7dm")))) (properties `((upstream-name . "Rsubread"))) (build-system r-build-system) (inputs (list zlib)) @@ -13204,14 +13498,14 @@ manipulation of flow cytometry data.") (define-public r-ggcyto (package (name "r-ggcyto") - (version "1.26.0") + (version "1.26.4") (source (origin (method url-fetch) (uri (bioconductor-uri "ggcyto" version)) (sha256 (base32 - "0phhm54wcqihj62a0jk46whmf6wwg7wj3306wvnszy7yik4z857w")))) + "1pj1v0bhvckvwn1p826phskqz9lv71c1913cz5w0fd87dzdbpzpj")))) (properties `((upstream-name . "ggcyto"))) (build-system r-build-system) (propagated-inputs @@ -13427,38 +13721,30 @@ package.") (define-public r-opencyto (package (name "r-opencyto") - (version "2.10.0") + (version "2.10.1") (source (origin (method url-fetch) (uri (bioconductor-uri "openCyto" version)) (sha256 (base32 - "1pkpm98fs17zqdvyymd58sl4cib7gdi7drvdkagilrafjcrpq31m")))) + "16wsa9dhnz8gz1siyhfxvnbfg142g7fmhxiqxr7n69qpq9w8yhr0")))) (properties `((upstream-name . "openCyto"))) (build-system r-build-system) (propagated-inputs - (list r-biobase + (list r-bh + r-biobase r-biocgenerics - r-clue + r-cpp11 r-data-table r-flowclust r-flowcore - r-flowstats r-flowviz r-flowworkspace r-graph - r-gtools - r-ks - r-lattice - r-mass r-ncdfflow - r-plyr - r-r-utils r-rbgl - r-rcolorbrewer - r-rcpp - r-rrcov)) + r-rcolorbrewer)) (native-inputs (list r-knitr)) (home-page "https://bioconductor.org/packages/openCyto") @@ -13658,14 +13944,14 @@ data, to only emphasize the data that actually matters.") (define-public r-rcistarget (package (name "r-rcistarget") - (version "1.17.0") + (version "1.18.2") (source (origin (method url-fetch) (uri (bioconductor-uri "RcisTarget" version)) (sha256 (base32 - "1anwin5476q2n0zgywrmp3nj6sgy07i6pw1lczydvn4h1a8n1rvk")))) + "02lz2m2zhwy1dvmjvlss6qg0dh574qhnvn7al3wx7ck1hkz0dgi2")))) (properties `((upstream-name . "RcisTarget"))) (build-system r-build-system) (propagated-inputs @@ -15328,13 +15614,13 @@ functionality.") (define-public r-biocviews (package (name "r-biocviews") - (version "1.66.0") + (version "1.66.1") (source (origin (method url-fetch) (uri (bioconductor-uri "biocViews" version)) (sha256 (base32 - "1rgn0agw5m4y8838lxzq1r658h1pblaidmm444yfimjffa8znj23")))) + "1xplkzm29v6aysfhb6kf2nnmvc37jmcvv6vsgbx8z8qccn96jk02")))) (properties `((upstream-name . "biocViews"))) (build-system r-build-system) @@ -15346,6 +15632,7 @@ functionality.") r-rcurl r-xml r-runit)) + (native-inputs (list r-knitr)) (home-page "https://bioconductor.org/packages/biocViews") (synopsis "Bioconductor package categorization helper") (description "The purpose of biocViews is to create HTML pages that @@ -15914,14 +16201,14 @@ generated.") (define-public r-preprocesscore (package (name "r-preprocesscore") - (version "1.60.0") + (version "1.60.1") (source (origin (method url-fetch) (uri (bioconductor-uri "preprocessCore" version)) (sha256 (base32 - "1l0m591scln024jdpib47fndhx2wfp9jgkj3mdmwd9nkc5y0qjda")))) + "1rwr31jp4dh3xcfx1kx8rz5xvyx1mrwy85hqrjrfr4m6h0qv28k1")))) (properties `((upstream-name . "preprocessCore"))) (build-system r-build-system) @@ -15935,13 +16222,13 @@ routines.") (define-public r-s4vectors (package (name "r-s4vectors") - (version "0.36.0") + (version "0.36.1") (source (origin (method url-fetch) (uri (bioconductor-uri "S4Vectors" version)) (sha256 (base32 - "05al4diwdbsa9b37i8msxnp79fxk7k24dk2vhh131s3snb89jvfs")))) + "16lssnmhy3klqp4sw1328f38cixkjh9317gdyikcrmsbcwg2ak6v")))) (properties `((upstream-name . "S4Vectors"))) (build-system r-build-system) @@ -16425,13 +16712,13 @@ This package wraps C++ code from the MOODS motif calling library.") (define-public r-chromvar (package (name "r-chromvar") - (version "1.20.0") + (version "1.20.1") (source (origin (method url-fetch) (uri (bioconductor-uri "chromVAR" version)) (sha256 - (base32 "1rwgbicbmszdkr05ksxfsisyhk0a4pvc3jrxbzjyc13jj5h6m5kp")))) + (base32 "1nhhpqhpvmw6b0nwxdwsjnakmfpxzpii8fmabwwg9bk8ni3zj5dq")))) (properties `((upstream-name . "chromVAR"))) (build-system r-build-system) (propagated-inputs @@ -16532,14 +16819,14 @@ cell types to infer the cell of origin of each single cell independently.") (define-public r-scuttle (package (name "r-scuttle") - (version "1.8.1") + (version "1.8.3") (source (origin (method url-fetch) (uri (bioconductor-uri "scuttle" version)) (sha256 (base32 - "10wk46zgi57m9q9ab6wlmljcss3fph2r9yp1bp01s9yv7sd749b2")))) + "1wgh28rj8m5dz89s9y4rzfy68d8ign6pcnnwj9g7h4sc3jfsg56i")))) (properties `((upstream-name . "scuttle"))) (build-system r-build-system) (propagated-inputs @@ -16612,14 +16899,14 @@ quality control.") (define-public r-scran (package (name "r-scran") - (version "1.26.0") + (version "1.26.1") (source (origin (method url-fetch) (uri (bioconductor-uri "scran" version)) (sha256 (base32 - "11iwpw44600pfx01vqil97k728m1wf4dljr27k2ak4s7z75kxfih")))) + "1sqc8pf1qzm24kf1l45da12wbzv0nxsy6l3v9fc8srmnvk37p04p")))) (build-system r-build-system) (propagated-inputs (list r-beachmat @@ -17214,13 +17501,13 @@ EMBL-EBI GWAS catalog.") (define-public r-kegggraph (package (name "r-kegggraph") - (version "1.58.0") + (version "1.58.3") (source (origin (method url-fetch) (uri (bioconductor-uri "KEGGgraph" version)) (sha256 - (base32 "0hpsb009qmhy9p67d5wd0cl60smhgjlhxsz5f52i1c6qy4jk1niq")))) + (base32 "1s5j7zdp8ck4vhca81i4b6qclhwi56gmz8brawrxj3szvwmxf3y6")))) (properties `((upstream-name . "KEGGgraph"))) (build-system r-build-system) (propagated-inputs diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 207f3c3d28..8cdce01e73 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -172,52 +172,54 @@ (define-public aragorn (package (name "aragorn") - (version "1.2.38") + (version "1.2.41") (source (origin (method url-fetch) - (uri (string-append - "http://mbio-serv2.mbioekol.lu.se/ARAGORN/Downloads/aragorn" - version ".tgz")) + (uri (string-append "https://www.ansikte.se/ARAGORN/Downloads/" + "aragorn" version ".c")) (sha256 (base32 - "09i1rg716smlbnixfm7q1ml2mfpaa2fpn3hwjg625ysmfwwy712b")))) + "0jkzx7sqiarydvz3bwaxh790fpvpkfc926dhsza1dbdhq32ir8wj")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; there are no tests - #:phases - (modify-phases %standard-phases - (delete 'configure) - (replace 'build - (lambda _ - (invoke "gcc" - "-O3" - "-ffast-math" - "-finline-functions" - "-o" - "aragorn" - (string-append "aragorn" ,version ".c")) - #t)) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (man (string-append out "/share/man/man1"))) - (install-file "aragorn" bin) - (install-file "aragorn.1" man)) - #t))))) - (home-page "http://mbio-serv2.mbioekol.lu.se/ARAGORN") + (list + #:tests? #f ; there are no tests + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda _ + (invoke "gcc" "-O3" "-ffast-math" "-finline-functions" + "-o" "aragorn" #$source))) + (replace 'install + (lambda* (#:key inputs #:allow-other-keys) + (let ((bin (string-append #$output "/bin")) + (man (string-append #$output "/share/man/man1"))) + (install-file "aragorn" bin) + (mkdir-p man) + (copy-file (assoc-ref inputs "aragorn.1") + (string-append man "/aragorn.1")))))))) + (native-inputs + `(("aragorn.1" + ,(origin + (method url-fetch) + (uri "https://www.ansikte.se/ARAGORN/Downloads/aragorn.1") + (sha256 + (base32 + "0bn9lapa6f0cl07dbn2fjrapirv9d4bk7w248w39fhb4vbczcc3f")))))) + (home-page "https://www.ansikte.se/ARAGORN/") (synopsis "Detect tRNA, mtRNA and tmRNA genes in nucleotide sequences") (description "Aragorn identifies transfer RNA, mitochondrial RNA and transfer-messenger RNA from nucleotide sequences, based on homology to known tRNA consensus sequences and RNA structure. It also outputs the secondary structure of the predicted RNA.") - (license license:gpl2))) + (license license:gpl3+))) (define-public bamtools (package (name "bamtools") - (version "2.5.1") + (version "2.5.2") (source (origin (method git-fetch) (uri (git-reference @@ -226,21 +228,10 @@ structure of the predicted RNA.") (file-name (git-file-name name version)) (sha256 (base32 - "0nfb2ypcx9959xnbz6wxh6py3xfizgmg8nrknxl95c507m9hmq8b")))) + "14lw571vbks138i0lj66qjdbk8iwa817x2zbpzij61vv1gdgfbn5")))) (build-system cmake-build-system) - (arguments - `(#:tests? #f ;no "check" target - #:phases - (modify-phases %standard-phases - (add-before - 'configure 'set-ldflags - (lambda* (#:key outputs #:allow-other-keys) - (setenv "LDFLAGS" - (string-append - "-Wl,-rpath=" - (assoc-ref outputs "out") "/lib/bamtools")) - #t))))) - (inputs (list zlib)) + (inputs (list jsoncpp zlib)) + (native-inputs (list pkg-config)) (home-page "https://github.com/pezmaster31/bamtools") (synopsis "C++ API and command-line toolkit for working with BAM data") (description @@ -251,7 +242,7 @@ BAM files.") (define-public bamutils (package (name "bamutils") - (version "1.0.14") + (version "1.0.15") (source (origin (method git-fetch) (uri (git-reference @@ -260,21 +251,22 @@ BAM files.") (file-name (git-file-name name version)) (sha256 (base32 - "0i2r332k1kz0jysyg89d858wqq59n16lw6dv5qmilcwshb77r9v7")))) + "1pxydf9qsr8667jh525bc2wiqn9nwk8rkg05kbyfmjs8d261fl9y")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; Unclear how to run tests - #:make-flags - ,#~(list "USER_WARNINGS=-std=gnu++98" ; - (string-append "INSTALLDIR=" #$output "/bin")) - #:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "src/Makefile" ; - (("^DATE=.*") "DATE=\"1970-01-01\"\n")) - (copy-recursively (assoc-ref inputs "libstatgen") - "../libStatGen")))))) + (list + #:tests? #f ;fails to link debug libraries + #:test-target "test" + #:make-flags + #~(list (string-append "INSTALLDIR=" #$output "/bin")) + #:phases + #~(modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/Makefile" + (("^DATE=.*") "DATE=\"1970-01-01\"\n")) + (copy-recursively (assoc-ref inputs "libstatgen") + "../libStatGen")))))) (inputs (list zlib)) (native-inputs @@ -287,7 +279,7 @@ BAM files.") (file-name (git-file-name "libstatgen" version)) (sha256 (base32 - "0q9iyk046r4m7qnav8c3f28zsar25lj9nydiklwaswmzdijhi4p1")))))) + "0spvbpvnpxrgj8kajpkhf1mv7kdyvj723y9zh13jykvnjh8a15j3")))))) (home-page "https://genome.sph.umich.edu/wiki/BamUtil") (synopsis "Programs for working on SAM/BAM files") (description "This package provides several programs that perform @@ -372,7 +364,7 @@ transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.") (define-public bedops (package (name "bedops") - (version "2.4.35") + (version "2.4.41") (source (origin (method git-fetch) (uri (git-reference @@ -381,39 +373,49 @@ transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.") (file-name (git-file-name name version)) (sha256 (base32 - "0mmgsgwz5r9w76hzgxkxc9s9lkdhhaf7vr6i02b09vbswvs1fyqx")))) + "046037qdxsn01ln28rbrwnc7wq4a3xahmb2k74l0w75dby5ni42l")))) (build-system gnu-build-system) (arguments - '(#:tests? #f - #:make-flags (list (string-append "BINDIR=" %output "/bin")) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'unpack-tarballs - (lambda _ - ;; FIXME: Bedops includes tarballs of minimally patched upstream - ;; libraries jansson, zlib, and bzip2. We cannot just use stock - ;; libraries because at least one of the libraries (zlib) is - ;; patched to add a C++ function definition (deflateInit2cpp). - ;; Until the Bedops developers offer a way to link against system - ;; libraries we have to build the in-tree copies of these three - ;; libraries. - - ;; See upstream discussion: - ;; https://github.com/bedops/bedops/issues/124 - - ;; Unpack the tarballs to benefit from shebang patching. - (with-directory-excursion "third-party" - (invoke "tar" "xvf" "jansson-2.6.tar.bz2") - (invoke "tar" "xvf" "zlib-1.2.7.tar.bz2") - (invoke "tar" "xvf" "bzip2-1.0.6.tar.bz2")) - ;; Disable unpacking of tarballs in Makefile. - (substitute* "system.mk/Makefile.linux" - (("^\tbzcat .*") "\t@echo \"not unpacking\"\n") - (("\\./configure") "CONFIG_SHELL=bash ./configure")) - (substitute* "third-party/zlib-1.2.7/Makefile.in" - (("^SHELL=.*$") "SHELL=bash\n")) - #t)) - (delete 'configure)))) + (list + ;; We cannot run the tests because the build system makes strange + ;; assumptions about where executables are located. + #:tests? #false + #:test-target "tests" + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'unpack-tarballs + (lambda _ + ;; FIXME: Bedops includes tarballs of minimally patched upstream + ;; libraries jansson, zlib, and bzip2. We cannot just use stock + ;; libraries because at least one of the libraries (zlib) is + ;; patched to add a C++ function definition (deflateInit2cpp). + ;; Until the Bedops developers offer a way to link against system + ;; libraries we have to build the in-tree copies of these three + ;; libraries. + + ;; See upstream discussion: + ;; https://github.com/bedops/bedops/issues/124 + + ;; Unpack the tarballs to benefit from shebang patching. + (with-directory-excursion "third-party" + (invoke "tar" "xvf" "jansson-2.6.tar.bz2") + (invoke "tar" "xvf" "zlib-1.2.7.tar.bz2") + (invoke "tar" "xvf" "bzip2-1.0.6.tar.bz2")) + ;; Disable unpacking of tarballs in Makefile. + (substitute* "system.mk/Makefile.linux" + (("^\tbzcat .*") "\t@echo \"not unpacking\"\n") + (("\\./configure") "CONFIG_SHELL=bash ./configure")) + (substitute* "third-party/zlib-1.2.7/Makefile.in" + (("^SHELL=.*$") "SHELL=bash\n")))) + (delete 'configure) + (replace 'install + (lambda _ + (invoke "make" "install" + (string-append "BINDIR=" #$output "/bin"))))))) + (native-inputs + (list diffutils perl which)) (home-page "https://github.com/bedops/bedops") (synopsis "Tools for high-performance genomic feature operations") (description @@ -443,14 +445,15 @@ computational cluster.") "1f2hh79l7dn147c2xyfgf5wfjvlqfw32kjfnnh2n1qy6rpzx2fik")))) (build-system gnu-build-system) (arguments - `(#:test-target "test" - #:make-flags - ,#~(list (string-append "prefix=" #$output)) - #:phases - (modify-phases %standard-phases + (list + #:test-target "test" + #:make-flags + #~(list (string-append "prefix=" #$output)) + #:phases + '(modify-phases %standard-phases (delete 'configure)))) (native-inputs - `(("python" ,python-wrapper))) + (list python-wrapper)) (inputs (list samtools zlib)) (home-page "https://github.com/arq5x/bedtools2") @@ -479,63 +482,101 @@ BED, GFF/GTF, VCF.") (base32 "11rvca19ncg03kxd0wzlfx5ws7r3nisd0z8s9j9n182d8ksp2pxz")))) (arguments - '(#:test-target "test" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'compatibility - (lambda _ - (substitute* "src/utils/fileType/FileRecordTypeChecker.h" - (("static const float PERCENTAGE") - "static constexpr float PERCENTAGE")) - (substitute* "src/utils/general/DualQueue.h" - (("template <class T, template<class T> class CompareFunc>") - "template <class T, template<class U> class CompareFunc>")))) - (delete 'configure) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))) - (for-each (lambda (file) - (install-file file bin)) - (find-files "bin" ".*")))))))) + (list + #:test-target "test" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'compatibility + (lambda _ + (substitute* "src/utils/fileType/FileRecordTypeChecker.h" + (("static const float PERCENTAGE") + "static constexpr float PERCENTAGE")) + (substitute* "src/utils/general/DualQueue.h" + (("template <class T, template<class T> class CompareFunc>") + "template <class T, template<class U> class CompareFunc>")))) + (delete 'configure) + (replace 'install + (lambda _ + (let ((bin (string-append #$output "/bin/"))) + (for-each (lambda (file) + (install-file file bin)) + (find-files "bin" ".*")))))))) (native-inputs - `(("python" ,python-wrapper))) + (list python-wrapper)) (inputs (list samtools zlib)))) (define-public pbcopper - ;; This is the latest commit at the time of this writing. - (let ((commit "ad4143afd25a0bd6adc977c544865c992a515841") + (package + (name "pbcopper") + (version "2.0.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/PacificBiosciences/pbcopper") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "04mgmla96bsmr9gijbn3ibspry625cv4kqqxv70z4jq4qc407jy3")))) + (build-system meson-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-meson-files + (lambda _ + (substitute* "meson.build" + (("-msse4.1") ""))))))) + (inputs + (list boost)) + (native-inputs + (list googletest pkg-config)) + (home-page "https://github.com/PacificBiosciences/pbcopper") + (synopsis "Data structures, algorithms, and utilities for PacBio C++ applications") + (description + "The pbcopper library provides a suite of data structures, algorithms, +and utilities for PacBio C++ applications.") + (license license:bsd-3))) + +(define-public r-bedtorch + (let ((commit "f5ff4f83b94f59eac660333c64e4b2f296b35cea") (revision "1")) (package - (name "pbcopper") - (version (git-version "1.9.0" revision commit)) + (name "r-bedtorch") + (version (git-version "0.1.12.12" revision commit)) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/PacificBiosciences/pbcopper") + (url "https://github.com/haizi-zh/bedtorch/") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 - "1qxkbpdkamfisnk36lpi1vdvf3p1lg2hdqna3xgd94pz52bwbmp7")))) - (build-system meson-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-meson-files - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "meson.build" - (("-msse4.1") ""))))))) - (inputs - (list boost)) - (native-inputs - (list googletest pkg-config)) - (home-page "https://github.com/PacificBiosciences/pbcopper") - (synopsis "Data structures, algorithms, and utilities for PacBio C++ applications") + "08l04iqf54b5995gc7rvqqd7w327fwqs7qjyhc9y5cqfj8yv4c48")))) + (properties `((upstream-name . "bedtorch"))) + (build-system r-build-system) + (propagated-inputs + (list r-assertthat + r-curl + r-data-table + r-dplyr + r-genomeinfodb + r-genomicranges + r-purrr + r-r-utils + r-rcpp + r-rcurl + r-readr + r-rhtslib12 + r-s4vectors + r-stringr + r-tidyr)) + (home-page "https://github.com/haizi-zh/bedtorch/") + (synopsis "R package for fast BED-file manipulation") (description - "The pbcopper library provides a suite of data structures, algorithms, -and utilities for PacBio C++ applications.") - (license license:bsd-3)))) + "The goal of bedtorch is to provide a fast BED file manipulation tool +suite native in R.") + (license license:expat)))) (define-public r-btools (let ((commit "fa21d4ca01d37ea4d98b45582453f3bf95cbc2b5") @@ -573,10 +614,37 @@ and utilities for PacBio C++ applications.") for all types of microbial diversity analyses.") (license license:expat)))) +(define-public r-rhtslib12 + (let ((commit "ee186daf04876969c7f31c16a0e0fda8e7c16a30") + (revision "1")) + (package + (name "r-rhtslib12") + (version (git-version "1.23.2" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/haizi-zh/Rhtslib12") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0a3kkp0phi2fq6ip8p9vfj3axn7l15f2mb51a6v3ai4nlkhqqawj")))) + (properties `((upstream-name . "Rhtslib12"))) + (build-system r-build-system) + (propagated-inputs (list curl zlib r-zlibbioc)) + (native-inputs (list pkg-config r-knitr)) + (home-page "https://github.com/haizi-zh/Rhtslib12") + (synopsis "HTSlib high-throughput sequencing library as an R package") + (description + "This package provides version 1.12 of the HTSlib C library for +high-throughput sequence analysis. The package is primarily useful to +developers of other R packages who wish to make use of HTSlib.") + (license license:lgpl2.0+)))) + (define-public pbbam (package (name "pbbam") - (version "1.7.0") + (version "2.1.0") (source (origin (method git-fetch) (uri (git-reference @@ -585,7 +653,7 @@ for all types of microbial diversity analyses.") (file-name (git-file-name name version)) (sha256 (base32 - "1avdm5hwhr5ls79017blyalx1npzbf1aa6dgb6j6lg8sq4nk9yyg")))) + "1iyazi3l7dswpfxh39k5j7ydi0ywja0579xz3r6l9kkwz2n1z6dc")))) (build-system meson-build-system) (arguments `(#:phases @@ -606,13 +674,13 @@ for all types of microbial diversity analyses.") (string-append "'" (which "sh") "'")))))))) ;; These libraries are listed as "Required" in the pkg-config file. (propagated-inputs - (list htslib pbcopper zlib)) + (list htslib-1.14 pbcopper zlib)) (inputs (list boost samtools)) (native-inputs - `(("googletest" ,googletest) - ("pkg-config" ,pkg-config) - ("python" ,python-wrapper))) ; for tests + (list googletest + pkg-config + python-wrapper)) ;for tests (home-page "https://github.com/PacificBiosciences/pbbam") (synopsis "Work with PacBio BAM files") (description @@ -683,8 +751,7 @@ speedup comes during compression.") m (format #f "cpp.find_library('hdf5', dirs : '~a'), \ cpp.find_library('hdf5_cpp', dirs : '~a'), " - hdf5 hdf5))))) - #t)) + hdf5 hdf5))))))) (add-after 'unpack 'find-googletest (lambda* (#:key inputs #:allow-other-keys) ;; It doesn't find gtest_main because there's no pkg-config file @@ -693,8 +760,7 @@ cpp.find_library('hdf5_cpp', dirs : '~a'), " (("libblasr_gtest_dep = dependency\\('gtest_main'.*") (format #f "cpp = meson.get_compiler('cpp') libblasr_gtest_dep = cpp.find_library('gtest_main', dirs : '~a')\n" - (assoc-ref inputs "googletest")))) - #t))) + (assoc-ref inputs "googletest"))))))) ;; TODO: unittest/libblasr_unittest cannot be linked ;; ld: ;; unittest/df08227@@libblasr_unittest@exe/alignment_utils_FileUtils_gtest.cpp.o: ;; undefined reference to symbol @@ -814,26 +880,23 @@ provides the Ribotaper pipeline.") (base32 "1pxc3zdnirxbf9a0az698hd8xdik7qkhypm7v6hn922x8y9qmspm")))) (build-system gnu-build-system) - (inputs - (list zlib)) - (native-inputs - (list bison)) + (inputs (list zlib)) + (native-inputs (list bison)) (arguments - `(#:tests? #f ; There are no tests to run. - ;; Bison must generate files, before other targets can build. - #:parallel-build? #f - #:phases - (modify-phases %standard-phases - (delete 'configure) ; There is no configure phase. - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (man (string-append out "/share/man/man1"))) - (mkdir-p man) - (copy-file "awk.1" (string-append man "/bioawk.1")) - (install-file "bioawk" bin)) - #t))))) + (list + #:tests? #f ; There are no tests to run. + ;; Bison must generate files, before other targets can build. + #:parallel-build? #f + #:phases + #~(modify-phases %standard-phases + (delete 'configure) ; There is no configure phase. + (replace 'install + (lambda _ + (let ((bin (string-append #$output "/bin")) + (man (string-append #$output "/share/man/man1"))) + (mkdir-p man) + (copy-file "awk.1" (string-append man "/bioawk.1")) + (install-file "bioawk" bin))))))) (home-page "https://github.com/lh3/bioawk") (synopsis "AWK with bioinformatics extensions") (description "Bioawk is an extension to Brian Kernighan's awk, adding the @@ -1237,21 +1300,21 @@ sequencing.") (define-public python-biopython (package (name "python-biopython") - (version "1.76") + (version "1.80") (source (origin (method url-fetch) ;; use PyPi rather than biopython.org to ease updating (uri (pypi-uri "biopython" version)) (sha256 (base32 - "0wlch9xpa0fpgjzyxi6jsfca6iakaq9a05927xg8vqnmvaccnwrq")))) - (build-system python-build-system) + "0hqf3jsxn2sphcx81fx7x3i69sarpjsi70fzw98f8rw7z2d5x02j")))) + (build-system pyproject-build-system) (arguments - `(#:phases + '(#:phases (modify-phases %standard-phases (add-before 'check 'set-home ;; Some tests require a home directory to be set. - (lambda _ (setenv "HOME" "/tmp") #t))))) + (lambda _ (setenv "HOME" "/tmp")))))) (propagated-inputs (list python-numpy)) (home-page "https://biopython.org/") @@ -2077,8 +2140,7 @@ genome (2.9 GB for paired-end).") '(begin ;; Remove bundled SeqAn and samtools (delete-file-recursively "src/SeqAn-1.4.2") - (delete-file-recursively "src/samtools-0.1.18") - #t)))) + (delete-file-recursively "src/samtools-0.1.18"))))) (build-system gnu-build-system) (arguments '(#:parallel-build? #f ; not supported @@ -2093,8 +2155,7 @@ genome (2.9 GB for paired-end).") (string-join (delete (string-append gcc "/include/c++") (string-split (getenv "CPLUS_INCLUDE_PATH") #\:)) - ":")) - #t))) + ":"))))) (add-after 'unpack 'use-system-samtools (lambda* (#:key inputs #:allow-other-keys) (substitute* "src/Makefile.in" @@ -2114,8 +2175,7 @@ genome (2.9 GB for paired-end).") "src/map2gtf.h" "src/align_status.h") (("#include <bam.h>") "#include <samtools/bam.h>") - (("#include <sam.h>") "#include <samtools/sam.h>")) - #t))))) + (("#include <sam.h>") "#include <samtools/sam.h>"))))))) (native-inputs `(("gcc@5" ,gcc-5))) ;; doesn't build with later versions (inputs @@ -2267,23 +2327,34 @@ off-target reads for a capture method that targets CpG-rich region.") (define-public python-bx-python (package (name "python-bx-python") - (version "0.8.12") + (version "0.9.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/bxlab/bx-python") - (commit "f4e6a5c93e719db69b5798b6fdd9b167da358316"))) + (commit "4f4a48d3f227ae390c1b22072867ba86e347bdef"))) (file-name (git-file-name name version)) (sha256 (base32 - "0mclahslz34vq9x424jmzsxk0nmpm1j716fa8h3zwr9ssvch7skc")))) - (build-system python-build-system) + "1c914rw8phiw7zwzngz9i9hdciz5lq53drwdbpl2bd2sf5bj2biy")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + '(modify-phases %standard-phases + (add-before 'check 'build-extensions + (lambda _ + ;; Cython extensions have to be built before running the tests. + (invoke "python" "setup.py" "build_ext" "--inplace"))) + ;; Unrecognized argument. + (add-after 'unpack 'disable-cython-doctests + (lambda _ (substitute* "pytest.ini" (("--doctest-cython") ""))))))) (propagated-inputs (list python-numpy)) (inputs (list zlib)) (native-inputs - (list python-lzo python-nose python-cython)) + (list python-cython python-lzo python-pytest)) (home-page "https://github.com/bxlab/bx-python") (synopsis "Tools for manipulating biological data") (description @@ -2329,7 +2400,7 @@ has several key features: (define-public python-pysam (package (name "python-pysam") - (version "0.18.0") + (version "0.20.0") (source (origin (method git-fetch) ;; Test data is missing on PyPi. @@ -2339,12 +2410,12 @@ has several key features: (file-name (git-file-name name version)) (sha256 (base32 - "042ca27r6634xg2ixgvq1079cp714wmm6ml7bwc1snn0wxxzywfg")) + "1dq6jwwm98lm30ijdgqc5xz5ppda4nj999y6qs78mhw8x0kij8gg")) (modules '((guix build utils))) (snippet '(begin ;; FIXME: Unbundle samtools and bcftools. (delete-file-recursively "htslib"))))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -2413,17 +2484,31 @@ UCSC genome browser.") (define-public python-plastid (package (name "python-plastid") - (version "0.5.1") + (version "0.6.0") (source (origin - (method url-fetch) - (uri (pypi-uri "plastid" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/joshuagryphon/plastid") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1a7mdky2xw02y88l51f58pqk8039ahdp6sblj3zx58zarmy2pqyl")))) - (build-system python-build-system) + "1ka9j08j6i105l89w8b7sg0l8lm3lcrxzy4cjl5dp4cxdmycap62")))) + (build-system pyproject-build-system) (arguments - ;; Some test files are not included. - `(#:tests? #f)) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'unpack-test-data + (lambda* (#:key inputs #:allow-other-keys) + (invoke "tar" "-C" "plastid/test" + "-xf" (assoc-ref inputs "test-data")) + ;; This one requires bowtie-build + (delete-file "plastid/test/functional/test_crossmap.py"))) + (add-before 'check 'build-extensions + (lambda _ + ;; Cython extensions have to be built before running the tests. + (invoke "python3" "setup.py" "build_ext" "--inplace")))))) (propagated-inputs (list python-numpy python-scipy @@ -2433,8 +2518,18 @@ UCSC genome browser.") python-biopython python-twobitreader python-termcolor)) + (inputs + (list openssl)) (native-inputs - (list python-cython python-nose)) + `(("python-cython" ,python-cython) + ("python-nose" ,python-nose) + ("test-data" + ,(origin + (method url-fetch) + (uri "https://www.dropbox.com/s/np3wlfvp6gx8tb8/2022-05-04.plastid-test-data.tar.bz2?dl=1") + (file-name "plastid-test-data-2022-05-04.tar.bz2") + (sha256 + (base32 "1szsji06m2r21flnvxg84jnj5zmlk6z10c9651v9ag71nxj9rbzn")))))) (home-page "https://github.com/joshuagryphon/plastid") (synopsis "Python library for genomic analysis") (description @@ -3642,6 +3737,81 @@ software to answer ad hoc questions.") go-golang-org-x-image go-golang-org-x-text)))) +(define-public python-bamnostic + (package + (name "python-bamnostic") + (version "1.1.8") + (source (origin + (method url-fetch) + (uri (pypi-uri "bamnostic" version)) + (sha256 + (base32 + "0cjpzyqz6r4lmiwry2gcxdczwpkhl3lyyjg4s8addln17691ysxk")))) + (build-system pyproject-build-system) + (propagated-inputs (list python-pytest)) + (home-page "https://github.com/betteridiot/bamnostic/") + (synopsis "Tool for binary alignment map, random access and parsing") + (description + "Bamnostic is a pure Python @dfn{Binary Alignment Map} (BAM) file parser +and random access tool.") + (license license:bsd-3))) + +(define-public python-episcanpy + (package + (name "python-episcanpy") + (version "0.4.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "episcanpy" version)) + (sha256 + (base32 + "1qqcyhyzy6idpjmidfdpzwk02hbxm25rymz42h51nlk0vd4r2wwm")))) + (build-system pyproject-build-system) + (arguments + (list + ;; The tests import episcanpy.api, but this is known to not work. + ;; See https://github.com/colomemaria/epiScanpy/issues/133 + #:tests? #false + #:phases + '(modify-phases %standard-phases + ;; Numba needs a writable dir to cache functions. + (add-before 'build 'set-numba-cache-dir + (lambda _ + (setenv "NUMBA_CACHE_DIR" "/tmp")))))) + (propagated-inputs + (list python-anndata + python-bamnostic + python-h5py + python-intervaltree + python-joblib + python-kneed + python-legacy-api-wrap + python-matplotlib + python-natsort + python-networkx + python-numba + python-numpy + python-packaging + python-pandas + python-scanpy + python-scikit-learn + python-scipy + python-seaborn + python-statsmodels + python-tqdm + python-pysam + python-tbb + python-umap-learn)) + (native-inputs (list python-pytest python-setuptools-scm)) + (home-page "https://github.com/colomemaria/epiScanpy") + (synopsis "Tool for epigenomics single cell analysis") + (description + "EpiScanpy is a toolkit to analyse single-cell open +chromatin (scATAC-seq) and single-cell DNA methylation (for example scBS-seq) +data. EpiScanpy is the epigenomic extension of the very popular scRNA-seq +analysis tool Scanpy (Genome Biology, 2018).") + (license license:bsd-3))) + (define-public exonerate (package (name "exonerate") @@ -4730,7 +4900,7 @@ performance.") (define-public htslib (package (name "htslib") - (version "1.14") + (version "1.16") (source (origin (method url-fetch) (uri (string-append @@ -4738,7 +4908,7 @@ performance.") version "/htslib-" version ".tar.bz2")) (sha256 (base32 - "0pwk8yhhvb85mi1d2qhwsb4samc3rmbcrq7b1s0jz0glaa7in8pd")))) + "093r1n4s134k50m9a925yn95gyi90ps5dlgc6gq4qwvkzxx7qsv0")))) (build-system gnu-build-system) ;; Let htslib translate "gs://" and "s3://" to regular https links with ;; "--enable-gcs" and "--enable-s3". For these options to work, we also @@ -4764,6 +4934,18 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and ;; the rest is released under the Expat license (license (list license:expat license:bsd-3)))) +(define-public htslib-1.14 + (package/inherit htslib + (version "1.14") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/samtools/htslib/releases/download/" + version "/htslib-" version ".tar.bz2")) + (sha256 + (base32 + "0pwk8yhhvb85mi1d2qhwsb4samc3rmbcrq7b1s0jz0glaa7in8pd")))))) + (define-public htslib-1.12 (package/inherit htslib (version "1.12") @@ -6945,19 +7127,19 @@ bioinformatics file formats, sequence alignment, and more.") (define-public seqmagick (package (name "seqmagick") - (version "0.8.0") + (version "0.8.4") (source (origin (method url-fetch) (uri (pypi-uri "seqmagick" version)) (sha256 (base32 - "0pf98da7i59q47gwrbx0wjk6xlvbybiwphw80w7h4ydjj0579a2b")))) - (build-system python-build-system) + "0c6skyig8fyylnbj4597pjj9h0dn36rkxrhwd34yrsc6k6f7r8a0")))) + (build-system pyproject-build-system) (inputs - (list python-biopython)) + (list python-biopython python-pygtrie)) (native-inputs - (list python-nose)) + (list python-pytest)) (home-page "https://github.com/fhcrc/seqmagick") (synopsis "Tools for converting and modifying sequence files") (description @@ -10843,25 +11025,12 @@ API services.") (sha256 (base32 "1b4qyngwagh5sc2ygyfqyirg63myzh1g1glk03a1ykxfii32cjlp")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments (list #:tests? #f ;pypi source does not contain tests #:phases #~(modify-phases %standard-phases - (replace 'build - (lambda _ - ;; ZIP does not support timestamps before 1980. - (setenv "SOURCE_DATE_EPOCH" "315532800") - (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) - (replace 'install - (lambda _ - (for-each - (lambda (wheel) - (format #t wheel) - (invoke "python" "-m" "pip" "install" - wheel (string-append "--prefix=" #$output))) - (find-files "dist" "\\.whl$")))) (add-before 'sanity-check 'set-env (lambda _ ;; numba RuntimeError: cannot cache function 'rdist' @@ -12811,32 +12980,35 @@ implementation differs in these ways: (sha256 (base32 "0k524xnx3dvpz5yx65p316wghvi01zs17is8w2m3w2qywiswk0sl")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'build - (lambda _ - (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" ,version) - ;; ZIP does not support timestamps before 1980. - (setenv "SOURCE_DATE_EPOCH" "315532800") - (invoke "flit" "build"))) - (replace 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (let ((out (assoc-ref outputs "out"))) - (for-each (lambda (wheel) - (format #true wheel) - (invoke "python" "-m" "pip" "install" - wheel (string-append "--prefix=" out))) - (find-files "dist" "\\.whl$"))))) - ;; Numba needs a writable dir to cache functions. - (add-before 'check 'set-numba-cache-dir - (lambda _ - (setenv "NUMBA_CACHE_DIR" "/tmp"))) - (replace 'check - (lambda* (#:key tests? inputs #:allow-other-keys) - (when tests? + (list + #:test-flags + '(list "-k" + ;; Plot tests that fail. + (string-append "not test_dotplot_matrixplot_stacked_violin" + " and not test_violin_without_raw" + " and not test_correlation" + " and not test_scatterplots" + " and not test_scatter_embedding_add_outline_vmin_vmax_norm" + " and not test_paga" + " and not test_paga_compare" + " and not test_clustermap" + + ;; These try to connect to the network + " and not test_scrublet_plots" + " and not test_plot_rank_genes_groups_gene_symbols" + " and not test_pca_n_pcs" + " and not test_pca_chunked" + " and not test_pca_sparse" + " and not test_pca_reproducible")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'pretend-version + (lambda _ + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version))) + (add-after 'unpack 'delete-bad-tests + (lambda _ ;; These tests require Internet access. (delete-file-recursively "scanpy/tests/notebooks") (delete-file "scanpy/tests/test_clustering.py") @@ -12863,27 +13035,11 @@ implementation differs in these ways: (setenv "PYTHONPATH" (string-append (getcwd) ":" - (assoc-ref inputs "python-anndata:source") ":" - (getenv "GUIX_PYTHONPATH"))) - (invoke "pytest" "-vv" - "-k" - ;; Plot tests that fail. - (string-append "not test_dotplot_matrixplot_stacked_violin" - " and not test_violin_without_raw" - " and not test_correlation" - " and not test_scatterplots" - " and not test_scatter_embedding_add_outline_vmin_vmax_norm" - " and not test_paga" - " and not test_paga_compare" - " and not test_clustermap" - - ;; These try to connect to the network - " and not test_scrublet_plots" - " and not test_plot_rank_genes_groups_gene_symbols" - " and not test_pca_n_pcs" - " and not test_pca_chunked" - " and not test_pca_sparse" - " and not test_pca_reproducible")))))))) + #$(this-package-native-input "python-anndata:source") ":" + (getenv "GUIX_PYTHONPATH"))))) + ;; Numba needs a writable dir to cache functions. + (add-before 'check 'set-numba-cache-dir + (lambda _ (setenv "NUMBA_CACHE_DIR" "/tmp")))))) (propagated-inputs (list python-anndata python-dask @@ -13373,7 +13529,7 @@ includes operations like compartment, insulation or peak calling.") (define-public python-hicmatrix (package (name "python-hicmatrix") - (version "15") + (version "16") (source (origin ;;Pypi sources do not contain any test @@ -13384,11 +13540,12 @@ includes operations like compartment, insulation or peak calling.") (file-name (git-file-name name version)) (sha256 (base32 - "1dshjxgb16sdfg9k1bhw2yhyngac04k4ca7aqy8g3i3pprr068r5")))) - (build-system python-build-system) + "00b9l62j4knrsdp7l3pawi9cqcsl09diycbhmmnar850bzssmq4f")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases + (list + #:phases + '(modify-phases %standard-phases (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? @@ -13412,7 +13569,7 @@ the HiCExplorer and pyGenomeTracks packages.") (define-public python-hicexplorer (package (name "python-hicexplorer") - (version "2.1.4") + (version "3.7.2") (source (origin ;; The latest version is not available on Pypi. @@ -13423,32 +13580,114 @@ the HiCExplorer and pyGenomeTracks packages.") (file-name (git-file-name name version)) (sha256 (base32 - "0q5gpbzmrkvygqgw524q36b4nrivcmyi5v194vsx0qw7b3gcmq08")))) - (build-system python-build-system) + "1yavgxry38g326z10bclvdf8glmma05fxj5m73h15m1r2l9xmw3v")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'loosen-up-requirements - (lambda _ - (substitute* "setup.py" - (("==") ">=")) - #t))))) + (list + #:test-flags + '(list "hicexplorer/test/general/" + "--ignore" "hicexplorer/test/general/test_hicTADClassifier.py" + "--ignore" "hicexplorer/test/general/test_hicTrainTADClassifier.py" + "-k" + (string-append + ;; Unknown chromosome: ChrX + "not test_build_matrix_restrictionCutFile_two" + ;; fixture 'keepSelfLigation' not found + " and not test_build_matrix_restrictionCutFile_six" + ;; ValueError: object dtype is not supported by sparse matrices + " and not test_hic_transfer_obs_exp_perChromosome" + + ;; No KR balancing available + " and not test_correct_matrix_KR_partial_cool" + " and not test_correct_matrix_KR_cool" + " and not test_correct_matrix_KR_H5")) + #:phases + #~(modify-phases %standard-phases + ;; See https://github.com/deeptools/Knight-Ruiz-Matrix-balancing-algorithm/issues/23 + (add-after 'unpack 'remove-dependency-on-krbalancing + (lambda _ + (substitute* "hicexplorer/hicCorrectMatrix.py" + (("from krbalancing import.*") "") + (("( *)assert\\(args.correctionMethod == 'KR'\\)" m indent) + (string-append m "\n" + indent "log.error('krbalancing not available')\n" + indent "exit(1)"))) + (substitute* "setup.py" + (("\"krbalancing >= 0.0.5\",") "")) + (substitute* "requirements.txt" + (("krbalancing >= 0.0.5") "")))) + (add-after 'unpack 'fix-references + (lambda _ + (let ((site (string-append #$output "/lib/python" + #$(version-major+minor + (package-version python)) + "/site-packages"))) + (substitute* "hicexplorer/lib/tadClassifier.py" + (("model_location = site.getsitepackages\\(\\)\\[0\\]") + (string-append "model_location = \"" site "\"")))) + (substitute* "hicexplorer/hicFindRestSite.py" + (("subprocess.check_output\\(\\[\"cat\"") + (string-append "subprocess.check_output([\"" + (which "cat") "\"")) + (("cmd = 'sort -k1") + (string-append "cmd = '" (which "sort") " -k1"))))) + ;; The tests aim to detect available memory and run more tests when + ;; there is more available memory. Let's run them deterministically + ;; instead and don't run any tests that require more than 1GB of + ;; RAM. + (add-after 'unpack 'run-only-low-mem-tests + (lambda _ + (with-directory-excursion "hicexplorer/test" + (substitute* '("trivial_runs/test_hicBuildMatrix_trivial_runs_2.py" + "trivial_runs/test_hicAggregateContacts_trivial_runs_five.py" + "trivial_runs/test_hicAggregateContacts_trivial_runs_four.py" + "trivial_runs/test_hicAggregateContacts_trivial_runs.py" + "trivial_runs/test_hicAggregateContacts_trivial_runs_two_1.py" + "trivial_runs/test_hicBuildMatrix_trivial_runs.py" + "trivial_runs/test_hicAggregateContacts_trivial_runs_two_3.py" + "trivial_runs/test_hicAggregateContacts_trivial_runs_three.py" + "trivial_runs/test_hicAggregateContacts_trivial_runs_two.py" + "trivial_runs/test_hicAggregateContacts_trivial_runs_two_2.py" + "trivial_runs/test_hicAggregateContacts_trivial_runs_six.py" + "general/test_hicDifferentialTAD.py" + "general/test_hicDetectLoops.py" + "general/test_hicPlotMatrix.py" + "general/test_hicHyperoptDetectLoops.py" + "general/test_hicCreateThresholdFile.py" + "general/test_hicMergeDomains.py" + "general/test_hicHyperoptDetectLoopsHiCCUPS.py" + "general/test_hicAggregateContacts.py" + "general/test_hicInterIntraTAD.py") + (("^memory =.*") "memory = 1\n")))))))) (propagated-inputs (list python-biopython - python-configparser + python-cleanlab-1 python-cooler + python-fit-nbinom python-future + python-graphviz + python-hic2cool + python-hicmatrix + python-hyperopt + python-imbalanced-learn python-intervaltree + python-ipykernel python-jinja2 python-matplotlib python-numpy python-pandas + python-psutil + python-pybedtools python-pybigwig + python-pygenometracks python-pysam + python-scikit-learn python-scipy - python-six python-tables + python-tqdm python-unidecode)) + (native-inputs + (list graphviz)) ;for hicexplorer/test/test_compute_function.py (home-page "https://hicexplorer.readthedocs.io") (synopsis "Process, analyze and visualize Hi-C data") (description @@ -13465,25 +13704,25 @@ genomic scores), long range contacts and the visualization of viewpoints.") (define-public python-pygenometracks (package (name "python-pygenometracks") - (version "3.3") + (version "3.5") (source (origin (method url-fetch) (uri (pypi-uri "pyGenomeTracks" version)) (sha256 (base32 - "16laa0wnf4qn9fb9ych4w1vqhqwjss70v0y0f6wp4gwqfrlgac0f")))) - (build-system python-build-system) + "1l7smg2gc1vm2181lzmdnywb11gp6s6z6j444dbsigv65car8z8p")))) + (build-system pyproject-build-system) (arguments - `(#:tests? #f ; there are none - #:phases - (modify-phases %standard-phases + (list + #:tests? #f ;there are none + #:phases + '(modify-phases %standard-phases (add-after 'unpack 'relax-requirements (lambda _ (substitute* "setup.py" (("matplotlib ==3.1.1") - "matplotlib >=3.1.1")) - #t))))) + "matplotlib >=3.1.1"))))))) (propagated-inputs (list python-future python-gffutils @@ -14142,7 +14381,7 @@ polymorphisms) and indels with respect to a reference genome and more.") (define-public cnvkit (package (name "cnvkit") - (version "0.9.5") + (version "0.9.9") (source (origin (method git-fetch) @@ -14151,17 +14390,28 @@ polymorphisms) and indels with respect to a reference genome and more.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0g2f78k68yglmj4fsfmgs8idqv3di9aj53fg0ld0hqljg8chhh82")))) - (build-system python-build-system) + (base32 "1q4l7jhr1k135an3n9aa9wsid5lk6fwxb0hcldrr6v6y76zi4gj1")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + '(modify-phases %standard-phases + ;; See upstream commit eee0f6eaec57d5c6e58142d661979f3aacc5f76a + (add-after 'unpack 'compatibility + (lambda _ + (substitute* "setup.py" + (("'joblib.*") ""))))))) (propagated-inputs (list python-biopython python-future python-matplotlib python-numpy - python-reportlab python-pandas - python-pysam + python-pomegranate python-pyfaidx + python-pysam + python-reportlab + python-scikit-learn python-scipy ;; R packages r-dnacopy)) @@ -14335,6 +14585,44 @@ contigs. It then uses paired read information, if available, to retrieve the repeated areas between contigs.") (license license:gpl2+))) +(define-public vembrane + (package + (name "vembrane") + (version "0.13.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vembrane/vembrane") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1gdih56gpqd8ks3sd4ah844kac09hi3g073k9gvazb32ah50900w")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + '(modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "pyproject.toml" + (("pysam = \"\\^0.19\"") "pysam = \"^0.20\"") + (("numpy = \\{ version = \"\\^1.23\"") + "numpy = { version = \"^1\""))))))) + (inputs + (list python-asttokens python-intervaltree python-numpy + python-pysam python-pyyaml)) + (native-inputs + (list poetry python-pytest)) + (home-page "https://github.com/vembrane/vembrane") + (synopsis "Filter VCF/BCF files with Python expressions.") + (description "Vembrane allows to simultaneously filter variants based on +any INFO or FORMAT field, CHROM, POS, ID, REF, ALT, QUAL, FILTER, and the +annotation field ANN. When filtering based on ANN, annotation entries are +filtered first. If no annotation entry remains, the entire variant is +deleted.") + (license license:expat))) + (define-public python-velocyto (package (name "python-velocyto") @@ -15998,7 +16286,7 @@ coordinates between different assemblies.") (define-public python-cgatcore (package (name "python-cgatcore") - (version "0.6.7") + (version "0.6.14") ;; The version of pypi does not include test data. (source (origin (method git-fetch) @@ -16008,11 +16296,22 @@ coordinates between different assemblies.") (file-name (git-file-name name version)) (sha256 (base32 - "17vk88v1bx7x02ibzkc9i7ir4b5p1hcjr38jpsfzyzxr68352d5k")))) - (build-system python-build-system) + "0fjjaski39j8b7v21wldmbwwsfhicngajah7n4skafi56kdck33p")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases + (list + #:test-flags + '(list "-k" + (string-append + ;; This test actually does what it should, but the check fails with + ;; TypeError: cannot unpack non-iterable Namespace object + "not test_start_and_stop_are_logged_with_argparse" + ;; These all attempt to connect to localhost with SSH + " and not test_job_should_use_TMPDIR_and_clean_up" + " and not test_job_should_use_TMPDIR_and_clean_up_after_fail" + " and not test_job_should_write_to_explicit_temp_and_not_clean_up")) + #:phases + '(modify-phases %standard-phases (add-after 'unpack 'fix-references (lambda _ (substitute* "cgatcore/pipeline/execution.py" @@ -16020,21 +16319,22 @@ coordinates between different assemblies.") (("executable=\"/bin/bash\"") (string-append "executable=\"" (which "bash") "\"")) (("\\\\time") (which "time"))))) - (delete 'check) - (add-after 'install 'check - (lambda* (#:key tests? inputs outputs #:allow-other-keys) - (when tests? - (add-installed-pythonpath inputs outputs) - ;; Requires network access - (delete-file "tests/test_pipeline_execution.py") - (invoke "python" "-m" "pytest" "-v"))))))) + (add-after 'unpack 'sqlite-compatibility + (lambda _ + ;; Load apsw (and thus newer sqlite3) before importing Python's + ;; older sqlite3 library. + (substitute* "cgatcore/pipeline/__init__.py" + (("import os") + (string-append "import os\nimport apsw"))) + (substitute* "tests/template_pipeline.py" + (("import sys" m) + (string-append "import apsw\n" m)))))))) (native-inputs - `(("python-pytest" ,python-pytest) - ("lsof" ,lsof) - ("hostname" ,inetutils) - ("openssl" ,openssl))) - (inputs - (list time)) + (list python-pytest + lsof + inetutils + openssl)) + (inputs (list time)) (propagated-inputs (list python-apsw python-gevent @@ -16514,18 +16814,31 @@ feature is fast retrieval of range queries into numpy arrays.") (define-public python-dna-features-viewer (package (name "python-dna-features-viewer") - (version "3.0.3") + (version "3.1.1") (source (origin (method url-fetch) (uri (pypi-uri "dna_features_viewer" version)) (sha256 (base32 - "0vci6kg2id6r6rh3cifq7ccnh7j0mb8iqg3hji6rva0ayrdqzafc")))) - (build-system python-build-system) - (arguments '(#:tests? #false)) ; there are none + "10a5pmh73spdgfml88zjqg1rn2j2zdxn06ir8a5q3arspyqvyqcb")))) + (build-system pyproject-build-system) + (arguments + (list + #:tests? #false ;there are none + #:phases + '(modify-phases %standard-phases + ;; See https://github.com/Edinburgh-Genome-Foundry/DnaFeaturesViewer/issues/73 + ;; and https://github.com/Edinburgh-Genome-Foundry/DnaFeaturesViewer/pull/74 + (add-after 'unpack 'fix-biopython-compatibility + (lambda _ + (substitute* "dna_features_viewer/biotools.py" + (("zip\\(aa1 \\+ \"\\*\", aa3 \\+ \\[\"\\*\"\\]\\)") + "zip(aa1 + ('*',), aa3 + ('*',))"))))))) (propagated-inputs - (list python-biopython python-matplotlib)) + (list python-biopython + python-matplotlib + python-packaging)) (home-page "https://github.com/Edinburgh-Genome-Foundry/DnaFeaturesViewer") (synopsis "Plot features from DNA sequences") @@ -17391,6 +17704,47 @@ module capable of computing base-level alignments for very large sequences.") (home-page "https://github.com/ekg/wfmash") (license license:expat))) +(define-public wiggletools + (package + (name "wiggletools") + (version "1.2.11") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Ensembl/WiggleTools/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1g3qla4l1g583nzlgyww5jqxpq87ndpn9cmjls098bgqjyn5292q")))) + (build-system gnu-build-system) + (arguments + (list + ;; Tests require internet access + #:tests? #false + #:make-flags + #~(list "Wiggletools" + (string-append "CC=" #$(cc-for-target))) + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda _ + (install-file "bin/wiggletools" + (string-append #$output "/bin"))))))) + (inputs + (list curl ; XXX: needed by libbigwig + htslib libbigwig gsl xz zlib)) + (home-page "https://github.com/Ensembl/WiggleTools/") + (synopsis "Operations on the space of numerical functions defined on the genome") + (description "The WiggleTools package allows genomewide data files to be +manipulated as numerical functions, equipped with all the standard functional +analysis operators (sum, product, product by a scalar, comparators), and +derived statistics (mean, median, variance, stddev, t-test, Wilcoxon's rank +sum test, etc).") + (license license:asl2.0))) + (define-public flair (package (name "flair") diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 0917095627..89f051f337 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> -;;; Copyright © 2016, 2017, 2018, 2021 Marius Bakke <marius@gnu.org> +;;; Copyright © 2016-2018, 2021-2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2016, 2017 David Craven <david@craven.ch> ;;; Copyright © 2017, 2018, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il> @@ -537,12 +537,13 @@ The SUBDIR argument defaults to \"efi/Guix\", as it is also the case for (lambda _ (invoke "chmod" "a+w" "utils/isohybrid.in"))) (replace 'check - (lambda _ - (setenv "CC" "gcc") - (substitute* "tests/unittest/include/unittest/unittest.h" - ;; Don't look up headers under /usr. - (("/usr/include/") "")) - (invoke "make" "unittest")))))) + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "CC" "gcc") + (substitute* "tests/unittest/include/unittest/unittest.h" + ;; Don't look up headers under /usr. + (("/usr/include/") "")) + (invoke "make" "unittest"))))))) (home-page "https://www.syslinux.org") (synopsis "Lightweight Linux bootloader") (description "Syslinux is a lightweight Linux bootloader.") @@ -655,6 +656,7 @@ tree binary files. These are board description files used by Linux and BSD.") lz4 ncurses/tinfo perl + pkg-config ;for 'make menuconfig' python python-coverage python-pycryptodomex @@ -728,8 +730,7 @@ def test_ctrl_c")) ;; 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)) + (find-files "configs" "sandbox_.*defconfig$|tools-only_defconfig")))) (replace 'configure (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "tools-only_defconfig" make-flags))) @@ -754,8 +755,7 @@ def test_ctrl_c")) "tools/proftool" "tools/fdtgrep" "tools/env/fw_printenv" - "tools/sunxi-spl-image-builder")) - #t))) + "tools/sunxi-spl-image-builder"))))) (delete 'check) (add-after 'install 'check (lambda* (#:key make-flags test-target #:allow-other-keys) @@ -817,6 +817,7 @@ appended to the package description." #:test-target "test" #:make-flags (list "HOSTCC=gcc" + "KBUILD_VERBOSE=1" ,@(if (not (same-arch?)) `((string-append "CROSS_COMPILE=" ,triplet "-")) '())) @@ -889,7 +890,7 @@ appended to the package description." (define-public u-boot-malta (make-u-boot-package "malta" "mips64el-linux-gnuabi64")) -(define-public u-boot-am335x-boneblack +(define-public u-boot-am335x-evm-boneblack (make-u-boot-package "am335x_evm" "arm-linux-gnueabihf" ;; Patch out other device trees to build an image small enough to fit @@ -1419,7 +1420,7 @@ order to add a suitable bootloader menu entry.") ;; ;; TODO: Bump this timestamp at each modifications of the package (not only ;; for updates) by running: date +%s. - (let ((timestamp "1591706427")) + (let ((timestamp "1671715380")) (package (name "ipxe") (version "1.21.1") @@ -1481,6 +1482,14 @@ order to add a suitable bootloader menu entry.") (modify-phases %standard-phases (add-after 'unpack 'enter-source-directory (lambda _ (chdir "src") #t)) + (add-after 'enter-source-directory 'set-version + (lambda _ + ;; When not building from a git checkout, iPXE encodes the + ;; version as "1.0.0+". Use the package version instead. + (substitute* "Makefile" + (("^VERSION[[:blank:]]+=.*") + (string-append "VERSION = " ,(package-version this-package) + "-guix\n"))))) (add-after 'enter-source-directory 'set-options (lambda _ (substitute* "config/general.h" @@ -1531,3 +1540,85 @@ existing PXE ROM on your network card, or you can chainload into iPXE to obtain the features of iPXE without the hassle of reflashing.") (license license:gpl2+)))) +(define-public ipxe-qemu + (package/inherit ipxe + (name "ipxe-qemu") + (native-inputs + ;; QEMU uses a 64-bit UEFI firmware. + (if (target-x86-64?) + (modify-inputs (package-native-inputs ipxe) + (prepend edk2-tools)) + (if (target-64bit?) + (modify-inputs (package-native-inputs ipxe) + (prepend edk2-tools + (cross-gcc "x86_64-linux-gnu") + (cross-binutils "x86_64-linux-gnu"))) + ;; Our default 32-bit binutils is not 64-bit capable. + (let ((binutils-64-bit-bfd + (package/inherit + binutils + (name "binutils-64-bit-bfd") + (arguments + (substitute-keyword-arguments (package-arguments binutils) + ((#:configure-flags flags ''()) + `(cons "--enable-64-bit-bfd" ,flags))))))) + (modify-inputs (package-native-inputs ipxe) + (prepend edk2-tools + (make-ld-wrapper "ld-wrapper-64-bit-bfd" + #:binutils binutils) + binutils-64-bit-bfd + (cross-gcc "x86_64-linux-gnu") + (cross-binutils "x86_64-linux-gnu"))))))) + (arguments + (let ((roms + ;; Alist of ROM -> (VID . DID) entries. This list and below + ;; build steps are taken from QEMUs roms/Makefile. + '(("e1000" . ("8086" . "100e")) + ("e1000e" . ("8086" . "10d3")) + ("eepro100" . ("8086" . "1209")) + ("ne2k_pci" . ("1050" . "0940")) + ("pcnet" . ("1022" . "2000")) + ("rtl8139" . ("10ec" . "8139")) + ("virtio" . ("1af4" . "1000")) + ("vmxnet3" . ("15ad" . "07b0"))))) + (substitute-keyword-arguments (package-arguments ipxe) + ((#:modules modules) + `((ice-9 match) ,@modules)) + ((#:make-flags flags) + #~(append (delete "everything" #$flags) + '("CONFIG=qemu" + #$@(if (target-x86-64?) + '() + '("CROSS_COMPILE=x86_64-linux-gnu-"))) + (map (match-lambda + ((_ . (vid . did)) + (string-append "bin/" vid did ".rom"))) + '#$roms) + (map (match-lambda + ((_ . (vid . did)) + (string-append "bin-x86_64-efi/" + vid did ".efidrv"))) + '#$roms))) + ((#:phases phases) + #~(modify-phases #$phases + (replace 'install + (lambda _ + (let ((firmware (string-append #$output "/share/qemu"))) + (mkdir-p firmware) + (for-each + (match-lambda + ((name . (vid . did)) + (let ((rom (string-append "bin/" vid did ".rom"))) + (copy-file rom + (string-append firmware + "/pxe-" name ".rom")) + (invoke "EfiRom" + "-b" rom + "-l" "0x02" + "-f" (string-append "0x" vid) + "-i" (string-append "0x" did) + "-ec" (string-append "bin-x86_64-efi/" + vid did ".efidrv") + "-o" (string-append firmware + "/efi-" name ".rom"))))) + '#$roms))))))))))) diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index fb876eeb71..04c9fcdc62 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -425,14 +425,14 @@ whose behaviour is inconsistent across *NIX flavours.") (define-public libhx (package (name "libhx") - (version "4.3") + (version "4.8") (source (origin (method url-fetch) (uri (string-append "https://inai.de/files/libhx/" "libHX-" version ".tar.xz")) (sha256 - (base32 "06zkzaya6j3vaafz80qcgn5qcri047003bhmjisv5sbikcw97jqy")))) + (base32 "1mj6n4p0fs1jzj1dvk2xkyiyc1s7s5fxv27iciwn0xkwhasjmhxa")))) (build-system gnu-build-system) (home-page "https://inai.de/projects/libhx/") (synopsis "C library with common data structures and functions") @@ -760,7 +760,7 @@ portability.") (define-public byacc (package (name "byacc") - (version "20220128") + (version "20221106") (source (origin (method url-fetch) (uri (string-append @@ -768,7 +768,7 @@ portability.") version ".tgz")) (sha256 (base32 - "173l5pdzgqk2ld6lf0ablii0iiw07sry2vrjfrm4wc99qmf81ha2")))) + "04lxggjarbidfq8ba5q6kwgqys4lhidbnz8gf3vrrb5wgcibx6d8")))) (build-system gnu-build-system) (home-page "https://invisible-island.net/byacc/byacc.html") (synopsis "Berkeley Yacc LALR parser generator") diff --git a/gnu/packages/ccache.scm b/gnu/packages/ccache.scm index a2e5b35046..48f88c4b4b 100644 --- a/gnu/packages/ccache.scm +++ b/gnu/packages/ccache.scm @@ -35,14 +35,14 @@ (define-public ccache (package (name "ccache") - (version "4.7.2") + (version "4.7.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/ccache/ccache/releases/download/v" version "/ccache-" version ".tar.xz")) (sha256 - (base32 "1bsf27dii1bm6bamvs6gi6vm5pjrd0956vf8597ix76lfyjpbjhp")))) + (base32 "0djfm138m863g772bnq7m2mfwh3y8sqxczc3yssg1yiybp8n836z")))) (build-system cmake-build-system) (arguments (list #:configure-flags diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 8755ffc074..eddf7227b3 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -580,6 +580,85 @@ It allows the specification of behaviour scenarios using a given-when-then pattern.") (license license:apsl2)))) +(define-public catch2-3.1 + (package + (name "catch2") + (version "3.1.1") + (home-page "https://github.com/catchorg/Catch2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/catchorg/Catch2") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qnr5b3zq8brh43f924rgnw5gmmjf9ax7kbq2crz1mlwgmdymxlp")))) + (outputs (list "out" "static")) + (build-system meson-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-meson + (lambda _ + (substitute* "src/catch2/meson.build" + (("static_library") "both_libraries")))) + (add-after 'install 'install-cmake-config + (lambda* (#:key outputs #:allow-other-keys) + (define prefix (string-append (assoc-ref outputs "out") + "/lib/cmake/Catch2/")) + (mkdir-p prefix) + (call-with-output-file (string-append + prefix + "catch2-config-version.cmake") + (lambda (port) + (format + port + "set(PACKAGE_VERSION ~s)~@ + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)~@ + set(PACKAGE_VERSION_EXACT TRUE)~@ + set(PACKAGE_VERSION_COMPATIBLE TRUE)~@ + elseif(PACKAGE_FIND_VERSION VERSION_LESS_EQUAL ~ + PACKAGE_VERSION)~@ + set(PACKAGE_VERSION_COMPATIBLE TRUE)~@ + else()~@ + set(PACKAGE_VERSION_COMPATIBLE FALSE)~@ + endif()" + #$version))) + (call-with-output-file (string-append prefix + "catch2-config.cmake") + (lambda (port) + (format + port + "include(FindPkgConfig)~@ + pkg_check_modules(CATCH2 IMPORTED_TARGET GLOBAL catch2)~@ + pkg_check_modules(CATCH2MAIN ~ + IMPORTED_TARGET GLOBAL ~ + catch2 catch2-with-main)~@ + if(CATCH2_FOUND)~@ + add_library(Catch2::Catch2 ALIAS PkgConfig::CATCH2)~@ + endif()~@ + if(CATCH2MAIN_FOUND)~@ + add_library(Catch2::Catch2WithMain ~ + ALIAS PkgConfig::CATCH2MAIN)~@ + endif()"))))) + (add-after 'install 'move-static-libraries + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (static (assoc-ref outputs "static"))) + (for-each + (lambda (file) + (install-file file (string-append static "/lib")) + (delete-file file)) + (find-files (string-append out "/lib") + "\\.a$")))))))) + (inputs (list python-wrapper)) + (synopsis "Automated test framework for C++ and Objective-C") + (description "Catch2 stands for C++ Automated Test Cases in Headers and is +a multi-paradigm automated test framework for C++ and Objective-C.") + (license license:boost1.0))) + (define-public cmdtest (package (name "cmdtest") @@ -750,7 +829,7 @@ and it supports a very flexible form of test discovery.") (define-public doctest (package (name "doctest") - (version "2.4.8") + (version "2.4.9") (home-page "https://github.com/onqtam/doctest") (source (origin (method git-fetch) @@ -759,7 +838,7 @@ and it supports a very flexible form of test discovery.") (file-name (git-file-name name version)) (sha256 (base32 - "057wdkv3gcz42mh1j284sgvm16i5fk1f9b1plgvavca70q4p52gz")))) + "1pkpwwvskcr21p00zrbnxpddv34p605mls86qirqqdwggmws82ds")))) (build-system cmake-build-system) (synopsis "C++ test framework") (description @@ -3235,7 +3314,7 @@ system. The code under test requires no modification to work with pyfakefs.") (define-public python-aiounittest (package (name "python-aiounittest") - (version "1.4.1") + (version "1.4.2") ;; Pypi package lacks tests. (source (origin (method git-fetch) @@ -3245,7 +3324,7 @@ system. The code under test requires no modification to work with pyfakefs.") (file-name (git-file-name name version)) (sha256 (base32 - "10x7ds09b9415r92f7g9714gxixvvq3bm5mnh29ml9aba8blcb0n")))) + "0srahyzrk5awfh4rmppvqkblfmiavdklxl9i5mcr8gl7ahiwwl7f")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm index 983a754215..ed6dd9dfd1 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -317,7 +317,7 @@ ;; run the Blink performance tests, just remove everything to save ~70MiB. '("third_party/blink/perf_tests")) -(define %chromium-version "108.0.5359.98") +(define %chromium-version "108.0.5359.124") (define %ungoogled-revision (string-append %chromium-version "-1")) (define %debian-revision "debian/102.0.5005.61-1") (define %arch-revision "4de5019014aeb77187a517c5ca6db8723d622a40") @@ -330,7 +330,7 @@ (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision)) (sha256 (base32 - "16rc15qsndrsj52p56ma3hg94jslkfy2f91ryr3qss73r2rkjf8j")))) + "18sz2ksawyb08h4kbxzkf1zhxs832z8mwvndm43nykz01wxk20bp")))) (define %debian-origin (origin @@ -491,7 +491,7 @@ %chromium-version ".tar.xz")) (sha256 (base32 - "07jnhd5y7k4zp2ipz052isw7llagxn8l8rbz8x3jkjz3f5wi7dk0")) + "0x9ac6m4xdccjdrk2bmq4y7bhfpgf2dv0q7lsbbsa50vlv1gm3fl")) (modules '((guix build utils))) (snippet (force ungoogled-chromium-snippet)))) (build-system gnu-build-system) @@ -899,7 +899,7 @@ dbus expat flac - ffmpeg + ffmpeg-4 fontconfig fp16 freetype diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index 0ed978a768..4917c85a67 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -143,14 +143,14 @@ highlighting your own code that seemed comprehensible when you wrote it.") (define-public global ; a global variable (package (name "global") - (version "6.6.8") + (version "6.6.9") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/global/global-" version ".tar.gz")) (sha256 (base32 - "1kaphc3gml89p8dpdgh2is8hj46wj05689kxj0bmh5q759rxk4vg")))) + "1mgss7ch4izz7ibb23xah6h4iva77g9dq4pkc9g69jk0ipxa1jxa")))) (build-system gnu-build-system) (arguments (list #:configure-flags diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index d2a1ed36f7..82b93e23b2 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -2695,7 +2695,7 @@ to their original, binary CD format.") (define-public libdeflate (package (name "libdeflate") - (version "1.14") + (version "1.15") (source (origin (method git-fetch) (uri (git-reference @@ -2704,19 +2704,16 @@ to their original, binary CD format.") (file-name (git-file-name name version)) (sha256 (base32 - "09y69mnbv3mprgjp53zvin5zqznqajginrk5b25xmi9y0b83bns8")))) - (build-system gnu-build-system) + "001l1xdc3k1dfjvl3ng480ydz0rnyvlhv54l5mshg2p9v4iz3v09")))) + (build-system cmake-build-system) (arguments - (list #:make-flags - #~(list (string-append "CC=" #$(cc-for-target)) - (string-append "PREFIX=" #$output)) + (list #:configure-flags + #~(list "-DLIBDEFLATE_BUILD_STATIC_LIB=NO") #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'skip-static-library-installation + (replace 'check (lambda _ - (substitute* "Makefile" - (("install .*\\$\\(STATIC_LIB\\).*") "")))) - (delete 'configure)))) ; no configure script + (invoke "../source/scripts/run_tests.sh")))))) (inputs (list zlib)) (home-page "https://github.com/ebiggers/libdeflate") diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm index 59eea423a1..e2d698dcc2 100644 --- a/gnu/packages/containers.scm +++ b/gnu/packages/containers.scm @@ -91,7 +91,7 @@ (inputs (list libcap libseccomp - libyajl)) + yajl)) (native-inputs (list automake autoconf diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 210c76e482..a3df706f43 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -1901,7 +1901,7 @@ multi-threaded applications and network applications.") (define-public gulrak-filesystem (package (name "gulrak-filesystem") - (version "1.5.10") + (version "1.5.12") (source (origin (method git-fetch) (uri (git-reference @@ -1910,7 +1910,7 @@ multi-threaded applications and network applications.") (file-name (git-file-name name version)) (sha256 (base32 - "0dx1yvbz5rnisymkqap7z0b06ag9fcs6q6l82vgi8caylhkwsqs7")))) + "1qg10akvhp801xirkj4mqcpvcxj90z81ygpyg752xv110zj4914g")))) (build-system cmake-build-system) (synopsis "Header only C++ std::filesystem compatible library") (description "This package provides a header-only single-file diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 5c5258d6e0..fccf0002a7 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.4") + (version "0.6.5") (source (origin (method url-fetch) (uri (cran-uri "datawizard" version)) (sha256 (base32 - "0iv3h08bzmijrxyv2jz70jf53i2bk14kh0vq9a93fms5z08jv19p")))) + "0il98vmy8l4wrisqz9xli7iki2ajdlsxyhh4k4grrd28gzkj8lgb")))) (properties `((upstream-name . "datawizard"))) (build-system r-build-system) (propagated-inputs @@ -399,6 +399,25 @@ visualization of their differences.") (description "This package implements Dirichlet regression models.") (license license:gpl2+))) +(define-public r-dirmult + (package + (name "r-dirmult") + (version "0.1.3-5") + (source (origin + (method url-fetch) + (uri (cran-uri "dirmult" version)) + (sha256 + (base32 + "05whzhl81nyag7321hw98xa63r440s9bgj1764346yvm9bvzjqi4")))) + (properties `((upstream-name . "dirmult"))) + (build-system r-build-system) + (home-page "https://cran.r-project.org/package=dirmult") + (synopsis "Estimation in Dirichlet-Multinomial distribution") + (description + "This package estimates the parameters in Dirichlet-Multinomial and +computes log-likelihoods.") + (license license:gpl2+))) + (define-public r-dixontest (package (name "r-dixontest") @@ -615,7 +634,7 @@ the output locally.") (home-page "https://cran.r-project.org/package=gson") (synopsis "Base Class and Methods for 'gson' Format") (description - "This packages proposes a new file format named @code{gson} for storing + "This package proposes a new file format named @code{gson} for storing gene set and related information, and provides read, write and other utilities to process this file format.") (license license:artistic2.0))) @@ -648,6 +667,56 @@ from CRAN, but also from Bioconductor or even arbitrary git or mercurial repositories, replacing the need for installation via @code{devtools}.") (license license:gpl3+))) +(define-public r-gunifrac + (package + (name "r-gunifrac") + (version "1.7") + (source (origin + (method url-fetch) + (uri (cran-uri "GUniFrac" version)) + (sha256 + (base32 + "13qb5fw9km6p5x8li9x3liqbh833wf2v73npj8jl3msplzfk82vp")))) + (properties `((upstream-name . "GUniFrac"))) + (build-system r-build-system) + (propagated-inputs + (list r-ape + r-dirmult + r-foreach + r-ggplot2 + r-ggrepel + r-mass + r-matrix + r-matrixstats + r-modeest + r-rcpp + r-rmutil + r-statmod + r-vegan)) + (native-inputs (list r-knitr)) + (home-page "https://cran.r-project.org/package=GUniFrac") + (synopsis + "Generalized UniFrac distances and methods for microbiome data analysis") + (description + "This package provides a suite of methods for powerful and robust +microbiome data analysis, including data normalization, data simulation, +community-level association testing and differential abundance analysis. It +implements generalized UniFrac distances, @dfn{Geometric Mean of Pairwise +Ratios} (GMPR) normalization, semiparametric data simulator, distance-based +statistical methods, and feature- based statistical methods. The +distance-based statistical methods include three extensions of PERMANOVA: + +@itemize +@item PERMANOVA using the Freedman-Lane permutation scheme, +@item PERMANOVA omnibus test using multiple matrices, and +@item analytical approach to approximating PERMANOVA p-value. +@end itemize + +Feature-based statistical methods include linear model-based methods for +differential abundance analysis of zero-inflated high-dimensional +compositional data.") + (license license:gpl3))) + (define-public r-ids (package (name "r-ids") @@ -1300,14 +1369,14 @@ variables.") (define-public r-ggpp (package (name "r-ggpp") - (version "0.4.5") + (version "0.5.0") (source (origin (method url-fetch) (uri (cran-uri "ggpp" version)) (sha256 (base32 - "02inwvfz2zxsj7bq0nz11c5spnyaf8zhjnlfllpwfjfy46qrx2p9")))) + "0zmxnzsdmwv9v77fifgiknalwif59261kslq8848x1xch8f82l77")))) (properties `((upstream-name . "ggpp"))) (build-system r-build-system) (propagated-inputs @@ -1505,13 +1574,13 @@ axis} (SMA), and @dfn{ranged major axis} (RMA).") (define-public r-ggpmisc (package (name "r-ggpmisc") - (version "0.5.1") + (version "0.5.2") (source (origin (method url-fetch) (uri (cran-uri "ggpmisc" version)) (sha256 (base32 - "18085n6id5v3g3w1z1010im85i4yii4wib2cmcxwqk7qvk9rsrqi")))) + "1zvq580vi1h2afdgxaqabjhfsphvmdchwiaahqvvhljxmpmh82q6")))) (build-system r-build-system) (propagated-inputs (list r-confintr @@ -1540,13 +1609,13 @@ respecting the grammar of its graphics paradigm.") (define-public r-ggside (package (name "r-ggside") - (version "0.2.1") + (version "0.2.2") (source (origin (method url-fetch) (uri (cran-uri "ggside" version)) (sha256 (base32 - "1vl7kzgmi5xxxsqvyg4cm4xwd3lfjgysay1lw6hri5vj22mnga5h")))) + "1z50z4xpxfpqdz26hja6xw3q403p00cr5qawjxl0qg4jixl7j65p")))) (properties `((upstream-name . "ggside"))) (build-system r-build-system) (propagated-inputs @@ -1555,7 +1624,8 @@ respecting the grammar of its graphics paradigm.") r-gtable r-rlang r-scales - r-tibble)) + r-tibble + r-vctrs)) (native-inputs (list r-knitr)) (home-page "https://cran.r-project.org/package=ggside") (synopsis "Side grammar graphics that extends @code{ggplot2}") @@ -2633,13 +2703,13 @@ Zucchini.") (define-public r-httpuv (package (name "r-httpuv") - (version "1.6.6") + (version "1.6.7") (source (origin (method url-fetch) (uri (cran-uri "httpuv" version)) (sha256 (base32 - "14qjf7bpl7pay89b7vi2vccl342q8xs6101a9x6qijy54k9myfa1")) + "0jjb2w59x8a4k24j9rc4rjm37h1ccrfq1nzd40inbnd6kcqf3lkm")) ;; Unvendor bundled libraries. As of 1.5.4 the vendored libuv ;; only contains fixes for building on Solaris. (patches (search-patches "r-httpuv-1.6.6-unvendor-libuv.patch")) @@ -2680,13 +2750,13 @@ particularly easy to create complete web applications using httpuv alone.") (define-public r-jsonlite (package (name "r-jsonlite") - (version "1.8.3") + (version "1.8.4") (source (origin (method url-fetch) (uri (cran-uri "jsonlite" version)) (sha256 (base32 - "1w685bwhvqxh8y3b4rmzmbbxsj0sqrdad4rni7dxbiqzd2piszy5")))) + "0y0jzf74c3q1sghgarvwmrkvxs7yahywd342m8c0jsr28bhapskr")))) (build-system r-build-system) (native-inputs (list r-knitr)) @@ -2750,16 +2820,16 @@ a list of p-values.") (define-public r-htmltools (package (name "r-htmltools") - (version "0.5.3") + (version "0.5.4") (source (origin (method url-fetch) (uri (cran-uri "htmltools" version)) (sha256 (base32 - "0krjyz99q7zvdfg60b128c0zwr36h54gb05jw9c874d8kqv1ni9c")))) + "0zij9zrgsi82q5c65sf4pbidnzrkfr763g0n4ypdhf8dd6l2i0h0")))) (build-system r-build-system) (propagated-inputs - (list r-base64enc r-digest r-fastmap r-rlang)) + (list r-base64enc r-digest r-ellipsis r-fastmap r-rlang)) (home-page "https://cran.r-project.org/web/packages/htmltools") (synopsis "R tools for HTML") (description @@ -2769,16 +2839,18 @@ a list of p-values.") (define-public r-htmlwidgets (package (name "r-htmlwidgets") - (version "1.5.4") + (version "1.6.0") (source (origin (method url-fetch) (uri (cran-uri "htmlwidgets" version)) (sha256 (base32 - "1hgz8sx8xrvfcdwa4q15k942w4qsqg8lyxbbf7qyfzbi807wcgqs")))) + "06prjx6ic2bddaw50ksz6l7hsidkzwb69m85vzc0apxvwaygz0gh")))) (build-system r-build-system) (propagated-inputs - (list r-htmltools r-jsonlite r-yaml)) + (list r-htmltools r-jsonlite + r-knitr r-rmarkdown + r-yaml)) (native-inputs (list r-knitr)) (home-page "https://github.com/ramnathv/htmlwidgets") @@ -3108,18 +3180,17 @@ expression estimates for all genes.") (define-public r-bslib (package (name "r-bslib") - (version "0.4.1") + (version "0.4.2") (source (origin (method url-fetch) (uri (cran-uri "bslib" version)) (sha256 (base32 - "0bz6w34shk2pijq5hvjv2bg8xhhg4yazn4wcix7436yi9k41zgaf")) + "069ghbzp0bsmbw2nzw28cmbym65i3a90v50y7qksy2g4pfhvfh4s")) (snippet '(for-each delete-file '("inst/lib/bs-a11y-p/plugins/js/bootstrap-accessibility.min.js" - "inst/lib/bs-colorpicker/js/bootstrap-colorpicker.min.js" "inst/lib/bs3/assets/javascripts/bootstrap.min.js" "inst/lib/bs4/dist/js/bootstrap.bundle.min.js" "inst/lib/bs5/dist/js/bootstrap.bundle.min.js"))))) @@ -3155,11 +3226,13 @@ expression estimates for all genes.") (string-append "--outfile=" target))) sources targets))))))))) (propagated-inputs - (list r-cachem + (list r-base64enc + r-cachem r-htmltools r-jquerylib r-jsonlite r-memoise + r-mime r-rlang r-sass)) (native-inputs @@ -3174,10 +3247,10 @@ expression estimates for all genes.") ("js-bootstrap5-bundle" ,(origin (method url-fetch) - (uri "https://raw.githubusercontent.com/twbs/bootstrap/v5.1.3/dist/js/bootstrap.bundle.js") + (uri "https://raw.githubusercontent.com/twbs/bootstrap/v5.2.2/dist/js/bootstrap.bundle.js") (sha256 (base32 - "116979i2vr1y9i6g7n5iir19p85xwr642scbl9jcqdr0w9801nw6")))))) + "1ibfb1lwwm50did0b4fvxaqc7xyljmp20f3qb1ybdlvcy22mk8bg")))))) (home-page "https://rstudio.github.io/bslib/") (synopsis "Custom Bootstrap Sass themes for shiny and rmarkdown") (description @@ -3724,13 +3797,13 @@ annotation data to keep updated.") (define-public r-ggtern (package (name "r-ggtern") - (version "3.4.0") + (version "3.4.1") (source (origin (method url-fetch) (uri (cran-uri "ggtern" version)) (sha256 - (base32 "01j1rvff3vz72vwqsy3bh81aav7gfymg4sbvc267vg0r3a16ywcg")))) + (base32 "0w0kg6755kfpczqpaly251fgqv31js9gdzr17x734l2adycji3yr")))) (properties `((upstream-name . "ggtern"))) (build-system r-build-system) (propagated-inputs @@ -4569,6 +4642,27 @@ and Francois (2011, JSS), and the book by Eddelbuettel (2013, Springer); see @code{citation(\"Rcpp\")} for details on these last two.") (license license:gpl2+))) +(define-public r-rcppde + (package + (name "r-rcppde") + (version "0.1.6") + (source (origin + (method url-fetch) + (uri (cran-uri "RcppDE" version)) + (sha256 + (base32 + "1i9jj595nqpb16y22z2b8fcf0gq1fg0pbiisbd837p1cyw4nff69")))) + (properties `((upstream-name . "RcppDE"))) + (build-system r-build-system) + (propagated-inputs + (list r-rcpp r-rcpparmadillo)) + (home-page "https://cran.r-project.org/package=RcppDE") + (synopsis "Global optimization by differential evolution in C++") + (description + "This package provides an iteration of the @code{DEoptim} function. It +performs global optimization by differential evolution.") + (license license:gpl2+))) + (define-public r-rcppml (package (name "r-rcppml") @@ -4832,6 +4926,33 @@ approach is used to estimate the lower cut-off for the scaling region.") ;; Any of these GPL versions. (license (list license:gpl2 license:gpl3)))) +(define-public r-ptw + (package + (name "r-ptw") + (version "1.9-16") + (source (origin + (method url-fetch) + (uri (cran-uri "ptw" version)) + (sha256 + (base32 + "0rma3h9ksc5qigdvk5vappb4ipd4rpk64wckzcxvxspakr5w71vy")))) + (properties `((upstream-name . "ptw"))) + (build-system r-build-system) + (propagated-inputs (list r-rcppde)) + (home-page "https://github.com/rwehrens/ptw") + (synopsis "Parametric time warping") + (description + "Parametric time warping aligns patterns. It aims to put corresponding +features at the same locations. The algorithm searches for an optimal +polynomial describing the warping. It is possible to align one sample to a +reference, several samples to the same reference, or several samples to +several references. One can choose between calculating individual warpings, +or one global warping for a set of samples and one reference. Two +optimization criteria are implemented: @acronym{RMS, Root Mean Square} error +and @acronym{WCC, Weighted Cross Correlation}. Both warping of peak profiles +and of peak lists are supported.") + (license license:gpl2+))) + (define-public r-compare (package (name "r-compare") @@ -5825,13 +5946,13 @@ available in a vignette.") (define-public r-progressr (package (name "r-progressr") - (version "0.11.0") + (version "0.12.0") (source (origin (method url-fetch) (uri (cran-uri "progressr" version)) (sha256 - (base32 "1nbc6vvsyqa1gvh1a1m4prnvng88wsa0r35i9fiwq84a6j18qrnq")))) + (base32 "0nahvfcnx45n0q24r4j9cjqmmgh302ra3207izs6fzfda7sqn25q")))) (properties `((upstream-name . "progressr"))) (build-system r-build-system) (propagated-inputs @@ -5967,14 +6088,14 @@ included in this package.") (define-public r-timedate (package (name "r-timedate") - (version "4021.106") + (version "4021.107") (source (origin (method url-fetch) (uri (cran-uri "timeDate" version)) (sha256 (base32 - "1qhh1d85s8r4wkcf4fljfm67lnkj8flnx9iz4hdg305xdkng3b8l")))) + "1i54a425r5hi08yl9rb2qh1nynh29ppv9b4h46cxyzn1ybqlr9sg")))) (properties `((upstream-name . "timeDate"))) (build-system r-build-system) (home-page "https://www.rmetrics.org") @@ -6011,14 +6132,14 @@ dimensioned arrays.") (define-public r-rmysql (package (name "r-rmysql") - (version "0.10.24") + (version "0.10.25") (source (origin (method url-fetch) (uri (cran-uri "RMySQL" version)) (sha256 (base32 - "0hbjcf0gzkkg8h50msj4a6ymax9s3j4aw44jl1mqcxkdmfn9l6ya")))) + "1527ba5vqg4ss6rqxrkxa1a66r1m9h4zmdnv9xdzva8fv2dhy4zd")))) (properties `((upstream-name . "RMySQL"))) (build-system r-build-system) (inputs @@ -6272,21 +6393,20 @@ by base R methods related to model fitting.") (define-public r-broom (package (name "r-broom") - (version "1.0.1") + (version "1.0.2") (source (origin (method url-fetch) (uri (cran-uri "broom" version)) (sha256 (base32 - "14i8729m38nxf5q344isgq4006p3b50wi3q8jgckxqphhnj5lpjb")))) + "13hj4y3ajrn7x8hvirp2vfh1c8j2pdrz3dnxc5f0dr7jyfhp4dcy")))) (build-system r-build-system) (propagated-inputs (list r-backports r-dplyr r-ellipsis r-generics - r-ggplot2 r-glue r-purrr r-rlang @@ -6452,6 +6572,59 @@ color labels, layout, etc.") ;; Any version of the GPL (license license:gpl2+))) +(define-public r-stable + (package + (name "r-stable") + (version "1.1.6") + (source (origin + (method url-fetch) + (uri (cran-uri "stable" version)) + (sha256 + (base32 + "194xsa291v5f0jya1c3aigbclg8cci427ffpb8brxamm6n57hf12")))) + (properties `((upstream-name . "stable"))) + (build-system r-build-system) + (propagated-inputs (list r-rmutil)) + (home-page "https://www.commanster.eu/rcode.html") + (synopsis + "Probability functions and regression models for stable distributions") + (description + "This package provides density, distribution, quantile and hazard +functions of a stable variate, as well as generalized regression models for +the parameters of a stable distribution.") + (license license:gpl2+))) + +(define-public r-statip + (package + (name "r-statip") + (version "0.2.3") + (source (origin + (method url-fetch) + (uri (cran-uri "statip" version)) + (sha256 + (base32 + "0kymc3ds1nx0h11ffmm3vmqr1w34gd0k788vf72x2v45h8c1ma2n")))) + (properties `((upstream-name . "statip"))) + (build-system r-build-system) + (propagated-inputs + (list r-clue r-rpart)) + (home-page "https://github.com/paulponcet/statip") + (synopsis "Statistical functions for probability distributions and regression") + (description + "This package provides a collection of miscellaneous statistical +functions for: +@itemize +@item probability distributions, +@item probability density estimation, +@item most frequent value estimation, +@item other statistical measures of location, +@item construction of histograms, +@item calculation of the Hellinger distance, +@item use of classical kernels, and +@item univariate piecewise-constant regression. +@end itemize") + (license license:gpl3))) + (define-public r-stringdist (package (name "r-stringdist") @@ -6842,14 +7015,14 @@ structure.") (define-public r-vioplot (package (name "r-vioplot") - (version "0.3.7") + (version "0.4.0") (source (origin (method url-fetch) (uri (cran-uri "vioplot" version)) (sha256 (base32 - "1dmdasp3jldc41233z6r08w3j76vyyp9m3jrj7n4ahk48yd5siq6")))) + "1db7g0378jbcd6ssb7afff4y4r0v472qnb625hfwixx4wf1v8aap")))) (build-system r-build-system) (propagated-inputs (list r-sm r-zoo)) @@ -7171,6 +7344,26 @@ distributions over time or space. This package enables the creation of such plots in @code{ggplot2}.") (license license:gpl2))) +(define-public r-gss + (package + (name "r-gss") + (version "2.2-3") + (source (origin + (method url-fetch) + (uri (cran-uri "gss" version)) + (sha256 + (base32 + "0jr45lkpcndg5nynjsfnxn1wwkh4gkhsgv4hlvw6jn2frw0n8c14")))) + (properties `((upstream-name . "gss"))) + (build-system r-build-system) + (native-inputs (list gfortran)) + (home-page "https://cran.r-project.org/package=gss") + (synopsis "General smoothing splines") + (description + "This package provides a comprehensive collection for structural +multivariate function estimation using smoothing splines.") + (license license:gpl2+))) + (define-public r-cli (package (name "r-cli") @@ -7214,13 +7407,13 @@ script.") (define-public r-aricode (package (name "r-aricode") - (version "1.0.1") + (version "1.0.2") (source (origin (method url-fetch) (uri (cran-uri "aricode" version)) (sha256 (base32 - "0772l9gyrih48l1kymih0mb7szjqqnwcm4lzj0yzp4cs8l2mdf4f")))) + "1w5jnql49f0wd5h4b89l69s7qldp7qm90p4jm0j4kz9w0vvm2kjz")))) (properties `((upstream-name . "aricode"))) (build-system r-build-system) (propagated-inputs (list r-matrix r-rcpp)) @@ -7235,6 +7428,31 @@ information} (NMI), @dfn{adjusted mutual information} (AMI), @dfn{normalized variation information} (NVI) and entropy.") (license license:gpl3+))) +(define-public r-attempt + (package + (name "r-attempt") + (version "0.3.1") + (source (origin + (method url-fetch) + (uri (cran-uri "attempt" version)) + (sha256 + (base32 + "1ylgg7jcp8wqmxgf1mydnvh26k0mr8jyjla4hw06730r40yrs58m")))) + (properties `((upstream-name . "attempt"))) + (build-system r-build-system) + (propagated-inputs (list r-rlang)) + (native-inputs (list r-knitr)) + (home-page "https://github.com/ColinFay/attempt") + (synopsis "Tools for defensive programming") + (description + "This package provides tools for defensive programming. It is inspired +by @code{purrr} mappers and based on @code{rlang}. Attempt extends and +facilitates defensive programming by providing a consistent grammar, and a set +of functions for common tests and conditions. Attempt only depends on +@code{rlang}, and focuses on speed, so it can be integrated with other +functions and used in the data analysis.") + (license license:expat))) + (define-public r-debugme (package (name "r-debugme") @@ -7280,6 +7498,28 @@ standard output and error of the processes, using non-blocking connections. timeout. It can also poll several processes at once.") (license license:expat))) +(define-public r-timeseries + (package + (name "r-timeseries") + (version "4021.105") + (source (origin + (method url-fetch) + (uri (cran-uri "timeSeries" version)) + (sha256 + (base32 + "1k6vihbs20m7zjrxh13y9mmsvnia3844c7j13p0b7m5i9fb6rqxz")))) + (properties `((upstream-name . "timeSeries"))) + (build-system r-build-system) + (propagated-inputs (list r-timedate)) + (home-page + "https://r-forge.r-project.org/scm/viewvc.php/pkg/timeSeries/?root=rmetrics") + (synopsis "Metrics for financial time series objects") + (description + "This package implements S4 classes and various tools for financial time +series. Basic functions such as scaling and sorting, subsetting, mathematical +operations and statistical functions are provided.") + (license license:gpl2+))) + (define-public r-tsp (package (name "r-tsp") @@ -7499,6 +7739,9 @@ estimated from a given sample.") (build-system r-build-system) (propagated-inputs (list r-cli r-glue r-lifecycle r-rlang)) + ;; We can't have r-knitr among the inputs here, because r-vctrs ends up + ;; being an eventual input to r-knitr. + #; (native-inputs (list r-knitr)) (home-page "https://github.com/r-lib/vctrs") @@ -7592,14 +7835,14 @@ packages that work with genomic data.") (define-public r-tinytex (package (name "r-tinytex") - (version "0.42") + (version "0.43") (source (origin (method url-fetch) (uri (cran-uri "tinytex" version)) (sha256 (base32 - "1c925r62h84mhwd7v5j35ckdldf6cwb3wzczdn5s72hig0cplpr0")))) + "01183i6z6jyyqmmxri3xmscn7k6hswi2q7r0b5ix0s7pd1cz57jq")))) (build-system r-build-system) (propagated-inputs (list r-xfun)) @@ -8265,6 +8508,37 @@ functions and random generation functions for a large number of univariate and multivariate distributions.") (license license:gpl2))) +(define-public r-fbasics + (package + (name "r-fbasics") + (version "4021.93") + (source (origin + (method url-fetch) + (uri (cran-uri "fBasics" version)) + (sha256 + (base32 + "1lmmdwzvqhggy6rr7yc9y5f8hxxgyzsgwm3ry0sz5ljbgfijl7g6")))) + (properties `((upstream-name . "fBasics"))) + (build-system r-build-system) + (propagated-inputs + (list r-gss + r-mass + r-spatial + r-stabledist + r-timedate + r-timeseries)) + (home-page + "https://r-forge.r-project.org/scm/viewvc.php/pkg/fBasics/?root=rmetrics") + (synopsis "Metrics for markets and basic statistics") + (description + "This package provides a collection of functions to explore and to +investigate basic properties of financial returns and related quantities. The +covered fields include techniques of explorative data analysis and the +investigation of distributional properties, including parameter estimation and +hypothesis testing. Even more, there are several utility functions for data +handling and management.") + (license license:gpl2+))) + (define-public r-fractal (package (name "r-fractal") @@ -9407,14 +9681,14 @@ simple method for converting between file types.") (define-public r-maptools (package (name "r-maptools") - (version "1.1-5") + (version "1.1-6") (source (origin (method url-fetch) (uri (cran-uri "maptools" version)) (sha256 (base32 - "1p155w26hpmqc589kxha0xgw5b4x6610a3im7ap4mjx1sfavvn9w")))) + "024kyq81gwpl7shil63nng1z6pgqcwy6j6wj44gj7ch3vd9dz9fn")))) (build-system r-build-system) (propagated-inputs (list r-foreign r-lattice r-sp)) @@ -10309,14 +10583,14 @@ clustering.") (define-public r-factominer (package (name "r-factominer") - (version "2.6") + (version "2.7") (source (origin (method url-fetch) (uri (cran-uri "FactoMineR" version)) (sha256 (base32 - "0xcg4vjs5v9k28hhxhkfkks7nvpxpp2cvim00kh67f4pq041c9l1")))) + "03952kcnwrm61kn5im55ky1j91nm5x4i4f5gs115li6gck63xf17")))) (properties `((upstream-name . "FactoMineR"))) (build-system r-build-system) (propagated-inputs @@ -10606,14 +10880,14 @@ hierarchical models using Markov Chain Monte Carlo (MCMC) simulation.") (define-public r-rbibutils (package (name "r-rbibutils") - (version "2.2.10") + (version "2.2.11") (source (origin (method url-fetch) (uri (cran-uri "rbibutils" version)) (sha256 (base32 - "1xqpij07d19nvg18kyikpm37r3fharkdmxzm0cjddmqwv757lim6")))) + "10g3fv8ninihjldhvh00yrp260dczhz3q519000jm3wp5w47b945")))) (properties `((upstream-name . "rbibutils"))) (build-system r-build-system) (home-page "https://geobosh.github.io/rbibutils/") @@ -11101,6 +11375,43 @@ noncentral hypergeometric distribution (also called extended hypergeometric distribution).") (license license:gpl3))) +(define-public r-golem + (package + (name "r-golem") + (version "0.3.5") + (source (origin + (method url-fetch) + (uri (cran-uri "golem" version)) + (sha256 + (base32 + "0rjkl1r83h0hcn30zssx64qm07sdx3g4v5rdxn56gbzfghw7ddcl")))) + (properties `((upstream-name . "golem"))) + (build-system r-build-system) + (propagated-inputs + (list r-attempt + r-cli + r-config + r-crayon + r-desc + r-fs + r-here + r-htmltools + r-pkgload + r-roxygen2 + r-rstudioapi + r-shiny + r-usethis + r-yaml)) + (native-inputs (list r-knitr)) + (home-page "https://github.com/ThinkR-open/golem") + (synopsis "Framework for robust Shiny applications") + (description + "This package implements an opinionated framework for building a +production- ready Shiny application. Golem contains a series of tools like +dependency management, version management, easy installation and deployment or +documentation management.") + (license license:expat))) + (define-public r-goplot (package (name "r-goplot") @@ -11175,14 +11486,14 @@ matches version and feature constraints.") (define-public r-argparse (package (name "r-argparse") - (version "2.1.6") + (version "2.2.1") (source (origin (method url-fetch) (uri (cran-uri "argparse" version)) (sha256 (base32 - "14p57nm0w3siqd473snzhpmnvsgl72x92pdcd64vhy2qg6nzmmra")))) + "193pjjy4vkmzmsc1w69szafgrisvn08gddilbxcg671sdk0dxd7k")))) (build-system r-build-system) (inputs (list python)) (propagated-inputs @@ -11269,14 +11580,14 @@ the work.") (define-public r-doby (package (name "r-doby") - (version "4.6.14") + (version "4.6.15") (source (origin (method url-fetch) (uri (cran-uri "doBy" version)) (sha256 (base32 - "1ps6r7yxs0a6rpfi2yzrb9j41862za3gdl1aq9vw3j5cmgrk8w1n")))) + "14asz3bpyvxakvpap2aajk6f5j2d3d6vrvrgnlixg5q6gdbh465m")))) (properties `((upstream-name . "doBy"))) (build-system r-build-system) (propagated-inputs @@ -13225,17 +13536,17 @@ the differences were not significantly different.") (define-public r-emmeans (package (name "r-emmeans") - (version "1.8.2") + (version "1.8.3") (source (origin (method url-fetch) (uri (cran-uri "emmeans" version)) (sha256 (base32 - "02fj957f67m1ik9n31h1p726hjnlhwlvd1wz93glfrcagm2p6nbq")))) + "004fd6kzky44xixd87q2nl1sn37krmqfas5gsylbc1cbrwnjzxlz")))) (build-system r-build-system) (propagated-inputs - (list r-estimability r-mvtnorm r-numderiv r-xtable)) + (list r-estimability r-mvtnorm r-numderiv)) (native-inputs (list r-knitr)) (home-page "https://github.com/rvlenth/emmeans") @@ -13794,14 +14105,14 @@ user credentials.") (define-public r-gert (package (name "r-gert") - (version "1.9.1") + (version "1.9.2") (source (origin (method url-fetch) (uri (cran-uri "gert" version)) (sha256 (base32 - "1p8z5qap06qf680r25y78wgnprzl9ib3xp3kvsw01bh819v1h7bm")))) + "0pk6mf300kh6wwzvaqymwzlikkbf8zj0xpslgyydn7zvr95ipjj2")))) (properties `((upstream-name . "gert"))) (build-system r-build-system) (inputs @@ -14094,6 +14405,30 @@ problems into least squares ones first.") exact and interval-censored observations.") (license license:gpl2+))) +(define-public r-clustercrit + (package + (name "r-clustercrit") + (version "1.2.8") + (source (origin + (method url-fetch) + (uri (cran-uri "clusterCrit" version)) + (sha256 + (base32 + "10pz1bikdbkm2ky3xnagp0qv60whalavp6j39b4p7d75jj5xcxgk")))) + (properties `((upstream-name . "clusterCrit"))) + (build-system r-build-system) + (native-inputs (list gfortran)) + (home-page "https://www.r-project.org/") + (synopsis "Computing clustering validation indices") + (description + "The @code{clusterCrit} package provides an implementation of the +following indices: Czekanowski-Dice, Folkes-Mallows, Hubert Γ, Jaccard, +McNemar, Kulczynski, Phi, Rand, Rogers-Tanimoto, Russel-Rao or Sokal-Sneath. +ClusterCrit defines several functions which compute internal quality indices +or external comparison indices. The partitions are specified as an integer +vector giving the index of the cluster each observation belongs to.") + (license license:gpl2+))) + (define-public r-clusteval (package (name "r-clusteval") @@ -14495,14 +14830,14 @@ other values.") (define-public r-ncdf4 (package (name "r-ncdf4") - (version "1.19") + (version "1.20") (source (origin (method url-fetch) (uri (cran-uri "ncdf4" version)) (sha256 (base32 - "0qzvin2fjzcb7h2knlnw14s6043pwi1nm7yf6p27ax7w269173fb")))) + "1kpi5xygx1nj8ybxrn9z0jxi3lbcibdvc7mjgyvm6f9plwjlxjvq")))) (build-system r-build-system) (inputs (list netcdf zlib)) @@ -15104,14 +15439,14 @@ Processing.") (define-public r-tm (package (name "r-tm") - (version "0.7-9") + (version "0.7-10") (source (origin (method url-fetch) (uri (cran-uri "tm" version)) (sha256 (base32 - "0a3ylj9735i21fh6iz63fkh1pnf2hs8ipp8wjdj25dahl18yhlyv")))) + "15lxaqlgkl9chiz0aw05l55bvlh48jwdgplfl8f2d8xsaq4gmbvc")))) (properties `((upstream-name . "tm"))) (build-system r-build-system) (propagated-inputs @@ -15122,6 +15457,35 @@ Processing.") "This package provides a framework for text mining applications within R.") (license license:gpl3))) +(define-public r-waffle + (package + (name "r-waffle") + (version "0.7.0") + (source (origin + (method url-fetch) + (uri (cran-uri "waffle" version)) + (sha256 + (base32 + "1qjmai33p96cyavi9lgi6k30h6fj7db5sr569v9jf4kwx92c61df")))) + (properties `((upstream-name . "waffle"))) + (build-system r-build-system) + (propagated-inputs + (list r-extrafont + r-ggplot2 + r-gridextra + r-gtable + r-rcolorbrewer)) + (home-page "https://github.com/hrbrmstr/waffle/tree/cran") + (synopsis "Creating waffle chart visualizations in R") + (description + "This package creates square pie charts also known as waffle charts. +These can be used to communicate parts of a whole for categorical quantities. +To emulate the percentage view of a pie chart, a 10x10 grid should be used. +In this way each square is representing 1% of the total. Waffle provides +tools to create charts as well as stitch them together. Isotype pictograms +can be made by using glyphs.") + (license license:gpl2+))) + (define-public r-waveslim (package (name "r-waveslim") @@ -15195,16 +15559,17 @@ maps.") (define-public r-tidytree (package (name "r-tidytree") - (version "0.4.1") + (version "0.4.2") (source (origin (method url-fetch) (uri (cran-uri "tidytree" version)) (sha256 - (base32 "1sq982x0pqvrn4d77m6v5xbbr9c8dkrwvw3as1pc5cg12x6kdi7v")))) + (base32 "0phmvbpsxx85fvw4000d160qh8njrgmzpr3ja0gy59dgv1k1m0yb")))) (build-system r-build-system) (propagated-inputs (list r-ape + r-cli r-dplyr r-lazyeval r-magrittr @@ -15671,13 +16036,13 @@ useful for building large phylogenies using multiple markers.") (define-public r-rnexml (package (name "r-rnexml") - (version "2.4.8") + (version "2.4.9") (source (origin (method url-fetch) (uri (cran-uri "RNeXML" version)) (sha256 (base32 - "0l5qpg6f107k927vnnki7g9yfs20xkpd7c5pkvbj8bpybbwjkm16")))) + "180w7c8n4xcn3x7haymi1fl3fpnklqfgmaki6jkxpm3hdiffmbsd")))) (build-system r-build-system) (propagated-inputs (list r-ape @@ -15813,6 +16178,30 @@ visualization; flexible image manipulation; metadata and sparse image handling.") (license license:gpl2))) +(define-public r-gridsvg + (package + (name "r-gridsvg") + (version "1.7-4") + (source (origin + (method url-fetch) + (uri (cran-uri "gridSVG" version)) + (sha256 + (base32 + "1jspjn56yrkx98hhs98npzm0k0kwpv8x1hg40kphx5ikhvincxmr")))) + (properties `((upstream-name . "gridSVG"))) + (build-system r-build-system) + (propagated-inputs + (list r-jsonlite r-xml)) + (home-page "https://cran.r-project.org/package=gridSVG") + (synopsis "Export grid gaphics as SVG") + (description + "This package provides functions to export graphics drawn with package +grid to SVG format. Extra functions provide access to SVG features that are +not available in standard R graphics, such as hyperlinks, animation, filters, +masks, clipping paths, and gradient and pattern fills.") + ;; Any version of the GPL. + (license (list license:gpl2 license:gpl3)))) + (define-public r-grimport (package (name "r-grimport") @@ -16144,14 +16533,14 @@ preparing, executing, and processing HTTP requests.") (define-public r-gmp (package (name "r-gmp") - (version "0.6-8") + (version "0.6-9") (source (origin (method url-fetch) (uri (cran-uri "gmp" version)) (sha256 (base32 - "0fba80f28fcb2w2spiy6wg7dr5cz7w6gf9z3yrkc6p60zbxdaccf")))) + "00zh0phr8axva2y2c10nla7n9mgh3wvwvsyyd3y43jpb3xim6lv6")))) (build-system r-build-system) (arguments '(#:phases @@ -16196,6 +16585,29 @@ functions. To this end, the package interfaces with the @dfn{Multiple Precision Floating-Point Reliable} (MPFR) library.") (license license:gpl2+))) +(define-public r-rmutil + (package + (name "r-rmutil") + (version "1.1.10") + (source (origin + (method url-fetch) + (uri (cran-uri "rmutil" version)) + (sha256 + (base32 + "1yd5gkg4jg3rvqrfl8c5r07lcr37n1p9h1a7b6s45iswd77dg7w1")))) + (properties `((upstream-name . "rmutil"))) + (build-system r-build-system) + (native-inputs (list gfortran)) + (home-page "https://www.commanster.eu/rcode.html") + (synopsis + "Utilities for nonlinear regression and repeated measurements models") + (description + "This package provides a toolkit of functions for nonlinear regression +and repeated measurements. It was designated to be imported by other packages +such as @code{gnlm}, @code{stable}, @code{growth}, @code{repeated}, and +@code{event}.") + (license license:gpl2+))) + (define-public r-assertive-base (package (name "r-assertive-base") @@ -16779,14 +17191,14 @@ package \"boot\".") (define-public r-survivalroc (package (name "r-survivalroc") - (version "1.0.3") + (version "1.0.3.1") (source (origin (method url-fetch) (uri (cran-uri "survivalROC" version)) (sha256 (base32 - "0wnd65ff5w679hxa1zrpfrx9qg47q21pjxppsga6m3h4iq1yfj8l")))) + "0p6irjs8a9xxgxwax0y9fzapcib237if3iy8g6lzv793mzmsyx41")))) (properties `((upstream-name . "survivalROC"))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/survivalROC") @@ -16814,6 +17226,26 @@ Lumley & Pepe (Biometrics, Vol 56 No 2, 2000, PP 337-344)") discovery rates.") (license license:gpl2))) +(define-public r-logging + (package + (name "r-logging") + (version "0.10-108") + (source (origin + (method url-fetch) + (uri (cran-uri "logging" version)) + (sha256 + (base32 + "13gd40ygx586vs6xcp6clg69a92aj8zxlk1rn3xzkx8klfjimjc5")))) + (properties `((upstream-name . "logging"))) + (build-system r-build-system) + (home-page "https://github.com/WLOGSolutions/r-logging") + (synopsis "R logging implementation of log4j") + (description + "This package implements the R version of the @code{log4j} package. It offers +hierarchic loggers, multiple handlers per logger, level based filtering, space +handling in messages and custom formatting.") + (license license:gpl3))) + (define-public r-longitudinal (package (name "r-longitudinal") @@ -17152,14 +17584,14 @@ by change of variable.") (define-public r-listenv (package (name "r-listenv") - (version "0.8.0") + (version "0.9.0") (source (origin (method url-fetch) (uri (cran-uri "listenv" version)) (sha256 (base32 - "0ps8bk7zlhbviawrw7vw25skjq81hkk3ijyi6g74dmfqy8zsyapx")))) + "11s8cy259al6x98xcz93jw6p87si01gcgzccnxhx69879zh42a1m")))) (build-system r-build-system) (arguments `(#:phases @@ -17204,14 +17636,14 @@ them in distributed compute environments.") (define-public r-parallelly (package (name "r-parallelly") - (version "1.32.1") + (version "1.33.0") (source (origin (method url-fetch) (uri (cran-uri "parallelly" version)) (sha256 (base32 - "146a9i999vrflr4g1fph1pgkl4bq0dw102bjw8pp1zy7kbsqbiii")))) + "0ymrpcxp2fnk1fpfig0kd1q3whzh7sykgcl91k53c2w20v2wwfpw")))) (properties `((upstream-name . "parallelly"))) (build-system r-build-system) (home-page "https://github.com/HenrikBengtsson/parallelly") @@ -17232,14 +17664,14 @@ port-forwarding to your local computer.") (define-public r-future (package (name "r-future") - (version "1.29.0") + (version "1.30.0") (source (origin (method url-fetch) (uri (cran-uri "future" version)) (sha256 (base32 - "0ws3jp82qjpnvgn5xrxdq7hg7r97rkylj329f9jqr69g3paiyvc5")))) + "1njmgnq0qz7b9yvcp6351yz7ydz9hj8bnnaf1ys3md66v9mg1xf7")))) (build-system r-build-system) (arguments `(#:phases @@ -17374,14 +17806,14 @@ heuristics.") (define-public r-dorng (package (name "r-dorng") - (version "1.8.2") + (version "1.8.3") (source (origin (method url-fetch) (uri (cran-uri "doRNG" version)) (sha256 (base32 - "1jff27zzrvd1fd61x2m9468h8xn3s1c9f6wibviy5zdhj5dx9s9k")))) + "1aqzy646c6aggscmwninr1hz0z4nkxibmrg1mm77p2jnf1lh914c")))) (properties `((upstream-name . "doRNG"))) (build-system r-build-system) (propagated-inputs @@ -17445,6 +17877,29 @@ intersecting sets using a novel matrix design, along with visualizations of several common set, element and attribute related tasks.") (license license:expat))) +(define-public r-shinycustomloader + (package + (name "r-shinycustomloader") + (version "0.9.0") + (source (origin + (method url-fetch) + (uri (cran-uri "shinycustomloader" version)) + (sha256 + (base32 + "1klx71vr26g0gjf6hbiia1qidqii5d467i1sdjvlrg1hxdcggqff")))) + (properties `((upstream-name . "shinycustomloader"))) + (build-system r-build-system) + (propagated-inputs + (list r-glue + r-shiny)) + (home-page "https://cran.r-project.org/package=shinycustomloader") + (synopsis "Custom loader for Shiny outputs") + (description + "This package provides a custom @code{CSS/HTML} or @code{GIF/image} file +for the loading screen in R @code{Shiny}. It also can use the marquee to have +a custom text loading screen.") + (license license:gpl3))) + ;; This package includes a JavaScript file, which is not minified. When ;; upgrading please check that there are no new minified JavaScript files. (define-public r-shinybs @@ -17582,16 +18037,17 @@ identifying outliers.") (define-public r-bayesm (package (name "r-bayesm") - (version "3.1-4") + (version "3.1-5") (source (origin (method url-fetch) (uri (cran-uri "bayesm" version)) (sha256 - (base32 "154glks7rsjkza0sfi1kj7wj727py9sl1ba6sswflwmwc9n226q6")))) + (base32 "18j7h32nq4hx1qnxfgfgz3q39q35lmvsq3im90xjkphyli60f8zj")))) (build-system r-build-system) (propagated-inputs (list r-rcpp r-rcpparmadillo)) + (native-inputs (list r-knitr)) (home-page "http://www.perossi.org/home/bsm-1") (synopsis "Bayesian inference for marketing/micro-econometrics") (description @@ -18357,14 +18813,14 @@ can be used with function approximation, eligibility traces (Singh & Sutton, (define-public r-lemon (package (name "r-lemon") - (version "0.4.5") + (version "0.4.6") (source (origin (method url-fetch) (uri (cran-uri "lemon" version)) (sha256 (base32 - "1y3ljidhqdakxlya2npj2w0az820g8kw6gl1cfm4f0cxvzgd1ly4")))) + "0v1kbyk64yzsk92h6yq03kp9alc9632qprznsws61r8firiskim5")))) (build-system r-build-system) (propagated-inputs (list r-ggplot2 @@ -18373,7 +18829,6 @@ can be used with function approximation, eligibility traces (Singh & Sutton, r-knitr r-lattice r-plyr - r-rlang r-scales)) (native-inputs (list r-knitr)) @@ -18621,14 +19076,14 @@ utilities for sequence data management under the ACNUC system.") (define-public r-units (package (name "r-units") - (version "0.8-0") + (version "0.8-1") (source (origin (method url-fetch) (uri (cran-uri "units" version)) (sha256 (base32 - "06mjprqi06xprj6185k5cmrrdl025x0pd1r6a4x3s74ciq9zwilw")))) + "16ndhl4hkcll9r5vh8flp2bc3mavddfz8g6sqddj15scdcjbmqfk")))) (build-system r-build-system) (inputs (list udunits)) @@ -18770,14 +19225,14 @@ tessellation.") (define-public r-wk (package (name "r-wk") - (version "0.7.0") + (version "0.7.1") (source (origin (method url-fetch) (uri (cran-uri "wk" version)) (sha256 (base32 - "1pm2293xqcgjckghbf6q9sk7jh74njiynq3wqq1dbwigiz9jfhz2")))) + "116kvg2a9gga14agqvmvj2rbgfpdyasbkjnfjcsw9a9dk0n7g9g5")))) (properties `((upstream-name . "wk"))) (build-system r-build-system) (home-page "https://paleolimbot.github.io/wk/") @@ -19337,13 +19792,13 @@ SELECT or UPDATE queries to an end-point.") (define-public r-bookdown (package (name "r-bookdown") - (version "0.30") + (version "0.31") (source (origin (method url-fetch) (uri (cran-uri "bookdown" version)) (sha256 (base32 - "1i54sbrdv2c9l6pcm3229wlwdnhn0x6f2918adszm5k8qdp0h74i")))) + "0rkapx3zz0vwggnrpk0ns8bpqsblkp08xpr0srz93c3kzlsjdiac")))) (build-system r-build-system) (propagated-inputs (list r-htmltools @@ -20041,13 +20496,13 @@ that fills this gap.") (define-public r-eulerr (package (name "r-eulerr") - (version "6.1.1") + (version "7.0.0") (source (origin (method url-fetch) (uri (cran-uri "eulerr" version)) (sha256 (base32 - "0lldp2319qd08y87f862gx8a77rvikcnkmdl9xgx4glynfs3hk19")))) + "16a84a2xgv1iqsir0hzn6qclljni4f3prpycb7qpp06vrd0yn8lw")))) (properties `((upstream-name . "eulerr"))) (build-system r-build-system) (propagated-inputs @@ -20868,14 +21323,14 @@ colored by the number of neighboring points. This is useful to visualize the (define-public r-arrow (package (name "r-arrow") - (version "10.0.0") + (version "10.0.1") (source (origin (method url-fetch) (uri (cran-uri "arrow" version)) (sha256 (base32 - "04qsj68zsqcwkv1ryp4l0is474siyi1b64dy41fr74ryj7mbamg8")))) + "0dwdi9sq7wv34ia6kg446pqf5za75hl6zrb2ly51p2zdr4g69p0y")))) (properties `((upstream-name . "arrow"))) (build-system r-build-system) (inputs @@ -21606,6 +22061,57 @@ perspective plots, slice plots, surface plots, scatter plots, etc. It includes data sets from oceanography.") (license license:gpl3+))) +(define-public r-plotroc + (package + (name "r-plotroc") + (version "2.3.0") + (source (origin + (method url-fetch) + (uri (cran-uri "plotROC" version)) + (sha256 + (base32 + "0kaz9hrimi9gi7cf7flag9kc9yrg5fdyylqa5hn53x4dy8vhj37g")) + (snippet + '(delete-file "inst/d3.v3.min.js")))) + (properties `((upstream-name . "plotROC"))) + (build-system r-build-system) + (arguments + (list + #:phases + '(modify-phases %standard-phases + (add-after 'unpack 'process-javascript + (lambda* (#:key inputs #:allow-other-keys) + (let ((source (assoc-ref inputs "d3.v3.js")) + (target "inst/d3.v3.min.js")) + (invoke "esbuild" source "--minify" + (string-append "--outfile=" target)))))))) + (propagated-inputs + (list r-ggplot2 + r-gridsvg + r-plyr + r-rlang + r-shiny)) + (native-inputs + `(("r-knitr" ,r-knitr) + ("esbuild" ,esbuild) + ("d3.v3.js" + ,(origin + (method url-fetch) + (uri "https://d3js.org/d3.v3.js") + (sha256 + (base32 + "1arr7sr08vy7wh0nvip2mi7dpyjw4576vf3bm45rp4g5lc1k1x41")))))) + (home-page "https://sachsmc.github.io/plotROC/") + (synopsis "Generating useful receiver operating characteristic curve charts") + (description + "This package generates @acronym{ROC, receiver operating characteristic} +plots. Most ROC curve plots obscure the cutoff values and inhibit +interpretation and comparison of multiple curves. This attempts to address +those shortcomings by providing plotting and interactive tools. Functions are +provided to generate an interactive ROC curve plot for web use, and print +versions. A Shiny application implementing the functions is also included.") + (license license:expat))) + (define-public r-ggfortify (package (name "r-ggfortify") @@ -22202,14 +22708,14 @@ emphasize hidden group structures in networks or focus on specific nodes.") (define-public r-terra (package (name "r-terra") - (version "1.6-41") + (version "1.6-47") (source (origin (method url-fetch) (uri (cran-uri "terra" version)) (sha256 (base32 - "0n0si3b6l88w0svvpc999slqack1djdd96jc0m8fdkwp0nwi3hkc")))) + "13n6rxrrkn4wgcgq2kyyhn5nxw099hy9fbzxg78waxa6cxapwpmh")))) (properties `((upstream-name . "terra"))) (build-system r-build-system) (inputs @@ -22351,13 +22857,13 @@ effect size.") (define-public r-rgdal (package (name "r-rgdal") - (version "1.6-2") + (version "1.6-3") (source (origin (method url-fetch) (uri (cran-uri "rgdal" version)) (sha256 - (base32 "0g83r9lzq79hs7mk31kqym1sjqnmk53j3nikrn2vk257v854pavy")))) + (base32 "0snz5m158as39h6zdcdrydwm5n2r2vayv3xy8n3g5mmkbxyyx7i2")))) (properties `((upstream-name . "rgdal"))) (build-system r-build-system) (inputs @@ -22416,6 +22922,9 @@ atmospheric physics.") (build-system r-build-system) (propagated-inputs (list r-cli r-glue r-rlang)) + ;; We can't add this here because via r-stringr this package ends up being + ;; an input to r-knitr. + #; (native-inputs (list r-knitr)) ; for vignettes (home-page "https://github.com/r-lib/lifecycle") @@ -23542,14 +24051,14 @@ See e.g. Gentle (2003) @url{doi:10.1007/b97336}.") (define-public r-lhs (package (name "r-lhs") - (version "1.1.5") + (version "1.1.6") (source (origin (method url-fetch) (uri (cran-uri "lhs" version)) (sha256 (base32 - "0fb3bc3s5pbwg92qkjbg7v8ah36wm6qs05vf098hwjakr7f6yg3s")))) + "0gyjdic714pqvq2jv1v0vh7hl9s83sg2zxx2gdkp38z6xx2cwzz3")))) (properties `((upstream-name . "lhs"))) (build-system r-build-system) (propagated-inputs (list r-rcpp)) @@ -24922,14 +25431,14 @@ number embedded in the file rather than the file extension.") (define-public r-imager (package (name "r-imager") - (version "0.42.13") + (version "0.42.16") (source (origin (method url-fetch) (uri (cran-uri "imager" version)) (sha256 (base32 - "0zygnmxwbbmj5i2l2affzdz90xvsa7b5pbkzkhjbm40is69rh2nr")))) + "00q2v000xanp03bzscmj3q9qnlhc97b1lgr4l19s9jmbf0hf9c5c")))) (properties `((upstream-name . "imager"))) (build-system r-build-system) (inputs @@ -25441,6 +25950,30 @@ They are based on clustering, the statistical concept of data depth, statistical shape analysis and archetypal analysis.") (license license:gpl2+))) +(define-public r-anytime + (package + (name "r-anytime") + (version "0.3.9") + (source (origin + (method url-fetch) + (uri (cran-uri "anytime" version)) + (sha256 + (base32 + "0jjpqynai5nd7mfy1smb44356f3d5bmpxhs1i9x9jw5c959c35hh")))) + (properties `((upstream-name . "anytime"))) + (build-system r-build-system) + (propagated-inputs + (list r-bh + r-rcpp)) + (home-page "http://dirk.eddelbuettel.com/code/anytime.html") + (synopsis "Converter of input to POSIXct or Date") + (description + "The package converts the input in any one of character, integer, numeric, +factor, or an ordered type into @code{POSIXct} (or @code{Date}) objects, using +one of a number of predefined formats, and relying on Boost facilities for date +and time parsing.") + (license license:gpl2+))) + (define-public r-anndata (package (name "r-anndata") @@ -26096,13 +26629,13 @@ space models and automatic ARIMA modelling.") (define-public r-forestplot (package (name "r-forestplot") - (version "3.1.0") + (version "3.1.1") (source (origin (method url-fetch) (uri (cran-uri "forestplot" version)) (sha256 (base32 - "0xk30mpb87sab2afnk2j474qjjf4j6x1ifh9j5n7w690f481iqqb")))) + "0jf7sl7z963r92l5r2irvnakmbmx554vbprg51smj6qns5a6dfcj")))) (properties `((upstream-name . "forestplot"))) (build-system r-build-system) (propagated-inputs @@ -26286,14 +26819,14 @@ Norwegian, Portuguese, Romanian, Russian, Spanish, Swedish and Turkish.") (define-public r-quanteda (package (name "r-quanteda") - (version "3.2.3") + (version "3.2.4") (source (origin (method url-fetch) (uri (cran-uri "quanteda" version)) (sha256 (base32 - "1blk9nhydvqyyz0kzhph7nh7ahcjzflmgyr4sv8fx5bpmn4hwjzk")))) + "1yg3lgckh6fncmw037p4gaa2bab59yh6izqix1cgyysjg4jpcw62")))) (properties `((upstream-name . "quanteda"))) (build-system r-build-system) (propagated-inputs @@ -26325,14 +26858,14 @@ machine learning, visually representing text and text analyses, and more.") (define-public r-topicmodels (package (name "r-topicmodels") - (version "0.2-12") + (version "0.2-13") (source (origin (method url-fetch) (uri (cran-uri "topicmodels" version)) (sha256 (base32 - "1d6iizmn042b59q2y6qc82z19wq3xm0zvgkf8iqf8fdzh51kmn5g")))) + "16mw0l7wm5idc831csxlk176c42a5xw8qm8xhbnmmdl2hjk0cqbx")))) (properties `((upstream-name . "topicmodels"))) (build-system r-build-system) (inputs @@ -26797,14 +27330,14 @@ output in R.") (define-public r-bdgraph (package (name "r-bdgraph") - (version "2.70") + (version "2.71") (source (origin (method url-fetch) (uri (cran-uri "BDgraph" version)) (sha256 (base32 - "1s148fvvg1c0n4swsvcinlwckj86jys5nvwp4wlyzh3aw9siyqz7")))) + "1lihsbliq7f91ywdq5cabzd5fbyhb10h62ss3n2l7i2fdglb77d1")))) (properties `((upstream-name . "BDgraph"))) (build-system r-build-system) (propagated-inputs @@ -26864,14 +27397,14 @@ network, tree, dendrogram, and Sankey graphs from R using data frames.") (define-public r-qgraph (package (name "r-qgraph") - (version "1.9.2") + (version "1.9.3") (source (origin (method url-fetch) (uri (cran-uri "qgraph" version)) (sha256 (base32 - "0r225b7rnsv6wz41ij0msmqr1xy0iqxh9dbsvjixbi1hvgv91wds")))) + "14azjxlvb02wlbskbsv5x3a6gpfb8hfyijfpbay6fimnsaqnmbj6")))) (properties `((upstream-name . "qgraph"))) (build-system r-build-system) (propagated-inputs @@ -28710,14 +29243,14 @@ input.") (define-public r-lightgbm (package (name "r-lightgbm") - (version "3.3.3") + (version "3.3.4") (source (origin (method url-fetch) (uri (cran-uri "lightgbm" version)) (sha256 (base32 - "1a4nacdpsqd5mr7jnw1g9nyn8w7p0hskfm07cy8yrj3h8a5hmcz8")))) + "12hcq2idjgggs8l9a5aaxbw1wsfz6byzaxqn9k6afvkf3v5srp65")))) (properties `((upstream-name . "lightgbm"))) (build-system r-build-system) (propagated-inputs @@ -29402,14 +29935,14 @@ formal inference.") (define-public r-gaston (package (name "r-gaston") - (version "1.5.7") + (version "1.5.8") (source (origin (method url-fetch) (uri (cran-uri "gaston" version)) (sha256 (base32 - "14z94dpln4dvgrv2w7w9ik7h6rpvbf02qhq1hqzx8c2cndzxr21i")))) + "1pv37csq3gvkld7hfxgbq72n35gx1wg3bvrcvzzzf0qsfb6g42cc")))) (properties `((upstream-name . "gaston"))) (build-system r-build-system) (inputs (list zlib)) @@ -29548,14 +30081,14 @@ model.") (define-public r-clusterr (package (name "r-clusterr") - (version "1.2.7") + (version "1.2.9") (source (origin (method url-fetch) (uri (cran-uri "ClusterR" version)) (sha256 (base32 - "1sl218scrf5s02v54bmmk2sz1vrnlq16c14c0lcg1n7x8d76sgk6")))) + "04aswnmxzpffc1fj2hf85pc5b10fh418k29a1x5cs1f1y7b3zav3")))) (properties `((upstream-name . "ClusterR"))) (build-system r-build-system) (propagated-inputs @@ -30384,19 +30917,18 @@ pipeline friendly so that data processing with lists can be chained.") (define-public r-rsample (package (name "r-rsample") - (version "1.1.0") + (version "1.1.1") (source (origin (method url-fetch) (uri (cran-uri "rsample" version)) (sha256 (base32 - "1iy61riwjch9z4m6k7whsrkl80sk9sww5lf1np4iq4vdfq6w01jb")))) + "1fmqfk1yihmh7lkszsf7pvn6zf67lpgff46hv2lpnfbssa3axllh")))) (properties `((upstream-name . "rsample"))) (build-system r-build-system) (propagated-inputs (list r-dplyr - r-ellipsis r-furrr r-generics r-glue @@ -30841,14 +31373,14 @@ functions or computational engines (e.g. R, Spark, Stan, etc).") (define-public r-infer (package (name "r-infer") - (version "1.0.3") + (version "1.0.4") (source (origin (method url-fetch) (uri (cran-uri "infer" version)) (sha256 (base32 - "1m5srhcmkh8wq12pvy57g3g703wilkl8r3gmm5s7lbj103iz7v8b")))) + "1s4q0nslykl0pb2w1i6ni6hkpp7awvp0wks79br3gk5wa1qkvs19")))) (properties `((upstream-name . "infer"))) (build-system r-build-system) (propagated-inputs @@ -30898,6 +31430,31 @@ expressive statistical grammar that coheres with the Tidy design framework.") model-related packages.") (license license:expat))) +(define-public r-modeest + (package + (name "r-modeest") + (version "2.4.0") + (source (origin + (method url-fetch) + (uri (cran-uri "modeest" version)) + (sha256 + (base32 + "087dw0013y4m7fcl06mxylh9lnp6acysl80d80r9srv4pw4r950s")))) + (properties `((upstream-name . "modeest"))) + (build-system r-build-system) + (propagated-inputs + (list r-fbasics + r-stable + r-stabledist + r-statip)) + (home-page "https://github.com/paulponcet/modeest") + (synopsis "Mode estimations for univariate data or distributions") + (description + "The package provides estimators of the mode of univariate unimodal (and +sometimes multimodal) data and values of the modes of usual probability +distributions.") + (license license:gpl3))) + (define-public r-conflicted (package (name "r-conflicted") @@ -31119,14 +31676,14 @@ covariate (usually group indicator) and the scores.") (define-public r-qtl (package (name "r-qtl") - (version "1.52") + (version "1.54") (source (origin (method url-fetch) (uri (cran-uri "qtl" version)) (sha256 (base32 - "0q49g3ar1451whsl6ig7kz4mg8s9zxlcvgkj4ivyw4995wbwc2ij")))) + "1rzkxkmcgd6drxbgqp6w6jab5bs7vla2x2ndv3l4nlbcwzi41jw0")))) (build-system r-build-system) (home-page "https://rqtl.org/") (synopsis "R package for analyzing QTL experiments in genetics") @@ -31142,12 +31699,12 @@ genome scans.") (define-public r-qtl2 (package (name "r-qtl2") - (version "0.28") + (version "0.30") (source (origin (method url-fetch) (uri (cran-uri "qtl2" version)) (sha256 - (base32 "0ppc6dzlq77mppxc6bczai9gi40jrbxd1466y2cn2s8a4ah1jg9y")))) + (base32 "0c9v5hwfmlchrdzdysvmi6dsxyclc15sqbp65l4x6zwpd0828h6c")))) (build-system r-build-system) (propagated-inputs (list r-data-table @@ -31912,14 +32469,14 @@ vector machines, and gradient boosting.") (define-public r-bbotk (package (name "r-bbotk") - (version "0.7.0") + (version "0.7.2") (source (origin (method url-fetch) (uri (cran-uri "bbotk" version)) (sha256 (base32 - "0g3x3r1dkp9w57arpqc6iccvsawjdf7vlv8c27cb1r36b0z45fi6")))) + "1gw0rkbiv93ifl9110r9sr0p9g4vg7qc11mznmmjq0a5vzmqgpm9")))) (properties `((upstream-name . "bbotk"))) (build-system r-build-system) (propagated-inputs @@ -31942,13 +32499,13 @@ annealing.") (define-public r-mlr3tuning (package (name "r-mlr3tuning") - (version "0.17.0") + (version "0.17.1") (source (origin (method url-fetch) (uri (cran-uri "mlr3tuning" version)) (sha256 (base32 - "1dg02qyyymflgws47sly3b7wd8nj4i9vv7ybx42hgvd55al3smdp")))) + "03habi7dm5xgwfb4zjn9nhvyym46qcljy31jz32fxalsap1mk9jb")))) (build-system r-build-system) (propagated-inputs (list r-bbotk @@ -32296,14 +32853,14 @@ in output to the equivalent HTML.") (define-public r-pkgdown (package (name "r-pkgdown") - (version "2.0.6") + (version "2.0.7") (source (origin (method url-fetch) (uri (cran-uri "pkgdown" version)) (sha256 (base32 - "0sbz3kzd0hbdnszylsb281arldn2z1c9yxifhj4zv2dilp46b6nj")))) + "0sim3fwayf4mpxqi8y9v7clnkzs56amhxsc75lc1k0zskn374f7k")))) (properties `((upstream-name . "pkgdown"))) (build-system r-build-system) (inputs (list pandoc)) @@ -33756,14 +34313,14 @@ object to and from disk.") (define-public r-rgeos (package (name "r-rgeos") - (version "0.5-9") + (version "0.6-1") (source (origin (method url-fetch) (uri (cran-uri "rgeos" version)) (sha256 (base32 - "1m73y0nwrdwsjrl48c4fg1kdqnh79835brnmxv9ak01ndbzcp45b")))) + "1wppxr9iibb0gi1hr6qzda9dc8spf6297lkfddl41j78q14bs3a2")))) (properties `((upstream-name . "rgeos"))) (build-system r-build-system) (inputs @@ -34141,14 +34698,14 @@ fully reproducible.") (define-public r-paws-common (package (name "r-paws-common") - (version "0.5.1") + (version "0.5.3") (source (origin (method url-fetch) (uri (cran-uri "paws.common" version)) (sha256 (base32 - "17cfvx2ma0zcrj3grpsadx8p5r97s2z6c23qqmzry7ys9mn6k9f1")))) + "090csb0wjnsfhkphws5anrnml18y1k54yi48lxav8wp5kqj4wlb6")))) (properties `((upstream-name . "paws.common"))) (build-system r-build-system) (propagated-inputs @@ -35202,13 +35759,13 @@ formatting and delivering log messages with low overhead.") (define-public r-fasterize (package (name "r-fasterize") - (version "1.0.3") + (version "1.0.4") (source (origin (method url-fetch) (uri (cran-uri "fasterize" version)) (sha256 - (base32 "10bzl77c1b9jhcn1xp467qzp2n8c7s3wpxn53qjh1nwvbri5kd32")))) + (base32 "1ckxi2iyxdahhgbliblcrkzziblfagzr54srjk27yp1lcgivvvs4")))) (properties `((upstream-name . "fasterize"))) (build-system r-build-system) (propagated-inputs diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 317ac389cc..58ddaa4e8f 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -30,6 +30,7 @@ ;;; Copyright © 2022 Gabriel Arazas <foo.dogsquared@gmail.com> ;;; Copyright © 2022 ( <paren@disroot.org> ;;; Copyright © 2022 Greg Hogan <code@greghogan.com> +;;; Copyright © 2022 Paul A. Patience <paul@apatience.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -14746,6 +14747,29 @@ processors.") "Bare bones CSV parsing with no_std support.") (license (list license:unlicense license:expat)))) +(define-public rust-csv-index-0.1 + (package + (name "rust-csv-index") + (version "0.1.6") + (source + (origin + (method url-fetch) + (uri (crate-uri "csv-index" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "01048y84y0bakqm0x4y1svjv6lzc753b9q598xp7xgcqrdgi6x7j")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-byteorder" ,rust-byteorder-1) + ("rust-csv" ,rust-csv-1)))) + (home-page "https://github.com/BurntSushi/rust-csv") + (synopsis "On-disk CSV indexing data structures") + (description + "A collection of data structures for indexing CSV data, with a focus on +data structures that can be easily serialized to and deserialized from disk.") + (license (list license:unlicense license:expat)))) + (define-public rust-cstr-core-0.2 (package (name "rust-cstr-core") diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 821e78d55a..ad31ff8a8b 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -953,14 +953,14 @@ SHA256, SHA512, SHA3, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R (define-public botan (package (name "botan") - (version "2.19.2") + (version "2.19.3") (source (origin (method url-fetch) (uri (string-append "https://botan.randombit.net/releases/" "Botan-" version ".tar.xz")) (sha256 (base32 - "0xad3fa96l6x3azxs2gbz5jfqm2drfv9y9idhf5wvdf62mvg3x9s")))) + "0m9dh00zibx13pbjij8lbncf86pix3cxklxmgl47z965k7rlgq6s")))) (build-system gnu-build-system) (arguments (list @@ -1293,10 +1293,10 @@ signatures include trusted comments in addition to untrusted comments. Trusted comments are signed, thus verified, before being displayed.") (license license:isc))) -(define-public libolm +(define-public olm (package - (name "libolm") - (version "3.2.12") + (name "olm") + (version "3.2.14") (source (origin (method git-fetch) (uri (git-reference @@ -1304,7 +1304,7 @@ Trusted comments are signed, thus verified, before being displayed.") (commit version))) (sha256 (base32 - "1k8v9ig32vmjm58rbris621d7mvp4q91qa5p79vc51p41sz91yhj")) + "0pj7gs32ixhlls792wah7xf49j5pra0avp7dpvy9cndkdkg6biq5")) (file-name (git-file-name name version)) ;; Delete the bundled blob. It's free, but unauditable, ;; and apparently only required for android. @@ -1319,13 +1319,16 @@ Trusted comments are signed, thus verified, before being displayed.") (when tests? (with-directory-excursion "tests" (invoke "ctest" ".")))))))) - (synopsis "Implementation of the olm and megolm cryptographic ratchets") - (description "The libolm library implements the Double Ratchet + (synopsis "Implementation of the Olm and Megolm cryptographic ratchets") + (description "The Olm library implements the Double Ratchet cryptographic ratchet. It is written in C and C++11, and exposed as a C API.") (home-page "https://matrix.org/docs/projects/other/olm/") (license license:asl2.0))) +(define-public libolm + (deprecated-package "libolm" olm)) + (define-public python-olm (package ;; python-olm is part of libolm and must be updated at the same time. @@ -1351,10 +1354,9 @@ API.") (list python-cffi python-future)) (native-inputs (list python-pytest python-pytest-benchmark python-aspectlib)) - (synopsis "Python bindings for libolm") - (description "The libolm library implements the Double Ratchet -cryptographic ratchet. It is written in C and C++11, and exposed as a C -API. This package contains its Python bindings."))) + (synopsis "Python bindings for Olm") + (description "The Olm library implements the Double Ratchet +cryptographic ratchet. This package contains its Python bindings."))) (define-public hash-extender (let ((commit "cb8aaee49f93e9c0d2f03eb3cafb429c9eed723d") diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 2cd6234450..49538593ea 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -174,6 +174,7 @@ #:use-module (guix build-system go) #:use-module (guix build-system meson) #: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 ruby) @@ -487,14 +488,14 @@ mapping from string keys to string values.") (define-public memcached (package (name "memcached") - (version "1.6.16") + (version "1.6.17") (source (origin (method url-fetch) (uri (string-append "https://memcached.org/files/memcached-" version ".tar.gz")) (sha256 - (base32 "1nilmfhy8hc7zzlihnx3hmiqf7siyrpgz2g5s3r3l36xy4xsjl9h")))) + (base32 "090jpprdjhbr1v9ph15s077bj8ryrsnz1ydg54aw53rxc5ry6m90")))) (build-system gnu-build-system) (inputs (list libevent cyrus-sasl)) @@ -577,13 +578,13 @@ the API, and provides features such as: (define-public python-pylibmc (package (name "python-pylibmc") - (version "1.6.1") + (version "1.6.3") (source (origin (method url-fetch) (uri (pypi-uri "pylibmc" version)) (sha256 - (base32 "1sg7d9j0v6g3xg3finf4l1hb72c13vcyyi6rqrc9shbx903d93ca")))) + (base32 "1q06696lxpqn155sydg3z6dksimks6n35q72zdjsvarpal8ldypf")))) (build-system python-build-system) (arguments '(#:phases @@ -593,7 +594,7 @@ the API, and provides features such as: (lambda _ (invoke "memcached" "-d")))))) (native-inputs - (list memcached python-nose)) + (list memcached python-pytest)) (inputs (list libmemcached zlib cyrus-sasl)) (home-page "http://sendapatch.se/projects/pylibmc/") @@ -1572,14 +1573,14 @@ types are supported, as is encryption.") (define-public emacs-rec-mode (package (name "emacs-rec-mode") - (version "1.9.0") + (version "1.9.1") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "rec-mode-" version ".tar")) (sha256 (base32 - "1w1q6kh567fd8xismq9i6wr1y893lypd30l452yvydi1qjiq1n6x")) + "0f60bw07l6kk1kkjjxsk30p6rxj9mpngaxqy8piyabnijfgjzd3s")) (snippet #~(begin (delete-file "rec-mode.info"))))) (build-system emacs-build-system) (arguments @@ -2795,7 +2796,7 @@ semantics.") (define-public libpqxx (package (name "libpqxx") - (version "7.7.3") + (version "7.7.4") (source (origin (method git-fetch) (uri (git-reference @@ -2804,7 +2805,7 @@ semantics.") (file-name (git-file-name name version)) (sha256 (base32 - "1mrhsih5bhiin0l3c4vp22l9p7c5035m0vvqpx18c0407fkzc7hp")))) + "1qwpfba8g55jjv0xnsk4hhf2cmhk7mdirxx115cvnjjw97ppy0z0")))) (build-system gnu-build-system) (native-inputs (list gcc-11 python-wrapper)) (inputs (list postgresql)) @@ -2937,13 +2938,13 @@ with Python's asyncio framework.") (define-public python-asyncmy (package (name "python-asyncmy") - (version "0.2.3") + (version "0.2.5") (source (origin (method url-fetch) (uri (pypi-uri "asyncmy" version)) (sha256 - (base32 "19p81jd4w7m7v2x1jdrwibp67wzqx1a7rdw5n4qqmch3iffp97vn")))) + (base32 "0i18zxy6xvzv6dk791xifn2sw2q4zvqwpzrzy8qx51d3mp8z6gng")))) (build-system python-build-system) (native-inputs (list python-cython)) (home-page "https://github.com/long2ice/asyncmy") @@ -3089,13 +3090,13 @@ or languages. It uses only Python's built-in data types.") (define-public python-pyodbc (package (name "python-pyodbc") - (version "4.0.32") + (version "4.0.35") (source (origin (method url-fetch) (uri (pypi-uri "pyodbc" version)) (sha256 - (base32 "0sqs0x2l5mk3yv0wwz3ya8yh5f4babihyhc8hjbf2m86b71z1rcv")) + (base32 "1j7577acd2f16zifw49ajg0aw7vm0pdg6jxrr1dlaa5rx14azfcj")) (modules '((guix build utils))) (snippet ;; Delete precompiled binaries. The corresponding source is included. @@ -3403,14 +3404,13 @@ framework.") (define-public python-sqlalchemy-utils (package (name "python-sqlalchemy-utils") - (version "0.38.2") + (version "0.38.3") (source (origin (method url-fetch) (uri (pypi-uri "SQLAlchemy-Utils" version)) (sha256 - (base32 - "1d6fq81489kqzxmk3l6f39sinw206lzs392frmpr5lsjzg9xc0cy")))) + (base32 "0k8z0mjhvdv302kn0nhci8b2dgw4cn2akprsf37ma1540ykgp6lz")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; FIXME: Many tests require a running database server. @@ -3542,7 +3542,7 @@ PickleShare.") (define-public python-apsw (package (name "python-apsw") - (version "3.39.2.1") + (version "3.40.0.0") ;; The compressed release has fetching functionality disabled. (source (origin @@ -3552,24 +3552,23 @@ PickleShare.") version "/apsw-" version ".zip")) (sha256 (base32 - "06x3qgg71xz8l3kz8gz04wkfp5f6zfrg476a4mm1c5hikqyw6ykj")) - ;; Cherry-picked from upstream, remove when bumping to 3.39.3. - (patches - (search-patches "python-apsw-3.39.2.1-test-fix.patch")))) - (build-system python-build-system) - (native-inputs (list unzip)) - (inputs (list sqlite-next)) ;SQLite 3.39 required. + "02sgja00azvd08wi2wm105apmhp2644s7aw9b1zdg3dkcwjnsiad")))) + (build-system pyproject-build-system) + (native-inputs + (list python-cython unzip)) + (inputs (list sqlite-next)) ;SQLite 3.40 required. (arguments - (list #:phases - #~(modify-phases %standard-phases - (replace 'build - (lambda _ - (invoke "python" "setup.py" "build" "--enable-all-extensions" - "--enable=load_extension"))) - (add-after 'build 'build-test-helper - (lambda _ - (invoke "gcc" "-fPIC" "-shared" "-o" "./testextension.sqlext" - "-I." "-Isqlite3" "src/testextension.c")))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'build-extensions + (lambda _ + (invoke "python" "setup.py" "build" "--enable-all-extensions" + "--enable=load_extension"))) + (add-after 'build 'build-test-helper + (lambda _ + (invoke "gcc" "-fPIC" "-shared" "-o" "./testextension.sqlext" + "-I." "-Isqlite3" "src/testextension.c")))))) (home-page "https://github.com/rogerbinns/apsw/") (synopsis "Another Python SQLite Wrapper") (description @@ -3638,13 +3637,13 @@ managers for automatically closing connections.") (define-public python-psycopg2 (package (name "python-psycopg2") - (version "2.9.3") + (version "2.9.5") (source (origin (method url-fetch) (uri (pypi-uri "psycopg2" version)) (sha256 - (base32 "1099as8ind9kpz30rmqzc3nir668fmpkxwayrj2sjka3ycdiv14f")))) + (base32 "0ni4kq6p7hbkm2qsky998q36q5gq5if4nwd8hwhjx5rsd0p6s955")))) (build-system python-build-system) (arguments ;; Tests would require a postgresql database "psycopg2_test" @@ -3960,7 +3959,7 @@ reasonable substitute.") (define-public python-rq (package (name "python-rq") - (version "1.11") + (version "1.11.1") (source (origin (method git-fetch) @@ -3969,7 +3968,7 @@ reasonable substitute.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1dj3m8dh9vf1qiq1drjhfw5xbr975v1kpzn4fwja83cfd7jrpzvy")))) + (base32 "0dnjm2s036l4j4ypq0h903vh132dp2wiwjrn8jicz1nw829dqpzf")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -4057,13 +4056,13 @@ is designed to have a low barrier to entry.") (define-public python-sqlparse (package (name "python-sqlparse") - (version "0.4.2") + (version "0.4.3") (source (origin (method url-fetch) (uri (pypi-uri "sqlparse" version)) (sha256 (base32 - "1bkx52c2jh28c528b69qfk2ijfzw1laxx6lim7jr8fi6fh67600c")))) + "0s3jyllg0ka0n7pgqfng1hzvh39li853dr40qcp4s4dv8r481jk9")))) (build-system python-build-system) (arguments `(#:phases @@ -4263,6 +4262,138 @@ language-bindings for structure manipulation. It also provides IPC and common algorithm implementations.") (license license:asl2.0))) +(define-public apache-arrow-for-ceph + (package + (name "apache-arrow") + (version "6.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/apache/arrow") + (commit (string-append "apache-arrow-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0mcw361akqw4sxnnpnr9c9v1zk4hphk6gcq763pcb19yzljh88ig")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'configure 'enter-source-directory + (lambda _ (chdir "cpp"))) + (add-after 'unpack 'set-env + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "cpp/src/parquet/parquet.pc.in" + (("includedir=\\$\\{prefix\\}/") + "includedir=")) + (substitute* "cpp/cmake_modules/ThirdpartyToolchain.cmake" + (("set\\(xsimd_SOURCE.*") "")) + (setenv "BOOST_ROOT" (assoc-ref inputs "boost")) + (setenv "BROTLI_HOME" (assoc-ref inputs "brotli")) + (setenv "FLATBUFFERS_HOME" (assoc-ref inputs "flatbuffers")) + (setenv "RAPIDJSON_HOME" (assoc-ref inputs "rapidjson"))))) + #:build-type "Release" + #:configure-flags + (list "-DARROW_PYTHON=ON" + "-DARROW_GLOG=ON" + ;; Parquet options + "-DARROW_PARQUET=ON" + "-DPARQUET_BUILD_EXECUTABLES=ON" + ;; The maintainers disallow using system versions of + ;; jemalloc: + ;; https://issues.apache.org/jira/browse/ARROW-3507. This + ;; is unfortunate because jemalloc increases performance: + ;; https://arrow.apache.org/blog/2018/07/20/jemalloc/. + "-DARROW_JEMALLOC=OFF" + + ;; The CMake option ARROW_DEPENDENCY_SOURCE is a global + ;; option that instructs the build system how to resolve + ;; each dependency. SYSTEM = Finding the dependency in + ;; system paths using CMake's built-in find_package + ;; function, or using pkg-config for packages that do not + ;; have this feature + "-DARROW_DEPENDENCY_SOURCE=SYSTEM" + "-Dxsimd_SOURCE=SYSTEM" + + "-DARROW_RUNTIME_SIMD_LEVEL=NONE" + "-DARROW_SIMD_LEVEL=NONE" + "-DARROW_PACKAGE_KIND=Guix" + + ;; Split output into its component packages. + (string-append "-DCMAKE_INSTALL_PREFIX=" + (assoc-ref %outputs "lib")) + (string-append "-DCMAKE_INSTALL_RPATH=" + (assoc-ref %outputs "lib") + "/lib") + (string-append "-DCMAKE_INSTALL_BINDIR=" + (assoc-ref %outputs "out") + "/bin") + (string-append "-DCMAKE_INSTALL_INCLUDEDIR=" + (assoc-ref %outputs "include") + "/share/include") + + "-DARROW_WITH_SNAPPY=ON" + "-DARROW_WITH_ZLIB=ON" + "-DARROW_WITH_ZSTD=ON" + "-DARROW_WITH_LZ4=ON" + "-DARROW_COMPUTE=ON" + "-DARROW_CSV=ON" + "-DARROW_DATASET=ON" + "-DARROW_FILESYSTEM=ON" + "-DARROW_HDFS=ON" + "-DARROW_JSON=ON" + ;; Arrow Python C++ integration library (required for + ;; building pyarrow). This library must be built against + ;; the same Python version for which you are building + ;; pyarrow. NumPy must also be installed. Enabling this + ;; option also enables ARROW_COMPUTE, ARROW_CSV, + ;; ARROW_DATASET, ARROW_FILESYSTEM, ARROW_HDFS, and + ;; ARROW_JSON. + "-DARROW_PYTHON=ON" + + ;; Building the tests forces on all the + ;; optional features and the use of static + ;; libraries. + "-DARROW_BUILD_TESTS=OFF" + "-DBENCHMARK_ENABLE_GTEST_TESTS=OFF" + ;;"-DBENCHMARK_ENABLE_TESTING=OFF" + "-DARROW_BUILD_STATIC=OFF"))) + (inputs + (list boost + brotli + bzip2 + double-conversion + gflags + glog + grpc + protobuf + python + python-numpy + rapidjson + re2 + snappy + xsimd)) + ;; These are all listed under Requires.private in arrow.pc + (propagated-inputs + (list (list apache-thrift "lib") + lz4 + utf8proc + zlib + (list zstd "lib"))) + (native-inputs + (list pkg-config)) + (outputs '("out" "lib" "include")) + (home-page "https://arrow.apache.org/") + (synopsis "Columnar in-memory analytics") + (description "Apache Arrow is a columnar in-memory analytics layer +designed to accelerate big data. It houses a set of canonical in-memory +representations of flat and hierarchical data along with multiple +language-bindings for structure manipulation. It also provides IPC and common +algorithm implementations.") + (license license:asl2.0))) + (define-public apache-arrow-0.16 (package (name "apache-arrow") diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm index 67b66be38d..4319d3a518 100644 --- a/gnu/packages/debian.scm +++ b/gnu/packages/debian.scm @@ -339,7 +339,7 @@ distributions such as Debian and Trisquel.") (define-public dpkg (package (name "dpkg") - (version "1.21.8") + (version "1.21.12") (source (origin (method git-fetch) @@ -348,7 +348,7 @@ distributions such as Debian and Trisquel.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1whb78pywdlm4v1ablgvvplqjn15b6qrwqkj0pihw5j77aakyz2s")))) + (base32 "08a72lhkgz4iiimdkqlmf58m31zrwqcs0741nbxxq1x3s9phc25m")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index f05f60f016..f730d976fe 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -245,7 +245,7 @@ install.") (define-public reprotest (package (name "reprotest") - (version "0.7.21") + (version "0.7.22") (source (origin (method git-fetch) @@ -254,8 +254,7 @@ install.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "1jmnp6dwd91w00vfvph89cvgxwk0nvij8his9az5b72265jf9bxz")))) + (base32 "0qpjg37x2ha7lb113fb5cic5if3zv30zqijsmkq91ld909x30ggd")))) (inputs (list python-debian python-distro python-libarchive-c python-rstr)) (native-inputs @@ -296,8 +295,7 @@ install.") (install-file "doc/reprotest.1" mandir1) (mkdir-p docdir) (install-file "./README.rst" docdir) - (install-file "./README-dev.rst" docdir)) - #t))))) + (install-file "./README-dev.rst" docdir))))))) (home-page "https://salsa.debian.org/reproducible-builds/reprotest") (synopsis "Build software and check it for reproducibility") (description "Reprotest builds the same source code twice in different diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 3762e093a2..e4aa1f242a 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -290,7 +290,7 @@ prompt the user with the option to go with insecure DNS only.") (define-public dnsmasq (package (name "dnsmasq") - (version "2.87") + (version "2.88") (source (origin (method url-fetch) (uri (string-append @@ -298,7 +298,7 @@ prompt the user with the option to go with insecure DNS only.") version ".tar.xz")) (sha256 (base32 - "0ynyi4mixhxhbfxb2bivinkrjc5zgj9lj5bzgvymc8vz98vc0a02")))) + "1cy1zci6vyhzczy6ncc5m9d7zsnnzs9mmwd6pr9w0h03l7nlsm13")))) (build-system gnu-build-system) (native-inputs (list pkg-config)) @@ -544,14 +544,14 @@ asynchronous fashion.") (define-public nsd (package (name "nsd") - (version "4.4.0") + (version "4.6.1") (source (origin (method url-fetch) (uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-" version ".tar.gz")) (sha256 - (base32 "0dl8iriy0mscppfa6ar5qcglgvxw87140abwxyksak1lk7fnzkfg")))) + (base32 "0ym2fgkjar94y99lyvp93p7jpj33ysprvqd7py28xxn37shs6q1z")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -871,7 +871,7 @@ Extensions} (DNSSEC).") (define-public knot (package (name "knot") - (version "3.2.3") + (version "3.2.4") (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 "117q8jllaakd6gv0mfkq45sigy5c8j8jbyxiwna3wan0mjx81fhv")) + (base32 "0b6fnrdy5zqn3mnn5cl92j0m7k9l6hh4gnr92qpirqf54bl2lfm2")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index c0f7778c1c..c6829738c4 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -547,7 +547,7 @@ specialized device.") (inputs (list alsa-lib coreutils-minimal ;for patched 'env' shebang - ffmpeg + ffmpeg-4 freetype lame libass @@ -582,7 +582,7 @@ a pen-tablet display and a beamer.") (define-public fet (package (name "fet") - (version "6.7.1") + (version "6.7.7") (source (origin (method url-fetch) @@ -591,7 +591,7 @@ a pen-tablet display and a beamer.") (list (string-append directory base) (string-append directory "old/" base)))) (sha256 - (base32 "0vwddhmr9n21q4yhkcz6iakkff91hvjcfzhg84zvf1ap30xx09hk")))) + (base32 "08rm3yka3swr6wf3lcmzh2jlq5ajxi8c6nd2likqzvbg6plrjx6b")))) (build-system gnu-build-system) (arguments (list diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 18d1989124..fb4c9b70f9 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> -;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017, 2018, 2019 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2015, 2016, 2018, 2020 Christine Lemmer-Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com> @@ -118,6 +118,7 @@ ;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space> ;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr> ;;; Copyright © 2022 Thiago Jung Bauermann <bauermann@kolabnow.com> +;;; Copyright © 2022 Joeke de Graaf <joeke@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -195,7 +196,9 @@ #:use-module (gnu packages image) #:use-module (gnu packages linux) #:use-module (gnu packages libevent) + #:use-module (gnu packages lisp) #:use-module (gnu packages lisp-xyz) + #:use-module (gnu packages lsof) #:use-module (gnu packages lua) #:use-module (gnu packages music) #:use-module (gnu packages version-control) @@ -708,6 +711,8 @@ uploading PlatformIO projects.") "DEMO-ROLO.otl" "HY-ABOUT" "man/hkey-help.txt" + "man/hyberbole.info" + "kotl/.*" "\\.kotl$" %default-include) #:phases @@ -724,6 +729,13 @@ uploading PlatformIO projects.") (("\\(hyperb:check-dir-user\\)") "")) (substitute* "hgnus.el" (("hmail ") "hmail hvar ")))) + (add-after 'install 'install-doc + (lambda _ + (install-file "man/hyperbole.info" + (string-append #$output "/share/info")) + (install-file "man/hkey-help.txt" + (string-append #$output "/share/doc/" + #$name "-" #$version)))) (add-after 'install 'install-images (lambda _ (let ((dir (string-append #$output "/share/info/im"))) @@ -791,7 +803,7 @@ comparing large files in batches.") (define-public emacs-package-build (package (name "emacs-package-build") - (version "3.2") + (version "4.0.0") (source (origin (method git-fetch) (uri (git-reference @@ -800,7 +812,7 @@ comparing large files in batches.") (file-name (git-file-name name version)) (sha256 (base32 - "02ngllr9lilpjsgdpk4628kdp0nwdlrkxj78bvi4jlhnbk4chh1c")))) + "165gbrc1h1yj764kn3qq2y1551y04lqnklfa0k87gqgd38q5v985")))) (build-system emacs-build-system) (home-page "https://github.com/melpa/package-build") (synopsis "Tools for assembling an Emacs package archive") @@ -889,6 +901,29 @@ of the segments available in that package using icons from information in the mode line.") (license license:expat))) +(define-public emacs-snow + (let ((commit "35ea06f19047ac99eaff9663cb035491c4a13e07") + (revision "0")) + (package + (name "emacs-snow") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alphapapa/snow.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pcqvg70r1k73k3jxgz5qzwqsvwjnwvpfrbjf4b54smglz2nvz19")))) + (build-system emacs-build-system) + (home-page "https://github.com/alphapapa/snow.el/") + (synopsis "Let it snow in Emacs") + (description "This package adds a command @code{snow} that displays +a buffer in which it snows. The storm varies in intensity, a gentle breeze +blows at times, and snow accumulates on the terrain in the scene.") + (license license:gpl3+)))) + (define-public emacs-spongebob (let ((commit "ae8ae6ba0dc57b7357ba87ff0609d27c4a0a5f51") (revision "0")) @@ -915,13 +950,13 @@ buffer.") (define-public emacs-project (package (name "emacs-project") - (version "0.9.2") + (version "0.9.3") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/project-" version ".tar")) (sha256 - (base32 "0g4cnh771jjwjqhja0kwsv0162ff2xidpk8b6s3r5rzjc9inpcq7")))) + (base32 "0p2ivkmcx55xwmyg2vhj8qcqg4qd5y3myshn194ncy38lbvsj91h")))) (build-system emacs-build-system) (propagated-inputs (list emacs-xref)) (home-page "https://elpa.gnu.org/packages/project.html") @@ -1271,6 +1306,38 @@ leveraging built-in functionality.") (license (list license:gpl3+ license:fdl1.3+)))) ; GFDLv1.3+ for the manual +(define-public emacs-fzf + (let ((commit "21912ebc7e1084aa88c9d8b7715e782a3978ed23") + (revision "0")) + (package + (name "emacs-fzf") + (version (git-version "0.2" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bling/fzf.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0gdqjh8996hb06bnnyhi94k69mjfrzyfgq00a9s4wwagv28sqmkj")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #f ;no tests + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-fzf-executable + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "fzf.el" + ("fzf/executable" (search-input-file inputs "/bin/fzf")))))))) + (inputs (list fzf)) + (home-page "https://github.com/bling/fzf.el") + (synopsis "Emacs front-end for Fzf finder") + (description "This package provides an Emacs front-end for Fzf general +purpose finder.") + (license license:gpl3+)))) + (define-public emacs-minions (package (name "emacs-minions") @@ -1533,33 +1600,41 @@ you will die. The game builds the list of words from the active buffer.") (license license:gpl2+)))) (define-public emacs-graphql - (package - (name "emacs-graphql") - (version "0.1.1") - (source (origin - (modules '((guix build utils))) - ;; Remove examples file with references to external packages as - ;; they do not exist at compilation time. - (snippet - '(begin (delete-file "examples.el"))) - (method git-fetch) - (uri (git-reference - (url "https://github.com/vermiculus/graphql.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw")))) - (build-system emacs-build-system) - (home-page - "https://github.com/vermiculus/graphql.el") - (synopsis "GraphQL utilities") - (description - "GraphQL.el provides a generally-applicable domain-specific language for + (let ((commit "b57b5ca5d2d0837e1fb4a4f30c051d5f3e643f0f")) ;version bump + (package + (name "emacs-graphql") + (version "0.1.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vermiculus/graphql.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "18k2c2b7y5qgc7qpkqjmz1nv61w470ja3vwprmy5dlkzficzqsvf")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #true + #:test-command #~(list "ert-runner") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'skip-failing-test + (lambda _ + (substitute* "test/graphql-test.el" + (("\\(ert-deftest correct-tag .*" all) + (string-append all " (skip-unless nil)")))))))) + (native-inputs (list emacs-ert-runner)) + (propagated-inputs (list emacs-ghub)) + (home-page "https://github.com/vermiculus/graphql.el") + (synopsis "GraphQL utilities") + (description + "GraphQL.el provides a generally-applicable domain-specific language for creating and executing GraphQL queries against your favorite web services. GraphQL is a data query language and runtime designed and used to request and deliver data to mobile and web apps.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-graphql-mode ;; No tagged commit. No "Version" keyword either. @@ -3569,7 +3644,7 @@ Its features are: (define-public emacs-citeproc-el (package (name "emacs-citeproc-el") - (version "0.9.1") + (version "0.9.2") (source (origin (method git-fetch) @@ -3578,7 +3653,7 @@ Its features are: (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0rkwqn9pcimfcyq19wlrcij0kcjyhbwisla7vwbhjj8ang0bq9rm")))) + (base32 "0p9gch5iijia5pm9rzlv50xcad2g9mis9mc90nvh31in9xjcccpz")))) (build-system emacs-build-system) (arguments `(#:emacs ,emacs)) ;need libxml support @@ -4266,7 +4341,7 @@ during idle time, while Emacs is doing nothing else.") (list cairo glib libpng poppler zlib)) (propagated-inputs (list emacs-tablist)) - (home-page "https://github.com/politza/pdf-tools") + (home-page "https://github.com/vedang/pdf-tools") (synopsis "Emacs support library for PDF files") (description "PDF Tools is, among other things, a replacement of DocView for PDF @@ -4515,6 +4590,33 @@ create an Extempore REPL, connect the current @code{extempore-mode} buffer to a running Extempore process, and more.") (license license:bsd-2)))) +(define-public emacs-external-completion + (package + (name "emacs-external-completion") + (version "0.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://elpa.gnu.org/packages/external-completion-" version + ".tar")) + (sha256 + (base32 + "12pddwp5jby2icshj77w4kwxv75zi00jdxw18f721d7zx3l7q668")))) + (build-system emacs-build-system) + (home-page "https://elpa.gnu.org/packages/external-completion.html") + (synopsis "Let external tools control Emacs completion style") + (description + "The @code{external} completion style is used with a ``programmable +completion'' table that gathers completions from an external tool such as +a shell utility, an inferior process, an HTTP server. The table and external +tool are fully in control of the matching of the pattern string to the +potential candidates of completion. When @code{external} is in use, the usual +styles configured by the user or other in @code{completion-styles} are +ignored. This compromise is for speed: all other styles need the full data +set to be available in Emacs addressing space, which is often slow if not +completely unfeasible.") + (license license:gpl3+))) + (define-public emacs-kakoune ;; Package has no release. Version is extracted from "Version:" keyword in ;; main file. @@ -5036,7 +5138,7 @@ files and directories.") (define-public emacs-fountain-mode (package (name "emacs-fountain-mode") - (version "3.6.0") + (version "3.6.2") (source (origin (method git-fetch) @@ -5045,7 +5147,13 @@ files and directories.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "14cb4r23pn98sxzh0qwjwpvm7k7q9hhpks8avydccwssm69x1s1w")))) + (base32 "0mml0in6xxhfv4mdb7rl9k8m6xwmrjl5bb301p8d56sfng982pdl")))) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'add-contrib + (lambda _ + (copy-recursively "contrib" ".")))))) (build-system emacs-build-system) (home-page "https://github.com/rnkn/fountain-mode") (synopsis "Major mode for screenwriting in Fountain markup") @@ -7304,14 +7412,14 @@ user.") (define-public emacs-subed (package (name "emacs-subed") - (version "1.0.26") + (version "1.0.28") (source (origin (method url-fetch) (uri (string-append "https://elpa.nongnu.org/nongnu/subed-" version ".tar")) (sha256 (base32 - "1vssgrchjgf36qxm6bm574wvvcjxmcfhlpziwilzixkxw48hh0ym")))) + "0z1bxg5sqvvm9zblbjyfp5llq0v1pkjq9c7ygais8ad68ck1b51f")))) (arguments (list #:tests? #t @@ -7426,14 +7534,14 @@ by a query, so both a link can refer to several mails.") (define-public emacs-debbugs (package (name "emacs-debbugs") - (version "0.34") + (version "0.35") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/debbugs-" version ".tar")) (sha256 - (base32 "06nxia4myhysiw12vsflgllrp9nyhmjnybrrcl1vyf4pw0fc6yrx")))) + (base32 "1w6y02ikjshfk12sdgbryfgj2z4yia2mpifa7g13ab7v9phpqpl1")))) (build-system emacs-build-system) (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$"))) (propagated-inputs @@ -8628,6 +8736,46 @@ autocomplete style popup menu.") windows Emacs produces, while still keeping them within arm’s reach.") (license license:gpl3+)))) +(define-public emacs-pydoc + ;; https://github.com/statmobile/pydoc/issues/31 + (let ((commit "c8b667e17bfe3e63221f822c5c4d58c8fb4fea90") + (revision "0")) + (package + (name "emacs-pydoc") + (version (git-version "0.2" revision commit)) + (source + (origin + (uri (git-reference + (url "https://github.com/statmobile/pydoc") + (commit commit))) + (method git-fetch) + (sha256 + (base32 "082ar5w28dknaa63mf587vdzr78xlnvh8lbxqq3hk6qa2c72akam")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-python-executable + (lambda* (#:key outputs #:allow-other-keys) + (emacs-substitute-variables "pydoc.el" + ("pydoc-python-command" + (search-input-file outputs "bin/python"))))) + (add-after 'unpack 'patch-lsof-executable + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "pydoc.el" + (("\"lsof") + ;; Replace removed double quote in parsing of lsof executable. + (string-append "\"" (search-input-file inputs "bin/lsof"))))))))) + (inputs (list lsof python-wrapper)) + (propagated-inputs (list python-jedi)) + (home-page "https://github.com/statmobile/pydoc") + (synopsis "Navigate Python documentation in Emacs") + (description "This package provides an Emacs mode for navigating +Python documentation with @code{pydoc} in Emacs.") + (license license:gpl3+)))) + (define-public emacs-python-black (package (name "emacs-python-black") @@ -8945,19 +9093,25 @@ just provides syntax highlighting.") (define-public emacs-god-mode (package (name "emacs-god-mode") - (version "2.17.3") + (version "2.18.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/chrisdone/god-mode") + (url "https://github.com/emacsorphanage/god-mode") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "1wsc04l5j5a9y5439qx85pcchxjnjgcgwbffw3l30q9zlblvc58b")))) + "1njln47w25ix9w0xjv02110ngr8d8ma3w7db0x4xcxhihbl65zly")))) (build-system emacs-build-system) - (home-page "https://github.com/chrisdone/god-mode") + (arguments + (list #:tests? #true + #:test-command + #~(list "emacs" "--no-init-file" "--batch" + "--eval=(require 'ecukes)" "--eval=(ecukes)"))) + (native-inputs (list emacs-ecukes)) + (home-page "https://github.com/emacsorphanage/god-mode") (synopsis "Minor mode for entering commands without modifier keys") (description "This package provides a global minor mode for entering Emacs commands @@ -9206,11 +9360,11 @@ email.") (license license:gpl3+))) (define-public emacs-org-msg - ;; No git tags. The commit below corresponds to the release of version 3.3. - (let ((commit "89e746c0a864031eef940758230bc7263a6f2289")) + ;; No git tags. The commit below corresponds to the release of version 4.0. + (let ((commit "60e22e446325a9b3387396459d98be7c1c52579d")) (package (name "emacs-org-msg") - (version "3.3") + (version "4.0") (source (origin (method git-fetch) @@ -9219,7 +9373,7 @@ email.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "15gd5zbxvdallyra9lmpb9i1r2mmwz0j0i0ra7j9imnbfiz3ln9r")))) + (base32 "077g7gvn1k6i2x4m2kd3dkrznc89f5a5pd916wsmpy703pv0aca5")))) (build-system emacs-build-system) (propagated-inputs (list emacs-htmlize)) @@ -9963,7 +10117,7 @@ include installing, removing or visiting the homepage.") (define-public emacs-prescient (package (name "emacs-prescient") - (version "6.0") + (version "6.1") (source (origin (method git-fetch) @@ -9972,10 +10126,10 @@ include installing, removing or visiting the homepage.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0156sbs4b535mcwm44qjr8lx48svmjvdqh8c8hr6d0l709f27yq3")))) + (base32 "1mc9pjb80bxcmzaylfwh0sgpvwbx3h35jalznwz464hw3vqfff83")))) (build-system emacs-build-system) (propagated-inputs - (list emacs-company emacs-ivy emacs-selectrum)) + (list emacs-company emacs-corfu emacs-ivy emacs-selectrum emacs-vertico)) (home-page "https://github.com/raxod502/prescient.el/") (synopsis "Emacs library for sorting and filtering candidates") (description @@ -10117,7 +10271,7 @@ replaced with the directory you choose.") (define-public emacs-consult-notmuch (package (name "emacs-consult-notmuch") - (version "0.8") + (version "0.8.1") (source (origin (method git-fetch) @@ -10126,7 +10280,7 @@ replaced with the directory you choose.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "18r47cj89qli534irah3lwwzsnik5bcf61clnrkhafqv9y51m67z")))) + (base32 "0gcd69i99prnskh1na7clydqgh1y9rbzkdc6dy9zmin9hfdrw1yd")))) (build-system emacs-build-system) (propagated-inputs (list emacs-consult emacs-notmuch)) @@ -10184,6 +10338,36 @@ provides a front-end interface for the workspace/symbols LSP procedure call.") (license license:gpl3+))) +(define-public emacs-eglot-tempel + (let ((commit "e08b203d6a7c495d4b91ed4537506b5f1ea8a84f") + (revision "0")) + (package + (name "emacs-eglot-tempel") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fejfighter/eglot-tempel") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f4m0bb1f91x9jqfc0ny95a3pfh1mzzjzdjpa6f548hynq8j34ib")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #true + #:test-command #~(list "emacs" "-Q" "-batch" + "-l" "eglot-tempel-tests.el" + "-f" "ert-run-tests-batch-and-exit"))) + (native-inputs (list emacs-ert-runner)) + (propagated-inputs (list emacs-eglot emacs-tempel)) + (home-page "https://github.com/fejfighter/eglot-tempel") + (synopsis "Bridge for Tempel templates with Eglot") + (description "This package is an adapter to use the Tempel templating +library with Eglot instead of Yasnippet.") + (license license:gpl3+)))) + (define-public emacs-consult-yasnippet (let ((commit "ae0450889484f23dc4ec37518852a2c61b89f184") (revision "0")) @@ -10212,7 +10396,7 @@ expansion and overwriting the marked region with a new snippet completion.") (define-public emacs-marginalia (package (name "emacs-marginalia") - (version "0.15") + (version "1.0") (source (origin (method git-fetch) @@ -10221,7 +10405,7 @@ expansion and overwriting the marked region with a new snippet completion.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0ncdyczalvl677nim0iha003xway7rwxw8y35vcvkgsdk4vzv848")))) + (base32 "1rf4xgb82j1g6ybrzz7ak9hlk86d4r0hcprbqz05hvjnb8nyfa4c")))) (build-system emacs-build-system) (home-page "https://github.com/minad/marginalia") (synopsis "Marginalia in the minibuffer completions") @@ -10520,6 +10704,30 @@ another (presumably currently running) Emacs Lisp file.") after buffer changes.") (license license:gpl3+))) +(define-public emacs-loccur + (let ((commit "01b7afa62589432a98171074abb8c5a1e089034a") + (revision "1")) + (package + (name "emacs-loccur") + (version (git-version "1.2.5" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fourier/loccur/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1b1x1xsiwqzsiss1jc6w990v1vfvbn5d5w67yzmx59s9ldjmdqq2")))) + (build-system emacs-build-system) + (home-page "https://github.com/fourier/loccur") + (synopsis "Perform an occur-like folding in current buffer") + (description + "Loccur is a tool to quickly navigate a file. It is a minor mode for +Emacs acting like occur but w/o creating a new window. It just hides all the +text excepting lines containing matches.") + (license license:gpl3+)))) + (define-public emacs-realgud (package (name "emacs-realgud") @@ -11260,7 +11468,7 @@ allowing unprefixed keys to insert their respective characters as expected.") (define-public emacs-clojure-mode (package (name "emacs-clojure-mode") - (version "5.15.1") + (version "5.16.0") (source (origin (method git-fetch) @@ -11269,7 +11477,7 @@ allowing unprefixed keys to insert their respective characters as expected.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "12m3yjhy4q0x3ri4xxb9raqg9lmw4hk4jgn436d9zvsk4fr3h1nd")))) + (base32 "0s09b9gbmjmk56jm9hcbk06zfa96kqhgx58d98w13yy01yx0pych")))) (build-system emacs-build-system) (native-inputs (list emacs-buttercup emacs-dash emacs-paredit emacs-s)) @@ -13173,10 +13381,61 @@ you a @code{helm} selection of directory Makefile's targets. Selecting a target will call @code{compile} on it.") (license license:gpl3+)))) +(define-public emacs-islisp-mode + (package + (name "emacs-islisp-mode") + (version "0.3.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/sasanidas/islisp-mode") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1s6alrv1hfi1plj5lh826j0h71xvm2v092kglj3yvy34g73dgrna")))) + (build-system emacs-build-system) + (arguments + (list + #:include #~(cons "\\.lsp$" %default-include) + #:tests? #true + #:test-command #~(list "ert-runner") + #:phases + #~(modify-phases %standard-phases + ;; Move the extensions source files to the top level, which is + ;; included in the EMACSLOADPATH. + (add-after 'unpack 'move-source-files + (lambda _ + (for-each (lambda (dir) + (let ((files (find-files dir "\\.(lsp|el)$"))) + (for-each (lambda (f) + (rename-file f (basename f))) + files))) + '("advance" "implementations/easy-islisp")))) + (add-after 'move-source-files 'patch-eisl-variables + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "easy-islisp.el" + ("easy-islisp-executable" + (search-input-file inputs "/bin/eisl")) + ("easy-islisp-library-directory" + `(or (getenv "EASY_ISLISP") + ,(search-input-directory inputs "share/eisl/library"))))))))) + (native-inputs (list emacs-ert-runner)) + (inputs (list eisl)) + (home-page "https://gitlab.com/sasanidas/islisp-mode") + (synopsis "ISLisp support for Emacs") + (description + "This package provides support for programming with ISLisp in Emacs. It +features a major mode with syntax highlighting, symbol autocompletion and +documentation search, among other features. It also includes an inferior mode +with REPL integration. Currently it only supports the Easy ISLisp (eisl) +implementation.") + (license license:gpl3+))) + (define-public emacs-cider (package (name "emacs-cider") - (version "1.5.0") + (version "1.6.0") (source (origin (method git-fetch) @@ -13185,7 +13444,7 @@ target will call @code{compile} on it.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1ih902n8p3pl1apprprkyrlnrp2dxli86y5k09zahy9mglfz2z5n")))) + (base32 "1a3xbfn1id8dcy3178kmdnzcvh7lq2pdwwg4axhncw6jq9hqiqja")))) (build-system emacs-build-system) (arguments '(#:exclude ;don't exclude 'cider-test.el' @@ -14276,7 +14535,7 @@ programming and reproducible research.") (define-public emacs-org-contrib (package (name "emacs-org-contrib") - (version "0.4") + (version "0.4.1") (source (origin (method git-fetch) @@ -14285,7 +14544,7 @@ programming and reproducible research.") (commit (string-append "release_" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "06b1rpywj596nnnap6pj6fnmcq8fcc4i30zv7qsvs3ryxciw01fb")))) + (base32 "0f3zjy3ybkqmvvlx04251add0vcz248qibxy5akal96l8bdhjajx")))) (build-system emacs-build-system) (arguments `(#:phases @@ -14789,7 +15048,7 @@ you to deal with multiple log levels.") (define-public emacs-denote (package (name "emacs-denote") - (version "1.1.0") + (version "1.2.0") (source (origin (method git-fetch) @@ -14798,7 +15057,7 @@ you to deal with multiple log levels.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "05ckjx1a2cydp46pd8y36safhj95pqi6lm4vs0vr6q3a858bxf8b")))) + (base32 "0cglzccbqpcppb9s3phhszskkxp2wd0582jv85qhawxabfzyzkj3")))) (build-system emacs-build-system) (native-inputs (list texinfo)) (home-page "https://protesilaos.com/emacs/denote/") @@ -16331,14 +16590,14 @@ the center of the screen and not at the bottom.") (define-public emacs-posframe (package (name "emacs-posframe") - (version "1.2.0") + (version "1.3.2") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "posframe-" version ".tar")) (sha256 - (base32 "06xk6z3b5mqgcskjiwkl9viccvzriflr8y51aclyfdamh5qb6kqb")))) + (base32 "05qkwb3ys05chn0maz7q19kp539m7p5acb8di4rni4vjjlkpx2bj")))) (build-system emacs-build-system) ;; emacs-minimal does not include the function font-info. (arguments @@ -16890,27 +17149,23 @@ Emacs.") (define-public emacs-eglot (package (name "emacs-eglot") - (version "1.9") + (version "1.10") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/joaotavora/eglot") - (commit version))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/eglot-" version + ".tar")) (sha256 (base32 - "030837yak24ymjawsfr1hgyfdjy3k30ld1ca0cgnrxhgxc7p8hwv")))) + "0iw1jnfsjd2yq73ic3cld8m51wyxdwn3kjv9ala28krvsvb4h3y4")))) (build-system emacs-build-system) - (arguments - (list - #:tests? #t - #:test-command #~(list "emacs" "--batch" - "-l" "eglot.el" - "-l" "eglot-tests.el" - "-f" "ert-run-tests-batch-and-exit"))) (propagated-inputs - (list emacs-eldoc emacs-jsonrpc emacs-project)) + (list emacs-external-completion + emacs-eldoc + emacs-jsonrpc + emacs-project + emacs-seq + emacs-xref)) (home-page "https://github.com/joaotavora/eglot") (synopsis "Client for Language Server Protocol (LSP) servers") (description @@ -17037,37 +17292,38 @@ running tests easier.") (license license:gpl3+))) (define-public emacs-org-transclusion - (package - (name "emacs-org-transclusion") - (version "1.3.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/nobiot/org-transclusion") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0pjk6686ss50s9ws014if9mnixsf9m53z1d7bvkbx09lq3jqa7ry")))) - (build-system emacs-build-system) - (arguments - (list - #:tests? #true - #:test-command #~(list "emacs" "--batch" - "-l" "org-transclusion.el" - "-l" "test/unit-tests.el" - "-f" "ert-run-tests-batch-and-exit"))) - (native-inputs - (list emacs-ert-runner)) - (home-page "https://nobiot.github.io/org-transclusion/") - (synopsis "Enable transclusion with Org Mode") - (description "Org-transclusion lets you insert a copy of text content via + (let ((commit "cf51df7b87e0d32ba13ac5380557e81d9845d81b")) ;version bump + (package + (name "emacs-org-transclusion") + (version "1.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nobiot/org-transclusion") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ix5l8cjcafw8lqhkmwa3cpdw6cbpx65k0iww426nxya849y61yx")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #true + #:test-command #~(list "emacs" "--batch" + "-l" "org-transclusion.el" + "-l" "test/unit-tests.el" + "-f" "ert-run-tests-batch-and-exit"))) + (native-inputs + (list emacs-ert-runner)) + (home-page "https://nobiot.github.io/org-transclusion/") + (synopsis "Enable transclusion with Org Mode") + (description "Org-transclusion lets you insert a copy of text content via a file link or ID link within an Org file. It lets you have the same content present in different buffers at the same time without copy-and-pasting it. Edit the source of the content, and you can refresh the transcluded copies to the up-to-date state. Org-transclusion keeps your files clear of the transcluded copies, leaving only the links to the original content.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-disable-mouse (package @@ -17188,21 +17444,20 @@ highlighting.") ;; Commit refers to a commit in the Emacs repository, as jsonrpc.el was ;; upstreamed. By convention, it should refer to a commit in which ;; jsonrpc.el was actually touched. - (let ((commit "50654cf0b1bf6210fc8f46d8e7ae13bbeeccecb5") - (revision "0")) ; Currently a version bump + (let ((commit "8bf4cdcf79bc3254a9169f28f68922ab83bd4e78")) ;version bump (package (name "emacs-jsonrpc") - (version (git-version "1.0.15" revision commit)) + (version "1.0.16") (source (origin (method git-fetch) (uri (git-reference - (url "https://git.savannah.gnu.org/git/emacs.git") + (url "https://git.savannah.gnu.org/git/emacs") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 - "0srwb171dxha1nfzppk6x9v4bdj3lk74pksqnhalw8jw9c67b72y")))) + "1mka35kparv7z52kknh9nam4wyczcp73glp48q24v05gm42a8xxr")))) (build-system emacs-build-system) (arguments (list #:phases @@ -17691,7 +17946,7 @@ which avoids some of the issues with using Emacs’s built-in Url library.") (define-public emacs-ement (package (name "emacs-ement") - (version "0.5.1") + (version "0.5.2") (source (origin (method git-fetch) @@ -17700,7 +17955,7 @@ which avoids some of the issues with using Emacs’s built-in Url library.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "17spz9z7anzgqgcddsv5rqr6qa6yada3yrvz81z0knbpls5qqp6a")))) + (base32 "1gc5b0mzh4a4xxbzfgjx5m830rymnf93qn2k5jvj7kmwnh15w89h")))) (build-system emacs-build-system) (arguments `(#:emacs ,emacs)) ;need libxml support @@ -17921,7 +18176,7 @@ the nick color and the background color (define-public emacs-engine-mode (package (name "emacs-engine-mode") - (version "2.1.1") + (version "2.2.1") (source (origin (method git-fetch) @@ -17930,7 +18185,7 @@ the nick color and the background color (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i")))) + (base32 "11ls3wrvfmcz61pps438x772nk06rqff91s3xi5rzc3n2hkl1ayb")))) (build-system emacs-build-system) (synopsis "Minor mode for defining and querying search engines") (description "@code{engine-mode} is a global minor mode for Emacs. It @@ -19653,7 +19908,7 @@ match and total match information in the mode-line in various search modes.") (define-public emacs-pg (package (name "emacs-pg") - (version "0.19") + (version "0.20") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/emarsden/pg-el") @@ -19661,7 +19916,7 @@ match and total match information in the mode-line in various search modes.") (file-name (git-file-name name version)) (sha256 (base32 - "13fkkpimhxh91hmsp551wzrdcic5ws7wj7vjwnh8l83hsrxmxz0y")))) + "0a38rvl5rwfb77p4xxmjhrs6s67pfkzjfm0pdxvf0b6xh7h404kh")))) (build-system emacs-build-system) (home-page "https://github.com/emarsden/pg-el") (synopsis "Emacs Lisp interface for PostgreSQL") @@ -20211,7 +20466,7 @@ timestamps by providing a @code{ts} struct.") (define-public emacs-circadian (package (name "emacs-circadian") - (version "0.3.2") + (version "0.3.3") (source (origin (method git-fetch) @@ -20220,14 +20475,17 @@ timestamps by providing a @code{ts} struct.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0wpsykmai3idz0bgfl07hwl9nr4x9sgprvqgw8jln4dz2wf5gdic")))) + (base32 "1hydxhmcchaprfmp08xr6nlksz6y97jbf4mswj69bgdfjfbf22km")))) (arguments (list #:tests? #t - #:test-command #~(list "ert-runner"))) + #:test-command + #~(list "emacs" "--batch" + "-l" "test.el" + "--eval" "(ert-run-tests-batch-and-exit test-order)"))) (build-system emacs-build-system) (native-inputs - (list emacs-el-mock emacs-ert-runner)) + (list emacs-el-mock)) (home-page "https://github.com/guidoschmidt/circadian.el") (synopsis "Theme-switching for Emacs based on daytime") (description "Circadian may reduce eye strain by automatically switching @@ -20257,7 +20515,7 @@ according to a parsing expression grammar.") (define-public emacs-eldev (package (name "emacs-eldev") - (version "1.3") + (version "1.3.1") (source (origin (method git-fetch) @@ -20266,7 +20524,7 @@ according to a parsing expression grammar.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "112jv9rz6brglffwsablnhafhhnfnq89k9vh8xzbbi6i4xz2l1ak")))) + (base32 "14rrh5ycwd3r5k3df8aif4jii645m5jgplxky3hrjgr8vxd951h8")))) (build-system emacs-build-system) (arguments (list @@ -22974,38 +23232,40 @@ Emacs minor mode to escape sequences in code.") (license license:gpl3+)))) (define-public emacs-dashboard - (package - (name "emacs-dashboard") - (version "1.7.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rakanalh/emacs-dashboard") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1qv4cqjy2s2d2bysbq10vq1axpbd8qc3jn1s1r81lxqkcja8zasa")))) - (build-system emacs-build-system) - (propagated-inputs - (list emacs-page-break-lines)) - (arguments - '(#:include '("\\.el$" "\\.txt$" "\\.png$") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-dashboard-widgets - ;; This phase fixes compilation error. - (lambda _ - (chmod "dashboard-widgets.el" #o666) - (emacs-substitute-variables "dashboard-widgets.el" - ("dashboard-init-info" - '(format "Loaded in %s" (emacs-init-time)))) - #t))))) - (home-page "https://github.com/rakanalh/emacs-dashboard") - (synopsis "Startup screen extracted from Spacemacs") - (description "This package provides an extensible Emacs dashboard, with -sections for bookmarks, projectil projects, org-agenda and more.") - (license license:gpl3+))) + (let ((version "1.7.0") + (commit "a69cc103aebd957f967e431399681b6d9d6b52fc") + (revision "0")) + (package + (name "emacs-dashboard") + (version (git-version version revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rakanalh/emacs-dashboard") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1c6snnpc9rp6zhhdz411wyh2wn56yq2cdmxxqsp1ibvac8cbb1pq")))) + (build-system emacs-build-system) + (arguments + (list + #:include #~(cons* "\\.txt$" "\\.png$" %default-include) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-dashboard-widgets + ;; This phase fixes compilation error. + (lambda _ + (emacs-substitute-variables "dashboard-widgets.el" + ("dashboard-init-info" + '(format "Loaded in %s" (emacs-init-time))))))))) + (propagated-inputs + (list emacs-page-break-lines)) + (home-page "https://github.com/rakanalh/emacs-dashboard") + (synopsis "Startup screen extracted from Spacemacs") + (description "This package provides an extensible Emacs dashboard, with +sections for bookmarks, Projectile projects, Org Agenda and more.") + (license license:gpl3+)))) (define-public emacs-slime-company (package @@ -26931,7 +27191,7 @@ Debug server.") (define-public emacs-bfuture (package (name "emacs-bfuture") - (version "1.0.1") + (version "1.0.2") (source (origin (method git-fetch) @@ -26940,7 +27200,7 @@ Debug server.") (commit (string-append "v" version)))) (sha256 (base32 - "1m4v4xbsvg26z7nvg2c8q7x1nvv7v4ajm56l0nbkwcbdbrgahpva")) + "1qflkyr7fafw84mksxs25mka133y8ak8nsga3al29014pshbvzxn")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (arguments @@ -30572,7 +30832,7 @@ icon support, git integration, and several other utilities.") (define-public emacs-mood-line (package (name "emacs-mood-line") - (version "1.2.5") + (version "2.0.0") (source (origin (method git-fetch) @@ -30581,7 +30841,7 @@ icon support, git integration, and several other utilities.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0z6s80j259xf8nxjxcsmp7wyvpcg5wyx58brlrbwg1aa9hl3fxga")))) + (base32 "0g29di2g8w8639z8d73kq9x2p8krzmjfn1bqd5jsv28v77j80k8h")))) (build-system emacs-build-system) (home-page "https://gitlab.com/jessieh/mood-line") (synopsis "Minimal mode-line for Emacs") @@ -33275,7 +33535,7 @@ and preferred services can easily be configured.") (define-public emacs-vertico (package (name "emacs-vertico") - (version "0.29") + (version "1.0") (source (origin (method git-fetch) @@ -33284,7 +33544,7 @@ and preferred services can easily be configured.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0gqfq7yni470yys9blarmsinjgf1025azlr09g1842w20hwrs7hc")))) + (base32 "0g2zy70gks24g7i4qj1ijx57g016svbymb8l493j81c4bhc88mjl")))) (build-system emacs-build-system) (arguments `(#:phases @@ -34493,7 +34753,7 @@ across sessions.") (define-public emacs-vertico-posframe (package (name "emacs-vertico-posframe") - (version "0.5.5") + (version "0.6.0") (source (origin (method url-fetch) (uri (string-append @@ -34501,7 +34761,7 @@ across sessions.") ".tar")) (sha256 (base32 - "1rfji5x7rb787xzm9g268z7khvrby0plvas97q8wfshl96md8svx")))) + "1cwi26jz9dn8la6zxxai2pfkcpz8lwf4cd8hr44lak6x0ca9bwr3")))) (build-system emacs-build-system) (propagated-inputs (list emacs-posframe emacs-vertico)) (home-page "https://github.com/tumashu/vertico-posframe") diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 5054ae3da5..11d1cda46f 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -323,7 +323,7 @@ console.") bluez curl eudev - ffmpeg + ffmpeg-4 font-wqy-microhei freetype glew @@ -1471,7 +1471,7 @@ as RetroArch.") "--disable-builtinminiupnpc"))))))) (inputs `(("alsa-lib" ,alsa-lib) - ("ffmpeg" ,ffmpeg) + ("ffmpeg" ,ffmpeg-4) ("freetype" ,freetype) ("libxinerama" ,libxinerama) ("libxkbcommon" ,libxkbcommon) @@ -2035,7 +2035,7 @@ assembler, and debugger for the Intel 8085 microprocessor. (list libcdio sdl2 gtk+ - ffmpeg + ffmpeg-4 libxv libarchive pulseaudio)) @@ -2322,7 +2322,7 @@ elseif(FALSE)")) (native-inputs (list pkg-config python)) (inputs (list bash cityhash - ffmpeg + ffmpeg-4 glew glslang libpng diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index ee224ad173..b995366978 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -2437,7 +2437,7 @@ comments."))) (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "02976k91ypv41rqdl27jbmyhnhgx7k5bj520lcqs8qzgcdsynd03")))) + (base32 "0wsfz2jqfhmqshyr1n4qxcc3c6a96gyll4h34vn2zzvvcnncn9rb")))) (build-system qt-build-system) (native-inputs (list doxygen @@ -3886,7 +3886,7 @@ form, numpad. (define-public rizin (package (name "rizin") - (version "0.4.0") + (version "0.4.1") (source (origin (method url-fetch) (uri (string-append @@ -3894,7 +3894,7 @@ form, numpad. version "/rizin-src-v" version ".tar.xz")) (sha256 (base32 - "0nkb6v9lks25w5sv5s6p2ghgqnnnsf39md8nlx1cy4z89xlaisq9")))) + "1f5zzlnr2na4hkvcwn4n9cjlk6595945vwrw89pa683qk5mrb7b6")))) (build-system meson-build-system) (arguments (list diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index ede46f3a1c..cfada5a619 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2020-2022 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2021 Oskar Köök <oskar@maatriks.ee> ;;; Copyright © 2021 Cees de Groot <cg@evrl.com> +;;; Copyright © 2022 jgart <jgart@dismail.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -280,6 +281,28 @@ Mozilla's canonical set.") printing extending the io:format syntax to add colours.") (license license:expat))) +(define-public erlang-yamerl + (package + (name "erlang-yamerl") + (version "0.10.0") + (source + (origin + (method git-fetch) + (uri (git-reference + ;; There are no tests included on Hex. + (url "https://github.com/yakaz/yamerl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0if8abgmispcfk7zhd0a5dndzwzbsmqrbyrm5shk375r2dbbwak6")))) + (build-system rebar-build-system) + (synopsis "YAML and JSON parser in pure Erlang") + (description + "Erlang application to parse YAML 1.1 and YAML 1.2 documents, as well as +JSON documents.") + (home-page "https://hexdocs.pm/yamerl/") + (license license:bsd-2))) + (define-public erlang-covertool (package (name "erlang-covertool") @@ -499,6 +522,23 @@ Erlang's type language, and can also be used for the model-based random testing of stateful systems.") (license license:gpl3+))) +(define-public erlang-jsx + (package + (name "erlang-jsx") + (version "3.1.0") + (source (origin + (method url-fetch) + (uri (hexpm-uri "jsx" version)) + (sha256 + (base32 + "1wr7jkxm6nlgvd52xhniav64xr9rml2ngb35rwjwqlqvq7ywhp0c")))) + (build-system rebar-build-system) + (synopsis "Streaming, evented JSON parsing toolkit") + (description + "An Erlang application for consuming, producing and manipulating json.") + (home-page "https://github.com/talentdeficit/jsx") + (license license:expat))) + (define-public erlang-providers (package (name "erlang-providers") diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 4b1c1cebe8..57a25a0d90 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -599,7 +599,7 @@ from the bcachefs-tools package. It is meant to be used in initrds.") (define-public exfatprogs (package (name "exfatprogs") - (version "1.1.3") + (version "1.2.0") (source (origin (method git-fetch) @@ -608,7 +608,7 @@ from the bcachefs-tools package. It is meant to be used in initrds.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "14lgwvbg6jibsdpzpcj484p9q4ixawyjxi9hw23w89c6870gglw9")))) + (base32 "02a6178brikg12wl80h9qgxyhpm6mly0jnml0rs9phb7lkbv9kzh")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -752,6 +752,41 @@ transaction log. from the jfsutils package. It is meant to be used in initrds.") (license (package-license jfsutils)))) +(define-public nilfs-utils + (package + (name "nilfs-utils") + (version "2.2.9") + (source + (origin + (method url-fetch) + (uri (string-append "https://nilfs.sourceforge.io/download" + "/nilfs-utils-" version ".tar.bz2")) + (sha256 + (base32 "15vsayvzr8nc29n939sz9ddq46vpn53rp8h8qv484h88qac3kxjx")))) + (build-system gnu-build-system) + (arguments + (list + #:configure-flags + #~(list "--enable-static=no") + #:phases + #~(modify-phases %standard-phases + (add-before 'bootstrap 'force-bootstrap + (lambda _ + (delete-file "configure") + (substitute* "configure.ac" + (("\\[/etc\\]") "[${prefix}/etc]") + (("\\[/sbin\\]") "[${prefix}/sbin]"))))))) + (inputs + (list (list util-linux "lib"))) + (native-inputs (list autoconf automake libtool)) + (home-page "https://nilfs.sourceforge.io/") + (synopsis "Continuous Snapshotting Filesystem") + (description + "NILFS is a log-structured file system supporting versioning of the entire +file system and continuous snapshotting, which allows users to even restore +files mistakenly overwritten or destroyed just a few seconds ago.") + (license license:gpl3+))) + (define-public disorderfs (package (name "disorderfs") diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index cc2d417003..f5906ec738 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -271,14 +271,14 @@ Accounting.") (define-public homebank (package (name "homebank") - (version "5.5.8") + (version "5.6") (source (origin (method url-fetch) (uri (string-append "http://homebank.free.fr/public/homebank-" version ".tar.gz")) (sha256 (base32 - "11fgmdqsnxdqma1ffljbcl7w1ahx0s5p41hjy600f8zarsrmnyjh")))) + "1ig00d3wby6lisz3vbyb5qm7h4a6npfwqyphdl8fjgibzpapq5a1")))) (build-system glib-or-gtk-build-system) (native-inputs (list pkg-config intltool)) @@ -1645,7 +1645,7 @@ a client based on Qt. This is a fork of Bitcoin Core.") (define-public libofx (package (name "libofx") - (version "0.10.7") + (version "0.10.9") (source (origin (method git-fetch) (uri (git-reference @@ -1654,13 +1654,14 @@ a client based on Qt. This is a fork of Bitcoin Core.") (file-name (git-file-name name version)) (sha256 (base32 - "1k3ygavyb9b3f1ra62dsa46iiia0a1588yn3zy7bh7w4vfcrbd6d")))) + "120hyhs4fkxrgpvd2p0hpf5v8dq0jjql2fzllk77m33m1c82pr18")))) (build-system gnu-build-system) (arguments (list #:parallel-build? #f ;fails with -j64 #:configure-flags - #~(list (string-append "--with-opensp-includes=" + #~(list "--disable-static" + (string-append "--with-opensp-includes=" (search-input-directory %build-inputs "include/OpenSP"))))) (native-inputs @@ -1905,8 +1906,8 @@ generate a variety of reports from them, and provides a web interface.") (define-public emacs-beancount ;; Note that upstream has not made any release since this project moved ;; into its own repository (it was originally part of beancount itself) - (let ((commit "dbafe6a73d90c1f64d457b356b9dbb43499f70d5") - (revision "0")) + (let ((commit "687775da63784d153a3c1cfee9801090c6b51842") + (revision "1")) (package (name "emacs-beancount") (version (git-version "0.0.0" revision commit)) @@ -1918,7 +1919,7 @@ generate a variety of reports from them, and provides a web interface.") (commit commit))) (sha256 (base32 - "0v9bws2gv5b00x829p7hrcxqgdp7iwxvv1vhfjka81qrw6w1fvjw")) + "08383yqqanx29al1hg1r6ndx3gwjg6fj7kl340f1zz9m9cfiyvg3")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (home-page "https://github.com/beancount/beancount-mode") diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index e9bb3ed450..4d4fc8fe23 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -34,6 +34,7 @@ #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system meson) + #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages admin) #:use-module (gnu packages autotools) @@ -72,7 +73,8 @@ #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (gnu packages web) - #:use-module (gnu packages xml)) + #:use-module (gnu packages xml) + #:use-module (ice-9 match)) (define-public ath9k-htc-firmware (package @@ -342,6 +344,82 @@ broadband modem as found, for example, on PinePhone.") (home-page "https://gitlab.com/mobian1/devices/eg25-manager") (license license:gpl3+))) +(define* (make-openbios-package name arch) + (let ((target (cond + ((string-suffix? "ppc" arch) + "powerpc-linux-gnu") + ((string-suffix? "amd64" arch) + "x86_64-linux-gnu") + ((string-suffix? "x86" arch) + "i686-linux-gnu") + (else (string-append arch "-linux-gnu"))))) + (package + (name name) + (version "1.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/openbios/openbios") + (commit (string-append "v" version)))) + (file-name (git-file-name "openbios" version)) + (patches (search-patches "openbios-gcc-warnings.patch")) + (sha256 + (base32 + "11cr0097aiw4hc07v5hfl95753ikyra5ig4nv899ci7l42ilrrbr")))) + (build-system gnu-build-system) + (arguments + (list #:tests? #f ;no tests + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'build-reproducibly + (lambda _ + (substitute* "Makefile.target" + (("TZ=UTC date \\+") + "TZ=UTC date --date=@1 +")))) + (replace 'configure + (lambda _ + (invoke "./config/scripts/switch-arch" #$arch))) + (replace 'install + (lambda _ + (let ((build-target + (if (string-contains #$arch "-") + (car (reverse (string-split #$arch #\-))) + #$arch))) + (for-each (lambda (elf) + (install-file elf + (string-append #$output + "/share/firmware"))) + (find-files (string-append "obj-" build-target) + "\\.elf$")))))))) + (native-inputs + (append (if (string-prefix? (%current-system) target) + '() + (list (cross-gcc target) (cross-binutils target))) + (list libxslt which))) + (home-page "https://openfirmware.info/Welcome_to_OpenBIOS") + (synopsis "Open Firmware implementation") + (description + "OpenBIOS is an implementation of the IEEE 1275-1994 \"Open Firmware\" +specification. It can be used as a system firmware, as a boot loader, or +provide OpenFirmware functionality on top of an already running system.") + ;; Some files are GPLv2 only. + (license license:gpl2)))) + +(define-public openbios-qemu-ppc + (let ((base (make-openbios-package "openbios-qemu-ppc" "qemu-ppc"))) + (package + (inherit base) + (arguments + (substitute-keyword-arguments (package-arguments base) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'install 'rename-executable + (lambda _ + (with-directory-excursion #$output + (rename-file "share/firmware" "share/qemu") + (rename-file "share/qemu/openbios-qemu.elf" + "share/qemu/openbios-ppc"))))))))))) + (define* (make-opensbi-package platform name #:optional (arch "riscv64")) (package (name name) @@ -352,7 +430,7 @@ broadband modem as found, for example, on PinePhone.") (uri (git-reference (url "https://github.com/riscv-software-src/opensbi") (commit (string-append "v" version)))) - (file-name (git-file-name name version)) + (file-name (git-file-name "opensbi" version)) (sha256 (base32 "0xlnhl965286kvizyjm571qbhj3l5n71a02dmbmgxzcqapzgi9wk")))) (build-system gnu-build-system) @@ -399,10 +477,33 @@ executing in M-mode.") (define-public opensbi-generic (make-opensbi-package "generic" "opensbi-generic")) +(define-public opensbi-qemu + (package + (inherit opensbi-generic) + (name "opensbi-qemu") + (native-inputs '()) + (inputs (list opensbi-generic)) + (build-system trivial-build-system) + (arguments + (list #:modules '((guix build utils)) + #:builder + #~(begin + (use-modules ((guix build utils))) + (let ((opensbi-riscv64 (search-input-file %build-inputs + "fw_dynamic.bin")) + (out (string-append #$output "/share/qemu"))) + (mkdir-p out) + (symlink opensbi-riscv64 + (string-append + out "/opensbi-riscv64-generic-fw_dynamic.bin")))))) + (synopsis "OpenSBI firmware files for QEMU") + (description + "This package contains OpenSBI firmware files for use with QEMU."))) + (define-public seabios (package (name "seabios") - (version "1.15.0") + (version "1.16.1") (source (origin (method git-fetch) @@ -411,76 +512,52 @@ executing in M-mode.") (commit (string-append "rel-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0gnsfmbgcvihsap8sz8c2n3qs439q44i3pwrms2nv3xcnf1sclj9")))) + (base32 "0gph1hf70jjpx55qc0lzx2yghkipg9dnsin07i4jajk0p1jpd2d0")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Delete IASL-generated files. + (for-each delete-file (find-files "." "\\.hex$")))))) (build-system gnu-build-system) - (native-inputs (list python-wrapper)) + (native-inputs + (list acpica python-wrapper)) (arguments - `(#:tests? #f ; no check target - #:make-flags '("EXTRAVERSION=-guix") ;upstream wants distros to set this - #:modules (,@%gnu-build-system-modules - (ice-9 match)) - #:phases - (modify-phases %standard-phases - (replace 'configure - (lambda _ - ;; Create the ".version" file that is present in release tarballs. - ;; Otherwise this will be regarded as an "unclean" build, and the - ;; build system ends up encoding the build date in the binaries. - (call-with-output-file ".version" - (lambda (port) - (format port ,(package-version this-package)))) - (setenv "CC" "gcc"))) - (add-after 'build 'build-vgabios - (lambda* (#:key (make-flags ''()) #:allow-other-keys) - (for-each - (match-lambda - ((target . config) - (let* ((dot-config (string-append (getcwd) "/" target "/.config")) - (flags (append make-flags - (list (string-append "KCONFIG_CONFIG=" - dot-config) - (string-append "OUT=" target "/"))))) - (mkdir target) - (call-with-output-file dot-config - (lambda (port) - (for-each (lambda (entry) - (if (string-suffix? "=n" entry) - (format port "# CONFIG_~a is not set~%" - (string-drop-right entry 2)) - (format port "CONFIG_~a~%" entry))) - (cons "BUILD_VGABIOS=y" config)))) - (apply invoke "make" (append flags '("oldnoconfig"))) - (apply invoke "make" flags) - (link (string-append target "/bios.bin") - (string-append "out/" target ".bin"))))) - ;; These tuples are modelled after Debians packaging: - ;; https://salsa.debian.org/qemu-team/seabios/-/blob/master/debian/rules - '(("ati" . ("VGA_ATI=y" "VGA_PCI=y")) - ("bochs-display" . ("DISPLAY_BOCHS=y" "VGA_PCI=y")) - ("cirrus" . ("VGA_CIRRUS=y" "VGA_PCI=y")) - ("stdvga" . ("VGA_BOCHS=y" "VGA_PCI=y")) - ("virtio" . ("VGA_BOCHS_VIRTIO=y" "VGA_PCI=y")) - ("vmware" . ("VGA_BOCHS_VMWARE=y" "VGA_PCI=y")) - ("qxl" . ("VGA_BOCHS_QXL=y" "VGA_PCI=y")) - ("isavga" . ("VGA_BOCHS=y" "VGA_PCI=n")) - ("ramfb" . ("VGA_RAMFB=y" "VGA_PCI=n")))))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (fmw (string-append out "/share/firmware"))) - (mkdir-p fmw) - (copy-file "out/bios.bin" (string-append fmw "/bios.bin")) - (for-each (lambda (bios) - (install-file bios fmw)) - (find-files "out" "\\.bin$")) - (with-directory-excursion fmw - ;; QEMU 1.7 and later looks only for the latter. - (symlink "bios.bin" "bios-256k.bin")))))))) + (list + #:tests? #f ;no tests + #:make-flags + ;; If EXTRAVERSION is not set the build system will embed the current + ;; date in binaries. Use this opportunity to personalize as recommended + ;; by Build_overview.md. + #~'("EXTRAVERSION=/GNU Guix" + "V=1") ;build verbosely + #:phases + #~(modify-phases %standard-phases + (replace 'configure + (lambda _ + ;; Ensure this file is present in case we're building from a git + ;; checkout instead of release tarball. + (call-with-output-file ".version" + (lambda (port) + (format port #$(package-version this-package)))) + ;; If we use (cc-for-target) then we have the system prefix + ;; twice or we might have the wrong prefix. + (setenv "CC" "gcc"))) + (add-before 'build 'build-description-tables + (lambda _ + ;; Regenerate the ACPI description tables. + (invoke "make" "iasl") + ;; Clear temporary files added by the iasl target. + (invoke "make" "clean"))) + (replace 'install + (lambda _ + (install-file "out/bios.bin" + (string-append #$output "/share/firmware"))))))) (home-page "https://www.seabios.org/SeaBIOS") (synopsis "x86 BIOS implementation") (description "SeaBIOS is an implementation of a 16bit x86 BIOS. SeaBIOS can run in an emulator or it can run natively on X86 hardware with the use of coreboot.") + (supported-systems '("i686-linux" "x86_64-linux")) ;; Dual licensed. (license (list license:gpl3+ license:lgpl3+ ;; src/fw/acpi-dsdt.dsl is lgpl2 @@ -489,6 +566,228 @@ coreboot.") ;; cpl with a linking exception. license:cpl1.0)))) +(define-public seabios-qemu + (package/inherit seabios + (name "seabios-qemu") + (native-inputs + (if (member (%current-system) '("i686-linux" "x86_64-linux")) + (package-native-inputs seabios) + (modify-inputs (package-native-inputs seabios) + (prepend (cross-gcc "i686-linux-gnu") + (cross-binutils "i686-linux-gnu"))))) + (supported-systems %supported-systems) + (arguments + (substitute-keyword-arguments (package-arguments seabios) + ((#:modules modules %gnu-build-system-modules) + `((ice-9 match) + (ice-9 threads) + ,@modules)) + ((#:phases phases) + #~(modify-phases #$phases + #$@(match (%current-system) + ((or "i686-linux" "x86_64-linux") + #~()) + (_ + #~((add-after 'configure 'configure-cross + (lambda _ + (substitute* "Makefile" + (("CROSS_PREFIX=") + "CROSS_PREFIX=i686-linux-gnu-"))))))) + (replace 'build + (lambda* (#:key (make-flags #~'()) #:allow-other-keys) + ;; Note: These BIOS configurations are taken from QEMUs roms/ + ;; directory. + (let ((biosen + '( ;; The standard BIOS using default options. + ("bios-256k" . ("QEMU=y" "ROM_SIZE=256" "ATA_DMA=n")) + ;; A minimal BIOS for old QEMU machine types. + ("bios-128k" + . ("QEMU=y" "ROM_SIZE=128" "ATA_DMA=n" "BOOTSPLASH=n" + "XEN=n" "USB_OHCI=n" "USB_XHCI=n" "USB_UAS=n" + "SDCARD=n" "TCGBIOS=n" "MPT_SCSI=n" "ESP_SCSI=n" + "MEGASAS=n" "PVSCSI=n" "NVME=n" "USE_SMM=n" + "VGAHOOKS=n" "HOST_BIOS_GEOMETRY=n" "ACPI_PARSE=n")) + ;; Minimal BIOS for the "microvm" machine type. + ("bios-microvm" + . ("QEMU=y" "ROM_SIZE=128" "XEN=n" "BOOTSPLASH=n" + "ATA=n" "AHCI=n" "SDCARD=n" "PVSCSI=n" "ESP_SCSI=n" + "LSI_SCSI=n" "MEGASAS=n" "MPT_SCSI=n" "FLOPPY=n" + "FLASH_FLOPPY=n" "NVME=n" "PS2PORT=n" "USB=n" + "LPT=n" "RTC_TIMER=n" "USE_SMM=n" "PMTIMER=n" + "TCGBIOS=n" "HARDWARE_IRQ=n" "ACPI_PARSE=y")))) + (vgabiosen + '(("ati" . ("VGA_ATI=y" "VGA_PCI=y")) + ("bochs-display" . ("DISPLAY_BOCHS=y" "VGA_PCI=y")) + ("cirrus" . ("VGA_CIRRUS=y" "VGA_PCI=y")) + ("stdvga" . ("VGA_BOCHS=y" "VGA_PCI=y")) + ("virtio" . ("VGA_BOCHS=y" "VGA_BOCHS_VIRTIO=y" + "VGA_PCI=y")) + ("vmware" . ("VGA_BOCHS=y" "VGA_BOCHS_VMWARE=y" + "VGA_PCI=y")) + ("qxl" . ("VGA_BOCHS=y" "VGA_BOCHS_QXL=y" + "VGA_PCI=y")) + ("isavga" . ("VGA_BOCHS=y" "VGA_PCI=n")) + ("ramfb" . ("VGA_RAMFB=y" "VGA_PCI=n"))))) + (mkdir "out") + (n-par-for-each + (parallel-job-count) + (match-lambda + ((target . config) + (let* ((dot-config (string-append (getcwd) "/" target + "/.config")) + (flags (append + make-flags + (list (string-append "KCONFIG_CONFIG=" + dot-config) + (string-append "OUT=" target "/"))))) + (mkdir target) + (call-with-output-file dot-config + (lambda (port) + (for-each (lambda (entry) + (format port "CONFIG_~a~%" entry)) + config))) + (apply invoke "make" "oldnoconfig" flags) + (apply invoke "make" flags) + (link (string-append target "/" + (if (string-prefix? "vgabios" target) + "vgabios.bin" "bios.bin")) + (string-append "out/" target ".bin"))))) + (append biosen + (map (lambda (pair) + `(,(string-append "vgabios-" (car pair)) + . + ,(cons "BUILD_VGABIOS=y" (cdr pair)))) + vgabiosen)))))) + (replace 'install + (lambda _ + (let ((firmware (string-append #$output "/share/qemu"))) + (for-each (lambda (bios) + (install-file bios firmware)) + (find-files "out" "\\.bin$")) + (with-directory-excursion firmware + ;; Compatibility symlinks for QEMU. + (symlink "bios-128k.bin" "bios.bin") + (symlink "vgabios-isavga.bin" "vgabios.bin"))))))))))) + +(define-public sgabios + ;; There are no tags in the repository. + (let ((commit "72f39d48bedf044e202fd51fecf3e2218fc2ae66") + (revision "0")) + (package + (name "sgabios") + (version (git-version "0.0" revision commit)) + (home-page "https://gitlab.com/qemu-project/sgabios") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ybl021i0xaz18wzq4q13ifypy5b3dj8m11c8m0qdiq00g06vm0i")))) + (build-system gnu-build-system) + (arguments + (list #:make-flags + #~'(#$@(if (member (%current-system) '("i686-linux" "x86_64-linux")) + #~("CC=gcc") + #~("CC=i686-linux-gnu-gcc" + "LD=i686-linux-gnu-ld" + "OBJCOPY=i686-linux-gnu-objcopy")) + "HOSTCC=gcc") + #:parallel-build? #f + #:tests? #f ;no tests + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'build-reproducibly + (lambda _ + (substitute* "Makefile" + (("BUILD_DATE = .*") + "BUILD_DATE = \\\"Jan 1 1970\\\"\n") + (("BUILD_SHORT_DATE = .*") + "BUILD_SHORT_DATE = \\\"1/1/70\\\"\n")))) + (delete 'configure) + (replace 'install + (lambda _ + (install-file "sgabios.bin" + (string-append #$output "/share/qemu"))))))) + (native-inputs + (if (member (%current-system) '("i686-linux" "x86_64-linux")) + '() + (list (cross-gcc "i686-linux-gnu") + (cross-binutils "i686-linux-gnu")))) + (synopsis "Serial graphics adapter BIOS") + (description + "SGABIOS provides a means for legacy PC software to communicate with an +attached serial console as if a VGA card is attached. It is designed to be +inserted into a BIOS as an option ROM to provide over a serial port the display +and input capabilites normally handled by a VGA adapter and a keyboard, and +additionally provide hooks for logging displayed characters for later collection +after an operating system boots.") + (license license:asl2.0)))) + +(define-public edk2-tools + (package + (name "edk2-tools") + (version "202211") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tianocore/edk2") + (commit (string-append "edk2-stable" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1264542mm0mffjcmw5sw34h94n405swz5z56rw1ragp3j62144iy")))) + (build-system gnu-build-system) + (arguments + (list #:make-flags + #~(list (string-append "BUILD_CC=" #$(cc-for-target))) + #:test-target "Tests" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'change-directory + (lambda _ + (chdir "BaseTools"))) + (add-after 'change-directory 'disable-some-tools + (lambda _ + ;; Disable building brotli and xz, since we package them + ;; separately, and it would require fetching submodules. + (substitute* "Source/C/GNUmakefile" + (("^[[:blank:]]+BrotliCompress[[:blank:]]+\\\\") + "\\") + (("^[[:blank:]]+LzmaCompress[[:blank:]]+\\\\") + "\\")))) + (replace 'build + (lambda* (#:key (make-flags #~'()) #:allow-other-keys) + ;; The default build target also runs tests. + (apply invoke "make" "-C" "Source/C" make-flags))) + (delete 'configure) + (replace 'install + (lambda _ + (mkdir #$output) + (copy-recursively "Source/C/bin" + (string-append #$output "/bin"))))))) + (native-inputs + (list python-wrapper)) + (inputs + (list `(,util-linux "lib"))) ;for libuuid + (home-page + "https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Tools-List") + (synopsis "EFI development tools") + (description + "This package contains tools for processing UEFI firmware content. +Executables included are: + +@itemize +@item @code{EfiRom}: Build Option ROM images. +@item @code{GenFfs}: Generate FFS files. +@item @code{GenFv}: Generate a PI firmware volume image. +@item @code{GenFw}: Get image data from PE32 files. +@item @code{GenSec}: Generate EFI_SECTION type files. +@item @code{VfrCompile}: Parse preprocessed UEFI and Framework VFR files. +@item @code{VolInfo}: Display the contents of a firmware volume. +@end itemize") + (license license:bsd-2))) + (define-public ovmf (let ((commit "13a50a6fe1dcfa6600c38456ee24e0f9ecf51b5f") (revision "1")) diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm index 08300cb860..e7165efe79 100644 --- a/gnu/packages/flashing-tools.scm +++ b/gnu/packages/flashing-tools.scm @@ -66,7 +66,9 @@ version ".tar.bz2")) (sha256 (base32 - "0ax4kqnh7kd3z120ypgp73qy1knz47l6qxsqzrfkd97mh5cdky71")))) + "0ax4kqnh7kd3z120ypgp73qy1knz47l6qxsqzrfkd97mh5cdky71")) + (patches + (search-patches "flashrom-fix-building-on-aarch64.patch")))) (build-system gnu-build-system) (inputs (list dmidecode pciutils libusb libftdi)) (native-inputs (list pkg-config)) diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm index b2b3b63672..acce5f8f82 100644 --- a/gnu/packages/fpga.scm +++ b/gnu/packages/fpga.scm @@ -65,40 +65,39 @@ #:use-module (gnu packages libusb)) (define-public abc - (let ((commit "5ae4b975c49c") - (revision "1")) + (let ((commit "70cb339f869e") + (revision "2")) (package (name "abc") (version (git-version "0.0" revision commit)) (source (origin - (method url-fetch) - (uri - (string-append "https://bitbucket.org/alanmi/abc/get/" commit ".zip")) - (file-name (string-append name "-" version "-checkout.zip")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/berkeley-abc/abc") + (commit commit))) + (file-name (git-file-name name version)) (sha256 (base32 - "1syygi1x40rdryih3galr4q8yg1w5bvdzl75hd27v1xq0l5bz3d0")))) + "1ngxg4jvz8vwm74sbidysgz3v5lrzjcabkqj4nhcksi6hnhyc9m8")))) (build-system gnu-build-system) - (native-inputs - (list unzip)) (inputs (list readline)) (arguments - `(#:tests? #f ; no check target - #:phases - (modify-phases %standard-phases - (delete 'configure) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (out-bin (string-append out "/bin"))) - (install-file "abc" out-bin))))))) + (list #:license-file-regexp "copyright.txt" + #:tests? #f ; no tests + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda _ + (install-file "abc" (string-append #$output "/bin"))))))) (home-page "https://people.eecs.berkeley.edu/~alanmi/abc/") (synopsis "Sequential logic synthesis and formal verification") (description "ABC is a program for sequential logic synthesis and formal verification.") (license - (license:non-copyleft "https://fedoraproject.org/wiki/Licensing:MIT#Modern_Variants"))))) + (license:non-copyleft + "https://people.eecs.berkeley.edu/~alanmi/abc/copyright.htm"))))) (define-public iverilog (package diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 4a0435045b..8fec474d0b 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -2665,7 +2665,7 @@ utilities frequently used in roguelikes.") `(("alsa-lib" ,alsa-lib) ("curl" ,curl) ("freetype" ,freetype) - ("ffmpeg" ,ffmpeg) + ("ffmpeg" ,ffmpeg-4) ("libjpeg" ,libjpeg-turbo) ("libogg" ,libogg) ("libpng" ,libpng) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index d8c5a34a41..19c689dee1 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -52,7 +52,7 @@ ;;; Copyright © 2020 Vitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com> ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> -;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Trevor Hass <thass@okstate.edu> ;;; Copyright © 2020, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com> ;;; Copyright © 2020 Lu hux <luhux@outlook.com> @@ -7930,7 +7930,7 @@ ncurses for text display.") (define-public naev (package (name "naev") - (version "0.9.4") + (version "0.10.0") (source (origin (method git-fetch) @@ -7940,7 +7940,7 @@ ncurses for text display.") (recursive? #t))) ; for game data (file-name (git-file-name name version)) (sha256 - (base32 "0isswidhxhs2q5c4cxryjr8y8ibfxckpfyccly3b4lg1nxvm5gjv")))) + (base32 "183dbi4a91xggxm1rmn7vr8rq519yz7b3zhrd03azsg6fxylv9wn")))) (build-system meson-build-system) (arguments ;; XXX: Do not add debugging symbols, which cause the build to fail. @@ -7949,7 +7949,8 @@ ncurses for text display.") (native-inputs (list gettext-minimal pkg-config)) (inputs - (list freetype + (list enet + freetype glpk libpng libunibreak @@ -7959,6 +7960,7 @@ ncurses for text display.") luajit openal openblas + pcre2 physfs python python-pyyaml @@ -8478,7 +8480,7 @@ to download and install them in @file{$HOME/.stepmania-X.Y/Songs} directory.") (native-inputs (list pkg-config)) (inputs - (list cairo ffmpeg pango sdl2 sdl2-image)) + (list cairo ffmpeg-4 pango sdl2 sdl2-image)) (home-page "https://github.com/fmang/oshu/") (synopsis "Rhythm game in which you click on circles") (description "@i{oshu!} is a minimalist variant of the @i{osu!} rhythm game, @@ -8885,7 +8887,7 @@ fight each other on an arena-like map.") (define-public flare-engine (package (name "flare-engine") - (version "1.13.04") + (version "1.14") (source (origin (method git-fetch) (uri (git-reference @@ -8894,7 +8896,7 @@ fight each other on an arena-like map.") (file-name (git-file-name name version)) (sha256 (base32 - "042n2r9whnd3kncf3k89dcl1srn7p2jk6kdc0lb2hbwff55iylnw")))) + "1gyaxr6zykwg5kg9xc3vlb5a6fas4z3zbk53y0zlfl35n4vqlh84")))) (build-system cmake-build-system) (arguments (list @@ -8914,7 +8916,7 @@ action RPGs.") (define-public flare-game (package (name "flare-game") - (version "1.13.04") + (version "1.14") (source (origin (method git-fetch) (uri (git-reference @@ -8923,7 +8925,7 @@ action RPGs.") (file-name (git-file-name name version)) (sha256 (base32 - "18rdrwv7p5rvmlah5pl9vbc09xlb8id75a7c73yn2sxkm6cf5c2l")))) + "1as9dsg0ddz14jjk4y5nj0ml20cwncrcnbdk10r1jaa2vss9bbn3")))) (build-system cmake-build-system) (arguments (list @@ -9318,7 +9320,7 @@ play with up to four players simultaneously. It has network support.") (string-append "../hedgewars-src-" #$version) (install-file "misc/hedgewars.png" icons)))))))) (inputs - (list ffmpeg + (list ffmpeg-4 freeglut ghc-entropy ghc-hslogger @@ -10336,10 +10338,10 @@ etc. You can also play games on FICS or against an engine.") (license license:gpl2+))) (define-public stockfish - (let ((neural-network-revision "6877cd24400e")) ; also update hash below + (let ((neural-network-revision "ad9b42354671")) ; also update hash below (package (name "stockfish") - (version "15") + (version "15.1") (source (origin (method git-fetch) @@ -10348,7 +10350,7 @@ etc. You can also play games on FICS or against an engine.") (commit (string-append "sf_" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1v19v6qhwbf31wpc3qcih4dvqxwqkh0p426skgjin6ags31hkbmh")))) + (base32 "0zmnv8vbhhid73pjyxg56r4ckm887znv4d55br370plm3p5b56xa")))) (build-system gnu-build-system) (inputs `(("neural-network" @@ -10358,7 +10360,7 @@ etc. You can also play games on FICS or against an engine.") neural-network-revision ".nnue")) (sha256 (base32 - "1qyna598c0v7gdpycc6kpl12h5a2wa50dqray6gv208f80jcsxv8")))))) + "11mpdhnsfggldgvmzwmya64pp3fndyppi2fkdf8kfhbi8qsl56xd")))))) (arguments `(#:tests? #f #:make-flags (list "-C" "src" @@ -10388,11 +10390,13 @@ etc. You can also play games on FICS or against an engine.") (copy-file (assoc-ref inputs "neural-network") (format #f "src/nn-~a.nnue" ,neural-network-revision)))) - ;; Guix doesn't use a multiarch gcc. - (add-after 'unpack 'remove-m-flag + (add-after 'unpack 'remove-m-flag-and-net-target (lambda _ (substitute* "src/Makefile" - (("-m\\$\\(bits\\)") ""))))))) + ;; Guix doesn't use a multiarch gcc. + (("-m\\$\\(bits\\)") "") + ;; Dont depend on net target. + ((": net") ": "))))))) (synopsis "Strong chess engine") (description "Stockfish is a very strong chess engine. It is much stronger than the @@ -11020,7 +11024,7 @@ disassembly of the DOS version, extended with new features.") (define-public fheroes2 (package (name "fheroes2") - (version "0.9.11") + (version "1.0.0") (source (origin (method git-fetch) @@ -11029,7 +11033,7 @@ disassembly of the DOS version, extended with new features.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1m8649srzg3j2b1hs4x2y8fib6hn7v0afv4c7bjnfk4bhpi4cqd7")))) + (base32 "0bvp9xhzlh4d6q5jlvz4nciald75g9v0vahzax47q9xgajnbibzk")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; no tests diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index b3a5c0df3f..2185af7a98 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -65,6 +65,7 @@ #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages build-tools) + #:use-module (gnu packages c) #:use-module (gnu packages check) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) @@ -79,6 +80,7 @@ #:use-module (gnu packages flex) #:use-module (gnu packages fonts) #:use-module (gnu packages fontutils) + #:use-module (gnu packages gcc) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) #:use-module (gnu packages glib) @@ -128,25 +130,94 @@ #:use-module (gnu packages xml) #:use-module (gnu packages xorg)) +(define-public libaec + (package + (name "libaec") + (version "1.0.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.dkrz.de/k202009/libaec") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14myrmmiz9z6wgxqywf3a63cq514vrzsd6z4zvpwigvawlk30iip")))) + (build-system cmake-build-system) + (home-page "https://gitlab.dkrz.de/k202009/libaec") + (synopsis "Adaptive Entropy Coding library") + (description "Libaec provides fast lossless compression of 1 up to 32 bit +wide signed or unsigned integers (samples). The library achieves best results +for low entropy data as often encountered in space imaging instrument data or +numerical model output from weather or climate simulations. While floating +point representations are not directly supported, they can also be efficiently +coded by grouping exponents and mantissa.") + (license license:bsd-2))) + +(define-public eccodes + (package + (name "eccodes") + (version "2.27.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://confluence.ecmwf.int/download/attachments/45757960/" + "eccodes-" version "-Source.tar.gz")) + (sha256 + (base32 "16cw4v2d0kjq6gq04paqny0sh5jymn70w449mig7m5h3spzv7rgd")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags '("-DENABLE_MEMFS=ON" "-DENABLE_PNG=ON") + #:validate-runpath? #f)) + (inputs + (list jasper libaec libjpeg-turbo libpng netcdf openjpeg)) + (native-inputs + (list gfortran perl pkg-config python)) + (home-page "https://confluence.ecmwf.int/display/ECC") + (synopsis "Library for handling the GRIB, BUFR and GTS file formats") + (description "ecCodes is a package developed by @acronym{ECMWF, European +Centre for Medium-Range Weather Forecasts} which provides an application +programming interface and a set of tools for decoding and encoding messages in +the @acronym{WMO, World Meteorological Organization} FM-92 GRIB, WMO FM-94 +BUFR and WMO GTS abbreviated header formats.") + (license license:asl2.0))) + (define-public cdo (package (name "cdo") - (version "2.0.5") - (source (origin - (method url-fetch) - (uri (string-append - "https://code.mpimet.mpg.de/attachments/download/26823/cdo-" - version ".tar.gz")) - (sha256 - (base32 - "1khdbd5cmnn7qm6hcqg4md5wbq14fs6brrns8b3g18diqgqvpvpd")))) + (version "2.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://code.mpimet.mpg.de/attachments/download/27481/cdo-" + version ".tar.gz")) + (sha256 + (base32 "1k18llghpf3jnjn0xcnhmbg7arb1fiy854qqn9m5c1abjin38wdq")))) (build-system gnu-build-system) (arguments (list #:configure-flags - #~(list (string-append "--with-netcdf=" - #$(this-package-input "netcdf"))))) + #~(list (string-append "--with-curl=" + #$(this-package-input "curl")) + (string-append "--with-eccodes=" + #$(this-package-input "eccodes")) + (string-append "--with-fftw3=" + #$(this-package-input "fftw")) + (string-append "--with-hdf5=" + #$(this-package-input "hdf5")) + (string-append "--with-netcdf=" + #$(this-package-input "netcdf")) + (string-append "--with-proj=" + #$(this-package-input "proj")) + (string-append "--with-udunits2=" + #$(this-package-input "udunits")) + (string-append "--with-libxml2=" + #$(this-package-input "libxml2"))) + ;; Some tests can fail on machines with many threads. + #:parallel-tests? #f)) (inputs - (list netcdf)) + (list curl eccodes fftw hdf5 libxml2 netcdf proj udunits)) (native-inputs (list pkg-config)) (home-page "https://code.mpimet.mpg.de/projects/cdo") @@ -222,7 +293,7 @@ OpenStreetMap written in C using eXpat, Cairo and GLib.") (define-public geos (package (name "geos") - (version "3.11.0") + (version "3.11.1") (source (origin (method url-fetch) (uri (string-append "http://download.osgeo.org/geos/geos-" @@ -230,7 +301,7 @@ OpenStreetMap written in C using eXpat, Cairo and GLib.") ".tar.bz2")) (sha256 (base32 - "12l59pxawyizmc4wn20dvjn7aifqwkim4ysmc78h91mayjmqravr")))) + "1qhbirv1rbznv99ha0pa0zybvcsn0dsz2xfc65vr8bgrm77v63kd")))) (build-system cmake-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -338,6 +409,7 @@ and driving.") (method url-fetch) (uri (string-append "http://download.osgeo.org/geotiff/libgeotiff/libgeotiff-" version ".tar.gz")) + (patches (search-patches "libgeotiff-fix-tests-with-proj-9.1.1.patch")) (sha256 (base32 "1mjmgv48x51ppax5dnb6lq7z600czxll53bx6jbzqwd4m93i7aq5")) (modules '((guix build utils))) @@ -528,7 +600,7 @@ fully fledged Spatial SQL capabilities.") (define-public proj (package (name "proj") - (version "9.1.0") + (version "9.1.1") (source (origin (method url-fetch) @@ -536,7 +608,7 @@ fully fledged Spatial SQL capabilities.") version ".tar.gz")) (sha256 (base32 - "0593vd9sac0c98j1f4rammd90d4xnhygbr6d49i8il6ajjdj7cl1")))) + "0fbd1vj4cj19kwh03vdn0a4hr0xaacvi876yyyw5xfsj1q0x8g00")))) (build-system cmake-build-system) (native-inputs (list googletest pkg-config)) (propagated-inputs (list curl libtiff sqlite)) ;required by proj.pc @@ -630,14 +702,14 @@ projections.") (define-public python-pyproj (package (name "python-pyproj") - (version "3.3.1") + (version "3.4.0") (source (origin (method url-fetch) (uri (pypi-uri "pyproj" version)) (sha256 (base32 - "1gjg63irs44djyqbp9gg7s02d0y5i9cd1a83phyzp5fcj56y3n5k")))) + "0czbfl5dd7jckbwvinfwiwdb99sxj796gfn3a9zqbsdc4xcl8257")))) (build-system python-build-system) (arguments `(#:phases @@ -974,7 +1046,7 @@ development.") (define-public gdal (package (name "gdal") - (version "3.5.1") + (version "3.6.1") (source (origin (method url-fetch) (uri (string-append @@ -982,7 +1054,7 @@ development.") version ".tar.gz")) (sha256 (base32 - "1l93q7xf6qx9ck5axfkf3ygmvclxkvrjd8x00ckn7j0d0750ci3w")) + "1qckwnygszxkkq40bf87s3m1sab6jj9jyakdvskh0qf7dq8zjarf")) (modules '((guix build utils))) (snippet `(begin @@ -1012,19 +1084,27 @@ development.") json-c libgeotiff libjpeg-turbo + libjxl libpng libtiff libwebp + lz4 netcdf openssl + openjpeg pcre2 postgresql ; libpq proj qhull sqlite - zlib)) + swig + zlib + zstd)) (native-inputs - (list pkg-config)) + (list pkg-config + python)) + (propagated-inputs + (list python-numpy)) (home-page "https://gdal.org/") (synopsis "Raster and vector geospatial data format library") (description "GDAL is a translator library for raster and vector geospatial @@ -1053,25 +1133,6 @@ utilities for data translation and processing.") ;; frmts/mrf/libLERC license:asl2.0)))) -(define-public python-gdal - (package (inherit gdal) - (name "python-gdal") - (build-system python-build-system) - (arguments - '(#:tests? #f ; no tests - #:phases - (modify-phases %standard-phases - (add-before 'build 'chdir - (lambda _ - (chdir "swig/python") - #t))))) - (native-inputs '()) - (propagated-inputs - (list python-numpy)) - (inputs - (list gdal)) - (synopsis "GDAL (Geospatial Data Abstraction Library) python bindings"))) - (define-public python-pyshp (package (name "python-pyshp") @@ -1106,13 +1167,13 @@ utilities for data translation and processing.") (package (name "python-cartopy") ;; This is a post-release fix that adds build_ext to setup.py. - (version "0.20.3") + (version "0.21.0") (source (origin (method url-fetch) (uri (pypi-uri "Cartopy" version)) (sha256 - (base32 "01lhnkhw22jp6hnrs5qvgkq4fqcni2sx7ydiyv8w8xxx5wpglq0d")))) + (base32 "0hnfs75dcnz12ximah5xn9566r8zz189lxikmj4lrs9jl4l3l7ff")))) (build-system python-build-system) (arguments `(#:phases @@ -1135,13 +1196,12 @@ utilities for data translation and processing.") python-scipy python-shapely)) (inputs - (list geos - ;; cartopy's setup.py looks for the proj executable. - ;; Not sure if it actually makes use of it since it - ;; probably uses proj only through pyproj. - proj)) + (list geos)) (native-inputs - (list python-cython python-flufl-lock python-pytest)) + (list python-cython + python-flufl-lock + python-pytest + python-pytest-mpl)) (home-page "https://scitools.org.uk/cartopy/docs/latest/") (synopsis "Cartographic library for visualisation") (description @@ -2480,6 +2540,7 @@ growing set of geoscientific methods.") "ProcessingQgisAlgorithmsTestPt2" "ProcessingQgisAlgorithmsTestPt3" "ProcessingQgisAlgorithmsTestPt4" + "ProcessingGdalAlgorithmsRasterTest" "ProcessingGdalAlgorithmsVectorTest" "ProcessingGrass7AlgorithmsImageryTest" "ProcessingGrass7AlgorithmsRasterTestPt1" @@ -2597,7 +2658,6 @@ growing set of geoscientific methods.") python-chardet python-dateutil python-future - python-gdal python-jinja2 python-numpy python-owslib diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm index 8be9c55000..62ffddbb44 100644 --- a/gnu/packages/gnome-xyz.scm +++ b/gnu/packages/gnome-xyz.scm @@ -361,16 +361,16 @@ copy, move, delete, or edit your files.") (define-public gnome-shell-extension-unite-shell (package (name "gnome-shell-extension-unite-shell") - (version "65") + (version "69") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/hardpixel/unite-shell") - (commit "127edac6396b89cdedec003bdff38820e6a0f91f"))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "1lzhf7hlvzg62nxjfpv265315qibcjz5dv08dzpfckf2dx68nab4")))) + "10yh6ylyp43ykcza180iak08wfypay3raqf3p0vrj9ngm98qzq70")))) (build-system copy-build-system) (native-inputs (list `(,glib "bin") gettext-minimal)) (inputs (list xprop)) @@ -934,7 +934,7 @@ copies you now want to paste.") (define-public gnome-shell-extension-vertical-overview (package (name "gnome-shell-extension-vertical-overview") - (version "9") + (version "10") (source (origin (method git-fetch) @@ -943,7 +943,7 @@ copies you now want to paste.") (commit (string-append "v" version)))) (sha256 (base32 - "0pkby00rjipj04z68d6i3rr7mzm01dckf2vl3iz6yvbl39602icl")) + "1sqkbg93qqrq47wyfnh2flg7dpsmv5c2pmkx8kgqhnbl7j2kgi0l")) (file-name (git-file-name name version)) (snippet '(begin (delete-file "schemas/gschemas.compiled"))))) @@ -1015,7 +1015,7 @@ position when the mouse is moved rapidly.") (define-public gnome-shell-extension-burn-my-windows (package (name "gnome-shell-extension-burn-my-windows") - (version "21") + (version "22") (source (origin (method git-fetch) @@ -1024,7 +1024,7 @@ position when the mouse is moved rapidly.") (commit (string-append "v" version)))) (sha256 (base32 - "07ckfl47pq83nhb77v230zfxlz3imga3s8nn3sr9cq4zxvbkj2r4")) + "185xrf330d9bflmk0l61cnzlylnppb2v4yz6v6ygkk4zpwyil8np")) (file-name (git-file-name name version)))) (build-system copy-build-system) (arguments diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index c2edd7a553..2078e91c23 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -766,8 +766,7 @@ of known objects without needing a central registrar.") (with-directory-excursion "doc/libzeitgeist" (substitute* "zeitgeist-gtkdoc-index.sgml" (("http://www.oasis-open.org/docbook/xml/4.3/") - (string-append (assoc-ref inputs "docbook-xml") - "/xml/dtd/docbook/")))))) + (search-input-directory inputs "/xml/dtd/docbook/")))))) (add-after 'patch-docbook-xml 'disable-failing-tests (lambda _ (substitute* "test/direct/Makefile.am" @@ -781,25 +780,25 @@ of known objects without needing a central registrar.") ;; To honor `autoreconf -vif` by build-system. (delete-file "autogen.sh")))))) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("docbook-xml" ,docbook-xml-4.3) - ("gettext" ,gettext-minimal) - ("gobject-introspection" ,gobject-introspection) - ("gtk-doc" ,gtk-doc/stable) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config) - ("vala" ,vala) - ("xorg-server-for-tests" ,xorg-server-for-tests))) + (list autoconf + automake + docbook-xml-4.3 + gettext-minimal + gobject-introspection + gtk-doc/stable + libtool + pkg-config + vala + xorg-server-for-tests)) (inputs - `(("dee-icu" ,dee) - ("gtk+" ,gtk+) - ("json-glib" ,json-glib) - ("sqlite" ,sqlite) - ("telepathy-glib" ,telepathy-glib) - ("python" ,python-wrapper) - ("python-rdflib" ,python-rdflib) - ("xapian-config" ,xapian))) + (list dee + gtk+ + json-glib + sqlite + telepathy-glib + python-wrapper + python-rdflib + xapian)) (propagated-inputs (list glib)) (synopsis "Desktop Activity Logging") @@ -889,6 +888,7 @@ tomorrow, the rest of the week and for special occasions.") (build-system meson-build-system) (arguments (list + #:disallowed-references (list (this-package-native-input "git-minimal")) #:glib-or-gtk? #t #:configure-flags #~(list "-Ddogtail=false" ; Not available @@ -909,7 +909,7 @@ tomorrow, the rest of the week and for special occasions.") (list dbus desktop-file-utils gettext-minimal - git-minimal + git-minimal/fixed `(,glib "bin") gobject-introspection gsettings-desktop-schemas @@ -9724,7 +9724,7 @@ endpoint and it understands SPARQL.") "--no-suite" "slow"))))))) (native-inputs (list dbus - intltool + gettext-minimal `(,glib "bin") docbook-xsl docbook-xml diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index b477fee537..c98ceefad7 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -100,7 +100,7 @@ `(("exiv2" ,exiv2) ("bzip2" ,bzip2) ("flac" ,flac) - ("ffmpeg" ,ffmpeg) + ("ffmpeg" ,ffmpeg-4) ("file" ,file) ;libmagic, for the MIME plug-in ("glib" ,glib) ("giflib" ,giflib) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 13b603b64a..ffd5d62a71 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -257,14 +257,14 @@ specifications are building blocks of S/MIME and TLS.") (define libksba/fixed (package (inherit libksba) - (version "1.6.2") + (version "1.6.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/libksba/libksba-" version ".tar.bz2")) (sha256 - (base32 "0wf9j9hlzvgn0vz6zg3fvcmpdr62v8bz1kzsvzdbs4lqqp51rq7w")))))) + (base32 "0p6y82j9y6n0l7scjgqhz3as9w13jiqjfx9n2jzynw89nf6wcwiz")))))) (define-public npth (package diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index ba910934be..b507ec0406 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -477,8 +477,8 @@ in C/C++.") ;; XXXX: Workaround 'snippet' limitations. (define computed-origin-method (@@ (guix packages) computed-origin-method)) -(define %icecat-version "102.5.0-guix0-preview1") -(define %icecat-build-id "20221115000000") ;must be of the form YYYYMMDDhhmmss +(define %icecat-version "102.6.0-guix0-preview1") +(define %icecat-build-id "20221213000000") ;must be of the form YYYYMMDDhhmmss ;; 'icecat-source' is a "computed" origin that generates an IceCat tarball ;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat' @@ -500,11 +500,11 @@ in C/C++.") "firefox-" upstream-firefox-version ".source.tar.xz")) (sha256 (base32 - "1n2pq165fxmvgcr5mv3hhaid2vn7lh3jg03lf13kz4c5295x8z81")))) + "1zhggzrk7lgip8jm37idh22qks76kmjy4yqy2qi63mvnv2j58cfj")))) - (upstream-icecat-base-version "102.5.0") ; maybe older than base-version + (upstream-icecat-base-version "102.6.0") ; maybe older than base-version ;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version)) - (gnuzilla-commit "a8848cb35e4e47a344d40596f72d82d57bf5a6f1") + (gnuzilla-commit "b6260130b9808f550bdb35061af2d7962109a181") (gnuzilla-source (origin (method git-fetch) @@ -516,7 +516,7 @@ in C/C++.") (string-take gnuzilla-commit 8))) (sha256 (base32 - "0d0brzi7wmg70kvi9p3g24cyya17bvg2djgjn64g14hpnalg8icw")))) + "19v443w43jbcl9m5kl52nfai7hs4j07nf2ad9ggca7b2b0cz89b4")))) ;; 'search-patch' returns either a valid file name or #f, so wrap it ;; in 'assume-valid-file-name' to avoid 'local-file' warnings. @@ -1097,8 +1097,8 @@ standards of the IceCat project.") (cpe-name . "firefox_esr") (cpe-version . ,(first (string-split version #\-))))))) -(define %icedove-build-id "20221201000000") ;must be of the form YYYYMMDDhhmmss -(define %icedove-version "102.5.1") +(define %icedove-build-id "20221213000000") ;must be of the form YYYYMMDDhhmmss +(define %icedove-version "102.6.0") ;; Provides the "comm" folder which is inserted into the icecat source. ;; Avoids the duplication of Icecat's source tarball. @@ -1107,11 +1107,11 @@ standards of the IceCat project.") (method hg-fetch) (uri (hg-reference (url "https://hg.mozilla.org/releases/comm-esr102") - (changeset "bbf216e50e6a8cb4362b2b77feeb8ca4a1d78914"))) + (changeset "d46a947ae837300f19cc45c75d473c7b1cf4ebb3"))) (file-name (string-append "thunderbird-" %icedove-version "-checkout")) (sha256 (base32 - "06fhdzpl72mihm97g2i76knbny1jj261isl2jy8085wdmriv2f8z")))) + "0klr6i2sbaiv2gc8q1cxrz87zd5cskdwa9qacp3dhfb8x17qwb41")))) (define-public icedove (package diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm index 02c80f0682..52c63c8654 100644 --- a/gnu/packages/graph.scm +++ b/gnu/packages/graph.scm @@ -67,7 +67,7 @@ (define-public plfit (package (name "plfit") - (version "0.9.3") + (version "0.9.4") (source (origin (method git-fetch) (uri (git-reference @@ -76,7 +76,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "03x5jbvg8vwr92682swy58ljxrhqwmga1xzd0cpfbfmda41gm2fb")))) + "042b60cnsz5wy27sz026xs0mnn9p58j46crgs78skncgkvzqyyc6")))) (build-system cmake-build-system) (arguments '(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON"))) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index efe1deede4..f23fad7c50 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -570,7 +570,7 @@ and export to various formats including the format used by Magicavoxel.") (define-public assimp (package (name "assimp") - (version "5.2.2") + (version "5.2.5") (source (origin (method git-fetch) (uri (git-reference @@ -579,7 +579,7 @@ and export to various formats including the format used by Magicavoxel.") (file-name (git-file-name name version)) (sha256 (base32 - "1kjifakjnpm89410pw27wq21fn975gfq46kn9zs3h8bryldvvlgk")))) + "0j0pd279n6xyy95x782ha8j75kbx0ck7vs5wv3krhbyfim9bw64l")))) (build-system cmake-build-system) (inputs (list zlib)) @@ -957,7 +957,7 @@ other vector formats such as: (define-public alembic (package (name "alembic") - (version "1.8.3") + (version "1.8.4") (source (origin (method git-fetch) @@ -966,7 +966,7 @@ other vector formats such as: (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0glfx3cm7r8zn3cn7j4x4ch1ab6igfis0i2lcy23jc56q87r8yj2")))) + (base32 "04cvzr87zqx55si4j3dqiidbmfx92ja3mc1dj0v6ddvl0cwj3m7i")))) (build-system cmake-build-system) (arguments `(#:configure-flags (list "-DUSE_HDF5=ON"))) @@ -1308,7 +1308,7 @@ visual effects work for film.") ("jasper" ,jasper) ("librsvg" ,librsvg) ("libxrandr" ,libxrandr) - ("ffmpeg" ,ffmpeg) + ("ffmpeg" ,ffmpeg-4) ("mesa" ,mesa))) (synopsis "High-performance real-time graphics toolkit") (description diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm index 51c1de3932..7c2cb1eae0 100644 --- a/gnu/packages/graphviz.scm +++ b/gnu/packages/graphviz.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2015, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org> -;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2017, 2018, 2019, 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com> ;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org> @@ -32,6 +32,7 @@ (define-module (gnu packages graphviz) #:use-module (guix packages) #:use-module (guix build-system gnu) + #:use-module (guix build-system pyproject) #:use-module (guix build-system python) #:use-module (guix download) #:use-module (guix git-download) @@ -180,27 +181,25 @@ interfaces for other technical domains.") (define-public python-graphviz (package (name "python-graphviz") - (version "0.13.2") + (version "0.20.1") (source (origin (method url-fetch) (uri (pypi-uri "graphviz" version ".zip")) (sha256 (base32 - "009alrilzx0v7kl41khbq7k6k8b8pxyvbsi1b1ai933f6kpbxb30")))) - (build-system python-build-system) + "1y1b956r01kg7qarkkrivhn71q64k0gbq6bcybd4gfd3v95g2n4c")))) + (build-system pyproject-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests #:allow-other-keys) - (if tests - (invoke "pytest" "-vv") - (format #t "test suite not run~%")) - #t))))) + (list + #:phases + '(modify-phases %standard-phases + (add-before 'check 'prepare-chec + ;; Needed for fontconfig cache directories + (lambda _ (setenv "HOME" (getcwd))))))) (native-inputs (list unzip ;; For tests. graphviz - python-mock python-pytest python-pytest-cov python-pytest-mock)) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index d846c79526..916ab2e990 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -734,6 +734,17 @@ model to base your own plug-in on, here it is.") (home-page "https://gstreamer.freedesktop.org/") (license license:lgpl2.0+))) +(define-public gst-plugins-good-qt + (package + (inherit gst-plugins-good) + (name "gst-plugins-good-qt") + (inputs + (modify-inputs (package-inputs gst-plugins-good) + (prepend qtbase-5 + qtdeclarative-5 + qtwayland-5 + qtx11extras))))) + (define-public gst-plugins-bad (package (name "gst-plugins-bad") diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 9fc6344491..50872b3f36 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -337,6 +337,72 @@ to UNIX pipes (@code{|}), Clojure's threading macros (@code{->} and @code{->>}).") (license license:gpl3+)))) +(define-public guile-pubstrate + (let ((commit "b11b7df5e7ffefa45c5859b868d8125c4d939418") + (revision "1")) + (package + (name "guile-pubstrate") + (version (git-version "0.1.dev" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/dustyweb/pubstrate") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qk45b3hjhzzq3dim699jrbmlc7ryr4s1fiz99ljz16rag2rr5p4")))) + (build-system gnu-build-system) + (arguments + (list + #:make-flags + '(list "GUILE_AUTO_COMPILE=0") + #:phases + '(modify-phases %standard-phases + (add-after 'unpack 'fix-build-system + (lambda _ + (substitute* "configure.ac" + (("GUILE_PROGS" m) + (string-append m " +guilemoduledir=\"${datarootdir}/guile/site/${GUILE_EFFECTIVE_VERSION}\" +AC_SUBST([guilemoduledir]) +AC_SUBST([GUILE_EFFECTIVE_VERSION]) +"))) + ;; The user.scm line is doubled + (substitute* "Makefile.am" + ((".*pubstrate/webapp/user.scm.*") "") + ((".*pubstrate/webapp/app.scm.*" m) + (string-append m "pubstrate/webapp/user.scm \\\n")) + (("/ccache") "/site-ccache")))) + (add-after 'unpack 'fix-srfi64-tests + (lambda _ + (substitute* (find-files "tests/" "test-.*\\.scm$") + (("\\(test-exit\\)") "") + (("\\(test-end.*" m) + (string-append "(test-exit)" m)))))))) + (native-inputs + (list autoconf + automake + pkg-config + texinfo)) + (inputs + (list guile-3.0 + libgcrypt)) + (propagated-inputs + (list gnutls + guile-8sync-for-pubstrate + guile-gcrypt + guile-gdbm-ffi + guile-irregex + guile-lib + guile-sjson + guile-webutils)) + (home-page "https://gitlab.com/dustyweb/pubstrate/") + (synopsis "ActivityStreams and ActivityPub implementation in Guile") + (description "This package provides an implementation of ActivityStreams +and ActivityPub in Guile. It includes a full (currently demo) web server.") + (license license:gpl3+)))) + (define-public guile-f-scm (package (name "guile-f-scm") @@ -564,6 +630,44 @@ library for GNU Guile based on the actor model.") (properties '((upstream-name . "8sync"))) (license license:lgpl3+)))) +(define guile-8sync-for-pubstrate + (let ((commit "7972787723d08a491379b63e6e5dc1cc6a3fac87") + (revision "0")) + (package + (inherit guile-8sync) + (name "guile-8sync-for-pubstrate") + (version (git-version "0.4.2" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (commit commit) + (url "https://git.savannah.gnu.org/git/8sync.git"))) + (sha256 + (base32 + "0m3k3cizi89frnw58dws3g4jcssck6jf1ahpadxxg3ncclqzad8r")) + (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet + '(substitute* "Makefile.am" + (("2.2") "3.0"))))) + (build-system gnu-build-system) + (arguments + (list + #:make-flags + '(list "GUILE_AUTO_COMPILE=0") + #:phases + '(modify-phases %standard-phases + ;; See commit ee371103855e5bfe8aae3debe442a24c6353e172 + (add-after 'unpack 'fix-srfi64-tests + (lambda _ + (substitute* '("tests/test-actors.scm" + "tests/test-rmeta-slot.scm") + (("\\(test-exit\\)") "") + (("\\(test-end.*" m) + (string-append "(test-exit)" m)))))))) + (native-inputs (list autoconf automake guile-3.0 pkg-config texinfo)) + (propagated-inputs (list guile-fibers))))) + (define-public guile-daemon (package (name "guile-daemon") @@ -1177,6 +1281,36 @@ non-mutating insert, delete, and search operations, with support for convenient nested tree operations.") (license license:gpl3+))) +(define-public guile-aws + (let ((commit "f32bea12333e1054b97ab50e58a72636edabb5b7") + (revision "1")) + (package + (name "guile-aws") + (version (git-version "0.1.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.elephly.net/software/guile-aws.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0z2mrjw1dry14vjqsh9xi199bavlmy6cajshnv015n7p5my0cx9z")))) + (build-system gnu-build-system) + (native-inputs + (list autoconf automake pkg-config)) + (inputs + (list guile-3.0)) + (propagated-inputs + (list guile-json-4 guile-gcrypt)) + (home-page "https://git.elephly.net/software/guile-aws.git") + (synopsis "Scheme DSL for the AWS APIs") + (description + "This package provides a DSL for a number of @dfn{Amazon Web +Services} (AWS) APIs, including EFS, EC2, Route53, and more. Guile AWS uses +the Guile compiler tower to generate the DSL from AWS JSON specifications.") + (license license:gpl3+)))) + (define-public guile-simple-zmq (let ((commit "ff0b39aec9312517fb48681564e261bd000aaf63") (revision "10")) @@ -3592,7 +3726,7 @@ debugging code.") (define-public guile-png (package (name "guile-png") - (version "0.2.0") + (version "0.3.0") (source (origin (method git-fetch) (uri (git-reference @@ -3601,10 +3735,21 @@ debugging code.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "1nk81z2cf9fsyppq5ly0yjw7yvdk5qraf71in7ayzdkngphhfgfx")))) + "1lv2cjzgrr0yshqng96l6bnn8pjmljv8qcn4w3wldh97ns7qigds")))) (build-system gnu-build-system) (arguments - `(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings + `(#:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings + #:phases + (modify-phases %standard-phases + ;; Guile-PNG tries to log parser messages to the syslog which is not + ;; available during the build. + (add-after 'unpack 'fix-tests + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "tests/graphics.scm" + ((" \\(png graphics\\)\\)") + (string-append " (png graphics)\n" + " (png fsm context))\n" + "(log-clear-handlers!)")))))))) (native-inputs (list autoconf automake pkg-config texinfo)) (inputs (list bash-minimal guile-3.0 guile-lib guile-zlib)) (propagated-inputs (list guile-smc)) @@ -4076,8 +4221,8 @@ gnome-keyring, and many more.") (license license:expat))) (define-public guile-webutils - (let ((commit "8541904f761066dc9c27b1153e9a838be9a55299") - (revision "0")) + (let ((commit "d309d65a85247e4f3cea63a17defd1e6d35d821f") + (revision "1")) (package (name "guile-webutils") (version (git-version "0.1" revision commit)) @@ -4089,15 +4234,7 @@ gnome-keyring, and many more.") (file-name (git-file-name name version)) (sha256 (base32 - "1s9n3hbxd7lfpdi0x8wr0cfvlsf6g62ird9gbspxdrp5p05rbi64")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Allow builds with Guile 3.0. - (substitute* "configure.ac" - (("2\\.2 2\\.0") - "3.0 2.2 2.0")) - #t)))) + "1a3bblk5zaldkkxn0a94s544drqm0w2i5fsjpghagd64m149blf0")))) (build-system gnu-build-system) (native-inputs (list autoconf automake pkg-config texinfo)) diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm index 65558ffe08..f73896460b 100644 --- a/gnu/packages/hardware.scm +++ b/gnu/packages/hardware.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2022 Marcel Kupiec <formbi@protonmail.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2022 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -134,7 +135,7 @@ sets, and tools to deal with register databases.") (define-public hw-probe (package (name "hw-probe") - (version "1.6.4") + (version "1.6.5") (source (origin (method git-fetch) @@ -144,7 +145,7 @@ sets, and tools to deal with register databases.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "028wnhrbn10lfxwmcpzdbz67ygldimv7z1k1bm64ggclykvg5aim")))) + (base32 "1sbp0scdi54zwgvb1s3ki3cw8xnxaxzm5cicq2nn3a2b6n1d4ljs")))) (build-system perl-build-system) (arguments (list @@ -263,6 +264,7 @@ sets, and tools to deal with register databases.") ddcutil dmidecode dpkg + edac-utils edid-decode efibootmgr efivar @@ -1132,7 +1134,14 @@ supported by the Linux kernel.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0zwrkqfxd671iy69v3q0844gfdpm1yk51i9qh2rqc969bd8glxga")))) + (base32 "0zwrkqfxd671iy69v3q0844gfdpm1yk51i9qh2rqc969bd8glxga")) + (snippet + #~(begin + ;; https://github.com/rockchip-linux/rkdeveloptool/pull/57 + (use-modules (guix build utils)) + (substitute* "main.cpp" + (("snprintf\\(buffer, sizeof\\(buffer\\), \"\\%s\", chip)") + "memccpy(buffer, chip, '\\0', sizeof(buffer))")))))) (build-system gnu-build-system) (native-inputs (list autoconf automake pkg-config)) diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm index b9e9050814..a2405796ca 100644 --- a/gnu/packages/haskell-apps.scm +++ b/gnu/packages/haskell-apps.scm @@ -304,14 +304,14 @@ to @code{cabal repl}).") (define-public git-annex (package (name "git-annex") - (version "10.20221103") + (version "10.20221212") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" "git-annex/git-annex-" version ".tar.gz")) (sha256 - (base32 "0fwg74ldw2paq9dr052hqjz2x219zkkramvm8jskpnnnch9c6jgm")))) + (base32 "0afnl2w29w4j0229rsla93dzkmhcjlp8dv76sr861n186ywv8rzg")))) (build-system haskell-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm index 29bfc44e4a..4c45671acc 100644 --- a/gnu/packages/ibus.scm +++ b/gnu/packages/ibus.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il> @@ -36,6 +36,7 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system meson) #:use-module (guix build-system python) #:use-module (guix utils) #:use-module (gnu packages) @@ -54,6 +55,7 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) + #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages iso-codes) #:use-module (gnu packages logging) @@ -63,11 +65,13 @@ #:use-module (gnu packages python-xyz) #:use-module (gnu packages python-web) #:use-module (gnu packages serialization) + #:use-module (gnu packages speech) #:use-module (gnu packages sqlite) #:use-module (gnu packages textutils) #:use-module (gnu packages unicode) #:use-module (gnu packages xorg) #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xml) #:use-module (srfi srfi-1)) (define-public ibus-minimal @@ -847,6 +851,76 @@ hanja dictionary and small hangul character classification.") "ibus-hangul is a Korean input method engine for IBus.") (license gpl2+))) +(define-public ibus-speech-to-text + (package + (name "ibus-speech-to-text") + (version "0.4.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/PhilippeRo/IBus-Speech-To-Text") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "00p7jfv815dblg20hahch6151rdbxhkdhfj51i0yvvmg3irvf7nm")))) + (build-system meson-build-system) + (arguments + (list + #:glib-or-gtk? #true + #:phases + '(modify-phases %standard-phases + (add-after 'unpack 'skip-update-desktop-database + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "meson.build" + (("update_desktop_database: true") + "update_desktop_database: false")))) + (add-after 'install 'wrap-with-additional-paths + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Make sure 'ibus-{setup,engine}-stt' find the gst-vosk plugin + ;; and run with the correct GUIX_PYTHONPATH and GI_TYPELIB_PATH. + (let ((out (assoc-ref outputs "out"))) + (for-each (lambda (prog) + (wrap-program prog + `("GST_PLUGIN_PATH" ":" prefix + (,(string-append (assoc-ref inputs "gst-vosk") + "/lib/gstreamer-1.0") + ,(getenv "GST_PLUGIN_SYSTEM_PATH"))) + `("GUIX_PYTHONPATH" ":" prefix + (,(getenv "GUIX_PYTHONPATH") + ,(string-append (assoc-ref inputs "ibus") + "/lib/girepository-1.0") + ,(string-append (assoc-ref outputs "out") + "/share/ibus-stt"))) + `("GI_TYPELIB_PATH" ":" prefix + (,(string-append (assoc-ref inputs "ibus") + "/lib/girepository-1.0") + ,(string-append (assoc-ref outputs "out") + "/share/ibus-stt"))))) + (list (string-append out "/libexec/ibus-engine-stt") + (string-append out "/libexec/ibus-setup-stt"))))))))) + (inputs + (list desktop-file-utils + (list glib "bin") + gobject-introspection + gst-vosk + gstreamer + gtk + ibus + libadwaita + python + python-babel + python-pygobject)) + (native-inputs + (list gettext-minimal libxml2 pkg-config)) + (home-page "https://github.com/PhilippeRo/IBus-Speech-To-Text") + (synopsis "Speech to text IBus engine using VOSK") + (description "This Input Method uses VOSK for voice recognition and allows +to dictate text in several languages in any application that supports IBus. +One of the main adavantages is that VOSK performs voice recognition locally +and does not rely on an online service.") + (license gpl3+))) + (define-public ibus-theme-tools (package (name "ibus-theme-tools") diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index fb45e9b141..ab796d7719 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -620,7 +620,7 @@ integrates with various databases on GUI toolkits such as Qt and Tk.") (sha256 (base32 "0ga0l4ranp1834gxgp487ll1amvmssa02l2nk5ja5w0rx4d8hh26")))))) (inputs - (list ffmpeg + (list ffmpeg-4 gtk+ gtkglext hdf5 @@ -925,7 +925,7 @@ recalculates.") double-conversion eigen expat - ffmpeg + ffmpeg-4 freetype gdal gl2ps diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 495645236e..0a6c28980d 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -387,22 +387,23 @@ highlighted. (define-public ii (package (name "ii") - (version "1.9") + (version "2.0") (source (origin (method url-fetch) (uri (string-append "http://dl.suckless.org/tools/" name "-" version ".tar.gz")) (sha256 (base32 - "05wcaszm9hap5gqf58bciqm3ad1kfgp976fs3fsn3ll3nliv6345")))) + "0ns2wpzkk7qzhv7addgr0w5as0m7jwag5nxai2dr61wc436syrsg")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; no tests - #:make-flags (list (string-append "PREFIX=" %output) - ,(string-append "CC=" (cc-for-target))) - #:phases - (modify-phases %standard-phases - (delete 'configure)))) ; no configure + (list #:tests? #f ; no tests + #:make-flags + #~(list (string-append "PREFIX=" #$output) + (string-append "CC=" #$(cc-for-target))) + #:phases + #~(modify-phases %standard-phases + (delete 'configure)))) ; no configure script (home-page "https://tools.suckless.org/ii/") (synopsis "FIFO and file system based IRC client") (description diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 33bb54b9e8..c6f7318b91 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -69,7 +69,7 @@ #:use-module (guix packages) #:use-module (guix utils)) -(define %jami-version "20221031.1308.130cc26") +(define %jami-version "20221220.0956.79e1207") (define %jami-sources ;; Return an origin object of the tarball release sources archive of the @@ -93,16 +93,9 @@ "plugins")))) (sha256 (base32 - "0hbsjjs61n7268lyjnjb9lzfpkkd65fmz76l1bg4awlz1f3cyywm")) + "0g5709rmb9944s0ij9g4pm1b871f5z0s5nawvm10z14wx3y1np8m")) (patches (search-patches "jami-disable-integration-tests.patch" - "jami-libjami-headers-search.patch" - "jami-fix-unit-tests-build.patch" - "jami-fix-qml-imports.patch" - "jami-no-webengine.patch" - "jami-sipaccount-segfault.patch" - "jami-sip-contacts.patch" - "jami-sip-unregister.patch" - "jami-xcb-link.patch")))) + "jami-libjami-headers-search.patch")))) ;; Jami maintains a set of patches for some key dependencies (currently ;; pjproject and ffmpeg) of Jami that haven't yet been integrated upstream. diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index f80406cab9..fc7ea120a8 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1761,18 +1761,18 @@ new Date();")) (define-public openjdk11 (package (name "openjdk") - (version "11.0.15") + (version "11.0.17") (source (origin (method url-fetch) (uri (string-append "https://openjdk-sources.osci.io/openjdk11/openjdk-" version "-ga.tar.xz")) - (file-name (string-append name "-" version ".tar.bz2")) + (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "0di91nnms2iq1svgq72r5y17am17r4vh2lq43k0bkcwpc84d6nd8")) + "1prvqy0ysz0999wrhsrbz6vrknpqfihl9l74l16ph93g89dqi5ia")) (modules '((guix build utils))) (snippet - '(for-each delete-file (find-files "." ".*.(bin|exe|jar)$"))))) + '(for-each delete-file (find-files "." "\\.(bin|exe|jar)$"))))) (build-system gnu-build-system) (outputs '("out" "jdk" "doc")) (arguments @@ -1851,8 +1851,7 @@ new Date();")) (format (current-error-port) "warning: failed to substitute: ~a~%" file)))) - (find-files "." - "\\.c$|\\.h$"))))) + (find-files "." "\\.c$|\\.h$"))))) (add-before 'build 'write-source-revision-file (lambda _ (with-output-to-file ".src-rev" @@ -1879,7 +1878,7 @@ new Date();")) ,@make-flags)))) (replace 'install (lambda _ - (let ((images (car (find-files "build" ".*-server-release" + (let ((images (car (find-files "build" "-server-release" #:directories? #t)))) (copy-recursively (string-append images "/images/jdk") #$output:jdk) @@ -1913,7 +1912,7 @@ new Date();")) (invoke "unzip" archive)) (delete-file archive) (with-directory-excursion dir - (let ((char-data-files (find-files "." "CharacterData.*"))) + (let ((char-data-files (find-files "." "CharacterData"))) (for-each (lambda (file) (substitute* file (((string-append "This file was generated " @@ -1924,7 +1923,7 @@ new Date();")) "file")))) char-data-files))) (with-directory-excursion dir - (let ((files (find-files "." ".*" #:directories? #t))) + (let ((files (find-files "." #:directories? #t))) (apply invoke "zip" "-0" "-X" archive files)))))) (add-after 'strip-character-data-timestamps 'remove-extraneous-files (lambda* (#:key outputs #:allow-other-keys) @@ -1949,7 +1948,7 @@ new Date();")) (invoke "unzip" archive)) (delete-file archive) (for-each (compose repack-archive canonicalize-path) - (find-files dir "(ct.sym|\\.jar)$")) + (find-files dir "(ct\\.sym|\\.jar)$")) (let ((reset-file-timestamp (lambda (file) (let ((s (lstat file))) @@ -1959,7 +1958,7 @@ new Date();")) (for-each reset-file-timestamp (find-files dir #:directories? #t))) (with-directory-excursion dir - (let ((files (find-files "." ".*" #:directories? #t))) + (let ((files (find-files "." #:directories? #t))) (apply invoke "zip" "-0" "-X" archive files))))))) (for-each repack-archive (find-files #$output:doc "\\.zip$")) @@ -2019,6 +2018,7 @@ new Date();")) libxtst)) (native-inputs (list autoconf + bash ; not bash-minimal, needs ulimit openjdk10 `(,openjdk10 "jdk") gnu-make-4.2 @@ -2100,8 +2100,8 @@ blacklisted.certs.pem" "#! java BlacklistedCertsConverter SHA-256\n")))))))))) (define-public openjdk13 - (make-openjdk openjdk12 "13.0.7" - "0wrrr0d7lz1v8qqm752mn4gz5l2vpl2kmx4ac3ysvk4mljc924hp")) + (make-openjdk openjdk12 "13.0.13" + "0pxf4dlig61k0pg7amg4mi919hzam7nzwckry01avgq1wj8ambji")) (define-public openjdk14 (make-openjdk @@ -2119,8 +2119,8 @@ blacklisted.certs.pem" (define-public openjdk15 (make-openjdk - openjdk14 "15.0.3" - "168cr08nywp0q3vyj8njkhsmmnyd8rz9r58hk4xhzdzc6bdfkl1i" + openjdk14 "15.0.9" + "1k3x06fv89l84ysjsyw8s89q8blghq85m6xjzv373x6297ln8n7a" (source (origin (inherit (package-source base)) (modules '()) @@ -2137,13 +2137,13 @@ blacklisted.certs.pem" (append `(,openjdk14 "jdk")))))) (define-public openjdk16 - (make-openjdk openjdk15 "16.0.1" - "1ggddsbsar4dj2fycfqqqagqil7prhb30afvq6933rz7pa9apm2f")) + (make-openjdk openjdk15 "16.0.2" + "0587px2qbz07g3xi4a3ya6m630p72dvkxcn0bj1813pxnwvcgigz")) (define-public openjdk17 (make-openjdk - openjdk16 "17.0.3" - "0slmd6ww947gxpp4yr2wmr5z975bg86qh7zqfp2radf2q77ql65b" + openjdk16 "17.0.5" + "1asnysg6kxdkrmb88y6qihdr12ljsyxv0mg6hlcs7cwxgsdlqkfs" (arguments (substitute-keyword-arguments (package-arguments openjdk16) ((#:phases phases) @@ -2155,8 +2155,8 @@ blacklisted.certs.pem" (("^#!.*") "#! java BlockedCertsConverter SHA-256\n")))))))))) (define-public openjdk18 - (make-openjdk openjdk17 "18" - "1bv6bdhkmwvn10l0xy8yi9xibds640hs5zsvx0jp7wrxa3qw4qy8")) + (make-openjdk openjdk17 "18.0.2" + "1yimfdkwpinhg5cf1mcrzk9xvjwnray3cx762kypb9jcwbranjwx")) ;;; Convenience alias to point to the latest version of OpenJDK. (define-public openjdk openjdk18) diff --git a/gnu/packages/julia-jll.scm b/gnu/packages/julia-jll.scm index 594c36b6ce..2b0f644736 100644 --- a/gnu/packages/julia-jll.scm +++ b/gnu/packages/julia-jll.scm @@ -254,7 +254,7 @@ build tree Yggdrasil.") ;; There's a Julia file for each platform, override them all (find-files "src/wrappers/" "\\.jl$"))))))) (inputs - (list ffmpeg)) + (list ffmpeg-4)) (propagated-inputs (list julia-jllwrappers julia-bzip2-jll diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index d2fae6a465..414aba03f0 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -149,7 +149,7 @@ provides functions to run a few automatable checks for Julia packages.") (define-public julia-arrayinterface (package (name "julia-arrayinterface") - (version "3.1.19") + (version "5.0.8") (source (origin (method git-fetch) @@ -158,7 +158,7 @@ provides functions to run a few automatable checks for Julia packages.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0cmldnzvdgmfnrnrzgj6v1mfr2rvk5096392rwmhd3iyx7v0pq33")))) + (base32 "0b0h4ihc8sykd96rn16vpk5kfk0p1si5iim61cixk9x12ma8ia3h")))) (build-system julia-build-system) (arguments ;; XXXX: Unexpected failures for i686, e.g., @@ -168,15 +168,17 @@ provides functions to run a few automatable checks for Julia packages.") (list #:tests? (not (or (%current-target-system) (target-x86-32?))))) (propagated-inputs - (list julia-ifelse + (list julia-compat + julia-ifelse julia-requires - julia-static)) + julia-static-0.6)) (native-inputs (list julia-aqua julia-bandedmatrices julia-blockbandedmatrices julia-ifelse julia-offsetarrays + julia-static-0.6 julia-staticarrays)) (home-page "https://github.com/JuliaArrays/ArrayInterface.jl") (synopsis "Base array interface primitives") @@ -192,7 +194,7 @@ no issues with the upgrade.") (define-public julia-arraylayouts (package (name "julia-arraylayouts") - (version "0.7.6") + (version "0.8.16") (source (origin (method git-fetch) @@ -201,10 +203,20 @@ no issues with the upgrade.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "05q62pks8j23pgbrfny072rrwzrz6q19l68srnjxxv39ncmdmrvg")))) + (base32 "1j11jid4scw9icrbr8g6myp17nabjzmf4f40cichb20lzf1agz8l")))) (build-system julia-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-tests + (lambda _ + (substitute* "test/test_layoutarray.jl" + (("@test all\\(B") "@test_broken all(B"))))))) (propagated-inputs (list julia-fillarrays)) + (native-inputs + (list julia-stablerngs)) (home-page "https://github.com/JuliaMatrices/ArrayLayouts.jl") (synopsis "Array layouts and general fast linear algebra") (description "This package implements a trait-based framework for describing @@ -268,7 +280,7 @@ axis (dimension).") (define-public julia-axisarrays (package (name "julia-axisarrays") - (version "0.4.4") + (version "0.4.6") (source (origin (method git-fetch) @@ -277,7 +289,7 @@ axis (dimension).") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "03kzan1lm4fxfhzv1xjg3ysf6y7nagcc61vfz15kvdrp1dqxlynk")))) + (base32 "1bsd6y866ldfb4072hfm8fvc2k0vy72z2blcwfy2mpj8dlyskx3n")))) (build-system julia-build-system) (propagated-inputs (list julia-rangearrays @@ -299,7 +311,7 @@ axes, allowing column names or interval selections.") (define-public julia-bandedmatrices (package (name "julia-bandedmatrices") - (version "0.16.10") + (version "0.17.9") (source (origin (method git-fetch) @@ -308,13 +320,15 @@ axes, allowing column names or interval selections.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0rlfj9gr9ss621v5kw5b06206yaak21s2vq9vk7r8a7p2ylncism")))) + (base32 "0nrcasjdpwf15z7l2lzyhxjqxlnqk5if78s15sh4gdgxf9kzj3a6")))) (build-system julia-build-system) (propagated-inputs - (list julia-arraylayouts + (list julia-aqua + julia-arraylayouts julia-fillarrays)) (native-inputs - (list julia-genericlinearalgebra)) + (list julia-aqua + julia-genericlinearalgebra)) (home-page "https://github.com/JuliaMatrices/BandedMatrices.jl") (synopsis "Julia package for representing banded matrices") (description "This package supports representing banded matrices by only @@ -517,7 +531,7 @@ and amino acids that are used ny otherBioJulia packages.") (define-public julia-blockarrays (package (name "julia-blockarrays") - (version "0.16.8") + (version "0.16.23") (source (origin (method git-fetch) @@ -526,7 +540,7 @@ and amino acids that are used ny otherBioJulia packages.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1by26036fk9mawmcgqxpwizgbs398v9p6vrbsgg7h6llqn3q9iw1")))) + (base32 "14gby25ixbp9ha0y2aj4gnjkzha4c7v4y3sicicgbkysnq921qd0")))) (build-system julia-build-system) (arguments (list @@ -542,7 +556,7 @@ and amino acids that are used ny otherBioJulia packages.") (list julia-arraylayouts julia-fillarrays)) (native-inputs - (list julia-lazyarrays + (list julia-aqua julia-offsetarrays julia-staticarrays)) (home-page "https://github.com/JuliaArrays/BlockArrays.jl") @@ -563,7 +577,7 @@ access to the full matrix to use in in for example a linear solver.") (define-public julia-blockbandedmatrices (package (name "julia-blockbandedmatrices") - (version "0.10.7") + (version "0.11.9") (source (origin (method git-fetch) @@ -572,7 +586,7 @@ access to the full matrix to use in in for example a linear solver.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "10n1r6kmmv2wa307jfg9y2m6p16j8hngjp3fjavpbdy1r5haasm9")))) + (base32 "1qag5awl8cmsyhpajv6llhpqbzxfii1bacppbjvmb1fqs9s0lifd")))) (build-system julia-build-system) (propagated-inputs (list julia-arraylayouts @@ -591,7 +605,7 @@ A @code{BlockBandedMatrix} is a subtype of @code{BlockMatrix} of (define-public julia-bson (package (name "julia-bson") - (version "0.3.3") + (version "0.3.6") (source (origin (method git-fetch) @@ -600,7 +614,7 @@ A @code{BlockBandedMatrix} is a subtype of @code{BlockMatrix} of (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1l5608ma2ys7v2gpcqbiv9mwfc6yrlqkihrfx1pf7fgv5llhd4fn")))) + (base32 "1accra3casg66fhn5r07hz3rgs7qf9ld9ajnz8f80aid85zyp891")))) (build-system julia-build-system) (native-inputs (list julia-dataframes)) @@ -669,7 +683,7 @@ methods.") (define-public julia-categoricalarrays (package (name "julia-categoricalarrays") - (version "0.9.7") + (version "0.10.7") (source (origin (method git-fetch) @@ -678,16 +692,33 @@ methods.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1bcfylxdaizgasnmlkjjkf4dgfvy2y9ycnphw2d0z6mm9vx3n04x")))) + (base32 "17fix7wlwqbif5jbcrbi0a0ghdl3429km3l6lqa962p7jf1gjd2d")))) (build-system julia-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-tests + (lambda _ + ;; Plots.jl isn't packaged yet. + (substitute* "test/runtests.jl" + ((".*13_arraycommon\\.jl.*") ""))))))) (native-inputs - (list julia-pooledarrays)) + (list julia-json + julia-json3 + ;julia-plots + julia-pooledarrays + julia-recipesbase + julia-sentinelarrays + julia-structtypes)) (propagated-inputs (list julia-dataapi julia-json julia-json3 julia-missings julia-recipesbase + julia-requires + julia-sentinelarrays julia-structtypes)) (home-page "https://github.com/JuliaData/CategoricalArrays.jl") (synopsis "Arrays for working with categorical data") @@ -718,7 +749,7 @@ variables, both with unordered (nominal variables) and ordered categories (define-public julia-chainrules (package (name "julia-chainrules") - (version "1.1.0") + (version "1.35.0") (source (origin (method git-fetch) @@ -727,18 +758,19 @@ variables, both with unordered (nominal variables) and ordered categories (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0if93pd3b3scg2x3gmk1cbwjk0ax1n792vy8c38y3xl7jpd5cb70")))) + (base32 "17irgz3gamyrmzsjhq4s1n1sblvhkj10yg5y5y53yr631cl2fr6a")))) (build-system julia-build-system) - (inputs ;required for test - (list julia-chainrulestestutils - julia-finitedifferences - julia-nanmath - julia-specialfunctions)) + (arguments + (list #:tests? #f)) ; JuliaInterpreter.jl not packaged yet. + ;(inputs ;required for test + ; (list julia-chainrulestestutils + ; julia-finitedifferences + ; julia-juliainterpreter)) (propagated-inputs (list julia-chainrulescore julia-compat - julia-reexport - julia-requires)) + julia-irrationalconstants + julia-realdot)) (home-page "https://github.com/JuliaDiff/ChainRules.jl") (synopsis "Common utilities for automatic differentiation") (description "The is package provides a variety of common utilities that @@ -749,7 +781,7 @@ execute forward-, reverse-, and mixed-mode primitives.") (define-public julia-chainrulescore (package (name "julia-chainrulescore") - (version "1.0.2") + (version "1.12.2") (source (origin (method git-fetch) @@ -758,7 +790,7 @@ execute forward-, reverse-, and mixed-mode primitives.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1866xv30h1bi7f2m993nljzf58wwmv8zlgn6ffn9j3wckch1nfpb")))) + (base32 "0lgfcsb7f6c7knhiz5dbqh8x47d370pn71y9ys2y6763g0b4pm61")))) (build-system julia-build-system) (arguments (list @@ -766,7 +798,9 @@ execute forward-, reverse-, and mixed-mode primitives.") #~(modify-phases %standard-phases (add-after 'unpack 'adjust-tests (lambda _ - (substitute* "test/differentials/composite.jl" + (substitute* "test/tangent_types/tangent.jl" + ;; This test is disabled after the release. + (("@test haskey.*Float.*") "") (("@test (.*construct)" _ test) (string-append "@test_broken " test)))))))) (inputs ;required for tests @@ -783,7 +817,7 @@ sensitivities for functions without the need to depend on ChainRules itself.") (define-public julia-chainrulestestutils (package (name "julia-chainrulestestutils") - (version "1.2.3") + (version "1.5.1") (source (origin (method git-fetch) @@ -792,7 +826,7 @@ sensitivities for functions without the need to depend on ChainRules itself.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1vlkyp72d514gyb4k3yhjl1g7f24ncmz61j56p4sdi9f76rk9fx9")))) + (base32 "0vk7cpp049pjj7g5zqxr7djp5v0swhvhq3wvkxyw8m8xvqlnfncc")))) (build-system julia-build-system) (propagated-inputs (list julia-chainrulescore @@ -812,6 +846,33 @@ can be a test-only dependency, allowing it to have potentially heavy dependencies, while keeping @code{ChainRulesCore.jl} as light-weight as possible.") (license license:expat))) +(define-public julia-changesofvariables + (package + (name "julia-changesofvariables") + (version "0.1.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaMath/ChangesOfVariables.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1migyhiqr1rq496302wlkb0s5l8zwqs97ajfkip0jzpvrk2s2xxy")))) + (build-system julia-build-system) + (arguments + ;; Pulls in ForwardDiff, would have a cyclical + ;; dependency with LogExpFunctions. + (list #:tests? #f)) + (propagated-inputs + (list julia-chainrulescore)) + (home-page "https://github.com/JuliaMath/ChangesOfVariables.jl") + (synopsis "Interface for transformation functions in Julia") + (description "This package defines functionality to calculate volume element +changes for functions that perform a change of variables (like coordinate +transformations).") + (license license:expat))) + (define-public julia-codeczlib (package (name "julia-codeczlib") @@ -838,7 +899,7 @@ dependencies, while keeping @code{ChainRulesCore.jl} as light-weight as possible (define-public julia-colors (package (name "julia-colors") - (version "0.12.8") + (version "0.12.9") (source (origin (method git-fetch) @@ -847,12 +908,22 @@ dependencies, while keeping @code{ChainRulesCore.jl} as light-weight as possible (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0kx3hq7rf8p5zx6ly9k5j90zijmc7yrwmy96cgkl2ibdfbnhmya3")))) + (base32 "1g0fvvz09pfk6jxqrdplwkw1yywcqvwjd3ga24hblq71mah367n6")))) (build-system julia-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-tests + (lambda _ + (substitute* "test/runtests.jl" + ((".*detect_ambiguities.*") ""))))))) (propagated-inputs (list julia-colortypes julia-fixedpointnumbers julia-reexport)) + (native-inputs + (list julia-abstracttrees)) (home-page "https://github.com/JuliaGraphics/Colors.jl") (synopsis "Tools for dealing with color") (description "This package provides a wide array of functions for dealing @@ -923,7 +994,7 @@ with.") (define-public julia-colorvectorspace (package (name "julia-colorvectorspace") - (version "0.9.7") + (version "0.9.9") (source (origin (method git-fetch) @@ -932,10 +1003,14 @@ with.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "02gk7f5g5wjxdasbjf8bvv1m7clksh7mw1xmygjdirjz1q0d6dwi")))) + (base32 "07scws2bn2z3f2crhnx1zxk3zk3vzfv9iz6lv3i9785nplmsgdx9")))) (build-system julia-build-system) + (arguments + (list + #:tests? #f)) ; TODO: Reenable the test suite. (propagated-inputs (list julia-colortypes + julia-fixedpointnumbers julia-specialfunctions julia-tensorcore)) (native-inputs @@ -1089,28 +1164,31 @@ for construction of objects.") (license license:expat))) (define-public julia-coordinatetransformations - (package - (name "julia-coordinatetransformations") - (version "0.6.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/JuliaGeometry/CoordinateTransformations.jl") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "15zbkn32v7xlz7559s0r5a0vkwmjwsswxaqpzijly4lky4jnp33d")))) - (build-system julia-build-system) - (propagated-inputs - (list julia-staticarrays)) - (native-inputs - (list julia-documenter - julia-forwarddiff - julia-unitful)) - (home-page "https://github.com/JuliaGeometry/CoordinateTransformations.jl") - (synopsis "Coordinate transformations in Julia") - (description "@code{CoordinateTransformations} is a Julia package to manage + ;; Test suite fixed after the last release. + (let ((commit "78f5a5cc8cf77f21407b4f175673fa4f6bf86633") + (revision "1")) + (package + (name "julia-coordinatetransformations") + (version (git-version "0.6.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaGeometry/CoordinateTransformations.jl") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "026g3b2m2z509jdlqvd46yhnhg8y6m00plr3k7cjlbzrfi2yjjn8")))) + (build-system julia-build-system) + (propagated-inputs + (list julia-staticarrays)) + (native-inputs + (list julia-documenter + julia-forwarddiff + julia-unitful)) + (home-page "https://github.com/JuliaGeometry/CoordinateTransformations.jl") + (synopsis "Coordinate transformations in Julia") + (description "@code{CoordinateTransformations} is a Julia package to manage simple or complex networks of coordinate system transformations. Transformations can be easily applied, inverted, composed, and differentiated (both with respect to the input coordinates and with respect to transformation @@ -1119,7 +1197,7 @@ light-weight and efficient enough for, e.g., real-time graphical applications, while support for both explicit and automatic differentiation makes it easy to perform optimization and therefore ideal for computer vision applications such as SLAM (simultaneous localization and mapping).") - (license license:expat))) + (license license:expat)))) (define-public julia-crayons (package @@ -1189,7 +1267,7 @@ as comma-delimited (csv), tab-delimited (tsv), or otherwise.") (define-public julia-dataapi (package (name "julia-dataapi") - (version "1.7.0") + (version "1.13.0") (source (origin (method git-fetch) @@ -1198,7 +1276,7 @@ as comma-delimited (csv), tab-delimited (tsv), or otherwise.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0swk31p83fycz5cdj4fg6b0wfqj473lnx94q2fl7ybxkkc6afba7")))) + (base32 "1x5pdpjlbk29766ark7rmzjbl0rhxmsb1cp04lc891aknh30rn3i")))) (build-system julia-build-system) (home-page "https://github.com/JuliaData/DataAPI.jl") (synopsis "Data-focused namespace for packages to share functions") @@ -1212,7 +1290,7 @@ dependency on it.") (define-public julia-dataframes (package (name "julia-dataframes") - (version "1.2.2") + (version "1.3.6") (source (origin (method git-fetch) @@ -1221,7 +1299,7 @@ dependency on it.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1bk0amrghgjrkyn1mm4ac23swwbgszl1d0qyl9137qj5zvv9dasp")))) + (base32 "01ybc1ckn5wi7kwp29g5ms4m3g650856z4xv71racbdr8475pmg5")))) (build-system julia-build-system) (arguments (list @@ -1238,24 +1316,33 @@ dependency on it.") (string-append all "return\n"))) (substitute* "test/join.jl" (("test (levels\\(outerjoin\\(B)" _ test) - (string-append "test_nowarn " test)))))))) + (string-append "test_nowarn " test))) + ;; Compat with julia-1.8, remove with next package update. + (substitute* "test/indexing_offset.jl" + (("@test_throws ErrorException") + "@test_throws Base.CanonicalIndexError"))))))) (propagated-inputs - (list julia-dataapi + (list julia-categoricalarrays + julia-compat + julia-dataapi julia-invertedindices julia-iteratorinterfaceextensions julia-missings julia-pooledarrays julia-prettytables julia-reexport + julia-shiftedarrays julia-sortingalgorithms julia-tables - julia-tabletraits)) + julia-tabletraits + julia-unitful)) (native-inputs (list julia-categoricalarrays julia-combinatorics julia-datastructures julia-datavalues julia-offsetarrays + julia-shiftedarrays julia-unitful)) (home-page "https://dataframes.juliadata.org/stable/") (synopsis "In-memory tabular data") @@ -1527,7 +1614,7 @@ valuable enough at this time.") (inputs (list python-wrapper)) (native-inputs - (list git-minimal + (list git-minimal/fixed ;needed for the "Utilities" test julia-documentermarkdown julia-documentertools)) (home-page "https://juliadocs.github.io/Documenter.jl") @@ -1630,7 +1717,7 @@ be passed to in-place differentiation methods instead of an output buffer.") (define-public julia-diffrules (package (name "julia-diffrules") - (version "1.0.2") + (version "1.12.2") (source (origin (method git-fetch) @@ -1639,11 +1726,15 @@ be passed to in-place differentiation methods instead of an output buffer.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0cwjvj4gma7924fm3yas0nf0jlnwwx4v7fi79ii3s290lkdldzfl")))) + (base32 "0l983kzy01y7qqw42pi0ihpvx3yzfnwrhcmk38avw7y513qlm7vf")))) (build-system julia-build-system) (propagated-inputs - (list julia-nanmath + (list julia-irrationalconstants + julia-logexpfunctions + julia-nanmath julia-specialfunctions)) + (native-inputs + (list julia-finitedifferences)) (home-page "https://github.com/JuliaDiff/DiffRules.jl") (synopsis "Primitive differentiation rules") (description "This package provides primitive differentiation rules that @@ -1710,7 +1801,7 @@ combinations of dual numbers with predefined Julia numeric types.") (define-public julia-ellipsisnotation (package (name "julia-ellipsisnotation") - (version "1.1.0") + (version "1.6.0") (source (origin (method git-fetch) @@ -1719,17 +1810,8 @@ combinations of dual numbers with predefined Julia numeric types.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0py46kxl702r8pw3v7x4cqllf7yc91b0dr7vb60xh2qi7d6y3jc7")))) + (base32 "0l4fc180chhxlq9d67122c0lgq2hfsxsmcgml2bfl2rnh13gya2b")))) (build-system julia-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-after 'link-depot 'adjust-test-suite - (lambda _ - (substitute* "test/runtests.jl" - ;; Seems to not play nicely with Julia-1.6. - ((".*basic.jl.*") ""))))))) (propagated-inputs (list julia-arrayinterface)) (home-page "https://github.com/ChrisRackauckas/EllipsisNotation.jl") @@ -1915,7 +1997,7 @@ working with filesystem paths in Julia.") (define-public julia-fillarrays (package (name "julia-fillarrays") - (version "0.12.6") + (version "0.13.6") (source (origin (method git-fetch) @@ -1924,8 +2006,10 @@ working with filesystem paths in Julia.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1sx96pzrgyh8k7x2w8vmyi6cazlmp7rg1n7wbl47qfzqjggka6kz")))) + (base32 "1c4i8awmw9qq8dqfhxwjh76mc1nlmzrl5j754fpnbajv8p49gdv5")))) (build-system julia-build-system) + (propagated-inputs + (list julia-aqua)) (inputs ;required by tests (list julia-staticarrays)) (home-page "https://github.com/JuliaArrays/FillArrays.jl") @@ -2067,7 +2151,7 @@ c-style numerical formatting.") (define-public julia-forwarddiff (package (name "julia-forwarddiff") - (version "0.10.18") + (version "0.10.34") (source (origin (method git-fetch) @@ -2076,7 +2160,7 @@ c-style numerical formatting.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1vb46x8mcn61g1l14qrk22c043khg2ml4q1ci7h4k2v34f2ak5fs")))) + (base32 "1lwjw2jzkffwk06hfc30vxhv36ng3gf12qjc43swmqiakkd3m5jx")))) (build-system julia-build-system) (arguments ;; XXXX: Unexpected and non-deterministic failures for i686, e.g., @@ -2089,9 +2173,11 @@ c-style numerical formatting.") (list julia-calculus julia-difftests)) (propagated-inputs - (list julia-commonsubexpressions + (list julia-calculus + julia-commonsubexpressions julia-diffresults julia-diffrules + julia-difftests julia-nanmath julia-specialfunctions julia-staticarrays)) @@ -2135,7 +2221,7 @@ arbitrary functions.") (define-public julia-functors (package (name "julia-functors") - (version "0.2.7") + (version "0.4.1") (source (origin (method git-fetch) @@ -2144,8 +2230,12 @@ arbitrary functions.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "03ry1wn1y2jssq65l29bi6q4ki041aa6gl1nd2w6cgl00k2mrxf3")))) + (base32 "00rzbj2rs2lq91wz8qyxq14bg7p9i49dq7y44fvxn6jaikha2ymw")))) (build-system julia-build-system) + (native-inputs + (list julia-documenter + julia-staticarrays + julia-zygote)) (home-page "https://fluxml.ai/Functors.jl/stable/") (synopsis "Design pattern for structures as in machine learning") (description "This package provides tools to express a design pattern for @@ -2356,7 +2446,7 @@ visualisation applications.") (define-public julia-graphics (package (name "julia-graphics") - (version "1.1.0") + (version "1.1.2") (source (origin (method git-fetch) @@ -2365,7 +2455,7 @@ visualisation applications.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "10h1s09v7qkvrjr6l678zamb1p248n8jv4rrwkf8g7d2bpfz9amn")))) + (base32 "083fppcbmchgnqp4xqdsd4asavq51jq31w8ak35ns701534hr82p")))) (build-system julia-build-system) (propagated-inputs (list julia-colors @@ -2460,32 +2550,6 @@ library for parsing HTML.") implementing both a client and a server.") (license license:expat))) -(define-public julia-identityranges - (package - (name "julia-identityranges") - (version "0.3.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/JuliaArrays/IdentityRanges.jl") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0jvl4xn8f8k70sn473li5q62wbiycl5qi25b5k456h3a0j1lbiml")))) - (build-system julia-build-system) - (propagated-inputs - (list julia-offsetarrays)) - (home-page "https://github.com/JuliaArrays/IdentityRanges.jl") - (synopsis "Ranges that preserve indices of views") - (description "@code{IdentityRanges} are Julia-language a helper type for -creating \"views\" of arrays. They are a custom type of AbstractUnitRange that -makes it easy to preserve the indices of array views. The key property of an -@code{IdentityRange r} is that @code{r[i] == i} (hence the name of the -type/package), and that they support arbitrary start/stop indices (i.e., not -just starting at 1).") - (license license:expat))) - (define-public julia-ifelse (package (name "julia-ifelse") @@ -2509,7 +2573,7 @@ conditional ifelse. It is similar to @code{Core.ifelse} but it is extendable.") (define-public julia-imageaxes (package (name "julia-imageaxes") - (version "0.6.9") + (version "0.6.10") (source (origin (method git-fetch) @@ -2518,15 +2582,27 @@ conditional ifelse. It is similar to @code{Core.ifelse} but it is extendable.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "15zqxani1jjh8849s7rdps6b6prqdwv8yxx893y536vkpk7i07qd")))) + (base32 "15f3y46vcr88fplr7rlibrm3k852p8rzwid5dgmbhc03a8xqd50s")))) (build-system julia-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-tests + (lambda _ + (substitute* "test/runtests.jl" + ;; Skip the constantly failing grayscale test. + (("@test summary") "@test_broken summary"))))))) (propagated-inputs (list julia-axisarrays + julia-imagebase julia-imagecore julia-reexport julia-simpletraits)) (native-inputs - (list julia-unitful)) + (list julia-aqua + julia-documenter + julia-unitful)) (home-page "https://github.com/JuliaImages/ImageAxes.jl") (synopsis "Julia package for giving \"meaning\" to the axes of an image") (description "This small package supports the representation of images as @@ -2537,7 +2613,7 @@ such arrays easy via traits.") (define-public julia-imagebase (package (name "julia-imagebase") - (version "0.1.1") + (version "0.1.5") (source (origin (method git-fetch) @@ -2546,7 +2622,7 @@ such arrays easy via traits.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1n63f2zs6ail9pcl7rzgv3l0z8v1idjsaza3zgvgy7iacxsdpcj2")))) + (base32 "00gi268jsyhlkadkkbyiffph6c8yb7zw34px76n6hs7dkfzp6jm3")))) (build-system julia-build-system) (arguments (list #:tests? #f)) ; Cycle with ImageMagick.jl. @@ -2554,9 +2630,14 @@ such arrays easy via traits.") (list julia-imagecore julia-reexport)) ;(native-inputs - ; `(("julia-imagemagick" ,julia-imagemagick) - ; ("julia-offsetarrays" ,julia-offsetarrays) - ; ("julia-testimages" ,julia-testimages))) + ; (list julia-aqua + ; julia-documenter + ; julia-imagefiltering + ; julia-imageio + ; julia-imagemagick + ; julia-offsetarrays + ; jula-statistics + ; julia-testimages)) (home-page "https://github.com/JuliaImages/ImageBase.jl") (synopsis "Wrapper package around ImageCore") (description "This is a twin package to @code{ImageCore} with functions that @@ -2568,7 +2649,7 @@ dependencies.") (define-public julia-imagecore (package (name "julia-imagecore") - (version "0.9.1") + (version "0.9.4") (source (origin (method git-fetch) @@ -2577,7 +2658,7 @@ dependencies.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0h9m3pl3wic1jrgaqkdifz24cya5vxd3m6qdmm37pxg2y2ii2vcq")))) + (base32 "0a6m3cszgh2bfsgs08i64f1h1pwh6by4267rvwyvdk470z0ayc8q")))) (build-system julia-build-system) (arguments (list #:tests? #f)) ; Cycle with ImageMagick.jl. @@ -2594,7 +2675,7 @@ dependencies.") julia-reexport)) ;(native-inputs ; `(("julia-aqua" ,julia-aqua) - ; ("julia-colorvectorspace" ,julia-colorvectorspace) + ; ("julia-blockarrays" ,julia-blockarrays) ; ("julia-documenter" ,julia-documenter) ; ("julia-fftw" ,julia-fftw) ; ("julia-imageinterminal" ,julia-imageinterminal) @@ -2694,7 +2775,7 @@ It was split off from @code{Images.jl} to make image I/O more modular.") (define-public julia-imagemetadata (package (name "julia-imagemetadata") - (version "0.9.6") + (version "0.9.8") (source (origin (method git-fetch) @@ -2703,15 +2784,26 @@ It was split off from @code{Images.jl} to make image I/O more modular.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0iv154ms370xgcr56bwsjl13iwmy671cbxjl9ld5yfj85pclcwi1")))) + (base32 "0rdzvya5szlkg5ds3fw7lpk47hn16655i6265czwf8fxs3hb1gvf")))) (build-system julia-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-tests + (lambda _ + (substitute* "test/operations.jl" + ;; Skip the constantly failing greyscale test. + (("\\@testset \\\"operations.*" all) + (string-append all " return\n")))))))) (propagated-inputs (list julia-axisarrays julia-imageaxes - julia-imagecore - julia-indirectarrays)) + julia-imagebase + julia-imagecore)) (native-inputs - (list julia-offsetarrays + (list julia-indirectarrays + julia-offsetarrays julia-simpletraits julia-unitful)) (home-page "https://github.com/JuliaImages/ImageMetadata.jl") @@ -2761,7 +2853,7 @@ inline presentation of greyscale or color images.") (define-public julia-imagetransformations (package (name "julia-imagetransformations") - (version "0.8.12") + (version "0.9.5") (source (origin (method git-fetch) @@ -2770,7 +2862,7 @@ inline presentation of greyscale or color images.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0i8gw68hljshsy9wdl5mrpbb31irhmayqyglsxi7jwm88iy9pxhm")))) + (base32 "1wavfs5chq8s9ma0k8fxfaqam4560w4l2j3lhbd9aqsjlgvi3swc")))) (build-system julia-build-system) (arguments (list #:tests? #f)) ; Cycle with ImageMagick.jl. @@ -2778,16 +2870,19 @@ inline presentation of greyscale or color images.") (list julia-axisalgorithms julia-colorvectorspace julia-coordinatetransformations - julia-identityranges + julia-imagebase julia-imagecore julia-interpolations julia-offsetarrays julia-rotations julia-staticarrays)) ;(native-inputs - ; `(("julia-imagemagick" ,julia-imagemagick) - ; ("julia-referencetests" ,julia-referencetests) - ; ("julia-testimages" ,julia-testimages))) + ; (list julia-endpointranges + ; julia-imageio + ; julia-imagemagick + ; julia-referencetests + ; julia-tau + ; julia-testimages)) (home-page "https://github.com/JuliaImages/ImageTransformations.jl") (synopsis "Geometric transformations on images for Julia") (description "This package provides support for image resizing, image @@ -2826,6 +2921,9 @@ number of occurrences of bit @code{b} in @code{bv[1:i]} index of i-th occurrence of @code{b} in @code{bv}. @end itemize and other shortcuts or types.") + ;; There are plenty of places in the code which rely on the + ;; length of an Integer in a 64-bit system. + (supported-systems %64bit-supported-systems) (license license:expat))) (define-public julia-indexing @@ -2958,7 +3056,7 @@ each one has a fixed size. Currently support inline strings from 1 byte up to (define-public julia-interpolations (package (name "julia-interpolations") - (version "0.13.3") + (version "0.13.6") (source (origin (method git-fetch) @@ -2967,7 +3065,7 @@ each one has a fixed size. Currently support inline strings from 1 byte up to (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1236c20k388qlh7k74mhf7hkbn0vf7ss8b1rgh1a6aj0234ayfnc")))) + (base32 "1skzvgd63rhj1zpn45gi3974rbrir9p2y17zyfmkz6c6nird7bkj")))) (build-system julia-build-system) (arguments (list @@ -2980,16 +3078,19 @@ each one has a fixed size. Currently support inline strings from 1 byte up to (target-x86-32?))))) (propagated-inputs (list julia-axisalgorithms + julia-chainrulescore julia-offsetarrays julia-ratios julia-requires julia-staticarrays julia-woodburymatrices)) (native-inputs - (list julia-dualnumbers + (list julia-colorvectorspace + julia-dualnumbers julia-forwarddiff julia-offsetarrays - julia-unitful julia-zygote)) + julia-unitful + julia-zygote)) (home-page "https://github.com/JuliaMath/Interpolations.jl") (synopsis "Continuous interpolation of discrete datasets") (description "This package implements a variety of interpolation schemes for @@ -3063,10 +3164,31 @@ container mapping @code{(K,V)} pairs via the type @code{IntervalTree{K, V}}. The type @code{K} may be any ordered type.") (license license:expat)))) +(define-public julia-inversefunctions + (package + (name "julia-inversefunctions") + (version "0.1.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaMath/InverseFunctions.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05g9f6i735x7syfr56l4yf4fy71kgdisjc6cfxi4jkf46iq86a69")))) + (build-system julia-build-system) + (native-inputs + (list julia-documenter)) + (home-page "https://github.com/JuliaMath/InverseFunctions.jl") + (synopsis "Interface for function inversion") + (description "This package provides an interface to invert functions.") + (license license:expat))) + (define-public julia-invertedindices (package (name "julia-invertedindices") - (version "1.0.0") + (version "1.1.0") (source (origin (method git-fetch) @@ -3075,7 +3197,7 @@ The type @code{K} may be any ordered type.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1179z20yxnkyziip7gn26wr1g3k3ssl1ci7pig3khc900f62di46")))) + (base32 "15ym4dzyi4fkz0dznni032w3c84zmfa6mrzj2ljqvlqx1i6agqis")))) (build-system julia-build-system) (native-inputs (list julia-offsetarrays)) @@ -3107,6 +3229,52 @@ function, which captures the standard output and standard error, and returns it as a string together with the return value.") (license license:expat))) +(define-public julia-irrationalconstants + (package + (name "julia-irrationalconstants") + (version "0.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaMath/IrrationalConstants.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1a007iyh26x67a1bj6fcz7pfxa43kn2v7jpmnz727jkk3xgppg2s")))) + (build-system julia-build-system) + (home-page "https://github.com/JuliaMath/IrrationalConstants.jl") + (synopsis "Additional irrationals for Julia") + (description "This package provides these irrational constants: +@itemize +@item +@item twoπ = 2π +@item fourπ = 4π +@item halfπ = π / 2 +@item quartπ = π / 4 +@item invπ = 1 / π +@item twoinvπ = 2 / π +@item fourinvπ = 4 / π +@item inv2π = 1 / (2π) +@item inv4π = 1 / (4π) +@item sqrt2 = √2 +@item sqrt3 = √3 +@item sqrtπ = √π +@item sqrt2π = √2π +@item sqrt4π = √4π +@item sqrthalfπ = √(π / 2) +@item invsqrt2 = 1 / √2 +@item invsqrtπ = 1 / √π +@item invsqrt2π = 1 / √2π +@item loghalf = log(1 / 2) +@item logtwo = log(2) +@item logten = log(10) +@item logπ = log(π) +@item log2π = log(2π) +@item log4π = log(4π) +@end itemize") + (license license:expat))) + (define-public julia-irtools (package (name "julia-irtools") @@ -3293,7 +3461,7 @@ equations in string literals in the Julia language.") (define-public julia-lazyarrays (package (name "julia-lazyarrays") - (version "0.22.2") + (version "0.22.16") (source (origin (method git-fetch) @@ -3302,7 +3470,7 @@ equations in string literals in the Julia language.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "17rhlrmgfvdw8w62pg32ikr9j4xy2ylr7mx7ar0hnpzryv929rp5")))) + (base32 "127yld4f26lchw5jwp30g2jkjbm7narfsxwcbggy7dfp43s531c5")))) (build-system julia-build-system) (arguments (list @@ -3315,13 +3483,15 @@ equations in string literals in the Julia language.") (substitute* "test/multests.jl" (("Int64") "Int32")))))))) (propagated-inputs - (list julia-arraylayouts + (list julia-aqua + julia-arraylayouts julia-fillarrays julia-macrotools julia-matrixfactorizations julia-staticarrays)) (native-inputs - (list julia-tracker)) + (list julia-aqua + julia-tracker)) (home-page "https://github.com/JuliaArrays/LazyArrays.jl") (synopsis "Lazy arrays and linear algebra") (description "This package supports lazy analogues of array operations like @@ -3376,7 +3546,7 @@ implemented in Julia.") (define-public julia-logexpfunctions (package (name "julia-logexpfunctions") - (version "0.2.4") + (version "0.3.17") (source (origin (method git-fetch) @@ -3385,12 +3555,17 @@ implemented in Julia.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0rvms3mmq8a1viqlyzdgs2ccddcy6j0c677dlb8m5nk6hkiwr16n")))) + (base32 "0272c1256r42y6g4wsjmgpwcl5s7z98b8sfmyycckqf0zp5dzxg4")))) (build-system julia-build-system) (propagated-inputs - (list julia-docstringextensions)) + (list julia-chainrulescore + julia-changesofvariables + julia-docstringextensions + julia-inversefunctions + julia-irrationalconstants)) (native-inputs - (list julia-offsetarrays)) + (list julia-chainrulestestutils + julia-offsetarrays)) (home-page "https://github.com/JuliaStats/LogExpFunctions.jl") (synopsis "Special functions based on @code{log} and @code{exp}") (description "Various special functions based on log and exp moved from @@ -3423,7 +3598,7 @@ that let you do deep transformations of code.") (define-public julia-mappedarrays (package (name "julia-mappedarrays") - (version "0.4.0") + (version "0.4.1") (source (origin (method git-fetch) @@ -3432,22 +3607,36 @@ that let you do deep transformations of code.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0l5adird8m1cmnsxwhzi5hcr7q9bm1rf7a6018zc7kcn2yxdshy3")))) + (base32 "08kb28dv1zzqbbxblhyllgs4sjxyp76dgjqhdizcq4zg4i1kls6p")) + (snippet + #~(begin + (use-modules (guix build utils)) + ;; Fix deprecation warning + ;; https://github.com/JuliaArrays/MappedArrays.jl/pull/51 + (substitute* "src/MappedArrays.jl" + (("Vararg\\{<:AbstractArray") "Vararg{AbstractArray")) + ;; Fix test failures + ;; https://github.com/JuliaArrays/MappedArrays.jl/pull/50 + (substitute* "test/runtests.jl" + (("_zero\\(x\\) = x > 0 \\? x : 0") + "_zero(x) = ismissing(x) ? x : (x > 0 ? x : 0)")))))) (build-system julia-build-system) (arguments (list #:phases - (if (target-64bit?) - #~%standard-phases - #~(modify-phases %standard-phases - (add-after 'unpack 'fix-tests-int32-i686 - (lambda _ - (substitute* "test/runtests.jl" - (("Int64") "Int32")))))))) + #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-tests + (lambda _ + (substitute* "test/runtests.jl" + ((".*@test_throws ErrorException b.*") "")) + + (when #$(not (target-64bit?)) + (substitute* "test/runtests.jl" + (("Int64") "Int32")))))))) (propagated-inputs (list julia-fixedpointnumbers)) (native-inputs - (list julia-colortypes + (list julia-colors julia-fixedpointnumbers julia-offsetarrays)) (home-page "https://github.com/JuliaArrays/MappedArrays.jl") @@ -3463,7 +3652,7 @@ comes from the fact that @code{M == map(f, A)}.") (define-public julia-matrixfactorizations (package (name "julia-matrixfactorizations") - (version "0.8.4") + (version "0.9.3") (source (origin (method git-fetch) @@ -3472,7 +3661,7 @@ comes from the fact that @code{M == map(f, A)}.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "15zvcv2l4iqmjpnqjyx2kry7a85p652nbjy9pj3wq0piksqcz4jb")))) + (base32 "0sqmig01irmvh617h2rsw44hl39qwv2913nlqjsdz9si5vli2hsl")))) (build-system julia-build-system) (arguments (list @@ -3480,10 +3669,8 @@ comes from the fact that @code{M == map(f, A)}.") #~(modify-phases %standard-phases (add-after 'link-depot 'skip-failing-test (lambda _ - ;; Tests with math functions are hard. (substitute* "test/test_ul.jl" - (("@test @inferred\\(logdet") "@test @test_nowarn(logdet") - ;; Also skip the REPL test. + ;; Don't warn on the REPL test. (("test String") "test_nowarn String"))))))) (propagated-inputs (list julia-arraylayouts)) @@ -3797,7 +3984,7 @@ still being completely generic (define-public julia-nanmath (package (name "julia-nanmath") - (version "0.3.5") + (version "0.3.7") (source (origin (method git-fetch) @@ -3806,7 +3993,7 @@ still being completely generic (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1hczhz00qj99w63vp627kwk02l2sr2qmzc2rkwwkdwvzy670p25q")))) + (base32 "1fwqa2fzl84a86ppjb2xaqh93b5gg42zyrclbjfdm5l0044hwii6")))) (build-system julia-build-system) (home-page "https://github.com/mlubin/NaNMath.jl") (synopsis "Implementations of basic math functions") @@ -3846,7 +4033,7 @@ interface to interact with these types.") (define-public julia-nnlib (package (name "julia-nnlib") - (version "0.7.29") + (version "0.7.34") (source (origin (method git-fetch) @@ -3855,21 +4042,26 @@ interface to interact with these types.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "16vn5w5274kcywh1xp0zqjk5q10xrk125aznz5av6wifwrvghk8s")))) + (base32 "1xzlh7pj6aqmbkrskqgwvifprg9a6xkkdh00ls6f6xnzqfrnhwna")))) (build-system julia-build-system) (arguments (list #:phases #~(modify-phases %standard-phases - (add-after 'link-depot 'skip-cuda-tests + (add-after 'link-depot 'skip-some-tests (lambda _ (substitute* "test/runtests.jl" + ;; Skip the CUDA tests (("using CUDA") "") - (("&& CUDA\\.functional\\(\\)") "")) + (("&& CUDA\\.functional\\(\\)") "") + + ;; UnicodePlots is only used for the doctests + (("if VERSION <.*") "if true\n")) (setenv "NNLIB_TEST_CUDA" "false")))))) (propagated-inputs (list julia-adapt julia-chainrulescore + julia-compat julia-requires)) (native-inputs (list julia-chainrulestestutils @@ -3929,6 +4121,33 @@ doesn't provide any other \"high-level\" functionality like layers or AD.") optimization of functions.") (license license:expat))) +(define-public julia-optimisers + (package + (name "julia-optimisers") + (version "0.2.13") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/FluxML/Optimisers.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1xs51r365l6r56rpm08kba00nfcl5jlglwy8494w06vbi22ysbq7")))) + (build-system julia-build-system) + (propagated-inputs + (list julia-chainrulescore + julia-functors + julia-zygote)) + (native-inputs + (list julia-staticarrays + julia-zygote)) + (home-page "https://github.com/FluxML/Optimisers.jl") + (synopsis "Optimisers and utilities for learning loops") + (description "@code{Optimisers.jl} defines many standard gradient-based +optimisation rules, and tools for applying them to deeply nested models.") + (license license:expat))) + (define-public julia-optimtestproblems (package (name "julia-optimtestproblems") @@ -3982,7 +4201,7 @@ which they were added to the collection.") (define-public julia-offsetarrays (package (name "julia-offsetarrays") - (version "1.10.3") + (version "1.12.8") (source (origin (method git-fetch) @@ -3991,7 +4210,7 @@ which they were added to the collection.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0j5a8ar8yc0j9h87gwfyrcqm23wpyv5yv5gn8vzilpg4vr0fiasc")))) + (base32 "09cidr42q0xwp6wwyaw09hl580vqi85wb5f78pxrxcfm75yg3xki")))) (build-system julia-build-system) (propagated-inputs (list julia-adapt)) @@ -4007,7 +4226,7 @@ languages like Fortran.") (define-public julia-paddedviews (package (name "julia-paddedviews") - (version "0.5.8") + (version "0.5.11") (source (origin (method git-fetch) @@ -4016,7 +4235,7 @@ languages like Fortran.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0ran2vj6ahlzib0g77y7g0jhavy3k9s2mqq23ybpgp9z677wf26h")))) + (base32 "1835q06g6ymqh1k7625ssahwm46j08370v2inb61y1lw8vd99f3x")))) (build-system julia-build-system) (propagated-inputs (list julia-offsetarrays)) @@ -4126,7 +4345,7 @@ actual computation.") (define-public julia-plotutils (package (name "julia-plotutils") - (version "1.0.15") + (version "1.2.0") (source (origin (method git-fetch) @@ -4135,8 +4354,17 @@ actual computation.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "12aw5gkkcfhpczv2w510k65w1j0hjnh825ihimi223v8plsi5105")))) + (base32 "1yml9ayaniqnzx5r8sfjckifcm99ck7qhc19cd8fs0bwzkh7nza7")))) (build-system julia-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-test-suite + (lambda _ + (substitute* "test/runtests.jl" + (("(@test_throws) ErrorException (.*notacolor)" _ @test notacolor) + (string-append @test " ArgumentError " notacolor)))))))) (propagated-inputs (list julia-colors julia-colorschemes @@ -4152,7 +4380,7 @@ plotting components.") (define-public julia-pooledarrays (package (name "julia-pooledarrays") - (version "1.3.0") + (version "1.4.2") (source (origin (method git-fetch) @@ -4161,10 +4389,12 @@ plotting components.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0qdwvf1p5z6z0q4s4hn85ysd8wq47zy6hlzddc5ijvhk86ccqlrr")))) + (base32 "0g30d46n8cc8vr9icjhfkqz2il2185ijh7xhfy9vhcnmllzpd0yg")))) (build-system julia-build-system) (propagated-inputs (list julia-dataapi)) + (native-inputs + (list julia-offsetarrays)) (home-page "https://github.com/JuliaData/PooledArrays.jl") (synopsis "Pooled representation of arrays in Julia") (description "This package provides a pooled representation of arrays for @@ -4508,6 +4738,29 @@ by Ranges.") type, which make some sacrifices but have better computational performance.") (license license:expat))) +(define-public julia-realdot + (package + (name "julia-realdot") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaMath/RealDot.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1jr8dq110j8axjfz936b1lqqcnqg3979rfg11w76rq1iz7zgi691")))) + (build-system julia-build-system) + (home-page "https://github.com/JuliaMath/RealDot.jl") + (synopsis "Compute realdot efficiently") + (description "This package only contains and exports a single function +@code{realdot(x, y)}. It computes @code{real(LinearAlgebra.dot(x, y))} while +avoiding computing the imaginary part of @code{LinearAlgebra.dot(x, y)} if +possible. The real dot product is useful when one treats complex numbers as +embedded in a real vector space.") + (license license:expat))) + (define-public julia-recipesbase (package (name "julia-recipesbase") @@ -4658,7 +4911,7 @@ package can help create and update if need be.") (define-public julia-requires (package (name "julia-requires") - (version "1.1.3") + (version "1.3.0") (source (origin (method git-fetch) @@ -4667,14 +4920,13 @@ package can help create and update if need be.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "03hyfy7c0ma45b0y756j76awi3az2ii4bz4s8cxm3xw9yy1z7b01")))) + (base32 "0gmqs7f17aq500lbdff4ibws00f8m0pnzskvf4b3ig520xv3n3nm")))) (build-system julia-build-system) (arguments - (list #:parallel-tests? #f)) - (inputs ;required for test - (list julia-example)) - (propagated-inputs - (list julia-colors)) + (list #:parallel-tests? #f)) ; Test suite has race conditions. + (native-inputs + (list julia-colors + julia-example)) (home-page "https://github.com/JuliaPackaging/Requires.jl/") (synopsis "Faster package loader") (description "This package make loading packages faster, maybe. It @@ -4686,7 +4938,7 @@ can be avoided.") (define-public julia-reversediff (package (name "julia-reversediff") - (version "1.9.0") + (version "1.14.4") (source (origin (method git-fetch) @@ -4695,7 +4947,7 @@ can be avoided.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1wrr6sqj2xl9grkvdp88rw3manxy9vbx28zq2wssya5ns1xabsnl")))) + (base32 "0hwsjmr4wiscqa5kaj4mw0i4agyyzdcmq4r1gp2i563nc1ziaylg")))) (build-system julia-build-system) (arguments ;; XXXX: Test suite failing for i686, e.g., @@ -4705,10 +4957,13 @@ can be avoided.") (list #:tests? (not (or (%current-target-system) (target-x86-32?))))) (propagated-inputs - (list julia-diffresults + (list julia-chainrulescore + julia-diffresults julia-diffrules + julia-difftests julia-forwarddiff julia-functionwrappers + julia-logexpfunctions julia-macrotools julia-nanmath julia-specialfunctions @@ -4803,7 +5058,13 @@ through matrix-vector multiplication.") (arguments (list #:julia-package-name "SafeTestsets" - #:julia-package-uuid "1bc83da4-3b8d-516f-aca4-4fe02f6d838f")) + #:julia-package-uuid "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" + #:phases + #~(modify-phases %standard-phases + (add-after 'link-depot 'fix-package-toml + (lambda _ + (substitute* "Project.toml" + (("version = .*") "version = \"0.0.1\"\n"))))))) (native-inputs (list julia-staticarrays)) (home-page "https://github.com/YingboMa/SafeTestsets.jl") @@ -4837,7 +5098,7 @@ a loadable module.") (define-public julia-scanbyte (package (name "julia-scanbyte") - (version "0.3") + (version "0.3.2") (source (origin (method git-fetch) @@ -4846,7 +5107,7 @@ a loadable module.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0dqqa3d7c87358144pji6ik8xlki2hj0hkvjs72j5aypfms8rwn3")))) + (base32 "1c18hkcb0h6l437v2s02kijjkyly91mqark84czvh8yzxm19hr7k")))) (build-system julia-build-system) (propagated-inputs (list julia-simd)) @@ -4855,6 +5116,8 @@ a loadable module.") (description "This package finds the first occurrence of a byte or set of bytes in a chunk of memory. Think of it like a much faster version of @code{findfirst} that only iterates over bytes in memory.") + ;; https://github.com/jakobnissen/ScanByte.jl/issues/2 + (supported-systems '("x86_64-linux")) (license license:expat))) (define-public julia-scratch @@ -4906,6 +5169,26 @@ files that the user must interact with through a file browser.") argument.") (license license:expat))) +(define-public julia-shiftedarrays + (package + (name "julia-shiftedarrays") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaArrays/ShiftedArrays.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0wy7k29qx2lvj587kiz31fzdc60808mjsgpp41h6b682ypz8rw0c")))) + (build-system julia-build-system) + (home-page "https://github.com/JuliaArrays/ShiftedArrays.jl") + (synopsis "Lazy shifted arrays for data analysis in Julia") + (description + "This package provides an implementation of shifted arrays for Julia.") + (license license:expat))) + (define-public julia-showoff (package (name "julia-showoff") @@ -5030,7 +5313,7 @@ timsort and radixsort.") (define-public julia-specialfunctions (package (name "julia-specialfunctions") - (version "1.6.0") + (version "1.8.7") (source (origin (method git-fetch) @@ -5039,12 +5322,13 @@ timsort and radixsort.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0nfpnglx7zl9g20w2mgfkg17hcw9ri0shaq2rwplj0ij5pwz8yf0")))) + (base32 "0shlgx9lkbjb1awdf5lrbkq06bmkyahc92qay2a049b4lvqrhj7a")))) (build-system julia-build-system) (inputs (list julia-chainrulestestutils)) (propagated-inputs (list julia-chainrulescore + julia-irrationalconstants julia-logexpfunctions julia-openspecfun-jll)) (home-page "https://github.com/JuliaMath/SpecialFunctions.jl") @@ -5167,6 +5451,21 @@ There are multiple ways to understand @code{StackView}: types and a common interface that is shared between them.") (license license:expat))) +(define-public julia-static-0.6 + (package + (inherit julia-static) + (name "julia-static") + (version "0.6.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/SciML/Static.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03ri8nl046cz7l433p0nlr84yywxvjykyymqparm8lxxwkv0rxqd")))))) + (define-public julia-staticarrays (package (name "julia-staticarrays") @@ -5549,7 +5848,7 @@ package.") (define-public julia-tracker (package (name "julia-tracker") - (version "0.2.12") + (version "0.2.22") (source (origin (method git-fetch) @@ -5558,16 +5857,18 @@ package.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1s4mdywbp7nli7z985fqaj1rs4i6d92b1jx3lhg0qhk1s5wc0v8j")) - (patches (search-patches "julia-tracker-16-compat.patch")))) + (base32 "0sxncn999dc5j15y0h3cw28x41pv5qjaw64drhy1y4rn3na48504")))) (build-system julia-build-system) (propagated-inputs (list julia-adapt julia-diffrules julia-forwarddiff + julia-functors + julia-logexpfunctions julia-macrotools julia-nanmath julia-nnlib + julia-optimisers julia-requires julia-specialfunctions)) (native-inputs @@ -5855,7 +6156,7 @@ archives in Julia.") (define-public julia-zygoterules (package (name "julia-zygoterules") - (version "0.2.1") + (version "0.2.2") (source (origin (method git-fetch) @@ -5864,7 +6165,7 @@ archives in Julia.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "07i2mf6rr5b8i6l82qgwl5arsb5pwyyzyfasgnszhdqllk9501bs")))) + (base32 "0h9m9ibxfcw9cqa7p0aylpvibvlxsn5nlfzkz1pk68jy58vkzhca")))) (build-system julia-build-system) (propagated-inputs (list julia-macrotools)) @@ -5877,7 +6178,7 @@ Zygote, without depending on Zygote itself.") (define-public julia-zygote (package (name "julia-zygote") - (version "0.6.17") + (version "0.6.41") (source (origin (method git-fetch) @@ -5886,17 +6187,19 @@ Zygote, without depending on Zygote itself.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1cx66sp30s34ln6p0fpqk1ggjxfxg2gp8791zz3cl85dmk4dl14b")))) + (base32 "02bgj6m1j25sm3pa5sgmds706qpxk1qsbm0s2j3rjlrz9xn7glgk")))) (build-system julia-build-system) (arguments (list #:tests? #f)) ;require CUDA, not packaged yet (propagated-inputs (list julia-abstractffts julia-chainrules + julia-chainrulescore julia-diffrules julia-fillarrays julia-forwarddiff julia-irtools + julia-logexpfunctions julia-macrotools julia-nanmath julia-requires diff --git a/gnu/packages/kde-multimedia.scm b/gnu/packages/kde-multimedia.scm index 9fb3572909..d635eca26d 100644 --- a/gnu/packages/kde-multimedia.scm +++ b/gnu/packages/kde-multimedia.scm @@ -334,7 +334,7 @@ This package is part of the KDE multimedia module.") (native-inputs (list docbook-xsl extra-cmake-modules - ffmpeg + ffmpeg-4 kdoctools libxslt python-wrapper diff --git a/gnu/packages/kde-utils.scm b/gnu/packages/kde-utils.scm index 2742d6b846..5774fa9910 100644 --- a/gnu/packages/kde-utils.scm +++ b/gnu/packages/kde-utils.scm @@ -423,7 +423,7 @@ Kate's features include: (home-page "https://invent.kde.org/utilities/kdebugsettings") (synopsis "Choose which QLoggingCategory are displayed") (description - "This package allows to select which QLoggingCategory are displayed.") + "This package selects which QLoggingCategory are displayed.") (license license:lgpl2.0+))) (define-public kbackup diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm index 402ee221c5..18791359f2 100644 --- a/gnu/packages/kodi.scm +++ b/gnu/packages/kodi.scm @@ -399,7 +399,7 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.") ("dcadec" ,dcadec) ("dbus" ,dbus) ("eudev" ,eudev) - ("ffmpeg" ,ffmpeg) + ("ffmpeg" ,ffmpeg-4) ("flac" ,flac) ("flatbuffers" ,flatbuffers) ("fmt" ,fmt-7) diff --git a/gnu/packages/lighting.scm b/gnu/packages/lighting.scm index 5850da84d8..6230963a4b 100644 --- a/gnu/packages/lighting.scm +++ b/gnu/packages/lighting.scm @@ -19,6 +19,7 @@ (define-module (gnu packages lighting) #:use-module (guix build-system gnu) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) @@ -36,52 +37,49 @@ #:use-module (gnu packages protobuf)) (define-public ola - ;; Use a commit that allows building with libmicrohttpd 0.9.71. - ;; https://github.com/OpenLightingProject/ola/pull/1651 - (let ((commit "5d882936436240b312b3836afd199587beaca840") - (revision "0")) - (package - (name "ola") - (version (git-version "0.10.7" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/OpenLightingProject/ola") - (commit commit))) - (sha256 - (base32 "1bhl3gvmvmnyrygfj13cibf2xirm285m8abjkaxq22hrqbsvab2m")) - (file-name (git-file-name name version)))) - (build-system gnu-build-system) - (native-inputs - (list bison - cppunit - flex - pkg-config - ;; For git repository bootstrapping. - autoconf - automake - libtool)) - (inputs - `(("libftdi" ,libftdi) - ("libmicrohttpd" ,libmicrohttpd) - ("libusb" ,libusb) - ("libuuid" ,util-linux "lib") - ("zlib" ,zlib))) - (propagated-inputs - (list protobuf)) ; for pkg-config --libs libola - (arguments - `( ;; G++ >= 4.8 macro expansion tracking requires lots of memory, causing - ;; build to fail on low memory systems. We disable that with the - ;; following configure flags. - #:configure-flags (list "CXXFLAGS=-ftrack-macro-expansion=0"))) - (synopsis "Framework for controlling entertainment lighting equipment") - (description "The Open Lighting Architecture is a framework for lighting + (package + (name "ola") + (version "0.10.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OpenLightingProject/ola") + (commit version))) + (sha256 + (base32 "17dwmjdw87hv314gv5b1rmh5jglz8a0rzw7wj26xn74xw2jvxa6l")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (native-inputs + (list bison + cppunit + flex + pkg-config + ;; For git repository bootstrapping. + autoconf + automake + libtool)) + (inputs + (list libftdi + libmicrohttpd + libusb + `(,util-linux "lib") + zlib)) + (propagated-inputs + (list protobuf)) ; for pkg-config --libs libola + (arguments + (list + ;; G++ >= 4.8 macro expansion tracking requires lots of memory, causing + ;; build to fail on low memory systems. We disable that with the + ;; following configure flags. + #:configure-flags #~(list "CXXFLAGS=-ftrack-macro-expansion=0"))) + (synopsis "Framework for controlling entertainment lighting equipment") + (description "The Open Lighting Architecture is a framework for lighting control information. It supports a range of protocols and over a dozen USB devices. It can run as a standalone service, which is useful for converting signals between protocols, or alternatively using the OLA API, it can be used as the backend for lighting control software. OLA runs on many different platforms including ARM, which makes it a perfect fit for low cost Ethernet to DMX gateways.") - (home-page "https://www.openlighting.org/ola") - (license license:lgpl2.1+)))) + (home-page "https://www.openlighting.org/ola") + (license license:lgpl2.1+))) diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index 7b5efeb588..130097ef40 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -645,7 +645,7 @@ API. It also comprises a simple HTTP/HTTPS client implementation.") ("bcg729" ,bcg729) ("bcmatroska2" ,bcmatroska2) ("bctoolbox" ,bctoolbox) - ("ffmpeg" ,ffmpeg) + ("ffmpeg" ,ffmpeg-4) ("glew" ,glew) ("glu" ,glu) ("glx" ,mesa-utils) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index d88f47c167..0830cc5ed7 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -130,6 +130,7 @@ #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb) #:use-module (gnu packages llvm) + #:use-module (gnu packages lsof) #:use-module (gnu packages lua) #:use-module (gnu packages man) #:use-module (gnu packages maths) @@ -143,12 +144,14 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pciutils) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages polkit) #:use-module (gnu packages popt) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) #:use-module (gnu packages rrdtool) + #:use-module (gnu packages rsync) #:use-module (gnu packages samba) #:use-module (gnu packages sdl) #:use-module (gnu packages serialization) @@ -477,7 +480,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The current "stable" kernels. That is, the most recently released major ;; versions that are still supported upstream. -(define-public linux-libre-6.0-version "6.0.12") +(define-public linux-libre-6.0-version "6.0.15") (define-public linux-libre-6.0-gnu-revision "gnu") (define deblob-scripts-6.0 (linux-libre-deblob-scripts @@ -487,7 +490,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "16g2bin3xay30zfss1vlb7pwcss5giaxaksp4v1gk05wn51wjrqr"))) (define-public linux-libre-6.0-pristine-source (let ((version linux-libre-6.0-version) - (hash (base32 "00ag63lnxw2gijw3b6v29lhrlv480m12954q5zh4jawlz3nk1dw9"))) + (hash (base32 "08389890gq4b9vkvrb22lzkr4blkn3a5ma074ns19gl89wyyp16l"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-6.0))) @@ -495,7 +498,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The "longterm" kernels — the older releases with long-term upstream support. ;; Here are the support timelines: ;; <https://www.kernel.org/category/releases.html> -(define-public linux-libre-5.15-version "5.15.82") +(define-public linux-libre-5.15-version "5.15.85") (define-public linux-libre-5.15-gnu-revision "gnu") (define deblob-scripts-5.15 (linux-libre-deblob-scripts @@ -505,12 +508,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1m73pgx8v047xb2gck2g7j7khniis8c9akn9vhzgsdfglrf8p6fj"))) (define-public linux-libre-5.15-pristine-source (let ((version linux-libre-5.15-version) - (hash (base32 "0r8v7113favmch2x6br7jk6idihza99l9qyd7ik99i5sg6xzdvpw"))) + (hash (base32 "024qhjh9mgfnanr1qd8002n6a4wpn98lajli12a0m3n9z8lsw2rc"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.15))) -(define-public linux-libre-5.10-version "5.10.158") +(define-public linux-libre-5.10-version "5.10.161") (define-public linux-libre-5.10-gnu-revision "gnu1") (define deblob-scripts-5.10 (linux-libre-deblob-scripts @@ -520,12 +523,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0a96g4pjdgwvxn2wpz6rfc8nwdlkw138r9pp66kvfrrn08i313ii"))) (define-public linux-libre-5.10-pristine-source (let ((version linux-libre-5.10-version) - (hash (base32 "1rq7lyp41fydybs53rcdjhiy271arh95xch16s5s3jhhanxj82hy"))) + (hash (base32 "0ya04njrxr4d37zkxvivmn5f0bdvcb504pyp9ahwz8nqpk8gdaks"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.10))) -(define-public linux-libre-5.4-version "5.4.226") +(define-public linux-libre-5.4-version "5.4.228") (define-public linux-libre-5.4-gnu-revision "gnu1") (define deblob-scripts-5.4 (linux-libre-deblob-scripts @@ -535,12 +538,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1bgblfkcnrabnr9hpdl07qgps57h6bq4v5pjrxs798vq43db66va"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "0i4s1hl5q0ax55z7m5krzyw1zj9v03q8jcfksknb6qrg3lm5a7qc"))) + (hash (base32 "0935dq7zbpf0fkppl3q96a2gh1zrmq01h1nivzgmdhjlmhn3n9c0"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.268") +(define-public linux-libre-4.19-version "4.19.269") (define-public linux-libre-4.19-gnu-revision "gnu1") (define deblob-scripts-4.19 (linux-libre-deblob-scripts @@ -550,12 +553,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0g1yhzxm3ixfll6n630v7lddcyvf888sg114nimh0lkvzd180s99"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "0kr0di4gr6p57c8h6ybcli01kazq235npbh6qrpx0hpmqcdcx6r1"))) + (hash (base32 "02mjb16xxfj984vibpxvhjl84y5yg0jgzjccjdxnn8db4k9aa2vf"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.301") +(define-public linux-libre-4.14-version "4.14.302") (define-public linux-libre-4.14-gnu-revision "gnu1") (define deblob-scripts-4.14 (linux-libre-deblob-scripts @@ -565,12 +568,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im"))) (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "16zrpfadsnznpl37crbq5g1hz1ch0zfp2a75yzlqy2fs0f7fxlmc"))) + (hash (base32 "102c9h0byr9v4bxzkdh7mnw1grm47ji6lf6l1gjlwah7f46j6ap3"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.335") +(define-public linux-libre-4.9-version "4.9.336") (define-public linux-libre-4.9-gnu-revision "gnu1") (define deblob-scripts-4.9 (linux-libre-deblob-scripts @@ -580,7 +583,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0bib3641dbcqdkx3anna3caxnsg3nw9cnmhcklq0s93g3m57041h"))) (define-public linux-libre-4.9-pristine-source (let ((version linux-libre-4.9-version) - (hash (base32 "0agb1avdqxbmb0z751f5c4d6s7k9zb6dq04z82gx0v4zzrhxhkzd"))) + (hash (base32 "032hgfvn7za2v49jjc3pdzx0cfglrmjkbl2d3pz857yc0q9y2v8z"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) @@ -1082,43 +1085,6 @@ Linux kernel. It has been modified to remove all non-free binary blobs.") (define-public linux-libre-source linux-libre-6.0-source) (define-public linux-libre linux-libre-6.0) -(define-public linux-libre-documentation - (package - (inherit linux-libre) - (name "linux-libre-documentation") - (arguments - (list - #:tests? #f - #:phases #~(modify-phases %standard-phases - (delete 'configure) - (replace 'build - (lambda _ - (substitute* "Documentation/Makefile" - ;; Remove problematic environment check script. - ((".*scripts/sphinx-pre-install.*") "")) - (invoke "make" "infodocs"))) - (replace 'install - (lambda _ - (let* ((info-dir (string-append #$output "/share/info")) - (info (string-append info-dir - "/TheLinuxKernel.info.gz"))) - (with-directory-excursion "Documentation/output" - (invoke "make" "-C" "texinfo" "install-info" - (string-append "infodir=" info-dir))) - ;; Create a symlink, for convenience. - (symlink info (string-append info-dir - "/linux.info.gz")))))))) - (native-inputs - (list graphviz - perl - python - python-sphinx - texinfo - which)) - (synopsis "Documentation for the kernel Linux-Libre") - (description "This package provides the documentation for the kernel -Linux-Libre, as an Info manual. To consult it, run @samp{info linux}."))) - (define-public linux-libre-5.15 (make-linux-libre* linux-libre-5.15-version linux-libre-5.15-gnu-revision @@ -1900,6 +1866,47 @@ login password to @code{gpg-agent}. This can be useful if you are using a GnuPG-based password manager like @code{pass}.") (license license:gpl3+))) + +;;; +;;; Kernel documentation +;;; + +(define-public linux-libre-documentation + (package + (inherit linux-libre) + (name "linux-libre-documentation") + (arguments + (list + #:tests? #f + #:phases #~(modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda _ + (substitute* "Documentation/Makefile" + ;; Remove problematic environment check script. + ((".*scripts/sphinx-pre-install.*") "")) + (invoke "make" "infodocs"))) + (replace 'install + (lambda _ + (let* ((info-dir (string-append #$output "/share/info")) + (info (string-append info-dir + "/TheLinuxKernel.info.gz"))) + (with-directory-excursion "Documentation/output" + (invoke "make" "-C" "texinfo" "install-info" + (string-append "infodir=" info-dir))) + ;; Create a symlink, for convenience. + (symlink info (string-append info-dir + "/linux.info.gz")))))))) + (native-inputs + (list graphviz + perl + python + python-sphinx + texinfo + which)) + (synopsis "Documentation for the kernel Linux-Libre") + (description "This package provides the documentation for the kernel +Linux-Libre, as an Info manual. To consult it, run @samp{info linux}."))) ;;; ;;; Miscellaneous. @@ -1933,7 +1940,7 @@ It provides the commands @code{powercap-info} and @code{powercap-set}.") (define-public powerstat (package (name "powerstat") - (version "0.02.27") + (version "0.02.28") (source (origin (method git-fetch) @@ -1942,7 +1949,7 @@ It provides the commands @code{powercap-info} and @code{powercap-set}.") (commit (string-append "V" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1ik5yv2bhz2hvyga4h1m28rf0xpi20zpqm4swhvskyf1g6qf381z")))) + (base32 "1wydjxmb6qf7rqarpl8rblg4biq3r2kfcx7p3pzvsr0w1xwdiisd")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -2868,6 +2875,56 @@ IPv6 packet filter. Both commands are targeted at system administrators.") (license license:gpl2+))) +(define-public bolt + (package + (name "bolt") + (version "0.9.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.freedesktop.org/bolt/bolt") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0w66shv7ra8yrhr0byifahbq25wi8qfsm3rifz0j31l7cmnys3js")))) + (build-system meson-build-system) + (arguments + (list #:configure-flags '(list "--localstatedir=/var") + #:glib-or-gtk? #t ;To wrap binaries and/or compile schemas + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'replace-directories + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "meson.build" + (("udev.get_pkgconfig_variable..udevdir..") + (string-append "'" + #$output "/lib/udev'"))) + (substitute* "scripts/meson-install.sh" + (("mkdir.*") + "")))) + (add-before 'install 'no-polkit-magic + (lambda* (#:key outputs #:allow-other-keys) + (setenv "PKEXEC_UID" "something")))))) + (native-inputs (list pkg-config + `(,glib "bin") python asciidoc umockdev)) + (inputs (list eudev dbus polkit)) + (synopsis "Thunderbolt 3 device manager") + (description + "This package provides @command{boltd}, a userspace daemon +for Thunderbolt devices, and @command{boltctl}, a command-line utility for +managing those devices. + +The daemon @command{boltd} exposes devices via D-Bus to clients. It also +stores a database of previously authorized devices and will, depending on the +policy set for the individual devices, automatically authorize newly connected +devices without user interaction. + +The command-line utility @command{boltctl} manages Thunderbolt devices via +@command{boltd}. It can list devices, monitor changes, and initiate +authorization of devices.") + (home-page "https://gitlab.freedesktop.org/bolt/bolt") + (license license:gpl2+))) + (define-public jitterentropy-rngd (package (name "jitterentropy-rngd") @@ -3973,7 +4030,7 @@ from the module-init-tools project.") (define-public earlyoom (package (name "earlyoom") - (version "1.6.2") + (version "1.7") (source (origin (method git-fetch) (uri (git-reference @@ -3982,7 +4039,7 @@ from the module-init-tools project.") (file-name (git-file-name name version)) (sha256 (base32 - "16iyn51xlrsbshc7p5xl2338yyfzknaqc538sa7mamgccqwgyvvq")))) + "1xqrs6wz59ks76hdgfd4vaj010kbvllilgam2xxyn0g56kai71zi")))) (build-system gnu-build-system) (arguments (list @@ -5932,36 +5989,25 @@ uncompressed size will not match the number given by @command{tar} or obviously it can be shared with files outside our set).") (license license:gpl2+))) -(define-public f2fs-tools-1.7 +(define-public f2fs-tools (package (name "f2fs-tools") - (version "1.7.0") + (version "1.15.0") (source (origin - (method url-fetch) - (uri (string-append - "https://git.kernel.org/cgit/linux/kernel/git/jaegeuk" - "/f2fs-tools.git/snapshot/f2fs-tools-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://git.kernel.org/pub/scm/linux/kernel\ +/git/jaegeuk/f2fs-tools.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1m6bn1ibq0p53m0n97il91xqgjgn2pzlz74lb5bfzassx7159m1k")))) - + "1ffws8pbpzp9730v0wy5xjas698lnbd2p7wpr2gl4mx45rsay9a5")))) (build-system gnu-build-system) - (arguments - `(#:configure-flags '("CFLAGS=-fcommon") - #:phases - (modify-phases %standard-phases - (add-after 'install 'install-headers - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (out-include (string-append out "/include"))) - (install-file "include/f2fs_fs.h" out-include) - (install-file "mkfs/f2fs_format_utils.h" out-include) - #t)))))) (native-inputs (list autoconf automake libtool pkg-config)) (inputs - `(("libuuid" ,util-linux "lib") - ("libselinux" ,libselinux))) + (list `(,util-linux "lib"))) ;for libuuid (home-page "https://f2fs.wiki.kernel.org/") (synopsis "Userland tools for f2fs") (description @@ -5972,21 +6018,33 @@ disks and SD cards. This package provides the userland utilities.") ;; GPL2/LGPL2.1, everything else is GPL2 only. See 'COPYING'. (license (list license:gpl2 license:lgpl2.1)))) -(define-public f2fs-tools +(define-public f2fs-tools-1.7 (package - (inherit f2fs-tools-1.7) + (inherit f2fs-tools) (name "f2fs-tools") - (version "1.14.0") + (version "1.7.0") (source (origin - (method url-fetch) - (uri (string-append - "https://git.kernel.org/cgit/linux/kernel/git/jaegeuk" - "/f2fs-tools.git/snapshot/f2fs-tools-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url (git-reference-url + (origin-uri (package-source f2fs-tools)))) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1lab1446c78xsjwhpki7s85z4171m8p9279c8yhm4882wba674k1")))) + "0wpzklw8smnngng0dm25jdmi7v5zfhpz02dksyxpz0a7kzzvnqqm")))) (inputs - `(("libuuid" ,util-linux "lib"))))) + (list `(,util-linux "lib") libselinux)) + (arguments + '(#:configure-flags '("CFLAGS=-fcommon") + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-headers + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out-include (string-append out "/include"))) + (install-file "include/f2fs_fs.h" out-include) + (install-file "mkfs/f2fs_format_utils.h" out-include))))))))) (define-public f2fs-tools/static (static-package @@ -6004,18 +6062,9 @@ disks and SD cards. This package provides the userland utilities.") "-I" libuuid "/include/blkid") (string-append "libblkid_LIBS=-L" libuuid-static "/lib -lblkid"))) #:disallowed-references (,util-linux) + #:make-flags '("LDFLAGS=-all-static") #:phases (modify-phases %standard-phases ; TODO: f2fs phases. - (add-after 'unpack 'make-static - (lambda _ - (define (append-to-file name body) - (let ((file (open-file name "a"))) - (display body file) - (close-port file))) - (append-to-file "mkfs/Makefile.am" "\nmkfs_f2fs_LDFLAGS = -all-static\n") - (append-to-file "fsck/Makefile.am" "\nfsck_f2fs_LDFLAGS = -all-static\n") - (append-to-file "tools/Makefile.am" "\nf2fscrypt_LDFLAGS = -all-static -luuid\n") - #t)) (add-after 'install 'remove-store-references (lambda* (#:key outputs #:allow-other-keys) ;; Work around bug in our util-linux. @@ -6719,12 +6768,16 @@ not as a replacement for it.") (build-system gnu-build-system) (arguments `(#:configure-flags (list "--disable-pywrap") + #:modules (,@%gnu-build-system-modules + (ice-9 binary-ports) + (rnrs bytevectors) + (srfi srfi-26)) #:phases (modify-phases %standard-phases (add-after 'patch-source-shebangs 'patch-hardcoded-paths (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) - (utils-linux (assoc-ref inputs "utils-linux")) + (util-linux (assoc-ref inputs "util-linux")) (cryptsetup (assoc-ref inputs "cryptsetup")) (linux-pam (assoc-ref inputs "linux-pam")) (lvm2 (assoc-ref inputs "lvm2"))) @@ -6738,9 +6791,9 @@ not as a replacement for it.") "src/desktop/ecryptfs-mount-private.desktop.in" "src/desktop/ecryptfs-setup-private.desktop.in") (("/bin/mount") - (string-append utils-linux "/bin/mount")) + (string-append util-linux "/bin/mount")) (("/bin/umount") - (string-append utils-linux "/bin/umount")) + (string-append util-linux "/bin/umount")) (("/sbin/mount.ecryptfs_private") (string-append out "/sbin/mount.ecryptfs_private")) (("/sbin/umount.ecryptfs_private") @@ -6756,17 +6809,48 @@ not as a replacement for it.") (("/sbin/unix_chkpwd") (string-append linux-pam "/sbin/unix_chkpwd")) (("/sbin/dmsetup") - (string-append lvm2 "/sbin/dmsetup"))))))))) + (string-append lvm2 "/sbin/dmsetup")))))) + (add-after 'install 'wrap-scripts + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (add (map (lambda (bin) + (dirname (search-input-file + inputs (string-append "bin/" bin)))) + ;; For simplicity, we wrap all scripts the same. + (list "awk" "find" "gettext" "grep" "keyctl" "ls" + "lsof" "mount" "rsync" "sed" "which"))) + (script? (lambda (file) + (call-with-input-file file + (lambda (port) + (bytevector=? (string->utf8 "#!") + (get-bytevector-n port 2))))))) + (for-each (lambda (file) + (when (script? file) + (wrap-program file + ;; '= would be better than 'suffix but break + ;; setuid binaries. + `("PATH" ":" suffix (,@add + ,(string-append bin)))))) + (find-files bin ".")))))))) (native-inputs (list intltool perl ; for pod2man pkg-config)) (inputs - `(("keyutils" ,keyutils) - ("linux-pam" ,linux-pam) - ("utils-linux" ,util-linux) - ("cryptsetup" ,cryptsetup) - ("lvm2" ,lvm2) - ("nss" ,nss))) + (list coreutils + cryptsetup + findutils + gawk + grep + keyutils + linux-pam + lsof + lvm2 + nss + rsync + sed + util-linux + which)) (home-page "https://ecryptfs.org/") (synopsis "eCryptfs cryptographic file system utilities") (description @@ -6904,7 +6988,7 @@ the @code{mce-inject} module loaded if it exists.") (define-public mcelog (package (name "mcelog") - (version "189") + (version "190") (source (origin (method git-fetch) @@ -6913,7 +6997,7 @@ the @code{mce-inject} module loaded if it exists.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0ml12xmmmljp22a89fw23c6gmba4dngavgnisv665w67kbnv5085")) + (base32 "1466zkbxgjg8ik0gd9vwsjiwg0yg7g8ra4bw3lg3ypla2kiydy4q")) (modules '((guix build utils))) (snippet `(begin @@ -6949,7 +7033,7 @@ exceeded.") (define-public mtd-utils (package (name "mtd-utils") - (version "2.1.4") + (version "2.1.5") (source (origin (method url-fetch) (uri (string-append @@ -6957,7 +7041,7 @@ exceeded.") "mtd-utils-" version ".tar.bz2")) (sha256 (base32 - "168vyzpfa0n66i8lcf626b9jczjr81rqbdk7735lfb18bp8i2rrc")))) + "0ilz8hkcyvfcnqpy25kbr8fb71x9vl28wbmw56vvd68n2byjfviq")))) (arguments (list #:configure-flags (if (%current-target-system) ; When cross-compiling. @@ -6968,12 +7052,12 @@ exceeded.") (native-inputs (list cmocka pkg-config)) (inputs - `(("acl" ,acl) ; extended attributes (xattr) - ("libuuid" ,util-linux "lib") - ("lzo" ,lzo) - ("openssl" ,openssl) ; optional crypto support - ("zlib" ,zlib) - ("zstd" ,zstd "lib"))) + (list acl ; extended attributes (xattr) + lzo + openssl ; optional crypto support + `(,util-linux "lib") + zlib + `(,zstd "lib"))) (build-system gnu-build-system) (synopsis "MTD Flash Storage Utilities") (description "This package provides utilities for testing, partitioning, etc @@ -7568,14 +7652,14 @@ re-use code and to avoid re-inventing the wheel.") (define-public libnftnl (package (name "libnftnl") - (version "1.2.3") + (version "1.2.4") (source (origin (method url-fetch) (uri (string-append "mirror://netfilter.org/libnftnl/" "libnftnl-" version ".tar.bz2")) (sha256 - (base32 "0m82bmh8i24hwxmz7rxwxjll4904ghd2b1x1p5h8algrg6dyl5p9")))) + (base32 "0zs7c8swlirxnbhl8q1b0p8g3jrzns7fyxsrglz71zfdwhxj7zn0")))) (build-system gnu-build-system) (native-inputs (list pkg-config)) @@ -7651,7 +7735,7 @@ userspace queueing component and the logging subsystem.") (define-public libnetfilter-conntrack (package (name "libnetfilter-conntrack") - (version "1.0.8") + (version "1.0.9") (source (origin (method url-fetch) @@ -7660,8 +7744,7 @@ userspace queueing component and the logging subsystem.") "libnetfilter_conntrack-" version ".tar.bz2")) (sha256 - (base32 - "1ky1mqgnplw2h9jf0kn0a69d94jkydhbiipng9l2hdcj13h3pl8c")))) + (base32 "1a3rnpsba64dzy97wwjrxal89wr0nf9znvag2j18nkp3kzs9vgb7")))) (build-system gnu-build-system) (native-inputs (list pkg-config)) (inputs (list libnfnetlink libmnl)) @@ -7679,7 +7762,7 @@ conntrack-tools among many other applications.") (define-public libnetfilter-cttimeout (package (name "libnetfilter-cttimeout") - (version "1.0.0") + (version "1.0.1") (source (origin (method url-fetch) @@ -7687,8 +7770,7 @@ conntrack-tools among many other applications.") "libnetfilter_cttimeout/files/" "libnetfilter_cttimeout-" version ".tar.bz2")) (sha256 - (base32 - "1fpyz1zlvcq80244knvyvy87909xjqlj02lmw8yblz2m9xsi5axf")))) + (base32 "0983cpyvxyycbnzqlrzml80pph2z51r6s7sxp06ciq8468pxln8b")))) (build-system gnu-build-system) (native-inputs (list pkg-config)) (inputs (list libmnl)) @@ -7706,7 +7788,7 @@ by conntrack-tools.") (define-public libnetfilter-cthelper (package (name "libnetfilter-cthelper") - (version "1.0.0") + (version "1.0.1") (source (origin (method url-fetch) @@ -7714,8 +7796,7 @@ by conntrack-tools.") "libnetfilter_cthelper/files/" "libnetfilter_cthelper-" version ".tar.bz2")) (sha256 - (base32 - "0gfgzkc1fjniqwk4jxds72c0lcgfhq2591hrvjrvd9nrqiqqwq87")))) + (base32 "04n95ngil5l8m8v64dfjm1dwq0wd3kf4vw1zblsrff13hxa3s1ql")))) (build-system gnu-build-system) (native-inputs (list pkg-config)) (inputs (list libmnl)) @@ -8122,14 +8203,14 @@ available in the kernel Linux.") (define-public cpuid (package (name "cpuid") - (version "20221003") + (version "20221201") (source (origin (method url-fetch) (uri (string-append "http://www.etallen.com/cpuid/cpuid-" version ".src.tar.gz")) (sha256 (base32 - "01w318kxcksfbjwjnnc9ly12g0yp4vm6xjgfl8mmi0jndg0cbi33")))) + "0vlg5zc0dayyn9bzyb25fcaxid9svrsjjza11afplrhh50wdrzh8")))) (build-system gnu-build-system) (arguments (list #:make-flags @@ -8793,7 +8874,7 @@ the superuser to make device nodes.") (define-public fakeroot (package (name "fakeroot") - (version "1.28") + (version "1.30.1") (source (origin ;; There are no tags in the repository, so take this snapshot. @@ -8802,7 +8883,7 @@ the superuser to make device nodes.") "fakeroot/fakeroot_" version ".orig.tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "1hlh77b6m2cfm42lcav372mbjni5akbgs25yg4wgi1gndzihbm2n")) + (base32 "0xba5gfh7ygv6na8n1ckqd2jnpdr9q88qan385qxp85c47sb3srj")) (modules '((guix build utils) (ice-9 ftw))) (snippet @@ -8864,16 +8945,8 @@ the superuser to make device nodes.") (substitute* "test/compare-tar" (("tar -tvf") "tar --numeric-owner -tvf"))))))) (native-inputs - `(;; For bootstrapping the package. - ("autoconf" ,autoconf-2.71) - ("automake" ,automake) - ("libtool" ,libtool) - ("gettext" ,gettext-minimal) - ("po4a" ,po4a) - - ;; For tests. - ("sharutils" ,sharutils) - ("xz" ,xz))) + (list autoconf-2.71 automake gettext-minimal libtool po4a + sharutils xz)) ; for tests (inputs (list acl libcap util-linux sed coreutils)) (synopsis "Run commands in an environment with fake root privileges") @@ -8991,7 +9064,7 @@ types and interfaces and translates so that the X server can use them.") (list alsa-lib dbus eudev - ffmpeg + ffmpeg-4 gstreamer gst-plugins-base libva @@ -9035,6 +9108,7 @@ of Linux application development.") (modify-inputs (package-native-inputs pipewire) (prepend python-docutils))) (inputs (modify-inputs (package-inputs pipewire) + (replace "ffmpeg" ffmpeg) (prepend avahi bluez jack-2 @@ -9290,7 +9364,7 @@ and above.") (define-public bpftrace (package (name "bpftrace") - (version "0.15.0") + (version "0.16.0") (source (origin (method git-fetch) @@ -9299,7 +9373,7 @@ and above.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "022fg0kiz0liahj82wvlxmivkwyp86shs5fwr2v4blx7lh05k9zm")) + (base32 "0v1376wfk4gy5rrjdsck6r3347nb0bgbj70998z1bkx9z95wm3ab")) (patches (search-patches "bpftrace-disable-bfd-disasm.patch")))) (build-system cmake-build-system) (native-inputs @@ -9356,14 +9430,14 @@ receiving. It is dedicated to the PL011 UART of the Raspberry Pi.") (define-public ipset (package (name "ipset") - (version "7.15") + (version "7.16") (source (origin (method url-fetch) (uri (string-append "https://ipset.netfilter.org/" "ipset-" version ".tar.bz2")) (sha256 - (base32 "0l8pcaym6057hq3a4zwnk53p5y6xg1m3d3c83wn18h5nmnm4am8a")))) + (base32 "1l4nybq17gr2ick7bbb5gq46bsqiw4rxmrvi0qfkvpm1yk6xkcc7")))) (build-system gnu-build-system) (inputs (list libmnl)) @@ -9395,7 +9469,7 @@ then IP sets may be the proper tool for you.") (define-public liburing (package (name "liburing") - (version "2.2") + (version "2.3") (source (origin (method git-fetch) (uri (git-reference @@ -9404,7 +9478,7 @@ then IP sets may be the proper tool for you.") (file-name (git-file-name name version)) (sha256 (base32 - "1677zqqbd9nw9hrdaxqbd1zwy54cxfsv2z0bjipn23mrkz2xzy1k")))) + "1ngg5640adlinkal8b28x5snrbab9yr8jw1w539h39k4pqnsbpmw")))) (build-system gnu-build-system) (arguments `(;; Tests are dependent on kernel version and features @@ -9468,27 +9542,37 @@ provides user-space tools for creating EROFS file systems.") (sha256 (base32 "0r0339mg4rc12p63iiq2kwdqn1zjakyiv014i2a2l9s8v5rjik41")))) (native-inputs (list autoconf automake libtool)) - (inputs (list perl sqlite)) + (inputs (list perl perl-dbd-sqlite sqlite dmidecode kmod)) (arguments - `(#:configure-flags - (list "--enable-all" - ;; Don't install unused /etc/sysconfig/rasdaemon environment file. - "--with-sysconfdefdir=." - "--localstatedir=/var") - #:phases - (modify-phases %standard-phases - (add-before 'configure 'munge-autotools - (lambda _ - ;; For some reason upstream forces sysconfdir=/etc. This results - ;; in EPERM during the install phase. Removing the offending - ;; line lets sysconfdir correctly pick up DESTDIR. - (substitute* "configure.ac" - (("^test .* sysconfdir=/etc\n$") "")) - ;; Upstream tries to create /var/lib/rasdaemon at install time. - ;; This results in EPERM on guix. Instead, the service should - ;; create this at activation time. - (substitute* "Makefile.am" - (("^\\s*\\$\\(install_sh\\) -d .*@RASSTATEDIR@.*$") ""))))))) + (list + #:configure-flags + #~(list "--enable-all" + ;; Don't install unused /etc/sysconfig/rasdaemon environment file. + "--with-sysconfdefdir=." + "--localstatedir=/var") + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'munge-autotools + (lambda _ + ;; For some reason upstream forces sysconfdir=/etc. This results + ;; in EPERM during the install phase. Removing the offending + ;; line lets sysconfdir correctly pick up DESTDIR. + (substitute* "configure.ac" + (("^test .* sysconfdir=/etc\n$") "")) + ;; Upstream tries to create /var/lib/rasdaemon at install time. + ;; This results in EPERM on guix. Instead, the service should + ;; create this at activation time. + (substitute* "Makefile.am" + (("^\\s*\\$\\(install_sh\\) -d .*@RASSTATEDIR@.*$") "")))) + (add-after 'install 'fix-dmidecode-and-modprobe + (lambda _ + (substitute* (string-append #$output "/sbin/ras-mc-ctl") + (("find_prog \\(\"dmidecode\"\\).*$") (format #f "~s;~%" (string-append #$dmidecode "/sbin/dmidecode"))) + (("find_prog \\(\"modprobe\"\\).*$") (format #f "~s;~%" (string-append #$kmod "/bin/modprobe")))))) + (add-after 'wrap 'wrap-rasdaemon + (lambda _ + (wrap-program (string-append #$output "/sbin/ras-mc-ctl") + `("PERL5LIB" ":" prefix ,(string-split (getenv "PERL5LIB") #\:)))))))) (build-system gnu-build-system) (home-page "https://github.com/mchehab/rasdaemon") (synopsis "Platform Reliability, Availability, and Serviceability tools") diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 467acc8316..a41eb845df 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -104,6 +104,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) + #:use-module (gnu packages rsync) #:use-module (gnu packages sdl) #:use-module (gnu packages serialization) #:use-module (gnu packages sqlite) @@ -894,10 +895,75 @@ Features: (define-public ecl-cl-irc (sbcl-package->ecl-package sbcl-cl-irc)) -(define-public sbcl-tripod - (let ((commit "bcea16610b4961a927e417e4413fffe686d71c83") +(define-public sbcl-coleslaw + (let ((commit "e7e68ce6020d13b14bf212890a7d8973d7af3b40") (revision "0")) (package + (name "sbcl-coleslaw") + (version (git-version "0.9.7" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/coleslaw-org/coleslaw") + (commit commit))) + (file-name (git-file-name "cl-coleslaw" version)) + (sha256 + (base32 "1w21a272q4x7nlr4kbmwwvkjvb4hpnw869byvy47vv361y7pimws")))) + (build-system asdf-build-system/sbcl) + (outputs '("out" "bin")) + (arguments + '(#:asd-systems '("coleslaw" "coleslaw-cli") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda _ + (substitute* "plugins/publish-gh-pages.sh" + (("^rsync\\b") (which "rsync"))) + (substitute* '("plugins/rsync.lisp" + "src/coleslaw.lisp") + (("\\brun-program \"rsync\\b") + (string-append "run-program \"" (which "rsync")))))) + (add-after 'create-asdf-configuration 'build-program + (lambda* (#:key outputs #:allow-other-keys) + (build-program + (string-append (assoc-ref outputs "bin") "/bin/coleslaw") + outputs + #:dependencies '("coleslaw-cli") + #:entry-program '((apply (function coleslaw-cli::main) + arguments)) + #:compress? #t)))))) + (native-inputs + (list sbcl-prove)) + (inputs + (list rsync + sbcl-3bmd + sbcl-alexandria + sbcl-cl-fad + sbcl-cl-ppcre + sbcl-cl-unicode + sbcl-clack + sbcl-closer-mop + sbcl-closure-template + sbcl-inferior-shell + sbcl-local-time + sbcl-trivia)) + (home-page "https://github.com/coleslaw-org/coleslaw") + (synopsis "Static site generator") + (description + "Coleslaw is a static site generator written in Common Lisp.") + (license license:bsd-2)))) + +(define-public cl-coleslaw + (sbcl-package->cl-source-package sbcl-coleslaw)) + +(define-public ecl-coleslaw + (sbcl-package->ecl-package sbcl-coleslaw)) + +(define-public sbcl-tripod + (let ((commit "b019a27cd7eb895870f84b0eb6c3edc5d7b05928") + (revision "1")) + (package (name "sbcl-tripod") (version (git-version "0.0.1" revision commit)) (source @@ -908,17 +974,30 @@ Features: (commit commit))) (file-name (git-file-name "cl-tripod" version)) (sha256 - (base32 "07czbwzfqg8n1q4dsfmrdp2zmp90xgsg8q26hkrniyvkylq4nn1z")))) + (base32 "0y8sns6njq9x7km58vpj7gx4cia9zkcpng3d38300xk0nnk2kz8w")))) (build-system asdf-build-system/sbcl) + (outputs '("out" "bin")) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'create-asdf-configuration 'build-program + (lambda* (#:key outputs #:allow-other-keys) + (build-program (string-append #$output:bin "/bin/tripod") + outputs + #:entry-program '((tripod:entry-point)) + #:compress? #t)))))) (inputs - (list sbcl-alexandria - sbcl-cl-gopher - sbcl-cl-markdown - sbcl-clss - sbcl-hunchentoot - sbcl-phos - sbcl-plump - sbcl-trivial-mimes)) + (list sbcl-alexandria + sbcl-cl-gopher + sbcl-cl-markdown + sbcl-clss + sbcl-hunchentoot + sbcl-local-time + sbcl-nactivitypub + sbcl-njson + sbcl-phos + sbcl-plump + sbcl-trivial-mimes)) (home-page "https://aartaka.me/blog/tripod") (synopsis "Common Lisp web server aiming to ease website hosting") (description @@ -932,7 +1011,6 @@ and Gopher website hosting.") (define-public ecl-tripod (sbcl-package->ecl-package sbcl-tripod)) - (define-public sbcl-trivial-timeout (let ((commit "feb869357f40f5e109570fb40abad215fb370c6c") (revision "1")) @@ -1425,6 +1503,53 @@ within.") (define-public cl-ubiquitous (sbcl-package->cl-source-package sbcl-ubiquitous)) +(define-public sbcl-uax-14 + (let ((commit "0432162525119c401d3d705bb9bcc9580a03914f") + (revision "1")) + (package + (name "sbcl-uax-14") + (version (git-version "1.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shinmera/uax-14") + (commit commit))) + (file-name (git-file-name "uax-14" version)) + (sha256 + (base32 "1sb2s58k01yjaggaq8i7kbyfsh6mzyqbiz1vm59smxn9qqwd8apm")))) + (build-system asdf-build-system/sbcl) + (native-inputs + (list sbcl-parachute sbcl-cl-ppcre)) + (inputs + (list sbcl-documentation-utils)) + (arguments + `(#:asd-systems '("uax-14"))) + (home-page "https://shinmera.github.io/uax-14/") + (synopsis "Unicode Standard Annex #14 for standardised line breaking") + (description + "This is an implementation of the Unicode Standards Annex +#14 (@url{http://www.unicode.org/reports/tr14/}) line breaking algorithm. It +provides a fast and convenient way to determine line breaking opportunities in +text. + +Note that this algorithm does not support break opportunities that require +morphological analysis. In order to handle such cases, please consult a system +that provides this kind of capability, such as a hyphenation algorithm. + +Also note that this system is completely unaware of layouting decisions. Any +kind of layouting decisions, such as which breaks to pick, how to space +between words, how to handle bidirectionality, and what to do in emergency +situations when there are no breaks on an overfull line are left up to the +user.") + (license license:zlib)))) + +(define-public ecl-uax-14 + (sbcl-package->ecl-package sbcl-uax-14)) + +(define-public cl-uax-14 + (sbcl-package->cl-source-package sbcl-uax-14)) + (define-public sbcl-uax-15 (package (name "sbcl-uax-15") @@ -1592,7 +1717,10 @@ reading and writing.") `(("zpb-ttf" ,sbcl-zpb-ttf))) (arguments '(#:asd-systems '("cl-vectors" - "cl-paths-ttf"))) + "cl-paths" + "cl-paths-ttf" + "cl-aa" + "cl-aa-misc"))) (home-page "http://projects.tuxee.net/cl-vectors/") (synopsis "Create, transform and render anti-aliased vectorial paths") (description @@ -10428,6 +10556,39 @@ the library does not depend on X11). (define-public ecl-cl-colors2 (sbcl-package->ecl-package sbcl-cl-colors2)) +(define-public sbcl-colored + (let ((commit "bee87efb0b047da0f071f5cf1457997ab5f93feb") + (revision "1")) + (package + (name "sbcl-colored") + (version (git-version "1.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shinmera/colored/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mpg91r6yfb9xqccd4r8z3hl2qzjhdj6daswb1cinrm8ffxrvy5k")))) + (build-system asdf-build-system/sbcl) + (native-inputs + (list sbcl-parachute)) + (inputs + (list sbcl-documentation-utils)) + (synopsis "Colour representation, conversion, and operation for Common Lisp") + (description + "This is a library for representing and mapping colours between their +various spaces.") + (home-page "https://shinmera.github.io/colored/") + (license license:zlib)))) + +(define-public cl-colored + (sbcl-package->cl-source-package sbcl-colored)) + +(define-public ecl-colored + (sbcl-package->ecl-package sbcl-colored)) + (define-public sbcl-cl-jpeg (let ((commit "ec557038128df6895fbfb743bfe8faf8ec2534af") (revision "1")) @@ -10678,8 +10839,8 @@ performance and correctness.") (sbcl-package->ecl-package sbcl-png-read)) (define-public sbcl-3b-bmfont - (let ((commit "d1b5bec0de580c2d08ec947a93c56b1400f2a37a") - (revision "1")) + (let ((commit "48a38f52d282064829851c484d9e7dee0ffe9e72") + (revision "2")) (package (name "sbcl-3b-bmfont") (version (git-version "0.0.1" revision commit)) @@ -10691,7 +10852,7 @@ performance and correctness.") (commit commit))) (file-name (git-file-name "3b-bmfont" version)) (sha256 - (base32 "12sgf7m0h6fqzhvkas7vmci6mprj3j3fnz778jlbqbsydln6v2yc")))) + (base32 "0v4lcrlpx60ayg0g5b10q2hjh1iaanln4ck0hm1rvjxm39gl2d86")))) (build-system asdf-build-system/sbcl) (arguments `(#:asd-systems @@ -10719,6 +10880,63 @@ read/write Bit Map Font (BMF) into text, JSON and XML.") (define-public cl-3b-bmfont (sbcl-package->cl-source-package sbcl-3b-bmfont)) +(define sbcl-3b-bmfont/shinmera + (let ((commit "58e529d24b7799d56b4b3f9c8a953b585d42c7d2") + (revision "1")) + (package (inherit sbcl-3b-bmfont) + (version (git-version "0.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shinmera/3b-bmfont/") + (commit commit))) + (file-name (git-file-name "3b-bmfont2" version)) + (sha256 + (base32 "17zby669b64rhxhk2szamzdgvispimh6ici05xa6x2vz4rvk71jq"))))))) + +(define-public sbcl-sdf + ;; Shinmera's fork required for Alloy. + (let ((commit "e1ab3ac4ea52c0e0119b832f428c71f580b4d83b") + (revision "1")) + (package + (name "sbcl-sdf") + (version (git-version "0.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shinmera/sdf") + (commit commit))) + (file-name (git-file-name "sdf" version)) + (sha256 + (base32 "1cyq4hkgiw9mnb87ah6xw19cybfs9hfbjvg1ch2mf4cr0ism0nvn")))) + (build-system asdf-build-system/sbcl) + (inputs + (list sbcl-zpb-ttf + sbcl-cl-vectors + sbcl-opticl + sbcl-binpack + sbcl-3b-bmfont/shinmera + sbcl-pathname-utils)) + (arguments + `(#:asd-systems '("sdf" "sdf/bmfont"))) + (home-page "https://github.com/Shinmera/sdf") + (synopsis "Signed distance font atlas generator") + (description + "This library generates +sdf (@url{https://steamcdn-a.akamaihd.net/apps/valve/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf}), +psdf and +msdf (@url{https://github.com/Chlumsky/msdfgen/files/3050967/thesis.pdf}) +atlases.") + (license license:expat)))) + +(define-public ecl-sdf + (sbcl-package->ecl-package sbcl-sdf)) + +(define-public cl-sdf + (sbcl-package->cl-source-package sbcl-sdf)) + (define-public sbcl-zpng (package (name "sbcl-zpng") @@ -16732,8 +16950,8 @@ protocol for Mastodon.") (sbcl-package->cl-source-package sbcl-tooter)) (define-public sbcl-croatoan - (let ((commit "5d0949d57a12e7fece8828e089daa339b260da96") - (revision "5")) + (let ((commit "35c92fcc6c4458339c7e27bdf16f7fa908d95eb8") + (revision "6")) (package (name "sbcl-croatoan") (version (git-version "0.0.1" revision commit)) @@ -16745,7 +16963,7 @@ protocol for Mastodon.") (commit commit))) (file-name (git-file-name "cl-croatoan" version)) (sha256 - (base32 "0qsnz10hri95al73vhpqrs7mapz2px0dbwgfn52sbi93gwk5aki9")))) + (base32 "0v1lrdjd29krjb6pr0mql9hjj5c2lv760xwpr17dbsw263vx29xz")))) (build-system asdf-build-system/sbcl) (arguments '(#:phases @@ -16871,11 +17089,11 @@ dynamically.") (sbcl-package->cl-source-package sbcl-sxql-composer)) (define-public sbcl-cl-i18n - (let ((commit "5b569f3fe4c76d600fafecac507ac4f50e4cc1d1") - (revision "1")) + (let ((commit "66b02dc2cff3ab97f924329aaf965807fe18aa20") + (revision "2")) (package (name "sbcl-cl-i18n") - (version (git-version "0.5.2" revision commit)) + (version (git-version "0.5.3" revision commit)) (source (origin (method git-fetch) @@ -16884,7 +17102,7 @@ dynamically.") (commit commit))) (file-name (git-file-name "cl-i18n" version)) (sha256 - (base32 "0kj1wfvlbi7qwq61b0rcdxa0bmb4sfsnh1bj3n5jxp24sdib73w2")))) + (base32 "06ij1wxancsym87gg63nvjh7vfzjipi1f02h4fb2ypip60vw06lc")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-alexandria sbcl-babel sbcl-cl-ppcre-unicode)) @@ -17456,6 +17674,38 @@ compiled foreign library collection.") (define-public cl-conspack (sbcl-package->cl-source-package sbcl-cl-conspack)) +(define-public sbcl-binpack + (let ((commit "e67f56bb697bdeac81e28e1cca4a5d117a9cf125") + (revision "1")) + (package + (name "sbcl-binpack") + (version (git-version "0.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lispgames/binpack") + (commit commit))) + (file-name (git-file-name "binpack" version)) + (sha256 + (base32 "1pcnsg60pqywd3k72m5pwimq01sm3jyvc1c3rbkij740r7grdxi1")))) + (build-system asdf-build-system/sbcl) + (native-inputs + (list sbcl-parachute)) + (inputs + (list sbcl-alexandria)) + (home-page "https://github.com/lispgames/binpack") + (synopsis "Common Lisp rectangle packer for sprite/texture atlases") + (description + "This library features a rectangle packer for sprite and texture atlases.") + (license license:expat)))) + +(define-public ecl-binpack + (sbcl-package->ecl-package sbcl-binpack)) + +(define-public cl-binpack + (sbcl-package->cl-source-package sbcl-binpack)) + (define-public sbcl-cl-opengl (let ((commit "e2d83e0977b7e7ac3f3d348d8ccc7ccd04e74d59") (revision "1")) @@ -19979,10 +20229,42 @@ developing library for Common Lisp.") (define-public cl-liballegro (sbcl-package->cl-source-package sbcl-cl-liballegro)) -(define-public sbcl-alloy - (let ((commit "e86e22c2887836ec31cd97e039f0bca5248d8f1c") +(define-public sbcl-font-discovery + (let ((commit "5101ca79151055f3ec9839aae73b8af42b884528") (revision "1")) (package + (name "sbcl-font-discovery") + (version (git-version "1.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shinmera/font-discovery") + (commit commit))) + (file-name (git-file-name "font-discovery" version)) + (sha256 + (base32 "1p9wkwc23rnif8vcjaj5ih1fmr5g57sidqjlz08qw6k0z4f6bia1")))) + (build-system asdf-build-system/sbcl) + (inputs + (list sbcl-cffi sbcl-documentation-utils sbcl-trivial-indent)) + (home-page "https://shinmera.github.io/font-discovery/") + (synopsis "Find system font files matching a font spec") + (description + "This is a library to find system font files. It works on systems with +FontConfig on Linux, BSD. It does not have any foreign dependencies that +aren't already directly available on the system.") + (license license:zlib)))) + +(define-public ecl-font-discovery + (sbcl-package->ecl-package sbcl-font-discovery)) + +(define-public cl-font-discovery + (sbcl-package->cl-source-package sbcl-font-discovery)) + +(define-public sbcl-alloy + (let ((commit "ea02e4576fd92917201b3c9b63dd3cdc72045dbf") + (revision "2")) + (package (name "sbcl-alloy") (version (git-version "0.0.0" revision commit)) (source @@ -19993,12 +20275,25 @@ developing library for Common Lisp.") (commit commit))) (file-name (git-file-name "alloy" version)) (sha256 - (base32 "1jsqjr6sf86hcdvnjp4gd10qv0r7kfkr9hmda85irb5lha4q9n7w")))) + (base32 "1g8ibvlajhlbdrmny7ck55ilv1shjdpj38q380wri4mavfymjw5f")))) (build-system asdf-build-system/sbcl) (native-inputs (list sbcl-alexandria sbcl-parachute)) (inputs - (list sbcl-array-utils sbcl-closer-mop sbcl-documentation-utils)) + (list sbcl-array-utils sbcl-closer-mop sbcl-documentation-utils + sbcl-float-features sbcl-colored sbcl-stealth-mixin + sbcl-cl-opengl sbcl-font-discovery sbcl-uax-14 sbcl-sdf)) + (arguments + ;; Dismiss alloy-svg, since it is not completed: + ;; https://github.com/Shirakumo/alloy/issues/24 + '(#:asd-systems '("alloy" + "alloy-windowing" + "alloy-animation" + "alloy-simple" + "alloy-simple-presentations" + "alloy-opengl" + "alloy-opengl-msdf" + "alloy-opengl-png"))) (home-page "https://shirakumo.github.io/alloy/") (synopsis "Common Lisp user interface protocol and toolkit implementation") @@ -23039,6 +23334,50 @@ Lisp. A subsystem offers an experimental GUI Gemini client.") (define-public ecl-phos (sbcl-package->ecl-package sbcl-phos)) +(define-public sbcl-germinal + (let ((commit "5bfb371ea57dae8985c0e1c6f184f0338487d684") + (revision "0")) + (package + (name "sbcl-germinal") + (version (git-version "1.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.carcosa.net/jmcbray/germinal") + (commit commit))) + (file-name (git-file-name "cl-germinal" version)) + (sha256 + (base32 "12jypa8m10825lp5yxfcm1fyk3r4ziwcri7ndxa0m5dz0y7hggck")))) + (build-system asdf-build-system/sbcl) + (inputs + (list sbcl-alexandria + sbcl-babel + sbcl-bordeaux-threads + sbcl-cl+ssl + sbcl-cl-fad + sbcl-cl-interpol + sbcl-cl-ppcre + sbcl-cl-str + sbcl-local-time + sbcl-osicat + sbcl-ppath + sbcl-quri + sbcl-trivial-mimes + sbcl-uax-15 + sbcl-usocket)) + (home-page "https://git.carcosa.net/jmcbray/germinal") + (synopsis "Gemini protocol server") + (description "Germinal is a server for the Gemini protocol, written in +Common Lisp.") + (license license:agpl3)))) + +(define-public cl-germinal + (sbcl-package->cl-source-package sbcl-germinal)) + +(define-public ecl-germinal + (sbcl-package->ecl-package sbcl-germinal)) + (define-public sbcl-css-lite (let ((commit "6ee4e6212ed56943d665df163d2a834b122e6273") (revision "0")) @@ -26047,8 +26386,25 @@ Zombie Raptor game engine project.") (sha256 (base32 "146mwshynhdw82m2nxrcjvf1nk0z3fn6ywcd2vqxkly5qricc53w")))) (build-system asdf-build-system/sbcl) + (outputs '("out" "bin")) (arguments - '(#:asd-systems '("charje.triads"))) + '(#:asd-systems '("charje.triads") + #:phases + (modify-phases %standard-phases + (add-after 'create-asdf-configuration 'build-binary + (lambda* (#:key outputs #:allow-other-keys) + (setenv "HOME" (getcwd)) + (invoke + "sbcl" "--eval" "(require :asdf)" "--eval" + (format + #f "~S" + `(progn + (require "charje.triads" + ,(string-append (getcwd) "/charje.triads.asd")) + (asdf:make "charje.triads")))) + (install-file + (string-append (getcwd) "/triads") + (string-append (assoc-ref outputs "bin") "/bin"))))))) (inputs (list sbcl-cl-str sbcl-serapeum @@ -26065,7 +26421,15 @@ roman numeral given in the key.") (sbcl-package->cl-source-package sbcl-triads)) (define-public ecl-triads - (sbcl-package->ecl-package sbcl-triads)) + (let ((ecl-package (sbcl-package->ecl-package sbcl-triads))) + (package + (inherit ecl-package) + (outputs '("out")) + (arguments + (substitute-keyword-arguments (package-arguments ecl-package) + ((#:phases phases) + `(modify-phases ,phases + (delete 'build-binary)))))))) (define-public sbcl-closure-template ;; There are no releases since 2015. diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index fc8de01066..75cc100851 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -1552,35 +1552,39 @@ interactive learning.") (define-public python-hyperopt (package (name "python-hyperopt") - (version "0.2.5") + (version "0.2.7") (source (origin (method url-fetch) (uri (pypi-uri "hyperopt" version)) (sha256 - (base32 "1k4ma8ci0bxghw7g4ms944zak1pi83yv2d6bxd7fcslm1zalfq5w")))) - (build-system python-build-system) + (base32 "0jd1ghmm423kbhjvd6pxq92y5vkz25390687fcnd7fshh3jrmy0v")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases + (list + #:phases + '(modify-phases %standard-phases (replace 'check - (lambda* (#:key inputs outputs tests? #:allow-other-keys) + (lambda* (#:key tests? #:allow-other-keys) (when tests? - (add-installed-pythonpath inputs outputs) - (invoke "python" "-m" "pytest" "--ignore" + (invoke "python" "-m" "pytest" ;; Needs python-pyspark. - "hyperopt/tests/test_spark.py" + "--ignore" "hyperopt/tests/integration/test_spark.py" ;; Needs both python-scikit-learn and python-lightgbm. - "--ignore" "hyperopt/tests/test_atpe_basic.py" + "--ignore" "hyperopt/tests/unit/test_atpe_basic.py" ;; The tests below need python-lightgbm. - "-k" (string-append "not test_branin" - " and not test_distractor" - " and not test_q1lognormal" - " and not test_quadratic1" - " and not test_twoarms")))))))) + "-k" + (string-append "not test_branin" + " and not test_distractor" + " and not test_q1lognormal" + " and not test_quadratic1" + " and not test_twoarms" + ;; XXX Type error with this version of scipy + " and not test_distribution_rvs")))))))) (propagated-inputs (list python-cloudpickle python-future + python-py4j python-networkx python-numpy python-scipy @@ -1588,8 +1592,6 @@ interactive learning.") python-tqdm)) (native-inputs (list python-black - python-ipython - python-ipyparallel python-nose python-pymongo python-pytest)) @@ -1602,8 +1604,8 @@ discrete, and conditional dimensions.") ;; There have been no proper releases yet. (define-public kaldi - (let ((commit "dd107fd594ac58af962031c1689abfdc10f84452") - (revision "0") + (let ((commit "be22248e3a166d9ec52c78dac945f471e7c3a8aa") + (revision "1") (openfst openfst-1.7.3)) ;; Temporary bypass for upstream issues (package (name "kaldi") @@ -1616,14 +1618,14 @@ discrete, and conditional dimensions.") (file-name (git-file-name name version)) (sha256 (base32 - "0iqbzgn7gzmgwvjfzifpbwwidxx887qmlgmsjkg7b1yzyfv00l21")))) + "1wkxz3p0h68mxbg41i1wygir2r4rraxbb4672xkkvvs85r6c8r8i")))) (build-system gnu-build-system) (arguments `(#:test-target "test" #:phases (modify-phases %standard-phases (add-after 'unpack 'chdir - (lambda _ (chdir "src") #t)) + (lambda _ (chdir "src"))) (replace 'configure (lambda* (#:key build system inputs outputs #:allow-other-keys) (when (not (or (string-prefix? "x86_64" system) @@ -1669,8 +1671,7 @@ discrete, and conditional dimensions.") (invoke "make" "-C" "onlinebin" "depend") (invoke "make" "-C" "onlinebin") (invoke "make" "-C" "gst-plugin" "depend") - (invoke "make" "-C" "gst-plugin") - #t)) + (invoke "make" "-C" "gst-plugin"))) ;; TODO: also install the executables. (replace 'install (lambda* (#:key outputs #:allow-other-keys) @@ -1691,8 +1692,7 @@ discrete, and conditional dimensions.") (install-file file target-dir))) (find-files "." "\\.h")) (install-file "gst-plugin/libgstonlinegmmdecodefaster.so" - (string-append lib "/gstreamer-1.0")) - #t)))))) + (string-append lib "/gstreamer-1.0")))))))) (inputs (list alsa-lib `(,gfortran "lib") @@ -1814,8 +1814,8 @@ written in C++.") (find-files "." "\\.h"))))))))))) (define-public gst-kaldi-nnet2-online - (let ((commit "cb227ef43b66a9835c14eb0ad39e08ee03c210ad") - (revision "2")) + (let ((commit "7888ae562a65bd7e406783ce2c33535bc66a30ef") + (revision "3")) (package (name "gst-kaldi-nnet2-online") (version (git-version "0" revision commit)) @@ -1827,12 +1827,13 @@ written in C++.") (file-name (git-file-name name version)) (sha256 (base32 - "1i6ffwiavxx07ri0lxix6s8q0r31x7i4xxvhys5jxkixf5q34w8g")))) + "0xp59a6lmx1y24i8bkmxcm27lhm5x5m6y41670yjzhamcbnx8jcr")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; there are none - #:make-flags - (list (string-append "SHELL=" + (list + #:tests? #f ; there are none + #:make-flags + '(list (string-append "SHELL=" (assoc-ref %build-inputs "bash") "/bin/bash") (string-append "KALDI_ROOT=" (assoc-ref %build-inputs "kaldi-src")) @@ -1840,33 +1841,32 @@ written in C++.") (assoc-ref %build-inputs "kaldi") "/lib") "KALDI_FLAVOR=dynamic") #:phases - (modify-phases %standard-phases - (add-after 'unpack 'chdir - (lambda _ (chdir "src") #t)) - (replace 'configure - (lambda* (#:key inputs #:allow-other-keys) - (let ((glib (assoc-ref inputs "glib"))) - (setenv "CXXFLAGS" "-fPIC") - (setenv "CPLUS_INCLUDE_PATH" - (string-append glib "/include/glib-2.0:" - glib "/lib/glib-2.0/include:" - (assoc-ref inputs "gstreamer") - "/include/gstreamer-1.0"))) - (substitute* "Makefile" - (("include \\$\\(KALDI_ROOT\\)/src/kaldi.mk") "") - (("\\$\\(error Cannot find") "#")) - #t)) - (add-before 'build 'build-depend - (lambda* (#:key make-flags #:allow-other-keys) - (apply invoke "make" "depend" make-flags))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib/gstreamer-1.0"))) - (install-file "libgstkaldinnet2onlinedecoder.so" lib) - #t)))))) + '(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "src"))) + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + (let ((glib (assoc-ref inputs "glib"))) + (setenv "CXXFLAGS" "-fPIC") + (setenv "CPLUS_INCLUDE_PATH" + (string-append glib "/include/glib-2.0:" + glib "/lib/glib-2.0/include:" + (assoc-ref inputs "gstreamer") + "/include/gstreamer-1.0:" + (getenv "CPLUS_INCLUDE_PATH")))) + (substitute* "Makefile" + (("include \\$\\(KALDI_ROOT\\)/src/kaldi.mk") "") + (("\\$\\(error Cannot find") "#")))) + (add-before 'build 'build-depend + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "depend" make-flags))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib/gstreamer-1.0"))) + (install-file "libgstkaldinnet2onlinedecoder.so" lib))))))) (inputs - (list glib gstreamer jansson openfst kaldi)) + (list glib gstreamer jansson openfst-1.7.3 kaldi)) (native-inputs `(("bash" ,bash) ("glib:bin" ,glib "bin") ; glib-genmarshal @@ -1882,8 +1882,8 @@ automatically.") (define-public kaldi-gstreamer-server ;; This is the tip of the py3 branch - (let ((commit "f68cab490be7eb0da2af1475fbc16655f50a60cb") - (revision "2")) + (let ((commit "f79e204d751a5964918001822e4520fa2acfd246") + (revision "3")) (package (name "kaldi-gstreamer-server") (version (git-version "0" revision commit)) @@ -1895,7 +1895,7 @@ automatically.") (file-name (git-file-name name version)) (sha256 (base32 - "17lh1368vkg8ngrcbn2phvigzlmalrqg6djx2gg61qq1a0nj87dm")))) + "1iijq8jmgdxr7961inal1ggs496ymxradm51m4sqx8vl983x14y8")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; there are no tests that can be run automatically @@ -1925,8 +1925,7 @@ automatically.") "-m" "compileall" "-f" ; force rebuild ,file))) - (find-files "." "\\.py$"))) - #t)) + (find-files "." "\\.py$"))))) (replace 'install (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -1965,14 +1964,13 @@ exec ~a ~a/~a \"$@\"~%" (list server client worker) (list "master_server.py" "client.py" - "worker.py"))) - #t)))))) + "worker.py"))))))))) (inputs - `(("gst-kaldi-nnet2-online" ,gst-kaldi-nnet2-online) - ("python" ,python-wrapper) - ("python-pygobject" ,python-pygobject) - ("python-pyyaml" ,python-pyyaml) - ("python-tornado" ,python-tornado-6))) + (list gst-kaldi-nnet2-online + python-wrapper + python-pygobject + python-pyyaml + python-tornado-6)) (home-page "https://github.com/alumae/kaldi-gstreamer-server") (synopsis "Real-time full-duplex speech recognition server") (description "This is a real-time full-duplex speech recognition server, diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index a0e6510fda..c9916c2e93 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1164,7 +1164,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.") (define-public mu (package (name "mu") - (version "1.8.11") + (version "1.8.13") (source (origin (method git-fetch) (uri (git-reference @@ -1173,7 +1173,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.") (file-name (git-file-name name version)) (sha256 (base32 - "0b5h5kdalv62z31aqyipymiqhazfssbx4c7ww96nn41a0l0g0ir0")))) + "0y4f5p7pwmaj8733rjzg29038dw33057qlsbsq2wapvp24wcjymr")))) (build-system meson-build-system) (native-inputs (list pkg-config @@ -2566,13 +2566,13 @@ maintained.") (define-public khard (package (name "khard") - (version "0.17.0") + (version "0.18.0") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "062nv4xkfsjc11k9m52dh6xjn9z68a4a6x1s8z05wwv4jbp1lkhn")))) + "05860fdayqap128l7i6bcmi9kdyi2gx02g2pmh88d56xgysd927y")))) (build-system python-build-system) (arguments `(#:phases @@ -2581,8 +2581,7 @@ maintained.") (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (zsh (string-append out "/share/zsh/site-functions"))) - (copy-recursively "misc/zsh" zsh) - #t)))))) + (copy-recursively "misc/zsh" zsh))))))) (native-inputs (list python-setuptools-scm)) (inputs @@ -3294,7 +3293,7 @@ writing OpenSMTPd filters.") (define-public opensmtpd-filter-dkimsign (package (name "opensmtpd-filter-dkimsign") - (version "0.5") + (version "0.6") (source (origin (method url-fetch) @@ -3303,7 +3302,7 @@ writing OpenSMTPd filters.") (string-append "https://distfiles.sigtrap.nl/" "filter-dkimsign-" version ".tar.gz"))) (sha256 - (base32 "0jwp47ixibnz8rghn193bk2hxh1j1zfrnidml18j7d7cylxfrd55")))) + (base32 "1hrn31hayr0hb32km5c42hhbaxw7g3jcgm59p0v0ydlj1fs0sprv")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -3324,8 +3323,8 @@ writing OpenSMTPd filters.") (list mandoc)) ; silently installs empty man page without (inputs (list libevent libopensmtpd - ;; XXX Our OpenSMTPd package uses libressl, but this package currently - ;; supports HAVE_ED25519 only with openssl. Switch back when possible. + ;; Our OpenSMTPd package uses libressl, but this package currently + ;; supports HAVE_ED25519 only with openssl. openssl)) (home-page "http://imperialat.at/dev/filter-dkimsign/") (synopsis "OpenSMTPd filter for signing mail with DKIM") @@ -4027,11 +4026,11 @@ It is a replacement for the @command{urlview} program.") (license license:gpl2+))) (define-public mumi - (let ((commit "4590e4822dda792f59f69b764824aa148d92dad0") + (let ((commit "0a90eeda9b5e12a2f83e3917c46fa539f308d0c8") (revision "2")) (package (name "mumi") - (version (git-version "0.0.2" revision commit)) + (version (git-version "0.0.4" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -4040,33 +4039,38 @@ It is a replacement for the @command{urlview} program.") (file-name (git-file-name name version)) (sha256 (base32 - "16brl1dk92kppzvxx8q5hcqiywg863s4sz5wb64hz8a37xa4hkyr")))) + "1yxi1vvygrk8qd0mqh65qh1g99r5d4rlymj8amcn80ggi3z32byk")))) (build-system gnu-build-system) (arguments - `(#:modules ((guix build gnu-build-system) + (list + #:modules '((guix build gnu-build-system) ((guix build guile-build-system) #:select (target-guile-effective-version)) (guix build utils)) - #:imported-modules ((guix build guile-build-system) + #:imported-modules `((guix build guile-build-system) ,@%gnu-build-system-modules) - #:configure-flags '("--localstatedir=/var") - - #:phases - (modify-phases %standard-phases - (add-after 'install 'wrap-executable - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (version (target-guile-effective-version)) - (scm (string-append out "/share/guile/site/" version)) - (go (string-append out "/lib/guile/" version - "/site-ccache"))) - (wrap-program (string-append bin "/mumi") - `("GUILE_LOAD_PATH" ":" prefix - (,scm ,(getenv "GUILE_LOAD_PATH"))) - `("GUILE_LOAD_COMPILED_PATH" ":" prefix - (,go ,(getenv "GUILE_LOAD_COMPILED_PATH")))))))))) + #:configure-flags '(list "--localstatedir=/var") + + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'install-picocss + (lambda* (#:key inputs #:allow-other-keys) + (let ((pico (dirname (search-input-file inputs "/scss/pico.scss")))) + (mkdir-p "assets/pico/scss") + (copy-recursively pico "assets/pico/scss")))) + (add-after 'install 'wrap-executable + (lambda _ + (let* ((bin (string-append #$output "/bin")) + (version (target-guile-effective-version)) + (scm (string-append #$output "/share/guile/site/" version)) + (go (string-append #$output "/lib/guile/" version + "/site-ccache"))) + (wrap-program (string-append bin "/mumi") + `("GUILE_LOAD_PATH" ":" prefix + (,scm ,(getenv "GUILE_LOAD_PATH"))) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix + (,go ,(getenv "GUILE_LOAD_COMPILED_PATH")))))))))) (inputs (list guile-email-latest guile-fibers @@ -4080,7 +4084,16 @@ It is a replacement for the @command{urlview} program.") guile-3.0 mailutils)) (native-inputs - (list autoconf automake pkg-config)) + (list autoconf automake pkg-config sassc + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/picocss/pico.git") + (commit "3052db4bd3439e236479dc0f98069f7d3b559486"))) + (file-name (git-file-name "pico" "1.5.6")) + (sha256 + (base32 + "1gs1li48hqizx7lc4n2fdxn9i2v4vafkqpza7svvfpcamfz29jpi"))))) (home-page "https://git.elephly.net/software/mumi.git") (synopsis "Debbugs web interface") (description "Mumi is a Debbugs web interface.") @@ -4471,7 +4484,7 @@ on RFC 3501 and original @code{imaplib} module.") (define-public rspamd (package (name "rspamd") - (version "3.2") + (version "3.4") (source (origin (method git-fetch) @@ -4479,7 +4492,7 @@ on RFC 3501 and original @code{imaplib} module.") (url "https://github.com/rspamd/rspamd") (commit version))) (sha256 - (base32 "122d5m1nfxxz93bhsk8lm4dazvdknzphb0a1188m7bsa4iynbfv2")) + (base32 "0jgmi8wqzsnwvfj6w4njzhxhcawbafsdxjkx1ym8r2jx8k4hwhi8")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index 9e587ba294..aed5b1961b 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -270,7 +270,7 @@ PostScript, and PDF. Additional tools include the @command{man} viewer, and (define-public man-pages (package (name "man-pages") - (version "6.00") + (version "6.01") (source (origin (method url-fetch) @@ -280,7 +280,7 @@ PostScript, and PDF. Additional tools include the @command{man} viewer, and (string-append "mirror://kernel.org/linux/docs/man-pages/Archive/" "man-pages-" version ".tar.xz"))) (sha256 - (base32 "1252c1356z5spya3yl0lcmmymglx3bmfwmamiz1y5l13xqpwbnwy")))) + (base32 "02swrdim3wq4ppsfv0zdxbnn9apz0bb4fyaihjlq1i484xxigrcb")))) (build-system gnu-build-system) (arguments (list @@ -316,6 +316,7 @@ Linux kernel and C library interfaces employed by user-space programs.") (define-public man-pages-posix (package (name "man-pages-posix") + ;; Make sure that updates are still legally distributable. 2017-a is not. (version "2013-a") (source (origin diff --git a/gnu/packages/mastodon.scm b/gnu/packages/mastodon.scm index e8c31fb168..cad2cac690 100644 --- a/gnu/packages/mastodon.scm +++ b/gnu/packages/mastodon.scm @@ -42,13 +42,13 @@ (define-public toot (package (name "toot") - (version "0.30.1") + (version "0.32.1") (source (origin (method url-fetch) (uri (pypi-uri "toot" version)) (sha256 - (base32 "0r9f2frlwfxkcv6c9lh36maph90v2yp6s7phynbrb3m7v35xzaxz")))) + (base32 "0diskgvqmnkjl4k6sdda8f1sfz0c4w0j8ppv1q7p84phh9vgml6g")))) (build-system python-build-system) (arguments '(#:phases diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index aee050735e..5ff7389a02 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -58,6 +58,7 @@ ;;; Copyright © 2022 Liliana Marie Prikler <liliana.prikler@gmail.com> ;;; Copyright © 2022 Maximilian Heisinger <mail@maxheisinger.at> ;;; Copyright © 2022 Akira Kyle <akira@akirakyle.com> +;;; Copyright © 2022 Roman Scherer <roman.scherer@burningswell.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -93,6 +94,7 @@ #:use-module (guix build-system ocaml) #:use-module (guix build-system perl) #:use-module (guix build-system python) + #:use-module (guix build-system pyproject) #:use-module (guix build-system ruby) #:use-module (gnu packages algebra) #:use-module (gnu packages audio) @@ -127,6 +129,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages java) #:use-module (gnu packages less) + #:use-module (gnu packages libffi) #:use-module (gnu packages lisp) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) @@ -1850,16 +1853,16 @@ similar to MATLAB, GNU Octave or SciPy.") (define-public netcdf (package (name "netcdf") - (version "4.7.4") + (version "4.9.0") (source (origin (method url-fetch) (uri (string-append - "https://www.unidata.ucar.edu/downloads/netcdf/ftp/" - "netcdf-c-" version ".tar.gz")) + "https://downloads.unidata.ucar.edu/netcdf-c/" version + "/netcdf-c-" version ".tar.gz")) (sha256 (base32 - "1a2fpp15a2rl1m50gcvvzd9y6bavl6vjf9zzf63sz5gdmq06yiqf")) + "0j8b814mjdqvqanzmrxpq8hn33n22cdzb3gf9vhya24wnwi615ac")) (modules '((guix build utils))) (snippet ;; Make sure this variable is defined only once. Failing to do so @@ -1872,13 +1875,18 @@ similar to MATLAB, GNU Octave or SciPy.") (native-inputs (list m4 doxygen graphviz)) (inputs - `(("hdf4" ,hdf4-alt) + `(("curl" ,curl) + ("hdf4" ,hdf4-alt) ("hdf5" ,hdf5) - ("curl" ,curl) - ("zlib" ,zlib) - ("libjpeg" ,libjpeg-turbo))) + ("libjpeg" ,libjpeg-turbo) + ("libxml2" ,libxml2) + ("unzip" ,unzip) + ("zlib" ,zlib))) (arguments - `(#:configure-flags '("--enable-doxygen" "--enable-dot" "--enable-hdf4") + `(#:configure-flags '("--enable-doxygen" + "--enable-dot" + "--enable-hdf4" + "--disable-dap-remote-tests") #:phases (modify-phases %standard-phases (add-before 'configure 'fix-source-date @@ -1889,8 +1897,7 @@ similar to MATLAB, GNU Octave or SciPy.") ;; package not reproducible. (substitute* "./configure" (("date -u -d \"\\$\\{SOURCE_DATE_EPOCH\\}\"") - "date --date='@0'")) - #t)) + "date --date='@0'")))) (add-after 'configure 'patch-settings (lambda _ ;; libnetcdf.settings contains the full filename of the compilers @@ -1899,8 +1906,11 @@ similar to MATLAB, GNU Octave or SciPy.") ;; store items. (substitute* "libnetcdf.settings" (("(/gnu/store/)([0-9A-Za-z]*)" all prefix hash) - (string-append prefix (string-take hash 10) "..."))) - #t))) + (string-append prefix (string-take hash 10) "..."))))) + (add-before 'check 'fix-test-rcmerge + (lambda _ + ;; Set HOME, to fix the test-rcmerge test. + (setenv "HOME" "/tmp")))) #:parallel-tests? #f)) ;various race conditions (home-page "https://www.unidata.ucar.edu/software/netcdf/") @@ -2626,67 +2636,119 @@ satisfiability checking (SAT).") (define-public clingo (package (name "clingo") - (version "5.5.0") + (version "5.6.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/potassco/clingo") (commit (string-append "v" version)))) (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet + #~(begin + (delete-file-recursively "clasp") + ;; TODO: Unvendor other third-party stuff + (delete-file-recursively "third_party/catch"))) (sha256 (base32 - "0rfjwkcwm0mmf3r4i7asyjwb6cia4i7px7fn2kdbi9j85qvas4pb")))) + "19s59ndcm2yj0kxlikfxnx2bmp6b7n31wq1zvwc7hyk37rqarwys")))) (build-system cmake-build-system) (arguments - `(#:configure-flags `("-DCLINGO_BUILD_TESTS=on" - "-DCLINGO_INSTALL_LIB=on" - "-DCLINGO_BUILD_STATIC=off" - "-DCLINGO_BUILD_SHARED=on" - ;; XXX: Clingo requries private headers and - ;; sources from clasp - ,(string-append - "-DCLASP_SOURCE_DIR=" - (assoc-ref %build-inputs "clasp-src"))) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-cmake - (lambda _ - (substitute* "CMakeLists.txt" - (("add_subdirectory\\(clasp\\)") - "find_package(clasp REQUIRED)")) - (substitute* "libclingo/CMakeLists.txt" - (("\"cmake/Clingo\"") "\"cmake/clingo\"") - (("ClingoConfig\\.cmake") "clingo-config.cmake") - (("ClingoConfigVersion\\.cmake") - "clingo-config-version.cmake")) - (substitute* "cmake/ClingoConfig.cmake.in" - (("find_package\\(Clasp") "find_package(clasp")) - (rename-file "cmake/ClingoConfig.cmake.in" - "cmake/clingo-config.cmake.in"))) - (add-after 'unpack 'skip-failing-tests - (lambda _ - (with-directory-excursion "libclingo/tests" - (substitute* "CMakeLists.txt" - (("COMMAND test_clingo" all) - (string-append all - " -f " - "\"${CMAKE_CURRENT_SOURCE_DIR}/good.txt\""))) - (call-with-output-file "good.txt" - (lambda (port) - (for-each (lambda (test) (format port "~s~%" test)) - '("parse-ast-v2" "add-ast-v2" "build-ast-v2" - "unpool-ast-v2" "parse_term" - "propagator" "propgator-sequence-mining" - "symbol" "visitor")))))))))) - (inputs - (list clasp libpotassco)) - (native-inputs - `(("clasp-src" ,(package-source clasp)))) + (list + #:configure-flags #~`("-DCLINGO_BUILD_TESTS=on" + "-DCLINGO_INSTALL_LIB=on" + "-DCLINGO_BUILD_STATIC=off" + "-DCLINGO_BUILD_SHARED=on" + "-DCLINGO_USE_LOCAL_CLASP=off" + "-DCLINGO_USE_LOCAL_CATCH=off") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-cmake + (lambda _ + (substitute* "CMakeLists.txt" + (("add_subdirectory\\(clasp\\)") + "find_package(clasp REQUIRED)")) + (substitute* "libclingo/CMakeLists.txt" + (("\"cmake/Clingo\"") "\"cmake/clingo\"") + (("ClingoConfig\\.cmake") "clingo-config.cmake") + (("ClingoConfigVersion\\.cmake") + "clingo-config-version.cmake")) + (substitute* "cmake/ClingoConfig.cmake.in" + (("find_package\\(Clasp") "find_package(clasp")) + (rename-file "cmake/ClingoConfig.cmake.in" + "cmake/clingo-config.cmake.in"))) + (add-after 'unpack 'skip-failing-tests + (lambda _ + (with-directory-excursion "libclingo/tests" + (substitute* "CMakeLists.txt" + (("COMMAND test_clingo" all) + (string-append all + " -f " + "\"${CMAKE_CURRENT_SOURCE_DIR}/good.txt\""))) + (call-with-output-file "good.txt" + (lambda (port) + (for-each (lambda (test) (format port "~s~%" test)) + '("parse-ast-v2" "add-ast-v2" "build-ast-v2" + "unpool-ast-v2" "parse_term" + "propagator" "propgator-sequence-mining" + "symbol" "visitor")))))))))) + (inputs (list catch2-3.1 clasp libpotassco)) + (native-inputs (list pkg-config)) (home-page "https://potassco.org/") (synopsis "Grounder and solver for logic programs") (description "Clingo computes answer sets for a given logic program.") (license license:expat))) +(define-public python-clingo + (package + (inherit clingo) + (name "python-clingo") + (arguments + (substitute-keyword-arguments (package-arguments clingo) + ((#:configure-flags flags #~'()) + #~(cons* "-DCLINGO_BUILD_WITH_PYTHON=pip" + "-DCLINGO_USE_LIB=yes" + #$flags)) + ((#:phases phases #~%standard-phases) + #~(modify-phases #$phases + (add-after 'unpack 'fix-failing-tests + (lambda _ + (substitute* "libpyclingo/clingo/tests/test_conf.py" + (("ctl\\.solve\\(on_statistics=on_statistics\\)" all) + (string-append + all + "; self.skipTest(\"You shall not fail.\")"))))))))) + (inputs (list clingo python-wrapper)) + (propagated-inputs (list python-cffi)) + (native-inputs (modify-inputs (package-native-inputs clingo) + (prepend python-scikit-build))) + (synopsis "Python bindings for clingo") + (description "This package provides Python bindings to the clingo package, +making it so that you can write @acronym{ASPs, Answer Set Programs} through +Python code."))) + +(define-public python-telingo + (package + (name "python-telingo") + (version "2.1.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/potassco/telingo") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (patches (search-patches "python-telingo-fix-comparison.patch")) + (sha256 + (base32 + "0g3khxfdzc2hc7dkiyyqhb399h6h21m5wkp6wy8w71n0m32fiy53")))) + (build-system pyproject-build-system) + (propagated-inputs (list python-clingo)) + (home-page "https://potassco.org/") + (synopsis "Solve dynamic temporal logic programs") + (description "This package provides a system to solve dynamic temporal +logic programs based on clingo.") + (license license:expat))) + (define-public ceres (package (name "ceres-solver") diff --git a/gnu/packages/mercury.scm b/gnu/packages/mercury.scm index 1c7f5c5f55..875e957c9f 100644 --- a/gnu/packages/mercury.scm +++ b/gnu/packages/mercury.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> +;;; Copyright © 2022 jgart <jgart@dismail.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -56,7 +57,7 @@ (define-public mercury-minimal (package (name "mercury-minimal") - (version "20.06.1") + (version "22.01.4") (source (origin (method url-fetch) (uri (string-append @@ -64,7 +65,7 @@ version ".tar.gz")) (sha256 (base32 - "07qwkk871yxd4q1sw5xv26g8jrpvnpprmzvfd7zg7i142kl3l2gg")))) + "1vakjg4rqpplkxw7k91qv8jvlasrr6iwrzrylwqllbq088qs0mbp")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) @@ -112,7 +113,6 @@ "scripts/Mmake.vars.in" "scripts/mdb.in" "scripts/rs6000_hack" - "scripts/fullarch" "scripts/mmc.in" "scripts/canonical_grade" "scripts/mprof.in" @@ -143,14 +143,14 @@ (gc-fork libatomic-ops "https://github.com/Mercury-Language/libatomic_ops.git" - "49b70d57f6922fd8be55a7dcb77955c8abfc9ae9" - "1flvwscsa6b2b8a38vhhcgl10bbkb5nnihw7s7iia60cinf7wcqm"))) + "95809e50a5ff6e765f1af2f589796970a73e9c00" + "0a1y795bvzwzk1v8d9g6wvifj7hvhmxlir1g581bq2slj16h95iz"))) ("libgc" ,(package-source (gc-fork libgc-7 "https://github.com/Mercury-Language/bdwgc.git" - "43ac2ea45261ba0a715534e9da41b2504904c46a" - "0bmzmbs7id0ndyhy9xli6fhfad1shrim6vmy2k8m1nqr5wb31q76"))) + "def741752f55f9068d4f469a14c4b2c168829730" + "07d94j5l9w6l2kjmcwblgn5lf77aw3r0zjn22pq4hbhknky6ny43"))) ("pkg-config" ,pkg-config))) (synopsis "Pure logic programming language (used only for bootstrapping dependent Mercury)") @@ -171,7 +171,7 @@ separate compilation, and numerous optimization/time trade-offs.") (define-public mercury (package (inherit mercury-minimal) (name "mercury") - (version "20.06.1") + (version "22.01.4") (source (origin (method git-fetch) @@ -183,7 +183,7 @@ separate compilation, and numerous optimization/time trade-offs.") (file-name (git-file-name name version)) (sha256 (base32 - "1b6rmdinw8mj6n9sc7c75kkf42gd2k254rf51x4snlrqckxj7aaz")))) + "0ycy1j9a4rdj6d37x02dj6kyr00mykvc5kykci11fim906d92gzh")))) (arguments (substitute-keyword-arguments (package-arguments mercury-minimal) @@ -205,7 +205,6 @@ separate compilation, and numerous optimization/time trade-offs.") "scripts/Mmake.vars.in" "scripts/mdb.in" "scripts/rs6000_hack" - "scripts/fullarch" "scripts/mmc.in" "scripts/mprof.in" "scripts/gud.el" diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index fd7cbf921d..27a68439ef 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -2380,7 +2380,7 @@ QMatrixClient project.") curl json-modern-cxx libevent - libolm + olm libsodium openssl spdlog @@ -2459,11 +2459,11 @@ for the Matrix protocol. It is built on to of @code{Boost.Asio}.") curl gst-plugins-base gst-plugins-bad ; sdp & webrtc for voip - gst-plugins-good ; rtpmanager for voip + gst-plugins-good-qt ; rtpmanager for voip json-modern-cxx libevent libnice ; for voip - libolm + olm lmdb lmdbxx mtxclient @@ -2884,7 +2884,7 @@ validating international phone numbers.") libgcrypt libgee libhandy - libolm + olm libphonenumber modem-manager pidgin diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm index 37b9335ac8..74ec7b6cdf 100644 --- a/gnu/packages/monitoring.scm +++ b/gnu/packages/monitoring.scm @@ -636,7 +636,7 @@ devices.") ;; Required because of patched sources. (invoke "autoreconf" "-vfi")))))) (inputs - (list rrdtool curl libyajl)) + (list rrdtool curl yajl)) (native-inputs (list autoconf automake libtool pkg-config)) (home-page "https://collectd.org/") diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index e2b112832b..03e4485618 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -643,7 +643,7 @@ command-line tool.") (inputs ;; requires one of FFmpeg (prefered), FFTW3 or vDSP ;; use the same ffmpeg version as for acoustid-fingerprinter - (list ffmpeg boost)) + (list ffmpeg-4 boost)) (home-page "https://acoustid.org/chromaprint") (synopsis "Audio fingerprinting library") (description "Chromaprint is a library for calculating audio diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index e0bd7633bc..63fb9bc974 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -116,7 +116,7 @@ interfacing MPD in the C, C++ & Objective C languages.") (define-public mpd (package (name "mpd") - (version "0.23.10") + (version "0.23.11") (source (origin (method url-fetch) (uri @@ -125,7 +125,7 @@ interfacing MPD in the C, C++ & Objective C languages.") "/mpd-" version ".tar.xz")) (sha256 (base32 - "1a764k504nh9vqmsd92qh8sg03fwns19d7mypm618j6c8bmqqp30")))) + "1afwvw2670yz3kxzlqjlg9r8ra8fjihj97hgc6skiwnzz6lfgd7d")))) (build-system meson-build-system) (arguments (list @@ -170,7 +170,7 @@ interfacing MPD in the C, C++ & Objective C languages.") zlib)) (native-inputs (list cmake pkg-config python-sphinx)) ;; Missing optional inputs: - ;; libyajl + ;; yajl ;; libcdio_paranoia ;; libmms ;; libadplug @@ -581,7 +581,7 @@ mpdevil loads all tags and covers on demand.") (define-public mympd (package (name "mympd") - (version "10.1.3") + (version "10.1.6") (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 - "16cvjwbyb1m88kmgylp95p82a4xdjikmrw9arl6kvmgcbyw317yp")))) + "06i8v8dh2x4lrph9lm56h5yy698y95ic5xrgmyisafvxd239sn0x")))) (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 d02d893f02..5be767a138 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -3554,7 +3554,7 @@ tune-in sender list from @url{http://opml.radiotime.com}.") (define-public pianobar (package (name "pianobar") - (version "2020.11.28") + (version "2022.04.01") (source (origin (method git-fetch) (uri (git-reference @@ -3563,7 +3563,7 @@ tune-in sender list from @url{http://opml.radiotime.com}.") (file-name (git-file-name name version)) (sha256 (base32 - "13qx52a1yj2wghf7yd9jf4ar92scbc8zgqdq0kkqf4p9isf1phf3")))) + "14s97fx83dg8szbib2y608hjzfdhz20hch2ify3gqhji58v69wil")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests @@ -4730,7 +4730,7 @@ standalone JACK client and an LV2 plugin is also available.") (define-public sfizz (package (name "sfizz") - (version "1.0.0") + (version "1.2.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/sfztools/sfizz" @@ -4738,34 +4738,38 @@ standalone JACK client and an LV2 plugin is also available.") "/sfizz-" version ".tar.gz")) (sha256 (base32 - "1pk67xvyqkvhjz2q5hbj5v0mnfvdvvl8vl5bsh6ymwiq3glkd41l")) + "1wsr3dpn7a7whqn480m02kp6n4raamnfi3imhf2q8k58md1yn9jw")) (modules '((guix build utils))) (snippet - ;; TODO: pugixml is bundled, but can only be removed in - ;; versions after 1.0.0. '(for-each delete-file-recursively '("external/abseil-cpp" "external/simde" "plugins/editor/external/vstgui4" - "plugins/vst"))))) + "plugins/vst" + "src/external/pugixml"))))) (build-system cmake-build-system) (arguments - `(#:configure-flags - (list "-DSFIZZ_LV2_UI=OFF" - "-DSFIZZ_VST=OFF" - "-DSFIZZ_VST2=OFF" - "-DSFIZZ_TESTS=ON" - "-DSFIZZ_USE_SYSTEM_ABSEIL=ON"))) + (list + #:configure-flags + #~(list "-DSFIZZ_LV2_UI=OFF" + "-DSFIZZ_VST=OFF" + "-DSFIZZ_VST2=OFF" + "-DSFIZZ_TESTS=ON" + "-DSFIZZ_USE_SYSTEM_ABSEIL=ON" + "-DSFIZZ_USE_SYSTEM_PUGIXML=ON" + ;; XXX: Guix SIMDe version 0.7.2 is not enough. + ;; "-DSFIZZ_USE_SYSTEM_SIMDE=ON" + ))) (native-inputs (list pkg-config)) (inputs - `(("abseil-cpp" ,abseil-cpp) - ("glib" ,glib) - ("jack" ,jack-2) - ("lv2" ,lv2) - ("libsamplerate" ,libsamplerate) - ("pugixml" ,pugixml) - ("simde" ,simde))) + (list abseil-cpp + glib + jack-2 + lv2 + libsamplerate + pugixml + simde)) (home-page "https://sfz.tools/sfizz/") (synopsis "SFZ parser and synth library") (description "Sfizz provides an SFZ parser and synth C++ library. It @@ -4775,7 +4779,7 @@ includes LV2 plugins and a JACK standalone client.") (define-public musescore (package (name "musescore") - (version "3.6.2") + (version "4.0") (source (origin (method git-fetch) @@ -4784,22 +4788,22 @@ includes LV2 plugins and a JACK standalone client.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0szvb6mlzy9df9lrq546rrpixa480knzij1wgh6ilflxz87q048q")) + (base32 "16rcwr6fzghv8100syzicabqg8jqvng3zzsi6h3ja4zkp9hcbkcr")) (modules '((guix build utils))) (snippet - ;; Remove unused libraries. '(begin + ;; Remove unused libraries... (for-each delete-file-recursively - '("thirdparty/freetype" - "thirdparty/openssl" - "thirdparty/portmidi" - "thirdparty/qt-google-analytics")))))) + '("thirdparty/freetype")) + ;; ... and precompiled binaries. + (delete-file-recursively "src/diagnostics/crashpad_handler") + (substitute* "src/diagnostics/CMakeLists.txt" + (("install") "#install")))))) (build-system qt-build-system) (arguments `(#:configure-flags - `("-DBUILD_TELEMETRY_MODULE=OFF" ;don't phone home - "-DBUILD_WEBENGINE=OFF" - "-DDOWNLOAD_SOUNDFONT=OFF" + `("-DDOWNLOAD_SOUNDFONT=OFF" + "-DBUILD_DIAGNOSTICS=OFF" "-DMUSESCORE_BUILD_CONFIG=release" "-DUSE_SYSTEM_FREETYPE=ON") ;; There are tests, but no simple target to run. The command used to @@ -4811,6 +4815,8 @@ includes LV2 plugins and a JACK standalone client.") ;; Basically, it requires to start a whole new build process. ;; So we simply skip them. #:tests? #f)) + (native-inputs + (list git-minimal pkg-config qttools-5)) (inputs (list alsa-lib freetype @@ -4823,15 +4829,17 @@ includes LV2 plugins and a JACK standalone client.") portaudio portmidi pulseaudio + python qtbase-5 qtdeclarative-5 qtgraphicaleffects + qtnetworkauth-5 + qtquickcontrols-5 qtquickcontrols2-5 qtscript qtsvg-5 + qtx11extras qtxmlpatterns)) - (native-inputs - (list pkg-config qttools-5)) (synopsis "Music composition and notation software") (description "MuseScore is a music score typesetter. Its main purpose is the creation @@ -4846,7 +4854,7 @@ appearance and layout are provided. MuseScore can also play back scores through the built-in sequencer and SoundFont sample library.") (home-page "https://musescore.org") - (license license:gpl2))) + (license license:gpl3))) (define-public muse-sequencer (package @@ -5010,7 +5018,7 @@ specification and header.") (define-public rosegarden (package (name "rosegarden") - (version "22.06") + (version "22.12") (source (origin (method url-fetch) @@ -5018,61 +5026,62 @@ specification and header.") (version-major+minor version) "/" "rosegarden-" version ".tar.bz2")) (sha256 - (base32 "1nzs6g8g36g37zi8dl7gznc77596418g6rzm9a5vxcgbam8q494h")))) + (base32 "061xy3flmj7bllibkp5wzdycvghfxvyzdr9g9yrr5q3m70a7wznz")))) (build-system cmake-build-system) (arguments - `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-tests - (lambda _ - (substitute* "CMakeLists.txt" - (("BUILD_TESTING OFF") "BUILD_TESTING ON") - ;; Make tests work. - ((" -fvisibility=hidden") "")))) - (add-after 'unpack 'fix-references - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "src/gui/general/ProjectPackager.cpp" - (("\"flac\\>") - (string-append "\"" (assoc-ref inputs "flac") "/bin/flac")) - (("\"wavpack\\>") - (string-append "\"" (assoc-ref inputs "wavpack") "/bin/wavpack")) - (("\"wvunpack\\>") - (string-append "\"" (assoc-ref inputs "wavpack") "/bin/wvunpack")) - (("\"bash\\>") - (string-append "\"" (assoc-ref inputs "bash") "/bin/bash")) - (("\"tar\\>") - (string-append "\"" (assoc-ref inputs "tar") "/bin/tar"))) - (substitute* "src/gui/general/LilyPondProcessor.cpp" - (("\"convert-ly\\>") - (string-append "\"" (assoc-ref inputs "lilypond") "/bin/convert-ly")) - (("\"lilypond\\>") - (string-append "\"" (assoc-ref inputs "lilypond") "/bin/lilypond"))))) - (add-after 'unpack 'make-reproducible - (lambda _ - ;; Prevent Last-Modified from being written. - ;; The "*.qm" files that are used in locale.qrc would have a new - ;; mtime otherwise that is written into qrc_locale.cpp in the - ;; end - except when we disable it. - (substitute* "src/CMakeLists.txt" - (("COMMAND [$][{]QT_RCC_EXECUTABLE[}]") - "COMMAND ${QT_RCC_EXECUTABLE} --format-version 1") - ;; Extraneous. - ;;(("qt5_add_resources[(]rg_SOURCES ../data/data.qrc[)]") - ;; "qt5_add_resources(rg_SOURCES ../data/data.qrc OPTIONS --format-version 1)") - ) - ;; Make hashtable traversal order predicable. - (setenv "QT_RCC_TEST" "1"))) ; important - (add-before 'check 'prepare-check - (lambda _ - (setenv "QT_QPA_PLATFORM" "offscreen") - ;; Tests create files in $HOME/.local/share/rosegarden . - (mkdir-p "/tmp/foo") - (setenv "HOME" "/tmp/foo") - (setenv "XDG_RUNTIME_DIR" "/tmp/foo")))))) + (list + #:configure-flags #~(list "-DCMAKE_BUILD_TYPE=Release") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-tests + (lambda _ + (substitute* "CMakeLists.txt" + (("BUILD_TESTING OFF") "BUILD_TESTING ON") + ;; Make tests work. + ((" -fvisibility=hidden") "")))) + (add-after 'unpack 'fix-references + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/gui/general/ProjectPackager.cpp" + (("\"flac\\>") + (string-append "\"" (search-input-file inputs "/bin/flac"))) + (("\"wavpack\\>") + (string-append "\"" (search-input-file inputs "/bin/wavpack"))) + (("\"wvunpack\\>") + (string-append "\"" (search-input-file inputs "/bin/wvunpack"))) + (("\"bash\\>") + (string-append "\"" (search-input-file inputs "/bin/bash"))) + (("\"tar\\>") + (string-append "\"" (search-input-file inputs "/bin/tar")))) + (substitute* "src/gui/general/LilyPondProcessor.cpp" + (("\"convert-ly\\>") + (string-append "\"" (search-input-file inputs "/bin/convert-ly"))) + (("\"lilypond\\>") + (string-append "\"" (search-input-file inputs "/bin/lilypond")))))) + (add-after 'unpack 'make-reproducible + (lambda _ + ;; Prevent Last-Modified from being written. + ;; The "*.qm" files that are used in locale.qrc would have a new + ;; mtime otherwise that is written into qrc_locale.cpp in the + ;; end - except when we disable it. + (substitute* "src/CMakeLists.txt" + (("COMMAND [$][{]QT_RCC_EXECUTABLE[}]") + "COMMAND ${QT_RCC_EXECUTABLE} --format-version 1") + ;; Extraneous. + ;;(("qt5_add_resources[(]rg_SOURCES ../data/data.qrc[)]") + ;; "qt5_add_resources(rg_SOURCES ../data/data.qrc OPTIONS --format-version 1)") + ) + ;; Make hashtable traversal order predicable. + (setenv "QT_RCC_TEST" "1"))) ; important + (add-before 'check 'prepare-check + (lambda _ + (setenv "QT_QPA_PLATFORM" "offscreen") + ;; Tests create files in $HOME/.local/share/rosegarden . + (mkdir-p "/tmp/foo") + (setenv "HOME" "/tmp/foo") + (setenv "XDG_RUNTIME_DIR" "/tmp/foo")))))) (inputs (list alsa-lib - bash + bash-minimal dssi flac fftwf @@ -5083,12 +5092,13 @@ specification and header.") lilypond lrdf qtbase-5 + shared-mime-info tar lirc wavpack zlib)) (native-inputs - (list pkg-config qttools-5)) ;for qtlinguist + (list pkg-config qttools-5)) ;for qtlinguist (synopsis "Music composition and editing environment based around a MIDI sequencer") (description "Rosegarden is a music composition and editing environment @@ -6806,7 +6816,7 @@ choice.") (list alsa-lib boost curl - ffmpeg + ffmpeg-4 lame libev libmicrohttpd diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index b7654b9f9c..e386c78118 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -31,13 +31,13 @@ (define-public nano (package (name "nano") - (version "7.0") + (version "7.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/nano/nano-" version ".tar.xz")) (sha256 - (base32 "0j91am8y8dy48dj1nf8p1lhpassgv2py3w414vc8d1rbig1ymmld")))) + (base32 "0dk8820w631ip6hpl7qc8kg5viw7wc154l7fvpvg06bmkcg7bfjp")))) (build-system gnu-build-system) (inputs (list gettext-minimal ncurses)) diff --git a/gnu/packages/ncdu.scm b/gnu/packages/ncdu.scm index 5931ce7b84..feea8f8819 100644 --- a/gnu/packages/ncdu.scm +++ b/gnu/packages/ncdu.scm @@ -30,17 +30,20 @@ #:use-module (gnu packages perl) #:use-module (gnu packages zig)) -(define-public ncdu +(define-public ncdu-1 + ;; This old version is ‘LTS’. Version 2 works fine and has more features, + ;; but Zig is still a fast-moving target and doesn't support cross-compilation + ;; yet, so we'll keep both for just a little longer. (package (name "ncdu") - (version "1.17") + (version "1.18") (source (origin (method url-fetch) (uri (string-append "https://dev.yorhel.nl/download/ncdu-" version ".tar.gz")) (sha256 (base32 - "1wfvdajln0iy7364nxkg4bpgdv8l3b6a9bnkhy67icqsxnl4a1w1")))) + "15czid6584j7vclwrw85ihahknghxv2w6b9mrk9cbjc0cnls2drw")))) (build-system gnu-build-system) (inputs (list ncurses)) (synopsis "Ncurses-based disk usage analyzer") @@ -55,10 +58,10 @@ ncurses installed.") version))) (home-page "https://dev.yorhel.nl/ncdu"))) -(define-public ncdu-2 +(define-public ncdu (package - (inherit ncdu) - (name "ncdu2") ; To destinguish it from the C based version. + (inherit ncdu-1) + (name "ncdu") (version "2.2.1") (source (origin (method url-fetch) @@ -66,12 +69,19 @@ ncurses installed.") version ".tar.gz")) (sha256 (base32 - "0hfimrr7z9zrfkiyj09i8nh4a1rjn7d00y9xzpc7mkyqpkvghjjy")))) + "0hfimrr7z9zrfkiyj09i8nh4a1rjn7d00y9xzpc7mkyqpkvghjjy")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Delete a pregenerated man page. We'll build it ourselves. + (delete-file "ncdu.1"))))) (arguments (list #:make-flags #~(list (string-append "PREFIX=" #$output) - (string-append "CC=" #$(cc-for-target))) + (string-append "CC=" #$(cc-for-target)) + ;; XXX By default, zig builds with -march=native! + (string-append "ZIG_FLAGS=-Drelease-fast -Dcpu=baseline")) #:phases #~(modify-phases %standard-phases (delete 'configure) ; No configure script. @@ -81,12 +91,13 @@ ncurses installed.") (mkdtemp "/tmp/zig-cache-XXXXXX")))) (add-after 'build 'build-manpage (lambda _ - (delete-file "ncdu.1") (invoke "make" "doc"))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? (invoke "zig" "test" "build.zig"))))))) (native-inputs - (list perl zig)) - (properties `((upstream-name . "ncdu"))))) + (list perl zig)))) + +(define-public ncdu-2 + (deprecated-package "ncdu2" ncdu)) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 751eb2b867..a7b51ed1ff 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -196,7 +196,7 @@ runs on top of IP or UDP, and supports both v4 and v6 versions.") (define-public arp-scan (package (name "arp-scan") - (version "1.9.7") + (version "1.9.8") (source (origin (method git-fetch) @@ -206,7 +206,7 @@ runs on top of IP or UDP, and supports both v4 and v6 versions.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1mf7a4f9vzvnkiavc87aqyciswggsb4fpy7j05jxnvjyyxv3l7gp")))) + (base32 "18pck3hi7caykpkry5ri16w4w8m11g8gvh3qx5rhwsc6d9xa2a6d")))) (build-system gnu-build-system) (inputs (list libpcap)) @@ -1754,14 +1754,14 @@ of the same name.") (define-public wireshark (package (name "wireshark") - (version "4.0.1") + (version "4.0.2") (source (origin (method url-fetch) (uri (string-append "https://www.wireshark.org/download/src/wireshark-" version ".tar.xz")) (sha256 - (base32 "1hpxkw0ww6b8fnda5bhgpma2836bfarpxgnkkrzz9fqkkpwh5c5k")))) + (base32 "07a18jx88jaa2j1i949w9n1yb149xi02s80inbfji6rgkxliangk")))) (build-system cmake-build-system) (arguments `(#:phases @@ -1966,15 +1966,15 @@ transmission protocol (SCTP) in a Go application.") (base32 "1y7sbgkhgadmd93x1zafqc4yp26ssiv16ni5bbi9vmvvdl55m29y")))) (build-system gnu-build-system) + (arguments + (list #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "PREFIX=" #$output)) + #:tests? #f)) ; no test suite (native-inputs - `(("gettext" ,gettext-minimal))) + (list gettext-minimal)) (inputs (list fftw ncurses openssl)) - (arguments - `(#:make-flags (list ,(string-append "CC=" (cc-for-target)) - (string-append "DESTDIR=" (assoc-ref %outputs "out")) - "PREFIX=") - #:tests? #f)) ; no tests (home-page "https://www.vanheusden.com/httping/") (synopsis "Web server latency and throughput monitor") (description @@ -2760,7 +2760,7 @@ procedure calls (RPCs).") (define-public openvswitch (package (name "openvswitch") - (version "3.0.1") + (version "3.0.3") (source (origin (method url-fetch) (uri (string-append @@ -2768,7 +2768,7 @@ procedure calls (RPCs).") version ".tar.gz")) (sha256 (base32 - "0s5xbcchnfqlgrabjs76bwd5d6qhvjx352r274r5p7wis0b1g8g4")))) + "0qwlpnwjcyb7fpw6yp65mdqg20i1851z70xmvzxwxwpifq56a1pm")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -3852,14 +3852,14 @@ protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP.") (define-public bird (package (name "bird") - (version "2.0.10") + (version "2.0.11") (source (origin (method url-fetch) (uri (string-append "ftp://bird.network.cz/pub/bird/bird-" version ".tar.gz")) (sha256 (base32 - "0npx3zgbjnhm4905zmj2qkz3d13s8hakassq6sbzm1ywv3fl3lvy")))) + "1mjm7w5zkbc5q2v4bdn7mcqzcq94s7fiz8a5lz98kl5rcwxvi9v0")))) (inputs (list libssh readline)) (native-inputs @@ -4257,14 +4257,14 @@ realistic with today's hardware.") (define-public lldpd (package (name "lldpd") - (version "1.0.15") + (version "1.0.16") (source (origin (method url-fetch) (uri (string-append "https://media.luffy.cx/files/lldpd/lldpd-" version ".tar.gz")) (sha256 - (base32 "09iidaan6gq384n7ykdwwsll3vmq6q7zd7j7j721k2p91c9kmzpp")) + (base32 "1ab5hkgi2iwqpfw6xy2wxjhqmz6pnkynfkg85zm7r9kv1ijr3cz3")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index e0bedf74f9..5109cd052a 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -185,6 +185,67 @@ OCaml and can effectively bootstrap OCaml 4.07. This package produces a native @command{ocamlc} and a bytecode @command{ocamllex}.") (license license:expat)))) +(define-public ocaml-5.0 + (package + (name "ocaml") + (version "5.0.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml/ocaml") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1p0p8wldrnbr61wfy3x4122017g4k5gjvfwlg3mvlqn8r2fxn2m5")))) + (build-system gnu-build-system) + (native-search-paths + (list (search-path-specification + (variable "OCAMLPATH") + (files (list "lib/ocaml" "lib/ocaml/site-lib"))) + (search-path-specification + (variable "CAML_LD_LIBRARY_PATH") + (files (list "lib/ocaml/site-lib/stubslibs" + "lib/ocaml/site-lib/stublibs"))))) + (native-inputs + (list perl pkg-config)) + (inputs + (list libx11 libiberty ;needed for objdump support + zlib)) ;also needed for objdump support + (arguments + `(#:configure-flags '("--enable-ocamltest") + #:test-target "tests" + #:make-flags '("world.opt") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-/bin/sh-references + (lambda* (#:key inputs #:allow-other-keys) + (let* ((sh (search-input-file inputs "/bin/sh")) + (quoted-sh (string-append "\"" sh "\""))) + (with-fluids ((%default-port-encoding #f)) + (for-each + (lambda (file) + (substitute* file + (("\"/bin/sh\"") + (begin + (format (current-error-port) "\ +patch-/bin/sh-references: ~a: changing `\"/bin/sh\"' to `~a'~%" + file quoted-sh) + quoted-sh)))) + (find-files "." "\\.ml$"))))))))) + (home-page "https://ocaml.org/") + (synopsis "The OCaml programming language") + (description + "OCaml is a general purpose industrial-strength programming language with +an emphasis on expressiveness and safety. Developed for more than 20 years at +Inria it benefits from one of the most advanced type systems and supports +functional, imperative and object-oriented styles of programming.") + ;; The compiler is distributed under qpl1.0 with a change to choice of + ;; law: the license is governed by the laws of France. The library is + ;; distributed under lgpl2.0. + (license (list license:qpl license:lgpl2.0)))) + + (define-public ocaml-4.14 (package (name "ocaml") @@ -880,7 +941,7 @@ name = Guix Builder") ("ocaml-cppo" ,ocaml-cppo) ;; For tests. - ("git" ,git-minimal) + ("git" ,git-minimal/fixed) ("openssl" ,openssl) ("python" ,python-wrapper) ("rsync" ,rsync) @@ -901,10 +962,12 @@ name = Guix Builder") ("opam-repo-f372039d" ,(opam-repo "f372039db86a970ef3e662adbfe0d4f5cd980701" "0ld7fcry6ss6fmrpswvr6bikgx299w97h0gwrjjh7kd7rydsjdws"))))) (inputs - (list ocaml ncurses curl bubblewrap)) - (propagated-inputs - (list ocaml-cmdliner ocaml-dose3 ocaml-mccs ocaml-opam-file-format - ocaml-re)) + (list ocaml ncurses curl bubblewrap ocaml-cmdliner ocaml-dose3 + ocaml-mccs ocaml-opam-file-format ocaml-re)) + (properties + ;; OPAM is used as a tool and not as a library, we can use the OCaml 4.14 + ;; compiled opam until opam is compatible with OCaml 5.0. + `((ocaml5.0-variant . ,(delay opam)))) (home-page "http://opam.ocamlpro.com/") (synopsis "Package manager for OCaml") (description @@ -1343,14 +1406,14 @@ to the other.") (define-public ocaml-findlib (package (name "ocaml-findlib") - (version "1.9.3") + (version "1.9.5") (source (origin (method url-fetch) (uri (string-append "http://download.camlcity.org/download/" "findlib" "-" version ".tar.gz")) (sha256 (base32 - "0hfcwamcvinmww59b5i4yxbf0kxyzkp5qv3d1c7ybn9q52vgq463")))) + "0w9578j1561f5gi51sn2jgxm3kh3sn88cpannhdkqcdg1kk08iqd")))) (build-system gnu-build-system) (native-inputs (list m4 ocaml)) @@ -1405,6 +1468,13 @@ compilers that can directly deal with packages.") (native-inputs (list m4 ocaml-4.09)))) +(define-public ocaml5.0-findlib + (package + (inherit ocaml-findlib) + (name "ocaml5.0-findlib") + (native-inputs + (list m4 ocaml-5.0)))) + (define-public ocaml-ounit2 (package (name "ocaml-ounit2") @@ -1618,7 +1688,7 @@ archive(native) = \"frontc.cmxa\"")))) (define-public ocaml-qcheck (package (name "ocaml-qcheck") - (version "0.18.1") + (version "0.20") (source (origin (method git-fetch) @@ -1627,12 +1697,12 @@ archive(native) = \"frontc.cmxa\"")))) (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0g3r8lrw6fsdphgpnp08saxyxk1vd3chpmb564ir2qnsp716vz6z")))) + (base32 "1r0m5p1dd06lbgfxqdpl1ya4vb8252z7hqkvdi9k444g4rx2ay3p")))) (build-system dune-build-system) (arguments `(#:test-target ".")) (propagated-inputs - (list ocaml-alcotest ocaml-ounit)) + (list ocaml-alcotest ocaml-ounit ocaml-ppxlib)) (native-inputs (list ocamlbuild)) (properties `((ocaml4.07-variant . ,(delay ocaml4.07-qcheck)))) @@ -1752,6 +1822,9 @@ following a very simple s-expression syntax.") (define ocaml4.09-dune-bootstrap (package-with-ocaml4.09 dune-bootstrap)) +(define ocaml5.0-dune-bootstrap + (package-with-ocaml5.0 dune-bootstrap)) + (define-public dune-configurator (package (inherit dune-bootstrap) @@ -1772,7 +1845,8 @@ following a very simple s-expression syntax.") (delete-file-recursively "vendor/pp")))))) (propagated-inputs (list ocaml-csexp)) - (properties `((ocaml4.09-variant . ,(delay ocaml4.09-dune-configurator)))) + (properties `((ocaml4.09-variant . ,(delay ocaml4.09-dune-configurator)) + (ocaml5.0-variant . ,(delay ocaml5.0-dune-configurator)))) (synopsis "Dune helper library for gathering system configuration") (description "Dune-configurator is a small library that helps writing OCaml scripts that test features available on the system, in order to generate @@ -1797,13 +1871,25 @@ config.h files for instance. Among other things, dune-configurator allows one t (propagated-inputs `(("ocaml-csexp" ,ocaml4.09-csexp))))) +(define-public ocaml5.0-dune-configurator + (package + (inherit dune-configurator) + (name "ocaml5.0-dune-configurator") + (arguments + `(,@(package-arguments dune-configurator) + #:dune ,ocaml5.0-dune-bootstrap + #:ocaml ,ocaml-5.0 + #:findlib ,ocaml5.0-findlib)) + (propagated-inputs (list ocaml5.0-csexp)))) + (define-public dune (package (inherit dune-bootstrap) (propagated-inputs (list dune-configurator)) (properties `((ocaml4.07-variant . ,(delay ocaml4.07-dune)) - (ocaml4.09-variant . ,(delay ocaml4.09-dune)))))) + (ocaml4.09-variant . ,(delay ocaml4.09-dune)) + (ocaml5.0-variant . ,(delay ocaml5.0-dune)))))) (define-public ocaml4.09-dune (package @@ -1825,6 +1911,12 @@ config.h files for instance. Among other things, dune-configurator allows one t (base32 "0l4x0x2fz135pljv88zj8y6w1ninsqw0gn1mdxzprd6wbxbyn8wr")))))) +(define-public ocaml5.0-dune + (package + (inherit ocaml5.0-dune-bootstrap) + (propagated-inputs + (list ocaml5.0-dune-configurator)))) + (define-public ocaml-csexp (package (name "ocaml-csexp") @@ -1850,7 +1942,8 @@ config.h files for instance. Among other things, dune-configurator allows one t #t))))) (propagated-inputs (list ocaml-result)) - (properties `((ocaml4.09-variant . ,(delay ocaml4.09-csexp)))) + (properties `((ocaml4.09-variant . ,(delay ocaml4.09-csexp)) + (ocaml5.0-variant . ,(delay ocaml5.0-csexp)))) (home-page "https://github.com/ocaml-dune/csexp") (synopsis "Parsing and printing of S-expressions in Canonical form") (description "This library provides minimal support for Canonical @@ -1879,6 +1972,18 @@ module of this library is parameterised by the type of S-expressions.") (propagated-inputs `(("ocaml-result" ,ocaml4.09-result))))) +(define-public ocaml5.0-csexp + (package + (inherit ocaml-csexp) + (name "ocaml5.0-csexp") + (arguments + `(#:ocaml ,ocaml-5.0 + #:findlib ,ocaml5.0-findlib + ,@(substitute-keyword-arguments (package-arguments ocaml-csexp) + ((#:dune _) ocaml5.0-dune-bootstrap)))) + (propagated-inputs + `(("ocaml-result" ,ocaml5.0-result))))) + (define-public ocaml-migrate-parsetree (package (name "ocaml-migrate-parsetree") @@ -2064,7 +2169,8 @@ bitsrings in Erlang style as primitives to the language."))) (arguments `(#:test-target "." #:dune ,dune-bootstrap)) - (properties `((ocaml4.09-variant . ,(delay ocaml4.09-result)))) + (properties `((ocaml4.09-variant . ,(delay ocaml4.09-result)) + (ocaml5.0-variant . ,(delay ocaml5.0-result)))) (home-page "https://github.com/janestreet/result") (synopsis "Compatibility Result module") (description "Uses the new result type defined in OCaml >= 4.03 while @@ -2081,6 +2187,16 @@ defined in this library.") #:dune ,ocaml4.09-dune-bootstrap #:ocaml ,ocaml-4.09 #:findlib ,ocaml4.09-findlib)))) + +(define-public ocaml5.0-result + (package + (inherit ocaml-result) + (name "ocaml5.0-result") + (arguments + `(#:test-target "." + #:dune ,ocaml5.0-dune-bootstrap + #:ocaml ,ocaml-5.0 + #:findlib ,ocaml5.0-findlib)))) (define-public ocaml-topkg (package @@ -2607,6 +2723,207 @@ for mapping files in memory. This function is the same as the @command{Unix.map_file} function added in OCaml >= 4.06.") (license (list license:qpl license:lgpl2.0)))) +(define-public ocaml-psq + (package + (name "ocaml-psq") + (version "0.2.1") + (home-page "https://github.com/pqwy/psq") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 (base32 + "0ahxbzkbq5sw8sqv31c2lil2zny4076q8b0dc7h5slq7i2r23d79")))) + (build-system dune-build-system) + (native-inputs (list ocaml-qcheck ocaml-alcotest)) + (synopsis "Functional Priority Search Queues for OCaml") + (description + "This library provides Functional Priority Search Queues for OCaml. +Typical applications are searches, schedulers and caches.") + (license license:isc))) + +(define-public ocaml-optint + (package + (name "ocaml-optint") + (version "0.3.0") + (home-page "https://github.com/mirage/optint") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 (base32 + "1qj32bcw1in7s6raxdvbmjr3lvj99iwv98x1ar9cwxp4zf8ybfss")))) + (build-system dune-build-system) + (arguments `(#:test-target ".")) + (native-inputs (list ocaml-crowbar ocaml-monolith ocaml-fmt)) + (synopsis "Efficient integer types on 64-bit architectures for OCaml") + (description + "This OCaml library provides two new integer types, @code{Optint.t} and +@code{Int63.t}, which guarantee efficient representation on 64-bit +architectures and provide a best-effort boxed representation on 32-bit +architectures.") + (license license:isc))) + +(define-public ocaml-hmap + (package + (name "ocaml-hmap") + (version "0.8.1") + (source + (origin + (method url-fetch) + (uri "https://erratique.ch/software/hmap/releases/hmap-0.8.1.tbz") + (sha256 + (base32 "10xyjy4ab87z7jnghy0wnla9wrmazgyhdwhr4hdmxxdn28dxn03a")))) + (build-system ocaml-build-system) + (arguments + `(#:build-flags + (list "build" "--tests" "true") + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (native-inputs (list ocaml-topkg ocamlbuild opam)) + (home-page "https://erratique.ch/software/hmap") + (synopsis "Heterogeneous value maps for OCaml") + (description + "Hmap provides heterogeneous value maps for OCaml. These maps bind keys to +values with arbitrary types. Keys witness the type of the value they are bound +to which allows adding and looking up bindings in a type safe manner.") + (license license:isc))) + +(define ocaml-eio + (package + (name "ocaml-eio") + (version "0.7") + (home-page "https://github.com/ocaml-multicore/eio") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 (base32 + "118raxdwv6pn5b152ffdhmwdi0l4wlwflcj2nmckfmm7v1z2fq4s")))) + (build-system dune-build-system) + (arguments `(#:package "eio" + #:test-target ".")) + (propagated-inputs (list ocaml-bigstringaf + ocaml-cstruct + ocaml-lwt + ocaml-lwt-dllist + ocaml-logs + ocaml-optint + ocaml-psq + ocaml-fmt + ocaml-hmap + ocaml-mtime + ocaml-odoc)) + (native-inputs (list ocaml-astring ocaml-crowbar ocaml-alcotest)) + (synopsis "Effect-based direct-style IO API for OCaml") + (description "This package provides an effect-based IO API for multicore +OCaml with fibers.") + (license license:isc))) + +(define-public ocaml5.0-eio + (package-with-ocaml5.0 ocaml-eio)) + +(define ocaml-eio-luv + (package + (inherit ocaml-eio) + (name "ocaml-eio-luv") + (arguments `(#:package "eio_luv" + #:test-target ".")) + (propagated-inputs (list ocaml-eio ocaml-luv)) + (native-inputs (list ocaml-mdx)) + (synopsis "Libuv-based backend for Ocaml Eio") + (description "@code{Eio_luv} provides a cross-platform backend for +@code{Ocaml Eio}'s APIs using luv (libuv)"))) + +(define-public ocaml5.0-eio-luv + (package-with-ocaml5.0 ocaml-eio-luv)) + +(define-public ocaml-uring + (package + (name "ocaml-uring") + (version "0.4") + (home-page "https://github.com/ocaml-multicore/ocaml-uring") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 (base32 + "0k70y7nb2wrk2yql0pwnrhsp1x7k9ld4gd8iihbv6r34kcm3a5m1")))) + (build-system dune-build-system) + (arguments `(#:test-target ".")) + (propagated-inputs + (list ocaml-cstruct + ocaml-fmt + ocaml-optint)) + (native-inputs + (list ocaml-lwt + ocaml-bechamel + ocaml-logs + ocaml-cmdliner + ocaml-mdx)) + (synopsis "OCaml bindings for Linux io_uring") + (description "This package provides OCaml bindings to the Linux +@code{io_uring} kernel IO interfaces.") + (license + (list license:isc license:expat)))) + +(define ocaml-eio-linux + (package + (inherit ocaml-eio) + (name "ocaml-eio-linux") + (arguments `(#:package "eio_linux" + #:test-target ".")) + (propagated-inputs + (list ocaml-eio + ocaml-uring + ocaml-logs + ocaml-fmt)) + (native-inputs + (list ocaml-mdx + ocaml-alcotest + ocaml-mdx)) + (synopsis "Linux backend for ocaml-eio") + (description "@code{Eio_linux} provides a Linux io-uring backend for +@code{Ocaml Eio} APIs, plus a low-level API that can be used directly +(in non-portable code)."))) + +(define-public ocaml5.0-eio-linux + (package-with-ocaml5.0 ocaml-eio-linux)) + +(define ocaml-eio-main + (package + (inherit ocaml-eio) + (name "ocaml-eio-main") + (arguments `(#:package "eio_main" + #:test-target "." + ;; tests require network + #:tests? #f)) + (propagated-inputs + (list ocaml-eio + ocaml-eio-luv + ocaml-eio-linux)) + (native-inputs + (list ocaml-mdx)) + (synopsis "Eio backend selector") + (description "@code{Eio_main} selects an appropriate backend (e.g. +@samp{eio_linux} or @samp{eio_luv}), depending on your platform."))) + +(define-public ocaml5.0-eio-main + (package-with-ocaml5.0 ocaml-eio-main)) + (define-public ocaml-lwt (package (name "ocaml-lwt") @@ -2637,6 +2954,27 @@ process. Also, in many cases, Lwt threads can interact without the need for locks or other synchronization primitives.") (license license:lgpl2.1))) +(define-public ocaml-lwt-dllist + (package + (name "ocaml-lwt-dllist") + (version "1.0.1") + (home-page "https://github.com/mirage/lwt-dllist") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "18bi8fb4yly1pyf43pjvvdhlyzb3wkgxifffx9d1g9y2mwsng6jw")))) + (build-system dune-build-system) + (native-inputs (list ocaml-lwt)) + (synopsis "OCaml library providing mutable doubly-linked list with Lwt iterators") + (description "This OCaml library provides an implementation of a mutable +doubly-linked list with Lwt iterators.") + (license license:expat))) + (define-public ocaml-luv (package (name "ocaml-luv") @@ -3400,6 +3738,30 @@ your functions and to easily compare the results. A statistical test is used to determine whether the results truly differ.") (license license:lgpl3+))) +(define-public ocaml-bechamel + (package + (name "ocaml-bechamel") + (version "0.3.0") + (home-page "https://github.com/mirage/bechamel") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1x7sf45iy5dzx7kknbkkvpna42rcwpj5p55y0nqsg2fb4srj0b1q")))) + (build-system dune-build-system) + (arguments `(#:package "bechamel")) + (propagated-inputs (list ocaml-fmt ocaml-stdlib-shims)) + (synopsis "Yet Another Benchmark in OCaml") + (description + "BEnchmark for a CHAMEL/camel/caml which is agnostic to the system. It's a +micro-benchmark tool for OCaml which lets the user to re-analyzes and prints +samples.") + (license license:expat))) + (define-public ocaml-batteries (package (name "ocaml-batteries") @@ -4590,6 +4952,7 @@ long and size_t whose sizes depend on the host platform.") ("integers" ,ocaml-integers))) (inputs (list libffi)) + (properties `((ocaml5.0-variant . ,(delay ocaml5.0-ctypes)))) (synopsis "Library for binding to C libraries using pure OCaml") (description "Ctypes is a library for binding to C libraries using pure OCaml. The primary aim is to make writing C extensions as straightforward as @@ -4600,6 +4963,33 @@ functions that you want to call, then bind directly to those functions -- all without writing or generating any C!") (license license:expat))) +(define-public ocaml5.0-ctypes + ;; Contains fix to support OCaml 5.0 + ;; (https://github.com/ocamllabs/ocaml-ctypes/pull/709) + (let ((commit "52ff621f47dbc1ee5a90c30af0ae0474549946b4") + (revision "0")) + (package-with-ocaml5.0 + (package + (inherit ocaml-ctypes) + (name "ocaml-ctypes") + (version (git-version "0.20.1" revision commit)) + (home-page "https://github.com/ocamllabs/ocaml-ctypes") + (arguments + (append + ;; Some tests fail. Failure seems to be due to OCaml 5.0. + `(#:tests? #f) + (package-arguments ocaml-ctypes))) + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0vyiryqchz0mdfhal7bdivqsk5yhvzzckrqv495rlpbdxzklcp7g")))) + (properties '()))))) + (define-public ocaml-ocb-stubblr (package (name "ocaml-ocb-stubblr") @@ -4979,7 +5369,7 @@ serializers and deserializers from type definitions.") (define-public ocaml-merlin-lib (package (name "ocaml-merlin-lib") - (version "4.6-414") + (version "4.7-414") (source (origin (method git-fetch) @@ -4989,17 +5379,39 @@ serializers and deserializers from type definitions.") (file-name (git-file-name name version)) (sha256 (base32 - "1cpa9x45w54l4mqqmc8z3s5gscggw37gb6z9i7wwss86fj1wgclh")))) + "1bd4j2zq0lyszbkibgky1z9swv4scb7ljww3fv1kqy0cya743b5l")))) (build-system dune-build-system) (arguments '(#:package "merlin-lib" #:tests? #f)) ; no tests (propagated-inputs (list ocaml-csexp ocaml-menhir)) + (properties `((ocaml5.0-variant . ,(delay ocaml5.0-merlin-lib)))) (home-page "https://ocaml.github.io/merlin/") (synopsis "Merlin libraries") (description "These libraries provides access to low-level compiler interfaces and the standard higher-level merlin protocol.") (license license:expat))) +;; the 500 indicates that this version is for OCaml 5.0 +(define ocaml-merlin-lib-500 + (package + (inherit ocaml-merlin-lib) + (name "ocaml-merlin-lib") + (version "4.7.1-500") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml/merlin") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05a87i2dkzv800nwb6y7b2j45avg8gs3gzb5a98wrj1i5zjqwh01")))) + (properties '()))) + +(define-public ocaml5.0-merlin-lib + (package-with-ocaml5.0 ocaml-merlin-lib-500)) + (define-public ocaml-dot-merlin-reader (package (inherit ocaml-merlin-lib) @@ -5007,10 +5419,23 @@ interfaces and the standard higher-level merlin protocol.") (arguments '(#:package "dot-merlin-reader" #:tests? #f)) ; no tests (propagated-inputs (list ocaml-merlin-lib)) + (properties `((ocaml5.0-variant . ,(delay ocaml5.0-dot-merlin-reader)))) (synopsis "Reads config files for @code{ocaml-merlin}") (description "@code{ocaml-dot-merlin-reader} is an external reader for @code{ocaml-merlin} configurations."))) +(define-public ocaml5.0-dot-merlin-reader + (package-with-ocaml5.0 + (package + (inherit ocaml-merlin-lib-500) + (name "ocaml-dot-merlin-reader") + (arguments '(#:package "dot-merlin-reader" + #:tests? #f)) ; no tests + (propagated-inputs (list ocaml5.0-merlin-lib)) + (synopsis "Reads config files for @code{ocaml-merlin}") + (description "@code{ocaml-dot-merlin-reader} is an external reader for +@code{ocaml-merlin} configurations.")))) + (define-public ocaml-merlin (package (inherit ocaml-dot-merlin-reader) @@ -5024,9 +5449,12 @@ interfaces and the standard higher-level merlin protocol.") (when tests? (invoke "dune" "runtest" "-p" "merlin,dot-merlin-reader"))))))) (propagated-inputs (list ocaml-merlin-lib ocaml-yojson)) + (properties `((ocaml5.0-variant . ,(delay ocaml5.0-merlin)))) (native-inputs (list ocaml-dot-merlin-reader ; required for tests - ocaml-mdx jq)) + ocaml-ppxlib + ocaml-mdx + jq)) (synopsis "Context sensitive completion for OCaml in Vim and Emacs") (description "Merlin is an editor service that provides modern IDE features for OCaml. Emacs and Vim support is provided out-of-the-box. @@ -5034,6 +5462,32 @@ External contributors added support for Visual Studio Code, Sublime Text and Atom.") (license license:expat))) +(define-public ocaml5.0-merlin + (package-with-ocaml5.0 + (package + (inherit ocaml-merlin-lib-500) + (name "ocaml-merlin") + (arguments + '(#:package "merlin" + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "dune" "runtest" "-p" "merlin,dot-merlin-reader"))))))) + (propagated-inputs (list ocaml-merlin-lib ocaml-yojson)) + (native-inputs + (list ocaml-dot-merlin-reader ; required for tests + ocaml-ppxlib + ocaml-mdx + jq)) + (synopsis "Context sensitive completion for OCaml in Vim and Emacs") + (description "Merlin is an editor service that provides modern IDE +features for OCaml. Emacs and Vim support is provided out-of-the-box. +External contributors added support for Visual Studio Code, Sublime Text and +Atom.") + (license license:expat)))) + (define-public ocaml-gsl (package (name "ocaml-gsl") @@ -5298,7 +5752,8 @@ functionality for parsing and pretty-printing s-expressions.") (build-system dune-build-system) (propagated-inputs (list ocaml-sexplib0)) - (properties `((ocaml4.07-variant . ,(delay ocaml4.07-base)))) + (properties `((ocaml4.07-variant . ,(delay ocaml4.07-base)) + (ocaml5.0-variant . ,(delay ocaml5.0-base)))) (synopsis "Full standard library replacement for OCaml") (description @@ -5313,6 +5768,28 @@ provided by companion libraries such as @url{https://github.com/janestreet/stdio, ocaml-stdio}.") (license license:expat))) +(define-public ocaml5.0-base + ;; This version contains fixes for OCaml 5.0 + ;; (see https://github.com/ocaml/opam-repository/pull/21851) + (let ((commit "423dbad212f55506767d758b1ceb2d6e0ee8e7f5") + (revision "0")) + (package-with-ocaml5.0 + (package + (inherit ocaml-base) + (name "ocaml-base") + (version (git-version "0.15.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kit-ty-kate/base") + (commit commit))) + (file-name (git-file-name "ocaml5.0-base" version)) + (sha256 + (base32 + "15vsiv3q53l1bzrvqgspf3lp2104s9dzw62z3nl75f53jvjvsyf6")))) + (properties '()))))) + (define-public ocaml4.07-base (package-with-ocaml4.07 (package @@ -5465,7 +5942,7 @@ as part of the same ocaml-migrate-parsetree driver.") (define-public ocaml-ppxlib (package (name "ocaml-ppxlib") - (version "0.25.0") + (version "0.25.1") (home-page "https://github.com/ocaml-ppx/ppxlib") (source (origin @@ -5476,7 +5953,7 @@ as part of the same ocaml-migrate-parsetree driver.") (file-name (git-file-name name version)) (sha256 (base32 - "0wlqvyqy9ccp7z981blv42aqwq7zfq93cakbahjyy48hiiir6vp2")))) + "1402fzv5mg5grf3hb82fqsdkzxk07yfp9hvjh33dzjwjsqfhx3wi")))) (build-system dune-build-system) (arguments `(#:phases @@ -6545,7 +7022,8 @@ useful errors on failure.") ocaml-migrate-parsetree ocaml-re)) (properties `((upstream-name . "ppx_expect") - (ocaml4.07-variant . ,(delay ocaml4.07-ppx-expect)))) + (ocaml4.07-variant . ,(delay ocaml4.07-ppx-expect)) + (ocaml5.0-variant . ,(delay ocaml5.0-ppx-expect)))) (home-page "https://github.com/janestreet/ppx_expect") (synopsis "Cram like framework for OCaml") (description "Expect-test is a framework for writing tests in OCaml, similar @@ -6555,6 +7033,28 @@ output-generating code, interleaved with @code{%expect} extension expressions to denote the expected output.") (license license:asl2.0))) +(define-public ocaml5.0-ppx-expect + ;; Contains fixes for OCaml 5.0 + ;; (https://github.com/janestreet/ppx_expect/pull/39/). + (let ((commit "83edfc1ee779e8dcdd975e26715c2e688326befa") + (revision "0")) + (package-with-ocaml5.0 + (package + (inherit ocaml-ppx-expect) + (name "ocaml-ppx-expect") + (version (git-version "0.15.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janestreet/ppx_expect") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05r7wlmrhb5biwyw6bjcpmr77srglijcbf7nm7h2hiil0d0i7bkz")))) + (properties '()))))) + (define-public ocaml4.07-ppx-expect (package-with-ocaml4.07 (package @@ -7573,9 +8073,7 @@ then run the Bisect_ppx report tool on the generated visitation files.") (define-public ocaml-odoc (package (name "ocaml-odoc") - ;; 2.2.0-alpha contains fixes for Dune 3.0 compatibility - ;; (https://github.com/ocaml/odoc/commit/6ac97f3148f7791ec7451785ef4dbd9ca0daf2d1) - (version "2.2.0-alpha") + (version "2.2.0") (source (origin (method git-fetch) @@ -7584,7 +8082,7 @@ then run the Bisect_ppx report tool on the generated visitation files.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "07zjkk455l51i29lcayzrc1q8j5bvbv97sscv8yhcj7x6h6q2nag")))) + (base32 "19mww1lyrdi705aw3lwql6xc7p11fcq5gprmhyxpb4x80gnvlzrh")))) (build-system dune-build-system) (arguments `(#:tests? #f; not compatible with current version of ocaml-yojson @@ -7836,7 +8334,7 @@ variants.") (("`") "'") (("COMMAND") "[COMMAND]") (("\\.\\.\\.") "…"))))))) - (inputs + (propagated-inputs (list ocaml-fmt ocaml-astring ocaml-logs @@ -8205,7 +8703,8 @@ defined in OCaml 4.12.0.") ocaml-uuseg ocaml-uutf)) (native-inputs - (list git-minimal ocaml-alcotest ocaml-ocp-indent ocaml-bisect-ppx)) + (list git-minimal/fixed ;for tests + ocaml-alcotest ocaml-ocp-indent ocaml-bisect-ppx)) (home-page "https://github.com/ocaml-ppx/ocamlformat") (synopsis "Auto-formatter for OCaml code") (description "OCamlFormat is a tool to automatically format OCaml code in @@ -8527,6 +9026,31 @@ Using this package, you can run afl-fuzz in ``persistent mode'', which avoids repeated forking and is much faster.") (license license:expat))) +(define-public ocaml-monolith + (package + (name "ocaml-monolith") + (version "20210525") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.inria.fr/fpottier/monolith") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1b6jj4ivl9ni8kba7wls4xsqdy8nm7q9mnx9347jvb99dmmlj5mc")))) + (build-system dune-build-system) + (arguments `(#:test-target ".")) + (propagated-inputs (list ocaml-afl-persistent ocaml-pprint ocaml-seq)) + (home-page "https://gitlab.inria.fr/fpottier/monolith") + (synopsis "Framework for testing an OCaml library using afl-fuzz") + (description "Monolith offers facilities for testing an OCaml library (for +instance, a data structure implementation) by comparing it against a reference +implementation. It can be used to perform either random testing or fuzz +testing by using the @code{afl-fuzz} tool.") + (license license:lgpl3+))) + (define-public ocaml-pprint (package (name "ocaml-pprint") @@ -8581,12 +9105,21 @@ document and by the text width.") ocaml-uunf ocaml-uutf ocaml-pprint)) + (properties `((ocaml5.0-variant . ,(delay ocaml5.0-crowbar)))) (synopsis "Ocaml library for tests, let a fuzzer find failing cases") (description "Crowbar is a library for testing code, combining QuickCheck-style property-based testing and the magical bug-finding powers of @uref{http://lcamtuf.coredump.cx/afl/, afl-fuzz}.") (license license:expat))) +(define-public ocaml5.0-crowbar + (package-with-ocaml5.0 + (package + (inherit ocaml-crowbar) + ;; Tests require ocaml-calendar which does not work with OCaml 5.0 + (arguments `(#:tests? #f)) + (properties '())))) + (define-public ocaml-eqaf (package (name "ocaml-eqaf") diff --git a/gnu/packages/onc-rpc.scm b/gnu/packages/onc-rpc.scm index 4495622191..3928e80476 100644 --- a/gnu/packages/onc-rpc.scm +++ b/gnu/packages/onc-rpc.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2017, 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2017, 2018, 2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018, 2021 Tobias Geerinckx-Rice <me@tobias.gr> @@ -27,6 +27,7 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (gnu packages) #:use-module (gnu packages autotools) @@ -84,9 +85,9 @@ IPv4 and IPv6. ONC RPC is notably used by the network file system (NFS).") (substitute-keyword-arguments (package-arguments libtirpc) ((#:configure-flags flags ''()) ;; When cross-building the target system's krb5-config should be used. - `(list (string-append "ac_cv_prog_KRB5_CONFIG=" - (assoc-ref %build-inputs "mit-krb5") - "/bin/krb5-config"))))))) + #~(list (string-append "ac_cv_prog_KRB5_CONFIG=" + #$(this-package-input "mit-krb5") + "/bin/krb5-config"))))))) (define libtirpc/fixed (package diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm index c8a47e45d5..3f3015bd80 100644 --- a/gnu/packages/openldap.scm +++ b/gnu/packages/openldap.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2014, 2015, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016, 2021 Leo Famulari <leo@famulari.name> -;;; Copyright © 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2017, 2018, 2019, 2021, 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org> @@ -30,6 +30,7 @@ #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages cyrus-sasl) + #:use-module (gnu packages databases) #:use-module (gnu packages dbm) #:use-module (gnu packages documentation) #:use-module (gnu packages gettext) @@ -58,6 +59,7 @@ #:use-module (guix gexp) #:use-module (guix utils) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system python)) @@ -126,7 +128,7 @@ (define-public openldap-2.6 (package (inherit openldap) - (version "2.6.1") + (version "2.6.3") (source (origin (method url-fetch) ;; See <http://www.openldap.org/software/download/> for a list of @@ -142,7 +144,7 @@ "openldap-release/openldap-" version ".tgz"))) (sha256 (base32 - "1wz6f3g3bbqgbbxs20zlappmmhapqbl791c0waibhz9djsk6wmwx")))) + "0ihddk8c6hg9lkjv0wk0w13g8kb75r8dfsn1n6b77mzk3pbs38nj")))) (arguments (substitute-keyword-arguments (package-arguments openldap) ((#:phases phases) @@ -244,155 +246,151 @@ servers from Python programs.") (define-public 389-ds-base (package (name "389-ds-base") - (version "1.4.4.17") + ;; More recent versions require rust. That's not bad, but it's a + ;; challenge to integrate three build systems. + (version "2.2.2") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/389ds/389-ds-base/archive/" - "389-ds-base-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/389ds/389-ds-base") + (commit (string-append "389-ds-base-" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0i8m4crbnjjhfb7cq758rd0fxyz36i291yq6fykkprjykz9s3zv4")))) + "1sdvfbjfg0091f47562gw3gdc2vgvvhyhdi21lrpwnw9lqc8xdxk")))) (build-system gnu-build-system) (arguments - `(#:modules ((srfi srfi-1) + (list + #:modules '((srfi srfi-1) (guix build gnu-build-system) ((guix build python-build-system) #:select (add-installed-pythonpath python-version)) (guix build utils)) - #:imported-modules ((guix build python-build-system) + #:imported-modules `((guix build python-build-system) ,@%gnu-build-system-modules) - #:configure-flags - (list (string-append "--with-db=" - (assoc-ref %build-inputs "bdb")) - (string-append "--with-sasl=" - (assoc-ref %build-inputs "cyrus-sasl")) - (string-append "--with-netsnmp=" - (assoc-ref %build-inputs "net-snmp")) - (string-append "--with-pcre=" - (assoc-ref %build-inputs "pcre")) - (string-append "--with-selinux=" - (assoc-ref %build-inputs "libselinux")) - "--localstatedir=/var" - "--with-instconfigdir=/etc/dirsrv" - ;; The Perl scripts are being removed in the 1.4.0 release. - ;; Building them would require packaging of the outdated Mozilla - ;; LDAP SDK (instead of OpenLDAP) and PerLDAP. - "--disable-perl") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-references - (lambda _ - (substitute* "include/ldaputil/certmap.h" - (("nss3/cert.h") "nss/cert.h")) - (substitute* "src/lib389/lib389/utils.py" - (("'/sbin/ip'") - (string-append "'" (which "ip") "'"))) - (substitute* "src/lib389/lib389/nss_ssl.py" - (("'/usr/bin/certutil'") - (string-append "'" (which "certutil") "'")) - (("'/usr/bin/openssl'") - (string-append "'" (which "openssl") "'")) - (("'/usr/bin/c_rehash'") - (string-append "'" (which "perl") "', '" - (which "c_rehash") "'"))))) - (add-after 'unpack 'overwrite-default-locations - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* "src/lib389/lib389/paths.py" - (("/usr/share/dirsrv/inf/defaults.inf") - (string-append out "/share/dirsrv/inf/defaults.inf"))) - ;; This directory can only be specified relative to sysconfdir. This - ;; is used to determine where to look for installed directory - ;; servers, so in the absence of a search path it needs to be global. - (substitute* "ldap/admin/src/defaults.inf.in" - (("^initconfig_dir =.*") - "initconfig_dir = /etc/dirsrv/registry\n")) - ;; This is used to determine where to write certificate files - ;; when installing new directory server instances. - (substitute* '("src/lib389/lib389/instance/setup.py" - "src/lib389/lib389/instance/remove.py") - (("etc_dirsrv_path = .*") - "etc_dirsrv_path = '/etc/dirsrv/'\n"))))) - (add-after 'unpack 'fix-install-location-of-python-tools - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (pythondir (string-append - out "/lib/python" - (python-version (assoc-ref inputs "python")) + #:configure-flags + #~(list "--enable-cmocka" + (string-append "--with-db=" + #$(this-package-input "bdb")) + (string-append "--with-netsnmp=" + #$(this-package-input "net-snmp")) + (string-append "--with-selinux=" + #$(this-package-input "libselinux")) + "--localstatedir=/var" + "--with-instconfigdir=/etc/dirsrv") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-references + (lambda _ + ;; Avoid dependency on systemd-detect-virt + (substitute* "src/lib389/lib389/instance/setup.py" + (("container_result = subprocess.*") "container_result = 1\n") + (("container_result.returncode") "container_result")) + (substitute* "ldap/servers/plugins/sync/sync_persist.c" + (("nspr4") "nspr")) + (substitute* "src/lib389/lib389/utils.py" + (("'/sbin/ip'") + (string-append "'" (which "ip") "'"))) + (substitute* "src/lib389/lib389/nss_ssl.py" + (("'/usr/bin/certutil'") + (string-append "'" (which "certutil") "'")) + (("'/usr/bin/openssl'") + (string-append "'" (which "openssl") "'"))))) + (add-after 'unpack 'overwrite-default-locations + (lambda _ + (substitute* "src/lib389/lib389/paths.py" + (("/usr/share/dirsrv/inf/defaults.inf") + (string-append #$output "/share/dirsrv/inf/defaults.inf"))) + ;; This directory can only be specified relative to sysconfdir. This + ;; is used to determine where to look for installed directory + ;; servers, so in the absence of a search path it needs to be global. + (substitute* "ldap/admin/src/defaults.inf.in" + (("^initconfig_dir =.*") + "initconfig_dir = /etc/dirsrv/registry\n")) + ;; This is used to determine where to write certificate files + ;; when installing new directory server instances. + (substitute* "src/lib389/lib389/instance/setup.py" + (("etc_dirsrv_path = .*") + "etc_dirsrv_path = '/etc/dirsrv/'\n")))) + (add-after 'unpack 'fix-install-location-of-python-tools + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((pythondir (string-append + #$output "/lib/python" + (python-version #$(this-package-input "python")) "/site-packages/"))) - ;; Install directory must be on PYTHONPATH. - (add-installed-pythonpath inputs outputs) - ;; Install directory must exist. - (mkdir-p pythondir) - (substitute* "src/lib389/setup.py" - (("/usr") out)) - (substitute* "Makefile.am" - (("setup.py install --skip-build" m) - (string-append - m " --prefix=" out - " --root=/ --single-version-externally-managed")))))) - (add-after 'build 'build-python-tools - (lambda* (#:key make-flags #:allow-other-keys) - ;; Set DETERMINISTIC_BUILD to override the embedded mtime in pyc - ;; files. - (setenv "DETERMINISTIC_BUILD" "1") - ;; Use deterministic hashes for strings, bytes, and datetime - ;; objects. - (setenv "PYTHONHASHSEED" "0") - (apply invoke "make" "lib389" make-flags))) - (add-after 'install 'install-python-tools - (lambda* (#:key make-flags #:allow-other-keys) - (apply invoke "make" "lib389-install" make-flags))) - (add-after 'install-python-tools 'wrap-python-tools - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (pythonpath (getenv "GUIX_PYTHONPATH"))) - (for-each (lambda (file) - (wrap-program (string-append out file) - `("GUIX_PYTHONPATH" ":" prefix (,pythonpath)))) - '("/sbin/dsconf" - "/sbin/dscreate" - "/sbin/dsctl" - "/sbin/dsidm" - "/bin/ds-logpipe.py" - "/bin/ds-replcheck")))))))) + ;; Install directory must be on PYTHONPATH. + (add-installed-pythonpath inputs outputs) + ;; Install directory must exist. + (mkdir-p pythondir) + (setenv "INSTALL_PREFIX" #$output) + (substitute* "Makefile.am" + (("setup.py install --skip-build" m) + (string-append + m " --prefix=" #$output + " --root=/ --single-version-externally-managed")))))) + (add-after 'build 'build-python-tools + (lambda* (#:key make-flags #:allow-other-keys) + ;; Set DETERMINISTIC_BUILD to override the embedded mtime in pyc + ;; files. + (setenv "DETERMINISTIC_BUILD" "1") + ;; Use deterministic hashes for strings, bytes, and datetime + ;; objects. + (setenv "PYTHONHASHSEED" "0") + (apply invoke "make" "lib389" make-flags))) + (add-after 'install 'install-python-tools + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "lib389-install" make-flags))) + (add-after 'install-python-tools 'wrap-python-tools + (lambda* (#:key outputs #:allow-other-keys) + (let ((pythonpath (getenv "GUIX_PYTHONPATH"))) + (for-each (lambda (file) + (wrap-program (string-append #$output file) + `("GUIX_PYTHONPATH" ":" prefix (,pythonpath)))) + '("/sbin/dsconf" + "/sbin/dscreate" + "/sbin/dsctl" + "/sbin/dsidm" + "/bin/ds-logpipe.py" + "/bin/ds-replcheck")))))))) (inputs - `(("bdb" ,bdb) - ("cracklib" ,cracklib) - ("cyrus-sasl" ,cyrus-sasl) - ("gnutls" ,gnutls) - ("httpd" ,httpd) - ("icu4c" ,icu4c) - ("iproute" ,iproute) - ("libevent" ,libevent) - ("libselinux" ,libselinux) - ("linux-pam" ,linux-pam) - ("mit-krb5" ,mit-krb5) - ("net-snmp" ,net-snmp) - ("nspr" ,nspr) - ("nss" ,nss) - ("nss:bin" ,nss "bin") ; for certutil - ("openldap" ,openldap) - ("openssl" ,openssl) ; #included by net-snmp - ("pcre" ,pcre) - ("perl" ,perl) - ("python" ,python) - ("python-pyasn1" ,python-pyasn1) - ("python-pyasn1-modules" ,python-pyasn1-modules) - ("python-pytest" ,python-pytest) - ("python-dateutil" ,python-dateutil) - ("python-six" ,python-six) - ("python-argcomplete" ,python-argcomplete) - ("python-argparse-manpage" ,python-argparse-manpage) - ("python-ldap" ,python-ldap))) + (list bdb + cracklib + cyrus-sasl + gnutls + httpd + icu4c + iproute + json-c + libevent + libselinux + linux-pam + lmdb + mit-krb5 + net-snmp + nspr + nss + (list nss "bin") ;for certutil + openldap + openssl ;#included by net-snmp + pcre + python + python-pyasn1 + python-pyasn1-modules + python-pytest + python-dateutil + python-six + python-argcomplete + python-argparse-manpage + python-ldap)) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("doxygen" ,doxygen) - ("gettext" ,gettext-minimal) - ("libtool" ,libtool) - ("rsync" ,rsync) - ("pkg-config" ,pkg-config))) + (list autoconf + automake + cmocka + doxygen + gettext-minimal + libtool + rsync + pkg-config)) (home-page "https://directory.fedoraproject.org") (synopsis "Enterprise-class LDAP server") (description "389ds is an enterprise-class LDAP server. It is hardened by diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index daa83f8d0c..2ffaa12247 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -164,9 +164,9 @@ ;; Latest version of Guix, which may or may not correspond to a release. ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. - (let ((version "1.4.0rc1") - (commit "9ccc94afb266428b7feeba805617d31eb8afb23c") - (revision 1)) + (let ((version "1.4.0") + (commit "8e2f32cee982d42a79e53fc1e9aa7b8ff0514714") + (revision 0)) (package (name "guix") @@ -182,7 +182,7 @@ (commit commit))) (sha256 (base32 - "1asx4jqjdp56r9m693ikrzxn4vaga846v2j6956xkavyj19x42nh")) + "042mipw2bp9lc75m9g5q6rdifrp8483cmk57kwrdps0i3vd590dl")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -1865,7 +1865,7 @@ for packaging and deployment of cross-compiled Windows applications.") (define-public libostree (package (name "libostree") - (version "2022.6") + (version "2022.7") (source (origin (method url-fetch) @@ -1873,7 +1873,7 @@ for packaging and deployment of cross-compiled Windows applications.") "https://github.com/ostreedev/ostree/releases/download/v" (version-major+minor version) "/libostree-" version ".tar.xz")) (sha256 - (base32 "135dzxqzy19a8hkxm25mriy7zf72sbxz1mzzfw6a2d8bk9yz8pl3")))) + (base32 "07s14awf9ynlp84s08dkbwj9i18g93y0yf0k87nbks4l3hkakqlb")))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/pascal.scm b/gnu/packages/pascal.scm index 8c193830fd..f563f077dc 100644 --- a/gnu/packages/pascal.scm +++ b/gnu/packages/pascal.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2017 Kei Kebreau <address@hidden> ;;; Copyright © 2020 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,6 +24,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (gnu packages) @@ -229,43 +231,39 @@ many useful extensions to the Pascal programming language.") (define-public p2c (package (name "p2c") - (version "2.01") + (version "2.02") (source (origin (method url-fetch) - (uri (string-append "https://alum.mit.edu/www/toms/p2c/p2c-" - version ".tar.gz")) + (uri (string-append "http://users.fred.net/tds/lab/p2c/p2c-" + version ".zip")) (sha256 (base32 - "03x72lv6jrvikbrpz4kfq1xp61l2jw5ki6capib71lxs65zndajn")))) + "17q6s0vbz298pks80bxf4r6gm8kwbrml1q3vfs6g6yj75sqj58xs")))) (build-system gnu-build-system) (arguments - `(#:make-flags - (let ((out (assoc-ref %outputs "out"))) - (list (string-append "CC=" ,(cc-for-target)) - (string-append "HOMEDIR=" out "/lib/p2c") - (string-append "INCDIR=" out "/include/p2c") - (string-append "BINDIR=" out "/bin") - (string-append "LIBDIR=" out "/lib") - (string-append "MANDIR=" out "/share/man/man1") - "MANFILE=p2c.man.inst")) - #:test-target "test" - #:phases - (modify-phases %standard-phases - (delete 'configure) - (add-before 'build 'mkdir - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (mkdir-p (string-append out "/share/man")) - (mkdir-p (string-append out "/lib")) - (mkdir-p (string-append out "/bin")) - (mkdir-p (string-append out "/include"))) - #t)) - (add-before 'build 'chdir - (lambda* (#:key make-flags #:allow-other-keys) - (chdir "src") - #t))))) + (list + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "HOMEDIR=" #$output "/lib/p2c") + (string-append "INCDIR=" #$output "/include/p2c") + (string-append "BINDIR=" #$output "/bin") + (string-append "LIBDIR=" #$output "/lib") + (string-append "MANDIR=" #$output "/share/man/man1") + "MANFILE=p2c.man.inst") + #:test-target "test" + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'mkdir + (lambda _ + (mkdir-p (string-append #$output "/share/man")) + (mkdir-p (string-append #$output "/lib")) + (mkdir-p (string-append #$output "/bin")) + (mkdir-p (string-append #$output "/include")))) + (add-before 'build 'chdir + (lambda _ (chdir "src")))))) (native-inputs - (list perl which)) + (list perl unzip which)) (synopsis "p2c converts Pascal programs to C programs") (description "This package provides @command{p2c}, a program to convert Pascal source code to C source code, and @command{p2cc}, a compiler for diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index aab0a3f2a4..410c92d268 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -1252,14 +1252,14 @@ your online accounts makes it necessary.") (define-public hashcat (package (name "hashcat") - (version "6.2.5") + (version "6.2.6") (source (origin (method url-fetch) (uri (string-append "https://hashcat.net/files/hashcat-" version ".tar.gz")) (sha256 (base32 - "0sc96xcsc20xd4fyby3i45nm9as3hl4nhk9snkvmk5l9mpbrjs3g")) + "0akv1cgbmwyw8h8zbw5w5ixh92y95sdadh8qiz60hjgkpivi0pmj")) (modules '((guix build utils))) ;; Delete bundled libraries. (snippet diff --git a/gnu/packages/patches/ceph-boost-compat.patch b/gnu/packages/patches/ceph-boost-compat.patch deleted file mode 100644 index 1aecfbbed5..0000000000 --- a/gnu/packages/patches/ceph-boost-compat.patch +++ /dev/null @@ -1,18 +0,0 @@ -Add extra includes required for Boost 1.75 and later. - -Taken from upstram: - - https://github.com/ceph/ceph/commit/ebf3a0398f18eab67d2ba25e6a10b41ff140f6a4 - -diff --git a/src/rgw/rgw_string.h b/src/rgw/rgw_string.h -index 257daa9c1fe6e..90e64f98a2587 100644 ---- a/src/rgw/rgw_string.h -+++ b/src/rgw/rgw_string.h -@@ -8,5 +8,7 @@ - #include <stdlib.h> - #include <limits.h> - #include <string_view> -+#include <string> -+#include <stdexcept> - - #include <boost/container/small_vector.hpp> diff --git a/gnu/packages/patches/ceph-rocksdb-compat.patch b/gnu/packages/patches/ceph-rocksdb-compat.patch deleted file mode 100644 index 9fb9b0caeb..0000000000 --- a/gnu/packages/patches/ceph-rocksdb-compat.patch +++ /dev/null @@ -1,303 +0,0 @@ -Adjust for newer versions of RocksDB. - -Taken from upstream: - - https://github.com/ceph/ceph/pull/42815 - https://github.com/ceph/ceph/commit/ff7f192ea3cf88ca1098bcf9396ff4f8ed1e8792.diff - -diff --git a/src/kv/rocksdb_cache/BinnedLRUCache.cc b/src/kv/rocksdb_cache/BinnedLRUCache.cc -index 0d657883e92de..47c56e2ddd769 100644 ---- a/src/kv/rocksdb_cache/BinnedLRUCache.cc -+++ b/src/kv/rocksdb_cache/BinnedLRUCache.cc -@@ -151,13 +151,20 @@ void BinnedLRUCacheShard::EraseUnRefEntries() { - } - } - --void BinnedLRUCacheShard::ApplyToAllCacheEntries(void (*callback)(void*, size_t), -- bool thread_safe) { -+void BinnedLRUCacheShard::ApplyToAllCacheEntries( -+ const std::function<void(const rocksdb::Slice& key, -+ void* value, -+ size_t charge, -+ DeleterFn)>& callback, -+ bool thread_safe) -+{ - if (thread_safe) { - mutex_.lock(); - } - table_.ApplyToAllCacheEntries( -- [callback](BinnedLRUHandle* h) { callback(h->value, h->charge); }); -+ [callback](BinnedLRUHandle* h) { -+ callback(h->key(), h->value, h->charge, h->deleter); -+ }); - if (thread_safe) { - mutex_.unlock(); - } -@@ -345,7 +352,7 @@ bool BinnedLRUCacheShard::Release(rocksdb::Cache::Handle* handle, bool force_era - - rocksdb::Status BinnedLRUCacheShard::Insert(const rocksdb::Slice& key, uint32_t hash, void* value, - size_t charge, -- void (*deleter)(const rocksdb::Slice& key, void* value), -+ DeleterFn deleter, - rocksdb::Cache::Handle** handle, rocksdb::Cache::Priority priority) { - auto e = new BinnedLRUHandle(); - rocksdb::Status s; -@@ -464,6 +471,12 @@ std::string BinnedLRUCacheShard::GetPrintableOptions() const { - return std::string(buffer); - } - -+DeleterFn BinnedLRUCacheShard::GetDeleter(rocksdb::Cache::Handle* h) const -+{ -+ auto* handle = reinterpret_cast<BinnedLRUHandle*>(h); -+ return handle->deleter; -+} -+ - BinnedLRUCache::BinnedLRUCache(CephContext *c, - size_t capacity, - int num_shard_bits, -@@ -519,6 +532,13 @@ void BinnedLRUCache::DisownData() { - #endif // !__SANITIZE_ADDRESS__ - } - -+#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22) -+DeleterFn BinnedLRUCache::GetDeleter(Handle* handle) const -+{ -+ return reinterpret_cast<const BinnedLRUHandle*>(handle)->deleter; -+} -+#endif -+ - size_t BinnedLRUCache::TEST_GetLRUSize() { - size_t lru_size_of_all_shards = 0; - for (int i = 0; i < num_shards_; i++) { -diff --git a/src/kv/rocksdb_cache/BinnedLRUCache.h b/src/kv/rocksdb_cache/BinnedLRUCache.h -index 85608be0e5734..88bf4502e8927 100644 ---- a/src/kv/rocksdb_cache/BinnedLRUCache.h -+++ b/src/kv/rocksdb_cache/BinnedLRUCache.h -@@ -56,7 +56,7 @@ std::shared_ptr<rocksdb::Cache> NewBinnedLRUCache( - - struct BinnedLRUHandle { - void* value; -- void (*deleter)(const rocksdb::Slice&, void* value); -+ DeleterFn deleter; - BinnedLRUHandle* next_hash; - BinnedLRUHandle* next; - BinnedLRUHandle* prev; -@@ -189,7 +189,7 @@ class alignas(CACHE_LINE_SIZE) BinnedLRUCacheShard : public CacheShard { - // Like Cache methods, but with an extra "hash" parameter. - virtual rocksdb::Status Insert(const rocksdb::Slice& key, uint32_t hash, void* value, - size_t charge, -- void (*deleter)(const rocksdb::Slice& key, void* value), -+ DeleterFn deleter, - rocksdb::Cache::Handle** handle, - rocksdb::Cache::Priority priority) override; - virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, uint32_t hash) override; -@@ -205,13 +205,19 @@ class alignas(CACHE_LINE_SIZE) BinnedLRUCacheShard : public CacheShard { - virtual size_t GetUsage() const override; - virtual size_t GetPinnedUsage() const override; - -- virtual void ApplyToAllCacheEntries(void (*callback)(void*, size_t), -- bool thread_safe) override; -+ virtual void ApplyToAllCacheEntries( -+ const std::function<void(const rocksdb::Slice& key, -+ void* value, -+ size_t charge, -+ DeleterFn)>& callback, -+ bool thread_safe) override; - - virtual void EraseUnRefEntries() override; - - virtual std::string GetPrintableOptions() const override; - -+ virtual DeleterFn GetDeleter(rocksdb::Cache::Handle* handle) const override; -+ - void TEST_GetLRUList(BinnedLRUHandle** lru, BinnedLRUHandle** lru_low_pri); - - // Retrieves number of elements in LRU, for unit test purpose only -@@ -304,7 +310,9 @@ class BinnedLRUCache : public ShardedCache { - virtual size_t GetCharge(Handle* handle) const override; - virtual uint32_t GetHash(Handle* handle) const override; - virtual void DisownData() override; -- -+#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22) -+ virtual DeleterFn GetDeleter(Handle* handle) const override; -+#endif - // Retrieves number of elements in LRU, for unit test purpose only - size_t TEST_GetLRUSize(); - // Sets the high pri pool ratio -diff --git a/src/kv/rocksdb_cache/ShardedCache.cc b/src/kv/rocksdb_cache/ShardedCache.cc -index 367140a94d8be..6cbd89ad6472c 100644 ---- a/src/kv/rocksdb_cache/ShardedCache.cc -+++ b/src/kv/rocksdb_cache/ShardedCache.cc -@@ -44,7 +44,7 @@ void ShardedCache::SetStrictCapacityLimit(bool strict_capacity_limit) { - } - - rocksdb::Status ShardedCache::Insert(const rocksdb::Slice& key, void* value, size_t charge, -- void (*deleter)(const rocksdb::Slice& key, void* value), -+ DeleterFn deleter, - rocksdb::Cache::Handle** handle, Priority priority) { - uint32_t hash = HashSlice(key); - return GetShard(Shard(hash)) -@@ -109,13 +109,36 @@ size_t ShardedCache::GetPinnedUsage() const { - return usage; - } - -+#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22) -+DeleterFn ShardedCache::GetDeleter(Handle* handle) const -+{ -+ uint32_t hash = GetHash(handle); -+ return GetShard(Shard(hash))->GetDeleter(handle); -+} -+ -+void ShardedCache::ApplyToAllEntries( -+ const std::function<void(const rocksdb::Slice& key, void* value, size_t charge, -+ DeleterFn deleter)>& callback, -+ const ApplyToAllEntriesOptions& opts) -+{ -+ int num_shards = 1 << num_shard_bits_; -+ for (int s = 0; s < num_shards; s++) { -+ GetShard(s)->ApplyToAllCacheEntries(callback, true /* thread_safe */); -+ } -+} -+#else - void ShardedCache::ApplyToAllCacheEntries(void (*callback)(void*, size_t), - bool thread_safe) { - int num_shards = 1 << num_shard_bits_; - for (int s = 0; s < num_shards; s++) { -- GetShard(s)->ApplyToAllCacheEntries(callback, thread_safe); -+ GetShard(s)->ApplyToAllCacheEntries( -+ [callback](const rocksdb::Slice&, void* value, size_t charge, DeleterFn) { -+ callback(value, charge); -+ }, -+ thread_safe); - } - } -+#endif - - void ShardedCache::EraseUnRefEntries() { - int num_shards = 1 << num_shard_bits_; -@@ -131,7 +154,7 @@ std::string ShardedCache::GetPrintableOptions() const { - char buffer[kBufferSize]; - { - std::lock_guard<std::mutex> l(capacity_mutex_); -- snprintf(buffer, kBufferSize, " capacity : %" ROCKSDB_PRIszt "\n", -+ snprintf(buffer, kBufferSize, " capacity : %zu\n", - capacity_); - ret.append(buffer); - snprintf(buffer, kBufferSize, " num_shard_bits : %d\n", num_shard_bits_); -diff --git a/src/kv/rocksdb_cache/ShardedCache.h b/src/kv/rocksdb_cache/ShardedCache.h -index 4d64893ab1c7b..f98421a09a33a 100644 ---- a/src/kv/rocksdb_cache/ShardedCache.h -+++ b/src/kv/rocksdb_cache/ShardedCache.h -@@ -14,6 +14,7 @@ - #include <string> - #include <mutex> - -+#include "rocksdb/version.h" - #include "rocksdb/cache.h" - #include "include/ceph_hash.h" - #include "common/PriorityCache.h" -@@ -22,10 +23,11 @@ - #ifndef CACHE_LINE_SIZE - #define CACHE_LINE_SIZE 64 // XXX arch-specific define - #endif --#define ROCKSDB_PRIszt "zu" - - namespace rocksdb_cache { - -+using DeleterFn = void (*)(const rocksdb::Slice& key, void* value); -+ - // Single cache shard interface. - class CacheShard { - public: -@@ -34,7 +36,7 @@ class CacheShard { - - virtual rocksdb::Status Insert(const rocksdb::Slice& key, uint32_t hash, void* value, - size_t charge, -- void (*deleter)(const rocksdb::Slice& key, void* value), -+ DeleterFn deleter, - rocksdb::Cache::Handle** handle, rocksdb::Cache::Priority priority) = 0; - virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, uint32_t hash) = 0; - virtual bool Ref(rocksdb::Cache::Handle* handle) = 0; -@@ -44,10 +46,15 @@ class CacheShard { - virtual void SetStrictCapacityLimit(bool strict_capacity_limit) = 0; - virtual size_t GetUsage() const = 0; - virtual size_t GetPinnedUsage() const = 0; -- virtual void ApplyToAllCacheEntries(void (*callback)(void*, size_t), -- bool thread_safe) = 0; -+ virtual void ApplyToAllCacheEntries( -+ const std::function<void(const rocksdb::Slice& key, -+ void* value, -+ size_t charge, -+ DeleterFn)>& callback, -+ bool thread_safe) = 0; - virtual void EraseUnRefEntries() = 0; - virtual std::string GetPrintableOptions() const { return ""; } -+ virtual DeleterFn GetDeleter(rocksdb::Cache::Handle* handle) const = 0; - }; - - // Generic cache interface which shards cache by hash of keys. 2^num_shard_bits -@@ -57,34 +64,43 @@ class ShardedCache : public rocksdb::Cache, public PriorityCache::PriCache { - public: - ShardedCache(size_t capacity, int num_shard_bits, bool strict_capacity_limit); - virtual ~ShardedCache() = default; -+ // rocksdb::Cache - virtual const char* Name() const override = 0; -- virtual CacheShard* GetShard(int shard) = 0; -- virtual const CacheShard* GetShard(int shard) const = 0; -- virtual void* Value(Handle* handle) override = 0; -- virtual size_t GetCharge(Handle* handle) const = 0; -- virtual uint32_t GetHash(Handle* handle) const = 0; -- virtual void DisownData() override = 0; -- -- virtual void SetCapacity(size_t capacity) override; -- virtual void SetStrictCapacityLimit(bool strict_capacity_limit) override; -- - virtual rocksdb::Status Insert(const rocksdb::Slice& key, void* value, size_t charge, -- void (*deleter)(const rocksdb::Slice& key, void* value), -+ DeleterFn, - rocksdb::Cache::Handle** handle, Priority priority) override; - virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, rocksdb::Statistics* stats) override; - virtual bool Ref(rocksdb::Cache::Handle* handle) override; - virtual bool Release(rocksdb::Cache::Handle* handle, bool force_erase = false) override; -+ virtual void* Value(Handle* handle) override = 0; - virtual void Erase(const rocksdb::Slice& key) override; - virtual uint64_t NewId() override; -- virtual size_t GetCapacity() const override; -+ virtual void SetCapacity(size_t capacity) override; -+ virtual void SetStrictCapacityLimit(bool strict_capacity_limit) override; - virtual bool HasStrictCapacityLimit() const override; -+ virtual size_t GetCapacity() const override; - virtual size_t GetUsage() const override; - virtual size_t GetUsage(rocksdb::Cache::Handle* handle) const override; - virtual size_t GetPinnedUsage() const override; -+ virtual size_t GetCharge(Handle* handle) const = 0; -+#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22) -+ virtual DeleterFn GetDeleter(Handle* handle) const override; -+#endif -+ virtual void DisownData() override = 0; -+#if (ROCKSDB_MAJOR >= 6 && ROCKSDB_MINOR >= 22) -+ virtual void ApplyToAllEntries( -+ const std::function<void(const rocksdb::Slice& key, void* value, size_t charge, -+ DeleterFn deleter)>& callback, -+ const ApplyToAllEntriesOptions& opts) override; -+#else - virtual void ApplyToAllCacheEntries(void (*callback)(void*, size_t), - bool thread_safe) override; -+#endif - virtual void EraseUnRefEntries() override; - virtual std::string GetPrintableOptions() const override; -+ virtual CacheShard* GetShard(int shard) = 0; -+ virtual const CacheShard* GetShard(int shard) const = 0; -+ virtual uint32_t GetHash(Handle* handle) const = 0; - - int GetNumShardBits() const { return num_shard_bits_; } - -@@ -120,7 +136,7 @@ class ShardedCache : public rocksdb::Cache, public PriorityCache::PriCache { - // return Hash(s.data(), s.size(), 0); - } - -- uint32_t Shard(uint32_t hash) { -+ uint32_t Shard(uint32_t hash) const { - // Note, hash >> 32 yields hash in gcc, not the zero we expect! - return (num_shard_bits_ > 0) ? (hash >> (32 - num_shard_bits_)) : 0; - } diff --git a/gnu/packages/patches/flashrom-fix-building-on-aarch64.patch b/gnu/packages/patches/flashrom-fix-building-on-aarch64.patch new file mode 100644 index 0000000000..9f54305b47 --- /dev/null +++ b/gnu/packages/patches/flashrom-fix-building-on-aarch64.patch @@ -0,0 +1,89 @@ +commit da6b3b70cb852dd8e9f9e21aef95fa83e7f7ab0d +Author: Pyry Kontio <pyry.kontio@drasa.eu> +Date: Mon Jul 6 12:57:35 2020 +0900 + + Makefile: Fix building on AArch64 NixOS + + The parsing of the output of archtest.c produced an unexpected + value on AArch64 NixOS. For example, the make variable ARCH was set to: + + ``` + bit outside of fd_set selected + arm + ``` + + This made the arch and OS checks fail. + + This commit simplifies the parsing, making it more robust. + + The C files archtest.c, endiantest.c and os.h used to set the + TARGET_OS, ARCH and ENDIAN variables, respectively, output + the result of the test as the final line, so just extracting + the final line and removing double quoting is enough. + + This commit also fixes a bug with debug_shell lacking escaping + single quotes, which prevented using the single quote in the + debug_shell calls. It used to work by accident before this fix; + the line in the call happened to contain a balanced pair of double + quotes and lacked other characters that needed escaping, which + didn't break the debug_shell, but this was accidental and very + brittle. + + Signed-off-by: Pyry Kontio <pyry.kontio@drasa.eu> + Change-Id: Iaa4477a71e758cf9ecad2c22f3b77bc6508a3510 + Reviewed-on: https://review.coreboot.org/c/flashrom/+/43140 + Tested-by: build bot (Jenkins) <no-reply@coreboot.org> + Reviewed-by: Angel Pons <th3fanbus@gmail.com> + +diff --git a/Makefile b/Makefile +index f3f7717e..e475cbdb 100644 +--- a/Makefile ++++ b/Makefile +@@ -83,7 +83,8 @@ dummy_for_make_3_80:=$(shell printf "Build started on %s\n\n" "$$(date)" >$(BUIL + + # Provide an easy way to execute a command, print its output to stdout and capture any error message on stderr + # in the build details file together with the original stdout output. +-debug_shell = $(shell export LC_ALL=C ; { echo 'exec: export LC_ALL=C ; { $(1) ; }' >&2; { $(1) ; } | tee -a $(BUILD_DETAILS_FILE) ; echo >&2 ; } 2>>$(BUILD_DETAILS_FILE)) ++debug_shell = $(shell export LC_ALL=C ; { echo 'exec: export LC_ALL=C ; { $(subst ','\'',$(1)) ; }' >&2; \ ++ { $(1) ; } | tee -a $(BUILD_DETAILS_FILE) ; echo >&2 ; } 2>>$(BUILD_DETAILS_FILE)) + + ############################################################################### + # General OS-specific settings. +@@ -106,7 +107,8 @@ endif + # IMPORTANT: The following line must be placed before TARGET_OS is ever used + # (of course), but should come after any lines setting CC because the line + # below uses CC itself. +-override TARGET_OS := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E os.h 2>/dev/null | grep -v '^\#' | grep '"' | cut -f 2 -d'"')) ++override TARGET_OS := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E os.h 2>/dev/null \ ++ | tail -1 | cut -f 2 -d'"')) + + ifeq ($(TARGET_OS), Darwin) + override CPPFLAGS += -I/opt/local/include -I/usr/local/include +@@ -490,8 +492,10 @@ endif + # IMPORTANT: The following line must be placed before ARCH is ever used + # (of course), but should come after any lines setting CC because the line + # below uses CC itself. +-override ARCH := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E archtest.c 2>/dev/null | grep -v '^\#' | grep '"' | cut -f 2 -d'"')) +-override ENDIAN := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E endiantest.c 2>/dev/null | grep -v '^\#')) ++override ARCH := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E archtest.c 2>/dev/null \ ++ | tail -1 | cut -f 2 -d'"')) ++override ENDIAN := $(strip $(call debug_shell,$(CC) $(CPPFLAGS) -E endiantest.c 2>/dev/null \ ++ | tail -1)) + + # Disable the internal programmer on unsupported architectures (everything but x86 and mipsel) + ifneq ($(ARCH)-little, $(filter $(ARCH),x86 mips)-$(ENDIAN)) +@@ -1299,12 +1303,12 @@ compiler: featuresavailable + @printf "Target arch is " + @# FreeBSD wc will output extraneous whitespace. + @echo $(ARCH)|wc -w|grep -q '^[[:blank:]]*1[[:blank:]]*$$' || \ +- ( echo "unknown. Aborting."; exit 1) ++ ( echo "unknown (\"$(ARCH)\"). Aborting."; exit 1) + @printf "%s\n" '$(ARCH)' + @printf "Target OS is " + @# FreeBSD wc will output extraneous whitespace. + @echo $(TARGET_OS)|wc -w|grep -q '^[[:blank:]]*1[[:blank:]]*$$' || \ +- ( echo "unknown. Aborting."; exit 1) ++ ( echo "unknown (\"$(TARGET_OS)\"). Aborting."; exit 1) + @printf "%s\n" '$(TARGET_OS)' + ifeq ($(TARGET_OS), libpayload) + @$(CC) --version 2>&1 | grep -q coreboot || \ diff --git a/gnu/packages/patches/jami-fix-qml-imports.patch b/gnu/packages/patches/jami-fix-qml-imports.patch deleted file mode 100644 index e24171785d..0000000000 --- a/gnu/packages/patches/jami-fix-qml-imports.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 9c4d065093d18b5495d3193028457b7393daea4b Mon Sep 17 00:00:00 2001 -From: Maxim Cournoyer <maxim.cournoyer@savoirfairelinux.com> -Date: Mon, 7 Nov 2022 16:26:50 -0500 -Subject: [PATCH] tests: Fix broken QML import directives. - -Fixes -<https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/883>. - -Automated via: - $ find tests -name '*.qml' | xargs sed -i 's,qrc:/src,../../../src,' - -Change-Id: Ic1a2f419e3e328e8bf861e7fdf370f15da66675f ---- -Upstream status: https://review.jami.net/c/jami-client-qt/+/22990 - - tests/qml/src/tst_ChatViewFooter.qml | 2 +- - tests/qml/src/tst_FilesToSendContainer.qml | 2 +- - tests/qml/src/tst_PresenceIndicator.qml | 2 +- - tests/qml/src/tst_WizardView.qml | 4 ++-- - 4 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/client-qt/tests/qml/src/tst_ChatViewFooter.qml b/client-qt/tests/qml/src/tst_ChatViewFooter.qml -index 84316d78..b0cffe1a 100644 ---- a/client-qt/tests/qml/src/tst_ChatViewFooter.qml -+++ b/client-qt/tests/qml/src/tst_ChatViewFooter.qml -@@ -25,7 +25,7 @@ import QtTest - import net.jami.Models 1.1 - import net.jami.Constants 1.1 - --import "qrc:/src/app/mainview/components" -+import "../../../src/app/mainview/components" - - ColumnLayout { - id: root -diff --git a/client-qt/tests/qml/src/tst_FilesToSendContainer.qml b/client-qt/tests/qml/src/tst_FilesToSendContainer.qml -index b7f4810a..9432a44d 100644 ---- a/client-qt/tests/qml/src/tst_FilesToSendContainer.qml -+++ b/client-qt/tests/qml/src/tst_FilesToSendContainer.qml -@@ -25,7 +25,7 @@ import QtTest - import net.jami.Models 1.1 - import net.jami.Constants 1.1 - --import "qrc:/src/app/mainview/components" -+import "../../../src/app/mainview/components" - - ColumnLayout { - id: root -diff --git a/client-qt/tests/qml/src/tst_PresenceIndicator.qml b/client-qt/tests/qml/src/tst_PresenceIndicator.qml -index 0eda9169..46c048e8 100644 ---- a/client-qt/tests/qml/src/tst_PresenceIndicator.qml -+++ b/client-qt/tests/qml/src/tst_PresenceIndicator.qml -@@ -22,7 +22,7 @@ import QtTest - import net.jami.Models 1.1 - import net.jami.Constants 1.1 - --import "qrc:/src/app/commoncomponents" -+import "../../../src/app/commoncomponents" - - PresenceIndicator { - id: uut -diff --git a/client-qt/tests/qml/src/tst_WizardView.qml b/client-qt/tests/qml/src/tst_WizardView.qml -index 08698b7a..6a4f971d 100644 ---- a/client-qt/tests/qml/src/tst_WizardView.qml -+++ b/client-qt/tests/qml/src/tst_WizardView.qml -@@ -24,8 +24,8 @@ import net.jami.Models 1.1 - import net.jami.Constants 1.1 - import net.jami.Enums 1.1 - --import "qrc:/src/app/wizardview" --import "qrc:/src/app/commoncomponents" -+import "../../../src/app/wizardview" -+import "../../../src/app/commoncomponents" - - WizardView { - id: uut --- -2.37.3 - diff --git a/gnu/packages/patches/jami-fix-unit-tests-build.patch b/gnu/packages/patches/jami-fix-unit-tests-build.patch deleted file mode 100644 index 0216a4bd67..0000000000 --- a/gnu/packages/patches/jami-fix-unit-tests-build.patch +++ /dev/null @@ -1,139 +0,0 @@ -From 82ecd786a29344d57e6dd95ef0800bef9dd44542 Mon Sep 17 00:00:00 2001 -From: Maxim Cournoyer <maxim.cournoyer@savoirfairelinux.com> -Date: Sun, 6 Nov 2022 00:16:34 -0400 -Subject: [PATCH 3/3] tests: Fix various compilation failures. - -Fixes <https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/882>. - -* tests/CMakeLists.txt: Add "Widgets" Qt module to find_package call. -(QML_TEST_LIBS): Add Qt::Widgets. -* tests/CMakeLists.txt: Rename QML_LIBS to QT_LIBS, a regression -introduced in d82e3820706214d15d7cb7462978b7a43b798355. Remove the -dependency on on the Widgets module, now provided via QT_LIBS. -* tests/qml/main.cpp [WITH_WEBENGINE]: Include QtWebEngine modules -conditionally. -(main) [WITH_WEBENGINE]: Initialize webengine conditionally. -* tests/CMakeLists.txt: Link test objects with ${LIBCLIENT_NAME}. -* src/app/qmlregister.h (registerTypes): Change parent type from -MainApplication* to QObject* -* src/app/qmlregister.cpp (registerTypes): Likewise. -* tests/unittests/account_unittest.cpp (globalEnv): Remove variable. -* tests/unittests/contact_unittest.cpp: Likewise. ---- -Upstream status: https://review.jami.net/c/jami-client-qt/+/22984/1 - - src/app/qmlregister.cpp | 2 +- - src/app/qmlregister.h | 2 +- - tests/CMakeLists.txt | 6 +++--- - tests/qml/main.cpp | 7 ++++--- - tests/unittests/account_unittest.cpp | 2 -- - tests/unittests/contact_unittest.cpp | 2 -- - 6 files changed, 9 insertions(+), 12 deletions(-) - -diff --git a/client-qt/client-qt/src/app/qmlregister.cpp b/client-qt/src/app/qmlregister.cpp -index 285f7814..67222eb5 100644 ---- a/client-qt/client-qt/src/app/qmlregister.cpp -+++ b/client-qt/src/app/qmlregister.cpp -@@ -105,7 +105,7 @@ registerTypes(QQmlEngine* engine, - AppSettingsManager* settingsManager, - PreviewEngine* previewEngine, - ScreenInfo* screenInfo, -- MainApplication* parent) -+ QObject* parent) - { - // setup the adapters (their lifetimes are that of MainApplication) - auto callAdapter = new CallAdapter(systemTray, lrcInstance, parent); -diff --git a/client-qt/client-qt/src/app/qmlregister.h b/client-qt/src/app/qmlregister.h -index 38bfd091..aac0a887 100644 ---- a/client-qt/client-qt/src/app/qmlregister.h -+++ b/client-qt/src/app/qmlregister.h -@@ -67,5 +67,5 @@ void registerTypes(QQmlEngine* engine, - AppSettingsManager* appSettingsManager, - PreviewEngine* previewEngine, - ScreenInfo* screenInfo, -- MainApplication* parent); -+ QObject* parent); - } -diff --git a/client-qt/client-qt/tests/CMakeLists.txt b/client-qt/tests/CMakeLists.txt -index 8904d5ec..4e42b307 100644 ---- a/client-qt/client-qt/tests/CMakeLists.txt -+++ b/client-qt/tests/CMakeLists.txt -@@ -1,4 +1,4 @@ --find_package(Qt${QT_VERSION_MAJOR} CONFIG REQUIRED QuickTest Test) -+find_package(Qt${QT_VERSION_MAJOR} CONFIG REQUIRED QuickTest Test Widgets) - - if(MSVC) - # Download and unpack googletest for windows -@@ -15,7 +15,7 @@ else() - endif() - - enable_testing(true) --set(QML_TEST_LIBS ${QML_LIBS} Qt::QuickTest Qt::Test) -+set(QML_TEST_LIBS ${QT_LIBS} ${LIBCLIENT_NAME} Qt::QuickTest Qt::Test Qt::Widgets) - set(TESTS_INCLUDES - ${CMAKE_SOURCE_DIR}/src - ${CMAKE_SOURCE_DIR}/tests/qml -@@ -192,4 +192,4 @@ else() - ${LRC}/include) - - add_test(NAME UnitTests COMMAND unittests) --endif() -\ No newline at end of file -+endif() -diff --git a/client-qt/client-qt/tests/qml/main.cpp b/client-qt/tests/qml/main.cpp -index 09c02f3e..4c42027c 100644 ---- a/client-qt/client-qt/tests/qml/main.cpp -+++ b/client-qt/tests/qml/main.cpp -@@ -31,9 +31,10 @@ - #include <QQmlEngine> - #include <QQmlContext> - #include <QFontDatabase> -+#ifdef WITH_WEBENGINE - #include <QtWebEngineCore> - #include <QtWebEngineQuick> -- -+#endif - #ifdef Q_OS_WIN - #include <windows.h> - #endif -@@ -155,9 +156,9 @@ main(int argc, char** argv) - // Adjust the argument count. - argc = std::distance(argv, end); - } -- -+#ifdef WITH_WEBENGINE - QtWebEngineQuick::initialize(); -- -+#endif - QTEST_SET_MAIN_SOURCE_PATH - Setup setup(muteDring); - return quick_test_main_with_setup(argc, argv, "qml_test", nullptr, &setup); -diff --git a/client-qt/client-qt/tests/unittests/account_unittest.cpp b/client-qt/tests/unittests/account_unittest.cpp -index aa98453e..5af2ad6e 100644 ---- a/client-qt/client-qt/tests/unittests/account_unittest.cpp -+++ b/client-qt/tests/unittests/account_unittest.cpp -@@ -19,8 +19,6 @@ - - #include "globaltestenvironment.h" - --TestEnvironment globalEnv; -- - /*! - * Test fixture for AccountAdapter testing - */ -diff --git a/client-qt/client-qt/tests/unittests/contact_unittest.cpp b/client-qt/tests/unittests/contact_unittest.cpp -index af8a9a22..b05cc856 100644 ---- a/client-qt/client-qt/tests/unittests/contact_unittest.cpp -+++ b/client-qt/tests/unittests/contact_unittest.cpp -@@ -18,8 +18,6 @@ - - #include "globaltestenvironment.h" - --TestEnvironment globalEnv; -- - /*! - * Test fixture for AccountAdapter testing - */ --- -2.37.3 - diff --git a/gnu/packages/patches/jami-no-webengine.patch b/gnu/packages/patches/jami-no-webengine.patch deleted file mode 100644 index f26cd8e3f5..0000000000 --- a/gnu/packages/patches/jami-no-webengine.patch +++ /dev/null @@ -1,243 +0,0 @@ -From 1f73d3c88e94f2d932c59cab8a02c72a325ccc20 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?S=C3=A9bastien=20Blin?= - <sebastien.blin@savoirfairelinux.com> -Date: Fri, 11 Nov 2022 16:19:11 -0500 -Subject: [PATCH] misc: fix build without webengine - -Change-Id: I2511cd89e1ce7f60424f69ab6576d7fb992dd58c -GitLab: #881 ---- - .../components/DocumentsScrollview.qml | 1 - - src/app/mainview/components/FilePreview.qml | 1 - - src/app/mainview/components/MediaPreview.qml | 57 ++-------------- - .../mainview/components/SwarmDetailsPanel.qml | 1 - - src/app/nowebengine/VideoPreview.qml | 24 +++++++ - src/app/webengine/VideoPreview.qml | 68 +++++++++++++++++++ - 6 files changed, 99 insertions(+), 53 deletions(-) - create mode 100644 src/app/nowebengine/VideoPreview.qml - create mode 100644 src/app/webengine/VideoPreview.qml - -diff --git a/client-qt/src/app/mainview/components/DocumentsScrollview.qml b/client-qt/src/app/mainview/components/DocumentsScrollview.qml -index df516961..3338536a 100644 ---- a/client-qt/src/app/mainview/components/DocumentsScrollview.qml -+++ b/client-qt/src/app/mainview/components/DocumentsScrollview.qml -@@ -20,7 +20,6 @@ import QtQuick.Controls - import QtQuick.Layouts - import Qt.labs.platform - import Qt5Compat.GraphicalEffects --import QtWebEngine - - import net.jami.Models 1.1 - import net.jami.Adapters 1.1 -diff --git a/client-qt/src/app/mainview/components/FilePreview.qml b/client-qt/src/app/mainview/components/FilePreview.qml -index 57b1ec8b..fe8f3fd9 100644 ---- a/client-qt/src/app/mainview/components/FilePreview.qml -+++ b/client-qt/src/app/mainview/components/FilePreview.qml -@@ -19,7 +19,6 @@ import QtQuick.Controls - import QtQuick.Layouts - import Qt.labs.platform - import Qt5Compat.GraphicalEffects --import QtWebEngine - - import net.jami.Models 1.1 - import net.jami.Adapters 1.1 -diff --git a/client-qt/src/app/mainview/components/MediaPreview.qml b/client-qt/src/app/mainview/components/MediaPreview.qml -index 0c33bf3e..965f9343 100644 ---- a/client-qt/src/app/mainview/components/MediaPreview.qml -+++ b/client-qt/src/app/mainview/components/MediaPreview.qml -@@ -19,7 +19,6 @@ import QtQuick.Controls - import QtQuick.Layouts - import Qt.labs.platform - import Qt5Compat.GraphicalEffects --import QtWebEngine - - import net.jami.Models 1.1 - import net.jami.Adapters 1.1 -@@ -92,59 +91,17 @@ Component { - } - Component { - id: avMediaComp -- - Loader { -- property real msgRadius: 20 -- -- Rectangle { -- id: videoAudioRect -- color: JamiTheme.secondaryBackgroundColor -- anchors.fill: parent -- -- WebEngineView { -- id: wev -- -- property bool isVideo: mediaInfo.isVideo -- property string html: mediaInfo.html -- -- anchors.fill: parent -- anchors.verticalCenter: videoAudioRect.verticalCenter -- backgroundColor: JamiTheme.secondaryBackgroundColor -- anchors.topMargin: isVideo? 0 : wev.implicitHeight / 2 -- settings.fullScreenSupportEnabled: isVideo -- settings.javascriptCanOpenWindows: false -- Component.onCompleted: loadHtml(html, 'file://') -- onFullScreenRequested: function(request) { -- if (request.toggleOn) { -- layoutManager.pushFullScreenItem( -- this, -- videoAudioRect, -- null, -- function() { wev.fullScreenCancelled() }) -- } else if (!request.toggleOn) { -- layoutManager.removeFullScreenItem(this) -- } -- request.accept() -- } -- } -- -- layer.enabled: true -- layer.effect: OpacityMask { -- maskSource: Item { -- width: videoAudioRect.width -- height: videoAudioRect.height -- Rectangle { -- anchors.centerIn: parent -- width: videoAudioRect.width -- height: videoAudioRect.height -- radius: JamiTheme.swarmDetailsPageDocumentsMediaRadius -- } -- } -- } -+ Component.onCompleted: { -+ var qml = WITH_WEBENGINE ? -+ "qrc:/webengine/VideoPreview.qml" : -+ "qrc:/nowebengine/VideoPreview.qml" -+ setSource( qml, { isVideo: mediaInfo.isVideo, html:mediaInfo.html } ) - } -+ -+ property real msgRadius: 20 - } - } -- - Component { - id: imageMediaComp - -diff --git a/client-qt/src/app/mainview/components/SwarmDetailsPanel.qml b/client-qt/src/app/mainview/components/SwarmDetailsPanel.qml -index 0dd93bc2..7625a76e 100644 ---- a/client-qt/src/app/mainview/components/SwarmDetailsPanel.qml -+++ b/client-qt/src/app/mainview/components/SwarmDetailsPanel.qml -@@ -21,7 +21,6 @@ import QtQuick.Controls - import QtQuick.Layouts - import Qt.labs.platform - import Qt5Compat.GraphicalEffects --import QtWebEngine - - import net.jami.Models 1.1 - import net.jami.Adapters 1.1 -diff --git a/client-qt/src/app/nowebengine/VideoPreview.qml b/client-qt/src/app/nowebengine/VideoPreview.qml -new file mode 100644 -index 00000000..8c2e8a4f ---- /dev/null -+++ b/client-qt/src/app/nowebengine/VideoPreview.qml -@@ -0,0 +1,24 @@ -+/* -+ * Copyright (C) 2022 Savoir-faire Linux Inc. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program. If not, see <https://www.gnu.org/licenses/>. -+ */ -+ -+import QtQuick -+import QtQuick.Controls -+import QtQuick.Layouts -+ -+Rectangle { -+ property var mediaInfo: undefined -+} -\ No newline at end of file -diff --git a/client-qt/src/app/webengine/VideoPreview.qml b/client-qt/src/app/webengine/VideoPreview.qml -new file mode 100644 -index 00000000..edc03599 ---- /dev/null -+++ b/client-qt/src/app/webengine/VideoPreview.qml -@@ -0,0 +1,68 @@ -+/* -+ * Copyright (C) 2022 Savoir-faire Linux Inc. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program. If not, see <https://www.gnu.org/licenses/>. -+ */ -+ -+import QtQuick -+import QtWebEngine -+import Qt5Compat.GraphicalEffects -+ -+import net.jami.Constants 1.1 -+ -+Rectangle { -+ id: root -+ color: JamiTheme.secondaryBackgroundColor -+ anchors.fill: parent -+ property bool isVideo: false -+ property string html: "" -+ -+ WebEngineView { -+ id: wev -+ -+ anchors.fill: parent -+ anchors.verticalCenter: root.verticalCenter -+ backgroundColor: JamiTheme.secondaryBackgroundColor -+ anchors.topMargin: root.isVideo? 0 : wev.implicitHeight / 2 -+ settings.fullScreenSupportEnabled: root.isVideo -+ settings.javascriptCanOpenWindows: false -+ Component.onCompleted: loadHtml(root.html, 'file://') -+ onFullScreenRequested: function(request) { -+ if (request.toggleOn) { -+ layoutManager.pushFullScreenItem( -+ this, -+ root, -+ null, -+ function() { wev.fullScreenCancelled() }) -+ } else if (!request.toggleOn) { -+ layoutManager.removeFullScreenItem(this) -+ } -+ request.accept() -+ } -+ } -+ -+ layer.enabled: true -+ layer.effect: OpacityMask { -+ maskSource: Item { -+ width: root.width -+ height: root.height -+ Rectangle { -+ anchors.centerIn: parent -+ width: root.width -+ height: root.height -+ radius: JamiTheme.swarmDetailsPageDocumentsMediaRadius -+ } -+ } -+ } -+} -\ No newline at end of file --- -2.37.3 - diff --git a/gnu/packages/patches/jami-sip-contacts.patch b/gnu/packages/patches/jami-sip-contacts.patch deleted file mode 100644 index dce8f6b98d..0000000000 --- a/gnu/packages/patches/jami-sip-contacts.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 3ba007d02bc19e499c8f3c2345302453028831a8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?S=C3=A9bastien=20Blin?= - <sebastien.blin@savoirfairelinux.com> -Date: Tue, 29 Nov 2022 09:26:20 -0500 -Subject: [PATCH] misc: fix incoming message sip - -We do not need to check contacts for SIP as it will be considered -automatically as a contact - -Change-Id: If78113e9d79dcd695c39c2d12c0441e2cb282737 ---- - src/libclient/conversationmodel.cpp | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/client-qt/src/libclient/conversationmodel.cpp b/client-qt/src/libclient/conversationmodel.cpp -index dba206bd..5604a17c 100644 ---- a/client-qt/src/libclient/conversationmodel.cpp -+++ b/client-qt/src/libclient/conversationmodel.cpp -@@ -3611,8 +3611,12 @@ ConversationModelPimpl::addIncomingMessage(const QString& peerId, - try { - auto contact = linked.owner.contactModel->getContact(peerId); - isRequest = contact.profileInfo.type == profile::Type::PENDING; -- if (isRequest && !contact.isBanned && peerId != linked.owner.profileInfo.uri) { -- addContactRequest(peerId); -+ // if isSip, it will be a contact! -+ auto isSip = linked.owner.profileInfo.type == profile::Type::SIP; -+ if (isSip -+ || (isRequest && !contact.isBanned && peerId != linked.owner.profileInfo.uri)) { -+ if (!isSip) -+ addContactRequest(peerId); - convIds.push_back(storage::beginConversationWithPeer(db, contact.profileInfo.uri)); - auto& conv = getConversationForPeerUri(contact.profileInfo.uri).get(); - conv.uid = convIds[0]; - -base-commit: 6f30acf0043d07dcbe63ee8636509885a9b6fd76 --- -2.38.1 - diff --git a/gnu/packages/patches/jami-sip-unregister.patch b/gnu/packages/patches/jami-sip-unregister.patch deleted file mode 100644 index 1f0302bb12..0000000000 --- a/gnu/packages/patches/jami-sip-unregister.patch +++ /dev/null @@ -1,48 +0,0 @@ -From c1e6d664601b35a466f4e02e86a2c8181fdcca12 Mon Sep 17 00:00:00 2001 -From: Antoine Noreau <antoine.noreau@savoirfairelinux.com> -Date: Thu, 3 Nov 2022 15:35:40 -0400 -Subject: [PATCH] sip: ensure correct unregister upon closure - -Ensure SIP connections are gracefully terminated: -Removed duplicated register calls to SIP server - -Change-Id: I330e67cf9534504f92517996eb7b693b43d359d3 -Gitlab: #786 ---- - src/upnp/upnp_context.cpp | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/daemon/src/upnp/upnp_context.cpp b/daemon/src/upnp/upnp_context.cpp -index a447e2d75..c68fe502c 100644 ---- a/daemon/src/upnp/upnp_context.cpp -+++ b/daemon/src/upnp/upnp_context.cpp -@@ -143,7 +143,7 @@ void - UPnPContext::stopUpnp(bool forceRelease) - { - if (not isValidThread()) { -- runOnUpnpContextQueue([this] { stopUpnp(); }); -+ runOnUpnpContextQueue([this, forceRelease] { stopUpnp(forceRelease); }); - return; - } - -@@ -168,10 +168,15 @@ UPnPContext::stopUpnp(bool forceRelease) - preferredIgd_.reset(); - validIgdList_.clear(); - } -- - for (auto const& map : toRemoveList) { - requestRemoveMapping(map); -- updateMappingState(map, MappingState::FAILED); -+ -+ /* Notify is not needed in updateMappingState when -+ shutting down (hence set it to false). NotifyCallback -+ would trigger a new SIP registration and create a -+ false registered state upon program close. */ -+ -+ updateMappingState(map, MappingState::FAILED, false); - // We dont remove mappings with auto-update enabled, - // unless forceRelease is true. - if (not map->getAutoUpdate() or forceRelease) { --- -2.37.3 - diff --git a/gnu/packages/patches/jami-sipaccount-segfault.patch b/gnu/packages/patches/jami-sipaccount-segfault.patch deleted file mode 100644 index 1cef512124..0000000000 --- a/gnu/packages/patches/jami-sipaccount-segfault.patch +++ /dev/null @@ -1,30 +0,0 @@ -From e5a449d60abc667d85dacd75ad6e31d4ddca5853 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?S=C3=A9bastien=20Blin?= - <sebastien.blin@savoirfairelinux.com> -Date: Thu, 17 Nov 2022 12:02:20 -0500 -Subject: [PATCH] sipaccount: fix potential null dereference - -Detected by sonarqube - -Change-Id: I606f9cf2458dda07471d0a67af8915c7ca13d410 ---- - src/sip/sipaccount.cpp | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/daemon/src/sip/sipaccount.cpp b/daemon/src/sip/sipaccount.cpp -index 695b71839..e544ac31a 100644 ---- a/daemon/src/sip/sipaccount.cpp -+++ b/daemon/src/sip/sipaccount.cpp -@@ -789,7 +789,8 @@ SIPAccount::sendRegister() - if (pjsip_regc_set_transport(regc, &tp_sel) != PJ_SUCCESS) - throw VoipLinkException("Unable to set transport"); - -- setUpTransmissionData(tdata, tp_sel.u.transport->key.type); -+ if (tp_sel.u.transport) -+ setUpTransmissionData(tdata, tp_sel.u.transport->key.type); - - // pjsip_regc_send increment the transport ref count by one, - if ((status = pjsip_regc_send(regc, tdata)) != PJ_SUCCESS) { --- -GitLab - diff --git a/gnu/packages/patches/jami-xcb-link.patch b/gnu/packages/patches/jami-xcb-link.patch deleted file mode 100644 index 6879493123..0000000000 --- a/gnu/packages/patches/jami-xcb-link.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 3db2a7802422e69f50030db854abfb72fbc9caa4 Mon Sep 17 00:00:00 2001 -From: Maxim Cournoyer <maxim.cournoyer@savoirfairelinux.com> -Date: Fri, 11 Nov 2022 22:38:32 -0500 -Subject: [PATCH] Move xcb include/link directives from jami to libclient. - -Relates to <https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/882>. - -This problem was discovered when attempting to build the test suite: - - ld: ../src/libclient/liblibjamiclient.a(avmodel.cpp.o): undefined - reference to symbol 'xcb_get_setup' - -* CMakeLists.txt: [!(APPLE or MSVC] Move xcb includes and link directives to... -* src/libclient/CMakeLists.txt [!(APPLE or MSVC]: ... here. - -Change-Id: If9b6653e157081300caad8f13cafe4979a49630b ---- - CMakeLists.txt | 6 +----- - src/libclient/CMakeLists.txt | 6 ++++++ - 2 files changed, 7 insertions(+), 5 deletions(-) - -diff --git a/client-qt/CMakeLists.txt b/client-qt/CMakeLists.txt -index d0a8fd70..2a09fd6c 100644 ---- a/client-qt/CMakeLists.txt -+++ b/client-qt/CMakeLists.txt -@@ -384,8 +384,6 @@ elseif (NOT APPLE) - add_definitions(${LIBGDKPIXBUF_CFLAGS}) - endif() - -- pkg_check_modules(XCB xcb) -- - list(PREPEND CMAKE_PREFIX_PATH - ${LIBJAMI_CONTRIB_DIR}/native/ffmpeg/libavutil) - pkg_check_modules(LIBAVUTIL libavutil>=55.75.100) -@@ -398,7 +396,6 @@ elseif (NOT APPLE) - ${LIBNOTIFY_INCLUDE_DIRS} - ${LIBGDKPIXBUF_INCLUDE_DIRS} - ${GLIB_INCLUDE_DIRS} -- ${XCB_INCLUDE_DIRS} - ${LIBAVUTIL_INCLUDE_DIRS}) - - set(JAMI_DATA_PREFIX "${CMAKE_INSTALL_PREFIX}/share") -@@ -586,8 +583,7 @@ elseif (NOT APPLE) - ${LIBNOTIFY_LIBRARIES} - ${LIBGDKPIXBUF_LIBRARIES} - ${GLIB_LIBRARIES} -- ${GIO_LIBRARIES} -- ${XCB_LIBRARIES}) -+ ${GIO_LIBRARIES}) - - # Installation rules - install( -diff --git a/client-qt/src/libclient/CMakeLists.txt b/client-qt/src/libclient/CMakeLists.txt -index 99780f5f..1dd32677 100644 ---- a/client-qt/src/libclient/CMakeLists.txt -+++ b/client-qt/src/libclient/CMakeLists.txt -@@ -475,6 +475,12 @@ add_library(${LIBCLIENT_NAME} STATIC - foreach(QT_LIB ${QT_LIBS}) - target_link_libraries(${LIBCLIENT_NAME} ${QT_LIB}) - endforeach() -+ -+if(NOT(APPLE OR MSVC)) -+ pkg_check_modules(XCB xcb IMPORTED_TARGET) -+ target_link_libraries(${LIBCLIENT_NAME} PkgConfig::XCB) -+endif() -+ - if(ENABLE_LIBWRAP) - target_link_libraries(${LIBCLIENT_NAME} qtwrapper ${LIBJAMI_LIB}) - if (NOT (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")) --- -2.37.3 - diff --git a/gnu/packages/patches/julia-tracker-16-compat.patch b/gnu/packages/patches/julia-tracker-16-compat.patch deleted file mode 100644 index 4fff423e44..0000000000 --- a/gnu/packages/patches/julia-tracker-16-compat.patch +++ /dev/null @@ -1,40 +0,0 @@ -https://github.com/FluxML/Tracker.jl/commit/f6550ba38a9ea5802e2de4fa9c939929ba711f0d.patch -from an upstream pull request -https://github.com/FluxML/Tracker.jl/pull/94 - - -From f6550ba38a9ea5802e2de4fa9c939929ba711f0d Mon Sep 17 00:00:00 2001 -From: Michael Abbott <me@escbook> -Date: Wed, 3 Feb 2021 22:58:33 +0100 -Subject: [PATCH] two fixes for 1.6 - ---- - src/lib/array.jl | 2 +- - src/lib/real.jl | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/lib/array.jl b/src/lib/array.jl -index 92f2b39..f8cbbac 100644 ---- a/src/lib/array.jl -+++ b/src/lib/array.jl -@@ -298,7 +298,7 @@ Base.reverse(xs::TrackedArray; dims) = track(reverse, xs, dims = dims) - @grad reverse(xs; dims) = reverse(data(xs), dims = dims), Δ -> (reverse(Δ, dims = dims), nothing) - Base.reverse(xs::TrackedVector) = track(reverse, xs) - @grad reverse(xs::TrackedVector) = reverse(data(xs)), Δ -> (reverse(Δ),) --Base.reverse(xs::TrackedVector, start, stop) = track(reverse, xs, start, stop) -+Base.reverse(xs::TrackedVector, start::Integer, stop::Integer) = track(reverse, xs, start, stop) - @grad reverse(xs, start, stop) = reverse(data(xs), start, stop), Δ -> (reverse(Δ, start, stop), nothing, nothing) - - function _kron(mat1::AbstractMatrix,mat2::AbstractMatrix) -diff --git a/src/lib/real.jl b/src/lib/real.jl -index 737afd8..e1975ac 100644 ---- a/src/lib/real.jl -+++ b/src/lib/real.jl -@@ -55,6 +55,7 @@ for f in :[isinf, isnan, isfinite].args - end - - Printf.fix_dec(x::TrackedReal, n::Int, a...) = Printf.fix_dec(data(x), n, a...) -+Printf.tofloat(x::TrackedReal) = Printf.tofloat(data(x)) - - Base.float(x::TrackedReal) = x - diff --git a/gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.1.1.patch b/gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.1.1.patch new file mode 100644 index 0000000000..b4bf292c1e --- /dev/null +++ b/gnu/packages/patches/libgeotiff-fix-tests-with-proj-9.1.1.patch @@ -0,0 +1,100 @@ +From: Even Rouault <even.rouault@spatialys.com> +Date: Sat, 26 Nov 2022 13:23:12 +0100 +Subject: Fix test failures with PROJ 9.1.1 + +https://github.com/OSGeo/libgeotiff/pull/82 +--- + bin/listgeo.c | 7 ++++++- + test/testlistgeo | 4 ++-- + test/testlistgeo_out.dist | 14 -------------- + 3 files changed, 8 insertions(+), 17 deletions(-) + +diff --git a/bin/listgeo.c b/bin/listgeo.c +index 06c45f70..acad54c6 100644 +--- a/bin/listgeo.c ++++ b/bin/listgeo.c +@@ -29,6 +29,7 @@ void Usage() + " -tfw: Generate a .tfw (ESRI TIFF World) file for the target file.\n" + " -proj4: Report PROJ.4 equivalent projection definition.\n" + " -no_norm: Don't report 'normalized' parameter values.\n" ++ " -no_corners: Don't report corner coordinates.\n" + " filename: Name of the GeoTIFF file to report on.\n" ); + + exit( 1 ); +@@ -42,6 +43,7 @@ int main(int argc, char *argv[]) + int i, norm_print_flag = 1, proj4_print_flag = 0; + int tfw_flag = 0, inv_flag = 0, dec_flag = 0; + int st_test_flag = 0; ++ int corners = 1; + + /* + * Handle command line options. +@@ -50,6 +52,8 @@ int main(int argc, char *argv[]) + { + if( strcmp(argv[i],"-no_norm") == 0 ) + norm_print_flag = 0; ++ else if( strcmp(argv[i],"-no_corners") == 0 ) ++ corners = 0; + else if( strcmp(argv[i],"-tfw") == 0 ) + tfw_flag = 1; + else if( strcmp(argv[i],"-proj4") == 0 ) +@@ -130,7 +134,8 @@ int main(int argc, char *argv[]) + + TIFFGetField( tif, TIFFTAG_IMAGEWIDTH, &xsize ); + TIFFGetField( tif, TIFFTAG_IMAGELENGTH, &ysize ); +- GTIFPrintCorners( gtif, &defn, stdout, xsize, ysize, inv_flag, dec_flag ); ++ if( corners ) ++ GTIFPrintCorners( gtif, &defn, stdout, xsize, ysize, inv_flag, dec_flag ); + } + + } +diff --git a/test/testlistgeo b/test/testlistgeo +index 596301b4..9a41e74f 100755 +--- a/test/testlistgeo ++++ b/test/testlistgeo +@@ -59,11 +59,11 @@ $EXE ${DATA_DIR}/ProjLinearUnitsGeoKey_9036.tif >>${OUT} + echo "" >>${OUT} + + echo "Testing listgeo ProjectedCSTypeGeoKey_28191_cassini_soldner.tif" >> ${OUT} +-$EXE ${DATA_DIR}/ProjectedCSTypeGeoKey_28191_cassini_soldner.tif >>${OUT} ++$EXE -no_corners ${DATA_DIR}/ProjectedCSTypeGeoKey_28191_cassini_soldner.tif >>${OUT} + echo "" >>${OUT} + + echo "Testing listgeo cassini_soldner.tif" >> ${OUT} +-$EXE ${DATA_DIR}/cassini_soldner.tif >>${OUT} ++$EXE -no_corners ${DATA_DIR}/cassini_soldner.tif >>${OUT} + echo "" >>${OUT} + + echo "Testing listgeo ProjectedCSTypeGeoKey_27200_new_zealand_mapping_grid.tif" >> ${OUT} +diff --git a/test/testlistgeo_out.dist b/test/testlistgeo_out.dist +index 742f0fce..20221cec 100644 +--- a/test/testlistgeo_out.dist ++++ b/test/testlistgeo_out.dist +@@ -299,13 +299,6 @@ Ellipsoid: 7010/Clarke 1880 (Benoit) (6378300.79,6356566.43) + Prime Meridian: 8901/Greenwich (0.000000/ 0d 0' 0.00"E) + Projection Linear Units: 9001/metre (1.000000m) + +-Corner Coordinates: +-Upper Left ( 440720.000, 3751320.000) ( 40d47'28.08"E, 64d13'29.57"N) +-Lower Left ( 440720.000, 3751260.000) ( 40d47'27.69"E, 64d13'27.64"N) +-Upper Right ( 440780.000, 3751320.000) ( 40d47'32.51"E, 64d13'29.40"N) +-Lower Right ( 440780.000, 3751260.000) ( 40d47'32.12"E, 64d13'27.47"N) +-Center ( 440750.000, 3751290.000) ( 40d47'30.10"E, 64d13'28.52"N) +- + Testing listgeo cassini_soldner.tif + Geotiff_Information: + Version: 1 +@@ -348,13 +341,6 @@ Projection Method: CT_CassiniSoldner + ProjFalseNorthingGeoKey: 126867.909000 m + Projection Linear Units: 9001/metre (1.000000m) + +-Corner Coordinates: +-Upper Left ( 440720.000, 3751320.000) ( 40d47'28.08"E, 64d13'29.57"N) +-Lower Left ( 440720.000, 3751260.000) ( 40d47'27.69"E, 64d13'27.64"N) +-Upper Right ( 440780.000, 3751320.000) ( 40d47'32.51"E, 64d13'29.40"N) +-Lower Right ( 440780.000, 3751260.000) ( 40d47'32.12"E, 64d13'27.47"N) +-Center ( 440750.000, 3751290.000) ( 40d47'30.10"E, 64d13'28.52"N) +- + Testing listgeo ProjectedCSTypeGeoKey_27200_new_zealand_mapping_grid.tif + Geotiff_Information: + Version: 1 diff --git a/gnu/packages/patches/openbios-gcc-warnings.patch b/gnu/packages/patches/openbios-gcc-warnings.patch new file mode 100644 index 0000000000..b96cecc31e --- /dev/null +++ b/gnu/packages/patches/openbios-gcc-warnings.patch @@ -0,0 +1,95 @@ +Fix warnings with recent versions of GCC. + +This is a combination of these commits: + + https://github.com/openbios/openbios/commit/14be7d187a327a89c068c4e2551d5012a3c25703 + https://github.com/openbios/openbios/commit/0e6b8b3cb4a25a4680f238bae76de5e370e706c8 + https://github.com/openbios/openbios/commit/51067854a7606cceb8b1e0a3d2108da69ff46973 + +...with minor adaptations to apply on 1.1. + + +diff --git a/arch/sparc32/context.c b/arch/sparc32/context.c +--- a/arch/sparc32/context.c ++++ b/arch/sparc32/context.c +@@ -86,7 +86,7 @@ struct context *switch_to(struct context *ctx) + __context = ctx; + asm __volatile__ ("\n\tcall __switch_context" + "\n\tnop" ::: "g1", "g2", "g3", "g4", "g5", "g6", "g7", +- "o0", "o1", "o2", "o3", "o4", "o5", "sp", "o7", ++ "o0", "o1", "o2", "o3", "o4", "o5", "o7", + "l0", "l1", "l2", "l3", "l4", "l5", "l6", "l7", + "i0", "i1", "i2", "i3", "i4", "i5", "i7", + "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", +diff --git a/drivers/cuda.c b/drivers/cuda.c +--- a/drivers/cuda.c ++++ b/drivers/cuda.c +@@ -355,7 +355,7 @@ static void + rtc_init(char *path) + { + phandle_t ph, aliases; +- char buf[64]; ++ char buf[128]; + + snprintf(buf, sizeof(buf), "%s/rtc", path); + REGISTER_NAMED_NODE(rtc, buf); +diff --git a/drivers/ide.c b/drivers/ide.c +--- a/drivers/ide.c ++++ b/drivers/ide.c +@@ -987,7 +987,7 @@ ob_ide_identify_drive(struct ide_drive *drive) + drive->sect = id.sectors; + } + +- strncpy(drive->model, (char*)id.model, sizeof(id.model)); ++ strncpy(drive->model, (char*)id.model, sizeof(drive->model)); + drive->model[40] = '\0'; + return 0; + } +diff --git a/fs/hfs/hfs_fs.c b/fs/hfs/hfs_fs.c +--- a/fs/hfs/hfs_fs.c ++++ b/fs/hfs/hfs_fs.c +@@ -86,7 +86,7 @@ _search( hfsvol *vol, const char *path, const char *sname, hfsfile **ret_fd ) + + strncpy( buf, path, sizeof(buf) ); + if( buf[strlen(buf)-1] != ':' ) +- strncat( buf, ":", sizeof(buf) ); ++ strncat( buf, ":", sizeof(buf) - 1 ); + buf[sizeof(buf)-1] = 0; + p = buf + strlen( buf ); + +@@ -101,7 +101,7 @@ _search( hfsvol *vol, const char *path, const char *sname, hfsfile **ret_fd ) + *p = 0; + topdir = 0; + +- strncat( buf, ent.name, sizeof(buf) ); ++ strncat( buf, ent.name, sizeof(buf) - 1); + if( (status=_search(vol, buf, sname, ret_fd)) != 2 ) + continue; + topdir = 1; +diff --git a/libc/string.c b/libc/string.c +--- a/libc/string.c ++++ b/libc/string.c +@@ -349,10 +349,7 @@ int memcmp(const void * cs,const void * ct,size_t count) + char * + strdup( const char *str ) + { +- char *p; +- if( !str ) +- return NULL; +- p = malloc( strlen(str) + 1 ); ++ char *p = malloc( strlen(str) + 1 ); + strcpy( p, str ); + return p; + } +diff --git a/packages/nvram.c b/packages/nvram.c +--- a/packages/nvram.c ++++ b/packages/nvram.c +@@ -105,7 +105,7 @@ create_free_part( char *ptr, int size ) + nvpart_t *nvp = (nvpart_t*)ptr; + memset( nvp, 0, size ); + +- strncpy( nvp->name, "777777777777", sizeof(nvp->name) ); ++ strncpy( nvp->name, "77777777777", sizeof(nvp->name) ); + nvp->signature = NV_SIG_FREE; + nvp->len_hi = (size /16) >> 8; + nvp->len_lo = size /16; diff --git a/gnu/packages/patches/python-apsw-3.39.2.1-test-fix.patch b/gnu/packages/patches/python-apsw-3.39.2.1-test-fix.patch deleted file mode 100644 index cc233e3ccd..0000000000 --- a/gnu/packages/patches/python-apsw-3.39.2.1-test-fix.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 1111f902075169bd0d96cdd10607ef8499f0fed5 Mon Sep 17 00:00:00 2001 -From: Roger Binns <rogerb@rogerbinns.com> -Date: Mon, 5 Sep 2022 07:12:25 -0700 -Subject: [PATCH] Deal with mismatched SQLITE_ENABLE_COLUMN_METADATA - -Address #363 ---- - apsw/tests.py | 2 +- - 1 files changed, 1 insertions(+), 1 deletion(-) - -diff --git a/apsw/tests.py b/apsw/tests.py -index b4a94d3..256ead0 100644 ---- a/apsw/tests.py -+++ b/apsw/tests.py -@@ -772,8 +772,8 @@ class APSW(unittest.TestCase): - c.execute("drop table foo; create table foo (%s)" % (", ".join(["[%s] %s" % (n, t) for n, t in cols]), )) - c.execute("insert into foo([x a space]) values(1)") - c.execute("create temp table two(fred banana); insert into two values(7); create temp view three as select fred as [a space] from two") -- has_full=any(o=="ENABLE_COLUMN_METADATA" or o.startswith("ENABLE_COLUMN_METADATA=") for o in apsw.compile_options) -+ has_full=any(o=="ENABLE_COLUMN_METADATA" or o.startswith("ENABLE_COLUMN_METADATA=") for o in apsw.compile_options) if apsw.using_amalgamation else hasattr(c, "description_full") - for row in c.execute("select * from foo"): - self.assertEqual(cols, c.getdescription()) - self.assertEqual(has_full, hasattr(c, "description_full")) - -base-commit: f628374c5857d940067ef26c9ea4e85a08a94f76 --- -2.37.2 diff --git a/gnu/packages/patches/python-flask-restful-werkzeug-compat.patch b/gnu/packages/patches/python-flask-restful-werkzeug-compat.patch deleted file mode 100644 index 0e928ef455..0000000000 --- a/gnu/packages/patches/python-flask-restful-werkzeug-compat.patch +++ /dev/null @@ -1,36 +0,0 @@ -We need one patch on top of 0.3.8 for compatibility with Werkzeug 1.0. - -Taken from upstream: -https://github.com/flask-restful/flask-restful/commit/73376a488907af3042b52678ac4c23f8a8911e5b - -diff --git a/tests/test_api.py b/tests/test_api.py -index f7f8e661..6795d362 100644 ---- a/tests/test_api.py -+++ b/tests/test_api.py -@@ -445,7 +445,9 @@ def test_handle_non_api_error(self): - - resp = app.get("/foo") - self.assertEquals(resp.status_code, 404) -- self.assertEquals('text/html', resp.headers['Content-Type']) -+ # in newer versions of werkzeug this is `text/html; charset=utf8` -+ content_type, _, _ = resp.headers['Content-Type'].partition(';') -+ self.assertEquals('text/html', content_type) - - def test_non_api_error_404_catchall(self): - app = Flask(__name__) -diff --git a/tests/test_reqparse.py b/tests/test_reqparse.py -index 2f1fbedf..9776f17c 100644 ---- a/tests/test_reqparse.py -+++ b/tests/test_reqparse.py -@@ -2,9 +2,9 @@ - import unittest - from mock import Mock, patch - from flask import Flask --from werkzeug import exceptions, MultiDict -+from werkzeug import exceptions - from werkzeug.wrappers import Request --from werkzeug.datastructures import FileStorage -+from werkzeug.datastructures import FileStorage, MultiDict - from flask_restful.reqparse import Argument, RequestParser, Namespace - import six - import decimal diff --git a/gnu/packages/patches/python-telingo-fix-comparison.patch b/gnu/packages/patches/python-telingo-fix-comparison.patch new file mode 100644 index 0000000000..6d05048dcb --- /dev/null +++ b/gnu/packages/patches/python-telingo-fix-comparison.patch @@ -0,0 +1,19 @@ +Index: source/telingo/transformers/head.py +=================================================================== +--- source.orig/telingo/transformers/head.py ++++ source/telingo/transformers/head.py +@@ -564,10 +564,12 @@ class HeadTransformer: + cond = [] + diff = _ast.BinaryOperation(loc, _ast.BinaryOperator.Minus, param, shift) + if lhs.ast_type != _ast.ASTType.SymbolicTerm or lhs.symbol.type != _clingo.SymbolType.Number or lhs.symbol.number > 0: +- cond.append(_ast.Literal(loc, _ast.Sign.NoSign, _ast.Comparison(_ast.ComparisonOperator.LessEqual, lhs, diff))) ++ cond.append(_ast.Literal(loc, _ast.Sign.NoSign, ++ _ast.Comparison(lhs, [_ast.Guard(_ast.ComparisonOperator.LessEqual, diff)]))) + + if rhs.ast_type != _ast.ASTType.SymbolicTerm or rhs.symbol.type != _clingo.SymbolType.Supremum: +- cond.append(_ast.Literal(loc, _ast.Sign.NoSign, _ast.Comparison(_ast.ComparisonOperator.LessEqual, diff, rhs))) ++ cond.append(_ast.Literal(loc, _ast.Sign.NoSign, ++ _ast.Comparison(diff, [_ast.Guard(_ast.ComparisonOperator.LessEqual, rhs)]))) + + elems.extend([_ast.ConditionalLiteral(loc, _ast.Literal(loc, _ast.Sign.NoSign, head), cond) for head in heads]) + diff --git a/gnu/packages/pciutils.scm b/gnu/packages/pciutils.scm index 91e3fad33b..ec6bb76d5d 100644 --- a/gnu/packages/pciutils.scm +++ b/gnu/packages/pciutils.scm @@ -39,7 +39,7 @@ (define-public hwdata (package (name "hwdata") - (version "0.357") ;updated monthly + (version "0.365") ;updated monthly (source (origin (method git-fetch) (uri (git-reference @@ -48,7 +48,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0kvxpdx14w2myqm3dikjvr2mr4j6767y4v5j8v7kffwvcv0ga9gv")))) + "00gqx24dyy9l98ygnvx8i087xq8pl9d2393h4d2cm4d5nnvr51d4")))) (build-system gnu-build-system) (outputs '("out" "iab" "oui" "pci" "pnp" "usb")) (arguments diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 070dc59ac0..19e10649f3 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -951,7 +951,7 @@ using a stylus.") (define-public xournalpp (package (name "xournalpp") - (version "1.1.2") + (version "1.1.3") (source (origin (method git-fetch) @@ -960,7 +960,7 @@ using a stylus.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "13q3fsrszq828gki3z42lda9gghm9wsnsg7iylp1ypcbj7hd5zhk")))) + (base32 "17qq3clfmiyrcah89h8c5r6pc58xcskm5z1czbasv67bfq7chzhy")))) (build-system cmake-build-system) (arguments (list @@ -1276,7 +1276,7 @@ manage or manipulate PDFs.") (define-public pdfarranger (package (name "pdfarranger") - (version "1.9.1") + (version "1.9.2") (source (origin (method git-fetch) @@ -1285,7 +1285,7 @@ manage or manipulate PDFs.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1s0ysg8kfbrvwcr80vrsx7150ixa9v7pb4xm49s97nkiq5k69hal")))) + (base32 "1zj1fdaqih9d878yxy96ivgqyg4j31slvh2gqsyz2l2vj3s8z54x")))) (build-system python-build-system) (arguments (list diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 7543e05f47..25136c8448 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -1590,13 +1590,13 @@ Amazon S3 compatible object storage server.") (define-public python-pycurl (package (name "python-pycurl") - (version "7.43.0.5") + (version "7.45.2") (source (origin (method url-fetch) (uri (pypi-uri "pycurl" version)) (sha256 - (base32 "1cwlb76vddqp2mxqvjbhf367caddzy82rhangddjjhjqaj8x4zgc")))) + (base32 "1ji46b924caa4saxvjxs9h673yy0kif297nxpnjn84r7w05mjc2p")))) (build-system python-build-system) (arguments ;; The tests attempt to access external web servers, so we cannot run @@ -3924,35 +3924,28 @@ apps.") (define-public python-flask-restful (package (name "python-flask-restful") - (version "0.3.8") + (version "0.3.9") (source (origin (method url-fetch) (uri (pypi-uri "Flask-RESTful" version)) - (patches (search-patches "python-flask-restful-werkzeug-compat.patch")) (sha256 (base32 - "05b9lzx5yc3wgml2bcq50lq35h66m8zpj6dc9advcb5z3acsbaay")))) - (build-system python-build-system) + "0gm5dz088v3d2k1dkcp9b3nnqpkk0fp2jly870hijj2xhc5nbv6c")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-imports - (lambda _ - (substitute* "flask_restful/__init__.py" - (("flask\\.helpers") "flask.scaffold"))))))) + ;; This test fails because '/' is not 'http://localhost/'. + (list #:test-flags '(list "-k" "not test_redirect"))) (propagated-inputs - (list python-aniso8601 python-flask python-pytz)) + (list python-aniso8601 python-flask python-pytz)) (native-inputs - (list ;; Optional dependency of Flask. Tests need it. - python-blinker python-mock ; For tests - python-nose)) ;for tests - (home-page - "https://www.github.com/flask-restful/flask-restful/") - (synopsis - "Flask module for creating REST APIs") + (list python-blinker + python-mock + python-pytest)) + (home-page "https://www.github.com/flask-restful/flask-restful/") + (synopsis "Flask module for creating REST APIs") (description - "This package contains a Flask module for creating REST APIs.") + "This package contains a Flask module for creating REST APIs.") (license license:bsd-3))) (define-public python-flask-basicauth diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 610bf1956d..2fc4db0d10 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -201,6 +201,7 @@ #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) + #:use-module (gnu packages machine-learning) #:use-module (gnu packages man) #:use-module (gnu packages markup) #:use-module (gnu packages maths) @@ -1674,14 +1675,24 @@ and a list of words that are easier to remember for humans (the (define-public python-bitarray (package (name "python-bitarray") - (version "1.4.0") + (version "2.6.1") (source (origin (method url-fetch) (uri (pypi-uri "bitarray" version)) (sha256 (base32 - "177fj6wbw5jln54wpp6plcqy2329wjkwqwvgz7022rrg3xfrq49g")))) + "0c4jli872nzix81n1xirnrghlq2fdsxb570d9rnfvxi1694sah44")))) (build-system python-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; Step out of the source directory to avoid interference. + (with-directory-excursion "/tmp" + (invoke "python" "-c" + "import bitarray; bitarray.test()")))))))) (home-page "https://github.com/ilanschnell/bitarray") (synopsis "Efficient arrays of booleans") (description "This package provides an object type which efficiently @@ -1758,21 +1769,14 @@ NetCDF files can also be read and modified. Python-HDF4 is a fork of (define-public python-h5netcdf (package (name "python-h5netcdf") - (version "1.0.1") + (version "1.1.0") (source (origin (method url-fetch) (uri (pypi-uri "h5netcdf" version)) (sha256 - (base32 "1b2dcgf5rwy7pb7hr4prkc5vgcw9qc2was20dmnj90lbrpx08rvp")))) - (build-system python-build-system) - (arguments - (list #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-vv" "h5netcdf/tests"))))))) + (base32 "0mmzfr6k55zqxxpb64gvdqisak8s1zb2r04yzkmp0wzd7dbknb4k")))) + (build-system pyproject-build-system) (native-inputs (list python-netcdf4 python-pytest @@ -1781,9 +1785,11 @@ NetCDF files can also be read and modified. Python-HDF4 is a fork of (list python-h5py python-packaging)) (home-page "https://h5netcdf.org") (synopsis "Python interface for the netCDF4 file-format based on h5py") - (description "This package provides Python interface for the netCDF4 -file-format that reads and writes local or remote HDF5 files directly via h5py -or h5pyd, without relying on the Unidata netCDF library") + (description "This package provides a Python interface for the netCDF4 +file-format that reads and writes local or remote HDF5 files directly via +@url{h5py, https://www.h5py.org/} or @url{h5pyd, +https://github.com/HDFGroup/h5pyd}, without relying on the Unidata netCDF +library.") (license license:bsd-3))) (define-public python-h5py @@ -4087,23 +4093,22 @@ memory usage and transliteration quality.") (define-public python-pyjwt (package (name "python-pyjwt") - (version "2.4.0") + (version "2.6.0") (source (origin (method url-fetch) (uri (pypi-uri "PyJWT" version)) (sha256 (base32 - "1fmbcwfw1463wjzwbcgg3s16rad6kfb1mc5y7jbkp6v9ihh0hafl")))) - (build-system python-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-vv"))))))) + "1z85kwr945rbzrn5wabrsmck5x8disa9wc7b3y5gci7w65z5qa39")))) + (build-system pyproject-build-system) (native-inputs - (list python-cryptography python-pytest)) + (list python-coverage + python-cryptography + python-pre-commit + python-pytest + python-sphinx + python-sphinx-rtd-theme)) (home-page "https://github.com/progrium/pyjwt") (synopsis "JSON Web Token implementation in Python") (description @@ -15463,7 +15468,10 @@ enhancements to optimization and data fitting problems.") (delete-file "tests/unit/bokeh/models/test_sources.py") (delete-file "tests/unit/bokeh/embed/test_bundle.py") - (invoke "pytest" "-v"))))))) + ;; XXX: This one test transforms a gif of a red box. It + ;; transforms it all right but the base64 doesn't look as + ;; expected, probably because of a change in pillow. + (invoke "pytest" "-v" "-k" "not test_transform_PIL"))))))) (propagated-inputs (list node-lts python-jinja2 @@ -20948,24 +20956,29 @@ while only declaring the test-specific fields.") (define-public python-marshmallow (package (name "python-marshmallow") - (version "3.9.1") + (version "3.19.0") (source (origin - (method url-fetch) - (uri (pypi-uri "marshmallow" version)) - (sha256 - (base32 - "0kizhh3mnhpa08wfnsv1gagy22bpxzxszgbiylkhpz1d8qvwrykk")))) - (build-system python-build-system) + (method url-fetch) + (uri (pypi-uri "marshmallow" version)) + (sha256 + (base32 + "0y6vpq2p5841kcw2qil68la0rx9z1vmxzj3dxjv99kjhsq7jq0wh")))) + (build-system pyproject-build-system) (propagated-inputs - (list python-dateutil python-simplejson)) + (list python-packaging)) (native-inputs - (list python-pytest python-pytz)) + (list python-flake8 + python-flake8-bugbear + python-mypy + python-pre-commit + python-pytest + python-pytz + python-simplejson)) (home-page "https://github.com/marshmallow-code/marshmallow") - (synopsis "Convert complex datatypes to and from native - Python datatypes") - (description "@code{marshmallow} provides a library for converting - complex datatypes to and from native Python datatypes.") + (synopsis "Convert complex datatypes to and from native Python datatypes") + (description "@code{marshmallow} provides a library for converting complex +datatypes to and from native Python datatypes.") (license license:expat))) (define-public python-marshmallow-jsonapi @@ -21001,33 +21014,36 @@ while only declaring the test-specific fields.") (define-public python-apispec (package (name "python-apispec") - (version "4.0.0") + (version "6.0.2") (source (origin - (method url-fetch) - (uri (pypi-uri "apispec" version)) - (sha256 + (method url-fetch) + (uri (pypi-uri "apispec" version)) + (sha256 (base32 - "12n4w5zkn4drcn8izq68vmixmqvz6abviqkdn4ip0kaax3jjh3in")))) - (build-system python-build-system) + "11vqxwdxmm7qmyhdbxk4gnx37nbzmn266ah92gi4pvzd76vq0vg7")))) + (build-system pyproject-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (replace 'check - (lambda _ - (invoke "pytest" "-vv" - ;; Disable validation tests since they require - ;; the optional 'prance' library which is not - ;; yet in Guix. - "-k" "not openapi_tools_validate")))))) + (list + ;; Disable validation tests since they require + ;; the optional 'prance' library which is not + ;; yet in Guix. + #:test-flags '(list "-k" "not openapi_tools_validate"))) (propagated-inputs - (list python-pyyaml)) + (list python-packaging)) (native-inputs - (list python-pytest python-marshmallow)) + (list python-flake8 + python-flake8-bugbear + python-marshmallow + python-mypy + python-pre-commit + python-pytest + python-pyyaml)) (home-page "https://github.com/marshmallow-code/apispec") (synopsis "Swagger/OpenAPI specification generator") (description "@code{python-apispec} is a pluggable API specification - generator. It currently supports the OpenAPI specification, formerly known - as Swagger.") +generator. It currently supports the OpenAPI specification, formerly known as +Swagger.") (license license:expat))) (define-public python-apispec-webframeworks @@ -21061,7 +21077,7 @@ web frameworks.") (define-public python-flasgger (package (name "python-flasgger") - (version "0.6.3") + (version "0.9.5") (source (origin (method git-fetch) @@ -21070,29 +21086,35 @@ web frameworks.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0yydxsyjnc0clbrjqb1n7587l6cdqvwdagwxk5hkx01qwdfbkvpn")))) - (build-system python-build-system) + (base32 "0a2djgfq905a4in16068qz0ikg88dm4nbckaamhaz2v9khllr0bi")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda* (#:key inputs outputs #:allow-other-keys) - (substitute* "Makefile" - (("flake8 flasgger --ignore=F403") - "flake8 flasgger --ignore=E731,F403")) - (invoke "py.test")))))) + (list + ;; This test fails due to missing fixtures + #:test-flags '(list "-k" "not test_swag") + #:phases + '(modify-phases %standard-phases + (add-after 'unpack 'prepare-check + (lambda _ + ;; This requires a dummy package "flasgger_package" to be installed. + (delete-file "examples/package_example.py") + ;; These fail with an internal server error + (for-each delete-file '("examples/marshmallow_apispec.py" + "examples/validation.py"))))))) (propagated-inputs (list python-flask python-pyyaml python-jsonschema python-mistune python-six)) (native-inputs - (list python-decorator + (list python-apispec + python-apispec-webframeworks + python-decorator python-flake8 + python-flask-jwt python-flask-restful python-flex - python-pytest - python-pytest-cov python-marshmallow - python-apispec)) + python-pytest + python-pytest-cov)) (home-page "https://github.com/rochacbruno/flasgger/") (synopsis "Extract Swagger specs from your Flask project") (description "@code{python-flasgger} allows extracting Swagger specs @@ -22309,60 +22331,42 @@ based on the CPython 2.7 and 3.7 parsers.") (file-name (git-file-name name version)) (sha256 (base32 "1knv353qhkl2imav3jfp6bgq47m8wkkqhq1dzmqg2sv8rsy7zgl7")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments - `(#:phases - ,#~(modify-phases %standard-phases - ;; Unfortunately, this doesn't seem to be enough to fix these two - ;; tests, but we'll patch this anyway. - (add-after 'unpack 'patch-shell-reference - (lambda _ - (substitute* "tests/test_completion/test_completion.py" - (("\"bash\"") (string-append "\"" (which "bash") "\"")) - (("\"/bin/bash\"") - (string-append "\"" (which "bash") "\""))))) - (replace 'build - (lambda _ - (invoke "flit" "build"))) - (replace 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (for-each - (lambda (wheel) - (format #true wheel) - (invoke "python" "-m" "pip" "install" - wheel (string-append "--prefix=" #$output))) - (find-files "dist" "\\.whl$")))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (setenv "HOME" "/tmp") ; some tests need it - - ;; This is for completion tests - (with-output-to-file "/tmp/.bashrc" - (lambda _ (display "# dummy"))) - - (setenv "GUIX_PYTHONPATH" - (string-append (getcwd) ":" - (getenv "GUIX_PYTHONPATH"))) - (let ((disabled-tests (list "test_show_completion" - "test_install_completion"))) - (invoke "python" "-m" "pytest" "tests/" - "-k" - (string-append "not " - (string-join disabled-tests - " and not ")))))))))) + (list + #:test-flags + '(let ((disabled-tests (list "test_show_completion" + "test_install_completion"))) + (list "-k" (string-append "not " + (string-join disabled-tests + " and not ")))) + #:phases + #~(modify-phases %standard-phases + ;; Unfortunately, this doesn't seem to be enough to fix these two + ;; tests, but we'll patch this anyway. + (add-after 'unpack 'patch-shell-reference + (lambda _ + (substitute* "tests/test_completion/test_completion.py" + (("\"bash\"") (string-append "\"" (which "bash") "\"")) + (("\"/bin/bash\"") + (string-append "\"" (which "bash") "\""))))) + (add-before 'check 'pre-check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "HOME" "/tmp") ; some tests need it + ;; This is for completion tests + (with-output-to-file "/tmp/.bashrc" + (lambda _ (display "# dummy"))))))))) (propagated-inputs (list python-click)) (native-inputs (list python-coverage python-flit python-pytest python-rich python-shellingham)) (home-page "https://github.com/tiangolo/typer") - (synopsis - "Typer builds CLI based on Python type hints") + (synopsis "Typer builds CLI based on Python type hints") (description - "Typer is a library for building CLI applications. It's based on -Python 3.6+ type hints.") + "Typer is a library for building CLI applications. It's based on Python +3.6+ type hints.") ;; MIT license (license license:expat))) @@ -23489,14 +23493,14 @@ tool).") (define-public python-numcodecs (package (name "python-numcodecs") - (version "0.6.4") + (version "0.10.2") (source (origin (method url-fetch) (uri (pypi-uri "numcodecs" version)) (sha256 (base32 - "0kbfr8pl3x9glsypbq8hzim003f16ml1b1cvgrh4w1sdvgal6j7g")) + "1i2rvm1f23dapcf6w3mj4877jzq5f24bhfa0fafbv1nr7xmqr0r2")) (modules '((guix build utils))) (snippet '(begin @@ -23506,11 +23510,11 @@ tool).") "numcodecs/lz4.c" "numcodecs/vlen.c" "numcodecs/zstd.c")))))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments - `(#:tests? #false ; TODO: unclear why numcodecs.* are not found - #:phases - (modify-phases %standard-phases + (list + #:phases + '(modify-phases %standard-phases (add-after 'unpack 'disable-avx2 (lambda _ (setenv "DISABLE_NUMCODECS_AVX2" "1"))) @@ -23527,16 +23531,18 @@ tool).") "'numcodecs.lz4', libraries=['lz4'], ") (("'numcodecs.blosc',") "'numcodecs.blosc', libraries=['blosc'], ")))) - (replace 'check - (lambda* (#:key tests? inputs outputs #:allow-other-keys) - (when tests? - (add-installed-pythonpath inputs outputs) - (invoke "pytest" "-vv"))))))) + (add-before 'check 'build-extensions + (lambda _ + ;; Cython extensions have to be built before running the tests. + (invoke "python" "setup.py" "build_ext" "--inplace")))))) (inputs (list c-blosc lz4 zlib `(,zstd "lib"))) (propagated-inputs - (list python-numpy python-msgpack)) + (list python-entrypoints + python-numpy + python-msgpack + python-typing-extensions-next)) (native-inputs (list python-cython python-pytest python-setuptools-scm)) (home-page "https://github.com/zarr-developers/numcodecs") @@ -23566,14 +23572,14 @@ codecs for use in data storage and communication applications.") (define-public python-zarr (package (name "python-zarr") - (version "2.4.0") + (version "2.13.3") (source (origin (method url-fetch) (uri (pypi-uri "zarr" version)) (sha256 (base32 - "026n3sjzjv2gmwx6y72b8ij0hk42bc8zdbvfj5gdqzd4i6wj3ajk")))) + "135ls2q7zc98pk61a5cnh88j4hnnavcwasrswdjqyqvcc68b096v")))) (build-system python-build-system) (arguments `(#:phases @@ -23615,29 +23621,26 @@ N-dimensional arrays for Python.") (sha256 (base32 "0v7npqrg1rdm8jzw22a45c0mqrmsv05r3k88i3lhzi0pzzxca1i1")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (delete 'check) - (replace 'build - (lambda _ - (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" ,version) - (substitute* "anndata/_metadata.py" - (("__version__ =.*") - (string-append "__version__ = \"" ,version "\"\n"))) - ;; ZIP does not support timestamps before 1980. - (setenv "SOURCE_DATE_EPOCH" "315532800") - (invoke "flit" "build"))) - (replace 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (let ((out (assoc-ref outputs "out"))) - (for-each (lambda (wheel) - (format #true wheel) - (invoke "python" "-m" "pip" "install" - wheel (string-append "--prefix=" out))) - (find-files "dist" "\\.whl$")))))))) + (list + #:test-flags + '(list "-k" "not concatenation.rst") + #:phases + #~(modify-phases %standard-phases + ;; Doctests require scanpy from (gnu packages bioinformatics) + (add-after 'unpack 'disable-doctests + (lambda _ + (substitute* "pyproject.toml" + (("--doctest-modules") "")))) + (add-before 'build 'set-version + (lambda _ + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version) + (substitute* "anndata/_metadata.py" + (("__version__ =.*") + (string-append "__version__ = \"" #$version "\"\n"))) + ;; ZIP does not support timestamps before 1980. + (setenv "SOURCE_DATE_EPOCH" "315532800")))))) (propagated-inputs (list python-h5py python-importlib-metadata @@ -23646,9 +23649,14 @@ N-dimensional arrays for Python.") python-packaging python-pandas python-scipy + python-scikit-learn python-zarr)) (native-inputs - (list python-joblib python-pytest python-toml python-flit + (list python-boltons + python-joblib + python-pytest + python-toml + python-flit python-setuptools-scm)) (home-page "https://github.com/theislab/anndata") (synopsis "Annotated data for data analysis pipelines") @@ -27002,17 +27010,17 @@ accessor layer.") (define-public pyzo (package (name "pyzo") - (version "4.12.3") + (version "4.12.4") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/pyzo/pyzo.git") + (url "https://github.com/pyzo/pyzo") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "0v6rgp52bf9za2spxx9c1yc6wmskvlsj81iw0gipjy7y8vpypgn2")))) + "10qqilbh7n4z2656qbr9gllvgi7xq11xcm2bv64h02jmkb7m4m6n")))) (build-system python-build-system) (arguments `(#:phases @@ -28550,7 +28558,7 @@ and frame grabber interface.") (native-inputs (list cmake-minimal gfortran - git-minimal + git-minimal/fixed ;for tests ninja python-coverage python-cython @@ -29782,9 +29790,9 @@ simple mock/record and a complete capture/replay framework.") (when tests? (invoke "pytest" "-vv"))))))) (inputs - ;; libyajl is optional, but compiling with it makes faster + ;; yajl is optional, but compiling with it makes faster ;; backends available to ijson: - (list libyajl)) + (list yajl)) (native-inputs (list python-pytest)) (build-system python-build-system) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 519a7d1548..6406fd5c49 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -2546,7 +2546,7 @@ using the Enchant spell-checking library.") cups-minimal curl dbus - ffmpeg + ffmpeg-4 fontconfig harfbuzz icu4c diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index 3834599cfc..5cc3bf077a 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -427,33 +427,36 @@ controls for certain tuners which may be paired with an audio device.") (license license:expat)))) (define-public soapyhackrf - (package - (name "soapyhackrf") - (version "0.3.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pothosware/SoapyHackRF") - (commit (string-append "soapy-hackrf-" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0wnnsm3c4ivwcbs1b68svbyds13aajws9mqk2xjc2pqgj0fdhcvz")))) - (build-system cmake-build-system) - (inputs - (list hackrf soapysdr)) - (arguments - `(#:tests? #f)) ; No test suite - (home-page "https://github.com/pothosware/SoapyHackRF/wiki") - (synopsis "SoapySDR HackRF module") - (description - "This package provides HackRF devices support to the SoapySDR library.") - (license license:expat))) + ;; Some fixes are not yet in a tagged release. + (let ((commit "6c0c33f0aa44c3080674e6bca0273184d3e9eb44") + (revision "1")) + (package + (name "soapyhackrf") + (version (git-version "0.3.4" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pothosware/SoapyHackRF") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1khplrp6iphdclj1wrybxs7pw42rf9112fhfhw7x2fvds8yiswm7")))) + (build-system cmake-build-system) + (inputs + (list hackrf soapysdr)) + (arguments + `(#:tests? #f)) ; No test suite + (home-page "https://github.com/pothosware/SoapyHackRF/wiki") + (synopsis "SoapySDR HackRF module") + (description + "This package provides HackRF devices support to the SoapySDR library.") + (license license:expat)))) (define-public soapyrtlsdr (package (name "soapyrtlsdr") - (version "0.3.2") + (version "0.3.3") (source (origin (method git-fetch) @@ -462,7 +465,7 @@ controls for certain tuners which may be paired with an audio device.") (commit (string-append "soapy-rtl-sdr-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1dlnryj6k20pk7w7v4v13y099r7ikhvlzbgzgphmi5cxkdv0shrd")))) + (base32 "0g1d69lpqw9c8hkir0h61nh40rgyz9p9x04xcfdih7iw26n5vai1")))) (build-system cmake-build-system) (inputs (list rtl-sdr soapysdr)) @@ -556,8 +559,8 @@ It is a GUI for @code{soapy_power}, @code{hackrf_sweep}, @code{rtl_power}, (define-public aptdec ;; No release since 2013, use commit directly. - (let ((commit "51405971fd4e97714d1e987269e49c6edfe4e0da") - (revision "2")) + (let ((commit "4d4a0c9787a27d1eba26b9299c23ae9c66e56716") + (revision "3")) (package (name "aptdec") (version (git-version "1.7" revision commit)) @@ -566,10 +569,11 @@ It is a GUI for @code{soapy_power}, @code{hackrf_sweep}, @code{rtl_power}, (method git-fetch) (uri (git-reference (url "https://github.com/Xerbo/aptdec") - (commit commit))) + (commit commit) + (recursive? #t))) (file-name (git-file-name name version)) (sha256 - (base32 "0fzkhqnbkc2dd39jzb5m5mwcl31b0x3w0yykpx4s195llq4bdvis")))) + (base32 "09dvvwk4bs9d4bf9z74ixvhzghwzmlbqbx1dn20hbhpm0bgxwk8m")))) (build-system cmake-build-system) (inputs (list libpng libsndfile)) @@ -985,7 +989,7 @@ satellites.") (define-public gqrx (package (name "gqrx") - (version "2.15.8") + (version "2.15.9") (source (origin (method git-fetch) @@ -994,7 +998,7 @@ satellites.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1ph7fnjxfv7rfdlh17c8j4djvkfqjnalmcvnafhnq7agjy428727")))) + (base32 "1a70lmcidp5ccmpvlvpfk1g7pshyp8xq2k0kgxrplf8za5hns019")))) (build-system qt-build-system) (native-inputs (list pkg-config)) @@ -1169,39 +1173,35 @@ for correctness.") (define-public hackrf (package (name "hackrf") - (version "2021.03.1") + (version "2022.09.1") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/mossmann/hackrf") + (url "https://github.com/greatscottgadgets/hackrf") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "12fkgimjy5ia291c1rn4y59pn9r5wdvz5x9z5xc8zr1xr96iyhfs")))) + (base32 "0m9j160q5zb3jimszv1lb6j76zf5lwijvpfl1k28d832rh847vvk")))) (build-system cmake-build-system) (arguments - '(#:configure-flags - (list "-DUDEV_RULES_GROUP=dialout" - (string-append "-DUDEV_RULES_PATH=" - (assoc-ref %outputs "out") - "/lib/udev/rules.d")) - #:phases - (modify-phases %standard-phases - (add-before 'configure 'enter-source-directory - (lambda _ - (chdir "host") - #t)) - (add-after 'install 'delete-static-library - (lambda* (#:key outputs #:allow-other-keys) - (delete-file (string-append (assoc-ref outputs "out") - "/lib/libhackrf.a")) - #t)) - (add-before 'install-license-files 'leave-source-directory - (lambda _ - (chdir "..") - #t))) - #:tests? #f)) ; no test suite + (list #:configure-flags + #~(list "-DUDEV_RULES_GROUP=dialout" + (string-append "-DUDEV_RULES_PATH=" + #$output + "/lib/udev/rules.d")) + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'enter-source-directory + (lambda _ + (chdir "host"))) + (add-after 'install 'delete-static-library + (lambda _ + (delete-file (string-append #$output "/lib/libhackrf.a")))) + (add-before 'install-license-files 'leave-source-directory + (lambda _ + (chdir "..")))) + #:tests? #f)) ; no test suite (native-inputs (list pkg-config)) (inputs @@ -1516,14 +1516,14 @@ operators.") (define-public xnec2c (package (name "xnec2c") - (version "4.4.11") + (version "4.4.12") (source (origin (method url-fetch) (uri (string-append "https://www.xnec2c.org/releases/xnec2c-v" version ".tar.gz")) (sha256 - (base32 "13ybnb1v1y9wjmj49s8ir2rpfsz7h8r9jwv0qd4if9wsn44jg29k")))) + (base32 "1ibj2bjzn4dp988w0yayjsiccv44icsm02gr0g6gk389p7lg32p9")))) (build-system gnu-build-system) (native-inputs (list autoconf @@ -1562,7 +1562,7 @@ gain and standing wave ratio.") (define-public dump1090 (package (name "dump1090") - (version "7.1") + (version "8.2") (source (origin (method git-fetch) @@ -1571,25 +1571,26 @@ gain and standing wave ratio.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1702qv5g27sgpqf98sj2qbg36sqzc7r3kssslzzgljqkr5jgrw6m")))) + (base32 "16ylywy2fdwf5kqr8kgl9lbzy1zwx4ckj9y122k3h86pfkswljs9")))) (build-system gnu-build-system) (native-inputs (list pkg-config)) (inputs (list hackrf libusb ncurses rtl-sdr)) (arguments - `(#:test-target "test" - #:make-flags - (list (string-append "CC=" ,(cc-for-target)) - "BLADERF=no") - #:phases - (modify-phases %standard-phases - (delete 'configure) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))) - (install-file "dump1090" bin) - (install-file "view1090" bin))))))) + (list + #:test-target "test" + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + "BLADERF=no") + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda _ + (let ((bin (string-append #$output "/bin/"))) + (install-file "dump1090" bin) + (install-file "view1090" bin))))))) (synopsis "Mode S decoder for rtl-sdr devices") (description "Dump1090 is a Mode S decoder specifically designed for rtl-sdr devices. @@ -1601,7 +1602,7 @@ their position, altitude, speed, etc.") (define-public rtl-433 (package (name "rtl-433") - (version "21.12") + (version "22.11") (source (origin (method git-fetch) @@ -1610,7 +1611,7 @@ their position, altitude, speed, etc.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0ygxs35zvgnamhqdwk1akcwagcirzpi4wndzgf9d23faiv4cm01a")))) + (base32 "0qx89qmf0zn0qa05vraipny4ihx6lm72s830mbfyzw2znyk3wdm8")))) (build-system cmake-build-system) (native-inputs (list pkg-config)) @@ -1626,7 +1627,7 @@ from devices on the 433 MHz, 868 MHz, 315 MHz, 345 MHz and 915 MHz ISM bands.") (define-public multimon-ng (package (name "multimon-ng") - (version "1.1.9") + (version "1.2.0") (source (origin (method git-fetch) @@ -1635,7 +1636,7 @@ from devices on the 433 MHz, 868 MHz, 315 MHz, 345 MHz and 915 MHz ISM bands.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "01716cfhxfzsab9zjply9giaa4nn4b7rm3p3vizrwi7n253yiwm2")))) + (base32 "0hm7391z1iz2sk4xkwfphqz8qvihqjzsh45csz14gb4jfs1p6ks2")))) (build-system cmake-build-system) (inputs (list libx11 pulseaudio)) @@ -2202,6 +2203,41 @@ Codec.") Audio Broadcasting}.") (license license:gpl2+)))) +(define-public dsd + (let ((commit "59423fa46be8b41ef0bd2f3d2b45590600be29f0") + (revision "1")) + (package + (name "dsd") + (version (git-version "1.7.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/szechyjs/dsd") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "128gvgkanvh4n5bjnzkfk419hf5fdbad94fb8d8lv67h94vfchyd")))) + (build-system cmake-build-system) + (native-inputs + (list pkg-config)) + (inputs + (list itpp libsndfile mbelib portaudio)) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-itpp-detection + (lambda _ + (substitute* "cmake/FindITPP.cmake" + (("libitpp\\.dll") + "itpp_debug"))))))) + (synopsis "Digital speech decoder") + (description + "DSD is able to decode several digital voice formats used in radio +transmissions.") + (home-page "https://github.com/szechyjs/dsd") + (license (list license:expat license:gpl2))))) + (define-public dsdcc (package (name "dsdcc") @@ -2244,7 +2280,7 @@ voice formats.") (define-public sdrangel (package (name "sdrangel") - (version "7.6.2") + (version "7.8.5") (source (origin (method git-fetch) @@ -2253,7 +2289,7 @@ voice formats.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "193iwwb4mbr29mlgaqb67j8214k10k2q0ky9fcl1ja52vmdzz71b")))) + (base32 "0kfzmxbhfpvs8csfbhnl5nij6nlbr00s43392wfq35vnnkbgk5lv")))) (build-system qt-build-system) (native-inputs (list doxygen graphviz pkg-config)) @@ -2321,14 +2357,7 @@ voice formats.") ;; …but force extensions that are guaranteed to be available. (substitute* file ((".*cmake_pop_check_state" eof) - (string-append "force_ext_available(SSE2)\n" eof))))))) - (add-after 'unpack 'fix-boost-compatibility - (lambda _ - (substitute* - '("plugins/channelrx/noisefigure/noisefigure.cpp" - "plugins/channelrx/noisefigure/noisefigureenrdialog.cpp") - (("boost::math::barycentric_rational<double>") - "boost::math::interpolators::barycentric_rational<double>"))))))) + (string-append "force_ext_available(SSE2)\n" eof)))))))))) (home-page "https://github.com/f4exb/sdrangel/wiki") (synopsis "Software defined radio") (description @@ -2413,19 +2442,27 @@ software-defined radio receivers.") (define-public wfview (package (name "wfview") - (version "1.2d") + (version "1.50") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.com/eliggett/wfview") - (commit version))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1kpkwxhcacgmprbr8xz840rj9a22513vxrh2q7d3js5i1dva8j2z")))) + (base32 "1djgn1z4hibzci53mrvskz47jfq6hk8lhhqckpa93pvsi9kadl4k")))) (build-system qt-build-system) (inputs - (list opus qcustomplot qtbase-5 qtmultimedia-5 qtserialport)) + (list eigen + opus + portaudio + pulseaudio + qcustomplot + qtbase-5 + qtmultimedia-5 + qtserialport + rtaudio)) (arguments `(#:tests? #f ; No test suite. #:phases @@ -2489,46 +2526,42 @@ Caller-ID.") (license license:gpl3+))) (define-public rfcat - ;; Use a commit for now because some fixes to make rfcat work with - ;; Python 3 instead of Python 2 are not in a release yet. - (let ((commit "725bf79af27d47cdec64107317c1c8fe3f7ad7b8") - (revision "1")) - (package - (name "rfcat") - (version (git-version "1.9.5" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/atlas0fd00m/rfcat") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0dbc6n4pxsa73wzxny773khc73r1dn3ma5hi7xv76vcykjvzkdi3")))) - (build-system python-build-system) - (inputs - (list python-future - python-ipython - python-numpy - python-pyserial - python-pyside-2 - python-pyusb)) - (arguments - `(#:tests? #f ; Tests want to use a serial port - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-permissions - (lambda _ - (make-file-writable "rflib/rflib_version.py"))) - (add-after 'install 'install-udev-rules - (lambda* (#:key outputs #:allow-other-keys) - (install-file "etc/udev/rules.d/20-rfcat.rules" - (string-append (assoc-ref outputs "out") - "/lib/udev/rules.d"))))))) - (home-page "https://github.com/atlas0fd00m/rfcat") - (synopsis "Program to control some radio dongles") - (description - "@code{rfcat} is a program to control some radio dongles operating in + (package + (name "rfcat") + (version "1.9.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/atlas0fd00m/rfcat") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zmgbgf1025ln2v6lc27dmkmwv8pxjgrmhmpk34rkkixhvnk69pf")))) + (build-system python-build-system) + (inputs + (list python-future + python-ipython + python-numpy + python-pyserial + python-pyside-2 + python-pyusb)) + (arguments + (list + #:tests? #f ; Tests want to use a serial port + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-permissions + (lambda _ + (make-file-writable "rflib/rflib_version.py"))) + (add-after 'install 'install-udev-rules + (lambda* _ + (install-file "etc/udev/rules.d/20-rfcat.rules" + (string-append #$output "/lib/udev/rules.d"))))))) + (home-page "https://github.com/atlas0fd00m/rfcat") + (synopsis "Program to control some radio dongles") + (description + "@code{rfcat} is a program to control some radio dongles operating in ISM bands. Supported dongles: @@ -2541,8 +2574,8 @@ Supported dongles: To install the rfcat udev rules, you must extend @code{udev-service-type} with this package. E.g.: @code{(udev-rules-service 'rfcat rfcat)}") - (license (list license:bsd-3 - license:gpl2))))) + (license (list license:bsd-3 + license:gpl2)))) (define-public rx-tools ;; No tagged release since 2016, use commit instead. @@ -2705,7 +2738,7 @@ Navigation Satellite System.") (define-public qdmr (package (name "qdmr") - (version "0.10.3") + (version "0.10.4") (source (origin (method git-fetch) (uri (git-reference @@ -2714,7 +2747,7 @@ Navigation Satellite System.") (file-name (git-file-name name version)) (sha256 (base32 - "037vkwk974zrwacxafslkb3mbw9258v9sdpwdvb23msjzbc3snrn")))) + "1svxdfb5snxs2y1dwyb0j10ill9ribj4hw1rk023866yzn2zd0l9")))) (build-system cmake-build-system) (arguments (list #:tests? #f ;no tests diff --git a/gnu/packages/raspberry-pi.scm b/gnu/packages/raspberry-pi.scm index 21bc9a3bd8..c0a2cb5bf2 100644 --- a/gnu/packages/raspberry-pi.scm +++ b/gnu/packages/raspberry-pi.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2021 Stefan <stefan-guix@vodafonemail.de> +;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,18 +24,24 @@ #:use-module (gnu packages) #:use-module (gnu packages admin) #:use-module (gnu packages algebra) + #:use-module (gnu packages backup) #: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 curl) #:use-module (gnu packages documentation) #:use-module (gnu packages embedded) #:use-module (gnu packages file) #:use-module (gnu packages gcc) + #:use-module (gnu packages guile) #:use-module (gnu packages linux) + #:use-module (gnu packages qt) + #:use-module (gnu packages tls) #:use-module (guix build-system copy) #:use-module (guix build-system gnu) + #:use-module (guix build-system qt) #:use-module (guix download) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) @@ -367,3 +374,84 @@ argument of the function (modify-linux)." (make-raspi-defconfig "arm64" "bcmrpi3_defconfig" "1bfnl4p0ddx3200dg91kmh2pln36w95y05x1asc312kixv0jgd81")) + +(define-public rpi-imager + (package + (name "rpi-imager") + (version "1.7.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/raspberrypi/rpi-imager") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-26))) + (snippet '(begin + ;; Remove all but the following bundled libraries, + ;; which are not yet packaged in Guix. + (define keep '("." ".." + "drivelist" + "mountutils" + "sha256crypt")) + (with-directory-excursion "src/dependencies" + (for-each delete-file-recursively + (scandir "." (negate + (cut member <> keep))))))) + (sha256 + (base32 + "0i7r1myhinhlgispq92nzvrjvbc48l87z8xfwc038l44qj1lsq8g")))) + (build-system qt-build-system) + (arguments + (list + #:tests? #f ;no test suite + #:configure-flags #~(list "-DENABLE_TELEMETRY=OFF") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "src"))) + (add-after 'chdir 'customize-os-list.json + ;; The default operating system JSON list contains non-FSDG + ;; systems. + (lambda _ + (let* ((datadir (string-append #$output + "/share/rpi-imager")) + (os-list.json (string-append datadir "/os-list.json"))) + (mkdir-p datadir) + #$(with-extensions (list guile-json-4) + #~(begin + (use-modules (json)) + (call-with-output-file os-list.json + ;; TODO: Register FSDG and RPi compatible OS + ;; images here. + (lambda (port) + (scm->json '() port))))) + (substitute* "config.h" + (("#define OSLIST_URL.*") + (string-append "#define OSLIST_URL \"file:///" + os-list.json "\"\n")))))) + (add-after 'chdir 'patch-cmake + (lambda _ + (substitute* "CMakeLists.txt" + ;; lsblk expects to have access to /sys/dev/block, + ;; which doesn't exist in the build container; + ;; prevent the check to fail the build. + (("ret EQUAL \"1\"") + "FALSE"))))))) + (inputs + (list gnutls + curl + libarchive + qtdeclarative-5 + qtquickcontrols2-5 + qtsvg-5 + qttools-5 + util-linux)) + (home-page "https://github.com/raspberrypi/rpi-imager/") + (synopsis "Raspberry Pi Imaging Utility") + (description "rpi-imager is graphical utility to easily provision and +flash a memory card with an operating system image suitable for the Raspberry +Pi single board computer.") + (license license:asl2.0))) diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm index 12a1d3e9eb..84a07e6ba9 100644 --- a/gnu/packages/rdesktop.scm +++ b/gnu/packages/rdesktop.scm @@ -101,7 +101,7 @@ to remotely control a user's Windows desktop.") (inputs `(("alsa-lib" ,alsa-lib) ("cups" ,cups) - ("ffmpeg" ,ffmpeg) + ("ffmpeg" ,ffmpeg-4) ("libjpeg" ,libjpeg-turbo) ("libusb" ,libusb) ("libx11" ,libx11) diff --git a/gnu/packages/regex.scm b/gnu/packages/regex.scm index 616c56cc6e..7cdee5afd4 100644 --- a/gnu/packages/regex.scm +++ b/gnu/packages/regex.scm @@ -32,7 +32,7 @@ (define-public re2 (package (name "re2") - (version "2022-02-01") + (version "2022-12-01") (home-page "https://github.com/google/re2") (source (origin (method git-fetch) @@ -40,7 +40,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "1gzdqy5a0ln9rwd8kmwbgis6qin63hapicwb35xkbnj3y84jj6yx")))) + "0g627a5ppyarhf2ph4gyzj89pwbkwfjfajgljzkmjafjmdyxfqs6")))) (build-system gnu-build-system) (arguments (list #:test-target "test" diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index c0eae1d57a..c0fd53ac14 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -81,6 +81,7 @@ #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) + #:use-module (gnu packages serialization) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -236,6 +237,23 @@ a focus on simplicity and productivity.") (base32 "06ipqz45qcs0y1273gk2gwslxwd7jgighz3mzbddzg16k29n3qaf")))))) +(define-public ruby-3.2 + (package + (inherit ruby-3.1) + (version "3.2.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://cache.ruby-lang.org/pub/ruby/" + (version-major+minor version) + "/ruby-" version ".tar.xz")) + (sha256 + (base32 + "1d18ifvdbf21cncpany948vc2gjw3qa36ck9b4i97pg60rrmgx6j")))) + (inputs + (modify-inputs (package-inputs ruby-3.1) + (prepend libyaml))))) + (define-public ruby ruby-2.7) (define-public mruby diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index f0fbbb6331..c13de9d65b 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> ;;; Copyright © 2022 Morgan Smith <Morgan.J.Smith@outlook.com> ;;; Copyright © 2022 jgart <jgart@dismail.de> +;;; Copyright © 2022 Robby Zambito <contact@robbyzambito.me> ;;; ;;; This file is part of GNU Guix. ;;; @@ -48,40 +49,39 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (gnu packages autotools) - #:use-module (gnu packages bdw-gc) + #:use-module (gnu packages avahi) + #:use-module (gnu packages base) #:use-module (gnu packages bash) + #:use-module (gnu packages bdw-gc) #:use-module (gnu packages compression) #:use-module (gnu packages databases) + #:use-module (gnu packages emacs) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages gcc) + #:use-module (gnu packages ghostscript) + #:use-module (gnu packages gl) + #:use-module (gnu packages glib) + #:use-module (gnu packages gtk) + #:use-module (gnu packages image) + #:use-module (gnu packages libedit) #:use-module (gnu packages libevent) + #:use-module (gnu packages libffi) + #:use-module (gnu packages libphidget) #:use-module (gnu packages libunistring) + #:use-module (gnu packages linux) #:use-module (gnu packages lisp-check) #:use-module (gnu packages lisp-xyz) #:use-module (gnu packages m4) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) - #:use-module (gnu packages pcre) - #:use-module (gnu packages emacs) - #:use-module (gnu packages ghostscript) #:use-module (gnu packages netpbm) - #:use-module (gnu packages texinfo) - #:use-module (gnu packages tex) - #:use-module (gnu packages base) - #:use-module (gnu packages compression) + #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages avahi) - #:use-module (gnu packages libphidget) - #:use-module (gnu packages gcc) - #:use-module (gnu packages glib) - #:use-module (gnu packages gtk) - #:use-module (gnu packages libffi) - #:use-module (gnu packages fontutils) - #:use-module (gnu packages image) - #:use-module (gnu packages xorg) #:use-module (gnu packages sqlite) + #:use-module (gnu packages tex) + #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) - #:use-module (gnu packages gl) - #:use-module (gnu packages libedit) - #:use-module (gnu packages linux) + #:use-module (gnu packages xorg) #:use-module (srfi srfi-1) #:use-module (ice-9 match)) @@ -888,21 +888,17 @@ The core is 12 builtin special forms and 33 builtin functions.") (define-public gauche (package (name "gauche") - (version "0.9.10") + (version "0.9.12") (home-page "https://practical-scheme.net/gauche/index.html") (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/gauche/Gauche/Gauche-" - version ".tgz")) + "https://github.com/shirok/Gauche/releases/download/release" + (string-replace-substring version "." "_") + "/Gauche-" version ".tgz")) (sha256 - (base32 "0ci57ak5cp3lkmfy3nh50hifh8nbg58hh6r18asq0rn5mqfxyf8g")) - (modules '((guix build utils))) - (snippet '(begin - ;; Remove libatomic-ops. - (delete-file-recursively "gc/libatomic_ops") - #t)))) + (base32 "05xnym1phg8i14bacip5d0d3v0gc1nn5mgayd5hnda873f969bml")))) (build-system gnu-build-system) (inputs (list libatomic-ops slib zlib)) @@ -933,8 +929,8 @@ The core is 12 builtin special forms and 33 builtin functions.") (add-before 'check 'patch-network-tests ;; Remove net checks. (lambda _ - (delete-file "ext/net/test.scm") - (invoke "touch" "ext/net/test.scm") + (delete-file "test/net.scm") + (invoke "touch" "test/net.scm") #t)) (add-after 'install 'install-docs (lambda _ diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm index 16099a4da7..619be42305 100644 --- a/gnu/packages/security-token.scm +++ b/gnu/packages/security-token.scm @@ -121,7 +121,7 @@ readers and is needed to communicate with such devices through the (define-public eid-mw (package (name "eid-mw") - (version "5.1.6") + (version "5.1.8") (source (origin (method git-fetch) @@ -130,7 +130,7 @@ readers and is needed to communicate with such devices through the (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "19sq9bs1580zrjw0cxykdvrm1rwfw8n0vbvy9kdjnykjjnb7g6g1")))) + (base32 "11jf828ag8y5iykcfjmjc3n8g5mchpl3fxkr110civ3qqbdiw882")))) (build-system glib-or-gtk-build-system) (native-inputs (list autoconf diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index b607060716..128e557a21 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -84,14 +84,14 @@ (define-public dash (package (name "dash") - (version "0.5.11.5") + (version "0.5.12") (source (origin (method url-fetch) (uri (string-append "http://gondor.apana.org.au/~herbert/dash/files/" "dash-" version ".tar.gz")) (sha256 - (base32 "1g93w4lpn3jfwn2gaq17a1lxdig11x0j7gr9byc3fy8zi4882xyv")) + (base32 "12pjm2j0q0q88nvqbcyqjwr8s1c29ilxyq2cdj8k42wbdv24liva")) (modules '((guix build utils))) (snippet '(begin @@ -99,8 +99,7 @@ ;; This isn't the case on Guix or indeed most other GNU systems. (substitute* "src/dash.1" (("the standard command interpreter for the system") - "a command interpreter based on the original Bourne shell")) - #t)))) + "a command interpreter based on the original Bourne shell")))))) (build-system gnu-build-system) (inputs (list libedit)) @@ -109,9 +108,9 @@ (home-page "http://gondor.apana.org.au/~herbert/dash") (synopsis "POSIX-compliant shell optimised for size") (description - "dash is a POSIX-compliant @command{/bin/sh} implementation that aims to be + "Dash is a POSIX-compliant @command{/bin/sh} implementation that aims to be as small as possible, often without sacrificing speed. It is faster than the -GNU Bourne-Again Shell (@command{bash}) at most scripted tasks. dash is a +GNU Bourne-Again Shell (@command{bash}) at most scripted tasks. Dash is a direct descendant of NetBSD's Almquist Shell (@command{ash}).") (license (list license:bsd-3 license:gpl2+)))) ; mksignames.c @@ -849,7 +848,7 @@ Shell (pdksh).") (define-public oil (package (name "oil") - (version "0.12.7") + (version "0.12.9") (source ;; oil's sources contain a modified version of CPython 2.7.13. ;; According to https://www.oilshell.org/blog/2017/05/05.html @@ -862,7 +861,7 @@ Shell (pdksh).") (uri (string-append "https://www.oilshell.org/download/oil-" version ".tar.gz")) (sha256 - (base32 "02p8w2rpwb8i4lwl2ah5whchn0lihc6hgbmnp0yr0jv4f0r3mgby")))) + (base32 "047gjar5lkbms4gdp3063njnqc6fl6p0dcx8bbpi1cdn1956yh1s")))) (build-system gnu-build-system) (arguments (list #:strip-binaries? #f ; strip breaks the binary diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index 3fd98ecba8..a192bd16f7 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net> ;;; Copyright © 2019 Collin J. Doering <collin@rekahsoft.ca> -;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 aecepoglu <aecepoglu@fastmail.fm> ;;; Copyright © 2020 Dion Mendel <guix@dm9.info> ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re> @@ -275,7 +275,7 @@ particularly in catching syntax errors.") (define-public grml-zsh-config (package (name "grml-zsh-config") - (version "0.19.3") + (version "0.19.5") (source (origin (method url-fetch) (uri (string-append @@ -283,7 +283,7 @@ particularly in catching syntax errors.") version ".tar.gz")) (sha256 (base32 - "05fri77028znjnvmh8mz3424rn8ilysj7hn8br2hk1qwkp4zzwp9")))) + "0ifw490z3v9ljccbmm04adz39fj2dmx8mjgayxqj0a9ln90yfdc4")))) (build-system copy-build-system) (arguments (list @@ -428,7 +428,7 @@ are already there.") (define-public direnv (package (name "direnv") - (version "2.32.1") + (version "2.32.2") (source (origin (method git-fetch) (uri (git-reference @@ -437,7 +437,7 @@ are already there.") (file-name (git-file-name name version)) (sha256 (base32 - "1i473j7j4sx8p83zqlnakskqk0jyd3byajp7jmv2gym9s4k841y7")))) + "17nn4qg1fj4i9rh1gdpbddn2nky71h9dkxyz5a4jsdq25bsx0ps2")))) (build-system go-build-system) (arguments '(#:import-path "github.com/direnv/direnv" @@ -519,7 +519,7 @@ below the current cursor position, scrolling the screen if necessary.") (define-public hstr (package (name "hstr") - (version "2.5") + (version "2.6") (source (origin (method git-fetch) (uri (git-reference @@ -528,7 +528,7 @@ below the current cursor position, scrolling the screen if necessary.") (file-name (git-file-name name version)) (sha256 (base32 - "0xg10jyiq12bcygi6aa9qq9pki7bipdsvsza037p2iqix19jg0x8")))) + "1iqvqm4mirx7imwwmz4blxbsr215lcgbw3h31ssbs3fk54hq7xn9")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm index 31349e858b..5b70a1e042 100644 --- a/gnu/packages/skarnet.scm +++ b/gnu/packages/skarnet.scm @@ -30,14 +30,14 @@ (define-public skalibs (package (name "skalibs") - (version "2.11.0.0") + (version "2.12.0.1") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/skalibs/skalibs-" version ".tar.gz")) (sha256 - (base32 "1n9l7mb54dlb0iijjaf446jba6nmq1ql9n39s095ngrk5ahcipwq")))) + (base32 "1182ldnz5dj266gqhzkygd17jdvd3n46c2jfdizw324dy5r8y8iy")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests exist @@ -61,14 +61,14 @@ and file system operations. It is used by all skarnet.org software.") (define-public execline (package (name "execline") - (version "2.8.1.0") + (version "2.9.0.1") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/execline/execline-" version ".tar.gz")) (sha256 - (base32 "0msmzf5zwjcsgjlvvq28rd2i0fkdb2skmv8ii0ix8dhyckwwjmav")))) + (base32 "1xiijn3r2rqji2pwhm9v0frkk7pv9m3ylmdajhmcmyqgz350y9h1")))) (build-system gnu-build-system) (inputs (list skalibs)) (arguments @@ -103,14 +103,14 @@ complexity."))) (define-public s6 (package (name "s6") - (version "2.11.0.0") + (version "2.11.1.2") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/s6/s6-" version ".tar.gz")) (sha256 - (base32 "1a3lj0xfhn1w3a4ygqsxy8q4dr3n48hnwml4xzdpz3nrikhy8if5")))) + (base32 "18h38piz117ilx7ch9f7hl6bxm2w06z7lc7f5hwsr7c87sz7853c")))) (build-system gnu-build-system) (inputs (list skalibs execline)) (arguments @@ -147,14 +147,14 @@ functionality with a very small amount of code."))) (define-public s6-dns (package (name "s6-dns") - (version "2.3.5.2") + (version "2.3.5.4") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/s6-dns/s6-dns-" version ".tar.gz")) (sha256 - (base32 "0nczzjprvp6wirzycgf5h32dlgx4r8grzkqhif27n3ii6f5g78yw")))) + (base32 "0hyvyi8qwgs6529hafl3yvkb3qaw4mad76n5rn1lyxf4f8j25bvn")))) (build-system gnu-build-system) (inputs (list skalibs)) (arguments @@ -176,14 +176,14 @@ as an alternative to the BIND, djbdns or other DNS clients."))) (define-public s6-networking (package (name "s6-networking") - (version "2.5.0.0") + (version "2.5.1.1") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/s6-networking/" "s6-networking-" version ".tar.gz")) (sha256 - (base32 "1fn3g9gkwgmnxallhk82f5rly81pnkilj7n49g5fbfmaalsq96mh")))) + (base32 "0624ls5d9iwx9nc05m99fbxd0jp0qjbp9as4whr3bhfrwd6rvivs")))) (build-system gnu-build-system) (inputs (list skalibs execline s6 s6-dns)) (arguments @@ -216,14 +216,14 @@ clock synchronization."))) (define-public s6-rc (package (name "s6-rc") - (version "0.5.2.3") + (version "0.5.3.2") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/s6-rc/s6-rc-" version ".tar.gz")) (sha256 - (base32 "1xyaplwzvqnb53mg59a7jklakzwsiqivp6qggsry3sbaw4hf3d5j")))) + (base32 "0f70sswqcmihynks3cs6kk97nywcp2lzr2hspp9578sadaba892g")))) (build-system gnu-build-system) (inputs (list skalibs execline s6)) (arguments @@ -255,7 +255,7 @@ environment."))) (define-public s6-portable-utils (package (name "s6-portable-utils") - (version "2.2.3.3") + (version "2.2.5.0") (source (origin (method url-fetch) @@ -263,7 +263,7 @@ environment."))) "https://skarnet.org/software/s6-portable-utils/s6-portable-utils-" version ".tar.gz")) (sha256 - (base32 "132jj5qk8x40kw6lrrn7jiqhvqj9d2h6g6mhl8zma1sp37bg0i84")))) + (base32 "0dkfj6ymi5pxs981hh84kwg2ph2dv6xn2bim65fz4dpx6j4rzczb")))) (build-system gnu-build-system) (inputs (list skalibs)) (arguments @@ -287,7 +287,7 @@ systems and other constrained environments, but they work everywhere."))) (define-public s6-linux-init (package (name "s6-linux-init") - (version "1.0.6.4") + (version "1.0.8.0") (source (origin (method url-fetch) @@ -295,7 +295,7 @@ systems and other constrained environments, but they work everywhere."))) "https://skarnet.org/software/s6-linux-init/s6-linux-init-" version ".tar.gz")) (sha256 - (base32 "0grqk111d6aqym1c4l9j26fdqcgra1hvwb9vdgylrfbvn1c3hlpb")))) + (base32 "1iixih6iwd618qqy06w2cig7rvlj4cn4m5mdcr060rngciwml1cj")))) (build-system gnu-build-system) (inputs (list execline s6 skalibs)) @@ -331,7 +331,7 @@ all the details."))) (define-public s6-linux-utils (package (name "s6-linux-utils") - (version "2.5.1.6") + (version "2.6.0.0") (source (origin (method url-fetch) @@ -339,7 +339,7 @@ all the details."))) "https://skarnet.org/software/s6-linux-utils/s6-linux-utils-" version ".tar.gz")) (sha256 - (base32 "0hr49nl0d7a6i5w8cfg43xzvzayb8kpqij9xg7bmw2fyvc2z338z")))) + (base32 "0ngd8ckak2xg6c63q0m8cvbrfnhpkx30r4g65q08g0hc99rk4wbc")))) (build-system gnu-build-system) (inputs (list skalibs)) (arguments diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm index 15fddd9895..d217d7ba01 100644 --- a/gnu/packages/speech.scm +++ b/gnu/packages/speech.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018, 2020–2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> -;;; Copyright © 2019, 2021 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2019, 2021, 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2021 qblade <qblade@protonmail.com> @@ -31,6 +31,7 @@ #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) + #:use-module (guix build-system meson) #:use-module (gnu packages) #:use-module (gnu packages audio) #:use-module (gnu packages autotools) @@ -44,6 +45,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages gstreamer) #:use-module (gnu packages linux) + #:use-module (gnu packages machine-learning) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -558,6 +560,51 @@ low level architecture and has a Scheme (SIOD) based command interpreter for control.") (license (license:non-copyleft "file://COPYING")))) +(define-public gst-vosk + (package + (name "gst-vosk") + (version "0.3.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/PhilippeRo/gst-vosk") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1zxifssh57a251af9x4ahglcipvmkgc1pmc67l59s805za9yvq3p")) + (modules '((guix build utils))) + (snippet + ;; Do not use prebuilt vosk library + '(begin + (delete-file-recursively "vosk") + (substitute* "meson.build" + (("subdir\\('vosk'\\)") "")) + (substitute* "src/meson.build" + (("vosk_libdir =.*") "") + ((", dirs : vosk_libdir") "") + (("include_directories : include_directories.*") "")) + (substitute* '("src/gstvosk.h" + "src/gstvosk.c") + (("vosk-api.h") "vosk_api.h")))))) + (build-system meson-build-system) + (arguments + (list + #:phases + '(modify-phases %standard-phases + (add-after 'unpack 'install-vosk-api-header + (lambda* (#:key inputs #:allow-other-keys) + (install-file (search-input-file inputs "src/vosk_api.h") + "src")))))) + (inputs + (list vosk-api gstreamer gobject-introspection)) + (native-inputs (list pkg-config gettext-minimal)) + (home-page "https://github.com/PhilippeRo/gst-vosk") + (synopsis "Gstreamer plugin for VOSK voice recognition engine") + (description "This package provides a Gstreamer plugin for the VOSK voice +recognition engine.") + (license license:gpl2+))) + (define-public ekho (package (name "ekho") diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index babed807f9..65280bc4da 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -318,7 +318,7 @@ Additionally, various channel-specific options can be negotiated.") (define-public guile-ssh (package (name "guile-ssh") - (version "0.15.1") + (version "0.16.0") (home-page "https://github.com/artyom-poptsov/guile-ssh") (source (origin (method git-fetch) @@ -328,7 +328,7 @@ Additionally, various channel-specific options can be negotiated.") (file-name (git-file-name name version)) (sha256 (base32 - "0zzn5hsf97b35gixyg4z14sspl15qwnp52y4h89wra4y31l7467q")))) + "1ka5ayrg7kysx3bi5d8s0z6n12sdc06qp9gc4k9h2mlw3vz187ny")))) (build-system gnu-build-system) (outputs '("out" "debug")) (arguments diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 4c7609683b..52d081b47a 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -592,14 +592,14 @@ code for possible problems.") (define-public r-foreign (package (name "r-foreign") - (version "0.8-83") + (version "0.8-84") (source (origin (method url-fetch) (uri (cran-uri "foreign" version)) (sha256 (base32 - "06vj61h52idbjbgmbd6ml9541q3vr38j2gjvlkqbqsqbg0zygsl7")))) + "0jc5r5wiqqbkni2xjdd24hic1xvfi151m9lnqhni52jnqw1g7v8p")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/foreign") (synopsis "Read data stored by other statistics software") @@ -678,13 +678,13 @@ and operations on them using LAPACK and SuiteSparse.") (define-public r-nlme (package (name "r-nlme") - (version "3.1-160") + (version "3.1-161") (source (origin (method url-fetch) (uri (cran-uri "nlme" version)) (sha256 - (base32 "024a1pfdbv5dp1cbfk424n1rwfxw4g92yrjcfy1v0xj834ilcifl")))) + (base32 "0pw9kwhac6a01zcchl4xxy2rk3ghzc9kxxn6kjkh2z4iq41a1z9a")))) (build-system r-build-system) (propagated-inputs (list r-lattice)) @@ -945,13 +945,13 @@ effects of different types of color-blindness.") (define-public r-digest (package (name "r-digest") - (version "0.6.30") + (version "0.6.31") (source (origin (method url-fetch) (uri (cran-uri "digest" version)) (sha256 - (base32 "19va0z7blshsai1jjys9vdahpfz1klicrpv8682sdnz77fa5k03v")))) + (base32 "1f9isi4i2502f88c2sh4l461hgyary2aa02zd47pb9mc1r4lya2s")))) (build-system r-build-system) ;; Vignettes require r-knitr, which requires r-digest, so we have to ;; disable them and the tests. @@ -1187,16 +1187,16 @@ transliteration, concatenation, date-time formatting and parsing, etc.") (define-public r-stringr (package (name "r-stringr") - (version "1.4.1") + (version "1.5.0") (source (origin (method url-fetch) (uri (cran-uri "stringr" version)) (sha256 - (base32 "1cfw1lv64lzg16zb04c0fcmd3gx8vq9x73hqikqhgqd3ra88w3gc")))) + (base32 "0fk34ql5ak57f06l10ai300kxay6r7kkkyfanh8r24qaf3bmkcaj")))) (build-system r-build-system) (propagated-inputs - (list r-glue r-magrittr r-stringi)) + (list r-cli r-glue r-lifecycle r-magrittr r-rlang r-stringi r-vctrs)) ;; We can't add r-knitr here, because this package ends up being an input ;; to r-knitr. #; @@ -1430,13 +1430,13 @@ for template use among CRAN packages.") (define-public r-evaluate (package (name "r-evaluate") - (version "0.18") + (version "0.19") (source (origin (method url-fetch) (uri (cran-uri "evaluate" version)) (sha256 (base32 - "0dmznan8zajzb5f31yabcgpkinlqczz59i1rg9f6sa5cjzffqkkz")))) + "1k36mpb12nvcr5bv3n6591shhr38d6zpfwgj643cgprd8l0kvk39")))) (build-system r-build-system) (home-page "https://github.com/hadley/evaluate") (synopsis "Parsing and evaluation tools for R") @@ -1703,13 +1703,13 @@ R packages that praise their users.") (define-public r-testthat (package (name "r-testthat") - (version "3.1.5") + (version "3.1.6") (source (origin (method url-fetch) (uri (cran-uri "testthat" version)) (sha256 (base32 - "1z5pyp4cmyn8ms243zav5wfbwbh45zzq432m1g1xyv904sa6pxd8")))) + "1bndjkwv6f9x3a0wklwnf7bymn655yhw6cmazb285hbmci0qrjx7")))) (build-system r-build-system) (propagated-inputs (list r-brio @@ -2233,13 +2233,13 @@ previous R versions and their release dates.") (define-public r-whisker (package (name "r-whisker") - (version "0.4") + (version "0.4.1") (source (origin (method url-fetch) (uri (cran-uri "whisker" version)) (sha256 (base32 - "1a7vz0dk95xfjvi38wbpw8vmf5qn3g8p490msz2rw0piwidmk1ks")))) + "1g7jy6dnc5igs7yqy1n7cmy0ia8dm2yi3qj1mil2y0q88m4m2ldz")))) (build-system r-build-system) (home-page "https://github.com/edwindj/whisker") (synopsis "Logicless mustache templating for R") @@ -2437,13 +2437,13 @@ tables, autolinks and strikethrough text.") (define-public r-roxygen2 (package (name "r-roxygen2") - (version "7.2.2") + (version "7.2.3") (source (origin (method url-fetch) (uri (cran-uri "roxygen2" version)) (sha256 (base32 - "07pijickz5kgd31xzn2z11xqiym4sscj742qwbc5bjh7mayhhmki")))) + "1nhn0jhnxzlyqx0qnpd7k7q3azzngyn0j4zs8awmlmyjfywzli6q")))) (build-system r-build-system) (propagated-inputs (list r-brew @@ -2451,7 +2451,6 @@ tables, autolinks and strikethrough text.") r-commonmark r-cpp11 r-desc - r-digest r-knitr r-pkgload r-purrr @@ -2473,14 +2472,14 @@ collation, and NAMESPACE files.") (define-public r-openssl (package (name "r-openssl") - (version "2.0.4") + (version "2.0.5") (source (origin (method url-fetch) (uri (cran-uri "openssl" version)) (sha256 (base32 - "1v2w19sffwqkgi9nj593ga46l9qp716lyb3gnjihq3624x8wd9d1")))) + "1lw60yq20r42l7y1wbp79s3mk3dwg62v0dh7jx1cdd7rb46i9hla")))) (build-system r-build-system) (arguments (list @@ -2852,13 +2851,13 @@ certain criterion, e.g., it contains a certain regular file.") (define-public r-rmarkdown (package (name "r-rmarkdown") - (version "2.18") + (version "2.19") (source (origin (method url-fetch) (uri (cran-uri "rmarkdown" version)) (sha256 - (base32 "08lgzb7n7lll1ff7flcyilnz9afj60npi882c035pyyy4vk7majg")))) + (base32 "14lvvdq3n95qbl7nrqlym1lp05i17m6f9mx3ly35iip83p2s9hir")))) (properties `((upstream-name . "rmarkdown"))) (build-system r-build-system) (propagated-inputs @@ -3041,13 +3040,13 @@ ldap, and also supports cookies, redirects, authentication, etc.") (define-public r-xml (package (name "r-xml") - (version "3.99-0.12") + (version "3.99-0.13") (source (origin (method url-fetch) (uri (cran-uri "XML" version)) (sha256 (base32 - "053dlc1762qjqmqiq0sb9qnrpg8rx1a8inizq1fl1gw6r0jr886b")))) + "0fppx0jnqxx3l7y8ivb56sq0fjcqv3fn226i4s03mi7hwak6iic5")))) (properties `((upstream-name . "XML"))) (build-system r-build-system) @@ -3162,14 +3161,14 @@ statements.") (define-public r-segmented (package (name "r-segmented") - (version "1.6-1") + (version "1.6-2") (source (origin (method url-fetch) (uri (cran-uri "segmented" version)) (sha256 (base32 - "0vym03p04jf66fdpx3kzy727b8bay2fpvd3n0xxmm94c3hqwl2gn")))) + "0livckkhci3w1x9xai2m0a30fj06qsks2qds7y5jr9vwx03jqg21")))) (build-system r-build-system) (propagated-inputs (list r-mass r-nlme)) (home-page "https://cran.r-project.org/web/packages/segmented") @@ -4996,16 +4995,16 @@ representation of R code.") (define-public r-ggbeeswarm (package (name "r-ggbeeswarm") - (version "0.6.0") + (version "0.7.1") (source (origin (method url-fetch) (uri (cran-uri "ggbeeswarm" version)) (sha256 (base32 - "0crk29p5vi1r3a988kms4y7r0iqwgwzsikgvh18r9wbzyr98bb5v")))) + "14mc00i107rww3al5q3rrqmd1v0ck06jipfhzqi23g29a4rm05gl")))) (build-system r-build-system) (propagated-inputs - (list r-beeswarm r-ggplot2 r-vipor)) + (list r-beeswarm r-ggplot2 r-lifecycle r-vipor)) (home-page "https://github.com/eclarke/ggbeeswarm") (synopsis "Categorical scatter (violin point) plots") (description @@ -5158,17 +5157,17 @@ letters, as is often required for scientific publications.") (define-public r-mixtools (package (name "r-mixtools") - (version "1.2.0") + (version "2.0.0") (source (origin (method url-fetch) (uri (cran-uri "mixtools" version)) (sha256 (base32 - "08whic8hmmzi55b7azwj11l2x5r9s5qbyrv7s9jr08156vqkw0zg")))) + "03by64xi7yka0hzc1qyz1jdqzah6isvr3cdsc7g5v6hb4f178kl5")))) (build-system r-build-system) (propagated-inputs - (list r-mass r-kernlab r-segmented r-survival)) + (list r-mass r-kernlab r-plotly r-scales r-segmented r-survival)) (home-page "https://cran.r-project.org/web/packages/mixtools") (synopsis "Tools for analyzing finite mixture models") (description diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm index 9d360e8eb3..f9b76b1d38 100644 --- a/gnu/packages/storage.scm +++ b/gnu/packages/storage.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2020, 2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2021 Greg Hogan <code@greghogan.com> +;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -50,8 +51,10 @@ #:use-module (gnu packages pretty-print) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages rpc) #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) + #:use-module (gnu packages textutils) #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (gnu packages xml)) @@ -59,23 +62,22 @@ (define-public ceph (package (name "ceph") - (version "16.2.9") + (version "17.2.5") (source (origin (method url-fetch) (uri (string-append "https://download.ceph.com/tarballs/ceph-" version ".tar.gz")) (sha256 (base32 - "1yf62k9wlx9pmggwa5c05wfqzy28sdm4b465y4iqrgc9dkrgin08")) + "16mjj6cyrpdn49ig82mmrv984vqfdf24d6i4n9sghfli8z0nj8in")) (patches (search-patches - "ceph-disable-cpu-optimizations.patch" - "ceph-boost-compat.patch" - "ceph-rocksdb-compat.patch")) + "ceph-disable-cpu-optimizations.patch")) (modules '((guix build utils))) (snippet '(for-each delete-file-recursively '(;; TODO: Unbundle these: + "src/arrow" ;;"src/isa-l" ;;"src/lua" ;;"src/xxHash" @@ -87,11 +89,14 @@ "src/rapidjson" "src/spdk" "src/rocksdb" - "src/boost"))))) + "src/boost" + "src/utf8proc"))))) (build-system cmake-build-system) (arguments - `(#:configure-flags - (let* ((out (assoc-ref %outputs "out")) + (list + #:parallel-build? #f ;because mgr_legacy_options.h is not built in time + #:configure-flags + '(let* ((out (assoc-ref %outputs "out")) (lib (assoc-ref %outputs "lib")) (libdir (string-append lib "/lib"))) (list (string-append "-DCMAKE_INSTALL_PREFIX=" out) @@ -112,11 +117,13 @@ (assoc-ref %build-inputs "xfsprogs") "/include") "-DCMAKE_INSTALL_LOCALSTATEDIR=/var" "-DBUILD_SHARED_LIBS=ON" - "-DWITH_SYSTEM_ROCKSDB=ON" + "-DWITH_SYSTEM_ARROW=ON" "-DWITH_SYSTEM_BOOST=ON" + "-DWITH_SYSTEM_ROCKSDB=ON" + "-DWITH_SYSTEM_UTF8PROC=ON" ;; TODO: Enable these when available in Guix. - "-DWITH_MGR_DASHBOARD_FRONTEND=OFF" ;requires node + nodeenv + "-DWITH_MGR_DASHBOARD_FRONTEND=OFF" ;requires node + nodeenv "-DWITH_BABELTRACE=OFF" "-DWITH_LTTNG=OFF" "-DWITH_SPDK=OFF" @@ -136,102 +143,115 @@ ;; resolved. #:tests? #f #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-source - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (lib (assoc-ref outputs "lib"))) + `(modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (lib (assoc-ref outputs "lib"))) + + (substitute* "src/rgw/store/dbstore/sqlite/CMakeLists.txt" + (("add_library\\(sqlite_db \\$") + "add_library(sqlite_db STATIC $")) + (substitute* "src/rgw/store/dbstore/CMakeLists.txt" + (("add_library\\(dbstore \\$") + "add_library(dbstore STATIC $") + (("add_library\\(dbstore_lib \\$") + "add_library(dbstore_lib STATIC $")) - (substitute* "cmake/modules/Distutils.cmake" - ;; Prevent creation of Python eggs. - (("setup.py install") - "setup.py install --single-version-externally-managed --root=/") - ;; Inject the -rpath linker argument when linking - ;; Python C libraries so RUNPATH gets set up correctly. - (("LDFLAGS=(.*)\n" _ flags) - (string-append "LDFLAGS=\\\"" flags - " -Wl,-rpath=" lib "/lib\\\"\n"))) + (substitute* "cmake/modules/Distutils.cmake" + ;; Prevent creation of Python eggs. + (("setup.py install") + "setup.py install --single-version-externally-managed --root=/") + ;; Inject the -rpath linker argument when linking + ;; Python C libraries so RUNPATH gets set up correctly. + (("LDFLAGS=(.*)\n" _ flags) + (string-append "LDFLAGS=\\\"" flags + " -Wl,-rpath=" lib "/lib\\\"\n"))) - ;; Statically link libcrc32 because it does not get installed, - ;; yet several libraries end up referring to it. - (substitute* "src/common/CMakeLists.txt" - (("add_library\\(crc32") - "add_library(crc32 STATIC")) + ;; Statically link libcrc32 because it does not get installed, + ;; yet several libraries end up referring to it. + (substitute* "src/common/CMakeLists.txt" + (("add_library\\(crc32") + "add_library(crc32 STATIC")) - (substitute* "udev/50-rbd.rules" - (("/usr/bin/ceph-rbdnamer") - (string-append out "/bin/ceph-rbdnamer")))))) - (add-before 'install 'set-install-environment - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (py3sitedir - (string-append out "/lib/python" - ,(version-major+minor - (package-version python)) - "/site-packages"))) - ;; The Python install scripts refuses to function if - ;; the install directory is not on PYTHONPATH. - (setenv "PYTHONPATH" py3sitedir)))) - (add-after 'install 'wrap-python-scripts - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (scripts '("bin/ceph" "bin/cephfs-top" "sbin/ceph-volume")) - (dependencies (map (lambda (input) - (assoc-ref inputs input)) - '("python-prettytable" "python-pyyaml"))) - (sitedir (lambda (package) - (string-append package - "/lib/python" - ,(version-major+minor - (package-version python)) - "/site-packages"))) - (PYTHONPATH (string-join (map sitedir (cons out dependencies)) - ":"))) - (for-each (lambda (executable) - (wrap-program (string-append out "/" executable) - `("GUIX_PYTHONPATH" ":" prefix (,PYTHONPATH)))) - scripts))))))) + (substitute* "udev/50-rbd.rules" + (("/usr/bin/ceph-rbdnamer") + (string-append out "/bin/ceph-rbdnamer")))))) + (add-before 'install 'set-install-environment + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (py3sitedir + (string-append out "/lib/python" + ,(version-major+minor + (package-version python)) + "/site-packages"))) + ;; The Python install scripts refuses to function if + ;; the install directory is not on PYTHONPATH. + (setenv "PYTHONPATH" py3sitedir)))) + (add-after 'install 'wrap-python-scripts + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (scripts '("bin/ceph" "bin/cephfs-top" "sbin/ceph-volume")) + (dependencies (map (lambda (input) + (assoc-ref inputs input)) + '("python-prettytable" "python-pyyaml"))) + (sitedir (lambda (package) + (string-append package + "/lib/python" + ,(version-major+minor + (package-version python)) + "/site-packages"))) + (PYTHONPATH (string-join (map sitedir (cons out dependencies)) + ":"))) + (for-each (lambda (executable) + (wrap-program (string-append out "/" executable) + `("GUIX_PYTHONPATH" ":" prefix (,PYTHONPATH)))) + scripts))))))) (outputs '("out" "lib")) (native-inputs (list gperf pkg-config python-cython python-sphinx yasm)) (inputs - `(("boost" ,boost) - ("curl" ,curl) - ("cryptsetup" ,cryptsetup) - ("expat" ,expat) - ("fcgi" ,fcgi) - ("fmt" ,fmt-8) - ("fuse" ,fuse) - ("icu4c" ,icu4c) - ("jemalloc" ,jemalloc) - ("keyutils" ,keyutils) - ("leveldb" ,leveldb) - ("libaio" ,libaio) - ("libatomic-ops" ,libatomic-ops) - ("libcap-ng" ,libcap-ng) - ("libnl" ,libnl) - ("librdkafka" ,librdkafka) - ("lua" ,lua) - ("lz4" ,lz4) - ("oath-toolkit" ,oath-toolkit) - ("openldap" ,openldap) - ("openssl" ,openssl) - ("ncurses" ,ncurses) - ("nss" ,nss) - ("python-prettytable" ,python-prettytable) ;used by ceph_daemon.py - ("python-pyyaml" ,python-pyyaml) ;from python-common/setup.py - ("python" ,python) - ("rapidjson" ,rapidjson) - ("rdma-core" ,rdma-core) - ("rocksdb" ,rocksdb) - ("snappy" ,snappy) - ("sqlite" ,sqlite) - ("udev" ,eudev) - ("util-linux" ,util-linux) - ("util-linux:lib" ,util-linux "lib") - ("xfsprogs" ,xfsprogs) - ("zlib" ,zlib))) + (list `(,apache-thrift "lib") + `(,apache-thrift "include") + `(,apache-arrow-for-ceph "lib") + boost + curl + cryptsetup + eudev + expat + fcgi + fmt-8 + fuse + icu4c + jemalloc + keyutils + leveldb + libaio + libatomic-ops + libcap-ng + libnl + librdkafka + lua + lz4 + oath-toolkit + openldap + openssl + ncurses + nss + python-prettytable ;used by ceph_daemon.py + python-pyyaml ;from python-common/setup.py + python + rapidjson + rdma-core + rocksdb + snappy + sqlite + utf8proc + util-linux + `(,util-linux "lib") + xfsprogs + zlib)) (home-page "https://ceph.com/") (synopsis "Distributed object store and file system") (description diff --git a/gnu/packages/tbb.scm b/gnu/packages/tbb.scm index 4ce7c1cf49..f22282264c 100644 --- a/gnu/packages/tbb.scm +++ b/gnu/packages/tbb.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2016, 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Nikita <nikita@n0.is> ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> @@ -23,11 +23,14 @@ (define-module (gnu packages tbb) #:use-module (guix packages) #:use-module (guix licenses) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) - #:use-module (gnu packages)) + #:use-module (gnu packages) + #:use-module (gnu packages python) + #:use-module (gnu packages swig)) (define-public tbb (package @@ -56,6 +59,44 @@ implementation work. It provides parallel loop constructs, asynchronous tasks, synchronization primitives, atomic operations, and more.") (license asl2.0))) +(define-public python-tbb + (package + (inherit tbb) + (name "python-tbb") + (arguments + (list + #:configure-flags + #~(list "-DTBB_STRICT=OFF" + "-DTBB4PY_BUILD=ON") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-python-install-directory + (lambda _ + (substitute* "python/CMakeLists.txt" + (("\\$\\{PYTHON_BUILD_WORK_DIR\\}/build") + #$output)) + (substitute* "python/setup.py" + (("extra_link_args=tbb_flag,") + (string-append "extra_link_args=['-Wl,-rpath=" + #$(this-package-input "tbb") "/lib" + "', '-Wl,-rpath=" #$output "/lib'] + tbb_flag,"))))) + (replace 'build + (lambda _ + (setenv "PYTHONHASHSEED" "0") + (setenv "PYTHONDONTWRITEBYTECODE" "1") + (invoke "make" "python_build"))) + ;; The 'build phase already installs the modules + (replace 'install + (lambda _ + (with-directory-excursion "python/rml" + (invoke "make" "install")))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "ctest" "-R" "python_test" "--output-on-failure"))))))) + (inputs (list python tbb)) + (native-inputs (list swig)))) + (define-public tbb-2020 (package (name "tbb") diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 302b351fbb..81621e9d4d 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -904,7 +904,7 @@ telephony functionality into custom Telegram clients.") (define-public coturn (package (name "coturn") - (version "4.6.0") + (version "4.6.1") (source (origin (method git-fetch) @@ -913,7 +913,7 @@ telephony functionality into custom Telegram clients.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "152v2lnjj9b3w61d8aak7hmi9riw9cjs5g54g1gfpzlyk4c2jw21")))) + (base32 "04d3c2lxc496zxx3nzqr9fskm2w57kqijdfq3wsa0yp2dp28yjkj")))) (inputs (list openssl sqlite diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm index 5ecbb1e4cd..1dd6d47fdd 100644 --- a/gnu/packages/texinfo.scm +++ b/gnu/packages/texinfo.scm @@ -75,7 +75,8 @@ %standard-phases) ;; XXX: Work around <https://issues.guix.gnu.org/59616>. - #:tests? ,(not (hurd-target?)))) + #:tests? ,(and (not (hurd-target?)) + (not (%current-target-system))))) (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 diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index a95cf37011..854a424b8a 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -1148,7 +1148,7 @@ card. It offers: (define-public ne (package (name "ne") - (version "3.3.1") + (version "3.3.2") (source (origin (method git-fetch) (uri (git-reference @@ -1157,7 +1157,7 @@ card. It offers: (file-name (git-file-name name version)) (sha256 (base32 - "0sg2f6lxq6cjkpd3dvlxxns82hvq826rjnams5in97pssmknr77g")))) + "16hzja0x41xz6028d8qij9rh1vkiil8qkswd8yznwlcwyl4h04wr")))) (build-system gnu-build-system) (native-inputs (list perl texinfo)) @@ -1165,6 +1165,7 @@ card. It offers: (list ncurses)) (arguments `(#:tests? #f + #:parallel-build? #f ; or enums.h may not yet be generated #:make-flags (list "STRIP=true" ; don't (string-append "CC=" ,(cc-for-target)) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 1f40537b6a..a74b423ccf 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -416,6 +416,8 @@ required structures.") (inputs (list gnutls-latest guile-3.0)) + (properties '((release-tag-prefix . "v") + (release-tag-version-delimiter . "."))) (synopsis "Guile bindings to GnuTLS") (description "This package provides Guile bindings to GnuTLS, a library implementation diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm index 10b78cccf7..67ce18fea1 100644 --- a/gnu/packages/tmux.scm +++ b/gnu/packages/tmux.scm @@ -267,3 +267,53 @@ following features: @item Generate command lines from standard input (Pipe mode). @end itemize") (license license:expat))) + +(define-public tmux-plugin-resurrect + (let ((commit "a2ddfb96b94bb64a7a2e3f5fa2a7c57dce8ad579") + (revision "0")) + (package + (name "tmux-plugin-resurrect") + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tmux-plugins/tmux-resurrect/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1gc8z99na1d4scn2kq4alwyn43h3r7ykz9bkhcypjh8iri6dsl0c")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils)) + (let ((out (string-append %output + "/share/tmux-plugins/resurrect/"))) + (mkdir-p out) + (copy-recursively (assoc-ref %build-inputs "source") out))))) + (synopsis "Restore tmux environment after system restart") + (description + "This plugin goes to great lengths to save and restore all the details +from your tmux environment. Here's what's been taken care of: + +@itemize +@item all sessions, windows, panes and their order +@item current working directory for each pane +@item exact pane layouts within windows (even when zoomed) +@item active and alternative session +@item active and alternative window for each session +@item windows with focus +@item active pane for each window +@item \"grouped sessions\" (useful feature when using tmux with multiple monitors) +@item programs running within a pane! More details in the restoring programs doc. +@end itemize + +Optional: + +@itemize +@item restoring vim and neovim sessions +@item restoring pane contents +@end itemize") + (home-page "https://github.com/tmux-plugins/tmux-resurrect/") + (license license:expat)))) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index fc98481740..d88a840906 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018, 2019, 2021 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> -;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2018, 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020 André Batista <nandre@riseup.net> @@ -61,14 +61,14 @@ (define-public tor (package (name "tor") - (version "0.4.7.11") + (version "0.4.7.12") (source (origin (method url-fetch) (uri (string-append "https://dist.torproject.org/tor-" version ".tar.gz")) (sha256 (base32 - "0vhk5bingy0m70wri44jzynmw00as7b783jlq38mzg5xxnzayg6g")))) + "15g3p42hnccpz8zyk4bi8pm9fnpi7qs19wr8s0dqary42abrcp9v")))) (build-system gnu-build-system) (arguments (list #:configure-flags @@ -434,17 +434,17 @@ Potential client and exit connections are scrubbed of sensitive information.") (define-public tractor (package (name "tractor") - (version "3.14") + (version "4.0") (source (origin (method url-fetch) (uri (pypi-uri "traxtor" version)) (sha256 (base32 - "06jhsg179rfckagrpk9r8wqp44anf1bchm3ins2saf5806f0n5lw")))) + "107iwkhw9rxbp4samlcw24gdvgqh23rd7z60lrl1b4iljmhqjvcs")))) (build-system python-build-system) (native-inputs - `(("glib:bin" ,glib "bin"))) ; for glib-compile-schemas. + (list (list glib "bin"))) ; for glib-compile-schemas. (inputs (list python-fire python-psutil @@ -453,20 +453,17 @@ Potential client and exit connections are scrubbed of sensitive information.") python-stem python-termcolor)) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'install 'install-man-page - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (man1 (string-append out "/share/man/man1"))) - (install-file "tractor/man/tractor.1" man1) - #t))) - (add-after 'install 'install-gschema - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (schemas (string-append out "/share/glib-2.0/schemas"))) - (install-file "tractor/tractor.gschema.xml" schemas) - #t)))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'install-man-page + (lambda _ + (let ((man1 (string-append #$output "/share/man/man1"))) + (install-file "tractor/man/tractor.1" man1)))) + (add-after 'install 'install-gschema + (lambda _ + (let ((schemas (string-append #$output "/share/glib-2.0/schemas"))) + (install-file "tractor/tractor.gschema.xml" schemas))))))) (home-page "https://framagit.org/tractor") (synopsis "Setup an onion routing proxy") (description diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 62464ecac1..7cfc709466 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -71,7 +71,6 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix hg-download) - #:use-module (guix build python-build-system) #:use-module (guix build-system cmake) #:use-module (guix build-system copy) #:use-module (guix build-system gnu) @@ -1409,7 +1408,7 @@ manipulate them in various ways.") (define-public vcsh (package (name "vcsh") - (version "1.20190621-4") + (version "2.0.5") (source (origin (method git-fetch) @@ -1418,25 +1417,30 @@ manipulate them in various ways.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1gx5nbqyprgy6picns5hxky3lyzkqfq3xhm614f0wcdi58xrsdh0")))) + (base32 "15lb09c2q261p1pp5r7j9k8389ybrd2q19xhnp1nnha6gs78i4wq")))) (build-system gnu-build-system) (native-inputs - (list which)) + (list autoconf + automake + ;; for man page + ronn-ng + ;; for tests + perl + perl-test-harness + perl-shell-command + perl-test-most + ;; for bash-completion + pkg-config)) (inputs - (list git perl perl-test-harness perl-shell-command perl-test-most)) + (list git)) (arguments '(#:phases (modify-phases %standard-phases - (delete 'configure) - (delete 'build) - (add-after 'install 'install-bash-completion - ;; As of 1.20190621, zsh completion is installed by default but bash - ;; completion is not. Do so manually. - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (completions (string-append out "/etc/bash_completion.d"))) - (mkdir-p completions) - (copy-file "_vcsh_bash" (string-append completions "/vcsh")))))) + (add-before 'bootstrap 'fix-version-gen + (lambda _ + (call-with-output-file ".tarball-version" + (lambda (port) + (display version port)))))) #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:test-target "test")) @@ -2728,25 +2732,20 @@ by rclone usable with git-annex.") (define-public fossil (package (name "fossil") - (version "2.18") + (version "2.20") (source (origin (method url-fetch) (uri (string-append "https://www.fossil-scm.org/home/tarball/" - "84f25d7eb10c0714109d69bb2809abfa8b4b5c3d73b151a5b10df724dacd46d8" + "210e89a0597f225f49722b096cf5563bf193e920e02a9bd38503a906deacd416" "/fossil-src-" version ".tar.gz")) ;; XXX: Currently the above hash must be manually updated. (sha256 - (base32 "0cq7677p84nnbfvk2dsh3c3y900gslw3zaw8iipfq932vmf1s31h")) + (base32 "08g7img88n2nwcdkpzmg4aqbp2iy40nllgas53502dspm97ym4h8")) (modules '((guix build utils))) (snippet - '(begin - (delete-file-recursively "compat") - ;; Disable obsolete SQLite feature check; remove for 2.19. - (substitute* "tools/sqlcompattest.c" - ((".*\"ENABLE_JSON1\".*") - "")))))) + '(delete-file-recursively "compat")))) (build-system gnu-build-system) (native-inputs (list tcl ;for configuration only diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 4e2c7ff040..4e7c183eee 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -167,6 +167,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) #:use-module (gnu packages perl-web) + #:use-module (gnu packages php) #:use-module (gnu packages photo) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) @@ -273,7 +274,7 @@ python-wrapper)) (inputs (list alsa-lib - ffmpeg + ffmpeg-4 freetype imagemagick lame @@ -450,7 +451,7 @@ as a joint effort between the BBC and Fluendo.") (list gettext-minimal doxygen pkg-config)) (inputs (list alsa-lib - ffmpeg + ffmpeg-4 gtk+-2 lame libdv @@ -1102,7 +1103,7 @@ H.264 (MPEG-4 AVC) video streams.") (define-public pipe-viewer (package (name "pipe-viewer") - (version "0.2.3") + (version "0.4.4") (source (origin (method git-fetch) @@ -1112,7 +1113,7 @@ H.264 (MPEG-4 AVC) video streams.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0c2v4pj86442sp71ndjmvd2bl1grp6g9ya2ywdaihq1f2djk6jxl")))) + (base32 "0ka5az3aq2khql9nlxnrbkbs7afmp07r2fkx5pvmh6mqnriaimq3")))) (build-system perl-build-system) (arguments `(#:imported-modules @@ -1854,7 +1855,7 @@ audio/video codec library.") (format #t "setting LD_LIBRARY_PATH to ~s~%" path) (setenv "LD_LIBRARY_PATH" path))))))))) -(define-public ffmpeg ffmpeg-4) +(define-public ffmpeg ffmpeg-5) (define-public ffmpeg-for-stepmania (hidden-package @@ -1901,7 +1902,7 @@ audio/video codec library.") (native-inputs (list pkg-config)) (inputs - (list ffmpeg libjpeg-turbo libpng gvfs)) + (list ffmpeg-4 libjpeg-turbo libpng gvfs)) (arguments `(#:configure-flags (list "-DENABLE_GIO=ON" "-DENABLE_THUMBNAILER=ON"))) (home-page "https://github.com/dirkvdb/ffmpegthumbnailer") @@ -2081,7 +2082,7 @@ streaming protocols.") (inputs `(("alsa-lib" ,alsa-lib) ("cdparanoia" ,cdparanoia) - ("ffmpeg" ,ffmpeg) + ("ffmpeg" ,ffmpeg-4) ("fontconfig" ,fontconfig) ("freetype" ,freetype) ("giflib" ,giflib) @@ -2407,6 +2408,38 @@ To load this plugin, specify the following option when starting mpv: (license license:bsd-3) (home-page "https://www.webmproject.org/"))) +(define-public orf-dl + (let ((commit "2dbbe7ef4e0efe0f3c1d59c503108e22d9065999") + (revision "1")) + (package + (name "orf-dl") + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tpoechtrager/orf_dl") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1w413miy01cm7rzb5c6wwfdnc2sqv87cvxwikafgrkswpimvdjsk")))) + (build-system copy-build-system) + (arguments + (list #:install-plan #~`(("orf_dl.php" "bin/orf-dl")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "orf_dl.php" + (("ffmpeg") + (search-input-file inputs "bin/ffmpeg")))))))) + (inputs (list php ffmpeg)) + (home-page "https://github.com/tpoechtrager/orf_dl") + (synopsis "Download videos from tvthek.orf.at") + (description "This package provides a PHP-based command line application +to download videos from Austria's national television broadcaster.") + (license license:gpl2+)))) + (define-public youtube-dl (package (name "youtube-dl") @@ -3002,7 +3035,7 @@ capabilities.") (define-public vapoursynth (package (name "vapoursynth") - (version "53") + (version "61") (source (origin (method git-fetch) (uri (git-reference @@ -3011,7 +3044,7 @@ capabilities.") (file-name (git-file-name name version)) (sha256 (base32 - "0qcsfkpkry0cmvi60khjwvfz4fqhy23nqmn4pb9qrwll26sn9dcr")))) + "0v0dp3hydqzam0dp2d9zbrccrsvhy6n61s4v7ca2qbw69vpsm594")))) (build-system gnu-build-system) (arguments `(#:phases @@ -3026,12 +3059,12 @@ capabilities.") (wrap-program (string-append out "/bin/vspipe") `("PYTHONPATH" ":" = (,site))))))))) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("cython" ,python-cython) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config) - ("yasm" ,yasm))) + (list autoconf + automake + python-cython + libtool + pkg-config + yasm)) (inputs (list ffmpeg libass python tesseract-ocr zimg)) (home-page "http://www.vapoursynth.com/") @@ -3259,6 +3292,7 @@ tools, XML authoring components, and an extensible plug-in based API.") ,@(package-arguments mlt))) (inputs (modify-inputs (package-inputs mlt) + (replace "ffmpeg" ffmpeg-4) (replace "gtk+" gtk+-2))))) (define-public v4l-utils @@ -3372,7 +3406,7 @@ be used for realtime video capture via Linux-specific APIs.") bash-minimal curl eudev - ffmpeg + ffmpeg-4 fontconfig freetype glib @@ -3642,7 +3676,7 @@ making @dfn{screencasts}.") ;; As a result, they are omitted. Please add them back if problems appear. (inputs (list alsa-lib - ffmpeg + ffmpeg-4 glu jack-1 libxi @@ -3835,7 +3869,7 @@ supported players in addition to this package.") (inputs `(("bzip2" ,bzip2) ("dbus-glib" ,dbus-glib) - ("ffmpeg" ,ffmpeg) + ("ffmpeg" ,ffmpeg-4) ("fontconfig" ,fontconfig) ("freetype" ,freetype) ("glib" ,glib) @@ -4276,7 +4310,7 @@ and ITU-T H.222.0.") (inputs (list zlib)) (propagated-inputs - (list ffmpeg)) + (list ffmpeg-4)) (native-inputs (list pkg-config)) (synopsis "Cross-platform wrapper around ffmpeg/libav") @@ -4511,7 +4545,7 @@ It counts more than 100 plugins.") (define-public motion (package (name "motion") - (version "4.3.2") + (version "4.5.0") (home-page "https://motion-project.github.io/") (source (origin (method git-fetch) @@ -4520,19 +4554,13 @@ It counts more than 100 plugins.") (commit (string-append "release-" version)))) (sha256 (base32 - "09xs815jsivcilpmnrx2jkcxirj4lg5kp99fkr0p2sdxw03myi95")) + "1rqy98g3xjjzjxiw8j3qdka0rbhcgzgczz6qgj157ck9116j18dq")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("gettext" ,gettext-minimal) - ("pkg-config" ,pkg-config))) + (list autoconf automake gettext-minimal pkg-config)) (inputs - `(("libjpeg" ,libjpeg-turbo) - ("ffmpeg" ,ffmpeg) - ("libmicrohttpd" ,libmicrohttpd) - ("sqlite" ,sqlite))) + (list libjpeg-turbo ffmpeg libmicrohttpd sqlite)) (arguments '(#:phases (modify-phases %standard-phases (replace 'bootstrap @@ -4712,7 +4740,7 @@ create smoother and stable videos.") (list alsa-lib zlib)) (propagated-inputs ;all referenced in installed headers (list cppzmq - ffmpeg + ffmpeg-4 imagemagick jsoncpp libopenshot-audio @@ -4820,7 +4848,7 @@ transitions, and effects and then export your film to many common formats.") (define-public shotcut (package (name "shotcut") - (version "22.11.25") + (version "22.12.21") (source (origin (method git-fetch) @@ -4829,7 +4857,7 @@ transitions, and effects and then export your film to many common formats.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "01qv0lb57kgmi5shcnhjwf47vqvbyjndxx6v7ha3sh4x5r8x0mrn")))) + (base32 "1hchnywsrkvnz07r2i1cffg1a8zi59pcpswz8x93a0rdc42hlk3d")))) (build-system qt-build-system) (arguments `(#:tests? #f ;there are no tests @@ -4937,7 +4965,7 @@ speed and correctness.") "01qbcgfl3g9kfwn1jf1z9pdj3bvf5lmg71d1vwkcllc2az24bjqp")))) (build-system meson-build-system) (native-inputs (list libdrm pkg-config)) - (inputs (list ffmpeg pulseaudio wayland wayland-protocols)) + (inputs (list ffmpeg-4 pulseaudio wayland wayland-protocols)) (home-page "https://github.com/atomnuker/wlstream") (synopsis "Screen capture tool for Wayland sessions") (description "Wlstream is a screen capture tool for recording audio and diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 9a4a2ce235..1451bf80a3 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -78,7 +78,7 @@ (define-public vim (package (name "vim") - (version "9.0.0954") + (version "9.0.1073") (source (origin (method git-fetch) (uri (git-reference @@ -87,7 +87,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "098fiqw6hz0cc5zzy934alqxgwp01180vz3v9wm9i6x6fhdnhxxn")))) + "0vifinbxjcs7j3zs290q91009cdqijn2awyva2332if7qbx48ssw")))) (build-system gnu-build-system) (arguments `(#:test-target "test" diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index e011666324..612ccc4e8a 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -160,7 +160,7 @@ (define-public qemu (package (name "qemu") - (version "7.1.0") + (version "7.2.0") (source (origin (method url-fetch) @@ -168,17 +168,35 @@ version ".tar.xz")) (sha256 (base32 - "1rmvrgqjhrvcmchnz170dxvrrf14n6nm39y8ivrprmfydd9lwqx0")) + "0mr1xd78bgp1l61281sdx0338ji0aa68j2p9994sskblhwkcwjav")) (patches (search-patches "qemu-build-info-manual.patch" "qemu-disable-aarch64-migration-test.patch" "qemu-fix-agent-paths.patch")) (modules '((guix build utils))) (snippet '(begin + ;; TODO: Scrub all firmwares from this directory! + (with-directory-excursion "pc-bios" + ;; Delete firmwares provided by SeaBIOS. + (for-each delete-file (find-files "." "^(bios|vgabios).*\\.bin$")) + ;; Delete SGABIOS. + (delete-file "sgabios.bin") + ;; Delete ppc64 OpenBIOS. TODO: Remove sparc32 and sparc64 too + ;; once they are supported in Guix. + (delete-file "openbios-ppc") + ;; Delete riscv64 OpenSBI. TODO: Remove riscv32 when supported + ;; in Guix. + (delete-file "opensbi-riscv64-generic-fw_dynamic.bin") + ;; Delete iPXE firmwares. + (for-each delete-file (find-files "." "^(efi|pxe)-.*\\.rom$"))) ;; Delete bundled code that we provide externally. - ;; TODO: Unbundle SeaBIOS! (for-each delete-file-recursively - '("dtc" "meson" "slirp")))))) + '("dtc" "meson" + "roms/ipxe" + "roms/openbios" + "roms/opensbi" + "roms/seabios" + "roms/sgabios")))))) (outputs '("out" "static" "doc")) ;5.3 MiB of HTML docs (build-system gnu-build-system) (arguments @@ -189,14 +207,33 @@ (not (string=? "i686-linux" (%current-system)))) #:configure-flags #~(let ((gcc (search-input-file %build-inputs "/bin/gcc")) + (meson (search-input-file %build-inputs "bin/meson")) + (openbios (search-input-file %build-inputs + "share/qemu/openbios-ppc")) + (opensbi (search-input-file + %build-inputs + "share/qemu/opensbi-riscv64-generic-fw_dynamic.bin")) + (seabios (search-input-file %build-inputs + "share/qemu/bios.bin")) + (sgabios (search-input-file %build-inputs + "/share/qemu/sgabios.bin")) + (ipxe (search-input-file %build-inputs + "share/qemu/pxe-virtio.rom")) (out #$output)) (list (string-append "--cc=" gcc) ;; Some architectures insist on using HOST_CC. (string-append "--host-cc=" gcc) + (string-append "--meson=" meson) (string-append "--prefix=" out) + "--sysconfdir=/etc" - "--enable-slirp=system" "--enable-fdt=system" + (string-append "--firmwarepath=" out "/share/qemu:" + (dirname seabios) ":" + (dirname ipxe) ":" + (dirname openbios) ":" + (dirname opensbi) ":" + (dirname sgabios)) (string-append "--smbd=" out "/libexec/samba-wrapper") "--disable-debug-info" ;for space considerations ;; The binaries need to be linked against -lrt. @@ -210,6 +247,44 @@ ,@%gnu-build-system-modules) #:phases #~(modify-phases %standard-phases + ;; Since we removed the bundled firmwares above, many tests + ;; can't work. Re-add them here. + (add-after 'unpack 'replace-firmwares + (lambda* (#:key inputs #:allow-other-keys) + (let* ((seabios (dirname (search-input-file + inputs "share/qemu/bios.bin"))) + (seabios-firmwares (find-files seabios "\\.bin$")) + (sgabios (search-input-file inputs "share/qemu/sgabios.bin")) + (ipxe (dirname (search-input-file + inputs "share/qemu/pxe-virtio.rom"))) + (ipxe-firmwares (find-files ipxe "\\.rom$")) + (openbios (search-input-file + inputs "share/qemu/openbios-ppc")) + (opensbi-riscv64 + (search-input-file + inputs + "share/qemu/opensbi-riscv64-generic-fw_dynamic.bin")) + (allowed-differences + ;; Ignore minor differences (addresses etc) in the firmware + ;; data tables compared to what the test suite expects. + '("tests/data/acpi/pc/SSDT.dimmpxm" + "tests/data/acpi/pc/DSDT.dimmpxm" + "tests/data/acpi/pc/ERST.acpierst" + "tests/data/acpi/q35/ERST.acpierst" + "tests/data/acpi/q35/DSDT.cxl")) + (allowed-differences-whitelist + (open-file "tests/qtest/bios-tables-test-allowed-diff.h" + "a"))) + (with-directory-excursion "pc-bios" + (for-each (lambda (file) + (symlink file (basename file))) + (append seabios-firmwares ipxe-firmwares + (list openbios opensbi-riscv64 sgabios)))) + (for-each (lambda (file) + (format allowed-differences-whitelist + "\"~a\",~%" file)) + allowed-differences) + (close-port allowed-differences-whitelist)))) (add-after 'unpack 'extend-test-time-outs (lambda _ ;; These tests can time out on heavily-loaded and/or slow storage. @@ -276,6 +351,7 @@ (mkdir-p "b/qemu") (chdir "b/qemu") (apply invoke "../../configure" configure-flags))) + ;; Configure, build and install QEMU user-emulation static binaries. (add-after 'configure 'configure-user-static (lambda* (#:key inputs outputs #:allow-other-keys) @@ -312,6 +388,20 @@ (scandir "." (cut string-suffix? "-linux-user" <>)))))))) + + (add-after 'install 'delete-firmwares + (lambda _ + ;; Delete firmares that are accessible on --firmwarepath. + ;; For some reason tests fail if we simply remove them from + ;; pc-bios/meson.build, hence this roundabout way. + (with-directory-excursion (string-append #$output "/share/qemu") + (for-each delete-file + (append + '("openbios-ppc" + "opensbi-riscv64-generic-fw_dynamic.bin" + "sgabios.bin") + (find-files "." "^(vga)?bios(-[a-z0-9-]+)?\\.bin$") + (find-files "." "^(efi|pxe)-.*\\.rom$")))))) ;; Create a wrapper for Samba. This allows QEMU to use Samba without ;; pulling it in as an input. Note that you need to explicitly install ;; Samba in your Guix profile for Samba support. @@ -339,6 +429,7 @@ exec smbd $@"))) dtc glib gtk+ + ipxe-qemu libaio libcacard ;smartcard support attr libcap-ng ;VirtFS support @@ -352,10 +443,14 @@ exec smbd $@"))) libusb ;USB pass-through support mesa ncurses + openbios-qemu-ppc + opensbi-qemu ;; ("pciutils" ,pciutils) pixman pulseaudio sdl2 + seabios-qemu + sgabios spice usbredir util-linux @@ -366,13 +461,16 @@ exec smbd $@"))) zlib `(,zstd "lib"))) (native-inputs - (list gettext-minimal - `(,glib "bin") ;gtester, etc. - perl - flex + ;; Note: acpica is here only to pretty-print firmware differences with IASL + ;; (see the replace-firmwares phase above). + (list acpica bison - meson + flex + gettext-minimal + `(,glib "bin") ;gtester, etc. + meson-0.63 ninja + perl pkg-config python-wrapper python-sphinx @@ -1363,7 +1461,7 @@ pretty simple, REST API.") openssl readline cyrus-sasl - libyajl + yajl audit dmidecode dnsmasq @@ -1403,7 +1501,7 @@ to integrate other virtualization mechanisms if needed.") (build-system meson-build-system) (inputs (list openssl cyrus-sasl lvm2 ; for libdevmapper - libyajl)) + yajl)) (native-inputs (list pkg-config intltool `(,glib "bin") vala)) @@ -2269,7 +2367,7 @@ override CC = " (assoc-ref inputs "cross-gcc") "/bin/i686-linux-gnu-gcc")) ("iproute" ,iproute) ; TODO: patch invocations. ("libaio" ,libaio) ("libx11" ,libx11) - ("libyajl" ,libyajl) + ("yajl" ,yajl) ("ncurses" ,ncurses) ("openssl" ,openssl) ("ovmf" ,ovmf) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index 608e63a0a5..f38fd28cea 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -796,7 +796,7 @@ this process. It is compatible with Fortinet VPNs.") (define-public openvpn (package (name "openvpn") - (version "2.5.7") + (version "2.5.8") (source (origin (method url-fetch) (uri (string-append @@ -804,7 +804,7 @@ this process. It is compatible with Fortinet VPNs.") version ".tar.gz")) (sha256 (base32 - "0s1yq530j4i4kicgvsxgl532vyn03gfhlxfdnsb43j05k4w0ld08")))) + "1cixqm4gn2d1v8qkbww75j30fzvxz13gc7whcmz54i0x4fvibwx6")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-iproute2=yes"))) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index a2d6e399e9..a126902395 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -72,6 +72,7 @@ #:use-module (gnu packages gnupg) #:use-module (gnu packages gtk) #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) #:use-module (gnu packages libevent) #:use-module (gnu packages libidn) #:use-module (gnu packages libunistring) @@ -829,7 +830,7 @@ http, and https via third-party applications.") (define-public tinmop (package (name "tinmop") - (version "0.9.9") + (version "0.9.9.14") (source (origin (method git-fetch) @@ -838,12 +839,13 @@ http, and https via third-party applications.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0s73587wf29jzymlqrgcnci7w6wsfj1vcs7szxshsmaiszf0skwk")))) + (base32 "0xpqakqg4827wv92vvzwcvkqzr8d523fvnyjvnj4ac83d4w6nnls")))) (build-system gnu-build-system) (native-inputs (list autoconf automake gnu-gettext + imagemagick mandoc nano openssl diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index dacb6119ea..d1d0a2edb9 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -1395,9 +1395,9 @@ current version of any major web browser.") style API.") (license license:expat))) -(define-public libyajl +(define-public yajl (package - (name "libyajl") + (name "yajl") (version "2.1.0") (source (origin (method git-fetch) @@ -1415,15 +1415,17 @@ style API.") (add-after 'patch-source-shebangs 'patch-tests (lambda _ (substitute* "test/parsing/run_tests.sh" - (("`which echo`") (which "echo"))) - #t))))) + (("`which echo`") (which "echo")))))))) (home-page "https://lloyd.github.io/yajl/") - (synopsis "C library for parsing JSON") + (synopsis "C library for parsing and generating JSON") (description - "Yet Another JSON Library (YAJL) is a small event-driven (SAX-style) JSON -parser written in ANSI C and a small validating JSON generator.") + "@acronym{YAJL, Yet Another JSON Library} is a small event-driven +(SAX-style) JSON parser and validating generator written in ANSI C.") (license license:isc))) +(define-public libyajl + (deprecated-package "libyajl" yajl)) + (define-public libwebsockets (package (name "libwebsockets") @@ -4659,8 +4661,8 @@ CDF, Atom 0.3, and Atom 1.0 feeds.") license:freebsd-doc)))) ; documentation (define-public guix-data-service - (let ((commit "95064d39a337da9f2eb7d5675e0e511301466f77") - (revision "34")) + (let ((commit "7b69611755ac3b9132710d83a1139b4c5606578d") + (revision "36")) (package (name "guix-data-service") (version (string-append "0.0.1-" revision "." (string-take commit 7))) @@ -4672,7 +4674,7 @@ CDF, Atom 0.3, and Atom 1.0 feeds.") (file-name (git-file-name name version)) (sha256 (base32 - "1nkasn2wk36jfnfan619lv604cjj6ppwvmiljckcyyr57yynqbr4")))) + "0lmvmalgfbc6q80f8dwqikdd5kna2vl4jlmf2li206hmcq2hzh6p")))) (build-system gnu-build-system) (arguments '(#:modules ((guix build utils) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index d3a7716c23..18fe606c7b 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -287,7 +287,7 @@ or musca). (list alsa-lib libconfuse libnl - libyajl + yajl pulseaudio)) (native-inputs (list asciidoc @@ -342,7 +342,7 @@ commands would.") xcb-util-xrm libxkbcommon libev - libyajl + yajl xmlto perl-pod-simple libx11 diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index 2d34b49d93..0183e07c31 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -322,14 +322,14 @@ provide a 100% native look and feel for the application.") (define-public wxsvg (package (name "wxsvg") - (version "1.5.23") + (version "1.5.24") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/wxsvg/wxsvg/" version "/wxsvg-" version ".tar.bz2")) (sha256 - (base32 "1fdbvihw1w2vm29xj54cqgpdabhlg0ydf3clkb0qrlf7mhgkc1rz")))) + (base32 "10i4bv1bfbfgrrpxvfdjrr5svgn64v471lkcl2pzx9fhz28k4ixf")))) (build-system glib-or-gtk-build-system) (inputs (list wxwidgets cairo ffmpeg)) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 5c4fd79091..10edfc7379 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -56,6 +56,7 @@ ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com> ;;; Copyright © 2022 Derek Chuank <derekchuank@outlook.com> ;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com> +;;; Copyright © 2022 Tobias Kortkamp <tobias.kortkamp@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -3268,3 +3269,53 @@ light filter or night light.") (description "@code{ydotool} is a Linux command-line tool that simulates keyboard input, mouse actions, etc. programmatically or manually.") (license license:agpl3+))) + +(define-public wvkbd + (package + (name "wvkbd") + (version "0.12") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~proycon/wvkbd") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05zl6jhw7pj7w2cd02m3i0zzn1z99kzwh2mlg9h96j5aw1x1lvp6")))) + (build-system gnu-build-system) + (arguments + (list #:tests? #f ;no tests + #:make-flags #~(list (string-append "CC=" + #$(cc-for-target)) + (string-append "PREFIX=" + #$output)) + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'fix-cross-compile + (lambda _ + (substitute* "Makefile" + (("pkg-config") + #$(pkg-config-for-target))))) + (delete 'configure)))) + (native-inputs (list wayland ;for wayland-scanner + pkg-config)) + (inputs (list libxkbcommon cairo pango harfbuzz wayland)) + (home-page "https://git.sr.ht/~proycon/wvkbd") + (synopsis "On-screen keyboard for wlroots compositors") + (description + "This package provides on-screen keyboard for wlroots compositors with +the following features: + +@itemize +@item Typing, modifier locking, layout switching +@item Positive visual feedback on key presses +@item On-the-fly layout and keymap switching +@item Custom color schemes +@item International layouts (cyrillic, arabic) +@item Emoji support +@item Compose key for character variants (e.g. diacritics) +@item Show/hide keyboard on signals (SIGUSR1 = hide, SIGUSR2 = show, SIGRTMIN = toggle) +@item Automatic portrait/landscape detection and subsequent layout switching +@end itemize") + (license (list license:expat ;3 files under Expat license (see 'LICENSE') + license:gpl3+)))) ;the rest is GPLv3+ diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 720a36e3b9..a00f701ab0 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -1146,7 +1146,7 @@ inhibit interface which allows applications to prevent automatic sleep.") (define-public ristretto (package (name "ristretto") - (version "0.12.3") + (version "0.12.4") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/apps/ristretto/" @@ -1154,7 +1154,7 @@ inhibit interface which allows applications to prevent automatic sleep.") "ristretto-" version ".tar.bz2")) (sha256 (base32 - "0gizrn49ayamb1sqfxi3mdxas9dz4dw1sv3iyji718az48hp13w6")))) + "0c3rx02bk74fip7ishdxnbn0l9f48qbiglckzclz7v758fbmq074")))) (build-system gnu-build-system) (native-inputs (list intltool desktop-file-utils @@ -1174,7 +1174,7 @@ the desktop wallpaper.") (define-public xfce4-taskmanager (package (name "xfce4-taskmanager") - (version "1.4.2") + (version "1.5.5") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/apps/" @@ -1182,7 +1182,7 @@ the desktop wallpaper.") "xfce4-taskmanager-" version ".tar.bz2")) (sha256 (base32 - "1ya81si7xhqqbbc9lfcjg2i1pi1qdfw1pnjry7kf95f1w50244nd")))) + "1rcaalqv6sdsnc6ick8fifgkqcf2xiflw9yk5szqn2qs4jx02kzn")))) (build-system gnu-build-system) (native-inputs (list intltool pkg-config)) @@ -1190,6 +1190,7 @@ the desktop wallpaper.") (list libwnck libxmu gtk+ + libxfce4ui ;; FIXME: Remove libxext and libxt when libxmu propagates them. libxext libxt)) @@ -1233,7 +1234,7 @@ several different time zones.") (define-public xfce4-notifyd (package (name "xfce4-notifyd") - (version "0.6.4") + (version "0.6.5") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/apps/" @@ -1241,7 +1242,7 @@ several different time zones.") name "-" version ".tar.bz2")) (sha256 (base32 - "1xi0j4qk8hhcd3xj4wvzs170n2010z0bv8w1mm53g5gqj7q7ikhf")))) + "0425pfp0y17daw77q39vi48lkw3j5yj4724i3hin1rq5k7j30wav")))) (build-system glib-or-gtk-build-system) (native-inputs (list intltool pkg-config)) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 7767a35afe..16b211f7d2 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5983,7 +5983,7 @@ to answer a question. Xmessage can also exit after a specified time.") (define-public xterm (package (name "xterm") - (version "374") + (version "377") (source (origin (method url-fetch) @@ -5993,7 +5993,7 @@ to answer a question. Xmessage can also exit after a specified time.") (string-append "ftp://ftp.invisible-island.net/xterm/" "xterm-" version ".tgz"))) (sha256 - (base32 "1xdxq65di3vncy8jyl12mpjif613xklnfx7vd5xnsk8dcwkddm0i")) + (base32 "1clhm4c8d7vmz0dn6qz2c6g68wxl8f2ba8a7c1zdk3jxlkkqy46v")) (patches (search-patches "xterm-370-explicit-xcursor.patch")))) (build-system gnu-build-system) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index ba59e46155..6993e1f174 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -61,7 +61,8 @@ util-linux xfsprogs)) #:use-module (gnu packages bash) #:use-module ((gnu packages base) - #:select (coreutils glibc glibc-utf8-locales tar)) + #:select (coreutils glibc glibc-utf8-locales tar + canonical-package)) #:use-module ((gnu packages compression) #:select (gzip)) #:autoload (gnu packages guile-xyz) (guile-netlink) #:autoload (gnu packages hurd) (hurd) @@ -71,6 +72,7 @@ #:select (dosfstools)) #:use-module ((gnu packages file-systems) #:select (bcachefs-tools exfat-utils jfsutils zfs)) + #:use-module (gnu packages fonts) #:use-module (gnu packages terminals) #:use-module ((gnu packages wm) #:select (sway)) #:use-module ((gnu build file-systems) @@ -1211,7 +1213,13 @@ the tty to run, among other things." (name-services nscd-configuration-name-services ;list of file-like (default '())) (glibc nscd-configuration-glibc ;file-like - (default glibc))) + (default (let-system (system target) + ;; Unless we're cross-compiling, arrange to use nscd + ;; from 'glibc-final' instead of pulling in a second + ;; glibc copy. + (if target + glibc + (canonical-package glibc)))))) (define-record-type* <nscd-cache> nscd-cache make-nscd-cache nscd-cache? @@ -2482,7 +2490,15 @@ notably to select, copy, and paste text. The default options use the (documentation "kmscon virtual terminal") (requirement '(user-processes udev dbus-system)) (provision (list (symbol-append 'term- (string->symbol virtual-terminal)))) - (start #~(make-forkexec-constructor #$kmscon-command)) + (start #~(make-forkexec-constructor + #$kmscon-command + + ;; The installer needs to be able to display glyphs from + ;; various scripts, so give it access to unifont. + ;; TODO: Make this configurable. + #:environment-variables + (list (string-append "XDG_DATA_DIRS=" + #$font-gnu-unifont "/share")))) (stop #~(make-kill-destructor))))) (description "Start the @command{kmscon} virtual terminal emulator for the Linux @dfn{kernel mode setting} (KMS)."))) diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scm index 10cb933ed1..6b0291dc00 100644 --- a/gnu/services/configuration.scm +++ b/gnu/services/configuration.scm @@ -473,9 +473,6 @@ applied on the fields and values of FIELDS using the COMBINE is a procedure that takes one or more arguments and combines all the alist entries into one value, @code{string-append} or -@code{append} are usually good candidates for this. - -See the @code{serialize-alist} procedure in `@code{(gnu home services -version-control}' for an example usage.)}" +@code{append} are usually good candidates for this." (apply combine (map (generic-serialize-alist-entry serialize-field) fields))) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index ac29e8d38a..9fd77642a1 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -838,9 +838,7 @@ Bluetooth devices and provides a number of D-Bus interfaces."))) "Return a service that runs the @command{bluetoothd} daemon, which manages all the Bluetooth devices and provides a number of D-Bus interfaces. When AUTO-ENABLE? is true, the bluetooth controller is powered automatically at -boot. - -Users need to be in the @code{lp} group to access the D-Bus service. +boot, which can be useful when using a bluetooth keyboard or mouse. " (service bluetooth-service-type (bluetooth-configuration diff --git a/gnu/services/ganeti.scm b/gnu/services/ganeti.scm index d9770b1a29..f4fec3833e 100644 --- a/gnu/services/ganeti.scm +++ b/gnu/services/ganeti.scm @@ -683,7 +683,8 @@ information to OS install scripts or instances."))) #~(#$schedule)) ((? list?) #~('#$schedule))) - #$(ganeti-watcher-command config)))))) + #$(ganeti-watcher-command config) + "ganeti-watcher"))))) (define ganeti-watcher-service-type (service-type (name 'ganeti-watcher) @@ -725,7 +726,8 @@ is declared offline by known master candidates."))) #~('#$master-schedule))) (lambda () (system* #$(file-append ganeti "/sbin/ganeti-cleaner") - "master"))) + "master")) + "ganeti master cleaner") #~(job #$@(match node-schedule ((? string?) #~(#$node-schedule)) @@ -733,7 +735,8 @@ is declared offline by known master candidates."))) #~('#$node-schedule))) (lambda () (system* #$(file-append ganeti "/sbin/ganeti-cleaner") - "node"))))))) + "node")) + "ganeti node cleaner"))))) (define ganeti-cleaner-service-type (service-type (name 'ganeti-cleaner) @@ -777,6 +780,8 @@ than 21 days from @file{/var/lib/ganeti/queue/archive}."))) (default (ganeti-cleaner-configuration))) (file-storage-paths ganeti-configuration-file-storage-paths ;list of strings | gexp (default '())) + (hooks ganeti-configuration-hooks ;<file-like> | #f + (default #f)) (os ganeti-configuration-os ;list of <ganeti-os> (default '()))) @@ -910,7 +915,7 @@ trap - EXIT (partition-alignment debootstrap-configuration-partition-alignment ;#f | integer (default 2048))) -(define (hooks->directory hooks) +(define (debootstrap-hooks->directory hooks) (match hooks ((? file-like?) hooks) @@ -918,7 +923,7 @@ trap - EXIT (let ((names (map car hooks)) (files (map cdr hooks))) (with-imported-modules '((guix build utils)) - (computed-file "hooks-union" + (computed-file "debootstrap-hooks" #~(begin (use-modules (guix build utils) (ice-9 match)) @@ -942,7 +947,7 @@ trap - EXIT (($ <debootstrap-configuration> hooks proxy mirror arch suite extra-pkgs components generate-cache? clean-cache partition-style partition-alignment) - (let ((customize-dir (hooks->directory hooks))) + (let ((customize-dir (debootstrap-hooks->directory hooks))) (gexp->derivation "debootstrap-variant" #~(call-with-output-file (ungexp output "out") @@ -1034,7 +1039,7 @@ in /etc/ganeti/instance-$os for OS." (computed-file (string-append name "-os") builder #:local-build? #t))) -(define (ganeti-directory file-storage-file os) +(define (ganeti-directory file-storage-file hooks os) (let ((dirs (map ganeti-os->directory os)) (names (map ganeti-os-name os))) (define builder @@ -1044,6 +1049,9 @@ in /etc/ganeti/instance-$os for OS." (when #$file-storage-file (symlink #$file-storage-file (string-append #$output "/file-storage-paths"))) + (when #$hooks + (symlink #$hooks + (string-append #$output "/hooks"))) (for-each (match-lambda ((name dest) (symlink dest @@ -1063,6 +1071,7 @@ in /etc/ganeti/instance-$os for OS." (list `("ganeti" ,(ganeti-directory (file-storage-file (ganeti-configuration-file-storage-paths config)) + (ganeti-configuration-hooks config) (ganeti-configuration-os config))))) (define (debootstrap-os variants) diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm index 486d9f49d7..65bf0b5a7f 100644 --- a/gnu/services/guix.scm +++ b/gnu/services/guix.scm @@ -336,30 +336,30 @@ (start #~(lambda args (parameterize ((%current-logfile-date-format "")) (apply - make-forkexec-constructor - (list #$(make-guix-build-coordinator-start-script - database-uri-string - allocation-strategy - "/var/run/guix-build-coordinator/pid" - package - #:agent-communication-uri-string - agent-communication-uri-string - #:client-communication-uri-string - client-communication-uri-string - #:hooks hooks - #:parallel-hooks parallel-hooks - #:guile guile)) - #:user #$user - #:group #$group - #:pid-file "/var/run/guix-build-coordinator/pid" - ;; Allow time for migrations to run - #:pid-file-timeout 60 - #:environment-variables - `(,(string-append - "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale") - "LC_ALL=en_US.utf8" - "PATH=/run/current-system/profile/bin") ; for hooks - #:log-file "/var/log/guix-build-coordinator/coordinator.log" + (make-forkexec-constructor + (list #$(make-guix-build-coordinator-start-script + database-uri-string + allocation-strategy + "/var/run/guix-build-coordinator/pid" + package + #:agent-communication-uri-string + agent-communication-uri-string + #:client-communication-uri-string + client-communication-uri-string + #:hooks hooks + #:parallel-hooks parallel-hooks + #:guile guile)) + #:user #$user + #:group #$group + #:pid-file "/var/run/guix-build-coordinator/pid" + ;; Allow time for migrations to run + #:pid-file-timeout 60 + #:environment-variables + `(,(string-append + "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale") + "LC_ALL=en_US.utf8" + "PATH=/run/current-system/profile/bin") ; for hooks + #:log-file "/var/log/guix-build-coordinator/coordinator.log") args)))) (stop #~(make-kill-destructor)) (modules diff --git a/gnu/services/ldap.scm b/gnu/services/ldap.scm new file mode 100644 index 0000000000..49a33fac08 --- /dev/null +++ b/gnu/services/ldap.scm @@ -0,0 +1,317 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018, 2019, 2022 Ricardo Wurmus <rekado@elephly.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of thye GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu services ldap) + #:use-module (gnu packages admin) + #:use-module (gnu packages openldap) + #:use-module (gnu services) + #:use-module (gnu services configuration) + #:use-module (gnu services shepherd) + #:use-module (gnu system shadow) + #:use-module (guix gexp) + #:use-module (srfi srfi-1) + #:use-module (ice-9 match) + #:use-module (ice-9 string-fun) + #:export (directory-server-service-type + directory-server-shepherd-service + + directory-server-instance-configuration + slapd-configuration + backend-configuration)) + +(define (uglify-field-name name) + (let ((str (string-map (match-lambda + (#\- #\_) + (chr chr)) + (symbol->string name)))) + (if (string-suffix? "?" str) + (substring str 0 (1- (string-length str))) + str))) +(define (serialize-field field-name val) + (format #t "~a = ~a\n" (uglify-field-name field-name) val)) +(define serialize-string serialize-field) +(define-maybe string) +(define (serialize-boolean field-name val) + (serialize-field field-name (if val "True" "False"))) +(define (serialize-number field-name val) + (serialize-field field-name (number->string val))) + + +(define-configuration slapd-configuration + (instance-name + (string "localhost") + "Sets the name of the instance. You can refer to this value in other +parameters of this INF file using the \"{instance_name}\" variable. Note that +this name cannot be changed after the installation!") + (user + (string "dirsrv") + "Sets the user name the ns-slapd process will use after the service +started.") + (group + (string "dirsrv") + "Sets the group name the ns-slapd process will use after the service +started.") + (port + (number 389) + "Sets the TCP port the instance uses for LDAP connections.") + (secure-port + (number 636) + "Sets the TCP port the instance uses for TLS-secured LDAP +connections (LDAPS).") + (root-dn + (string "cn=Directory Manager") + "Sets the Distinquished Name (DN) of the administrator account for this +instance.") + (root-password + (string "{invalid}YOU-SHOULD-CHANGE-THIS") + "Sets the password of the account specified in the \"root-dn\" parameter. +You can either set this parameter to a plain text password dscreate hashes +during the installation or to a \"{algorithm}hash\" string generated by the +pwdhash utility. Note that setting a plain text password can be a security +risk if unprivileged users can read this INF file!") + (self-sign-cert + (boolean #t) + "Sets whether the setup creates a self-signed certificate and enables TLS +encryption during the installation. This is not suitable for production, but +it enables administrators to use TLS right after the installation. You can +replace the self-signed certificate with a certificate issued by a certificate +authority.") + (self-sign-cert-valid-months + (number 24) + "Set the number of months the issued self-signed certificate will be valid.") + (backup-dir + (string "/var/lib/dirsrv/slapd-{instance_name}/bak") + "Set the backup directory of the instance.") + (cert-dir + (string "/etc/dirsrv/slapd-{instance_name}") + "Sets the directory of the instance's Network Security Services (NSS) +database.") + (config-dir + (string "/etc/dirsrv/slapd-{instance_name}") + "Sets the configuration directory of the instance.") + (db-dir + (string "/var/lib/dirsrv/slapd-{instance_name}/db") + "Sets the database directory of the instance.") + (initconfig-dir + (string "/etc/dirsrv/registry") + "Sets the directory of the operating system's rc configuration directory.") + (ldif-dir + (string "/var/lib/dirsrv/slapd-{instance_name}/ldif") + "Sets the LDIF export and import directory of the instance.") + (lock-dir + (string "/var/lock/dirsrv/slapd-{instance_name}") + "Sets the lock directory of the instance.") + (log-dir + (string "/var/log/dirsrv/slapd-{instance_name}") + "Sets the log directory of the instance.") + (run-dir + (string "/run/dirsrv") + "Sets PID directory of the instance.") + (schema-dir + (string "/etc/dirsrv/slapd-{instance_name}/schema") + "Sets schema directory of the instance.") + (tmp-dir + (string "/tmp") + "Sets the temporary directory of the instance.")) + +(define (serialize-slapd-configuration field-name val) + #t) + + +(define-configuration backend-userroot-configuration + (create-suffix-entry? + (boolean #false) + "Set this parameter to #true to create a generic root node entry for the +suffix in the database.") + (require-index? + (boolean #false) + "Set this parameter to #true to refuse unindexed searches in this +database.") + (sample-entries + (string "no") + "Set this parameter to \"yes\" to add latest version of sample entries to +this database. Or, use \"001003006\" to use the 1.3.6 version sample entries. +Use this option, for example, to create a database for testing purposes.") + (suffix + maybe-string + "Sets the root suffix stored in this database. If you do not set the +suffix attribute the install process will not create the backend/suffix. You +can also create multiple backends/suffixes by duplicating this section.")) + +(define (serialize-backend-userroot-configuration field-name val) + #t) + + +(define-configuration directory-server-instance-configuration + (package + (file-like 389-ds-base) + "The 389-ds-base package.") + ;; General settings + (config-version + (number 2) + "Sets the format version of the configuration file. To use the INF file +with dscreate, this parameter must be 2.") + (full-machine-name + (string "localhost") + "Sets the fully qualified hostname (FQDN) of this system.") + (selinux + (boolean #false) + "Enables SELinux detection and integration during the installation of this +instance. If set to #T, dscreate auto-detects whether SELinux is enabled.") + (strict-host-checking + (boolean #t) + "Sets whether the server verifies the forward and reverse record set in the +\"full-machine-name\" parameter. When installing this instance with GSSAPI +authentication behind a load balancer, set this parameter to #F.") + (systemd + (boolean #false) + "Enables systemd platform features. If set to #T, dscreate auto-detects +whether systemd is installed.") + (slapd + (slapd-configuration (slapd-configuration)) + "Configuration of slapd.") + (backend-userroot + (backend-userroot-configuration (backend-userroot-configuration)) + "Configuration of the userroot backend.")) + +(define (serialize-directory-server-instance-configuration x) + (format #t "[general]\n") + (serialize-configuration + x + (filter (lambda (field) + (not (member (configuration-field-name field) + '(package slapd backend-userroot)))) + directory-server-instance-configuration-fields)) + ;; Do not start instance while running dscreate. Do this later with + ;; shepherd. + (format #t "start = False\n") + (format #t "\n[slapd]\n") + (serialize-configuration + (directory-server-instance-configuration-slapd x) + slapd-configuration-fields) + (format #t "\n[backend-userroot]\n") + (serialize-configuration + (directory-server-instance-configuration-backend-userroot x) + backend-userroot-configuration-fields)) + +(define (directory-server-instance-config-file config) + "Return an LDAP directory server instance configuration file." + (let* ((slapd (directory-server-instance-configuration-slapd config)) + (instance-name (slapd-configuration-instance-name slapd))) + (plain-file + (string-append "dirsrv-" instance-name ".inf") + (with-output-to-string + (lambda () + (serialize-directory-server-instance-configuration config)))))) + +(define (directory-server-shepherd-service config) + "Return a shepherd service for an LDAP directory server with CONFIG." + (let* ((389-ds-base (directory-server-instance-configuration-package config)) + (slapd (directory-server-instance-configuration-slapd config)) + (instance-name + (slapd-configuration-instance-name slapd))) + (list (shepherd-service + (documentation "Run an 389 directory server instance.") + (provision (list (symbol-append 'directory-server- + (string->symbol instance-name)))) + (requirement '()) + (start #~(make-forkexec-constructor + (list #$(file-append 389-ds-base "/sbin/dsctl") + #$instance-name "start") + #:pid-file + (string-append + #$(slapd-configuration-run-dir slapd) + "/slapd-" #$instance-name ".pid"))) + (stop #~(make-kill-destructor)))))) + +(define (directory-server-accounts config) + (let* ((slapd (directory-server-instance-configuration-slapd config)) + (user (slapd-configuration-user slapd)) + (group (slapd-configuration-group slapd))) + (list (user-group + (name group) + (system? #true)) + (user-account + (name user) + (group group) + (system? #true) + (comment "System user for the 389 directory server") + (home-directory "/var/empty") + (shell (file-append shadow "/sbin/nologin")))))) + +(define (directory-server-activation config) + (let* ((389-ds-base (directory-server-instance-configuration-package config)) + (config-file (directory-server-instance-config-file config)) + (slapd (directory-server-instance-configuration-slapd config)) + (instance-name (slapd-configuration-instance-name slapd)) + (user (slapd-configuration-user slapd)) + (group (slapd-configuration-group slapd)) + (instantiate (lambda (proc) + (string-replace-substring + (proc slapd) "{instance_name}" instance-name))) + (config-dir (instantiate slapd-configuration-config-dir)) + (all-dirs (delete-duplicates + (map (compose dirname instantiate) + (list slapd-configuration-backup-dir + slapd-configuration-cert-dir + slapd-configuration-db-dir + slapd-configuration-ldif-dir + slapd-configuration-lock-dir + slapd-configuration-log-dir + slapd-configuration-run-dir + slapd-configuration-schema-dir))))) + ;; 389-ds-base doesn't let us update an instance configuration, so bail + ;; out when the configuration directory already exists. + #~(begin + (use-modules (ice-9 match) + (guix build utils)) + (if (file-exists? #$config-dir) + (format #t + "directory-server: Instance configuration for `~a' already exists. Skipping.\n" + #$instance-name) + (let ((owner (getpwnam #$user))) + (for-each (lambda (dir) + (mkdir-p dir) + (chown dir (passwd:uid owner) (passwd:gid owner))) + (sort '#$all-dirs string<=)) + (system* #$(file-append 389-ds-base "/sbin/dscreate") + "from-file" #$config-file)))))) + +(define directory-server-service-type + (service-type (name 'directory-server) + (extensions + (list (service-extension shepherd-root-service-type + directory-server-shepherd-service) + (service-extension activation-service-type + directory-server-activation) + (service-extension account-service-type + directory-server-accounts))) + (default-value (directory-server-instance-configuration)) + (description + "Run a directory server instance."))) + +(define (generate-directory-server-documentation) + (generate-documentation + `((directory-server-instance-configuration + ,directory-server-instance-configuration-fields + (slapd slapd-configuration) + (backend-userroot backend-userroot-configuration)) + (slapd-configuration ,slapd-configuration-fields) + (backend-userroot-configuration + ,backend-userroot-configuration-fields)) + 'directory-server-instance-configuration)) diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm index 2dc235a585..6f588679b1 100644 --- a/gnu/services/mail.scm +++ b/gnu/services/mail.scm @@ -1651,6 +1651,8 @@ by @code{dovecot-configuration}. @var{config} may also be created by opensmtpd-configuration? (package opensmtpd-configuration-package (default opensmtpd)) + (shepherd-requirement opensmtpd-configuration-shepherd-requirement + (default '())) ; list of symbols (config-file opensmtpd-configuration-config-file (default %default-opensmtpd-config-file)) (setgid-commands? opensmtpd-setgid-commands? (default #t))) @@ -1666,18 +1668,18 @@ action outbound relay match from local for any action outbound ")) -(define opensmtpd-shepherd-service - (match-lambda - (($ <opensmtpd-configuration> package config-file) - (list (shepherd-service - (provision '(smtpd)) - (requirement '(loopback)) - (documentation "Run the OpenSMTPD daemon.") - (start (let ((smtpd (file-append package "/sbin/smtpd"))) - #~(make-forkexec-constructor - (list #$smtpd "-f" #$config-file) - #:pid-file "/var/run/smtpd.pid"))) - (stop #~(make-kill-destructor))))))) +(define (opensmtpd-shepherd-service config) + (match-record config <opensmtpd-configuration> + (package config-file shepherd-requirement) + (list (shepherd-service + (provision '(smtpd)) + (requirement `(loopback ,@shepherd-requirement)) + (documentation "Run the OpenSMTPD daemon.") + (start (let ((smtpd (file-append package "/sbin/smtpd"))) + #~(make-forkexec-constructor + (list #$smtpd "-f" #$config-file) + #:pid-file "/var/run/smtpd.pid"))) + (stop #~(make-kill-destructor)))))) (define %opensmtpd-accounts (list (user-group @@ -1698,58 +1700,56 @@ match from local for any action outbound (home-directory "/var/empty") (shell (file-append shadow "/sbin/nologin"))))) -(define opensmtpd-activation - (match-lambda - (($ <opensmtpd-configuration> package config-file) - (let ((smtpd (file-append package "/sbin/smtpd"))) - #~(begin - (use-modules (guix build utils)) - ;; Create mbox and spool directories. - (mkdir-p "/var/mail") - (mkdir-p "/var/spool/smtpd") - (chmod "/var/spool/smtpd" #o711) - (mkdir-p "/var/spool/mail") - (chmod "/var/spool/mail" #o711)))))) +(define (opensmtpd-activation config) + (match-record config <opensmtpd-configuration> (package config-file) + (let ((smtpd (file-append package "/sbin/smtpd"))) + #~(begin + (use-modules (guix build utils)) + ;; Create mbox and spool directories. + (mkdir-p "/var/mail") + (mkdir-p "/var/spool/smtpd") + (chmod "/var/spool/smtpd" #o711) + (mkdir-p "/var/spool/mail") + (chmod "/var/spool/mail" #o711))))) (define %opensmtpd-pam-services (list (unix-pam-service "smtpd"))) -(define opensmtpd-set-gids - (match-lambda - (($ <opensmtpd-configuration> package config-file set-gids?) - (if set-gids? - (list - (setuid-program - (program (file-append package "/sbin/smtpctl")) - (setuid? #false) - (setgid? #true) - (group "smtpq")) - (setuid-program - (program (file-append package "/sbin/sendmail")) - (setuid? #false) - (setgid? #true) - (group "smtpq")) - (setuid-program - (program (file-append package "/sbin/send-mail")) - (setuid? #false) - (setgid? #true) - (group "smtpq")) - (setuid-program - (program (file-append package "/sbin/makemap")) - (setuid? #false) - (setgid? #true) - (group "smtpq")) - (setuid-program - (program (file-append package "/sbin/mailq")) - (setuid? #false) - (setgid? #true) - (group "smtpq")) - (setuid-program - (program (file-append package "/sbin/newaliases")) - (setuid? #false) - (setgid? #true) - (group "smtpq"))) - '())))) +(define (opensmtpd-set-gids config) + (match-record config <opensmtpd-configuration> (package config-file setgid-commands?) + (if setgid-commands? + (list + (setuid-program + (program (file-append package "/sbin/smtpctl")) + (setuid? #false) + (setgid? #true) + (group "smtpq")) + (setuid-program + (program (file-append package "/sbin/sendmail")) + (setuid? #false) + (setgid? #true) + (group "smtpq")) + (setuid-program + (program (file-append package "/sbin/send-mail")) + (setuid? #false) + (setgid? #true) + (group "smtpq")) + (setuid-program + (program (file-append package "/sbin/makemap")) + (setuid? #false) + (setgid? #true) + (group "smtpq")) + (setuid-program + (program (file-append package "/sbin/mailq")) + (setuid? #false) + (setgid? #true) + (group "smtpq")) + (setuid-program + (program (file-append package "/sbin/newaliases")) + (setuid? #false) + (setgid? #true) + (group "smtpq"))) + '()))) (define opensmtpd-service-type (service-type diff --git a/gnu/services/monitoring.scm b/gnu/services/monitoring.scm index 9a88351566..44e2e8886c 100644 --- a/gnu/services/monitoring.scm +++ b/gnu/services/monitoring.scm @@ -404,7 +404,10 @@ configuration file.")) /etc/ssl/certs" "SSL_CERT_FILE=/run/current-system/profile\ /etc/ssl/certs/ca-certificates.crt"))) - (stop #~(make-kill-destructor)))))) + (stop #~(make-kill-destructor + ;; The server needs to finish database work on shutdown + ;; which can take a while for big or busy databases. + #:grace-period 60)))))) (define zabbix-server-service-type (service-type diff --git a/gnu/services/nix.scm b/gnu/services/nix.scm index df04a85c22..82853253f6 100644 --- a/gnu/services/nix.scm +++ b/gnu/services/nix.scm @@ -54,6 +54,8 @@ (default nix)) (sandbox nix-configuration-sandbox ;boolean (default #t)) + (build-directory nix-configuration-build-directory ;string + (default "/tmp")) (build-sandbox-items nix-configuration-build-sandbox-items ;list of strings (default '())) (extra-config nix-configuration-extra-config ;list of strings @@ -106,7 +108,7 @@ GID." (define nix-service-etc (match-lambda - (($ <nix-configuration> package sandbox build-sandbox-items extra-config) + (($ <nix-configuration> package sandbox build-directory build-sandbox-items extra-config) (let ((ref-file (references-file package))) `(("nix/nix.conf" ,(computed-file @@ -130,7 +132,7 @@ GID." (define nix-shepherd-service ;; Return a <shepherd-service> for Nix. (match-lambda - (($ <nix-configuration> package _ _ _ extra-options) + (($ <nix-configuration> package _ build-directory _ _ extra-options) (list (shepherd-service (provision '(nix-daemon)) @@ -138,7 +140,10 @@ GID." (requirement '()) (start #~(make-forkexec-constructor (list (string-append #$package "/bin/nix-daemon") - #$@extra-options))) + #$@extra-options) + #:environment-variables + (list (string-append "TMPDIR=" #$build-directory) + "PATH=/run/current-system/profile/bin"))) (respawn? #f) (stop #~(make-kill-destructor))))))) diff --git a/gnu/services/security.scm b/gnu/services/security.scm index 15fae7a628..50111455fb 100644 --- a/gnu/services/security.scm +++ b/gnu/services/security.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2022 muradm <mail@muradm.net> +;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -351,28 +352,27 @@ provided as a list of file-like objects.")) (match-record config <fail2ban-configuration> (fail2ban run-directory) (let* ((fail2ban-server (file-append fail2ban "/bin/fail2ban-server")) + (fail2ban-client (file-append fail2ban "/bin/fail2ban-client")) (pid-file (in-vicinity run-directory "fail2ban.pid")) (socket-file (in-vicinity run-directory "fail2ban.sock")) (config-dir (file-append (config->fail2ban-etc-directory config) "/etc/fail2ban")) (fail2ban-action (lambda args - #~(lambda _ - (invoke #$fail2ban-server - "-c" #$config-dir - "-p" #$pid-file - "-s" #$socket-file - "-b" - #$@args))))) - - ;; TODO: Add 'reload' action. + #~(invoke #$fail2ban-client #$@args)))) + + ;; TODO: Add 'reload' action (see 'fail2ban.service.in' in the source). (list (shepherd-service (provision '(fail2ban)) (documentation "Run the fail2ban daemon.") (requirement '(user-processes)) - (modules `((ice-9 match) - ,@%default-modules)) - (start (fail2ban-action "start")) - (stop (fail2ban-action "stop"))))))) + (start #~(make-forkexec-constructor + (list #$fail2ban-server + "-c" #$config-dir "-s" #$socket-file + "-p" #$pid-file "-xf" "start") + #:pid-file #$pid-file)) + (stop #~(lambda (_) + #$(fail2ban-action "stop") + #f))))))) ;successfully stopped (define fail2ban-service-type (service-type (name 'fail2ban) diff --git a/gnu/services/vpn.scm b/gnu/services/vpn.scm index 7b3bb8903c..4103f89ecf 100644 --- a/gnu/services/vpn.scm +++ b/gnu/services/vpn.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2021 jgart <jgart@dismail.de> ;;; Copyright © 2021 Nathan Dehnel <ncdehnel@gmail.com> ;;; Copyright © 2022 Cameron V Chaparro <cameron@cameronchaparro.com> +;;; Copyright © 2022 Timo Wilken <guix@twilken.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -61,6 +62,7 @@ wireguard-peer-endpoint wireguard-peer-allowed-ips wireguard-peer-public-key + wireguard-peer-preshared-key wireguard-peer-keep-alive wireguard-configuration @@ -709,6 +711,8 @@ strongSwan."))) (endpoint wireguard-peer-endpoint (default #f)) ;string (public-key wireguard-peer-public-key) ;string + (preshared-key wireguard-peer-preshared-key + (default #f)) ;string (allowed-ips wireguard-peer-allowed-ips) ;list of strings (keep-alive wireguard-peer-keep-alive (default #f))) ;integer @@ -762,10 +766,18 @@ AllowedIPs = ~a (format #f "PersistentKeepalive = ~a\n" keep-alive) "\n")))) + (define (peers->preshared-keys peer keys) + (let ((public-key (wireguard-peer-public-key peer)) + (preshared-key (wireguard-peer-preshared-key peer))) + (if preshared-key + (cons* public-key preshared-key keys) + keys))) + (match-record config <wireguard-configuration> (wireguard interface addresses port private-key peers dns pre-up post-up pre-down post-down table) (let* ((config-file (string-append interface ".conf")) + (peer-keys (fold peers->preshared-keys (list) peers)) (peers (map peer->config peers)) (config (computed-file @@ -780,7 +792,7 @@ AllowedIPs = ~a Address = ~a ~a ~a -PostUp = ~a set %i private-key ~a +PostUp = ~a set %i private-key ~a~{ peer ~a preshared-key ~a~} ~a ~a ~a @@ -800,6 +812,7 @@ PostUp = ~a set %i private-key ~a "\n")) #$(file-append wireguard "/bin/wg") #$private-key + '#$peer-keys #$(if (null? post-up) "" (string-join diff --git a/gnu/system/examples/asus-c201.tmpl b/gnu/system/examples/asus-c201.tmpl index 6b6aa706fa..019111c167 100644 --- a/gnu/system/examples/asus-c201.tmpl +++ b/gnu/system/examples/asus-c201.tmpl @@ -1,3 +1,4 @@ +;; -*- mode: scheme; -*- ;; This is an operating system configuration template ;; for a "bare bones" setup for an ASUS C201PA. diff --git a/gnu/system/examples/bare-bones.tmpl b/gnu/system/examples/bare-bones.tmpl index 687d4c1573..45b4995574 100644 --- a/gnu/system/examples/bare-bones.tmpl +++ b/gnu/system/examples/bare-bones.tmpl @@ -1,3 +1,4 @@ +;; -*- mode: scheme; -*- ;; This is an operating system configuration template ;; for a "bare bones" setup, with no X11 display server. diff --git a/gnu/system/examples/beaglebone-black.tmpl b/gnu/system/examples/beaglebone-black.tmpl index 90dab62062..40d0a76a37 100644 --- a/gnu/system/examples/beaglebone-black.tmpl +++ b/gnu/system/examples/beaglebone-black.tmpl @@ -1,3 +1,4 @@ +;; -*- mode: scheme; -*- ;; This is an operating system configuration template ;; for a "bare bones" setup on BeagleBone Black board. diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl index 7055a8f92d..10d0e54fa7 100644 --- a/gnu/system/examples/desktop.tmpl +++ b/gnu/system/examples/desktop.tmpl @@ -1,3 +1,4 @@ +;; -*- mode: scheme; -*- ;; This is an operating system configuration template ;; for a "desktop" setup with GNOME and Xfce where the ;; root partition is encrypted with LUKS, and a swap file. diff --git a/gnu/system/examples/docker-image.tmpl b/gnu/system/examples/docker-image.tmpl index bdc6afa6f0..7123917af4 100644 --- a/gnu/system/examples/docker-image.tmpl +++ b/gnu/system/examples/docker-image.tmpl @@ -1,3 +1,4 @@ +;; -*- mode: scheme; -*- ;; This is an operating system configuration template for a "Docker image" ;; setup, so it has barely any services at all. diff --git a/gnu/system/examples/lightweight-desktop.tmpl b/gnu/system/examples/lightweight-desktop.tmpl index d4330ecc8e..4cb3c38311 100644 --- a/gnu/system/examples/lightweight-desktop.tmpl +++ b/gnu/system/examples/lightweight-desktop.tmpl @@ -1,3 +1,4 @@ +;; -*- mode: scheme; -*- ;; This is an operating system configuration template ;; for a "desktop" setup without full-blown desktop ;; environments. diff --git a/gnu/system/examples/raspberry-pi-64-nfs-root.tmpl b/gnu/system/examples/raspberry-pi-64-nfs-root.tmpl index 8c47c650f6..2203375270 100644 --- a/gnu/system/examples/raspberry-pi-64-nfs-root.tmpl +++ b/gnu/system/examples/raspberry-pi-64-nfs-root.tmpl @@ -1,3 +1,4 @@ +;; -*- mode: scheme; -*- ;; This is an operating-system configuration template of a ;; 64-bit minimal system for a Raspberry Pi with an NFS root file-system. diff --git a/gnu/system/examples/raspberry-pi-64.tmpl b/gnu/system/examples/raspberry-pi-64.tmpl index 3ad588207c..185d25c412 100644 --- a/gnu/system/examples/raspberry-pi-64.tmpl +++ b/gnu/system/examples/raspberry-pi-64.tmpl @@ -1,3 +1,4 @@ +;; -*- mode: scheme; -*- ;; This is an operating-system configuration template of a ;; 64-bit minimal system for a Raspberry Pi with local storage. diff --git a/gnu/system/examples/vm-image.tmpl b/gnu/system/examples/vm-image.tmpl index d46a27978c..343287eaf6 100644 --- a/gnu/system/examples/vm-image.tmpl +++ b/gnu/system/examples/vm-image.tmpl @@ -1,3 +1,4 @@ +;; -*- mode: scheme; -*- ;; This is an operating system configuration for a VM image. ;; Modify it as you see fit and instantiate the changes by running: ;; diff --git a/gnu/system/examples/yggdrasil.tmpl b/gnu/system/examples/yggdrasil.tmpl deleted file mode 100644 index 4d34f49b54..0000000000 --- a/gnu/system/examples/yggdrasil.tmpl +++ /dev/null @@ -1,60 +0,0 @@ -;; This is an operating system configuration template -;; for a "bare bones" setup, with no X11 display server. - -(use-modules (gnu)) -(use-service-modules networking ssh) -(use-package-modules admin curl networking screen) - -(operating-system - (host-name "ruby-guard-5545") - (timezone "Europe/Budapest") - (locale "en_US.utf8") - - ;; Boot in "legacy" BIOS mode, assuming /dev/sdX is the - ;; target hard disk, and "my-root" is the label of the target - ;; root file system. - (bootloader (bootloader-configuration - (bootloader grub-bootloader) - (targets '("/dev/sdX")))) - (file-systems (cons (file-system - (device (file-system-label "my-root")) - (mount-point "/") - (type "ext4")) - %base-file-systems)) - (users (cons (user-account - (name "alice") - (comment "Bob's sister") - (group "users") - ;; adding her to the yggdrasil group means she can use - ;; yggdrasilctl to modify the configuration - (supplementary-groups '("wheel" "yggdrasil"))) - %base-user-accounts)) - - ;; Globally-installed packages. - (packages (cons* screen curl %base-packages)) - - ;; Add services to the baseline: a DHCP client and - ;; an SSH server. - ;; If you add an /etc/yggdrasil-private.conf, you can log in to ssh - ;; using your Yggdrasil IPv6 address from another machine running Yggdrasil. - ;; Alternatively, the client can sit behind a router that has Yggdrasil. - ;; That file is specifically _not_ handled by Guix, because we don't want its - ;; contents to sit in the world-readable /gnu/store. - (services - (append - (list - (service dhcp-client-service-type) - (service yggdrasil-service-type - (yggdrasil-configuration - (log-to 'stdout) - (log-level 'debug) - (autoconf? #f) - (json-config - ;; choose a few from - ;; https://github.com/yggdrasil-network/public-peers - '((peers . #("tcp://1.2.3.4:1337")))) - (config-file #f))) - (service openssh-service-type - (openssh-configuration - (port-number 2222)))) - %base-services))) diff --git a/gnu/system/image.scm b/gnu/system/image.scm index f07a4a5217..afef79185f 100644 --- a/gnu/system/image.scm +++ b/gnu/system/image.scm @@ -138,6 +138,9 @@ parent image record." (size 'guess) (label root-label) (file-system "ext4") + ;; Disable the metadata_csum and 64bit features of ext4, for compatibility + ;; with U-Boot. + (file-system-options (list "-O" "^metadata_csum,^64bit")) (flags '(boot)) (initializer (gexp initialize-root-partition)))) @@ -972,9 +975,9 @@ image, depending on IMAGE format." (G_ "~a: unsupported image format") image-format))))))) -;; -;; Image detection. -;; +;;; +;;; Image type discovery. +;;; (define (image-modules) "Return the list of image modules." diff --git a/gnu/system/images/wsl2.scm b/gnu/system/images/wsl2.scm index 80c2e775b4..d9aaa1a271 100644 --- a/gnu/system/images/wsl2.scm +++ b/gnu/system/images/wsl2.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2022 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org> +;;; Copyright © 2022 dan <i@dan.games> ;;; ;;; This file is part of GNU Guix. ;;; @@ -75,7 +76,11 @@ USER." (let* ((pw (getpw #$user)) (shell (passwd:shell pw)) (sudo #+(file-append sudo "/bin/sudo")) - (args (cdr (command-line)))) + (args (cdr (command-line))) + (uid (passwd:uid pw)) + (gid (passwd:gid pw)) + (runtime-dir (string-append "/run/user/" + (number->string uid)))) ;; Save the value of $PATH set by WSL. Useful for finding ;; Windows binaries to run with WSL's binfmt interop. (setenv "WSLPATH" (getenv "PATH")) @@ -88,9 +93,15 @@ USER." MS_REMOUNT #:update-mtab? #f) + ;; Create XDG_RUNTIME_DIR for the login user. + (unless (file-exists? runtime-dir) + (mkdir runtime-dir) + (chown runtime-dir uid gid)) + (setenv "XDG_RUNTIME_DIR" runtime-dir) + ;; Start login shell as user. (apply execl sudo "sudo" - "--preserve-env=WSLPATH" + "--preserve-env=WSLPATH,XDG_RUNTIME_DIR" "-u" #$user "--" shell "-l" args)))))) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index f6f1923121..b3cf7a1bd8 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -284,13 +284,24 @@ templates under @file{/etc/configuration}."))) ;; appropriate options. The GUI installer needs it when the machine does not ;; support Kernel Mode Setting. Otherwise kmscon is missing /dev/fb0. (define (uvesafb-shepherd-service _) + (define modprobe + (program-file "modprobe-wrapper" + #~(begin + ;; Use a wrapper because shepherd 0.9.3 won't let us + ;; pass environment variables to the child process: + ;; <https://issues.guix.gnu.org/60106>. + (setenv "LINUX_MODULE_DIRECTORY" + "/run/booted-system/kernel/lib/modules") + (apply execl #$(file-append kmod "/bin/modprobe") + "modprobe" (cdr (command-line)))))) + (list (shepherd-service (documentation "Load the uvesafb kernel module if needed.") (provision '(maybe-uvesafb)) (requirement '(file-systems)) (start #~(lambda () (or (file-exists? "/dev/fb0") - (invoke #+(file-append kmod "/bin/modprobe") + (invoke #+modprobe "uvesafb" (string-append "v86d=" #$v86d "/sbin/v86d") "mode_option=1024x768")))) @@ -465,6 +476,8 @@ Access documentation at any time by pressing Alt-F2.\x1b[0m ;; A well-rounded set of packages for interacting with disks, partitions and ;; file systems, included with the Guix installation image. (list parted gptfdisk ddrescue + ;; Use the static LVM2 because it's already pulled in by the installer. + lvm2-static ;; We used to provide fdisk from GNU fdisk, but as of version 2.0.0a ;; it pulls Guile 1.8, which takes unreasonable space; furthermore ;; util-linux's fdisk is already available, in %base-packages-linux. diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index c2f7efa966..b7bccd72a4 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013-2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> @@ -234,8 +234,8 @@ with '-virtfs' options for the host file systems listed in SHARED-FS." #$@(map virtfs-option shared-fs) #$@(if rw-image? - #~((format #f "-drive file=~a,if=virtio" #$image)) - #~((format #f "-drive file=~a,if=virtio,cache=writeback,werror=report,readonly=on" + #~((format #f "-drive file=~a,format=qcow2,if=virtio" #$image)) + #~((format #f "-drive file=~a,format=raw,if=virtio,cache=writeback,werror=report,readonly=on" #$image))))) (define* (system-qemu-image/shared-store-script os @@ -303,17 +303,26 @@ useful when FULL-BOOT? is true." "-m " (number->string #$memory-size) #$@options)) + (define copy-image + ;; Script that "copies" BASE-IMAGE to /tmp. Make a copy-on-write image, + ;; which is much cheaper than actually copying it. + (program-file "copy-image" + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (unless (file-exists? #$rw-image) + (invoke #+(file-append qemu "/bin/qemu-img") + "create" "-b" #$base-image + "-F" "raw" "-f" "qcow2" #$rw-image)))))) + (define builder #~(call-with-output-file #$output (lambda (port) (format port "#!~a~%" #+(file-append bash "/bin/sh")) - (when (not #$volatile?) - (format port "~a~%" - #$(program-file "copy-image" - #~(unless (file-exists? #$rw-image) - (copy-file #$base-image #$rw-image) - (chmod #$rw-image #o640))))) + #$@(if volatile? + #~() + #~((format port "~a~%" #+copy-image))) (format port "exec ~a \"$@\"~%" (string-join #$qemu-exec " ")) (chmod port #o555)))) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index fe7ca35f60..844039f5f8 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2022 Marius Bakke <marius@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,10 +47,17 @@ #:use-module (guix monads) #:use-module (guix modules) #:use-module (guix packages) + #:use-module (guix utils) #:use-module ((srfi srfi-1) #:hide (partition)) #:use-module (ice-9 match) #:export (run-basic-test %test-basic-os + %test-linux-libre-5.15 + %test-linux-libre-5.10 + %test-linux-libre-5.4 + %test-linux-libre-4.19 + %test-linux-libre-4.14 + %test-linux-libre-4.9 %test-halt %test-root-unmount %test-cleanup @@ -533,15 +541,20 @@ info --version") (gexp->derivation name test)) -(define %test-basic-os +(define* (test-basic-os #:optional (kernel linux-libre)) (system-test - (name "basic") + (name (if (eq? kernel linux-libre) + "basic" + (string-append (package-name kernel) "-" + (version-major+minor (package-version kernel))))) (description "Instrument %SIMPLE-OS, run it in a VM, and run a series of basic -functionality tests.") +functionality tests, using the given KERNEL.") (value (let* ((os (marionette-operating-system - %simple-os + (operating-system + (inherit %simple-os) + (kernel kernel)) #:imported-modules '((gnu services herd) (guix combinators)))) (vm (virtual-machine os))) @@ -549,7 +562,30 @@ functionality tests.") ;; set of services as the OS produced by ;; 'system-qemu-image/shared-store-script'. (run-basic-test (virtualized-operating-system os '()) - #~(list #$vm)))))) + #~(list #$vm) + name))))) + +(define %test-basic-os + (test-basic-os)) + +;; Ensure the LTS kernels are up to snuff, too. +(define %test-linux-libre-5.15 + (test-basic-os linux-libre-5.15)) + +(define %test-linux-libre-5.10 + (test-basic-os linux-libre-5.10)) + +(define %test-linux-libre-5.4 + (test-basic-os linux-libre-5.4)) + +(define %test-linux-libre-4.19 + (test-basic-os linux-libre-4.19)) + +(define %test-linux-libre-4.14 + (test-basic-os linux-libre-4.14)) + +(define %test-linux-libre-4.9 + (test-basic-os linux-libre-4.9)) ;;; diff --git a/gnu/tests/docker.scm b/gnu/tests/docker.scm index 3e780d8a60..4267ff89a8 100644 --- a/gnu/tests/docker.scm +++ b/gnu/tests/docker.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org> -;;; Copyright © 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2019-2022 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -209,7 +209,7 @@ inside %DOCKER-OS." (virtual-machine (operating-system os) (volatile? #f) - (disk-image-size (* 5000 (expt 2 20))) + (disk-image-size (* 5500 (expt 2 20))) (memory-size 2048) (port-forwardings '()))) diff --git a/guix/build-system/ocaml.scm b/guix/build-system/ocaml.scm index 5ced9d243b..b08985cd4d 100644 --- a/guix/build-system/ocaml.scm +++ b/guix/build-system/ocaml.scm @@ -32,6 +32,8 @@ strip-ocaml4.07-variant package-with-ocaml4.09 strip-ocaml4.09-variant + package-with-ocaml5.0 + strip-ocaml5.0-variant default-findlib default-ocaml lower @@ -111,6 +113,18 @@ (let ((module (resolve-interface '(gnu packages ocaml)))) (module-ref module 'ocaml4.09-dune))) +(define (default-ocaml5.0) + (let ((ocaml (resolve-interface '(gnu packages ocaml)))) + (module-ref ocaml 'ocaml-5.0))) + +(define (default-ocaml5.0-findlib) + (let ((module (resolve-interface '(gnu packages ocaml)))) + (module-ref module 'ocaml5.0-findlib))) + +(define (default-ocaml5.0-dune) + (let ((module (resolve-interface '(gnu packages ocaml)))) + (module-ref module 'ocaml5.0-dune))) + (define* (package-with-explicit-ocaml ocaml findlib dune old-prefix new-prefix #:key variant-property) "Return a procedure of one argument, P. The procedure creates a package @@ -199,6 +213,19 @@ pre-defined variants." (inherit p) (properties (alist-delete 'ocaml4.09-variant (package-properties p))))) +(define package-with-ocaml5.0 + (package-with-explicit-ocaml (delay (default-ocaml5.0)) + (delay (default-ocaml5.0-findlib)) + (delay (default-ocaml5.0-dune)) + "ocaml-" "ocaml5.0-" + #:variant-property 'ocaml5.0-variant)) + +(define (strip-ocaml5.0-variant p) + "Remove the 'ocaml5.0-variant' property from P." + (package + (inherit p) + (properties (alist-delete 'ocaml5.0-variant (package-properties p))))) + (define* (lower name #:key source inputs native-inputs outputs system target (ocaml (default-ocaml)) diff --git a/guix/build/kconfig.scm b/guix/build/kconfig.scm index d0189f558f..0c9ef6baff 100644 --- a/guix/build/kconfig.scm +++ b/guix/build/kconfig.scm @@ -31,6 +31,16 @@ ;; ;; Code: +(define (pair->config-string pair) + "Convert a PAIR back to a config-string." + (let* ((key (first pair)) + (value (cdr pair))) + (if (string? key) + (if (string? value) + (string-append key "=" value) + (string-append "# " key " is not set")) + value))) + (define (config-string->pair config-string) "Parse a configuration string like \"CONFIG_EXAMPLE=m\" into a key-value pair. An error is thrown for invalid configurations. @@ -77,16 +87,6 @@ An error is thrown for invalid configurations. (cons #f config-string) ;keep valid comments (error "Invalid configuration" config-string))))) -(define (pair->config-string pair) - "Convert a PAIR back to a config-string." - (let* ((key (first pair)) - (value (cdr pair))) - (if (string? key) - (if (string? value) - (string-append key "=" value) - (string-append "# " key " is not set")) - value))) - (define (defconfig->alist defconfig) "Convert the content of a DEFCONFIG (or .config) file into an alist." (with-input-from-file defconfig @@ -102,10 +102,10 @@ An error is thrown for invalid configurations. ;; The search for duplicates is done. ;; Return the alist or throw an error on duplicates. (if (null? duplicates) - alist + (reverse alist) (error (format #f "duplicate configurations in ~a" defconfig) - duplicates)) + (reverse duplicates))) ;; Continue the search for duplicates. (loop (cdr keys) (if (member (first keys) (cdr keys)) @@ -133,10 +133,8 @@ DEFCONFIG: \"CONFIG_F\") Instead of a list, CONFIGS can be a string with one configuration per line." - (let* (;; Split the configs into a list of single configurations. Both a - ;; string and or a list of strings is supported, each with newlines - ;; to separate configurations. - (config-pairs (map config-string->pair + ;; Normalize CONFIGS to a list of configuration pairs. + (let* ((config-pairs (map config-string->pair (append-map (cut string-split <> #\newline) (if (string? configs) (list configs) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 2881a6be43..8e60e52ea0 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -37,6 +37,8 @@ #:autoload (guix download) (%mirrors) #:use-module (guix ftp-client) #:use-module (guix utils) + #:use-module (guix diagnostics) + #:use-module (guix i18n) #:use-module (guix memoization) #:use-module (guix records) #:use-module (guix upstream) @@ -64,7 +66,7 @@ release-file? releases - latest-release + import-release gnu-release-archive-types gnu-package-name->name+version @@ -331,14 +333,17 @@ name/directory pairs." files) result))))))) -(define* (latest-ftp-release project +(define* (import-ftp-release project #:key + (version #f) (server "ftp.gnu.org") (directory (string-append "/gnu/" project)) (file->signature (cut string-append <> ".sig"))) "Return an <upstream-source> for the latest release of PROJECT on SERVER -under DIRECTORY, or #f. Use FTP-OPEN and FTP-CLOSE to open (resp. close) FTP -connections; this can be useful to reuse connections. +under DIRECTORY, or #f. Optionally include a VERSION string to fetch a specific version. + +Use FTP-OPEN and FTP-CLOSE to open (resp. close) FTP connections; this can be +useful to reuse connections. FILE->SIGNATURE must be a procedure; it is passed a source file URL and must return the corresponding signature URL, or #f it signatures are unavailable." @@ -405,8 +410,12 @@ return the corresponding signature URL, or #f it signatures are unavailable." ;; Assume that SUBDIRS correspond to versions, and jump into the ;; one with the highest version number. - (let* ((release (reduce latest-release #f - (coalesce-sources releases))) + (let* ((release (if version + (find (lambda (upstream) + (string=? (upstream-source-version upstream) version)) + (coalesce-sources releases)) + (reduce latest-release #f + (coalesce-sources releases)))) (result (if (and result release) (latest-release release result) (or release result))) @@ -418,13 +427,16 @@ return the corresponding signature URL, or #f it signatures are unavailable." (ftp-close conn) result)))))) -(define* (latest-release package +(define* (import-release package #:key + (version #f) (server "ftp.gnu.org") (directory (string-append "/gnu/" package))) "Return the <upstream-source> for the latest version of PACKAGE or #f. -PACKAGE must be the canonical name of a GNU package." - (latest-ftp-release package +PACKAGE must be the canonical name of a GNU package. Optionally include a +VERSION string to fetch a specific version." + (import-ftp-release package + #:version version #:server server #:directory directory)) @@ -440,14 +452,15 @@ of EXP otherwise." (close-port port)) #f))) -(define (latest-release* package) - "Like 'latest-release', but (1) take a <package> object, and (2) ignore FTP +(define* (import-release* package #:key (version #f)) + "Like 'import-release', but (1) take a <package> object, and (2) ignore FTP errors that might occur when PACKAGE is not actually a GNU package, or not hosted on ftp.gnu.org, or not under that name (this is the case for \"emacs-auctex\", for instance.)" (let-values (((server directory) (ftp-server/directory package))) - (false-if-ftp-error (latest-release (package-upstream-name package) + (false-if-ftp-error (import-release (package-upstream-name package) + #:version version #:server server #:directory directory)))) @@ -472,14 +485,18 @@ hosted on ftp.gnu.org, or not under that name (this is the case for (_ links)))) -(define* (latest-html-release package +(define* (import-html-release package #:key + (version #f) (base-url "https://kernel.org/pub") (directory (string-append "/" package)) file->signature) "Return an <upstream-source> for the latest release of PACKAGE (a string) on -SERVER under DIRECTORY, or #f. BASE-URL should be the URL of an HTML page, -typically a directory listing as found on 'https://kernel.org/pub'. +SERVER under DIRECTORY, or #f. Optionally include a VERSION string to fetch a +specific version. + +BASE-URL should be the URL of an HTML page, typically a directory listing as +found on 'https://kernel.org/pub'. When FILE->SIGNATURE is omitted or #f, guess the detached signature file name, if any. Otherwise, FILE->SIGNATURE must be a procedure; it is passed a source @@ -552,13 +569,18 @@ are unavailable." (match candidates (() #f) ((first . _) - ;; Select the most recent release and return it. - (reduce (lambda (r1 r2) - (if (version>? (upstream-source-version r1) - (upstream-source-version r2)) - r1 r2)) - first - (coalesce-sources candidates)))))) + (if version + ;; find matching release version and return it + (find (lambda (upstream) + (string=? (upstream-source-version upstream) version)) + (coalesce-sources candidates)) + ;; Select the most recent release and return it. + (reduce (lambda (r1 r2) + (if (version>? (upstream-source-version r1) + (upstream-source-version r2)) + r1 r2)) + first + (coalesce-sources candidates))))))) ;;; @@ -590,9 +612,9 @@ are unavailable." (call-with-gzip-input-port port (compose string->lines get-string-all)))))) -(define (latest-gnu-release package) +(define* (import-gnu-release package #:key (version #f)) "Return the latest release of PACKAGE, a GNU package available via -ftp.gnu.org. +ftp.gnu.org. Optionally include a VERSION string to fetch a specific version. This method does not rely on FTP access at all; instead, it browses the file list available from %GNU-FILE-LIST-URI over HTTP(S)." @@ -602,42 +624,50 @@ list available from %GNU-FILE-LIST-URI over HTTP(S)." (define (better-tarball? tarball1 tarball2) (string=? (file-extension tarball1) archive-type)) + (define (find-latest-tarball-version tarballs) + (fold (lambda (file1 file2) + (if (and file2 + (version>? (tarball-sans-extension (basename file2)) + (tarball-sans-extension (basename file1)))) + file2 + file1)) + #f + tarballs)) + (let-values (((server directory) (ftp-server/directory package)) ((name) (package-upstream-name package))) (let* ((files (ftp.gnu.org-files)) + ;; select tarballs for this package (relevant (filter (lambda (file) (and (string-prefix? "/gnu" file) (string-contains file directory) (release-file? name (basename file)))) - files))) - (match (sort relevant (lambda (file1 file2) - (version>? (tarball-sans-extension - (basename file1)) - (tarball-sans-extension - (basename file2))))) - ((and tarballs (reference _ ...)) - (let* ((version (tarball->version reference)) - (tarballs (filter (lambda (file) - (string=? (tarball-sans-extension - (basename file)) - (tarball-sans-extension - (basename reference)))) - tarballs))) - (upstream-source - (package name) - (version version) - (urls (map (lambda (file) - (string-append "mirror://gnu/" - (string-drop file - (string-length "/gnu/")))) + files)) + ;; find latest version + (version (or version + (and (not (null? relevant)) + (tarball->version + (find-latest-tarball-version relevant))))) + ;; find tarballs matching this version + (tarballs (filter (lambda (file) + (string=? version (tarball->version file))) + relevant))) + (match tarballs + (() #f) + (_ + (upstream-source + (package name) + (version version) + (urls (map (lambda (file) + (string-append "mirror://gnu/" + (string-drop file + (string-length "/gnu/")))) ;; Sort so that the tarball with the same compression ;; format as currently used in PACKAGE comes first. (sort tarballs better-tarball?))) - (signature-urls (map (cut string-append <> ".sig") urls))))) - (() - #f))))) + (signature-urls (map (cut string-append <> ".sig") urls)))))))) (define %package-name-rx ;; Regexp for a package name, e.g., "foo-X.Y". Since TeXmacs uses @@ -691,8 +721,9 @@ GNOME packages; EMMS is included though, because its releases are on gnu.org." ;; HTML (unlike <https://download.savannah.nongnu.org/releases>.) "https://de.freedif.org/savannah/") -(define (latest-savannah-release package) - "Return the latest release of PACKAGE." +(define* (import-savannah-release package #:key (version #f)) + "Return the latest release of PACKAGE. Optionally include a VERSION string +to fetch a specific version." (let* ((uri (string->uri (match (origin-uri (package-source package)) ((? string? uri) uri) @@ -701,12 +732,14 @@ GNOME packages; EMMS is included though, because its releases are on gnu.org." (directory (dirname (uri-path uri)))) ;; Note: We use the default 'file->signature', which adds ".sig", ".asc", ;; or whichever detached signature naming scheme PACKAGE uses. - (latest-html-release package + (import-html-release package + #:version version #:base-url %savannah-base #:directory directory))) -(define (latest-sourceforge-release package) - "Return the latest release of PACKAGE." +(define* (latest-sourceforge-release package #:key (version #f)) + "Return the latest release of PACKAGE. Optionally include a VERSION string +to fetch a specific version." (define (uri-append uri extension) ;; Return URI with EXTENSION appended. (build-uri (uri-scheme uri) @@ -720,6 +753,12 @@ GNOME packages; EMMS is included though, because its releases are on gnu.org." ((200 302) #t) (else #f)))) + (when version + (error + (formatted-message + (G_ "Updating to a specific version is not yet implemented for ~a, sorry.") + "sourceforge"))) + (let* ((name (package-upstream-name package)) (base (string-append "https://sourceforge.net/projects/" name "/files")) @@ -758,21 +797,24 @@ GNOME packages; EMMS is included though, because its releases are on gnu.org." (when port (close-port port)))))) -(define (latest-xorg-release package) - "Return the latest release of PACKAGE." +(define* (import-xorg-release package #:key (version #f)) + "Return the latest release of PACKAGE. Optionally include a VERSION string +to fetch a specific version." (let ((uri (string->uri (origin-uri (package-source package))))) (false-if-ftp-error - (latest-ftp-release + (import-ftp-release (package-name package) + #:version version #:server "ftp.freedesktop.org" #:directory (string-append "/pub/xorg/" (dirname (uri-path uri))))))) -(define (latest-kernel.org-release package) - "Return the latest release of PACKAGE, the name of a kernel.org package." +(define* (import-kernel.org-release package #:key (version #f)) + "Return the latest release of PACKAGE, the name of a kernel.org package. +Optionally include a VERSION string to fetch a specific version." (define %kernel.org-base ;; This URL and sub-directories thereof are nginx-generated directory - ;; listings suitable for 'latest-html-release'. + ;; listings suitable for 'import-html-release'. "https://mirrors.edge.kernel.org/pub") (define (file->signature file) @@ -784,7 +826,8 @@ GNOME packages; EMMS is included though, because its releases are on gnu.org." ((uri mirrors ...) uri)))) (package (package-upstream-name package)) (directory (dirname (uri-path uri)))) - (latest-html-release package + (import-html-release package + #:version version #:base-url %kernel.org-base #:directory directory #:file->signature file->signature))) @@ -811,9 +854,10 @@ GNOME packages; EMMS is included though, because its releases are on gnu.org." (or (assoc-ref (package-properties package) 'release-monitoring-url) (http-url? package))))) -(define (latest-html-updatable-release package) +(define* (import-html-updatable-release package #:key (version #f)) "Return the latest release of PACKAGE. Do that by crawling the HTML page of -the directory containing its source tarball." +the directory containing its source tarball. Optionally include a VERSION +string to fetch a specific version." (let* ((uri (string->uri (match (origin-uri (package-source package)) ((? string? url) url) @@ -830,7 +874,8 @@ the directory containing its source tarball." (catch #t (lambda () (guard (c ((http-get-error? c) #f)) - (latest-html-release package + (import-html-release package + #:version version #:base-url base #:directory directory))) (lambda (key . args) @@ -848,7 +893,7 @@ the directory containing its source tarball." (name 'gnu) (description "Updater for GNU packages") (pred gnu-hosted?) - (latest latest-gnu-release))) + (import import-gnu-release))) (define %gnu-ftp-updater ;; This is for GNU packages taken from alternate locations, such as @@ -859,41 +904,41 @@ the directory containing its source tarball." (pred (lambda (package) (and (not (gnu-hosted? package)) (pure-gnu-package? package)))) - (latest latest-release*))) + (import import-release*))) (define %savannah-updater (upstream-updater (name 'savannah) (description "Updater for packages hosted on savannah.gnu.org") (pred (url-prefix-predicate "mirror://savannah/")) - (latest latest-savannah-release))) + (import import-savannah-release))) (define %sourceforge-updater (upstream-updater (name 'sourceforge) (description "Updater for packages hosted on sourceforge.net") (pred (url-prefix-predicate "mirror://sourceforge/")) - (latest latest-sourceforge-release))) + (import latest-sourceforge-release))) (define %xorg-updater (upstream-updater (name 'xorg) (description "Updater for X.org packages") (pred (url-prefix-predicate "mirror://xorg/")) - (latest latest-xorg-release))) + (import import-xorg-release))) (define %kernel.org-updater (upstream-updater (name 'kernel.org) (description "Updater for packages hosted on kernel.org") (pred (url-prefix-predicate "mirror://kernel.org/")) - (latest latest-kernel.org-release))) + (import import-kernel.org-release))) (define %generic-html-updater (upstream-updater (name 'generic-html) (description "Updater that crawls HTML pages.") (pred html-updatable-package?) - (latest latest-html-updatable-release))) + (import import-html-updatable-release))) ;;; gnu-maintenance.scm ends here diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm index 87abe9c2f1..8972b87080 100644 --- a/guix/import/cpan.scm +++ b/guix/import/cpan.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,6 +30,7 @@ #:use-module (srfi srfi-26) #:use-module (json) #:use-module (gcrypt hash) + #:use-module (guix diagnostics) #:use-module (guix store) #:use-module (guix utils) #:use-module (guix base32) @@ -39,26 +41,7 @@ #:use-module (guix packages) #:use-module (guix upstream) #:use-module (guix derivations) - #:export (cpan-dependency? - cpan-dependency-relationship - cpan-dependency-phase - cpan-dependency-module - cpan-dependency-version - - cpan-release? - cpan-release-license - cpan-release-author - cpan-release-version - cpan-release-module - cpan-release-distribution - cpan-release-download-url - cpan-release-abstract - cpan-release-home-page - cpan-release-dependencies - json->cpan-release - - cpan-fetch - cpan->guix-package + #:export (cpan->guix-package metacpan-url->mirror-url %cpan-updater @@ -324,8 +307,13 @@ in RELEASE, a <cpan-release> record." ")")))) (url-predicate (cut regexp-exec cpan-rx <>)))) -(define (latest-release package) +(define* (latest-release package #:key (version #f)) "Return an <upstream-source> for the latest release of PACKAGE." + (when version + (error + (formatted-message + (G_ "~a updater doesn't support updating to a specific version, sorry.") + "cpan"))) (match (cpan-fetch (package->upstream-name package)) (#f #f) (release @@ -358,4 +346,4 @@ in RELEASE, a <cpan-release> record." (name 'cpan) (description "Updater for CPAN packages") (pred cpan-package?) - (latest latest-release))) + (import latest-release))) diff --git a/guix/import/cran.scm b/guix/import/cran.scm index a02e746417..1ed3580315 100644 --- a/guix/import/cran.scm +++ b/guix/import/cran.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> +;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -410,7 +411,11 @@ empty list when the FIELD cannot be found." ("tcl/tk" "tcl") ("booktabs" "texlive-booktabs") ("freetype2" "freetype") + ("mariadb-devel" "mariadb") + ("mysql56_dev" "mariadb") ("sqlite3" "sqlite") + ("udunits-2" "udunits") + ("x11" "libx11") (_ sysname))) (define cran-guix-name (cut guix-name "r-" <>)) @@ -689,8 +694,13 @@ s-expression corresponding to that package, or #f on failure." (_ #f))) (_ #f))))) -(define (latest-cran-release pkg) +(define* (latest-cran-release pkg #:key (version #f)) "Return an <upstream-source> for the latest release of the package PKG." + (when version + (error + (formatted-message + (G_ "~a provides only the latest version of each package, sorry.") + "CRAN"))) (define upstream-name (package->upstream-name pkg)) @@ -709,20 +719,25 @@ s-expression corresponding to that package, or #f on failure." (changed-inputs pkg (description->package 'cran meta))))))) -(define (latest-bioconductor-release pkg) +(define* (latest-bioconductor-release pkg #:key (version #f)) "Return an <upstream-source> for the latest release of the package PKG." + (when version + (error + (formatted-message + (G_ "~a provides only the latest version of each package, sorry.") + "bioconductor.org"))) (define upstream-name (package->upstream-name pkg)) - (define version + (define latest-version (latest-bioconductor-package-version upstream-name)) (and version ;; Bioconductor does not provide signatures. (upstream-source (package (package-name pkg)) - (version version) + (version latest-version) (urls (bioconductor-uri upstream-name version)) (input-changes (changed-inputs @@ -772,13 +787,13 @@ s-expression corresponding to that package, or #f on failure." (name 'cran) (description "Updater for CRAN packages") (pred cran-package?) - (latest latest-cran-release))) + (import latest-cran-release))) (define %bioconductor-updater (upstream-updater (name 'bioconductor) (description "Updater for Bioconductor packages") (pred bioconductor-package?) - (latest latest-bioconductor-release))) + (import latest-bioconductor-release))) ;;; cran.scm ends here diff --git a/guix/import/crate.scm b/guix/import/crate.scm index c76d7e9c1a..339dbcd74c 100644 --- a/guix/import/crate.scm +++ b/guix/import/crate.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -354,11 +355,12 @@ look up the development dependencs for the given crate." (define crate-package? (url-predicate crate-url?)) -(define (latest-release package) - "Return an <upstream-source> for the latest release of PACKAGE." +(define* (import-release package #:key (version #f)) + "Return an <upstream-source> for the latest release of PACKAGE. Optionally +include a VERSION string to fetch a specific version." (let* ((crate-name (guix-package->crate-name package)) (crate (lookup-crate crate-name)) - (version (crate-latest-version crate)) + (version (or version (crate-latest-version crate))) (url (crate-uri crate-name version))) (upstream-source (package (package-name package)) @@ -370,5 +372,5 @@ look up the development dependencs for the given crate." (name 'crate) (description "Updater for crates.io packages") (pred crate-package?) - (latest latest-release))) + (import import-release))) diff --git a/guix/import/egg.scm b/guix/import/egg.scm index 0d6d72c465..10a40fe4f8 100644 --- a/guix/import/egg.scm +++ b/guix/import/egg.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> +;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -333,10 +334,11 @@ not work." ;;; Updater. ;;; -(define (latest-release package) - "Return an @code{<upstream-source>} for the latest release of PACKAGE." +(define* (import-release package #:key (version #f)) + "Return an @code{<upstream-source>} for the latest release of PACKAGE. +Optionally include a VERSION string to fetch a specific version." (let* ((egg-name (guix-package->egg-name package)) - (version (find-latest-version egg-name)) + (version (or version (find-latest-version egg-name))) (source-url (egg-uri egg-name version))) (upstream-source (package (package-name package)) @@ -348,6 +350,6 @@ not work." (name 'egg) (description "Updater for CHICKEN egg packages") (pred egg-package?) - (latest latest-release))) + (import import-release))) ;;; egg.scm ends here diff --git a/guix/import/elpa.scm b/guix/import/elpa.scm index 9399f45ebc..f9e9f2de53 100644 --- a/guix/import/elpa.scm +++ b/guix/import/elpa.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> +;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,6 +36,7 @@ #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) + #:use-module (guix diagnostics) #:use-module ((guix download) #:select (download-to-store)) #:use-module (guix import utils) #:use-module (guix http-client) @@ -400,11 +402,16 @@ type '<elpa-package>'." (string-drop (package-name package) 6) (package-name package)))) -(define (latest-release package) +(define* (latest-release package #:key (version #f)) "Return an <upstream-release> for the latest release of PACKAGE." (define name (guix-package->elpa-name package)) (define repo (elpa-repository package)) + (when version + (error + (formatted-message + (G_ "~a updater doesn't support updating to a specific version, sorry.") + "elpa"))) (match (elpa-package-info name repo) (#f ;; No info, perhaps because PACKAGE is not truly an ELPA package. @@ -444,7 +451,7 @@ type '<elpa-package>'." (name 'elpa) (description "Updater for ELPA packages") (pred package-from-elpa-repository?) - (latest latest-release))) + (import latest-release))) (define elpa-guix-name (cut guix-name "emacs-" <>)) diff --git a/guix/import/gem.scm b/guix/import/gem.scm index ad1343bff4..8ad0662628 100644 --- a/guix/import/gem.scm +++ b/guix/import/gem.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info> +;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -173,11 +174,11 @@ package on RubyGems." (define gem-package? (url-prefix-predicate "https://rubygems.org/downloads/")) -(define (latest-release package) +(define* (import-release package #:key (version #f)) "Return an <upstream-source> for the latest release of PACKAGE." (let* ((gem-name (guix-package->gem-name package)) (gem (rubygems-fetch gem-name)) - (version (gem-version gem)) + (version (or version (gem-version gem))) (url (rubygems-uri gem-name version))) (upstream-source (package (package-name package)) @@ -189,7 +190,7 @@ package on RubyGems." (name 'gem) (description "Updater for RubyGem packages") (pred gem-package?) - (latest latest-release))) + (import import-release))) (define* (gem-recursive-import package-name #:optional version) (recursive-import package-name diff --git a/guix/import/git.scm b/guix/import/git.scm index 4cf404677c..c15943bd7c 100644 --- a/guix/import/git.scm +++ b/guix/import/git.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be> +;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -146,9 +147,11 @@ version corresponding to the tag, and the cdr is the name of the tag." tags) entry<?)) -(define* (latest-tag url #:key prefix suffix delim pre-releases?) +(define* (latest-tag url + #:key prefix suffix delim pre-releases? (version #f)) "Return the latest version and corresponding tag available from the Git -repository at URL." +repository at URL. Optionally include a VERSION string to fetch a specific +version." (define (pre-release? tag) (any (cut regexp-exec <> tag) %pre-release-rx)) @@ -169,13 +172,22 @@ repository at URL." ((null? versions->tags) (git-no-valid-tags-error)) (else - (match (last versions->tags) - ((version . tag) - (values version tag))))))) - -(define (latest-git-tag-version package) + (let ((versions (if version + (filter (match-lambda + ((candidate-version . tag) + (string=? version candidate-version))) + versions->tags) + versions->tags))) + (if (null? versions) + (values #f #f) + (match (last versions) + ((version . tag) + (values version tag))))))))) + +(define* (latest-git-tag-version package #:key (version #f)) "Given a PACKAGE, return the latest version of it and the corresponding git -tag, or #false and #false if the latest version could not be determined." +tag, or #false and #false if the latest version could not be determined. +Optionally include a VERSION string to fetch a specific version." (guard (c ((or (git-no-tags-error? c) (git-no-valid-tags-error? c)) (warning (or (package-field-location package 'source) (package-location package)) @@ -193,6 +205,7 @@ tag, or #false and #false if the latest version could not be determined." (url (git-reference-url (origin-uri source))) (property (cute assq-ref (package-properties package) <>))) (latest-tag url + #:version version #:prefix (property 'release-tag-prefix) #:suffix (property 'release-tag-suffix) #:delim (property 'release-tag-version-delimiter) @@ -206,12 +219,14 @@ tag, or #false and #false if the latest version could not be determined." (git-reference? (origin-uri origin)))) (_ #f))) -(define (latest-git-release package) - "Return an <upstream-source> for the latest release of PACKAGE." +(define* (import-git-release package #:key (version #f)) + "Return an <upstream-source> for the latest release of PACKAGE. +Optionally include a VERSION string to fetch a specific version." (let* ((name (package-name package)) (old-version (package-version package)) (old-reference (origin-uri (package-source package))) - (new-version new-version-tag (latest-git-tag-version package))) + (new-version new-version-tag + (latest-git-tag-version package #:version version))) (and new-version new-version-tag (upstream-source (package name) @@ -226,4 +241,4 @@ tag, or #false and #false if the latest version could not be determined." (name 'generic-git) (description "Updater for packages hosted on Git repositories") (pred git-package?) - (latest latest-git-release))) + (import import-git-release))) diff --git a/guix/import/github.scm b/guix/import/github.scm index e1a1af7133..a1bda5ec43 100644 --- a/guix/import/github.scm +++ b/guix/import/github.scm @@ -249,11 +249,13 @@ Alternatively, you can wait until your rate limit is reset, or use the #:headers headers))) (x x))))))))) -(define (latest-released-version url package-name) +(define* (latest-released-version url package-name #:key (version #f)) "Return the newest released version and its tag given a string URL like 'https://github.com/arq5x/bedtools2/archive/v2.24.0.tar.gz' and the name of the package e.g. 'bedtools2'. Return #f (two values) if there are no -releases." +releases. + +Optionally include a VERSION string to fetch a specific version." (define (pre-release? x) (assoc-ref x "prerelease")) @@ -290,16 +292,25 @@ releases." (match (and=> (fetch-releases-or-tags url) vector->list) (#f (values #f #f)) (json - (match (sort (filter-map release->version - (match (remove pre-release? json) - (() json) ; keep everything - (releases releases))) - (lambda (x y) (version>? (car x) (car y)))) + (let ((releases (filter-map release->version + (match (remove pre-release? json) + (() json) ; keep everything + (releases releases))))) + (match (if version + ;; Find matching release version. + (filter (match-lambda + ((candidate-version . tag) + (string=? version candidate-version))) + releases) + ;; Sort releases descending. + (sort releases + (lambda (x y) (version>? (car x) (car y))))) (((latest-version . tag) . _) (values latest-version tag)) - (() (values #f #f)))))) + (() (values #f #f))))))) -(define (latest-release pkg) - "Return an <upstream-source> for the latest release of PKG." +(define* (import-release pkg #:key (version #f)) + "Return an <upstream-source> for the latest release of PKG. +Optionally include a VERSION string to fetch a specific version." (define (github-uri uri) (match uri ((? string? url) @@ -313,7 +324,8 @@ releases." (source-uri (github-uri original-uri)) (name (package-name pkg)) (newest-version version-tag - (latest-released-version source-uri name))) + (latest-released-version source-uri name + #:version version))) (if newest-version (upstream-source (package name) @@ -330,6 +342,6 @@ releases." (name 'github) (description "Updater for GitHub packages") (pred github-package?) - (latest latest-release))) + (import import-release))) diff --git a/guix/import/gnome.scm b/guix/import/gnome.scm index 9d8cd8ec76..3c5a96fdde 100644 --- a/guix/import/gnome.scm +++ b/guix/import/gnome.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2019, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -57,9 +58,10 @@ source for metadata." name "/" relative-url)))) '("tar.lz" "tar.xz" "tar.bz2" "tar.gz"))))))) -(define (latest-gnome-release package) +(define* (import-gnome-release package #:key (version #f)) "Return the latest release of PACKAGE, a GNOME package, or #f if it could -not be determined." +not be determined. Optionally include a VERSION string to fetch a specific +version." (define %not-dot (char-set-complement (char-set #\.))) @@ -88,6 +90,28 @@ https://discourse.gnome.org/t/new-gnome-versioning-scheme/4235" ;; Some packages like "NetworkManager" have camel-case names. (package-upstream-name package)) + (define (find-latest-release releases) + (fold (match-lambda* + (((key . value) result) + (cond ((release-version? key) + (match result + (#f + (cons key value)) + ((newest . _) + (if (version>? key newest) + (cons key value) + result)))) + (else + result)))) + #f + releases)) + + (define (find-version-release releases version) + (find (match-lambda + ((key . value) + (string=? key version))) + releases)) + (guard (c ((http-get-error? c) (if (= 404 (http-get-error-code c)) #f @@ -108,20 +132,9 @@ https://discourse.gnome.org/t/new-gnome-versioning-scheme/4235" (match json (#(4 releases _ ...) (let* ((releases (assoc-ref releases upstream-name)) - (latest (fold (match-lambda* - (((key . value) result) - (cond ((release-version? key) - (match result - (#f - (cons key value)) - ((newest . _) - (if (version>? key newest) - (cons key value) - result)))) - (else - result)))) - #f - releases))) + (latest (if version + (find-version-release releases version) + (find-latest-release releases)))) (and latest (jsonish->upstream-source upstream-name latest)))))))) @@ -130,4 +143,4 @@ https://discourse.gnome.org/t/new-gnome-versioning-scheme/4235" (name 'gnome) (description "Updater for GNOME packages") (pred (url-prefix-predicate "mirror://gnome/")) - (latest latest-gnome-release))) + (import import-gnome-release))) diff --git a/guix/import/gnu.scm b/guix/import/gnu.scm index 2b9b71feb0..139c32a545 100644 --- a/guix/import/gnu.scm +++ b/guix/import/gnu.scm @@ -117,7 +117,7 @@ details.)" (unless package (raise (formatted-message (G_ "no GNU package found for ~a") name))) - (match (latest-release name) + (match (import-release name) ((? upstream-source? release) (let ((version (upstream-source-version release))) (gnu-package->sexp package release #:key-download key-download))) diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm index 878a7d2f9c..3c2cd75db4 100644 --- a/guix/import/hackage.scm +++ b/guix/import/hackage.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com> +;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,10 +31,12 @@ #:use-module (srfi srfi-34) #:use-module (srfi srfi-26) #:use-module (srfi srfi-1) + #:use-module (guix diagnostics) #:use-module ((guix download) #:select (download-to-store url-fetch)) #:use-module ((guix utils) #:select (package-name->name+version canonical-newline-port)) #:use-module (guix http-client) + #:use-module (guix i18n) #:use-module (guix import utils) #:use-module (guix import cabal) #:use-module (guix store) @@ -359,8 +362,13 @@ respectively." (let ((hackage-rx (make-regexp "(https?://hackage.haskell.org|mirror://hackage/)"))) (url-predicate (cut regexp-exec hackage-rx <>)))) -(define (latest-release package) +(define* (latest-release package #:key (version #f)) "Return an <upstream-source> for the latest release of PACKAGE." + (when version + (error + (formatted-message + (G_ "~a updater doesn't support updating to a specific version, sorry.") + "hackage"))) (let* ((hackage-name (guix-package->hackage-name package)) (cabal-meta (hackage-fetch hackage-name))) (match cabal-meta @@ -381,6 +389,6 @@ respectively." (name 'hackage) (description "Updater for Hackage packages") (pred hackage-package?) - (latest latest-release))) + (import latest-release))) ;;; cabal.scm ends here diff --git a/guix/import/hexpm.scm b/guix/import/hexpm.scm index 2a7a9f3d82..8a009fd245 100644 --- a/guix/import/hexpm.scm +++ b/guix/import/hexpm.scm @@ -328,11 +328,12 @@ latest version of PACKAGE-NAME." ;;; Updater ;;; -(define (latest-release package) - "Return an <upstream-source> for the latest release of PACKAGE." +(define* (import-release package #:key (version #f)) + "Return an <upstream-source> for the latest release of PACKAGE. Optionally +include a VERSION string to fetch a specific version." (let* ((hexpm-name (guix-package->hexpm-name package)) (hexpm (lookup-hexpm hexpm-name)) - (version (hexpm-latest-release hexpm)) + (version (or version (hexpm-latest-release hexpm))) (url (hexpm-uri hexpm-name version))) (upstream-source (package (package-name package)) @@ -344,4 +345,4 @@ latest version of PACKAGE-NAME." (name 'hexpm) (description "Updater for hex.pm packages") (pred (url-prefix-predicate hexpm-package-url)) - (latest latest-release))) + (import import-release))) diff --git a/guix/import/kde.scm b/guix/import/kde.scm index 6873418d62..3566312eca 100644 --- a/guix/import/kde.scm +++ b/guix/import/kde.scm @@ -28,6 +28,7 @@ #:use-module (ice-9 match) #:use-module (ice-9 rdelim) #:use-module (ice-9 regex) + #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (web uri) @@ -149,42 +150,52 @@ Output: (string-join (map version->pattern directory-parts) "/") "/")))) -(define (latest-kde-release package) +(define* (import-kde-release package #:key (version #f)) "Return the latest release of PACKAGE, a KDE package, or #f if it could -not be determined." +not be determined. Optionally include a VERSION string to fetch a specific +version." + + (define (find-latest-archive-version archives) + (fold (lambda (file1 file2) + (if (and file2 + (version>? (tarball-sans-extension (basename file2)) + (tarball-sans-extension (basename file1)))) + file2 + file1)) + #f + archives)) + (let* ((uri (string->uri (origin-uri (package-source package)))) (path-rx (uri->kde-path-pattern uri)) (name (package-upstream-name package)) (files (download.kde.org-files)) + ;; select archives for this package (relevant (filter (lambda (file) (and (regexp-exec path-rx file) (release-file? name (basename file)))) - files))) - (match (sort relevant (lambda (file1 file2) - (version>? (tarball-sans-extension - (basename file1)) - (tarball-sans-extension - (basename file2))))) - ((and tarballs (reference _ ...)) - (let* ((version (tarball->version reference)) - (tarballs (filter (lambda (file) - (string=? (tarball-sans-extension - (basename file)) - (tarball-sans-extension - (basename reference)))) - tarballs))) - (upstream-source - (package name) - (version version) - (urls (map (lambda (file) - (string-append "mirror://kde/" file)) - tarballs))))) - (() - #f)))) + files)) + ;; Find latest version. + (version (or version + (and (not (null? relevant)) + (tarball->version (find-latest-archive-version relevant))))) + ;; Find archives matching this version. + (tarballs (filter (lambda (file) + (string=? version (tarball->version file))) + relevant))) + (match tarballs + (() #f) + (_ + (upstream-source + (package name) + (version version) + (urls (map (lambda (file) + (string-append "mirror://kde/" file)) + tarballs))))))) + (define %kde-updater (upstream-updater (name 'kde) (description "Updater for KDE packages") (pred (url-prefix-predicate "mirror://kde/")) - (latest latest-kde-release))) + (import import-kde-release))) diff --git a/guix/import/launchpad.scm b/guix/import/launchpad.scm index aeb447b0a5..01953ea69c 100644 --- a/guix/import/launchpad.scm +++ b/guix/import/launchpad.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2019, 2020 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> +;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -121,8 +122,9 @@ for example, 'linuxdcpp'. Return #f if there is no releases." (last (remove pre-release? (vector->list (assoc-ref json "entries")))) "version")))) -(define (latest-release pkg) - "Return an <upstream-source> for the latest release of PKG." +(define* (import-release pkg #:key (version #f)) + "Return an <upstream-source> for the latest release of PKG. Optionally +include a VERSION string to fetch a specific version." (define (origin-launchpad-uri origin) (match (origin-uri origin) ((? string? url) url) ; surely a Launchpad URL @@ -132,7 +134,7 @@ for example, 'linuxdcpp'. Return #f if there is no releases." (let* ((source-uri (origin-launchpad-uri (package-source pkg))) (name (package-name pkg)) (repository (launchpad-repository source-uri)) - (newest-version (latest-released-version repository))) + (newest-version (or version (latest-released-version repository)))) (if newest-version (upstream-source (package name) @@ -145,4 +147,4 @@ for example, 'linuxdcpp'. Return #f if there is no releases." (name 'launchpad) (description "Updater for Launchpad packages") (pred launchpad-package?) - (latest latest-release))) + (import import-release))) diff --git a/guix/import/minetest.scm b/guix/import/minetest.scm index 43cfb533e2..1f1cfc834d 100644 --- a/guix/import/minetest.scm +++ b/guix/import/minetest.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@telenet.be> +;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,7 @@ #:use-module (srfi srfi-2) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) + #:use-module (guix diagnostics) #:use-module ((guix packages) #:prefix package:) #:use-module (guix upstream) #:use-module (guix utils) @@ -486,7 +488,7 @@ list of AUTHOR/NAME strings." (and (string-prefix? "minetest-" (package:package-name pkg)) (assq-ref (package:package-properties pkg) 'upstream-name))) -(define (latest-minetest-release pkg) +(define* (latest-minetest-release pkg #:key (version #f)) "Return an <upstream-source> for the latest release of the package PKG, or #false if the latest release couldn't be determined." (define author/name @@ -494,6 +496,12 @@ or #false if the latest release couldn't be determined." (define contentdb-package (contentdb-fetch author/name)) ; TODO warn if #f? (define release (latest-release author/name)) (define source (package:package-source pkg)) + + (when version + (error + (formatted-message + (G_ "~a updater doesn't support updating to a specific version, sorry.") + "minetest"))) (and contentdb-package release (release-commit release) ; not always set ;; Only continue if both the old and new version number are both @@ -513,4 +521,4 @@ or #false if the latest release couldn't be determined." (name 'minetest) (description "Updater for Minetest packages on ContentDB") (pred minetest-package?) - (latest latest-minetest-release))) + (import latest-minetest-release))) diff --git a/guix/import/opam.scm b/guix/import/opam.scm index b4b5a6eaad..59dbb7cb8b 100644 --- a/guix/import/opam.scm +++ b/guix/import/opam.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2021, 2022 Alice Brenon <alice.brenon@ens-lyon.fr> +;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,6 +36,7 @@ #:use-module ((guix build utils) #:select (dump-port find-files mkdir-p)) #:use-module (guix build-system) #:use-module (guix build-system ocaml) + #:use-module (guix diagnostics) #:use-module (guix http-client) #:use-module (guix ui) #:use-module (guix packages) @@ -417,8 +419,13 @@ package in OPAM." (member (build-system-name (package-build-system package)) '(dune ocaml)) (not (string-prefix? "ocaml4" (package-name package))))) -(define (latest-release package) +(define* (latest-release package #:key (version #f)) "Return an <upstream-source> for the latest release of PACKAGE." + (when version + (error + (formatted-message + (G_ "~a updater doesn't support updating to a specific version, sorry.") + "opam"))) (and-let* ((opam-name (guix-package->opam-name package)) (opam-file (opam-fetch opam-name)) (version (assoc-ref opam-file "version")) @@ -435,4 +442,4 @@ package in OPAM." (name 'opam) (description "Updater for OPAM packages") (pred opam-package?) - (latest latest-release))) + (import latest-release))) diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index 4760fc3dae..0e5998b36e 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2021 Marius Bakke <marius@gnu.org> ;;; Copyright © 2022 Vivien Kraus <vivien@planete-kraus.eu> ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> +;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -556,15 +557,16 @@ source. To build it from source, refer to the upstream repository at (string-prefix? "https://pypi.org/packages" url) (string-prefix? "https://files.pythonhosted.org/packages" url))))) -(define (latest-release package) - "Return an <upstream-source> for the latest release of PACKAGE." +(define* (import-release package #:key (version #f)) + "Return an <upstream-source> for the latest release of PACKAGE. Optionally +include a VERSION string to fetch a specific version." (let* ((pypi-name (guix-package->pypi-name package)) (pypi-package (pypi-fetch pypi-name))) (and pypi-package (guard (c ((missing-source-error? c) #f)) (let* ((info (pypi-project-info pypi-package)) - (version (project-info-version info)) - (dist (source-release pypi-package)) + (version (or version (project-info-version info))) + (dist (source-release pypi-package version)) (url (distribution-url dist))) (upstream-source (urls (list url)) @@ -574,7 +576,7 @@ source. To build it from source, refer to the upstream repository at #f)) (input-changes (changed-inputs package - (pypi->guix-package pypi-name))) + (pypi->guix-package pypi-name #:version version))) (package (package-name package)) (version version))))))) @@ -583,4 +585,4 @@ source. To build it from source, refer to the upstream repository at (name 'pypi) (description "Updater for PyPI packages") (pred pypi-package?) - (latest latest-release))) + (import import-release))) diff --git a/guix/import/stackage.scm b/guix/import/stackage.scm index 49be982a7f..e54df95985 100644 --- a/guix/import/stackage.scm +++ b/guix/import/stackage.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2021 Xinglu Chem <public@yoctocell.xyz> ;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -139,9 +140,14 @@ included in the Stackage LTS release." (mlambda () (stackage-lts-packages (stackage-lts-info-fetch %default-lts-version))))) - (lambda* (pkg) + (lambda* (pkg #:key (version #f)) "Return an <upstream-source> for the latest Stackage LTS release of PACKAGE or #f if the package is not included in the Stackage LTS release." + (when version + (error + (formatted-message + (G_ "~a updater doesn't support updating to a specific version, sorry.") + "stackage"))) (let* ((hackage-name (guix-package->hackage-name pkg)) (version (lts-package-version (packages) hackage-name)) (name-version (hackage-name-version hackage-name version))) @@ -175,6 +181,6 @@ PACKAGE or #f if the package is not included in the Stackage LTS release." (name 'stackage) (description "Updater for Stackage LTS packages") (pred stackage-lts-package?) - (latest latest-lts-release))) + (import latest-lts-release))) ;;; stackage.scm ends here diff --git a/guix/packages.scm b/guix/packages.scm index 8f119d9fa7..041a872f9d 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be> +;;; Copyright © 2022 jgart <jgart@dismail.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -89,6 +90,7 @@ this-package package-name package-upstream-name + package-upstream-name* package-version package-full-name package-source @@ -609,7 +611,7 @@ Texinfo. Otherwise, return the string." (sanitize validate-texinfo)) ; one or two paragraphs (license package-license ; (list of) <license> (sanitize validate-license)) - (home-page package-home-page) + (home-page package-home-page) ; string (supported-systems package-supported-systems ; list of strings (default %supported-systems)) @@ -691,6 +693,38 @@ it has in Guix." (or (assq-ref (package-properties package) 'upstream-name) (package-name package))) +(define (package-upstream-name* package) + "Return the upstream name of PACKAGE, accounting for commonly-used +package name prefixes in addition to the @code{upstream-name} property." + (let ((namespaces (list "cl-" + "ecl-" + "emacs-" + "ghc-" + "go-" + "guile-" + "java-" + "julia-" + "lua-" + "minetest-" + "node-" + "ocaml-" + "perl-" + "python-" + "r-" + "ruby-" + "rust-" + "sbcl-" + "texlive-")) + (name (package-name package))) + (or (assq-ref (package-properties package) 'upstream-name) + (let loop ((prefixes namespaces)) + (match prefixes + (() name) + ((prefix rest ...) + (if (string-prefix? prefix name) + (substring name (string-length prefix)) + (loop rest)))))))) + (define (hidden-package p) "Return a \"hidden\" version of P--i.e., one that 'fold-packages' and thus, user interfaces, ignores." diff --git a/guix/pki.scm b/guix/pki.scm index 6326e065e9..c5b2fb9634 100644 --- a/guix/pki.scm +++ b/guix/pki.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2016, 2022 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +21,7 @@ #:use-module (gcrypt pk-crypto) #:use-module ((guix utils) #:select (with-atomic-file-output)) #:use-module ((guix build utils) #:select (mkdir-p)) + #:autoload (srfi srfi-1) (delete-duplicates) #:use-module (ice-9 match) #:use-module (ice-9 rdelim) #:use-module (ice-9 binary-ports) @@ -61,9 +62,10 @@ element in KEYS must be a canonical sexp with type 'public-key'." ;; want to have name certificates and to use subject names instead of ;; complete keys. `(acl ,@(map (lambda (key) - `(entry ,(canonical-sexp->sexp key) + `(entry ,key (tag (guix import)))) - keys))) + (delete-duplicates + (map canonical-sexp->sexp keys))))) (define %acl-file (string-append %config-directory "/acl")) diff --git a/guix/read-print.scm b/guix/read-print.scm index a6aaa149e4..8a720ef2ef 100644 --- a/guix/read-print.scm +++ b/guix/read-print.scm @@ -288,11 +288,13 @@ expressions and blanks that were read." ('define-gexp-compiler 2) ('define-record-type 2) ('define-record-type* 4) + ('define-configuration 2) ('let 2) ('let* 2) ('letrec 2) ('letrec* 2) ('match 2) + ('match-record 3) ('when 2) ('unless 2) ('package 1) diff --git a/guix/records.scm b/guix/records.scm index 13463647c8..1f097c7108 100644 --- a/guix/records.scm +++ b/guix/records.scm @@ -592,13 +592,16 @@ found." (define-syntax match-record-inner (lambda (s) (syntax-case s () - ((_ record type (field rest ...) body ...) - #`(let-syntax ((field-offset (syntax-rules () + ((_ record type ((field variable) rest ...) body ...) + #'(let-syntax ((field-offset (syntax-rules () ((_ f) (lookup-field field 0 f))))) (let* ((offset (type map-fields field-offset)) - (field (struct-ref record offset))) + (variable (struct-ref record offset))) (match-record-inner record type (rest ...) body ...)))) + ((_ record type (field rest ...) body ...) + ;; Redirect to the canonical form above. + #'(match-record-inner record type ((field field) rest ...) body ...)) ((_ record type () body ...) #'(begin body ...))))) diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 14329751f8..e0b94ce48d 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> +;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,6 +47,7 @@ #:use-module (ice-9 vlist) #:use-module (ice-9 format) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) #:use-module (srfi srfi-26) #:use-module (srfi srfi-37) #:use-module (srfi srfi-71) @@ -181,7 +183,7 @@ specified with `--select'.\n")) (newline) (show-bug-report-information)) -(define (options->packages opts) +(define (options->update-specs opts) "Return the list of packages requested by OPTS, honoring options like '--recursive'." (define core-package? @@ -224,7 +226,7 @@ update would trigger a complete rebuild." (('argument . spec) ;; Take either the specified version or the ;; latest one. - (specification->package spec)) + (update-specification->update-spec spec)) (('expression . exp) (read/eval-package-expression exp)) (_ #f)) @@ -256,6 +258,25 @@ update would trigger a complete rebuild." ;;; +;;; Utilities. +;;; + +(define-record-type <update-spec> + (update-spec package version) + update? + (package update-spec-package) + (version update-spec-version)) + +(define (update-specification->update-spec spec) + "Given SPEC, a package name like \"guile@2.0=2.0.8\", return a <update> +record with two fields: the package to upgrade, and the target version." + (match (string-rindex spec #\=) + (#f (update-spec (specification->package spec) #f)) + (idx (update-spec (specification->package (substring spec 0 idx)) + (substring spec (1+ idx)))))) + + +;;; ;;; Updates. ;;; @@ -298,7 +319,7 @@ update would trigger a complete rebuild." (G_ "no updater for ~a~%") (package-name package))) -(define* (update-package store package updaters +(define* (update-package store package version updaters #:key (key-download 'interactive) warn?) "Update the source file that defines PACKAGE with the new version. KEY-DOWNLOAD specifies a download policy for missing OpenPGP keys; allowed @@ -307,7 +328,7 @@ warn about packages that have no matching updater." (if (lookup-updater package updaters) (let ((version output source (package-update store package updaters - #:key-download key-download)) + #:key-download key-download #:version version)) (loc (or (package-field-location package 'version) (package-location package)))) (when version @@ -540,12 +561,12 @@ all are dependent packages: ~{~a~^ ~}~%") (with-error-handling (with-store store (run-with-store store - (mlet %store-monad ((packages (options->packages opts))) + (mlet %store-monad ((update-specs (options->update-specs opts))) (cond (list-dependent? - (list-dependents packages)) + (list-dependents (map update-spec-package update-specs))) (list-transitive? - (list-transitive packages)) + (list-transitive (map update-spec-package update-specs))) (update? (parameterize ((%openpgp-key-server (or (assoc-ref opts 'key-server) @@ -558,13 +579,17 @@ all are dependent packages: ~{~a~^ ~}~%") (string-append (config-directory) "/upstream/trustedkeys.kbx")))) (for-each - (cut update-package store <> updaters - #:key-download key-download - #:warn? warn?) - packages) + (lambda (update) + (update-package store + (update-spec-package update) + (update-spec-version update) + updaters + #:key-download key-download + #:warn? warn?)) + update-specs) (return #t))) (else (for-each (cut check-for-package-update <> updaters #:warn? warn?) - packages) + (map update-spec-package update-specs)) (return #t))))))))) diff --git a/guix/scripts/shell.scm b/guix/scripts/shell.scm index 2fc1dc942a..64b5c2e8e9 100644 --- a/guix/scripts/shell.scm +++ b/guix/scripts/shell.scm @@ -20,7 +20,8 @@ #:use-module (guix ui) #:use-module ((guix diagnostics) #:select (location)) #:use-module (guix scripts environment) - #:autoload (guix scripts build) (show-build-options-help) + #:autoload (guix scripts build) (show-build-options-help + show-native-build-options-help) #:autoload (guix transformations) (options->transformation transformation-option-key? show-transformation-options-help) @@ -76,6 +77,8 @@ interactive shell in that environment.\n")) (newline) (show-build-options-help) (newline) + (show-native-build-options-help) + (newline) (show-transformation-options-help) (newline) (display (G_ " diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 6482318168..6fd915cb5e 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -842,7 +842,10 @@ static checks." (check-mapped-devices os) (when (zero? (getuid)) (check-file-system-availability (operating-system-file-systems os)) - (check-initrd-modules os))) + (unless (%current-target-system) + ;; Skip the check if the user is making use of --target, as it cannot + ;; be checked against the running kernel. + (check-initrd-modules os)))) (mlet* %store-monad ((sys (system-derivation-for-action image action diff --git a/guix/store/deduplication.scm b/guix/store/deduplication.scm index ab982e3b3d..acb6ffcc4a 100644 --- a/guix/store/deduplication.scm +++ b/guix/store/deduplication.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Caleb Ristvedt <caleb.ristvedt@cune.org> -;;; Copyright © 2018-2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018-2022 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -262,7 +262,10 @@ down the road." (deduplicate file (dump-and-compute-hash) #:store store) (call-with-output-file file (lambda (output) - (dump-port input output size))))) + (if (file-port? input) + (sendfile output input size 0) + (dump-port input output size + #:buffer-size %deduplication-minimum-size)))))) (define* (copy-file/deduplicate source target #:key (store (%store-directory))) diff --git a/guix/ui.scm b/guix/ui.scm index 45eccb7335..3bca3b1e40 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -1668,6 +1668,7 @@ score, the more relevant OBJ is to REGEXPS." ;; Metrics used to compute the "relevance score" of a package against a set ;; of regexps. `((,package-name . 4) + (,package-upstream-name* . 2) ;; Match against uncommon outputs. (,(lambda (package) diff --git a/guix/upstream.scm b/guix/upstream.scm index 32736940aa..f3ab9ab78b 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2019, 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@telenet.be> +;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -66,7 +67,7 @@ upstream-updater-name upstream-updater-description upstream-updater-predicate - upstream-updater-latest + upstream-updater-import upstream-input-change? upstream-input-change-name @@ -241,7 +242,7 @@ correspond to the same version." (name upstream-updater-name) (description upstream-updater-description) (pred upstream-updater-predicate) - (latest upstream-updater-latest)) + (import upstream-updater-import)) (define (importer-modules) "Return the list of importer modules." @@ -272,22 +273,23 @@ correspond to the same version." "Return an updater among UPDATERS that matches PACKAGE, or #f if none of them matches." (find (match-lambda - (($ <upstream-updater> name description pred latest) + (($ <upstream-updater> name description pred import) (pred package))) updaters)) (define* (package-latest-release package #:optional - (updaters (force %updaters))) + (updaters (force %updaters)) + #:key (version #f)) "Return an upstream source to update PACKAGE, a <package> object, or #f if none of UPDATERS matches PACKAGE. When several updaters match PACKAGE, try them until one of them returns an upstream source. It is the caller's responsibility to ensure that the returned source is newer than the current one." (any (match-lambda - (($ <upstream-updater> name description pred latest) + (($ <upstream-updater> name description pred import) (and (pred package) - (latest package)))) + (import package #:version version)))) updaters)) (define* (package-latest-release* package @@ -494,13 +496,13 @@ SOURCE, an <upstream-source>." (define* (package-update store package #:optional (updaters (force %updaters)) - #:key (key-download 'interactive)) + #:key (key-download 'interactive) (version #f)) "Return the new version, the file name of the new version tarball, and input changes for PACKAGE; return #f (three values) when PACKAGE is up-to-date; raise an error when the updater could not determine available releases. KEY-DOWNLOAD specifies a download policy for missing OpenPGP keys; allowed values: 'always', 'never', and 'interactive' (default)." - (match (package-latest-release package updaters) + (match (package-latest-release package updaters #:version version) ((? upstream-source? source) (if (version>? (upstream-source-version source) (package-version package)) @@ -524,8 +526,11 @@ this method: ~s") (values #f #f #f))) (#f ;; Warn rather than abort so that other updates can still take place. - (warning (G_ "updater failed to determine available releases for ~a~%") - (package-name package)) + (if version + (warning (G_ "updater failed to find release ~a@~a~%") + (package-name package) version) + (warning (G_ "updater failed to determine available releases for ~a~%") + (package-name package))) (values #f #f #f)))) (define* (update-package-source package source hash) diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index 10a6093bd5..c5383bc756 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -2576,7 +2576,7 @@ Path DerivationGoal::openLogFile() closeOnExec(fd); if (!(fLogFile = fdopen(fd.borrow(), "w"))) - throw SysError(format("opening file `%1%'") % logFileName); + throw SysError(format("opening log file `%1%'") % logFileName); int err; if (!(bzLogFile = BZ2_bzWriteOpen(&err, fLogFile, 9, 0, 0))) diff --git a/nix/libutil/hash.cc b/nix/libutil/hash.cc index 7853acdd49..9ba604eb85 100644 --- a/nix/libutil/hash.cc +++ b/nix/libutil/hash.cc @@ -244,7 +244,7 @@ Hash hashFile(HashType ht, const Path & path) start(ht, ctx); AutoCloseFD fd = open(path.c_str(), O_RDONLY); - if (fd == -1) throw SysError(format("opening file `%1%'") % path); + if (fd == -1) throw SysError(format("computing hash of file `%1%'") % path); unsigned char buf[8192]; ssize_t n; diff --git a/nix/libutil/util.cc b/nix/libutil/util.cc index 4d3780e3c2..82eac72120 100644 --- a/nix/libutil/util.cc +++ b/nix/libutil/util.cc @@ -264,7 +264,7 @@ string readFile(const Path & path, bool drain) { AutoCloseFD fd = open(path.c_str(), O_RDONLY); if (fd == -1) - throw SysError(format("opening file `%1%'") % path); + throw SysError(format("reading file `%1%'") % path); return drain ? drainFD(fd) : readFile(fd); } @@ -273,7 +273,7 @@ void writeFile(const Path & path, const string & s) { AutoCloseFD fd = open(path.c_str(), O_WRONLY | O_TRUNC | O_CREAT, 0666); if (fd == -1) - throw SysError(format("opening file '%1%'") % path); + throw SysError(format("writing file '%1%'") % path); writeFull(fd, s); } diff --git a/po/doc/guix-manual.de.po b/po/doc/guix-manual.de.po index e8b2de6943..b33bce32e9 100644 --- a/po/doc/guix-manual.de.po +++ b/po/doc/guix-manual.de.po @@ -13,7 +13,7 @@ msgstr "" "Project-Id-Version: guix-manual 1.2.0-pre3\n" "Report-Msgid-Bugs-To: bug-guix@gnu.org\n" "POT-Creation-Date: 2022-12-02 03:18+0000\n" -"PO-Revision-Date: 2022-12-03 17:33+0000\n" +"PO-Revision-Date: 2022-12-15 00:11+0100\n" "Last-Translator: Florian Pelz <pelzflorian@pelzflorian.de>\n" "Language-Team: German <https://translate.fedoraproject.org/projects/guix/documentation-manual/de/>\n" "Language: de\n" @@ -73899,7 +73899,7 @@ msgstr "-drive if=none,file=/tmp/qemu-image,id=myhd" #. type: table #: guix-git/doc/guix.texi:39296 -msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive." +msgid "Use our QCOW image, the @file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as the backing store of the ``myhd'' drive." msgstr "Unser QCOW-Abbild in der Datei @file{/tmp/qemu-image} soll als Inhalt des „myhd“-Laufwerks herhalten." #. type: Plain text diff --git a/po/doc/guix-manual.es.po b/po/doc/guix-manual.es.po index ec048f03e3..a7441941b9 100644 --- a/po/doc/guix-manual.es.po +++ b/po/doc/guix-manual.es.po @@ -55,7 +55,7 @@ msgstr "" "Project-Id-Version: guix-manual 1.2.0-pre3\n" "Report-Msgid-Bugs-To: bug-guix@gnu.org\n" "POT-Creation-Date: 2022-12-02 03:18+0000\n" -"PO-Revision-Date: 2022-11-04 11:27+0000\n" +"PO-Revision-Date: 2022-12-15 00:11+0100\n" "Last-Translator: Julien Lepiller <fedora-account@lepiller.eu>\n" "Language-Team: Spanish <https://translate.fedoraproject.org/projects/guix/documentation-manual/es/>\n" "Language: es\n" @@ -77483,7 +77483,7 @@ msgstr "-drive if=none,file=/tmp/imagen-qemu,id=midisco" #. type: table #: guix-git/doc/guix.texi:39296 -msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive." +msgid "Use our QCOW image, the @file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as the backing store of the ``myhd'' drive." msgstr "Usa nuestra imagen QCOW, el archivo @file{/tmp/imagen-qemu}, como almacenamiento físico para la unidad ``midisco''." #. type: Plain text diff --git a/po/doc/guix-manual.fr.po b/po/doc/guix-manual.fr.po index bec07beebf..aed8e16128 100644 --- a/po/doc/guix-manual.fr.po +++ b/po/doc/guix-manual.fr.po @@ -46,7 +46,7 @@ msgstr "" "Project-Id-Version: guix-manual 1.2.0-pre3\n" "Report-Msgid-Bugs-To: bug-guix@gnu.org\n" "POT-Creation-Date: 2022-12-02 03:18+0000\n" -"PO-Revision-Date: 2022-12-03 17:33+0000\n" +"PO-Revision-Date: 2022-12-15 00:11+0100\n" "Last-Translator: Julien Lepiller <fedora-account@lepiller.eu>\n" "Language-Team: French <https://translate.fedoraproject.org/projects/guix/documentation-manual/fr/>\n" "Language: fr\n" @@ -74054,7 +74054,7 @@ msgstr "-drive if=none,file=/tmp/qemu-image,id=myhd" #. type: table #: guix-git/doc/guix.texi:39296 -msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive." +msgid "Use our QCOW image, the @file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as the backing store of the ``myhd'' drive." msgstr "Utilise notre image QCOW, le fichier @file{/tmp/qemu-image}, comme stockage pour le lecteur « myhd »." #. type: Plain text diff --git a/po/doc/guix-manual.pt_BR.po b/po/doc/guix-manual.pt_BR.po index bfe3e98eb1..0372dc2c13 100644 --- a/po/doc/guix-manual.pt_BR.po +++ b/po/doc/guix-manual.pt_BR.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: guix manual checkout\n" "Report-Msgid-Bugs-To: bug-guix@gnu.org\n" "POT-Creation-Date: 2022-12-02 03:18+0000\n" -"PO-Revision-Date: 2022-01-25 15:16+0000\n" +"PO-Revision-Date: 2022-12-15 00:11+0100\n" "Last-Translator: Fábio Rodrigues Ribeiro <farribeiro@gmail.com>\n" "Language-Team: Portuguese (Brazil) <https://translate.fedoraproject.org/projects/guix/documentation-manual/pt_BR/>\n" "Language: pt_BR\n" @@ -71324,7 +71324,7 @@ msgstr "" #. type: table #: guix-git/doc/guix.texi:39296 -msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive." +msgid "Use our QCOW image, the @file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as the backing store of the ``myhd'' drive." msgstr "" #. type: Plain text diff --git a/po/doc/guix-manual.ru.po b/po/doc/guix-manual.ru.po index 2efbce94c1..9738d516c6 100644 --- a/po/doc/guix-manual.ru.po +++ b/po/doc/guix-manual.ru.po @@ -16,7 +16,7 @@ msgstr "" "Project-Id-Version: guix-manual 1.2.0-pre2\n" "Report-Msgid-Bugs-To: bug-guix@gnu.org\n" "POT-Creation-Date: 2022-12-02 03:18+0000\n" -"PO-Revision-Date: 2021-12-11 23:16+0000\n" +"PO-Revision-Date: 2022-12-15 00:11+0100\n" "Last-Translator: Nikolay Korotkiy <sikmir@disroot.org>\n" "Language-Team: Russian <https://translate.fedoraproject.org/projects/guix/documentation-manual/ru/>\n" "Language: ru\n" @@ -72867,7 +72867,7 @@ msgstr "" #. type: table #: guix-git/doc/guix.texi:39296 -msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive." +msgid "Use our QCOW image, the @file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as the backing store of the ``myhd'' drive." msgstr "" #. type: Plain text diff --git a/po/doc/guix-manual.zh_CN.po b/po/doc/guix-manual.zh_CN.po index 7e53f0f41d..f5abe54b11 100644 --- a/po/doc/guix-manual.zh_CN.po +++ b/po/doc/guix-manual.zh_CN.po @@ -16,7 +16,7 @@ msgstr "" "Project-Id-Version: guix-manual 1.0.1-pre1\n" "Report-Msgid-Bugs-To: bug-guix@gnu.org\n" "POT-Creation-Date: 2022-12-02 03:18+0000\n" -"PO-Revision-Date: 2022-09-22 13:19+0000\n" +"PO-Revision-Date: 2022-12-15 00:11+0100\n" "Last-Translator: Yang Yulin <yylteam@icloud.com>\n" "Language-Team: Chinese (Simplified) <https://translate.fedoraproject.org/projects/guix/documentation-manual/zh_CN/>\n" "Language: zh_CN\n" @@ -71148,7 +71148,7 @@ msgstr "" #. type: table #: guix-git/doc/guix.texi:39296 -msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive." +msgid "Use our QCOW image, the @file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as the backing store of the ``myhd'' drive." msgstr "" #. type: Plain text diff --git a/tests/cpio.scm b/tests/cpio.scm index 516de0655b..832101d1bb 100644 --- a/tests/cpio.scm +++ b/tests/cpio.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2022 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,12 +31,18 @@ (define %cpio-program (which "cpio")) +(define %test-file + (search-path %load-path "guix.scm")) + (test-begin "cpio") +;; The cpio format expects 'ino' to fit in 32 bits. If we have a bigger inode +;; number, skip this test. +(test-skip + (if (>= (stat:ino (lstat %test-file)) (expt 2 32)) 1 0)) (test-assert "file->cpio-header + write-cpio-header + read-cpio-header" - (let* ((file (search-path %load-path "guix.scm")) - (header (file->cpio-header file))) + (let* ((header (file->cpio-header %test-file))) (call-with-values (lambda () (open-bytevector-output-port)) diff --git a/tests/guix-package.sh b/tests/guix-package.sh index dedba2fd74..cc416ec6a1 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -149,11 +149,11 @@ cat > "$module_dir/foo.scm"<<EOF #:use-module (gnu packages base)) (define-public deprecated - (deprecated-package "fileutils" coreutils)) + (deprecated-package "fileutils-is-the-old-name" coreutils)) EOF guix build -L "$module_dir" -e '(@ (foo) deprecated)' -n -test "`guix package -L "$module_dir" -s ^fileutils$ | grep ^name:`" = "" +test "`guix package -L "$module_dir" -s ^fileutils-is-the-old-name$ | grep ^name:`" = "" rm -rf "$module_dir" diff --git a/tests/import-github.scm b/tests/import-github.scm index 4d3f8cfc7e..5100296540 100644 --- a/tests/import-github.scm +++ b/tests/import-github.scm @@ -92,7 +92,7 @@ (define* (found-sexp old-version old-commit tags releases) (and=> (call-with-releases (lambda () - ((upstream-updater-latest %github-updater) + ((upstream-updater-import %github-updater) (example-package old-version old-commit))) tags releases) upstream-source->sexp)) diff --git a/tests/packages.scm b/tests/packages.scm index a5819d8de3..f58c47817b 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -626,6 +626,10 @@ (build-derivations %store (list drv)) (call-with-input-file output get-string-all))) +(test-equal "package-upstream-name*" + (package-upstream-name* (specification->package "guile-gcrypt")) + "gcrypt") + ;;; ;;; Source derivation with snippets. diff --git a/tests/pki.scm b/tests/pki.scm index d6a6b476c7..86daff8ddf 100644 --- a/tests/pki.scm +++ b/tests/pki.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2022 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -66,6 +66,10 @@ (test-assert "authorized-key? public-key singleton" (authorized-key? %public-key (public-keys->acl (list %public-key)))) +(test-equal "public-keys->acl deduplication" + (public-keys->acl (list %public-key)) + (public-keys->acl (make-list 10 %public-key))) + (test-assert "signature-case valid-signature" (let* ((hash (sha256 #vu8(1 2 3))) (data (bytevector->hash-data hash #:key-type (key-type %public-key))) diff --git a/tests/records.scm b/tests/records.scm index 8504c8d5a5..b1203dfeb7 100644 --- a/tests/records.scm +++ b/tests/records.scm @@ -540,8 +540,8 @@ Description: 1st line, (first second) (list first second)) (match-record (foo (first 'a) (second 'b)) <foo> - (second first) - (list first second))))) + (second (first first/new-var)) + (list first/new-var second))))) (test-equal "match-record, unknown field" 'syntax-error diff --git a/tests/store-deduplication.scm b/tests/store-deduplication.scm index 2950fbc1a3..f1845035d8 100644 --- a/tests/store-deduplication.scm +++ b/tests/store-deduplication.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018, 2020-2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018, 2020-2022 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -136,6 +136,21 @@ (cons (apply = (map (compose stat:ino stat) identical)) (map (compose stat:nlink stat) identical)))))) +(test-assert "copy-file/deduplicate, below %deduplication-minimum-size" + (call-with-temporary-directory + (lambda (store) + (let ((source (string-append store "/input"))) + (call-with-output-file source + (lambda (port) + (display "Hello!\n" port))) + (copy-file/deduplicate source + (string-append store "/a") + #:store store) + (and (not (directory-exists? (string-append store "/.links"))) + (file=? source (string-append store "/a")) + (not (= (stat:ino (stat (string-append store "/a"))) + (stat:ino (stat source))))))))) + (test-assert "copy-file/deduplicate" (call-with-temporary-directory (lambda (store) diff --git a/tests/transformations.scm b/tests/transformations.scm index 47b1fc650d..5c136e1d48 100644 --- a/tests/transformations.scm +++ b/tests/transformations.scm @@ -488,10 +488,10 @@ (name 'dummy) (pred (const #t)) (description "") - (latest (const (upstream-source - (package "foo") - (version "42.0") - (urls '("http://example.org"))))))))) + (import (const (upstream-source + (package "foo") + (version "42.0") + (urls '("http://example.org"))))))))) (let* ((p (dummy-package "foo" (version "1.0"))) (t (options->transformation `((with-latest . "foo"))))) diff --git a/tests/ui.scm b/tests/ui.scm index 6a25a204ca..438acae525 100644 --- a/tests/ui.scm +++ b/tests/ui.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013-2017, 2019-2020, 2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info> ;;; ;;; This file is part of GNU Guix. @@ -294,6 +294,15 @@ Second line" 24)) (>0 (package-relevance libb2 (map rx '("crypto" "library"))))))) +(test-assert "package-relevance and upstream name" + ;; https://issues.guix.gnu.org/58136 + (let ((ggplot2 (specification->package "r-ggplot2")) + (ggstance (specification->package "r-ggstance")) + (rx (make-regexp "ggplot2" regexp/icase))) + (> (package-relevance ggplot2 (list rx)) + (package-relevance ggstance (list rx)) + 0))) + (define (make-empty-file directory file) ;; Create FILE in DIRECTORY. (close-port (open-output-file (in-vicinity directory file)))) |