diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2022-09-27 15:59:30 -0400 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2022-09-27 15:59:30 -0400 |
commit | 990a4822f1cb45c1470fe38cbf17fd7bb54d0088 (patch) | |
tree | 1c1ff41c9264fe5af5ee0b8723d1e367e958c051 | |
parent | 91db77c955cc7ef95dd8b535e40d6b4cf28669ec (diff) | |
parent | 3c6e220d8100281074c414a43c1efe9a01b53771 (diff) | |
download | guix-990a4822f1cb45c1470fe38cbf17fd7bb54d0088.tar guix-990a4822f1cb45c1470fe38cbf17fd7bb54d0088.tar.gz |
Merge branch 'staging' into core-updates
Conflicts resolved in:
gnu/local.mk
gnu/packages/cran.scm
gnu/packages/gnome.scm
gnu/packages/gtk.scm
gnu/packages/icu4c.scm
gnu/packages/java.scm
gnu/packages/machine-learning.scm
gnu/packages/tex.scm
126 files changed, 8663 insertions, 2846 deletions
@@ -2,7 +2,7 @@ #+TITLE: Guix NEWS – history of user-visible changes #+STARTUP: content hidestars -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, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org> @@ -48,6 +48,7 @@ Please send Guix bug reports to bug-guix@gnu.org. *** New interface for declaring swap space *** GNOME is now at version 42 *** TeX Live is now at version 2021 +*** Multiple TeX Live trees can now be used via GUIX_TEXMF *** Python is now faster thanks to being built with optimizations *** The Rust bootstrap now starts from 1.54 instead of 1.19 *** Most Python 2 packages have been removed @@ -55,8 +56,7 @@ Please send Guix bug reports to bug-guix@gnu.org. *** Faster shared libraries discovery via a per-package dynamic linker cache *** Package inputs can now be plain package lists *** A package origin can now be a single file rather than an archive -*** Multiple Tex Live trees can now be used via GUIX_TEXMF -*** A new sanity-check phase detects packaging problems at build time +*** New sanity-check phase to detect Python packaging problems at build time *** Fetching sources can now fall-back to use Disarchive *** Improved CI and infrastructure *** Multiple cross-compilation tooling addition and fixes @@ -71,14 +71,17 @@ Please send Guix bug reports to bug-guix@gnu.org. *** The installer now has a crash dump upload mechanism *** Emacs now supports native compilation *** GRUB bootloader now supports chain-loading - +*** The GNU Shepherd was upgraded to 0.9.2 +*** The init RAM disk honors more arguments—e.g. ‘root’ and ‘rootflags’ +*** ‘guix system image’ can now generate WSL images ** Programming interfaces -*** (guix records) now supports “field sanitizers” -*** Build phases are no longer required to return a boolean -*** G-Expressions can now be used to author build phases -*** Various improvements to the helpers in (gnu service configuration) +*** Package input fields can now 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 +*** Build phases are no longer required to return a boolean +*** (guix records) now supports “field sanitizers” +*** Various improvements to the helpers in (gnu service configuration) *** ‘texlive-union’ is now deprecated in favor of ‘texlive-updmap.cfg’ *** New (guix cpu) module *** New (guix least-authority) module @@ -112,7 +115,7 @@ nar-herder, opendht, rasdaemon, seatd, strongswan (<https://issues.guix.gnu.org/51425>) *** Fonts can now be discovered in any profile via XDG_DATA_DIRS (<https://issues.guix.gnu.org/31403>) -*** Python modules discovery no longer uses PYTHONPATH +*** Python modules are searched in GUIX_PYTHONPATH instead of PYTHONPATH *** Various Python reproducibility fixes *** The installer now supports MSDOS disk labels on UEFI systems (<https://issues.guix.gnu.org/47889>) diff --git a/doc/contributing.texi b/doc/contributing.texi index 17a54f94cc..7712f63d67 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -1406,6 +1406,47 @@ for more information. You can install @command{git send-email} with @command{guix install git:send-email}. @c Debbugs bug: https://debbugs.gnu.org/db/15/15361.html +To maximize the chances that you patch series is reviewed, the preferred +submission way is to use the @code{etc/teams.scm} script to notify the +appropriate team members (@pxref{Teams}). + +@unnumberedsubsec Teams +@anchor{Teams} +@cindex teams + +There are several teams mentoring different parts of the Guix source +code. To list all those teams, you can run from a Guix checkout: + +@example +$ ./etc/teams.scm list-teams +id: mentors +name: Mentors +description: A group of mentors who chaperone contributions by newcomers. +members: ++ Christopher Baines <mail@@cbaines.net> ++ Ricardo Wurmus <rekado@@elephly.net> ++ Mathieu Othacehe <othacehe@@gnu.org> ++ jgart <jgart@@dismail.de> ++ Ludovic Courtès <ludo@@gnu.org> +@dots{} +@end example + +You can run the following command to have the @code{Mentors} team put in +CC of a patch series: + +@example +$ git send-email --to XXX@@debbugs.gnu.org $(./etc/teams.scm cc mentors) *.patch +@end example + +The appropriate team or teams can also be inferred from the modified +files. For instance, if you want to send the two latest commits of the +current Git repository to review, you can run: + +@example +$ guix shell -D guix +[env]$ git send-email --to XXX@@debbugs.gnu.org $(./etc/teams.scm cc-members HEAD~2 HEAD) *.patch +@end example + @node Tracking Bugs and Patches @section Tracking Bugs and Patches diff --git a/doc/guix.texi b/doc/guix.texi index 8def1d8433..a173bea15f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -106,6 +106,7 @@ Copyright @copyright{} 2022 Philip M@sup{c}Grath@* Copyright @copyright{} 2022 Karl Hallsby@* Copyright @copyright{} 2022 Justin Veilleux@* Copyright @copyright{} 2022 Reily Siegel@* +Copyright @copyright{} 2022 Simon Streit@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -182,6 +183,8 @@ Weblate} (@pxref{Translating Guix}). * System Configuration:: Configuring the operating system. * Home Configuration:: Configuring the home environment. * Documentation:: Browsing software user manuals. +* Platforms:: Defining platforms. +* System Images:: Creating system images. * Installing Debugging Files:: Feeding the debugger. * Using TeX and LaTeX:: Typesetting. * Security Updates:: Deploying security fixes quickly. @@ -385,6 +388,7 @@ Services * DNS Services:: DNS daemons. * VPN Services:: VPN daemons. * Network File System:: NFS related services. +* Samba Services:: Samba services. * Continuous Integration:: Cuirass and Laminar services. * Power Management Services:: Extending battery life. * Audio Services:: The MPD. @@ -405,6 +409,18 @@ Defining Services * Shepherd Services:: A particular type of service. * Complex Configurations:: Defining bindings for complex configurations. +Platforms + +* platform Reference:: Detail of platform declarations. +* Supported Platforms:: Description of the supported platforms. + +System Images + +* image Reference:: Detail of image declarations. +* Instantiate an Image:: How to instantiate an image record. +* image-type Reference:: Detail of image types declaration. +* Image Modules:: Definition of image modules. + Installing Debugging Files * Separate Debug Info:: Installing 'debug' outputs. @@ -17525,6 +17541,7 @@ declaration. * DNS Services:: DNS daemons. * VPN Services:: VPN daemons. * Network File System:: NFS related services. +* Samba Services:: Samba services. * Continuous Integration:: Cuirass and Laminar services. * Power Management Services:: Extending battery life. * Audio Services:: The MPD. @@ -31273,6 +31290,125 @@ The verbosity level of the daemon. @end table @end deftp +@node Samba Services, Continuous Integration, Network File System, Services +@subsection Samba Services + +@cindex Samba +@cindex SMB +The @code{(gnu services samba)} module provides service definitions for +Samba as well as additional helper services. Currently it provides the +following services. + +@subsubheading Samba + +@uref{https://www.samba.org, Samba} provides network shares for folders +and printers using the SMB/CIFS protocol commonly used on Windows. It +can also act as an Active Directory Domain Controller (AD DC) for other +hosts in an heterougenious network with different types of Computer +systems. + +@defvar {Scheme variable} samba-service-type + +The service type to enable the samba services @code{samba}, @code{nmbd}, +@code{smbd} and @code{winbindd}. By default this service type does not +run as an AD DC, hence @code{samba} remains disabled. + +@end defvar + +@deftp{Data Type} samba-service-configuration +Configuration record for the Samba suite. + +@table @asis +@item @code{package} (default: @code{samba}) +The samba package to use. + +@item @code{config-file} (default: @code{#f}) +The config file to use. + +@item @code{enable-samba?} (default: @code{#f}) +Manually enable the @code{samba} daemon. + +@item @code{enable-smbd?} (default: @code{#f}) +Manually enable the @code{smbd} daemon. + +@item @code{enable-nmbd?} (default: @code{#f}) +Manually enable the @code{nmbd} daemon. + +@item @code{enable-winbindd?} (default: @code{#f}) +Manually enable the @code{winbindd} daemon. + +@end table +@end deftp + +@cindex wsdd +@subsubheading Web Service Discovery Daemon + +Web Service Discovery Daemon implements +@uref{http://docs.oasis-open.org/ws-dd/discovery/1.1/os/wsdd-discovery-1.1-spec-os.html, +Web Services Dynamic Discovery} protocol that enables host discovery -- +similar to Avahi -- over Multicast DNS. It is a drop-in replacement for +SMB hosts that have had SMBv1 disabled for security reasons. + +@defvr {Scheme Variable} wsdd-service-type + +Service type for the WSD host daemon. The value for +this service type is a @code{wsdd-configuration} record. The details +for the @code{wsdd-configuration} record type are given below. +@end defvr + +@deftp{Data Type} wsdd-configuration This data type represents the +configuration for the wsdd service. + +@table @asis + +@item @code{package} (default: @code{wsdd}) +The wsdd package to use. + +@item @code{ipv4only?} (default: @code{#f}) +Only listen to IPv4 addresses. + +@item @code{ipv6only} (default: @code{#f}) +Only listen to IPv6 addresses. Please note: Activating both options is +not possible, since there would be no IP versions to listen to. + +@item @code{chroot} (default: @code{#f}) +Chroot into a separate directory to prevent access to other directories. +This is to increase security in case there is a vulnerability in +@command{wsdd}. + +@item @code{hop-limit} (default: @code{1}) +Limit to the level of hops for multicast packets. The default is +@var{1} which should prevent packets from leaving the local network. + +@item @code{interface} (default: @code{'()}) +Limit to the given list of interfaces to listen to. By default wsdd +will listen to all interfaces. Except the loopback interface is never +used. + +@item @code{uuid-device} (default: @code{#f}) +The WSD protocol requires a device to have a UUID. Set this to manually +assign the service a UUID. + +@item @code{domain} (default: @code{#f}) +Notify this host is a member of an Active Directory. + +@item @code{host-name} (default: @code{#f}) +Manually set the hostname rather than letting @command{wsdd} inherit +this host's hostname. Only the host name part of a possible FQDN will +be used in the default case. + +@item @code{preserve-case?} (default: @code{#f}) +By default @command{wsdd} will convert the hostname in workgroup to all +uppercase. The opposite is true for hostnames in domains. Setting this +parameter will preserve case. + +@item @code{workgroup} (default: @var{"WORKGROUP"}) +Change the name of the workgroup. By default @command{wsdd} reports +this host being member of a workgroup. + +@end table +@end deftp + @node Continuous Integration @subsection Continuous Integration @@ -41142,6 +41278,623 @@ reader,, info-stnd, Stand-alone GNU Info}) and its Emacs counterpart bindings to navigate manuals. @xref{Getting Started,,, info, Info: An Introduction}, for an introduction to Info navigation. +@node Platforms +@chapter Platforms + +The packages and systems built by Guix are intended, like most computer +programs, to run on a CPU with a specific instruction set, and under a +specific operating system. Those programs are often also targeting a +specific kernel and system library. Those constraints are captured by +Guix in @code{platform} records. + +@menu +* platform Reference:: Detail of platform declarations. +* Supported Platforms:: Description of the supported platforms. +@end menu + +@node platform Reference +@section @code{platform} Reference + +The @code{platform} data type describes a @dfn{platform}: an +@acronym{ISA, instruction set architecture}, combined with an operating +system and possibly additional system-wide settings such as the +@acronym{ABI, application binary interface}. + +@deftp {Data Type} platform +This is the data type representing a platform. + +@table @asis +@item @code{target} +This field specifies the platform's GNU triplet as a string +(@pxref{Specifying Target Triplets, GNU configuration triplets,, +autoconf, Autoconf}). + +@item @code{system} +This string is the system type as it is known to Guix and passed, +for instance, to the @option{--system} option of most commands. + +It usually has the form @code{"@var{cpu}-@var{kernel}"}, where +@var{cpu} is the target CPU and @var{kernel} the target operating +system kernel. + +It can be for instance @code{"aarch64-linux"} or @code{"armhf-linux"}. +You will encounter system types when you perform native builds +(@pxref{Native Builds}). + +@item @code{linux-architecture} (default: @code{#false}) +This optional string field is only relevant if the kernel is Linux. In +that case, it corresponds to the ARCH variable used when building Linux, +@code{"mips"} for instance. + +@item @code{glibc-dynamic-linker} +This field is the name of the GNU C Library dynamic linker for the +corresponding system, as a string. It can be +@code{"/lib/ld-linux-armhf.so.3"}. + +@end table +@end deftp + +@node Supported Platforms +@section Supported Platforms + +The @code{(guix platforms @dots{})} modules export the following +variables, each of which is bound to a @code{platform} record. + +@defvr {Scheme Variable} armv7-linux +Platform targeting ARM v7 CPU running GNU/Linux. +@end defvr + +@defvr {Scheme Variable} aarch64-linux +Platform targeting ARM v8 CPU running GNU/Linux. +@end defvr + +@defvr {Scheme Variable} mips64-linux +Platform targeting MIPS little-endian 64-bit CPU running GNU/Linux. +@end defvr + +@defvr {Scheme Variable} powerpc-linux +Platform targeting PowerPC big-endian 32-bit CPU running GNU/Linux. +@end defvr + +@defvr {Scheme Variable} powerpc64le-linux +Platform targeting PowerPC little-endian 64-bit CPU running GNU/Linux. +@end defvr + +@defvr {Scheme Variable} riscv64-linux +Platform targeting RISC-V 64-bit CPU running GNU/Linux. +@end defvr + +@defvr {Scheme Variable} i686-linux +Platform targeting x86 CPU running GNU/Linux. +@end defvr + +@defvr {Scheme Variable} x86_64-linux +Platform targeting x86 64-bit CPU running GNU/Linux. +@end defvr + +@defvr {Scheme Variable} i686-mingw +Platform targeting x86 CPU running Windows, with run-time support from +MinGW. +@end defvr + +@defvr {Scheme Variable} x86_64-mingw +Platform targeting x86 64-bit CPU running Windows, with run-time support +from MinGW. +@end defvr + +@defvr {Scheme Variable} i586-gnu +Platform targeting x86 CPU running GNU/Hurd (also referred to as +``GNU''). +@end defvr + +@node System Images +@chapter Creating System Images + +@cindex system images +When it comes to installing Guix System for the first time on a new +machine, you can basically proceed in three different ways. The first +one is to use an existing operating system on the machine to run the +@command{guix system init} command (@pxref{Invoking guix system}). The +second one, is to produce an installation image (@pxref{Building the +Installation Image}). This is a bootable system which role is to +eventually run @command{guix system init}. Finally, the third option +would be to produce an image that is a direct instantiation of the +system you wish to run. That image can then be copied on a bootable +device such as an USB drive or a memory card. The target machine would +then directly boot from it, without any kind of installation procedure. + +The @command{guix system image} command is able to turn an operating +system definition into a bootable image. This command supports +different image types, such as @code{efi-raw}, @code{iso9660} and +@code{docker}. Any modern @code{x86_64} machine will probably be able +to boot from an @code{iso9660} image. However, there are a few machines +out there that require specific image types. Those machines, in general +using @code{ARM} processors, may expect specific partitions at specific +offsets. + +This chapter explains how to define customized system images and how to +turn them into actual bootable images. + +@menu +* image Reference:: Detail of image declarations. +* Instantiate an Image:: How to instantiate an image record. +* image-type Reference:: Detail of image types declaration. +* Image Modules:: Definition of image modules. +@end menu + +@node image Reference +@section @code{image} Reference + +The @code{image} record, described right after, allows you to define a +customized bootable system image. + +@deftp {Data Type} image +This is the data type representing a system image. + +@table @asis +@item @code{name} (default: @code{#false}) +The image name as a symbol, @code{'my-iso9660} for instance. The name +is optional and it defaults to @code{#false}. + +@item @code{format} +The image format as a symbol. The following formats are supported: + +@itemize +@item @code{disk-image}, a raw disk image composed of one or multiple +partitions. + +@item @code{compressed-qcow2}, a compressed qcow2 image composed of +one or multiple partitions. + +@item @code{docker}, a Docker image. + +@item @code{iso9660}, an ISO-9660 image. + +@item @code{tarball}, a tar.gz image archive. + +@item @code{wsl2}, a WSL2 image. + +@end itemize + +@item @code{platform} (default: @code{#false}) +The @code{platform} record the image is targeting (@pxref{Platforms}), +@code{aarch64-linux} for instance. By default, this field is set to +@code{#false} and the image will target the host platform. + +@item @code{size} (default: @code{'guess}) +The image size in bytes or @code{'guess}. The @code{'guess} symbol, +which is the default, means that the image size will be inferred based +on the image content. + +@item @code{operating-system} +The image's @code{operating-system} record that is instanciated. + +@item @code{partition-table-type} (default: @code{'mbr}) +The image partition table type as a symbol. Possible values are +@code{'mbr} and @code{'gpt}. It default to @code{'mbr}. + +@item @code{partitions} (default: @code{'()}) +The image partitions as a list of @code{partition} records +(@pxref{partition Reference}). + +@item @code{compression?} (default: @code{#true}) +Whether the image content should be compressed, as a boolean. It +defaults to @code{#true} and only applies to @code{'iso9660} image +formats. + +@item @code{volatile-root?} (default: @code{#true}) +Whether the image root partition should be made volatile, as a boolean. + +This is achieved by using a RAM backed file system (overlayfs) that is +mounted on top of the root partition by the initrd. It defaults to +@code{#true}. When set to @code{#false}, the image root partition is +mounted as read-write partition by the initrd. + +@item @code{shared-store?} (default: @code{#false}) +Whether the image's store should be shared with the host system, as a +boolean. This can be useful when creating images dedicated to virtual +machines. When set to @code{#false}, which is the default, the image's +@code{operating-system} closure is copied to the image. Otherwise, when +set to @code{#true}, it is assumed that the host store will be made +available at boot, using a @code{9p} mount for instance. + +@item @code{shared-network?} (default: @code{#false}) +Whether to use the host network interfaces within the image, as a +boolean. This is only used for the @code{'docker} image format. It +defaults to @code{#false}. + +@item @code{substitutable?} (default: @code{#true}) +Whether the image derivation should be substitutable, as a boolean. It +defaults to @code{true}. + +@end table +@end deftp + +@node partition Reference +@subsection @code{partition} Reference + +In @code{image} record may contain some partitions. + +@deftp {Data Type} partition +This is the data type representing an image partition. + +@table @asis +@item @code{size} (default: @code{'guess}) +The partition size in bytes or @code{'guess}. The @code{'guess} symbol, +which is the default, means that the partition size will be inferred +based on the partition content. + +@item @code{offset} (default: @code{0}) +The partition's start offset in bytes, relative to the image start or +the previous partition end. It defaults to @code{0} which means that +there is no offset applied. + +@item @code{file-system} (default: @code{"ext4"}) +The partition file system as a string, defaulting to @code{"ext4"}. The +supported values are @code{"vfat"}, @code{"fat16"}, @code{"fat32"} and +@code{"ext4"}. + +@item @code{file-system-options} (default: @code{'()}) +The partition file system creation options that should be passed to the +partition creation tool, as a list of strings. This is only supported +when creating @code{"ext4"} partitions. + +See the @code{"extended-options"} man page section of the +@code{"mke2fs"} tool for a more complete reference. + +@item @code{label} +The partition label as a mandatory string, @code{"my-root"} for +instance. + +@item @code{uuid} (default: @code{#false}) +The partition UUID as an @code{uuid} record (@pxref{File Systems}). By +default it is @code{#false}, which means that the partition creation +tool will attribute a random UUID to the partition. + +@item @code{flags} (default: @code{'()}) +The partition flags as a list of symbols. Possible values are +@code{'boot} and @code{'esp}. The @code{'boot} flags should be set if +you want to boot from this partition. Exactly one partition should have +this flag set, usually the root one. The @code{'esp} flag identifies a +UEFI System Partition. + +@item @code{initializer} (default: @code{#false}) +The partition initializer procedure as a gexp. This procedure is called +to populate a partition. If no initializer is passed, the +@code{initialize-root-partition} procedure from the @code{(gnu build +image)} module is used. + +@end table +@end deftp + +@node Instantiate an Image +@section Instantiate an Image + +Let's say you would like to create an MBR image with three distinct +partitions: + +@itemize +@item The @acronym{ESP, EFI System Partition}, a partition of +40@tie{}MiB at offset 1024@tie{}KiB with a vfat file system. + +@item an ext4 partition of 50@tie{}MiB data file, and labeled ``data''. + +@item an ext4 bootable partition containing the @code{%simple-os} +operating-system. +@end itemize + +You would then write the following image definition in a +@code{my-image.scm} file for instance. + +@lisp +(use-modules (gnu) + (gnu image) + (gnu tests) + (gnu system image) + (guix gexp)) + +(define MiB (expt 2 20)) + +(image + (format 'disk-image) + (operating-system %simple-os) + (partitions + (list + (partition + (size (* 40 MiB)) + (offset (* 1024 1024)) + (label "GNU-ESP") + (file-system "vfat") + (flags '(esp)) + (initializer (gexp initialize-efi-partition))) + (partition + (size (* 50 MiB)) + (label "DATA") + (file-system "ext4") + (initializer #~(lambda* (root . rest) + (mkdir root) + (call-with-output-file + (string-append root "/data") + (lambda (port) + (format port "my-data")))))) + (partition + (size 'guess) + (label root-label) + (file-system "ext4") + (flags '(boot)) + (initializer (gexp initialize-root-partition)))))) +@end lisp + +Note that the first and third partitions use generic initializers +procedures, initialize-efi-partition and initialize-root-partition +respectively. The initialize-efi-partition installs a GRUB EFI loader +that is loading the GRUB bootloader located in the root partition. The +initialize-root-partition instantiates a complete system as defined by +the @code{%simple-os} operating-system. + +You can now run: + +@example +guix system image my-image.scm +@end example + +to instantiate the @code{image} definition. That produces a disk image +which has the expected structure: + +@example +$ parted $(guix system image my-image.scm) print +@dots{} +Model: (file) +Disk /gnu/store/yhylv1bp5b2ypb97pd3bbhz6jk5nbhxw-disk-image: 1714MB +Sector size (logical/physical): 512B/512B +Partition Table: msdos +Disk Flags: + +Number Start End Size Type File system Flags + 1 1049kB 43.0MB 41.9MB primary fat16 esp + 2 43.0MB 95.4MB 52.4MB primary ext4 + 3 95.4MB 1714MB 1619MB primary ext4 boot +@end example + +The size of the @code{boot} partition has been inferred to @code{1619MB} +so that it is large enough to host the @code{%simple-os} +operating-system. + +You can also use existing @code{image} record definitions and inherit +from them to simplify the @code{image} definition. The @code{(gnu +system image)} module provides the following @code{image} definition +variables. + +@defvr {Scheme Variable} efi-disk-image +A MBR disk-image composed of two partitions: a 64 bits ESP partition and +a ROOT boot partition. This image can be used on most @code{x86_64} and +@code{i686} machines, supporting BIOS or UEFI booting. +@end defvr + +@defvr {Scheme Variable} efi32-disk-image +Same as @code{efi-disk-image} but with a 32 bits EFI partition. +@end defvr + +@defvr {Scheme Variable} iso9660-image +An ISO-9660 image composed of a single bootable partition. This image +can also be used on most @code{x86_64} and @code{i686} machines. +@end defvr + +@defvr {Scheme Variable} docker-image +A Docker image that can be used to spawn a Docker container. +@end defvr + +Using the @code{efi-disk-image} we can simplify our previous +@code{image} declaration this way: + +@lisp +(use-modules (gnu) + (gnu image) + (gnu tests) + (gnu system image) + (guix gexp) + (ice-9 match)) + +(define MiB (expt 2 20)) + +(define data + (partition + (size (* 50 MiB)) + (label "DATA") + (file-system "ext4") + (initializer #~(lambda* (root . rest) + (mkdir root) + (call-with-output-file + (string-append root "/data") + (lambda (port) + (format port "my-data"))))))) + +(image + (inherit efi-disk-image) + (operating-system %simple-os) + (partitions + (match (image-partitions efi-disk-image) + ((esp root) + (list esp data root))))) +@end lisp + +This will give the exact same @code{image} instantiation but the +@code{image} declaration is simpler. + +@node image-type Reference +@section image-type Reference + +The @command{guix system image} command can, as we saw above, take a +file containing an @code{image} declaration as argument and produce an +actual disk image from it. The same command can also handle a file +containing an @code{operating-system} declaration as argument. In that +case, how is the @code{operating-system} turned into an image? + +That's where the @code{image-type} record intervenes. This record +defines how to transform an @code{operating-system} record into an +@code{image} record. + +@deftp {Data Type} image-type +This is the data type representing an image-type. + +@table @asis +@item @code{name} +The image-type name as a mandatory symbol, @code{'efi32-raw} for +instance. + +@item @code{constructor} +The image-type constructor, as a mandatory procedure that takes an +@code{operating-system} record as argument and returns an @code{image} +record. + +@end table +@end deftp + +There are several @code{image-type} records provided by the @code{(gnu +system image)} and the @code{(gnu system images @dots{})} modules. + +@defvr {Scheme Variable} efi-raw-image-type +Build an image based on the @code{efi-disk-image} image. +@end defvr + +@defvr {Scheme Variable} efi32-raw-image-type +Build an image based on the @code{efi32-disk-image} image. +@end defvr + +@defvr {Scheme Variable} qcow2-image-type +Build an image based on the @code{efi-disk-image} image but with the +@code{compressed-qcow2} image format. +@end defvr + +@defvr {Scheme Variable} iso-image-type +Build a compressed image based on the @code{iso9660-image} image. +@end defvr + +@defvr {Scheme Variable} uncompressed-iso-image-type +Build an image based on the @code{iso9660-image} image but with the +@code{compression?} field set to @code{#false}. +@end defvr + +@defvr {Scheme Variable} docker-image-type +Build an image based on the @code{docker-image} image. +@end defvr + +@defvr {Scheme Variable} raw-with-offset-image-type +Build an MBR image with a single partition starting at a @code{1024KiB} +offset. This is useful to leave some room to install a bootloader in +the post-MBR gap. +@end defvr + +@defvr {Scheme Variable} pinebook-pro-image-type +Build an image that is targeting the Pinebook Pro machine. The MBR +image contains a single partition starting at a @code{9MiB} offset. The +@code{u-boot-pinebook-pro-rk3399-bootloader} bootloader will be +installed in this gap. +@end defvr + +@defvr {Scheme Variable} rock64-image-type +Build an image that is targeting the Rock64 machine. The MBR image +contains a single partition starting at a @code{16MiB} offset. The +@code{u-boot-rock64-rk3328-bootloader} bootloader will be installed in +this gap. +@end defvr + +@defvr {Scheme Variable} novena-image-type +Build an image that is targeting the Novena machine. It has the same +characteristics as @code{raw-with-offset-image-type}. +@end defvr + +@defvr {Scheme Variable} pine64-image-type +Build an image that is targeting the Pine64 machine. It has the same +characteristics as @code{raw-with-offset-image-type}. +@end defvr + +@defvr {Scheme Variable} hurd-image-type +Build an image that is targeting a @code{i386} machine running the Hurd +kernel. The MBR image contains a single ext2 partitions with specific +@code{file-system-options} flags. +@end defvr + +@defvr {Scheme Variable} hurd-qcow2-image-type +Build an image similar to the one built by the @code{hurd-image-type} +but with the @code{format} set to @code{'compressed-qcow2}. +@end defvr + +@defvr {Scheme Variable} wsl2-image-type +Build an image for the @acronym{WSL2, Windows Subsystem for Linux 2}. +It can be imported by running: + +@example +wsl --import Guix ./guix ./wsl2-image.tar.gz +wsl -d Guix +@end example + +@end defvr + +So, if we get back to the @code{guix system image} command taking an +@code{operating-system} declaration as argument. By default, the +@code{efi-raw-image-type} is used to turn the provided +@code{operating-system} into an actual bootable image. + +To use a different @code{image-type}, the @code{--image-type} option can +be used. The @code{--list-image-types} option will list all the +supported image types. It turns out to be a textual listing of all the +@code{image-types} variables described just above (@pxref{Invoking guix +system}). + +@node Image Modules +@section Image Modules + +Let's take the example of the Pine64, an ARM based machine. To be able +to produce an image targeting this board, we need the following +elements: + +@itemize +@item An @code{operating-system} record containing at least +an appropriate kernel (@code{linux-libre-arm64-generic}) and bootloader +@code{u-boot-pine64-lts-bootloader}) for the Pine64. + +@item Possibly, an @code{image-type} record providing a way to +turn an @code{operating-system} record to an @code{image} record +suitable for the Pine64. + +@item An actual @code{image} that can be instantiated with the +@command{guix system image} command. + +@end itemize + +The @code{(gnu system images pine64)} module provides all those +elements: @code{pine64-barebones-os}, @code{pine64-image-type} and +@code{pine64-barebones-raw-image} respectively. + +The module returns the @code{pine64-barebones-raw-image} in order for +users to be able to run: + +@example +guix system image gnu/system/images/pine64.scm +@end example + +Now, thanks to the @code{pine64-image-type} record declaring the +@code{'pine64-raw} @code{image-type}, one could also prepare a +@code{my-pine.scm} file with the following content: + +@lisp +(use-modules (gnu system images pine64)) +(operating-system + (inherit pine64-barebones-os) + (timezone "Europe/Athens")) +@end lisp + +to customize the @code{pine64-barebones-os}, and run: + +@example +$ guix system image --image-type=pine64-raw my-pine.scm +@end example + +Note that there are other modules in the @code{gnu/system/images} +directory targeting @code{Novena}, @code{Pine64}, @code{PinebookPro} and +@code{Rock64} machines. + @node Installing Debugging Files @chapter Installing Debugging Files @@ -41888,7 +42641,7 @@ connection between a GNU triplet (@pxref{Specifying Target Triplets, GNU configuration triplets,, autoconf, Autoconf}), the equivalent @var{system} in Nix notation, the name of the @var{glibc-dynamic-linker}, and the corresponding Linux architecture -name if applicable. +name if applicable (@pxref{Platforms}). Once the bootstrap tarball are built, the @code{(gnu packages bootstrap)} module needs to be updated to refer to these binaries on the diff --git a/etc/news.scm b/etc/news.scm index ea5c908ef1..9bb6ba876b 100644 --- a/etc/news.scm +++ b/etc/news.scm @@ -25,6 +25,64 @@ (channel-news (version 0) + (entry (commit "a13f5ead0265cf0fe11e60150547c09dfc8c45b0") + (title + (en "Guix System image creation is now documented") + (de "Es gibt eine Dokumentation, wie Sie Guix-System-Abbilder („Images“) erzeugen") + (fr "La création d'images pour Guix System est à présent documentée")) + (body + (en "The Guix System image API that allows you to create customized +system images and turn them into actual bootable images is now documented in +the @code{Creating System Images} chapter of the Guix documentation. This +should be particularly useful for people trying to port Guix System to new +hardware.") + (de "Sie können nun im Kapitel @code{Creating System Images} der +Dokumentation nachlesen, wie Sie mit der Schnittstelle für Guix-System-Abbilder +anpassbare, bootfähige Systemabbilder erzeugen können. Das sollte vor allem +Personen unterstützen, die versuchen, Guix System auf neuer Hardware zum Laufen +zu bringen.") + (fr "L'interface de programmation d'images pour Guix System, +permettant de créer des images personnalisées et de les transformer en images +amorçables est désormais documentée dans le chapitre @code{Création d'images +système}. Cette interface devrait être particulièrement utile aux personnes +qui essaient de faire fonctionner Guix sur de nouvelles machines."))) + (entry (commit "c8112f3bd95269ce4aca12dedbfe61bb6b37acae") + (title + (en "WSL system images support") + (de "WSL-Systemabbilder werden unterstützt") + (fr "Support pour les images système WSL")) + (body + (en "The @command{guix system image} command can now generate system +images for the Windows Subsystem for Linux. To get started, you can for +instance run from a Guix checkout: + +@command{guix system image gnu/system/images/wsl2.scm}, + +and import the resulting image this way: + +@command{wsl --import Guix ./guix ./wsl2-image.tar.gz} +@command{wsl -d Guix}.") + (de "Mit dem Befehl @command{guix system image} können Sie +Systemabbilder erzeugen, die auf dem Windows-Subsystem für Linux laufen. Wenn +Sie das ausprobieren möchten, führen Sie zum Beispiel Folgendes aus einem +Guix-Checkout heraus aus: + +@command{guix system image gnu/system/images/wsl2.scm}, + +Das resultierende Abbild können Sie so importieren: + +@command{wsl --import Guix ./guix ./wsl2-image.tar.gz} +@command{wsl -d Guix}.") + (fr "La commande @command{guix system image} peut désormais générer +des images système pour le Windows Subystem for Linux. Vous pouvez par +exemple lancer la commande suivante depuis un répertoire de sources Guix : + +@command{guix system image gnu/system/images/wsl2.scm}, + +et importer l'image obtenue de cette manière : + +@command{wsl --import Guix ./guix ./wsl2-image.tar.gz} +@command{wsl -d Guix}."))) (entry (commit "11a06d1e49f4d50d6789e05bbf35e2e145ff7838") (title (en "Emacs now supports native compilation") diff --git a/etc/snippets/tempel/text-mode b/etc/snippets/tempel/text-mode index a1400aac69..8096d92e47 100644 --- a/etc/snippets/tempel/text-mode +++ b/etc/snippets/tempel/text-mode @@ -99,3 +99,20 @@ text-mode :when (and (fboundp 'git-commit-mode) (git-commit-mode)) ": Use HTTPS home page." n n "* " (car (magit-staged-files)) " (" (s var) ")[home-page]: Use HTTPS." n (mapconcat (lambda (file) (concat "* " file)) (cdr (magit-staged-files))) n) + +(move\ + "gnu: " + (p (with-temp-buffer + (magit-git-wash #'magit-diff-wash-diffs + "diff" "--staged") + (goto-char (point-min)) + (when (re-search-forward "\\-(define-public \\(\\S-+\\)" nil 'noerror) + (match-string-no-properties 1))) + var) + ": Move to " + (concat "(" + (string-replace "\.scm" "" + (string-replace "/" " " (car (magit-staged-files)))) + ").") n + n "* " (car (magit-staged-files)) " (" (s var) "): Move from here…" + n "* " (cadr (magit-staged-files)) " (" (s var) "): …to here.") diff --git a/etc/teams.scm.in b/etc/teams.scm.in index 4c2926eba5..ba22b80771 100644 --- a/etc/teams.scm.in +++ b/etc/teams.scm.in @@ -4,6 +4,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,23 +23,28 @@ ;;; Commentary: -;; This code defines development teams and team members. +;; This code defines development teams and team members, as well as their +;; scope. ;;; Code: (use-modules (srfi srfi-1) (srfi srfi-9) + (srfi srfi-26) (ice-9 format) + (ice-9 regex) (ice-9 match) - (guix ui)) + (guix ui) + (git)) (define-record-type <team> - (make-team id name description members) + (make-team id name description members scope) team? (id team-id) (name team-name) (description team-description) - (members team-members set-team-members!)) + (members team-members set-team-members!) + (scope team-scope)) (define-record-type <person> (make-person name email) @@ -49,11 +55,13 @@ (define* (person name #:optional email) (make-person name email)) -(define* (team id #:key name description (members '())) +(define* (team id #:key name description (members '()) + (scope '())) (make-team id (or name (symbol->string id)) description - members)) + members + scope)) (define %teams (make-hash-table)) @@ -84,14 +92,37 @@ (team 'python #:name "Python team" #:description - "Python, Python packages, the \"pypi\" importer, and the python-build-system.")) + "Python, Python packages, the \"pypi\" importer, and the python-build-system." + #:scope + (list "gnu/packages/django.scm" + "gnu/packages/jupyter.scm" + ;; Match haskell.scm and haskell-*.scm. + (make-regexp "^gnu/packages/python(-.+|)\\.scm$") + "gnu/packages/sphinx.scm" + "gnu/packages/tryton.scm" + "guix/build/python-build-system.scm" + "guix/build-system/python.scm" + "guix/import/pypi.scm" + "guix/scripts/import/pypi.scm" + "tests/pypi.scm"))) (define-team haskell (team 'haskell #:name "Haskell team" #:description "GHC, Hugs, Haskell packages, the \"hackage\" and \"stackage\" importers, and -the haskell-build-system.")) +the haskell-build-system." + #:scope + (list "gnu/packages/dhall.scm" + ;; Match haskell.scm and haskell-*.scm. + (make-regexp "^gnu/packages/haskell(-.+|)\\.scm$") + "gnu/packages/purescript.scm" + "guix/build/haskell-build-system.scm" + "guix/build-system/haskell.scm" + "guix/import/cabal.scm" + "guix/import/hackage.scm" + "guix/import/stackage.scm" + "guix/scripts/import/hackage.scm"))) (define-team r (team 'r @@ -111,14 +142,36 @@ and the r-build-system.")) #:name "OCaml and Dune team" #:description "The OCaml language, the Dune build system, OCaml packages, the \"opam\" -importer, and the ocaml-build-system.")) +importer, and the ocaml-build-system." + #:scope + (list "gnu/packages/ocaml.scm" + "gnu/packages/coq.scm" + "guix/build/ocaml-build-system.scm" + "guix/build/dune-build-system.scm" + "guix/build-system/ocaml.scm" + "guix/build-system/dune.scm" + "guix/import/opam.scm" + "guix/scripts/import/opam.scm" + "tests/opam.scm"))) (define-team java (team 'java #:name "Java and Maven team" #:description "The JDK and JRE, the Maven build system, Java packages, the ant-build-system, -and the maven-build-system.")) +and the maven-build-system." + #:scope + (list ;; Match java.scm and java-*.scm. + (make-regexp "^gnu/packages/java(-.+|)\\.scm$") + ;; Match maven.scm and maven-*.scm + (make-regexp "^gnu/packages/maven(-.+|)\\.scm$") + "guix/build/ant-build-system.scm" + "guix/build/java-utils.scm" + "guix/build/maven-build-system.scm" + ;; The maven directory + (make-regexp "^guix/build/maven/") + "guix/build-system/ant.scm" + "guix/build-system/maven.scm"))) (define-team science (team 'science @@ -126,11 +179,24 @@ and the maven-build-system.")) (define-team emacs (team 'emacs - #:name "Emacs team")) + #:name "Emacs team" + #:description "The extensible, customizable text editor and its +ecosystem." + #:scope (list (make-regexp "^gnu/packages/emacs(-.+|)\\.scm$") + "guix/build/emacs-build-system.scm" + "guix/build/emacs-utils.scm" + "guix/build-system/emacs.scm"))) (define-team lisp (team 'lisp - #:name "Lisp team")) + #:name "Lisp team" + #:description + "Common Lisp and similar languages, Common Lisp packages and the +asdf-build-system." + #:scope (list (make-regexp "^gnu/packages/lisp(-.+|)\\.scm$") + "guix/build/asdf-build-system.scm" + "guix/build/lisp-utils.scm" + "guix/build-system/asdf.scm"))) (define-team ruby (team 'ruby @@ -154,11 +220,99 @@ and the maven-build-system.")) (define-team core (team 'core - #:name "Core / Tools / Internals")) + #:name "Core / Tools / Internals" + #:scope + (list "guix/avahi.scm" + "guix/base16.scm" + "guix/base32.scm" + "guix/base64.scm" + "guix/bzr-download.scm" + "guix/cache.scm" + "guix/channels.scm" + "guix/ci.scm" + "guix/colors.scm" + "guix/combinators.scm" + "guix/config.scm" + "guix/cpio.scm" + "guix/cpu.scm" + "guix/cve.scm" + "guix/cvs-download.scm" + "guix/deprecation.scm" + "guix/derivations.scm" + "guix/describe.scm" + "guix/diagnostics.scm" + "guix/discovery.scm" + "guix/docker.scm" + "guix/download.scm" + "guix/elf.scm" + "guix/ftp-client.scm" + "guix/gexp.scm" + "guix/git-authenticate.scm" + "guix/git-download.scm" + "guix/git.scm" + "guix/glob.scm" + "guix/gnu-maintenance.scm" + "guix/gnupg.scm" + "guix/grafts.scm" + "guix/graph.scm" + "guix/hash.scm" + "guix/hg-download.scm" + "guix/http-client.scm" + "guix/i18n.scm" + "guix/inferior.scm" + "guix/ipfs.scm" + "guix/least-authority.scm" + "guix/licenses.scm" + "guix/lint.scm" + "guix/man-db.scm" + "guix/memoization.scm" + "guix/modules.scm" + "guix/monad-repl.scm" + "guix/monads.scm" + "guix/narinfo.scm" + "guix/nar.scm" + "guix/openpgp.scm" + "guix/packages.scm" + "guix/pki.scm" + "guix/platform.scm" + "guix/profiles.scm" + "guix/profiling.scm" + "guix/progress.scm" + "guix/quirks.scm" + "guix/read-print.scm" + "guix/records.scm" + "guix/remote.scm" + "guix/repl.scm" + "guix/search-paths.scm" + "guix/self.scm" + "guix/serialization.scm" + "guix/sets.scm" + "guix/ssh.scm" + "guix/status.scm" + "guix/store.scm" + "guix/substitutes.scm" + "guix/svn-download.scm" + "guix/swh.scm" + "guix/tests.scm" + "guix/transformations.scm" + "guix/ui.scm" + "guix/upstream.scm" + "guix/utils.scm" + "guix/workers.scm" + (make-regexp "^guix/platforms/") + (make-regexp "^guix/scripts/") + (make-regexp "^guix/store/")))) (define-team games (team 'games - #:name "Games and Videos")) + #:name "Games and Toys" + #:description "Packaging programs for amusement." + #:scope (list "gnu/packages/games.scm" + "gnu/packages/game-development.scm" + "gnu/packages/minetest.scm" + "gnu/packages/esolangs.scm" ; granted, rather niche + "gnu/packages/motti.scm" + "guix/build/minetest-build-system.scm"))) (define-team translations (team 'translations @@ -166,7 +320,9 @@ and the maven-build-system.")) (define-team installer (team 'installer - #:name "Installer script and system installer")) + #:name "Installer script and system installer" + #:scope + (list (make-regexp "^guix/installer(\\.scm$|/)")))) (define-team home (team 'home @@ -270,12 +426,38 @@ importer.")) "andrew@trop.in") home emacs) +(define-member (person "pukkamustard" + "pukkamustard@posteo.net") + ocaml) + +(define-member (person "Josselin Poiret" + "dev@jpoiret.xyz") + core installer) + (define (find-team name) (or (hash-ref %teams (string->symbol name)) (error (format #false "no such team: ~a~%" name)))) +(define (find-team-by-scope files) + "Return the team(s) which scope matches at least one of the FILES, as list +of file names as string." + (hash-fold + (lambda (key team acc) + (if (any (lambda (file) + (any (match-lambda + ((? string? scope) + (string=? scope file)) + ((? regexp? scope) + (regexp-exec scope file))) + (team-scope team))) + files) + (cons team acc) + acc)) + '() + %teams)) + (define (cc . teams) "Return arguments for `git send-email' to notify the members of the given TEAMS when a patch is received by Debbugs." @@ -297,7 +479,7 @@ TEAMS when a patch is received by Debbugs." (team-members team))) (define (list-teams) - "Print all teams and their members." + "Print all teams, their scope and their members." (define port* (current-output-port)) (define width* (%text-width)) (hash-for-each @@ -307,7 +489,7 @@ TEAMS when a patch is received by Debbugs." id: ~a name: ~a description: ~a -members: +~amembers: " (team-id team) (team-name team) @@ -316,15 +498,48 @@ members: (string->recutils (fill-paragraph text width* (string-length "description: "))))) - "<none>")) + "<none>") + (match (team-scope team) + (() "") + (scope (format #f "scope: ~{~s ~}~%" scope)))) (list-members team port* "+ ") (newline)) %teams)) + +(define (diff-revisions rev-start rev-end) + "Return the list of added, modified or removed files between REV-START +and REV-END, two git revision strings." + (let* ((repository (repository-open (getcwd))) + (commit1 (commit-lookup repository + (object-id + (revparse-single repository rev-start)))) + (commit2 (commit-lookup repository + (object-id + (revparse-single repository rev-end)))) + (diff (diff-tree-to-tree repository + (commit-tree commit1) + (commit-tree commit2))) + (files '())) + (diff-foreach + diff + (lambda (delta progress) + (set! files + (cons (diff-file-path (diff-delta-old-file delta)) files)) + 0) + (const 0) + (const 0) + (const 0)) + files)) + + (define (main . args) (match args (("cc" . team-names) (apply cc (map find-team team-names))) + (("cc-members" rev-start rev-end) + (apply cc (find-team-by-scope + (diff-revisions rev-start rev-end)))) (("list-teams" . args) (list-teams)) (("list-members" . team-names) diff --git a/gnu/build/jami-service.scm b/gnu/build/jami-service.scm index 0ceb03eb02..a00785f699 100644 --- a/gnu/build/jami-service.scm +++ b/gnu/build/jami-service.scm @@ -153,14 +153,11 @@ implementation detail used to identify the accounts in Jami." (error message username)))) (define (account->username account) - "Return USERNAME, the registered username associated with ACCOUNT, else its -public key fingerprint." - (or (assoc-ref account "Account.registeredName") - (assoc-ref account "Account.username"))) + "Return the public key fingerprint of ACCOUNT." + (assoc-ref account "Account.username")) (define (id->username id) - "Return USERNAME, the registered username associated with ID, else its -public key fingerprint, else #f." + "Return the public key fingerprint corresponding to account with ID, else #f." (account->username (id->account id))) (define (get-accounts) diff --git a/gnu/build/linux-container.scm b/gnu/build/linux-container.scm index a0c8174721..72e3a45422 100644 --- a/gnu/build/linux-container.scm +++ b/gnu/build/linux-container.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson <davet@gnu.org> -;;; Copyright © 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2017-2019, 2022 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -233,7 +233,7 @@ that host UIDs (respectively GIDs) map to in the namespace." ;; The parent process must initialize the user namespace for the child ;; before it can boot. To negotiate this, a pipe is used such that the ;; child process blocks until the parent writes to it. - (match (socketpair PF_UNIX SOCK_STREAM 0) + (match (socketpair PF_UNIX (logior SOCK_CLOEXEC SOCK_STREAM) 0) ((child . parent) (let ((flags (namespaces->bit-mask namespaces))) (match (clone flags) @@ -442,6 +442,10 @@ return the exit status." "Like 'container-excursion', but return the return value of THUNK." (match (pipe) ((in . out) + ;; Make sure IN and OUT are not inherited if THUNK forks + execs. + (fcntl in F_SETFD FD_CLOEXEC) + (fcntl out F_SETFD FD_CLOEXEC) + (match (container-excursion pid (lambda () (close-port in) diff --git a/gnu/ci.scm b/gnu/ci.scm index 2c51ea7387..19a48bdbf1 100644 --- a/gnu/ci.scm +++ b/gnu/ci.scm @@ -39,9 +39,10 @@ #:select (gpl3+ license? license-name)) #:use-module ((guix utils) #:select (%current-system)) #:use-module ((guix scripts pack) - #:select (lookup-compressor self-contained-tarball)) + #:select (self-contained-tarball)) #:use-module (gnu bootloader) #:use-module (gnu bootloader u-boot) + #:use-module (gnu compression) #:use-module (gnu image) #:use-module (gnu packages) #:use-module (gnu packages gcc) diff --git a/gnu/compression.scm b/gnu/compression.scm new file mode 100644 index 0000000000..0418e80a15 --- /dev/null +++ b/gnu/compression.scm @@ -0,0 +1,69 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu compression) + #:use-module (guix gexp) + #:use-module (guix ui) + #:use-module ((gnu packages compression) #:hide (zip)) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) + #:use-module (ice-9 match) + #:export (compressor + compressor? + compressor-name + compressor-extension + compressor-command + %compressors + lookup-compressor)) + +;; Type of a compression tool. +(define-record-type <compressor> + (compressor name extension command) + compressor? + (name compressor-name) ;string (e.g., "gzip") + (extension compressor-extension) ;string (e.g., ".lz") + (command compressor-command)) ;gexp (e.g., #~(list "/gnu/store/…/gzip" + ; "-9n" )) + +(define %compressors + ;; Available compression tools. + (list (compressor "gzip" ".gz" + #~(list #+(file-append gzip "/bin/gzip") "-9n")) + (compressor "lzip" ".lz" + #~(list #+(file-append lzip "/bin/lzip") "-9")) + (compressor "xz" ".xz" + #~(append (list #+(file-append xz "/bin/xz") + "-e") + (%xz-parallel-args))) + (compressor "bzip2" ".bz2" + #~(list #+(file-append bzip2 "/bin/bzip2") "-9")) + (compressor "zstd" ".zst" + ;; The default level 3 compresses better than gzip in a + ;; fraction of the time, while the highest level 19 + ;; (de)compresses more slowly and worse than xz. + #~(list #+(file-append zstd "/bin/zstd") "-3")) + (compressor "none" "" #f))) + +(define (lookup-compressor name) + "Return the compressor object called NAME. Error out if it could not be +found." + (or (find (match-lambda + (($ <compressor> name*) + (string=? name* name))) + %compressors) + (leave (G_ "~a: compressor not found~%") name))) diff --git a/gnu/image.scm b/gnu/image.scm index 4a0068934e..523653dd77 100644 --- a/gnu/image.scm +++ b/gnu/image.scm @@ -152,7 +152,7 @@ that is not in SET, mentioning FIELD in the error message." ;; The supported image formats. (define-set-sanitizer validate-image-format format - (disk-image compressed-qcow2 docker iso9660)) + (disk-image compressed-qcow2 docker iso9660 tarball wsl2)) ;; The supported partition table types. (define-set-sanitizer validate-partition-table-type partition-table-type @@ -170,8 +170,7 @@ that is not in SET, mentioning FIELD in the error message." (size image-size ;size in bytes as integer (default 'guess) (sanitize validate-size)) - (operating-system image-operating-system ;<operating-system> - (default #f)) + (operating-system image-operating-system) ;<operating-system> (partition-table-type image-partition-table-type ; 'mbr or 'gpt (default 'mbr) (sanitize validate-partition-table-type)) diff --git a/gnu/installer/newt/partition.scm b/gnu/installer/newt/partition.scm index e7a97810ac..2adb4922b4 100644 --- a/gnu/installer/newt/partition.scm +++ b/gnu/installer/newt/partition.scm @@ -188,7 +188,7 @@ encryption of partition ~a (label: ~a).") file-name crypt-label) (if (string=? password confirmation) (user-partition (inherit user-part) - (crypt-password password)) + (crypt-password (make-secret password))) (begin (run-error-page (G_ "Password mismatch, please try again.") @@ -795,13 +795,13 @@ by pressing the Exit button.~%~%"))) (user-partitions (run-page eligible-devices)) (user-partitions-with-pass (prompt-luks-passwords user-partitions)) - (form (draw-formatting-page user-partitions))) + (form (draw-formatting-page user-partitions-with-pass))) ;; Make sure the disks are not in use before proceeding to formatting. (free-parted eligible-devices) (format-user-partitions user-partitions-with-pass) (installer-log-line "formatted ~a user partitions" (length user-partitions-with-pass)) - (installer-log-line "user-partitions: ~a" user-partitions) + (installer-log-line "user-partitions: ~a" user-partitions-with-pass) (destroy-form-and-pop form) - user-partitions)) + user-partitions-with-pass)) diff --git a/gnu/installer/newt/services.scm b/gnu/installer/newt/services.scm index 9951ad2212..b22024602c 100644 --- a/gnu/installer/newt/services.scm +++ b/gnu/installer/newt/services.scm @@ -99,10 +99,8 @@ non-graphical system.") #:item->text (compose G_ system-service-name) #:checkbox-tree-height 5 #:exit-button-callback-procedure - (lambda () - (raise - (condition - (&installer-step-abort))))))) + (lambda _ + (abort-to-prompt 'installer-step 'abort))))) (define (run-network-management-page) "Run a page to select among several network management methods." diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm index 84fdbe24fb..fcc936a391 100644 --- a/gnu/installer/parted.scm +++ b/gnu/installer/parted.scm @@ -148,7 +148,7 @@ (default #f)) (crypt-label user-partition-crypt-label (default #f)) - (crypt-password user-partition-crypt-password + (crypt-password user-partition-crypt-password ; <secret> (default #f)) (fs-type user-partition-fs-type (default 'ext4)) @@ -1183,7 +1183,7 @@ USER-PARTITION if it is encrypted, or the plain file-name otherwise." "Format and open the encrypted partition pointed by USER-PARTITION." (let* ((file-name (user-partition-file-name user-partition)) (label (user-partition-crypt-label user-partition)) - (password (user-partition-crypt-password user-partition))) + (password (secret-content (user-partition-crypt-password user-partition)))) (call-with-luks-key-file password (lambda (key-file) @@ -1194,6 +1194,20 @@ USER-PARTITION if it is encrypted, or the plain file-name otherwise." ((run-command-in-installer) "cryptsetup" "open" "--type" "luks" "--key-file" key-file file-name label))))) +(define (luks-ensure-open user-partition) + "Ensure partition pointed by USER-PARTITION is opened." + (unless (file-exists? (user-partition-upper-file-name user-partition)) + (let* ((file-name (user-partition-file-name user-partition)) + (label (user-partition-crypt-label user-partition)) + (password (secret-content (user-partition-crypt-password user-partition)))) + (call-with-luks-key-file + password + (lambda (key-file) + (installer-log-line "opening LUKS entry ~s at ~s" + label file-name) + ((run-command-in-installer) "cryptsetup" "open" "--type" "luks" + "--key-file" key-file file-name label)))))) + (define (luks-close user-partition) "Close the encrypted partition pointed by USER-PARTITION." (let ((label (user-partition-crypt-label user-partition))) @@ -1278,6 +1292,8 @@ respective mount-points." (user-fs-type->mount-type fs-type)) (file-name (user-partition-upper-file-name user-partition))) + (when crypt-label + (luks-ensure-open user-partition)) (mkdir-p target) (installer-log-line "mounting ~s on ~s" file-name target) (mount file-name target mount-type))) diff --git a/gnu/installer/tests.scm b/gnu/installer/tests.scm index 3c049a1c85..8785cd9a9f 100644 --- a/gnu/installer/tests.scm +++ b/gnu/installer/tests.scm @@ -280,6 +280,10 @@ instrumented for further testing." exp))) (let ((content (call-with-input-file file read-expressions))) + ;; XXX: Remove the file before re-writing it, to be sure there are no + ;; leftovers. We shouldn't have to do that as CALL-WITH-OUTPUT-FILE uses + ;; the O_TRUNC flag by default. + (delete-file file) (call-with-output-file file (lambda (port) (format port "\ diff --git a/gnu/installer/user.scm b/gnu/installer/user.scm index 224040530c..2866e4520f 100644 --- a/gnu/installer/user.scm +++ b/gnu/installer/user.scm @@ -17,17 +17,13 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu installer user) + #:use-module (gnu installer utils) #:use-module (guix records) #:use-module (guix read-print) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-9 gnu) - #:export (<secret> - secret? - make-secret - secret-content - - <user> + #:export (<user> user make-user user-name @@ -38,16 +34,6 @@ users->configuration)) -(define-record-type <secret> - (make-secret content) - secret? - (content secret-content)) - -(set-record-type-printer! - <secret> - (lambda (secret port) - (format port "<secret>"))) - (define-record-type* <user> user make-user user? diff --git a/gnu/installer/utils.scm b/gnu/installer/utils.scm index fb62fb8896..5fd2e2d425 100644 --- a/gnu/installer/utils.scm +++ b/gnu/installer/utils.scm @@ -23,6 +23,8 @@ #:use-module (guix build utils) #:use-module (guix i18n) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) + #:use-module (srfi srfi-9 gnu) #:use-module (srfi srfi-19) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) @@ -33,7 +35,12 @@ #:use-module (ice-9 regex) #:use-module (ice-9 format) #:use-module (ice-9 textual-ports) - #:export (read-lines + #:export (<secret> + secret? + make-secret + secret-content + + read-lines read-all nearest-exact-integer read-percentage @@ -58,6 +65,16 @@ with-silent-shepherd)) +(define-record-type <secret> + (make-secret content) + secret? + (content secret-content)) + +(set-record-type-printer! + <secret> + (lambda (secret port) + (format port "<secret>"))) + (define* (read-lines #:optional (port (current-input-port))) "Read lines from PORT and return them as a list." (let loop ((line (read-line port)) diff --git a/gnu/local.mk b/gnu/local.mk index ae5f2b1461..c7f0e436b5 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -53,6 +53,7 @@ # Copyright © 2022 John Kehayias <john.kehayias@protonmail.com> # Copyright © 2022 muradm <mail@muradm.net> # Copyright © 2022 Hilton Chain <hako@ultrarare.space> +# Copyright © 2022 Alex Griffin <a@ajgrf.com> # # This file is part of GNU Guix. # @@ -81,6 +82,7 @@ GNU_SYSTEM_MODULES = \ %D%/bootloader/u-boot.scm \ %D%/bootloader/depthcharge.scm \ %D%/ci.scm \ + %D%/compression.scm \ %D%/home.scm \ %D%/home/services.scm \ %D%/home/services/desktop.scm \ @@ -682,6 +684,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/herd.scm \ %D%/services/pm.scm \ %D%/services/rsync.scm \ + %D%/services/samba.scm \ %D%/services/sddm.scm \ %D%/services/spice.scm \ %D%/services/ssh.scm \ @@ -716,6 +719,7 @@ GNU_SYSTEM_MODULES = \ %D%/system/images/pine64.scm \ %D%/system/images/pinebook-pro.scm \ %D%/system/images/rock64.scm \ + %D%/system/images/wsl2.scm \ \ %D%/machine.scm \ \ @@ -761,6 +765,7 @@ GNU_SYSTEM_MODULES = \ %D%/tests/package-management.scm \ %D%/tests/reconfigure.scm \ %D%/tests/rsync.scm \ + %D%/tests/samba.scm \ %D%/tests/security.scm \ %D%/tests/security-token.scm \ %D%/tests/singularity.scm \ @@ -975,9 +980,12 @@ dist_patch_DATA = \ %D%/packages/patches/cmake-curl-certificates-3.24.patch \ %D%/packages/patches/coda-use-system-libs.patch \ %D%/packages/patches/collectd-5.11.0-noinstallvar.patch \ - %D%/packages/patches/containerd-create-pid-file.patch \ %D%/packages/patches/combinatorial-blas-awpm.patch \ %D%/packages/patches/combinatorial-blas-io-fix.patch \ + %D%/packages/patches/connman-CVE-2022-32292.patch \ + %D%/packages/patches/connman-CVE-2022-32293-pt1.patch \ + %D%/packages/patches/connman-CVE-2022-32293-pt2.patch \ + %D%/packages/patches/containerd-create-pid-file.patch \ %D%/packages/patches/cool-retro-term-wctype.patch \ %D%/packages/patches/coreutils-gnulib-tests.patch \ %D%/packages/patches/coq-fix-envvars.patch \ @@ -1081,6 +1089,8 @@ dist_patch_DATA = \ %D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \ %D%/packages/patches/fifo-map-remove-catch.hpp.patch \ %D%/packages/patches/findutils-localstatedir.patch \ + %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/flatpak-fix-path.patch \ %D%/packages/patches/flatpak-unset-gdk-pixbuf-for-sandbox.patch \ @@ -1209,7 +1219,6 @@ dist_patch_DATA = \ %D%/packages/patches/gnome-online-miners-tracker-3.patch \ %D%/packages/patches/gnome-settings-daemon-gc.patch \ %D%/packages/patches/gnome-session-support-elogind.patch \ - %D%/packages/patches/gnome-todo-libportal.patch \ %D%/packages/patches/gnome-tweaks-search-paths.patch \ %D%/packages/patches/gnupg-default-pinentry.patch \ %D%/packages/patches/gnupg-1-build-with-gcc10.patch \ @@ -1314,9 +1323,7 @@ dist_patch_DATA = \ %D%/packages/patches/irrlicht-link-against-needed-libs.patch \ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \ %D%/packages/patches/itk-snap-alt-glibc-compat.patch \ - %D%/packages/patches/jami-fix-esc-bug.patch \ - %D%/packages/patches/json-c-0.13-CVE-2020-12762.patch \ - %D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \ + %D%/packages/patches/jami-fix-crash-on-block-contact.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 \ @@ -1338,6 +1345,8 @@ dist_patch_DATA = \ %D%/packages/patches/jfsutils-add-sysmacros.patch \ %D%/packages/patches/jfsutils-gcc-compat.patch \ %D%/packages/patches/jfsutils-include-systypes.patch \ + %D%/packages/patches/json-c-0.13-CVE-2020-12762.patch \ + %D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \ %D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch \ %D%/packages/patches/julia-tracker-16-compat.patch \ %D%/packages/patches/julia-allow-parallel-build.patch \ @@ -1590,7 +1599,7 @@ dist_patch_DATA = \ %D%/packages/patches/pam-krb5-CVE-2020-10595.patch \ %D%/packages/patches/pango-skip-libthai-test.patch \ %D%/packages/patches/password-store-tree-compat.patch \ - %D%/packages/patches/pjproject-install-libpjsua2.patch \ + %D%/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \ %D%/packages/patches/pokerth-boost.patch \ %D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \ %D%/packages/patches/pthreadpool-system-libraries.patch \ @@ -1724,6 +1733,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-werkzeug-tests.patch \ %D%/packages/patches/python-zeep-Fix-pytest_httpx-test-cases.patch \ %D%/packages/patches/qemu-build-info-manual.patch \ + %D%/packages/patches/qemu-disable-aarch64-migration-test.patch \ %D%/packages/patches/qemu-glibc-2.27.patch \ %D%/packages/patches/qemu-glibc-2.30.patch \ %D%/packages/patches/qemu-fix-agent-paths.patch \ @@ -1753,7 +1763,7 @@ dist_patch_DATA = \ %D%/packages/patches/readline-6.2-CVE-2014-2524.patch \ %D%/packages/patches/renpy-use-system-fribidi.patch \ %D%/packages/patches/reposurgeon-add-missing-docbook-files.patch \ - %D%/packages/patches/r-httpuv-1.5.5-unvendor-libuv.patch \ + %D%/packages/patches/r-httpuv-1.6.6-unvendor-libuv.patch \ %D%/packages/patches/ri-li-modernize_cpp.patch \ %D%/packages/patches/ripperx-missing-file.patch \ %D%/packages/patches/rpcbind-CVE-2017-8779.patch \ diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm index 550c989c34..60d127340a 100644 --- a/gnu/machine/ssh.scm +++ b/gnu/machine/ssh.scm @@ -339,9 +339,13 @@ by MACHINE." "Raise a '&message' error condition if it is clear that deploying MACHINE's 'system' declaration would fail." (define assertions - (append (machine-check-file-system-availability machine) - (machine-check-initrd-modules machine) - (list (machine-check-forward-update machine)))) + (parameterize ((%current-system + (machine-ssh-configuration-system + (machine-configuration machine))) + (%current-target-system #f)) + (append (machine-check-file-system-availability machine) + (machine-check-initrd-modules machine) + (list (machine-check-forward-update machine))))) (define aggregate-exp ;; Gather all the expressions so that a single round-trip is enough to @@ -453,6 +457,10 @@ the 'should-roll-back' field set to SHOULD-ROLL-BACK?" (define (deploy-managed-host machine) "Internal implementation of 'deploy-machine' for MACHINE instances with an environment type of 'managed-host." + (define config (machine-configuration machine)) + (define host (machine-ssh-configuration-host-name config)) + (define system (machine-ssh-configuration-system config)) + (maybe-raise-unsupported-configuration-error machine) (when (machine-ssh-configuration-authorize? (machine-configuration machine)) @@ -466,50 +474,54 @@ have you run 'guix archive --generate-key?'") (get-string-all port)))) (machine-ssh-session machine) (machine-become-command machine))) + (mlet %store-monad ((_ (check-deployment-sanity machine)) (boot-parameters (machine-boot-parameters machine))) - (let* ((os (machine-operating-system machine)) - (host (machine-ssh-configuration-host-name - (machine-configuration machine))) - (eval (cut machine-remote-eval machine <>)) - (menu-entries (map boot-parameters->menu-entry boot-parameters)) - (bootloader-configuration (operating-system-bootloader os)) - (bootcfg (operating-system-bootcfg os menu-entries))) - (define-syntax-rule (eval/error-handling condition handler ...) - ;; Return a wrapper around EVAL such that HANDLER is evaluated if an - ;; exception is raised. - (lambda (exp) - (lambda (store) - (guard (condition ((inferior-exception? condition) - (values (begin handler ...) store))) - (values (run-with-store store (eval exp)) - store))))) - - (mbegin %store-monad - (with-roll-back #f - (switch-to-system (eval/error-handling c - (raise (formatted-message - (G_ "\ + ;; Make sure code that check %CURRENT-SYSTEM, such as + ;; %BASE-INITRD-MODULES, gets to see the right value. + (parameterize ((%current-system system) + (%current-target-system #f)) + (let* ((os (machine-operating-system machine)) + (eval (cut machine-remote-eval machine <>)) + (menu-entries (map boot-parameters->menu-entry boot-parameters)) + (bootloader-configuration (operating-system-bootloader os)) + (bootcfg (operating-system-bootcfg os menu-entries))) + (define-syntax-rule (eval/error-handling condition handler ...) + ;; Return a wrapper around EVAL such that HANDLER is evaluated if an + ;; exception is raised. + (lambda (exp) + (lambda (store) + (guard (condition ((inferior-exception? condition) + (values (begin handler ...) store))) + (values (run-with-store store (eval exp) + #:system system) + store))))) + + (mbegin %store-monad + (with-roll-back #f + (switch-to-system (eval/error-handling c + (raise (formatted-message + (G_ "\ failed to switch systems while deploying '~a':~%~{~s ~}") - host - (inferior-exception-arguments c)))) - os)) - (with-roll-back #t - (mbegin %store-monad - (upgrade-shepherd-services (eval/error-handling c - (warning (G_ "\ + host + (inferior-exception-arguments c)))) + os)) + (with-roll-back #t + (mbegin %store-monad + (upgrade-shepherd-services (eval/error-handling c + (warning (G_ "\ an error occurred while upgrading services on '~a':~%~{~s ~}~%") - host - (inferior-exception-arguments - c))) - os) - (install-bootloader (eval/error-handling c - (raise (formatted-message - (G_ "\ + host + (inferior-exception-arguments + c))) + os) + (install-bootloader (eval/error-handling c + (raise (formatted-message + (G_ "\ failed to install bootloader on '~a':~%~{~s ~}~%") - host - (inferior-exception-arguments c)))) - bootloader-configuration bootcfg))))))) + host + (inferior-exception-arguments c)))) + bootloader-configuration bootcfg)))))))) ;;; diff --git a/gnu/packages/accessibility.scm b/gnu/packages/accessibility.scm index 22e70b737a..499d79b8c8 100644 --- a/gnu/packages/accessibility.scm +++ b/gnu/packages/accessibility.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2018, 2021, 2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw> ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2022 Hunter Jozwiak <hunter.t.joz@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,6 +29,7 @@ #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system meson) #:use-module (gnu packages) #:use-module (gnu packages lisp) #:use-module (gnu packages ocaml) @@ -316,3 +318,34 @@ works with every X Window System based GUI (depends only on libX11); or as an assistant for graphic designers, who need to select individual pixels.") ;; Licensed either under Expat or GPLv2+. (license (list license:expat license:gpl2+)))) + +(define-public espeakup + (package + (name "espeakup") + (version "0.90") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/linux-speakup/espeakup") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0lmjwafvfxy07zn18v3dzjwwpnid2xffgvy2dzlwkbns8gb60ds2")))) + (build-system meson-build-system) + (native-inputs (list pkg-config)) + (inputs (list espeak-ng alsa-lib)) + (license license:gpl3+) + (synopsis "Bridge for espeak and speakup") + (description + "Espeakup is a bridge between the speakup driver implemented in +the Linux kernel and the espeak-ng text to speach synthesizer. +In order for this package to work, you need to have the following +kernel modules built: +@itemize @bullet +@item +CONFIG_SPEAKUP=m +@item +CONFIG_SPEAKUP_SOFT=m +@end itemize") + (home-page "ttps://github.com/linux-speakup/espeakup"))) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 98b591dea6..9714e8b8b0 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -2507,20 +2507,24 @@ characters can be replaced as well, as can UTF-8 characters.") (define-public tree (package (name "tree") - (version "2.0.3") + (version "2.0.4") (source (origin (method url-fetch) (uri (string-append - "http://mama.indstate.edu/users/ice/tree/src/tree-" + "https://mama.indstate.edu/users/ice/tree/src/tree-" version ".tgz")) (sha256 - (base32 "079vda37d5i3nfx12wx81z6r6bxynv2jww1z1hjziiwxbxxyf55s")))) + (base32 "0x7s9wxvf83fw4qah16kapswl2277pybw3d514zrlms9g0cr5smh")))) (build-system gnu-build-system) (arguments (list #:phases #~(modify-phases %standard-phases - (delete 'configure)) ; No configure script. + (delete 'configure) ; No configure script. + (add-after 'unpack 'fix-manpage-version + (lambda _ + (substitute* "doc/tree.1" + (("Tree 2\\.0\\.0") (string-append "Tree " #$version)))))) #:tests? #f ; No check target. #:make-flags #~(list (string-append "PREFIX=" #$output) @@ -2530,7 +2534,7 @@ characters can be replaced as well, as can UTF-8 characters.") "Tree is a recursive directory listing command that produces a depth indented listing of files, which is colorized ala dircolors if the LS_COLORS environment variable is set and output is to tty.") - (home-page "http://mama.indstate.edu/users/ice/tree/") + (home-page "https://mama.indstate.edu/users/ice/tree/") (license license:gpl2+))) (define-public lr diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 87fcca746b..183d84c549 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -221,7 +221,7 @@ the real span of the lattice.") (define-public pari-gp (package (name "pari-gp") - (version "2.13.4") + (version "2.15.0") (source (origin (method url-fetch) (uri (string-append @@ -229,11 +229,10 @@ the real span of the lattice.") version ".tar.gz")) (sha256 (base32 - "11g1pkrj12dmggj1n6r00ijpnmk3f3dpqsf1h51q34hmmv79xpmw")))) + "11anfn2lmixi83208p8qxjhwkrrad9s2qqfrl3wy9m0n1lg8ax74")))) (build-system gnu-build-system) - (native-inputs - `(("texlive" ,(texlive-updmap.cfg - (list texlive-amsfonts))))) + (native-inputs (list (texlive-updmap.cfg + (list texlive-amsfonts)))) (inputs (list gmp libx11 perl readline)) (arguments '(#:make-flags '("all") @@ -261,7 +260,7 @@ PARI is also available as a C library to allow for faster computations.") (define-public gp2c (package (name "gp2c") - (version "0.0.12") + (version "0.0.13") (source (origin (method url-fetch) (uri (string-append @@ -269,7 +268,7 @@ PARI is also available as a C library to allow for faster computations.") version ".tar.gz")) (sha256 (base32 - "039ip7qkwwv46wrcdrz7y12m30kazzkjr44kqbc0h137g4wzd7zf")))) + "0dlxlrwwvhmjljjzsq95fsm14j5n5353snd92b0pdg9ylzn784r6")))) (build-system gnu-build-system) (native-inputs (list perl)) (inputs (list pari-gp)) diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index 29f1e6fc36..13ffdd74d3 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -29,6 +29,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) + #:use-module (gnu packages base) #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages check) @@ -1054,6 +1055,29 @@ attempting to maintain ISTP compliance @end itemize\n") (license license:expat))) +(define-public python-ephem + (package + (name "python-ephem") + (version "4.1.3") + (source (origin + (method url-fetch) + (uri (pypi-uri "ephem" version)) + (sha256 + (base32 + "0smmm3l8csnw9rrimh8mpyjrm80jaafjl184spnji98vk22qd8bz")))) + (build-system python-build-system) + (native-inputs (list tzdata)) + (home-page "https://rhodesmill.org/pyephem/") + (synopsis "Compute positions of the planets and stars") + (description + "PyEphem provides an @code{ephem} Python package for performing +high-precision astronomy computations. + +The name ephem is short for the word ephemeris, which is the traditional term +for a table giving the position of a planet, asteroid, or comet for a series +of dates.") + (license license:expat))) + (define-public python-photutils (package (name "python-photutils") @@ -1823,6 +1847,27 @@ N-Chilada and RAMSES AMR outputs.") (modify-inputs (package-inputs libsep) (prepend python-numpy))))) +(define-public python-suntime + (package + (name "python-suntime") + (version "1.2.5") + (source (origin + (method url-fetch) + (uri (pypi-uri "suntime" version)) + (sha256 + (base32 + "0ja64w293wjx76q3z18ikx4rdihwkbj6pnjpbs82ycyyzhfnbpz4")))) + (build-system python-build-system) + (propagated-inputs (list python-dateutil)) + (home-page "https://github.com/SatAgro/suntime") + (synopsis "Sunset and sunrise time calculation python library") + (description + "Python library doing sunrise and sunset time calculation. + +Takes a WGS84 (GPS) latitude/longitude as input as well as an UTC or local +datetime object.") + (license license:lgpl3+))) + (define-public python-asdf (package (name "python-asdf") diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 46278d326c..10b70bab06 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -6313,14 +6313,14 @@ of gene-level counts.") (define-public r-valr (package (name "r-valr") - (version "0.6.4") + (version "0.6.5") (source (origin (method url-fetch) (uri (cran-uri "valr" version)) (sha256 (base32 - "0dd41irvibh6rwi52bw4zg4m7wpyihlp1kdkb8fdji3csw2fiz4k")))) + "1674sqclgi4l5r544pjjsblzl1ix2cy961jpkncb3ym47y6c1msw")))) (build-system r-build-system) (propagated-inputs (list r-broom @@ -6993,14 +6993,14 @@ fitting of some classes of graphical Markov models.") (define-public r-perfmeas (package (name "r-perfmeas") - (version "1.2.1") + (version "1.2.5") (source (origin (method url-fetch) (uri (cran-uri "PerfMeas" version)) (sha256 (base32 - "1x7ancmb41zd1js24rx94plgbssyc71z2bvpic6mg34xjkwdjw93")))) + "13yjk0kwpbsqwl056hzf0zj2br1mk4faqcn1whdfxmq348c14hjb")))) (properties `((upstream-name . "PerfMeas"))) (build-system r-build-system) (propagated-inputs @@ -7976,14 +7976,14 @@ abnormal copy number.") (define-public r-htscluster (package (name "r-htscluster") - (version "2.0.8") + (version "2.0.10") (source (origin (method url-fetch) (uri (cran-uri "HTSCluster" version)) (sha256 (base32 - "0wnbfh6hdx8692jilgmv8sys1zm6fqc6mim7vvjhyqlmpm8gm0kg")))) + "0scn4fsfmlkzxibfhsh6krm2cl9c8hsmyjgn48k9dyjf0ylyxg9n")))) (properties `((upstream-name . "HTSCluster"))) (build-system r-build-system) (propagated-inputs @@ -13147,14 +13147,14 @@ rate} (FDR).") (define-public r-activedriverwgs (package (name "r-activedriverwgs") - (version "1.1.2") + (version "1.2.0") (source (origin (method url-fetch) (uri (cran-uri "ActiveDriverWGS" version)) (sha256 (base32 - "13b5yazgv9kckcp6gck183mh1m0q8lc5ixagmcy9s8kv2wz7wq45")))) + "0xnplgwxd197a4d422bsxg753q158i12ils16awd1cw30wafdxkk")))) (properties `((upstream-name . "ActiveDriverWGS"))) (build-system r-build-system) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 8653bb8a4c..a63c52a79c 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7273,6 +7273,228 @@ sequence.") (supported-systems '("i686-linux" "x86_64-linux")) (license license:bsd-3))) +(define-public r-gutils + (let ((commit "10e36c7b580aacb2d952140a3fdd82418aaddea6") + (revision "1")) + (package + (name "r-gutils") + (version (git-version "0.2.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mskilab/gUtils") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1wq9kd1afzy7ii510r20c4n9fkykj6p15q5c85ws27h1q5w4ghxy")))) + (properties `((upstream-name . "gUtils"))) + (build-system r-build-system) + (propagated-inputs + (list r-biocgenerics + r-data-table + r-genomeinfodb + r-genomicranges + r-iranges + r-matrix + r-s4vectors + r-stringr)) + (home-page "https://github.com/mskilab/gUtils") + (synopsis "Additional capabilities and speed for GenomicRanges operations") + (description + "This is an R package providing additional capabilities and speed for +@code{GenomicRanges} operations.") + (license license:gpl2)))) + +(define-public r-bamutils + (let ((commit "639dba901f16944fa1b7a8d7048701ba86a2cdb8") + (revision "1")) + (package + (name "r-bamutils") + (version (git-version "0.0.0.9000" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mskilab/bamutils/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0qwby2v5rydnipvf1iv1wz9nf02yq98k0xbc4inf9mqc54jwacs0")))) + (properties `((upstream-name . "bamUtils"))) + (build-system r-build-system) + (propagated-inputs + (list r-abind + r-biocgenerics + r-data-table + r-genomicalignments + r-genomicranges + r-gutils + r-rsamtools + r-variantannotation)) + (home-page "https://github.com/mskilab/bamutils/") + (synopsis "Utility functions for manipulating BAMs") + (description "This package provides utility functions for manipulating +BAM files.") + (license license:gpl2)))) + +(define-public r-gtrack + (let ((commit "a694fa36cedafca2658da79fc8e5b673535b15e5") + (revision "1")) + (package + (name "r-gtrack") + (version (git-version "0.1.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mskilab/gTrack/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "070qlrbqsbj9max2vx740zigqh0ymvnw2pm1ia5la3wb4dbfwh2b")))) + (properties `((upstream-name . "gTrack"))) + (build-system r-build-system) + (propagated-inputs + (list r-biocgenerics + r-data-table + r-genomeinfodb + r-genomicranges + r-gutils + r-iranges + r-matrix + r-rcolorbrewer + r-rcpp + r-rcurl + r-rtracklayer + r-s4vectors)) + (home-page "https://github.com/mskilab/gTrack/") + (synopsis "Plot tracks of complex genomic data across multiple genomic windows") + (description + "This package provides an object for plotting GRanges, RleList, UCSC +file formats, and ffTrack objects in multi-track panels.") + (license license:gpl2)))) + +(define-public r-gchain + (let ((commit "dc393e8dd0d8efaf36270c04d7112db8553db36a") + (revision "1")) + (package + (name "r-gchain") + (version (git-version "0.2.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mskilab/gChain/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "105wgi5w2fhwq1grsvj6zjigwg0sny3z7zr577q8ki3qffjwdkj0")))) + (properties `((upstream-name . "gChain"))) + (build-system r-build-system) + (propagated-inputs + (list r-bamutils + r-biostrings + r-data-table + r-genomicalignments + r-genomicranges + r-gtrack + r-gutils + r-matrix + r-rtracklayer)) + (home-page "https://github.com/mskilab/gChain/") + (synopsis "Additional capabilities and speed for GenomicRanges operations") + (description + "This R package provides additional capabilities and speed for +GenomicRanges operations.") + (license license:gpl2)))) + +(define-public r-skitools + (let ((commit "22d107d32f063eb891eb5e7fb36996d1c0b0d2bc") + (revision "1")) + (package + (name "r-skitools") + (version (git-version "0.0.0.9000" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mskilab/skitools/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1977d9bkdk9l2n6niahfj9vksh9l1ga4g7c3b3x27lj1gc0qgr4z")))) + (properties `((upstream-name . "skitools"))) + (build-system r-build-system) + (propagated-inputs + (list r-biostrings + r-complexheatmap + r-data-table + r-devtools + r-dt + r-gchain + r-genomeinfodb + r-genomicranges + r-ggplot2 + r-gplots + r-gutils + r-htmlwidgets + r-hwriter + r-igraph + r-iranges + r-plotly + r-rcolorbrewer + r-reshape2 + r-s4vectors + r-stringr + r-variantannotation)) + (home-page "https://github.com/mskilab/skitools/") + (synopsis "Various mskilab R utilties") + (description + "This package provides R miscellaneous utilities for basic data +manipulation, debugging, visualization, lsf management, and common mskilab +tasks.") + (license license:expat)))) + +(define-public r-chromunity + (let ((commit "09fce8bc12cb84b45a6ea25bf8db6e5b75113d4f") + (revision "1")) + (package + (name "r-chromunity") + (version (git-version "0.0.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mskilab/chromunity") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0lp0h614k8fq6h9gpbylk4chh7q6w4qda8lx03ajrpppxmg7al2d")))) + (properties `((upstream-name . "chromunity"))) + (build-system r-build-system) + (propagated-inputs + (list r-arrow + r-biocgenerics + r-data-table + r-gchain + r-genomicranges + r-gutils + r-igraph + r-magrittr + r-mass + r-matrix + r-pbmcapply + r-plyr + r-r6 + r-skitools + r-zoo)) + (home-page "https://github.com/mskilab/chromunity") + (synopsis "Discovery of communities in Pore-C concatemers") + (description "This is a package for the discovery of communities in +Pore-C concatemers.") + (license license:gpl3)))) + (define-public r-presto (let ((commit "052085db9c88aa70a28d11cc58ebc807999bf0ad") (revision "0")) @@ -12514,6 +12736,12 @@ fasta subsequences.") (substitute* '("requirements.txt" "cooler.egg-info/requires.txt") (("cytoolz.*<.*0.11") "cytoolz")))) + ;; This version of flake8 just won't work with this version of + ;; pytest, because of dependency pinning. + (add-after 'unpack 'do-not-use-flake8 + (lambda _ + (substitute* "setup.cfg" + (("addopts = --flake8") "addopts = ")))) (add-after 'unpack 'patch-tests (lambda _ (substitute* "tests/test_create.py" @@ -12522,10 +12750,13 @@ fasta subsequences.") "access to genome.ucsc.edu\")\n" "def test_roundtrip"))) (substitute* "tests/test_util.py" - (("def test_fetch_chromsizes") - (string-append "@pytest.mark.skip(reason=\"requires network " - "access to genome.ucsc.edu\")\n" - "def test_fetch_chromsizes"))) + (("def test_fetch_chromsizes") + (string-append "@pytest.mark.skip(reason=\"requires network " + "access to genome.ucsc.edu\")\n" + "def test_fetch_chromsizes")) + ;; See https://github.com/open2c/cooler/issues/287 + (("skipif\\(six.PY2, reason=\"Scipy on Py2 is too old\"") + "skip(reason=\"Scipy is too new\"")) ;; This test depends on ipytree, which contains a lot of minified ;; JavaScript. (substitute* "tests/test_fileops.py" @@ -15541,47 +15772,49 @@ for the analysis and visualization of raw nanopore signal.") (license license:mpl2.0))) (define-public python-pyvcf - (package - (name "python-pyvcf") - (version "0.6.8") - ;; Use git, because the PyPI tarballs lack test data. - (source - (origin - (method git-fetch) - (uri (git-reference + (let ((commit "476169cd457ba0caa6b998b301a4d91e975251d9") + (revision "0")) + (package + (name "python-pyvcf") + (version (git-version "0.6.8" revision commit)) + ;; Use git, because the PyPI tarballs lack test data. + (source + (origin + (method git-fetch) + (uri (git-reference (url "https://github.com/jamescasbon/PyVCF.git") ;; Latest release is not tagged. - (commit "bfcedb9bad1a14074ac4526ffdb610611e073810"))) - (file-name (git-file-name name version)) - (sha256 + (commit commit))) + (file-name (git-file-name name version)) + (sha256 (base32 - "0c7lsssns3zp8fh2ibllzzra003srg9vbxqzmq6654akbzdb7lrf")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-sample-script - (lambda _ - ;; Add Python 3 compatibility to this sample script. - (substitute* "scripts/vcf_sample_filter.py" - (("print (.*)\n" _ arg) - (string-append "print(" arg ")\n"))))) - (add-after 'install 'remove-installed-tests - ;; Do not install test files. - (lambda* (#:key inputs outputs #:allow-other-keys) - (delete-file-recursively (string-append + "0qf9lwj7r2hjjp4bd4vc7nayrhblfm4qcqs4dbd43a6p4bj2jv5p")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-sample-script + (lambda _ + ;; Add Python 3 compatibility to this sample script. + (substitute* "scripts/vcf_sample_filter.py" + (("print (.*)\n" _ arg) + (string-append "print(" arg ")\n"))))) + (add-after 'install 'remove-installed-tests + ;; Do not install test files. + (lambda* (#:key inputs outputs #:allow-other-keys) + (delete-file-recursively (string-append (site-packages inputs outputs) "/vcf/test"))))))) - (native-inputs - ;; Older setuptools is needed for use_2to3. - (list python-cython python-setuptools)) - (propagated-inputs - (list python-pysam python-rpy2)) - (home-page "https://github.com/jamescasbon/PyVCF") - (synopsis "Variant Call Format parser for Python") - (description "This package provides a @acronym{VCF,Variant Call Format} + (native-inputs + ;; Older setuptools is needed for use_2to3. + (list python-cython python-setuptools-for-tensorflow)) + (propagated-inputs + (list python-pysam python-rpy2)) + (home-page "https://github.com/jamescasbon/PyVCF") + (synopsis "Variant Call Format parser for Python") + (description "This package provides a @acronym{VCF,Variant Call Format} parser for Python.") - (license license:expat))) + (license license:expat)))) (define-public nanosv (package @@ -15996,6 +16229,43 @@ BigWig files, as well as efficient region coverage summary over intervals from both types of files.") (license license:expat))) +(define-public mudskipper + (package + (name "mudskipper") + (version "0.1.0") + (source (origin + (method url-fetch) + (uri (crate-uri "mudskipper" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1y7fnlz6irmxdmv6bxzm95w4ws4vzldlrh8npvgxmdnrz9pgb1dv")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #false ;fail because the "mudskipper" crate cannot be found + #:cargo-inputs + (("rust-bio" ,rust-bio-0.39) + ("rust-bio-types" ,rust-bio-types-0.12) + ("rust-clap" ,rust-clap-2) + ("rust-coitrees" ,rust-coitrees-0.2) + ("rust-env-logger" ,rust-env-logger-0.9) + ("rust-fnv" ,rust-fnv-1) + ("rust-indicatif" ,rust-indicatif-0.16) + ("rust-libradicl" ,rust-libradicl-0.4) + ("rust-linecount" ,rust-linecount-0.1) + ("rust-log" ,rust-log-0.4) + ("rust-num-cpus" ,rust-num-cpus-1) + ("rust-rust-htslib" ,rust-rust-htslib-0.38)))) + (native-inputs + (list cmake pkg-config)) + (inputs + (list zlib xz)) + (home-page "https://github.com/OceanGenomics/mudskipper") + (synopsis "Convert genomic alignments to transcriptomic BAM/RAD files.") + (description "Mudskipper is a tool for projecting genomic alignments to +transcriptomic coordinates.") + (license license:bsd-3))) + (define-public r-ascat (package (name "r-ascat") @@ -16155,6 +16425,29 @@ integration, exploration, and analysis of high-dimensional single-cell cytometry and imaging data.") (license license:expat)))) +(define-public r-compgenomrdata + (let ((commit "24484cb77631e1123ead6c329b9d62c160e600c6") + (revision "1")) + (package + (name "r-compgenomrdata") + (version (git-version "0.1.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/compgenomr/compGenomRData") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06gdvz4m4qlb1ylv10qfx09zv4c95cm7nps4y2s67m946kv8czv8")))) + (properties `((upstream-name . "compGenomRData"))) + (build-system r-build-system) + (home-page "https://github.com/compgenomr/compGenomRData") + (synopsis "Data for Computational Genomics with R book") + (description "This package provides data for the book \"Computational +Genomics with R\".") + (license license:gpl3)))) + (define-public r-cytonorm (let ((commit "e4b9d343ee65db3c422800f1db3e77c25abde987") (revision "1")) diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm index 4468d71088..ccfe91257b 100644 --- a/gnu/packages/busybox.scm +++ b/gnu/packages/busybox.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014 John Darrington <jmd@gnu.org> ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018–2022 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2022 LuHui <luhux76@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,66 +46,74 @@ "0jfm9fik7nv4w21zqdg830pddgkdjmplmna9yjn9ck1lwn4vsps1")))) (build-system gnu-build-system) (arguments - '(#:phases - (modify-phases %standard-phases - (add-before 'configure 'disable-timestamps - (lambda _ - (setenv "KCONFIG_NOTIMESTAMP" "1"))) - (add-before 'configure 'disable-taskset - ;; This feature fails its tests in the build environment, - ;; was default 'n' until after 1.26.2. - (lambda _ - (substitute* "util-linux/taskset.c" - (("default y") "default n")))) - (replace 'configure - (lambda* (#:key make-flags #:allow-other-keys) - (apply invoke "make" "defconfig" make-flags))) - (add-after 'configure 'dont-install-to-usr - (lambda _ - (substitute* ".config" - (("# CONFIG_INSTALL_NO_USR is not set") - "CONFIG_INSTALL_NO_USR=y")))) - (replace 'check - (lambda* (#:key make-flags #:allow-other-keys) - (substitute* '("testsuite/du/du-s-works" - "testsuite/du/du-works") - (("/bin") "/etc")) ; there is no /bin but there is a /etc + (list #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'disable-timestamps + (lambda _ + (setenv "KCONFIG_NOTIMESTAMP" "1"))) + (add-before 'configure 'disable-taskset + ;; This feature fails its tests in the build environment, + ;; was default 'n' until after 1.26.2. + (lambda _ + (substitute* "util-linux/taskset.c" + (("default y") "default n")))) + (replace 'configure + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "defconfig" make-flags))) + (add-after 'configure 'dont-install-to-usr + (lambda _ + (substitute* ".config" + (("# CONFIG_INSTALL_NO_USR is not set") + "CONFIG_INSTALL_NO_USR=y")))) + (replace 'check + (lambda* (#:key tests? make-flags #:allow-other-keys) + (substitute* '("testsuite/du/du-s-works" + "testsuite/du/du-works") + (("/bin") "/etc")) ; there is no /bin but there is a /etc - ;; There is no /usr/bin or /bin - replace it with /gnu/store - (substitute* "testsuite/cpio.tests" - (("/usr/bin") (%store-directory)) - (("usr") (car (filter (negate string-null?) - (string-split (%store-directory) #\/))))) + ;; There is no /usr/bin or /bin - replace it with + ;; /gnu/store. + (substitute* "testsuite/cpio.tests" + (("/usr/bin") (%store-directory)) + (("usr") (car (filter (negate string-null?) + (string-split (%store-directory) #\/))))) - (substitute* "testsuite/date/date-works-1" - (("/bin/date") (which "date"))) + (substitute* "testsuite/date/date-works-1" + (("/bin/date") (which "date"))) - (substitute* "testsuite/start-stop-daemon.tests" - (("/bin/false") (which "false"))) + (substitute* "testsuite/start-stop-daemon.tests" + (("/bin/false") (which "false"))) - ;; The pidof tests assume that pid 1 is called "init" but that is not - ;; true in guix build environment - (substitute* "testsuite/pidof.tests" - (("-s init") "-s $(cat /proc/1/comm)")) + ;; The pidof tests assume that pid 1 is called "init" but + ;; that is not true in guix build environment + (substitute* "testsuite/pidof.tests" + (("-s init") "-s $(cat /proc/1/comm)")) - ;; This test cannot possibly pass. - ;; It is trying to test that "which ls" returns "/bin/ls" when PATH is not set. - ;; However, this relies on /bin/ls existing. Which it does not in guix. - (delete-file "testsuite/which/which-uses-default-path") - (rmdir "testsuite/which") + ;; This test cannot possibly pass. It is trying to test + ;; that "which ls" returns "/bin/ls" when PATH is not set. + ;; However, this relies on /bin/ls existing. Which it does + ;; not in guix. + (delete-file "testsuite/which/which-uses-default-path") + (rmdir "testsuite/which") - (apply invoke "make" - ;; "V=1" - "SKIP_KNOWN_BUGS=1" - "SKIP_INTERNET_TESTS=1" - "check" make-flags))) - (replace 'install - (lambda* (#:key outputs make-flags #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (apply invoke "make" - (string-append "CONFIG_PREFIX=" out) - "install" make-flags))))))) - (native-inputs (list perl ; needed to generate the man pages (pod2man) + (when tests? + (apply invoke "make" + ;; "V=1" + "SKIP_KNOWN_BUGS=1" + "SKIP_INTERNET_TESTS=1" + "check" make-flags)))) + (replace 'install + (lambda* (#:key outputs make-flags #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (apply invoke "make" + (string-append "CONFIG_PREFIX=" out) + "install" make-flags))))) + #:make-flags + #~(let ((target #$(%current-target-system))) + (if target + (list (string-append "CROSS_COMPILE=" target "-")) + '())))) + (native-inputs (list perl ; needed to generate the man pages (pod2man) ;; The following are needed by the tests. inetutils (@ (gnu packages base) which) diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 80740d8bc1..45e5fba89b 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -403,7 +403,7 @@ traditional Chinese characters.") (license (list license:gpl2+ license:lgpl2.1+)))) (define-public gsimplecal - (let ((version "2.2")) + (let ((version "2.4.1")) (package (name "gsimplecal") (version version) @@ -413,16 +413,17 @@ traditional Chinese characters.") (url "https://github.com/dmedvinsky/gsimplecal/") (commit (string-append "v" version)))) (file-name (git-file-name name version)) - (sha256 (base32 - "1qyf65l088dqsz25hm6s1cv18j52yaias0llqvpqwjfnvssa5cxg")) + (sha256 + (base32 + "0ypnq9q6v2l8jg0ah31d8502jig1rk2bz749ljj97wk0rg1rixpi")) (modules '((guix build utils))))) (build-system gnu-build-system) (inputs (list gtk+)) - (native-inputs - (list autoconf automake pkg-config)) + (native-inputs (list autoconf automake pkg-config)) (home-page "https://dmedvinsky.github.io/gsimplecal/") (synopsis "Lightweight calendar applet") - (description "@command{gsimplecal} is a lightweight calendar application + (description + "@command{gsimplecal} is a lightweight calendar application written in C++ using GTK. Launched once, it pops up a small calendar applet, launched again it closes the running instance. It can additionally be configured to show the current time in different timezones.") diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm index 9876192f5f..622e43ac48 100644 --- a/gnu/packages/clojure.scm +++ b/gnu/packages/clojure.scm @@ -204,14 +204,14 @@ designs.") (define-public clojure-tools (package (name "clojure-tools") - (version "1.11.1.1149") + (version "1.11.1.1165") (source (origin (method url-fetch) (uri (string-append "https://download.clojure.org/install/clojure-tools-" version ".tar.gz")) - (sha256 (base32 "196wl87br8zg3npfwpr5c1q0knxd1810vzgb0b6h195hyjf6i210")) + (sha256 (base32 "1lg97waqfcgzr3dz5426fbc4kqcsavpbqil2iyjm1dw3zrfa8ysi")) ;; Remove AOT compiled JAR. The other JAR only contains uncompiled ;; Clojure source code. (snippet diff --git a/gnu/packages/connman.scm b/gnu/packages/connman.scm index f4e6e43ec8..80869f890e 100644 --- a/gnu/packages/connman.scm +++ b/gnu/packages/connman.scm @@ -53,7 +53,10 @@ (uri (string-append "mirror://kernel.org/linux/network/connman/" "connman-" version ".tar.xz")) (sha256 - (base32 "12g5ilcnymx6i45z3359yds3cgd2dfqjyncfm92hqlymzps41yvr")))) + (base32 "12g5ilcnymx6i45z3359yds3cgd2dfqjyncfm92hqlymzps41yvr")) + (patches (search-patches "connman-CVE-2022-32292.patch" + "connman-CVE-2022-32293-pt1.patch" + "connman-CVE-2022-32293-pt2.patch")))) (build-system gnu-build-system) (arguments (list #:configure-flags diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm index 029f0d4ba4..59eea423a1 100644 --- a/gnu/packages/containers.scm +++ b/gnu/packages/containers.scm @@ -274,7 +274,7 @@ configure network interfaces in Linux containers.") (define-public podman (package (name "podman") - (version "4.2.0") + (version "4.2.1") (source (origin (method git-fetch) @@ -282,7 +282,7 @@ configure network interfaces in Linux containers.") (url "https://github.com/containers/podman") (commit (string-append "v" version)))) (sha256 - (base32 "00wyjppd11hznmals9ax4s2qjklj6p1vfz4jjkp50bk8q4blxfbj")) + (base32 "0ph8gf5gk9z1hm1v5kv924dipswvgrz0sgk23plnh2q0vbnh4wvv")) (file-name (git-file-name name version)))) (build-system gnu-build-system) diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm index bbb34df27d..60937af750 100644 --- a/gnu/packages/coq.scm +++ b/gnu/packages/coq.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2020 Robin Green <greenrd@greenrd.org> ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> +;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,6 +44,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system ocaml) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) @@ -52,7 +54,7 @@ (define-public coq-core (package (name "coq-core") - (version "8.15.2") + (version "8.16.0") (source (origin (method git-fetch) @@ -62,7 +64,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "1m6dilfbp9q8j8sya4ap82q72m3a4mq6m96gzvi6vgv04cr6r33c")) + "1rp4m2yjldsz0kj7p2fsc312n740fr8kg99jlsk8aq3h524qz2h8")) (patches (search-patches "coq-fix-envvars.patch")))) (native-search-paths (list (search-path-specification @@ -148,7 +150,7 @@ It is developed using Objective Caml and Camlp5.") (propagated-inputs (list coq coq-ide-server)) (inputs - `(("lablgtk3" ,lablgtk3))))) + (list lablgtk3 ocaml-lablgtk3-sourceview3)))) (define-public proof-general ;; The latest release is from 2016 and there has been more than 450 commits @@ -240,7 +242,7 @@ provers.") (define-public coq-flocq (package (name "coq-flocq") - (version "4.0.0") + (version "4.1.0") (source (origin (method git-fetch) @@ -250,7 +252,7 @@ provers.") (file-name (git-file-name name version)) (sha256 (base32 - "159ykkhxz7zms28r4v8jjccapl5vv00csdz29mfy83lwrv5b6rwk")))) + "1yscj1120wch6myakaia03j11qji416v78ylx842d23hrbaqwmw5")))) (build-system gnu-build-system) (native-inputs (list autoconf automake ocaml which coq)) @@ -287,7 +289,7 @@ inside Coq.") (define-public coq-gappa (package (name "coq-gappa") - (version "1.5.1") + (version "1.5.2") (source (origin (method git-fetch) @@ -297,7 +299,7 @@ inside Coq.") (file-name (git-file-name name version)) (sha256 (base32 - "18y4mv44mcgyam77rf4xs7l06mg7pxx1qli3yvs0kklmnnvwa463")))) + "0l65ah81yj9vabgkwqh47c02qvscvl8nl60gqn1qrs47dx1pi80q")))) (build-system gnu-build-system) (native-inputs (list autoconf @@ -315,7 +317,9 @@ inside Coq.") (arguments `(#:configure-flags (list (string-append "COQUSERCONTRIB=" (assoc-ref %outputs "out") - "/lib/coq/user-contrib")) + "/lib/coq/user-contrib") + (string-append "OCAMLFIND_DESTDIR=" (assoc-ref %outputs "out") + "/lib/ocaml/site-lib")) #:phases (modify-phases %standard-phases (add-before 'configure 'fix-remake @@ -345,7 +349,7 @@ assistant.") (define-public coq-mathcomp (package (name "coq-mathcomp") - (version "1.14.0") + (version "1.15.0") (source (origin (method git-fetch) @@ -354,7 +358,7 @@ assistant.") (commit (string-append "mathcomp-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1rqg47dg84wr6d9v2pzna54dm62awcm8xdwx4dqwdwhf58fjxa9i")))) + (base32 "158zl36zbvi5qx2nqbfnrg00jpgp6hjr5hmls7d8d0421ar6b67i")))) (build-system gnu-build-system) (native-inputs (list ocaml which coq)) @@ -431,7 +435,7 @@ theorems between the two libraries.") (define-public coq-bignums (package (name "coq-bignums") - (version "8.15.0") + (version "8.16.0") (source (origin (method git-fetch) (uri (git-reference @@ -440,7 +444,7 @@ theorems between the two libraries.") (file-name (git-file-name name version)) (sha256 (base32 - "093klwlhclgyrba1iv18dyz1qp5f0lwiaa7y0qwvgmai8rll5fns")))) + "07ndnm7pndmai3a2bkcmwjfjzfaqyq19c5an15hmhgmd0rdy4z8c")))) (build-system gnu-build-system) (native-inputs (list ocaml coq)) @@ -450,7 +454,9 @@ theorems between the two libraries.") `(#:tests? #f ; No test target. #:make-flags (list (string-append "COQLIBINSTALL=" (assoc-ref %outputs "out") - "/lib/coq/user-contrib")) + "/lib/coq/user-contrib") + (string-append "COQPLUGININSTALL=" (assoc-ref %outputs "out") + "/lib/ocaml/site-lib/")) #:phases (modify-phases %standard-phases (delete 'configure)))) @@ -463,7 +469,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.") (define-public coq-interval (package (name "coq-interval") - (version "4.4.0") + (version "4.5.2") (source (origin (method git-fetch) @@ -473,7 +479,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.") (file-name (git-file-name name version)) (sha256 (base32 - "1rlcbv1nqm7zv60n63lca6nnxcq3c18akgzl72s1n3h89gvhs87z")))) + "138vgb0bq6wkygrhkahjgb9spwpzc6x6kkycj2qnf5naxx1z412w")))) (build-system gnu-build-system) (native-inputs (list autoconf automake ocaml which coq)) @@ -486,7 +492,9 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.") (arguments `(#:configure-flags (list (string-append "COQUSERCONTRIB=" (assoc-ref %outputs "out") - "/lib/coq/user-contrib")) + "/lib/coq/user-contrib") + (string-append "OCAMLFIND_DESTDIR=" (assoc-ref %outputs "out") + "/lib/ocaml/site-lib")) #:phases (modify-phases %standard-phases (add-before 'configure 'fix-remake @@ -557,11 +565,11 @@ uses Ltac to synthesize the substitution operation.") (method git-fetch) (uri (git-reference (url "https://github.com/mattam82/Coq-Equations") - (commit (string-append "v" version "-8.15")))) + (commit (string-append "v" version "-8.16")))) (file-name (git-file-name name version)) (sha256 (base32 - "1vfcfpsp9zyj0sw0cwibk76nj6n0r6gwh8m1aa3lbvc0b1kbm32k")))) + "08f756vgdd1wklkarg0b93j4n5mhkqm5ixxrhyb23dcv2dwhc8yg")))) (build-system gnu-build-system) (native-inputs (list ocaml coq camlp5)) @@ -571,7 +579,10 @@ uses Ltac to synthesize the substitution operation.") `(#:test-target "test-suite" #:make-flags (list (string-append "COQLIBINSTALL=" (assoc-ref %outputs "out") - "/lib/coq/user-contrib")) + "/lib/coq/user-contrib") + (string-append "COQPLUGININSTALL=" + (assoc-ref %outputs "out") + "/lib/ocaml/site-lib/")) #:phases (modify-phases %standard-phases (replace 'configure @@ -685,3 +696,78 @@ for goals involving set operations. @end itemize") (home-page "https://gitlab.mpi-sws.org/iris/stdpp") (license license:bsd-3))) + +(define-public coq-mathcomp-finmap + (package + (name "coq-mathcomp-finmap") + (version "1.5.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/math-comp/finmap") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1k72wpp15xa5ag358jl8a71gschng0bgbaqjx0l5a0in6x5adafh")))) + (build-system gnu-build-system) + (arguments + `(;; No tests supplied in Makefile.common. + ;; The project doesn't appear to have plans to include tests in + ;; the future. + #:tests? #f + #:make-flags (list (string-append "COQLIBINSTALL=" + (assoc-ref %outputs "out") + "/lib/coq/user-contrib")) + #:phases (modify-phases %standard-phases + (delete 'configure)))) + (inputs (list coq coq-stdlib coq-mathcomp which)) + (synopsis "Finite sets and finite types for coq-mathcomp") + (description + "This library is an extension of coq-mathcomp which supports finite sets +and finite maps on choicetypes (rather than finite types). This includes +support for functions with finite support and multisets. The library also +contains a generic order and set libary, which will eventually be used to +subsume notations for finite sets.") + (home-page "https://math-comp.github.io/") + (license license:cecill-b))) + +(define-public coq-mathcomp-bigenough + (package + (name "coq-mathcomp-bigenough") + (version "1.0.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/math-comp/bigenough") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "02f4dv4rz72liciwxb2k7acwx6lgqz4381mqyq5854p3nbyn06aw")))) + (build-system gnu-build-system) + (arguments + `(;; No references to tests in Makefile.common. + ;; It doesn't appear as though tests will be included + ;; by the packaged project in the future. + #:tests? #f + #:make-flags ,#~(list (string-append "COQBIN=" + #$(this-package-input "coq-core") + "/bin/") + (string-append "COQMF_COQLIB=" + (assoc-ref %outputs "out") + "/lib/ocaml/site-lib/coq") + (string-append "COQLIBINSTALL=" + (assoc-ref %outputs "out") + "/lib/coq/user-contrib")) + #:phases (modify-phases %standard-phases + (delete 'configure)))) + (propagated-inputs (list coq coq-core coq-mathcomp which)) + (home-page "https://math-comp.github.io/") + (synopsis "Small library to do epsilon - N reasoning") + (description + "The package is used for reasoning with big enough objects (mostly +natural numbers). This package is essentially for backward compatibility +purposes as @code{bigenough} will be subsumed by the near tactics. The +formalization is based on the Mathematical Components library.") + (license license:cecill-b))) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 64e0e8b0b1..87f19f2640 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -287,14 +287,14 @@ etc.") (define-public r-datawizard (package (name "r-datawizard") - (version "0.5.0") + (version "0.6.0") (source (origin (method url-fetch) (uri (cran-uri "datawizard" version)) (sha256 (base32 - "022bbfaszbpml3i281cal7z0y1i380i1zjnhk1ldy5r535vs9cgq")))) + "1r89h5npv8iwsvylkpazfpcadgh55zd336rz8hndbzp0w9dcmpli")))) (properties `((upstream-name . "datawizard"))) (build-system r-build-system) (propagated-inputs @@ -382,13 +382,13 @@ visualization of their differences.") (define-public r-dixontest (package (name "r-dixontest") - (version "1.0.3") + (version "1.0.4") (source (origin (method url-fetch) (uri (cran-uri "dixonTest" version)) (sha256 - (base32 "1a3yc30g5rbb0jhm2b0iir5i1dy4jyl67spkhx4yysg4snz131wv")))) + (base32 "0gz39s1z987bg56vwrpcs14wzyf7p07s7l7z9napz0i38564wsdq")))) (properties `((upstream-name . "dixonTest"))) (build-system r-build-system) (native-inputs (list gfortran)) @@ -603,14 +603,14 @@ pronounceable identifiers.") (define-public r-googlesheets4 (package (name "r-googlesheets4") - (version "1.0.0") + (version "1.0.1") (source (origin (method url-fetch) (uri (cran-uri "googlesheets4" version)) (sha256 (base32 - "0yncqwv9l5knyrv88ys5gwcv44hl1j0mbklpins6v7f9m9v7s40a")))) + "14b5lzn6vjn72mw7vf3lzm2ppbjf0wr0n6sw0v5r6h4lk37cnki8")))) (properties `((upstream-name . "googlesheets4"))) (build-system r-build-system) (propagated-inputs @@ -692,14 +692,14 @@ easier.") (define-public r-rticles (package (name "r-rticles") - (version "0.23") + (version "0.24") (source (origin (method url-fetch) (uri (cran-uri "rticles" version)) (sha256 (base32 - "1ipblw3rmkma22jl2hf1pyfm6l8k31zcmm3swmwii6k0x7khiav1")))) + "05idvyfjfa4f244km4sxripg8gndvganx5s0ch00xbi4cqnlr2pq")))) (properties `((upstream-name . "rticles"))) (build-system r-build-system) (propagated-inputs @@ -714,17 +714,24 @@ for authoring journal articles and conference submissions.") (define-public r-babelwhale (package (name "r-babelwhale") - (version "1.0.3") + (version "1.1.0") (source (origin (method url-fetch) (uri (cran-uri "babelwhale" version)) (sha256 - (base32 "0ph825dwvr48fhamy1l5564linz7cj7b9sj511as77f1yqycv4a2")))) + (base32 "01l8vwyz3bx0iks6cjs5y9ifdsnc1p1yqp4i0kzqd1gjhycizv6y")))) (properties `((upstream-name . "babelwhale"))) (build-system r-build-system) (propagated-inputs - (list r-crayon r-dplyr r-dynutils r-processx r-purrr)) + (list r-crayon + r-digest + r-dplyr + r-dynutils + r-fs + r-glue + r-processx + r-purrr)) (home-page "https://github.com/dynverse/babelwhale") (synopsis "Talking to Docker and Singularity containers") (description @@ -1016,13 +1023,13 @@ known as Dynamic Linear Models.") (define-public r-zoo (package (name "r-zoo") - (version "1.8-10") + (version "1.8-11") (source (origin (method url-fetch) (uri (cran-uri "zoo" version)) (sha256 (base32 - "0izd66dywq6qd62hdp64apncainrrb9mgmm19wf6a8jc03c858n9")))) + "19cw09bhwj2qyd72765ym1cm2wmhh801ccif889nzq5gfpw513l4")))) (build-system r-build-system) (propagated-inputs (list r-lattice)) @@ -1259,14 +1266,14 @@ scale-sensitive information.") (define-public r-ggvenndiagram (package (name "r-ggvenndiagram") - (version "1.2.0") + (version "1.2.2") (source (origin (method url-fetch) (uri (cran-uri "ggVennDiagram" version)) (sha256 (base32 - "1mjs488npnxd53nsw936iw2vzv7z38h8d02pm4lwrz4i83jg3www")))) + "1l4cincm7c2q9x3djiv1lm9bvivaqk7kincx19b8f760wz9hp74k")))) (properties `((upstream-name . "ggVennDiagram"))) (build-system r-build-system) (propagated-inputs @@ -1277,8 +1284,8 @@ scale-sensitive information.") r-purrr r-rvenn r-sf - r-stringr - r-tibble)) + r-tibble + r-yulab-utils)) (native-inputs (list r-knitr)) (home-page "https://github.com/gaospecial/ggVennDiagram") (synopsis "Implementention of the Venn diagram using ggplot2") @@ -1342,16 +1349,17 @@ axis} (SMA), and @dfn{ranged major axis} (RMA).") (define-public r-ggpmisc (package (name "r-ggpmisc") - (version "0.4.7") + (version "0.5.0") (source (origin (method url-fetch) (uri (cran-uri "ggpmisc" version)) (sha256 (base32 - "1z1ncnlbhy38ml2rdq43jbw33z7fmy0b6xp7wcwwqxy44c7y34zx")))) + "1i7cfmhmgih3hn0zr5yn33ziznfa3a4j8hkn237bv7jckwzpklxw")))) (build-system r-build-system) (propagated-inputs - (list r-dplyr + (list r-confintr + r-dplyr r-generics r-ggplot2 r-ggpp @@ -1524,13 +1532,13 @@ available as companion packages.") (define-public r-scales (package (name "r-scales") - (version "1.2.0") + (version "1.2.1") (source (origin (method url-fetch) (uri (cran-uri "scales" version)) (sha256 - (base32 "1pq2rrix6a5gsi8xw38viiydp1bsxxmcmyy7dv9q8gkb1qj50p8q")))) + (base32 "027daznawr9dy0z9s99lh64i4am691hdir01n7gr7vmgpmnkwiar")))) (build-system r-build-system) (propagated-inputs (list r-farver @@ -1742,13 +1750,13 @@ excellent candidate for labeling of a polygon.") (define-public r-poorman (package (name "r-poorman") - (version "0.2.5") + (version "0.2.6") (source (origin (method url-fetch) (uri (cran-uri "poorman" version)) (sha256 (base32 - "05h7rjgri0b5a1jd0388p7lqvvg0y8z6g42f9bxc80jg1z730axr")))) + "0x1pk00ca7wjxnqfh1jphgsxcrq37s0c1nawv52yh5qgc4z0m3ij")))) (properties `((upstream-name . "poorman"))) (build-system r-build-system) (native-inputs (list r-knitr)) @@ -2016,13 +2024,13 @@ read a protected key.") (define-public r-astsa (package (name "r-astsa") - (version "1.15") + (version "1.16") (source (origin (method url-fetch) (uri (cran-uri "astsa" version)) (sha256 - (base32 "0mllsq0xdqkviyvs77lq565r1vznsj1qp9cnlj5p48k9v76d7arp")))) + (base32 "09872vkqb180cwprdfr3cn85jhazlc4vjdj6pjc70s06bh834f3w")))) (properties `((upstream-name . "astsa"))) (build-system r-build-system) (home-page "https://github.com/nickpoison/astsa/") @@ -2118,21 +2126,24 @@ single step.") (define-public r-rvest (package (name "r-rvest") - (version "1.0.2") + (version "1.0.3") (source (origin (method url-fetch) (uri (cran-uri "rvest" version)) (sha256 - (base32 "1905vxgnj3q09l1wf6rwxpbpydznp06nbkrclnc05j2415z4gfw9")))) + (base32 "07hws9infwchy19smrcd9m6c0jii0bdn335yxqk3ramgj5ryyrd4")))) (build-system r-build-system) (propagated-inputs - (list r-httr + (list r-cli + r-glue + r-httr r-lifecycle r-magrittr r-rlang r-selectr r-tibble + r-withr r-xml2)) (native-inputs (list r-knitr)) @@ -2170,14 +2181,14 @@ package is a port of the Python package @code{cssselect}.") (define-public r-reprex (package (name "r-reprex") - (version "2.0.1") + (version "2.0.2") (source (origin (method url-fetch) (uri (cran-uri "reprex" version)) (sha256 (base32 - "09k4rasp7mz6n796dsklcbc5l7prljiznrm7fra16qybr9kqcv8f")))) + "14khx09yzn97xhags48lvym1g37h1l2ymvw6r1jlldhjc7i1cnx8")))) (build-system r-build-system) (propagated-inputs (list r-callr @@ -2186,6 +2197,7 @@ package is a port of the Python package @code{cssselect}.") r-fs r-glue r-knitr + r-lifecycle r-rlang r-rmarkdown r-rstudioapi @@ -2226,14 +2238,14 @@ same time tries to group instances from the same class together.") (define-public r-callr (package (name "r-callr") - (version "3.7.1") + (version "3.7.2") (source (origin (method url-fetch) (uri (cran-uri "callr" version)) (sha256 (base32 - "1vc986d571nwmb5lw5rq3d38z4qw36lr94s3apz50c2v79xsbqrp")))) + "01q3b0w1cbrryvv1dwvnyd3j1f09xmhnwg1wskc51r3r4qhqmnhj")))) (build-system r-build-system) (propagated-inputs (list r-r6 r-processx)) @@ -2268,14 +2280,14 @@ mixture models.") (define-public r-readxl (package (name "r-readxl") - (version "1.4.0") + (version "1.4.1") (source (origin (method url-fetch) (uri (cran-uri "readxl" version)) (sha256 (base32 - "1xwi4k5si48hwkgfc59icfmp9dzlvfri59k5fsgn96zp9713k4mb")))) + "1ym11mldwj31lgk5av264v8b2zn7fmq5nd30rnm1pchgjizvpgpn")))) (build-system r-build-system) (propagated-inputs (list r-cellranger r-cpp11 r-progress r-tibble)) @@ -2324,14 +2336,14 @@ the personalised models.") (define-public r-modelr (package (name "r-modelr") - (version "0.1.8") + (version "0.1.9") (source (origin (method url-fetch) (uri (cran-uri "modelr" version)) (sha256 (base32 - "1i31nff7bqibk6r4hhd4j1vzwbyaf8493v0bjaagn36njmysfnw2")))) + "1jd9vxirj5ii4ac0ka07g0rcq1c8yqv06jg27nmvp5a6kvlgvs8h")))) (build-system r-build-system) (propagated-inputs (list r-broom @@ -2393,16 +2405,16 @@ Zucchini.") (define-public r-httpuv (package (name "r-httpuv") - (version "1.6.5") + (version "1.6.6") (source (origin (method url-fetch) (uri (cran-uri "httpuv" version)) (sha256 (base32 - "0mlilxh2mlrsbbrncla2rg02crr8nnajv649d8whx7ayr8lkdxpm")) + "14qjf7bpl7pay89b7vi2vccl342q8xs6101a9x6qijy54k9myfa1")) ;; Unvendor bundled libraries. As of 1.5.4 the vendored libuv ;; only contains fixes for building on Solaris. - (patches (search-patches "r-httpuv-1.5.5-unvendor-libuv.patch")) + (patches (search-patches "r-httpuv-1.6.6-unvendor-libuv.patch")) (modules '((guix build utils))) ;; Cannot unbundle http-parser, because it contains local ;; modifications. @@ -3213,13 +3225,13 @@ application framework for R, making it easy to create attractive dashboards.") (define-public r-shinyfiles (package (name "r-shinyfiles") - (version "0.9.2") + (version "0.9.3") (source (origin (method url-fetch) (uri (cran-uri "shinyFiles" version)) (sha256 - (base32 "1l4a4v9ivxkj2vx6xw4z3pk7a8px23icppcgvgpybibq2j74pglg")))) + (base32 "11kjq0vw5c98lzrg80m9w917lkgw5im2h9wgk1b84vlaxrjy2wja")))) (properties `((upstream-name . "shinyFiles"))) (build-system r-build-system) (propagated-inputs @@ -3868,14 +3880,14 @@ including functions for geolocation and routing.") (define-public r-haven (package (name "r-haven") - (version "2.5.0") + (version "2.5.1") (source (origin (method url-fetch) (uri (cran-uri "haven" version)) (sha256 (base32 - "1x5g6kjrzcyarbjz91f4aaspx7rb50qs6a9y29mzr3mjq4dk305m")) + "0w0aqm0z4h0rm1f7fylm1mbv79p43y2r795w64wczcd0jwh4ch4z")) (modules '((guix build utils))) (snippet ;; unvendor readstat @@ -4037,13 +4049,13 @@ Docstrings (PEP-0257) and Julia's Triple-Quoted String Literals.") (define-public r-paletteer (package (name "r-paletteer") - (version "1.4.0") + (version "1.4.1") (source (origin (method url-fetch) (uri (cran-uri "paletteer" version)) (sha256 (base32 - "1m0h1p0cbmmi0rk157qyrgcz57pw0syadskrnfa4vs7hm1rndp3m")))) + "0vj945cgpfhmbd98mcj167mgshghv32dxh8m4ngxs6i4q4y5blm7")))) (properties `((upstream-name . "paletteer"))) (build-system r-build-system) (propagated-inputs (list r-prismatic r-rematch2 r-rlang r-rstudioapi)) @@ -4059,14 +4071,14 @@ a streamlined API.") (define-public r-palmerpenguins (package (name "r-palmerpenguins") - (version "0.1.0") + (version "0.1.1") (source (origin (method url-fetch) (uri (cran-uri "palmerpenguins" version)) (sha256 (base32 - "0q1k3cdkliq7kwrg1n0vs9b6cjwyfarhlgdijhp9c6riy6y5ik7x")))) + "1d1h3bfx750is4qqj4w00rcigk9rrdy69bvd5bgqz5y7ls5x8h1a")))) (properties `((upstream-name . "palmerpenguins"))) (build-system r-build-system) @@ -4744,13 +4756,13 @@ curve to a data matrix in arbitrary dimensions.") (define-public r-prismatic (package (name "r-prismatic") - (version "1.1.0") + (version "1.1.1") (source (origin (method url-fetch) (uri (cran-uri "prismatic" version)) (sha256 (base32 - "1f6k11hcll33g2wbadjhm91pm5h4khg4zd8g9fzs3m9xlqpfaywh")))) + "013i0mq4n8s2zbzvfrz1vjcn2a6l98bamslkcv1a3cn70gpphja9")))) (properties `((upstream-name . "prismatic"))) (build-system r-build-system) (propagated-inputs (list r-farver)) @@ -4785,13 +4797,13 @@ way.") (define-public r-restrserve (package (name "r-restrserve") - (version "1.2.0") + (version "1.2.1") (source (origin (method url-fetch) (uri (cran-uri "RestRserve" version)) (sha256 - (base32 "03mlzhs2k728kwy6csp60m7qy8n9ma5dd37j87rzh07fcdlx8wim")))) + (base32 "1xfcp0y9l31815g1jk33mnkb6z68qpjl0gb4fj7f4578kx3v1c8p")))) (build-system r-build-system) (propagated-inputs (list r-checkmate @@ -5303,14 +5315,14 @@ topics for ecologists (ISBN 978-0-691-12522-0).") (define-public r-lpsolve (package (name "r-lpsolve") - (version "5.6.15") + (version "5.6.16") (source (origin (method url-fetch) (uri (cran-uri "lpSolve" version)) (sha256 (base32 - "1fpkyjyqykwa1dxnhiky01pm09syxg169lm7hpy39bdbg10vw9s6")))) + "0amvxki4l2sp60adcc6ra7kbqjrfv55gbn6kasq04klihi8ix88q")))) (properties `((upstream-name . "lpSolve"))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/lpSolve") @@ -5519,13 +5531,13 @@ available in a vignette.") (define-public r-progressr (package (name "r-progressr") - (version "0.10.1") + (version "0.11.0") (source (origin (method url-fetch) (uri (cran-uri "progressr" version)) (sha256 - (base32 "1ldf7hqsz8vbjggz31990sqqyhrbiilzcnyla1krjlkg595h50wg")))) + (base32 "1nbc6vvsyqa1gvh1a1m4prnvng88wsa0r35i9fiwq84a6j18qrnq")))) (properties `((upstream-name . "progressr"))) (build-system r-build-system) (propagated-inputs @@ -5941,14 +5953,14 @@ by base R methods related to model fitting.") (define-public r-broom (package (name "r-broom") - (version "1.0.0") + (version "1.0.1") (source (origin (method url-fetch) (uri (cran-uri "broom" version)) (sha256 (base32 - "04hlwiqkj7c9cf357dgjfgg5a6mpicg6vzvwwcqjkq69nzbsr18n")))) + "14i8729m38nxf5q344isgq4006p3b50wi3q8jgckxqphhnj5lpjb")))) (build-system r-build-system) (propagated-inputs (list r-backports @@ -6243,14 +6255,14 @@ Laplace approximation and adaptive Gauss-Hermite quadrature.") (define-public r-jomo (package (name "r-jomo") - (version "2.7-3") + (version "2.7-4") (source (origin (method url-fetch) (uri (cran-uri "jomo" version)) (sha256 (base32 - "0qq03zspmh8x2c8w882ynsw7wshr9b0fyrpwnqx5yc1xlzrqffcx")))) + "1zck7p872k080hyfs0hibq7v13zmsry1jdlnq7k33ff1iljbq99d")))) (build-system r-build-system) (propagated-inputs (list r-lme4 r-mass r-ordinal r-survival r-tibble)) @@ -6739,14 +6751,14 @@ statistics, etc.") (define-public r-scatterplot3d (package (name "r-scatterplot3d") - (version "0.3-41") + (version "0.3-42") (source (origin (method url-fetch) (uri (cran-uri "scatterplot3d" version)) (sha256 (base32 - "152xqz9c70qab86mpgng049gxsg5f4fpf1m8dh93fb9v1avjd0sc")))) + "05jjdiam5w0znb114vc90zahclj22pqj1zzvr96nr10s1vkxvzm9")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/scatterplot3d/") (synopsis "3D scatter plot") @@ -6802,17 +6814,15 @@ plots in @code{ggplot2}.") (define-public r-cli (package (name "r-cli") - (version "3.3.0") + (version "3.4.0") (source (origin (method url-fetch) (uri (cran-uri "cli" version)) (sha256 (base32 - "0qqd4mscv8ndjbji7knprdlv2hhyk35gazagvapbjzq1p6yfpaf3")))) + "0mxsls49g8m5vrak64b9mpsgw3mh8hnb1xxn56skbn4qb1hppbff")))) (build-system r-build-system) - (propagated-inputs - (list r-glue)) (home-page "https://github.com/r-lib/cli#readme") (synopsis "Helpers for developing command line interfaces") (description "This package provides a suite of tools designed to build @@ -7030,13 +7040,13 @@ iVAT).") (define-public r-xfun (package (name "r-xfun") - (version "0.31") + (version "0.33") (source (origin (method url-fetch) (uri (cran-uri "xfun" version)) (sha256 - (base32 "0dgjkrlwl6rxmvdn6s1xrbiaa53hkfx2s7rqrbrc7c6shbkg6sfi")))) + (base32 "0v7f84gqsb94zff4x64478fssjg0sbis9m34vsxnjyw6ab9c5ys5")))) (build-system r-build-system) ;; knitr itself depends on xfun #; @@ -7153,14 +7163,14 @@ estimated from a given sample.") (define-public r-pillar (package (name "r-pillar") - (version "1.8.0") + (version "1.8.1") (source (origin (method url-fetch) (uri (cran-uri "pillar" version)) (sha256 (base32 - "0vxkg451s5kwkg0m8d9dnr8gl5s0pgi8mxcm39ry5vgdj8v47ijj")))) + "1v47dm2v4nlswd1gmgcx5c7yrgn1ksdfr9lqkc63jf2nkv6af1ig")))) (build-system r-build-system) (propagated-inputs (list r-cli @@ -7221,14 +7231,14 @@ packages that work with genomic data.") (define-public r-tinytex (package (name "r-tinytex") - (version "0.40") + (version "0.41") (source (origin (method url-fetch) (uri (cran-uri "tinytex" version)) (sha256 (base32 - "13fqhg0yrzc28b39hpr4jip9w0q9yzhzxrczlf0q2yh45kdplpiz")))) + "1fhnh53fg8l4qyignvgz0nk5nqmljyykn8gpvq82nr7c051rfqaz")))) (build-system r-build-system) (propagated-inputs (list r-xfun)) @@ -7349,14 +7359,14 @@ vectors.") (define-public r-statnet-common (package (name "r-statnet-common") - (version "4.6.0") + (version "4.7.0") (source (origin (method url-fetch) (uri (cran-uri "statnet.common" version)) (sha256 (base32 - "07djgc6qbxahiy5v15lfayxbj4188lxsb8xcs7hnbm2hic953bfx")))) + "1cx1h1yzs8jjxk10y2h0wl69caspzgx5wdqp36dp4sxm0sk335xn")))) (properties `((upstream-name . "statnet.common"))) (build-system r-build-system) @@ -7923,14 +7933,14 @@ chaotic time series analysis.") (define-public r-urca (package (name "r-urca") - (version "1.3-0") + (version "1.3-3") (source (origin (method url-fetch) (uri (cran-uri "urca" version)) (sha256 (base32 - "1akaqwf3fvvvx4sgfn641fd4sj51s0701pvfl6s5hnz2k0iwh732")))) + "1wg9f691pif59xds43gnnw77mmzc9xpnhhvaksk2b0szffvaifj3")))) (build-system r-build-system) (propagated-inputs (list r-nlme)) (native-inputs (list gfortran)) @@ -7944,14 +7954,14 @@ applied econometric analysis.") (define-public r-cubature (package (name "r-cubature") - (version "2.0.4.4") + (version "2.0.4.5") (source (origin (method url-fetch) (uri (cran-uri "cubature" version)) (sha256 (base32 - "0sfmcy5xpa40w3qn0jbg7b802wksl5k8glz9jpx77n159wn3nyq8")))) + "08whkhvn218089r930spn97m91vv1njgh2amksia8l3rbf7127x8")))) (build-system r-build-system) (propagated-inputs (list r-rcpp)) @@ -8089,14 +8099,14 @@ creation and manipulation of WAVE audio files.") (define-public r-np (package (name "r-np") - (version "0.60-11") + (version "0.60-14") (source (origin (method url-fetch) (uri (cran-uri "np" version)) (sha256 (base32 - "1a9kzn37cddwfdki5zjmzanxp75pccdjnsvqfrh84hhcsy51pcx3")))) + "0v6mhcwdnqj5kjxwrzcqlff021ih2jdarwmikdm5bvjfwi8pyarl")))) (build-system r-build-system) (propagated-inputs (list r-boot r-cubature r-quadprog r-quantreg)) @@ -8392,14 +8402,14 @@ systems.") (define-public r-radiant-data (package (name "r-radiant-data") - (version "1.4.4") + (version "1.4.5") (source (origin (method url-fetch) (uri (cran-uri "radiant.data" version)) (sha256 (base32 - "1lj8zz9zg7kys9rkjxn9p5z6l944dk2bx6idlxal59yhy4ql2i4p")) + "1vas0bkpngwxybmpdcaimha2r008prnli4b3lgjbjfkzpgm966d1")) (modules '((guix build utils))) (snippet '(begin @@ -8619,14 +8629,14 @@ specific S3-method.") (define-public r-vim (package (name "r-vim") - (version "6.1.1") + (version "6.2.2") (source (origin (method url-fetch) (uri (cran-uri "VIM" version)) (sha256 (base32 - "0fbpm6y3hhiw8srnbc38k19b859jcqzsh78ib8yvj86gck5av0bm")))) + "1r0myxcx8y1a3fkf9ssk882f09snn2j6zilsygpld32hahn4k9xg")))) (properties `((upstream-name . "VIM"))) (build-system r-build-system) (propagated-inputs @@ -8818,14 +8828,14 @@ evaluated by the @dfn{Akaike Information Criterion} (AIC).") (define-public r-arules (package (name "r-arules") - (version "1.7-3") + (version "1.7-4") (source (origin (method url-fetch) (uri (cran-uri "arules" version)) (sha256 (base32 - "05g6ik4z87g83nlicmb380331f84sqchvv1vch49zb7rq6v8gw6r")))) + "0pmikfq1phs73lmvhb4j9rlxj3z7kbp9wb619q2gqxpi9948raij")))) (build-system r-build-system) (propagated-inputs (list r-generics r-matrix)) @@ -8909,14 +8919,14 @@ misclassification probabilities of different models.") (define-public r-zip (package (name "r-zip") - (version "2.2.0") + (version "2.2.1") (source (origin (method url-fetch) (uri (cran-uri "zip" version)) (sha256 (base32 - "1n5ryjdj3i16b4mdp29wapgaklz3yzas5k8ffx7q6fa0jry9i5cz")))) + "08hl0sqiwh9my9ivkvkig044w7ppk8h8n38j3i0kjcc1fh43v1ql")))) (build-system r-build-system) (home-page "https://github.com/gaborcsardi/zip") (synopsis "Cross-platform Zip compression") @@ -9294,14 +9304,14 @@ finance, conversion from and to JSON, and many other applications.") (define-public r-dtplyr (package (name "r-dtplyr") - (version "1.2.1") + (version "1.2.2") (source (origin (method url-fetch) (uri (cran-uri "dtplyr" version)) (sha256 (base32 - "1wyhhn16mvdj55k2xsh7vy489l7xk4mkz7pjrw16z87awk6yjh16")))) + "1m72ac7461mlvanj1krpmfp2ljl3c2k5nw6zrahc66vhcgz2hngq")))) (properties `((upstream-name . "dtplyr"))) (build-system r-build-system) (propagated-inputs @@ -9574,14 +9584,14 @@ always locate the files relative to your project root.") (define-public r-reticulate (package (name "r-reticulate") - (version "1.25") + (version "1.26") (source (origin (method url-fetch) (uri (cran-uri "reticulate" version)) (sha256 (base32 - "0b1szzsqyc8wcfpkn5517bb1ds064vs2hky71my3p74kfngay991")))) + "1ibliic3qp597nskak2bfa6iyl721ssgcavwvfaf1c71plilimrz")))) (build-system r-build-system) (arguments (list @@ -9887,14 +9897,14 @@ clustering.") (define-public r-factominer (package (name "r-factominer") - (version "2.4") + (version "2.6") (source (origin (method url-fetch) (uri (cran-uri "FactoMineR" version)) (sha256 (base32 - "0lg8n9fxxk46nchnj4pbpqqf4swxfsq7r9jzr36dmd36kb7avqxr")))) + "0xcg4vjs5v9k28hhxhkfkks7nvpxpp2cvim00kh67f4pq041c9l1")))) (properties `((upstream-name . "FactoMineR"))) (build-system r-build-system) (propagated-inputs @@ -9902,12 +9912,14 @@ clustering.") r-cluster r-dt r-ellipse + r-emmeans r-flashclust r-ggplot2 r-ggrepel r-lattice r-leaps r-mass + r-multcompview r-scatterplot3d)) (native-inputs (list r-knitr)) @@ -10003,14 +10015,14 @@ results to the user.") (define-public r-hdf5r (package (name "r-hdf5r") - (version "1.3.5") + (version "1.3.6") (source (origin (method url-fetch) (uri (cran-uri "hdf5r" version)) (sha256 (base32 - "0bv2q4ir73sbk5ra2q4mc8wbcmiwkws8k0mjlnx9ysi2mdrm3dw7")))) + "16iin6krx2c50wm4d1id71v3kci6djvlari3ahic25vw1dg1k81l")))) (build-system r-build-system) (inputs (list hdf5 zlib)) @@ -10182,14 +10194,14 @@ hierarchical models using Markov Chain Monte Carlo (MCMC) simulation.") (define-public r-rbibutils (package (name "r-rbibutils") - (version "2.2.8") + (version "2.2.9") (source (origin (method url-fetch) (uri (cran-uri "rbibutils" version)) (sha256 (base32 - "0lnia2fk8zlvkkgnl7r7dyi1ip5vqlw448qrvqs2s14rpbpcvbpi")))) + "11pzbqykmn7m9gp5jspfcj6vij865wqf9ry6m3jkihvfj7zhfb5j")))) (properties `((upstream-name . "rbibutils"))) (build-system r-build-system) (home-page "https://geobosh.github.io/rbibutils/") @@ -10230,14 +10242,14 @@ references and Rd files.") (define-public r-officer (package (name "r-officer") - (version "0.4.3") + (version "0.4.4") (source (origin (method url-fetch) (uri (cran-uri "officer" version)) (sha256 (base32 - "1ksfmwqb91j8n8x4vchpqr848scvf817mgiknwac7n8lfz79synk")))) + "1h6fcqw4bg644lwr5jggphyxp2d0ycya9q869z8099a50gc6h03f")))) (build-system r-build-system) (propagated-inputs (list r-r6 r-uuid r-xml2 r-zip)) @@ -10466,14 +10478,14 @@ Decomposition in R (Beaton et al 2014) <doi:10.1016/j.csda.2013.11.006>.") (define-public r-insight (package (name "r-insight") - (version "0.18.0") + (version "0.18.3") (source (origin (method url-fetch) (uri (cran-uri "insight" version)) (sha256 (base32 - "09gpkac882hqw84rk66h5dm94ljk08ydz13wz9fbjdxaffgw5ba1")))) + "1bj6dliin3draqb447zyy1w4z277n8rj5sdl3lnx468bq1yqc8h9")))) (build-system r-build-system) (native-inputs (list r-knitr)) @@ -10602,14 +10614,14 @@ functions.") (define-public r-flextable (package (name "r-flextable") - (version "0.7.2") + (version "0.8.0") (source (origin (method url-fetch) (uri (cran-uri "flextable" version)) (sha256 (base32 - "03nxh9a9q0jgqz05i7kgp8zjncpq9m4f54dx3bvqgpds4hcqxli9")))) + "03l9wgsikg1n2i3hxkb850kprs49nlrawyrm46k1d95b83d2qq8s")))) (build-system r-build-system) (propagated-inputs (list r-base64enc @@ -11335,13 +11347,13 @@ second male (P2) based on the best fit distribution.") (define-public r-abcrf (package (name "r-abcrf") - (version "1.8.1") + (version "1.9") (source (origin (method url-fetch) (uri (cran-uri "abcrf" version)) (sha256 - (base32 "1ghbd24yhqy3xhdxas6ccn84nkavqpgldx5ck8kijknc7qjm8k27")))) + (base32 "08mh1a6gxp0mfx6qnp1qzcrfx7xp64qj9kad4ziyswfx22ykdsxi")))) (build-system r-build-system) (propagated-inputs (list r-doparallel @@ -11625,13 +11637,13 @@ subsequence} (LCS) using a dynamic programming algorithm.") (define-public r-mosaiccore (package (name "r-mosaiccore") - (version "0.9.0") + (version "0.9.2") (source (origin (method url-fetch) (uri (cran-uri "mosaicCore" version)) (sha256 - (base32 "1h3ixzna4xy42rdnd89jj0v9q0riy3fnkd33z6l5c0zaidzm58fz")))) + (base32 "0mnizi1y7jn2z8v066b6kv08az7vss6avips740pjhgvi8frhsag")))) (properties `((upstream-name . "mosaicCore"))) (build-system r-build-system) (propagated-inputs @@ -11645,14 +11657,14 @@ subsequence} (LCS) using a dynamic programming algorithm.") (define-public r-labelled (package (name "r-labelled") - (version "2.9.1") + (version "2.10.0") (source (origin (method url-fetch) (uri (cran-uri "labelled" version)) (sha256 (base32 - "0h7scbyzh7kr51gds222rkhld2b3k36s86hj8rrzpwv4bwj0pccy")))) + "02n4r4bizsysnlmxpw86w7zkiqi6aill9dq2nmrn43xzrffy54sy")))) (properties `((upstream-name . "labelled"))) (build-system r-build-system) (propagated-inputs @@ -11676,13 +11688,13 @@ haven package.") (define-public r-ggformula (package (name "r-ggformula") - (version "0.10.1") + (version "0.10.2") (source (origin (method url-fetch) (uri (cran-uri "ggformula" version)) (sha256 - (base32 "1ph5jd8svk8hmshi894vmmpq3zwgdmf4yn3gmdlkad68z8jynhsp")))) + (base32 "0xb39gjn6q7va1d1fhvf2dw9428s1q13wasx4y3cz2f0lls1r2wl")))) (build-system r-build-system) (propagated-inputs (list r-ggforce @@ -11710,13 +11722,13 @@ while providing the intuitive capabilities of @code{r-ggplot2}.") (define-public r-mosaicdata (package (name "r-mosaicdata") - (version "0.20.2") + (version "0.20.3") (source (origin (method url-fetch) (uri (cran-uri "mosaicData" version)) (sha256 - (base32 "0h3f5fgzkzjfgf3ml0qa5j52921y6wy6jgggxmhs31bs8fd4srg4")))) + (base32 "1s97yq24z7yhzmx0dpspfadpd8hndyhn7aiw0nslwrhvilhwa409")))) (properties `((upstream-name . "mosaicData"))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/mosaicData/") @@ -11729,14 +11741,14 @@ used to teach mathematics, statistics, computation and modeling.") (define-public r-raster (package (name "r-raster") - (version "3.5-21") + (version "3.6-3") (source (origin (method url-fetch) (uri (cran-uri "raster" version)) (sha256 (base32 - "1alny43aw5ydlwc7157bf524r0dxp74bf5d0nkvm8qnni57z9bci")))) + "1in3n0hqzcdhibjl3y82nwn6m6wcv4k3l6s2jw57jn32qgvy01lz")))) (build-system r-build-system) (propagated-inputs (list r-rcpp r-sp r-terra)) @@ -11750,48 +11762,39 @@ Processing of very large files is supported.") (define-public r-mosaic (package - (name "r-mosaic") - (version "1.8.3") - (source - (origin - (method url-fetch) - (uri (cran-uri "mosaic" version)) - (sha256 - (base32 "1y0isqbva0vi5zlx1xvixbq87n4xp66ljh43qnd0cpzaz0mn21cg")))) - (build-system r-build-system) - (propagated-inputs - (list r-broom - r-dplyr - r-ggdendro - r-ggformula - r-ggplot2 - r-ggrepel - r-ggridges - r-ggstance - r-glue - r-gridextra - r-lattice - r-latticeextra - r-leaflet - r-mass - r-matrix - r-mosaiccore - r-mosaicdata - r-readr - r-rlang - r-tidyr)) - (native-inputs - (list r-knitr)) - (home-page "https://github.com/ProjectMOSAIC/mosaic/") - (synopsis "Mathematics, statistics, and computation teaching utilities") - (description - "This package contain data sets and utilities from + (name "r-mosaic") + (version "1.8.4") + (source + (origin + (method url-fetch) + (uri (cran-uri "mosaic" version)) + (sha256 + (base32 "0ix9c4rpa1h7cya9mqzqph9ain1ng61px5v4wwvlaf76zdr51c0i")))) + (build-system r-build-system) + (propagated-inputs + (list r-dplyr + r-ggformula + r-ggplot2 + r-lattice + r-mass + r-matrix + r-mosaiccore + r-mosaicdata + r-purrr + r-rlang + r-tidyr)) + (native-inputs + (list r-knitr)) + (home-page "https://github.com/ProjectMOSAIC/mosaic/") + (synopsis "Mathematics, statistics, and computation teaching utilities") + (description + "This package contain data sets and utilities from @url{http://mosaic-web.org, Project MOSAIC} used to teach mathematics, statistics, computation and modeling. Project MOSAIC is a community of educators working to tie together aspects of quantitative work that students in science, technology, engineering and mathematics will need in their professional lives, but which are usually taught in isolation, if at all.") - (license license:gpl2+))) + (license license:gpl2+))) (define-public r-abd (package @@ -11932,14 +11935,14 @@ genotypes as \"graphical genotypes\".") (define-public r-furrr (package (name "r-furrr") - (version "0.3.0") + (version "0.3.1") (source (origin (method url-fetch) (uri (cran-uri "furrr" version)) (sha256 (base32 - "117xj66l14r08macwghgyibzm282ljv1afpa133h952gc70irs9z")))) + "12z4q0fn7asxis17hisi82bvfabl5if1338lmfqmkrwv5rg7748d")))) (build-system r-build-system) (propagated-inputs (list r-future @@ -12810,14 +12813,14 @@ the differences were not significantly different.") (define-public r-emmeans (package (name "r-emmeans") - (version "1.8.0") + (version "1.8.1-1") (source (origin (method url-fetch) (uri (cran-uri "emmeans" version)) (sha256 (base32 - "0xdvbjcywmwk6n8xbp55n92lmqz7wbc938gmv7lbg96hkf9kc993")))) + "0xv55v50v3fdg289mfqirfm4p644gn4ckqnvs0wb09sl4m25xz3r")))) (build-system r-build-system) (propagated-inputs (list r-estimability r-mvtnorm r-numderiv r-xtable)) @@ -12939,14 +12942,14 @@ Bayesian modeling.") (define-public r-tmb (package (name "r-tmb") - (version "1.9.0") + (version "1.9.1") (source (origin (method url-fetch) (uri (cran-uri "TMB" version)) (sha256 (base32 - "1mr5vwamw6ag1fhd83jyy6015296908qwshwq0fcphhiv60x579c")))) + "03zv38gig31ir5gdhgw5j6j8xn1f4y91j2r87fv31gywmg1bhzl9")))) (properties `((upstream-name . "TMB"))) (build-system r-build-system) (propagated-inputs @@ -13042,14 +13045,14 @@ differentiation.") (define-public r-bayestestr (package (name "r-bayestestr") - (version "0.12.1") + (version "0.13.0") (source (origin (method url-fetch) (uri (cran-uri "bayestestR" version)) (sha256 (base32 - "1fbkpagc5zznrafy7h68nhx43a1yg4v7242pbqjkd0h2481c101z")))) + "1951zm88qlbmr4ragrzfzgw72awm7mqhh464s6kck0mcx7shas90")))) (properties `((upstream-name . "bayestestR"))) (build-system r-build-system) (propagated-inputs @@ -13069,14 +13072,14 @@ ROPE percentage and pd).") (define-public r-performance (package (name "r-performance") - (version "0.9.1") + (version "0.9.2") (source (origin (method url-fetch) (uri (cran-uri "performance" version)) (sha256 (base32 - "0xiqy9z070v5xzf2iq4x01licabhkygji5x6qfy7l08n43z4agny")))) + "0fdszf1dngqlbwcp7ynfdkzjgg0lang4d3b53ygjwsq7ph20xsw6")))) (build-system r-build-system) (propagated-inputs (list r-bayestestr r-datawizard r-insight)) @@ -13123,14 +13126,14 @@ results using @code{ggplot2}.") (define-public r-effectsize (package (name "r-effectsize") - (version "0.7.0") + (version "0.7.0.5") (source (origin (method url-fetch) (uri (cran-uri "effectsize" version)) (sha256 (base32 - "07dbj7n9vwjkb7xrdj224lzc3ppr3jjdgyyilkj7gpkvgjgfrqhz")))) + "0y8ng4wsms25qx2wmyrm97rbv5dgm5xyhh5ys99f0clr9lrcxr91")))) (properties `((upstream-name . "effectsize"))) (build-system r-build-system) (propagated-inputs @@ -13252,14 +13255,14 @@ package works as intended.") (define-public r-gitcreds (package (name "r-gitcreds") - (version "0.1.1") + (version "0.1.2") (source (origin (method url-fetch) (uri (cran-uri "gitcreds" version)) (sha256 (base32 - "1snzn7nxy0rwz0bzjsg6k04c0n811dgn8gn9cmn2v78aj57ayjmi")))) + "0pf70g4a2kxjcid5rc4ppmgcl3kpjhkszdgz4fqn4l33lp6apij1")))) (properties `((upstream-name . "gitcreds"))) (build-system r-build-system) (inputs (list git-minimal)) @@ -13276,14 +13279,14 @@ repositories.") (define-public r-gh (package (name "r-gh") - (version "1.3.0") + (version "1.3.1") (source (origin (method url-fetch) (uri (cran-uri "gh" version)) (sha256 (base32 - "077drbxz3rx7idv6w24ipj1p6jnzv86a3iyryab699cc9q2kjh54")))) + "1vqjhqlhvvqq8w2cqbgrkqphj0ga5s6fbl4zhcl3vc6fvsms5bpv")))) (build-system r-build-system) (propagated-inputs (list r-cli r-gitcreds r-httr r-ini r-jsonlite)) @@ -13378,14 +13381,14 @@ user credentials.") (define-public r-gert (package (name "r-gert") - (version "1.7.0") + (version "1.9.0") (source (origin (method url-fetch) (uri (cran-uri "gert" version)) (sha256 (base32 - "1pdqmnlrpbjkqwf9ns2232d3cgyqjkywyd2s8sqinaapnlh87y0x")))) + "1lb9rf4c8ip8cll9mycx88x8q774bcmd01j4bwjx9h0kx1hgahkb")))) (properties `((upstream-name . "gert"))) (build-system r-build-system) (inputs @@ -13702,14 +13705,14 @@ algorithms, clusterings, and individual clusters.") (define-public r-tweedie (package (name "r-tweedie") - (version "2.3.3") + (version "2.3.5") (source (origin (method url-fetch) (uri (cran-uri "tweedie" version)) (sha256 (base32 - "1nfhaqblvm62j8gfkyrgba5ai0pb2fsnrxp63637mhys2bawlcm0")))) + "0ghwggdx6d391m7nay9n5li2xjqh3kmw416xx130sy2sxrgp8g4q")))) (build-system r-build-system) (native-inputs (list gfortran)) (home-page "https://cran.r-project.org/web/packages/tweedie/") @@ -13917,14 +13920,14 @@ parallel calculations across cluster nodes.") (define-public r-chk (package (name "r-chk") - (version "0.8.0") + (version "0.8.1") (source (origin (method url-fetch) (uri (cran-uri "chk" version)) (sha256 (base32 - "10gcv00mgi88vgxr9jrs0ar67crmdcdi4m9g86cm6pg3ly0v097y")))) + "0nw3aj8sbd2x8rsvpglsiavk7kivd330mgx676k46m7lhhj7nmpw")))) (properties `((upstream-name . "chk"))) (build-system r-build-system) (propagated-inputs @@ -13966,13 +13969,13 @@ address a bug.") (define-public r-rcppalgos (package (name "r-rcppalgos") - (version "2.5.3") + (version "2.6.0") (source (origin (method url-fetch) (uri (cran-uri "RcppAlgos" version)) (sha256 (base32 - "1ndibdf3k02bpcgackzviczramzkay9idn071nix3dhs5miq1ai8")))) + "11dvh0ba3chsqf3vw8g9h1754arxgwqryayavx3n6vm5daz2krqa")))) (properties `((upstream-name . "RcppAlgos"))) (build-system r-build-system) (inputs (list gmp)) @@ -14269,14 +14272,14 @@ features (e.g. local modes).") (define-public r-arm (package (name "r-arm") - (version "1.12-2") + (version "1.13-1") (source (origin (method url-fetch) (uri (cran-uri "arm" version)) (sha256 (base32 - "0pagrc1vkaz460d0lvrgb4xj6gcd920f4mrc8zpzw07c3v1s2sw1")))) + "0dz9dnsky77da2mc198dr3600kz9vk75z1iihjarnsdrq68a4bf0")))) (build-system r-build-system) (propagated-inputs (list r-abind @@ -14497,13 +14500,13 @@ Tabelow (2007) <DOI:10.18637/jss.v019.i01>.") (define-public r-admisc (package (name "r-admisc") - (version "0.29") + (version "0.30") (source (origin (method url-fetch) (uri (cran-uri "admisc" version)) (sha256 - (base32 "02vl2k58ijqd30d7y01x0ap2b2vh1is3xg14g3cpvm5gflyxyinf")))) + (base32 "01b2qjxz0qicqjm1swvm04qkiwhr7zjn7lhqv26l6rj4yb43y339")))) (properties `((upstream-name . "admisc"))) (build-system r-build-system) (home-page "https://github.com/dusadrian/admisc") @@ -14709,14 +14712,14 @@ Processing.") (define-public r-waveslim (package (name "r-waveslim") - (version "1.8.3") + (version "1.8.4") (source (origin (method url-fetch) (uri (cran-uri "waveslim" version)) (sha256 (base32 - "0yxkwgdq1xqh027l2akwb4zji4li3sgpmyxlmfq1rhz15kjxr2wq")))) + "1510xpkgrhdw394m5anxccdczjikcxazyd09ix2z73i15akyx3j0")))) (build-system r-build-system) (native-inputs (list gfortran)) @@ -14779,13 +14782,13 @@ maps.") (define-public r-tidytree (package (name "r-tidytree") - (version "0.3.9") + (version "0.4.0") (source (origin (method url-fetch) (uri (cran-uri "tidytree" version)) (sha256 - (base32 "1prfv2jy6z4zp4gyi9krzbysipsbnjrkxcccflm4nwsd9i7mshqj")))) + (base32 "0dm71zdrb1qwaja23jlzjpraa609b6yxl8bhksz8slgpfm1jgs00")))) (build-system r-build-system) (propagated-inputs (list r-ape @@ -14851,14 +14854,14 @@ giving it a description in the specific format.") (define-public r-sparsesvd (package (name "r-sparsesvd") - (version "0.2") + (version "0.2-1") (source (origin (method url-fetch) (uri (cran-uri "sparsesvd" version)) (sha256 (base32 - "1xm969fjq3fv1p2sqza2apz8picibj4s2agpwf1sx9nwn3b587qs")))) + "0yz0mgayxriyrz6bbrd41cck0s56b916xvyh13hw86gydd6kpl5k")))) (build-system r-build-system) (propagated-inputs (list r-matrix)) (home-page "http://tedlab.mit.edu/~dr/SVDLIBC/") @@ -15376,14 +15379,14 @@ conditional reporting based on the current \"output level\".") (define-public r-tractor-base (package (name "r-tractor-base") - (version "3.3.3.1") + (version "3.3.5.1") (source (origin (method url-fetch) (uri (cran-uri "tractor.base" version)) (sha256 (base32 - "0w5jw7pf77npkgig7667yikpbwv4dfk1dcq63qm88l409ga2f95p")))) + "0fxbzbhpi6l55m14nmww8y3kdxgchzj4mw1yf4xkm2y6s68phvgc")))) (properties `((upstream-name . "tractor.base"))) (build-system r-build-system) (propagated-inputs @@ -15543,14 +15546,14 @@ Life Sciences\" by Ron Wehrens, Springer (2011).") (define-public r-als (package (name "r-als") - (version "0.0.6") + (version "0.0.7") (source (origin (method url-fetch) (uri (cran-uri "ALS" version)) (sha256 (base32 - "1swrn39vy50fazkpf97r7c542gkj6mlvy8gmcxllg7mf2mqx546a")))) + "184d6xr4mgs78jvi7xa4njrq6p625i9sx69wak6mdn53qpl9b8ap")))) (properties `((upstream-name . "ALS"))) (build-system r-build-system) (propagated-inputs @@ -15640,14 +15643,14 @@ library.") (define-public r-ontologyindex (package (name "r-ontologyindex") - (version "2.7") + (version "2.10") (source (origin (method url-fetch) (uri (cran-uri "ontologyIndex" version)) (sha256 (base32 - "0j3h1spqwjhh1wbmwivmqcyi042yy7d565c3kxgn70xrmy693x1k")))) + "0hisb9scxyyqkxhxhvgsgwix54pkq0zma3xq3ywczyazvzcxd5f9")))) (properties `((upstream-name . "ontologyIndex"))) (build-system r-build-system) (native-inputs @@ -15662,14 +15665,14 @@ and manipulating sets of ontological terms.") (define-public r-gargle (package (name "r-gargle") - (version "1.2.0") + (version "1.2.1") (source (origin (method url-fetch) (uri (cran-uri "gargle" version)) (sha256 (base32 - "0fypj70c1fjmvs57birik76wfx8a2fs4gzicbb52k57i6clwlijd")))) + "087hlbqpwjj7jnsg1ax2b12nc0h4zfj070q5hjp6fca05z4f4rzk")))) (build-system r-build-system) (propagated-inputs (list r-cli @@ -15728,14 +15731,14 @@ preparing, executing, and processing HTTP requests.") (define-public r-gmp (package (name "r-gmp") - (version "0.6-5") + (version "0.6-6") (source (origin (method url-fetch) (uri (cran-uri "gmp" version)) (sha256 (base32 - "0llyd1wx606vpgvv7d61m0fv2a5yxsmisd38fhzanbjl2wynzrwa")))) + "14r7xlxjrwww6l726sispq6jhxy2yfwbcqrqgc9x4ma812l9byl7")))) (build-system r-build-system) (arguments '(#:phases @@ -16242,13 +16245,13 @@ Differences with other sparse matrix packages are: (define-public r-fields (package (name "r-fields") - (version "14.0") + (version "14.1") (source (origin (method url-fetch) (uri (cran-uri "fields" version)) (sha256 - (base32 "0rjg2yx52f5s1fhg6jbk9lfv92qmjqwd6bwpz9rx1fkml9vy8zch")))) + (base32 "0d2lm4s9p3rv676z291fynpx3vdmi6cikcqlj23fxlj34icwbi2p")))) (build-system r-build-system) (propagated-inputs (list r-maps r-spam r-viridis)) @@ -16764,14 +16767,14 @@ subsetting.") (define-public r-globals (package (name "r-globals") - (version "0.16.0") + (version "0.16.1") (source (origin (method url-fetch) (uri (cran-uri "globals" version)) (sha256 (base32 - "0507lxykjz44yws4s4hb99zb3bn6kn6fy8m87lf2dsm431j40gy5")))) + "158y39qv99f1kc2i7w8d4lm2ls96plb43fzamz31im9xb9bkmxpp")))) (build-system r-build-system) (propagated-inputs (list r-codetools)) @@ -16816,14 +16819,14 @@ port-forwarding to your local computer.") (define-public r-future (package (name "r-future") - (version "1.27.0") + (version "1.28.0") (source (origin (method url-fetch) (uri (cran-uri "future" version)) (sha256 (base32 - "1ybhbdw158403n6plipgiwkw710pxpnq3mq8pdx5g8q3jibv93nh")))) + "1xhv0nf97yxxxsmxczyqqbnb4yn5sfn5vzvhm9dmw9csrmmadpbg")))) (build-system r-build-system) (arguments `(#:phases @@ -16851,14 +16854,14 @@ the local machine to, say, distributed processing on a remote compute cluster.") (define-public r-future-apply (package (name "r-future-apply") - (version "1.9.0") + (version "1.9.1") (source (origin (method url-fetch) (uri (cran-uri "future.apply" version)) (sha256 (base32 - "1xb7qj8izjwmy4aa92p5f4cdbhgp220hrly3b5879f9hrv2w2rk1")))) + "0cr141mamjxby79sww02493yal9lahslvp3a3ic7f856rbawq8jg")))) (properties `((upstream-name . "future.apply"))) (build-system r-build-system) (arguments @@ -16984,14 +16987,14 @@ chosen parallel environment and associated foreach backend.") (define-public r-blockmodeling (package (name "r-blockmodeling") - (version "1.0.5") + (version "1.1.3") (source (origin (method url-fetch) (uri (cran-uri "blockmodeling" version)) (sha256 (base32 - "1vc8gy4slsywcwxq532373i0dq73fhs5cac9mr6zz2pjaaxjghhq")))) + "19mxmxsnl6rrh85p0sak91vcaw4dz2cnm70hdzfwnvdrr695yw2z")))) (build-system r-build-system) (propagated-inputs (list r-matrix)) @@ -17315,13 +17318,13 @@ such software by imputing dropout events.") (define-public r-gamlss-dist (package (name "r-gamlss-dist") - (version "6.0-3") + (version "6.0-5") (source (origin (method url-fetch) (uri (cran-uri "gamlss.dist" version)) (sha256 - (base32 "1gqjr419v8z2ygh0h1xz7bipnsbp820njzwq7z3r9f41rn1ym47c")))) + (base32 "03m275qvrmpzmc10hs48277kxp503riz8sz6xk9pkpj8n7gsz20g")))) (properties `((upstream-name . "gamlss.dist"))) (build-system r-build-system) (propagated-inputs (list r-mass)) @@ -18277,18 +18280,18 @@ univariate class intervals for mapping or other graphics purposes.") (define-public r-spdata (package (name "r-spdata") - (version "2.0.1") + (version "2.2.0") (source (origin (method url-fetch) (uri (cran-uri "spData" version)) (sha256 (base32 - "1z4hp5ivwzyvl8mkp98j2ng1cl1xksqbjxv85vdlqfqjwpia6df6")))) + "07whxr039cxvk2nn65jada3i8vqqw34lgca9j17ah8chy9r0m73f")))) (properties `((upstream-name . "spData"))) (build-system r-build-system) (propagated-inputs - (list r-raster r-sp)) + (list r-sp)) (home-page "https://github.com/Nowosad/spData") (synopsis "Datasets for spatial analysis") (description @@ -18451,13 +18454,13 @@ datum transformations.") (define-public r-spdep (package (name "r-spdep") - (version "1.2-4") + (version "1.2-5") (source (origin (method url-fetch) (uri (cran-uri "spdep" version)) (sha256 (base32 - "0xx6k3rsvsz1hwj0ny8aqfi9ca54x38f8pz8sfya5cggaspxbx59")) + "1ib5jgahjgjpj2ajp5g71r4fw0q1zkddixgmywi1n73nqr39qwp2")) (snippet '(for-each delete-file '("inst/doc/CO69.html" "inst/doc/CO69.R" @@ -18896,13 +18899,13 @@ SELECT or UPDATE queries to an end-point.") (define-public r-bookdown (package (name "r-bookdown") - (version "0.27") + (version "0.29") (source (origin (method url-fetch) (uri (cran-uri "bookdown" version)) (sha256 (base32 - "08wzi7hh3x1dfpmzpxhphrv5zb6a3p7rziaazisfpp1zwsxllwif")))) + "08zpky94bdbjsbhi90pymxpczpfkjxwbx7p1v7ip8raw9b23skjv")))) (build-system r-build-system) (propagated-inputs (list r-htmltools @@ -19437,14 +19440,14 @@ packages with Rcpp.") (define-public r-tweenr (package (name "r-tweenr") - (version "1.0.2") + (version "2.0.2") (source (origin (method url-fetch) (uri (cran-uri "tweenr" version)) (sha256 (base32 - "17znizh4yabh2zs9mzyr0sl6p0pw49961i61br7cl1b7v9sza18q")))) + "1wqzcsxlz1isb1j0v5g6dgvd40q3q9qlahvgcgiq0j4d87nzvfv4")))) (build-system r-build-system) (arguments (list @@ -19456,7 +19459,7 @@ packages with Rcpp.") (("BASEDATETIME <- Sys.time.*") "BASEDATETIME <- structure(0, class = c(\"POSIXct\", \"POSIXt\"))\n"))))))) (propagated-inputs - (list r-farver r-magrittr r-rcpp r-rlang)) + (list r-cpp11 r-farver r-magrittr r-rlang r-vctrs)) (home-page "https://github.com/thomasp85/tweenr") (synopsis "Interpolate data for smooth animations") (description @@ -19541,18 +19544,19 @@ sets of URLs.") (define-public r-ggforce (package (name "r-ggforce") - (version "0.3.3") + (version "0.3.4") (source (origin (method url-fetch) (uri (cran-uri "ggforce" version)) (sha256 (base32 - "0bwzjbjl678xvc2ihm80dwn9pidwafqjdab3k299csys16s3na1a")))) + "0lshvdb5kx0k5w36pc7fy653cs98w17spbw8f0jw36xb80sipiv2")))) (build-system r-build-system) (propagated-inputs (list r-ggplot2 r-gtable + r-lifecycle r-mass r-polyclip r-rcpp @@ -19774,14 +19778,14 @@ graphics using Vega.") (define-public r-gbm (package (name "r-gbm") - (version "2.1.8") + (version "2.1.8.1") (source (origin (method url-fetch) (uri (cran-uri "gbm" version)) (sha256 (base32 - "1h9f4ww9yc3nsvghgr2q7jjrlz29ibabxjbax1sk5wmqh2wy6pbx")))) + "02z85d7zp3i5x8r8q005hyw2rx1ck7lw81q7a3lqwraj8l95c94d")))) (build-system r-build-system) (propagated-inputs (list r-lattice r-survival)) @@ -19954,14 +19958,14 @@ function for computing a matrix of correlation p-values.") (define-public r-ggfun (package (name "r-ggfun") - (version "0.0.6") + (version "0.0.7") (source (origin (method url-fetch) (uri (cran-uri "ggfun" version)) (sha256 (base32 - "06si42b60hp8wprs5nbks93qlb9s269k9kw7akcirizwc399x62r")))) + "0x71p3mm0sw72hv92368wy2yiy7zv826p3kddpwndqv1bywmyfx8")))) (properties `((upstream-name . "ggfun"))) (build-system r-build-system) (propagated-inputs @@ -19978,22 +19982,22 @@ each of the legends).") (define-public r-gridtext (package (name "r-gridtext") - (version "0.1.4") + (version "0.1.5") (source (origin (method url-fetch) (uri (cran-uri "gridtext" version)) (sha256 (base32 - "131kw7nkfwksviwfifd2kk7lyvhxzzzv1nnj8rahkr3dik3akk61")))) + "0f7i2qb8fawi8agy2iz2c173kfwj7cbb5ikjix64nmzqc5j7363d")))) (properties `((upstream-name . "gridtext"))) (build-system r-build-system) (propagated-inputs - (list r-jpeg + (list r-curl + r-jpeg r-markdown r-png r-rcpp - r-rcurl r-rlang r-stringr r-xml2)) @@ -20009,14 +20013,14 @@ wrap.") (define-public r-ggtext (package (name "r-ggtext") - (version "0.1.1") + (version "0.1.2") (source (origin (method url-fetch) (uri (cran-uri "ggtext" version)) (sha256 (base32 - "0n19dlcys8v7myfyckr6dnq0kx79k3sbh8nwx1jsx8pgzfbi8a2b")))) + "10vrrxviv4yp9lqsanqvwsvbj64vn66hwm1w7860x1g58hf1g0l7")))) (properties `((upstream-name . "ggtext"))) (build-system r-build-system) (propagated-inputs @@ -20249,14 +20253,14 @@ external dependencies. This package has is implemented purely in R.") (define-public r-aplot (package (name "r-aplot") - (version "0.1.6") + (version "0.1.7") (source (origin (method url-fetch) (uri (cran-uri "aplot" version)) (sha256 (base32 - "0310z9db2r8vr4053vy6w4rbcqhg5cv56p60rk7dh4y6ifbd2sbx")))) + "05l6pvhrl715xgdy7qmw6lyxigv9qn90ms3vf7awip8sdmghy9gn")))) (properties `((upstream-name . "aplot"))) (build-system r-build-system) (propagated-inputs @@ -20324,14 +20328,14 @@ colored by the number of neighboring points. This is useful to visualize the (define-public r-arrow (package (name "r-arrow") - (version "8.0.0") + (version "9.0.0.1") (source (origin (method url-fetch) (uri (cran-uri "arrow" version)) (sha256 (base32 - "1b85vc5ld7nibqgsdkl5kbzc0rm5jh5lqfdrssvrrcxpd26a16kc")))) + "1vbjny6v1d4fdf01rphg4wg8ljs0bzrjyxlsjwjq58pd6g2qcdgc")))) (properties `((upstream-name . "arrow"))) (build-system r-build-system) (inputs @@ -20438,14 +20442,14 @@ on, for a performance vs accuracy trade-off.") (define-public r-rsparse (package (name "r-rsparse") - (version "0.5.0") + (version "0.5.1") (source (origin (method url-fetch) (uri (cran-uri "rsparse" version)) (sha256 (base32 - "0d05h47j29zipyxbkv9cwzv2dzj894z6hh9dqfhwswwjbv6ciwpq")))) + "15kdllm2lh6xdlv4j0ljyj5pczhx26s9d8cac7953zbb0sd45chz")))) (properties `((upstream-name . "rsparse"))) (build-system r-build-system) (propagated-inputs @@ -20471,14 +20475,14 @@ Row} (CSR) format.") (define-public r-text2vec (package (name "r-text2vec") - (version "0.6.1") + (version "0.6.2") (source (origin (method url-fetch) (uri (cran-uri "text2vec" version)) (sha256 (base32 - "0bisr31051hnshw26rp9r4bm8ksr977dl9k1d3fb1x79pq5aa2pi")))) + "1as58w1hb6h0hpncwcr2nx9a8bj5fy6bfllx2a8ck8hal764iach")))) (properties `((upstream-name . "text2vec"))) (build-system r-build-system) (propagated-inputs @@ -20580,14 +20584,14 @@ provides tools to compute this metric.") (define-public r-lintr (package (name "r-lintr") - (version "3.0.0") + (version "3.0.1") (source (origin (method url-fetch) (uri (cran-uri "lintr" version)) (sha256 (base32 - "1d3pn6aarmpqyyzb2vawwcamrgrdvyqfdijk0ixp44c3fhld9cgf")))) + "18prww284sil98ck3gmkmfs6b4disn9nyfb00kfwwiwg7ay1df6g")))) (properties `((upstream-name . "lintr"))) (build-system r-build-system) (propagated-inputs @@ -20613,14 +20617,14 @@ code edited with @code{RStudio IDE}, @code{Emacs} and @code{Vim}.") (define-public r-sctransform (package (name "r-sctransform") - (version "0.3.3") + (version "0.3.4") (source (origin (method url-fetch) (uri (cran-uri "sctransform" version)) (sha256 (base32 - "0aqbcarsvvzkh5h4i65f08y4b8dfcs3zi62hmvfy24gj81f15bw3")))) + "1nhmsbkrww74a55avln5zhd77g92f15p885j5q0khajw35iqnv0g")))) (build-system r-build-system) (propagated-inputs (list r-dplyr @@ -20994,18 +20998,18 @@ and model output.") (define-public r-enrichr (package (name "r-enrichr") - (version "3.0") + (version "3.1") (source (origin (method url-fetch) (uri (cran-uri "enrichR" version)) (sha256 (base32 - "0i3kfq4fkmx47n61zj5f87iv8ci6gbgy90a7s8dy9zbndzvbgya3")))) + "0ad7jp398prvmm2fym07268qhv40mg67dx55ml4ayqkwxwffr1i9")))) (properties `((upstream-name . "enrichR"))) (build-system r-build-system) (propagated-inputs - (list r-ggplot2 r-httr r-rjson)) + (list r-curl r-ggplot2 r-httr r-rjson)) (native-inputs (list r-knitr)) (home-page "https://cran.r-project.org/web/packages/enrichR/") @@ -21167,14 +21171,14 @@ easily.") (define-public r-umap (package (name "r-umap") - (version "0.2.8.0") + (version "0.2.9.0") (source (origin (method url-fetch) (uri (cran-uri "umap" version)) (sha256 (base32 - "0aiarnzc8gl932gi8fxd9f9rshaiwh9vj570l135fkiaja3q2wap")))) + "1282v09kpds83mlr7kz06k8a40ji15hw85p30vrnp1g6w64w26sm")))) (build-system r-build-system) (propagated-inputs (list r-matrix r-openssl r-rcpp r-reticulate r-rspectra)) @@ -21191,14 +21195,14 @@ in R, including a translation of the original algorithm into R.") (define-public r-uwot (package (name "r-uwot") - (version "0.1.11") + (version "0.1.14") (source (origin (method url-fetch) (uri (cran-uri "uwot" version)) (sha256 (base32 - "06ylzxmdh8jipbrzgqaiivd2lnqmbcva41cyvc0iyals6vqr1ksg")))) + "1q4z98w3pkc51vrcpmwaibnwmlm17zjcnh0qlx660wky5ccyh5l0")))) (build-system r-build-system) (propagated-inputs (list r-dqrng @@ -21207,8 +21211,7 @@ in R, including a translation of the original algorithm into R.") r-matrix r-rcpp r-rcppannoy - r-rcppprogress - r-rspectra)) + r-rcppprogress)) (home-page "https://github.com/jlmelville/uwot") (synopsis "Uniform manifold approximation and projection") (description @@ -21351,14 +21354,14 @@ computed using the L1 (Manhattan, taxicab) metric.") (define-public r-leiden (package (name "r-leiden") - (version "0.4.2") + (version "0.4.3") (source (origin (method url-fetch) (uri (cran-uri "leiden" version)) (sha256 (base32 - "1gg24afwbz818041bhmswmdqgxv35zp5h1i1102p58aaiis8dkna")))) + "0f09k3mhb0di2cz1q95y6qd3rqh7xdybn0dpnd4ifqhfhr5lnika")))) (properties `((upstream-name . "leiden"))) (build-system r-build-system) (propagated-inputs @@ -21377,14 +21380,14 @@ guaranteeing well-connected communities.\" <arXiv:1810.08473>.") (define-public r-patchwork (package (name "r-patchwork") - (version "1.1.1") + (version "1.1.2") (source (origin (method url-fetch) (uri (cran-uri "patchwork" version)) (sha256 (base32 - "10glgkf58lcykcwda1hj6xdps02m3i247qynk6s2jmwljagps3fg")))) + "0xw9mh1qakj131nw98icxrxwvdlwy2ngwvmagrqr3m84sz9dbffs")))) (build-system r-build-system) (propagated-inputs (list r-ggplot2 r-gtable)) @@ -21520,13 +21523,13 @@ function and interfaces to external frameworks.") (define-public r-covr (package (name "r-covr") - (version "3.5.1") + (version "3.6.1") (source (origin (method url-fetch) (uri (cran-uri "covr" version)) (sha256 - (base32 "0v5cv3cw2kpdr6wxmkbd3wclavr17zipypdcb10hhmpa4cvgqk55")))) + (base32 "0mqiqmbwq5f083lda208nqd4ya0f912bkkya2i62fkqsii1ibgpz")))) (properties `((upstream-name . "covr"))) (build-system r-build-system) (propagated-inputs @@ -21582,14 +21585,14 @@ be used further by e.g. graphic devices.") (define-public r-graphlayouts (package (name "r-graphlayouts") - (version "0.8.0") + (version "0.8.1") (source (origin (method url-fetch) (uri (cran-uri "graphlayouts" version)) (sha256 (base32 - "1l7gkn0r1ijllv3w7cbwcbi0jggs7wlkq9b2lykprng4g1kjc96p")))) + "0yhg42p3jlz78kd712jd5525zm1h3n5gmjplfscjkgn342r3w92v")))) (properties `((upstream-name . "graphlayouts"))) (build-system r-build-system) (propagated-inputs @@ -21607,14 +21610,14 @@ emphasize hidden group structures in networks or focus on specific nodes.") (define-public r-terra (package (name "r-terra") - (version "1.6-7") + (version "1.6-17") (source (origin (method url-fetch) (uri (cran-uri "terra" version)) (sha256 (base32 - "1p67797i9n4cjk1lp4a84h220428nxv940n1kjg1ysl3chrf0w1l")))) + "00mwigymvsqf7r3swbkdw8fwqzr05ddk84fhyhr16lfa4118z26v")))) (properties `((upstream-name . "terra"))) (build-system r-build-system) (inputs @@ -21641,14 +21644,14 @@ files is supported.") (define-public r-tidygraph (package (name "r-tidygraph") - (version "1.2.1") + (version "1.2.2") (source (origin (method url-fetch) (uri (cran-uri "tidygraph" version)) (sha256 (base32 - "0dmdff3bkg53xn0c51xd6k2d9c7l250x1lhl5z3libf533dw5g9g")))) + "0w34jfldjkynbkyinmi1vdrfjhjrs47hm599mbnx4sxmnpbclmfm")))) (properties `((upstream-name . "tidygraph"))) (build-system r-build-system) (propagated-inputs @@ -21728,14 +21731,14 @@ in pipelines.") (define-public r-parameters (package (name "r-parameters") - (version "0.18.1") + (version "0.18.2") (source (origin (method url-fetch) (uri (cran-uri "parameters" version)) (sha256 (base32 - "0zcypf3fi745pa18vpqgx3q9izhkkmpcvcv1gv8pxawyq9mw8ag9")))) + "04swg19zb34y3nmclf94v19yskqlb2diqg93jflhgagrv9550az9")))) (properties `((upstream-name . "parameters"))) (build-system r-build-system) (propagated-inputs @@ -21809,14 +21812,14 @@ atmospheric physics.") (define-public r-lifecycle (package (name "r-lifecycle") - (version "1.0.1") + (version "1.0.2") (source (origin (method url-fetch) (uri (cran-uri "lifecycle" version)) (sha256 (base32 - "183v1z1h037pvsgrj6vakpwhnhsr29hsw8p16k59dgpi00f6x9qx")))) + "0qssl9lmfn94kmvcg1xpd4md17jx31i3sdbb77dwas60z673qgvv")))) (properties `((upstream-name . "lifecycle"))) (build-system r-build-system) (propagated-inputs @@ -21916,13 +21919,13 @@ to ODEs by numerical differencing.") (define-public r-pmcmrplus (package (name "r-pmcmrplus") - (version "1.9.5") + (version "1.9.6") (source (origin (method url-fetch) (uri (cran-uri "PMCMRplus" version)) (sha256 - (base32 "15xhwq231vgq9q7pk1r4z11wijn4hgdwcly1n9nxxa05w15x9q33")))) + (base32 "1mvj3cwrdkl3frk7fvh6l7v7yya5p3xm4z0qhc4fvykxdmb92ivz")))) (properties `((upstream-name . "PMCMRplus"))) (build-system r-build-system) (inputs (list gmp)) @@ -22333,14 +22336,14 @@ cell free DNA} (cfDNA).") (define-public r-rintrojs (package (name "r-rintrojs") - (version "0.3.0") + (version "0.3.2") (source (origin (method url-fetch) (uri (cran-uri "rintrojs" version)) (sha256 (base32 - "00l5mk80gj3xkbf3m1kip566ic98bhd88lh0bg69ybkpk4gifpyw")) + "19lpq421hrs1wc9bnimbwxx35p8bbzil3x1h9l28gjayn4djmjsh")) (snippet '(delete-file "inst/javascript/introjs/intro.min.js")))) (properties `((upstream-name . "rintrojs"))) @@ -22810,14 +22813,14 @@ and mixture of Gaussian models.") (define-public r-accsda (package (name "r-accsda") - (version "1.1.1") + (version "1.1.2") (source (origin (method url-fetch) (uri (cran-uri "accSDA" version)) (sha256 (base32 - "104xdz63mnibh6827xm0pfr9zbhbi2a7iw4m1x27xjqi7zqvbky6")))) + "0jf4x5j9y7a3mvf2ghjp6bxdq1s5jh2sx3x3ar6f3lyzzvrnls4v")))) (properties `((upstream-name . "accSDA"))) (build-system r-build-system) (propagated-inputs @@ -22912,14 +22915,14 @@ and prints vectorized images.") (define-public r-randtoolbox (package (name "r-randtoolbox") - (version "2.0.1") + (version "2.0.2") (source (origin (method url-fetch) (uri (cran-uri "randtoolbox" version)) (sha256 (base32 - "1p2jsn0hpihc49zk605z82mhhvma0ji2f5b94wa85g2xzriqkwn4")))) + "0mvafd2gm1jpg19gdn6bw8668pqghi0xmcb56rl4fwamg8jg09xn")))) (properties `((upstream-name . "randtoolbox"))) (build-system r-build-system) (propagated-inputs @@ -23805,20 +23808,21 @@ allowed.") (define-public r-gdina (package (name "r-gdina") - (version "2.8.8") + (version "2.9.3") (source (origin (method url-fetch) (uri (cran-uri "GDINA" version)) (sha256 (base32 - "1slq1npsq8s8aghnrpm6vvc6kxj4svz0kr2x0akblndrcr25wxjr")))) + "0bwg9sfsqs5nsqwhjnbb631fbhj0mx2dc4c185qkym9cjb5lfkm9")))) (properties `((upstream-name . "GDINA"))) (build-system r-build-system) (propagated-inputs (list r-alabama r-ggplot2 r-mass + r-nloptr r-numderiv r-rcpp r-rcpparmadillo @@ -24385,14 +24389,14 @@ it may be seen by an animal with less acute vision.") (define-public r-caret (package (name "r-caret") - (version "6.0-92") + (version "6.0-93") (source (origin (method url-fetch) (uri (cran-uri "caret" version)) (sha256 (base32 - "048mp325ndfl83a8p4dkd1b6zh5bws4gg9kxka5ss8qsj8m4m08x")))) + "01sa1h9pc3a062pwm0rxadvg9qxszwcylya7llv08fcxhy46n5ac")))) (build-system r-build-system) (propagated-inputs (list r-e1071 @@ -24523,31 +24527,35 @@ Visualizations are also available for most of these settings.") (define-public r-torch (package (name "r-torch") - (version "0.8.0") + (version "0.8.1") (source (origin (method url-fetch) (uri (cran-uri "torch" version)) (sha256 - (base32 "0n2rmv2mwfp4y002x46fd278kssmhi54zcyj37558k4r1kazzfxp")))) + (base32 "1dncf5njdzw1hf98knlv94rxcxnc5gl3cmk2cvlbn1z8mri86rlc")))) (properties `((upstream-name . "torch"))) (build-system r-build-system) (arguments (list #:phases - #~(modify-phases %standard-phases - (add-after 'install 'link-libraries - (lambda* (#:key inputs #:allow-other-keys) - (let ((deps (string-append #$output "/site-library/torch/deps"))) - (mkdir-p deps) - (symlink - (search-input-file - inputs "/lib/python3.10/site-packages/torch/lib/libtorch.so") - (string-append deps "/libtorch.so")) - (symlink - (search-input-file - inputs "/lib/liblantern.so") - (string-append deps "/liblantern.so")))))))) + (let ((python-version (version-major+minor (package-version python)))) + #~(modify-phases %standard-phases + (add-after 'install 'link-libraries + (lambda* (#:key inputs #:allow-other-keys) + (let ((deps (string-append #$output "/site-library/torch/deps")) + (site-packages (string-append "/lib/python" + #$python-version + "/site-packages"))) + (mkdir-p deps) + (symlink + (search-input-file + inputs (string-append site-packages "/torch/lib/libtorch.so")) + (string-append deps "/libtorch.so")) + (symlink + (search-input-file + inputs "/lib/liblantern.so") + (string-append deps "/liblantern.so"))))))))) (inputs (list python-pytorch-for-r-torch liblantern)) @@ -24788,13 +24796,13 @@ statistical shape analysis and archetypal analysis.") (define-public r-anndata (package (name "r-anndata") - (version "0.7.5.3") + (version "0.7.5.4") (source (origin (method url-fetch) (uri (cran-uri "anndata" version)) (sha256 - (base32 "115v7gdilayd18hd519vzkixp2s6rvvrd1inc1i6amn7d0spy8r1")))) + (base32 "0vn64b0rpnwbznn0h03b810mp8hcqxjzw69nzyjmndwa8r9ial2y")))) (properties `((upstream-name . "anndata"))) (build-system r-build-system) (propagated-inputs (list r-assertthat r-matrix r-r6 r-reticulate)) @@ -24870,22 +24878,19 @@ finding peaks in spectra, converting humidity measures.") (define-public r-qqconf (package (name "r-qqconf") - (version "1.2.3") + (version "1.3.0") (source (origin (method url-fetch) (uri (cran-uri "qqconf" version)) (sha256 (base32 - "0qnfzq2zb776kmvbwmyj9di4nlzx7dg0nz4097hfcllfx9160nwv")))) + "11sh0q5bwmqdygqd1gspx7xc5mysj18whz11afnz6s1m820snhhw")))) (properties `((upstream-name . "qqconf"))) (build-system r-build-system) (inputs (list fftw)) (propagated-inputs - (list r-dplyr - r-magrittr - r-mass + (list r-mass r-rcpp - r-rlang r-robustbase)) (native-inputs (list pkg-config r-knitr)) (home-page "https://github.com/eweine/qqconf") @@ -25491,14 +25496,14 @@ programming} (OOP) using R Reference Class.") (define-public r-proxyc (package (name "r-proxyc") - (version "0.3.0") + (version "0.3.2") (source (origin (method url-fetch) (uri (cran-uri "proxyC" version)) (sha256 (base32 - "0n3rjc64b3cbccwjajpzd9gr1frgji6rsylw67xswrr9qxkrm0fd")))) + "1nfl6nrzw2h7argn6mh3cyl1s9ynf6516fx4vgqrjvychnd98mkb")))) (properties `((upstream-name . "proxyC"))) (build-system r-build-system) (propagated-inputs @@ -25605,14 +25610,14 @@ Norwegian, Portuguese, Romanian, Russian, Spanish, Swedish and Turkish.") (define-public r-quanteda (package (name "r-quanteda") - (version "3.2.2") + (version "3.2.3") (source (origin (method url-fetch) (uri (cran-uri "quanteda" version)) (sha256 (base32 - "0qb5yl2bxh6mq4xnjviqv8hfy9fxnx4hmxf06icwldpgx15afa31")))) + "1blk9nhydvqyyz0kzhph7nh7ahcjzflmgyr4sv8fx5bpmn4hwjzk")))) (properties `((upstream-name . "quanteda"))) (build-system r-build-system) (propagated-inputs @@ -25805,14 +25810,14 @@ imputed data sets with the appropriate degree of sampling uncertainty.") (define-public r-matrixcalc (package (name "r-matrixcalc") - (version "1.0-5") + (version "1.0-6") (source (origin (method url-fetch) (uri (cran-uri "matrixcalc" version)) (sha256 (base32 - "1jkgl1v1q7cqpl1rf49qahdr9y0f33f0ldsbgby8xhfv0vpy21jr")))) + "09pk0ym6qzribxc6v18cpb6478i4r4kzxpkljjbb3n323zqx5iqb")))) (properties `((upstream-name . "matrixcalc"))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/matrixcalc/") @@ -25827,13 +25832,13 @@ actuarial models such as pension mathematics.") (define-public r-matrixextra (package (name "r-matrixextra") - (version "0.1.11") + (version "0.1.13") (source (origin (method url-fetch) (uri (cran-uri "MatrixExtra" version)) (sha256 - (base32 "0d32b8l28ds7162rgbwbg9g206hds1zzv1mqq7aa9m6f9gg8x3am")))) + (base32 "1s8y8zp9k7rsnyi1d8ghi4brjbbdwxijc9chhla24qm3fi6np33a")))) (properties `((upstream-name . "MatrixExtra"))) (build-system r-build-system) (propagated-inputs @@ -25916,14 +25921,14 @@ least squares.") (define-public r-regsem (package (name "r-regsem") - (version "1.8.0") + (version "1.9.3") (source (origin (method url-fetch) (uri (cran-uri "regsem" version)) (sha256 (base32 - "1v33wkrsawcvaa06cijp8ybwi82a0x34y59hdknwdbywplnirzr8")))) + "0vpizmdml55naxmhy9nfcm9ylhy15p9na7l0c6z3rvk29ck3g3sw")))) (properties `((upstream-name . "regsem"))) (build-system r-build-system) (propagated-inputs @@ -26206,14 +26211,14 @@ model estimation. See Epskamp et al. (2012) (define-public r-semplot (package (name "r-semplot") - (version "1.1.5") + (version "1.1.6") (source (origin (method url-fetch) (uri (cran-uri "semPlot" version)) (sha256 (base32 - "0d7v9yqc9nhx3hdrp444w1ah66zai3lg5y778m85r7ngh1prxlvc")))) + "0s9bp4pfsllg1k4x8a36yw82fw432dyz0xvmvi8dw9l12q3jkx8i")))) (properties `((upstream-name . "semPlot"))) (build-system r-build-system) (propagated-inputs @@ -26244,14 +26249,14 @@ translated to input syntax for the R packages @code{sem} and @code{lavaan}.") (define-public r-cdm (package (name "r-cdm") - (version "8.1-12") + (version "8.2-6") (source (origin (method url-fetch) (uri (cran-uri "CDM" version)) (sha256 (base32 - "1cnk19k09cj81ic43rwbvcalvczfca4ncdyy8r1gyc8fzf2glb0i")))) + "1lcq3i5rlyqkc12c26kj0x4fm2gh1jsisp6kbf59y3hjdkiqajhl")))) (properties `((upstream-name . "CDM"))) (build-system r-build-system) (propagated-inputs @@ -26275,14 +26280,14 @@ well as Ravand and Robitzsch (2015).") (define-public r-tam (package (name "r-tam") - (version "4.0-16") + (version "4.1-4") (source (origin (method url-fetch) (uri (cran-uri "TAM" version)) (sha256 (base32 - "00ww277hsyci5rph4gb155h0y95dmjhqgn9amz6g8zbrjb2748dw")))) + "0b81d0g4j94yrfzj019jffxrk1aw24iscddp60kjbkrl5p7qy38g")))) (properties `((upstream-name . "TAM"))) (build-system r-build-system) (propagated-inputs @@ -26627,14 +26632,14 @@ techniques to average Bayesian predictive distributions.") (define-public r-rstan (package (name "r-rstan") - (version "2.21.5") + (version "2.21.7") (source (origin (method url-fetch) (uri (cran-uri "rstan" version)) (sha256 (base32 - "1smr5cjrqvpdnkmjpjp73p96sy581x15mwrn4fqd1p4d5mbgxr46")))) + "0ibd3pj2pvd7658sdg95fa2yhfmxz9gy0cjwcrdr546k209j55a4")))) (properties `((upstream-name . "rstan"))) (build-system r-build-system) (arguments @@ -26895,14 +26900,14 @@ opponents' vessels.") (define-public r-zseq (package (name "r-zseq") - (version "0.2.0") + (version "0.2.1") (source (origin (method url-fetch) (uri (cran-uri "Zseq" version)) (sha256 (base32 - "06dndi2b1q79bmxax11bv0l5ifcz1mhpvbn90y6a6xymrgcq0ivi")))) + "0xp7qi5kjg8xmci9wrfvmygjmz8gbhq60fl9bvk8rnka6s4ppkrc")))) (properties `((upstream-name . "Zseq"))) (build-system r-build-system) (propagated-inputs @@ -27059,13 +27064,13 @@ appropriate dog and cat images for many status codes.") (define-public r-latex2exp (package (name "r-latex2exp") - (version "0.9.4") + (version "0.9.5") (source (origin (method url-fetch) (uri (cran-uri "latex2exp" version)) (sha256 (base32 - "0zbbrbgg524lpm733j8qsqk5ssg75c51s6dgzb18c6fk8byrx945")))) + "153br3xflvnnxqhkhm1wgwb2664bw08alhslgdcgjdk73clafhla")))) (build-system r-build-system) (propagated-inputs (list r-stringr r-magrittr)) @@ -27587,14 +27592,14 @@ here.") (define-public r-projpred (package (name "r-projpred") - (version "2.1.2") + (version "2.2.0") (source (origin (method url-fetch) (uri (cran-uri "projpred" version)) (sha256 (base32 - "1c6gnmknd3vb0fb5h6gd372dk27nzif90b4c1snql49wacg6b2m8")))) + "1a5hsqwcmn1w9lwjhsqw06av7cmqhwyxsil9zfrnv1396zfkpxhy")))) (properties `((upstream-name . "projpred"))) (build-system r-build-system) (propagated-inputs @@ -27624,20 +27629,19 @@ vignette for more information and examples.") (define-public r-distributional (package (name "r-distributional") - (version "0.3.0") + (version "0.3.1") (source (origin (method url-fetch) (uri (cran-uri "distributional" version)) (sha256 (base32 - "1mji8xlhwrw8msih5wdpbzwv4g59kly0xkdklhn8yzb18rrnrczs")))) + "0pr34yq6igb7ciqss2ldwa7gc55xvla040x8rkd8m2hcrz5mczkj")))) (properties `((upstream-name . "distributional"))) (build-system r-build-system) (propagated-inputs (list r-digest - r-ellipsis r-farver r-generics r-ggplot2 @@ -27661,14 +27665,14 @@ including means, variances, intervals, and highest density regions.") (define-public r-posterior (package (name "r-posterior") - (version "1.2.2") + (version "1.3.1") (source (origin (method url-fetch) (uri (cran-uri "posterior" version)) (sha256 (base32 - "0frm7p6cjkjfl4gviixaa7448qaac8n9ilkr5c02fa9vnisys5fn")))) + "0yjdjdr4ifssnml1niqyxs6jsqpci8rx8va0pinyhjx2j017h03h")))) (properties `((upstream-name . "posterior"))) (build-system r-build-system) (propagated-inputs @@ -27793,14 +27797,14 @@ multi-state models.") (define-public r-scatterpie (package (name "r-scatterpie") - (version "0.1.7") + (version "0.1.8") (source (origin (method url-fetch) (uri (cran-uri "scatterpie" version)) (sha256 (base32 - "1pmspv8a7k20zyd5xvmav2k9mnjrkfhdij3rr9k504zyki8hfy1z")))) + "183ji1q0wr8fswdrgaw161fvgh8y7j4x9xacf09s2gz6icxcdk56")))) (properties `((upstream-name . "scatterpie"))) (build-system r-build-system) (propagated-inputs @@ -28106,14 +28110,14 @@ incremented as outlined at @url{http://semver.org}.") (define-public r-binman (package (name "r-binman") - (version "0.1.2") + (version "0.1.3") (source (origin (method url-fetch) (uri (cran-uri "binman" version)) (sha256 (base32 - "00l7m98h41r67gf0qxqis3vx63j7wylnk9vlgcyk41szkrz8ikkc")))) + "1xz9ky3axidm0fp518rj80ma6q14ybyvashil79hhkk3iqmx0lhw")))) (properties `((upstream-name . "binman"))) (build-system r-build-system) (propagated-inputs @@ -28137,14 +28141,14 @@ repositories to be added.") (define-public r-wdman (package (name "r-wdman") - (version "0.2.5") + (version "0.2.6") (source (origin (method url-fetch) (uri (cran-uri "wdman" version)) (sha256 (base32 - "1yf41lsrr9dbf5n4f5hv9mlmzl736fhnp9gxkm2g9apws6gsig02")))) + "0n0wwb9ip6qc8qzdxn4dsqfbc8b3f607n8l6jigryd7g83ibnbp6")))) (properties `((upstream-name . "wdman"))) (build-system r-build-system) (propagated-inputs @@ -28166,23 +28170,20 @@ and to manage processes involving them.") (define-public r-rselenium (package (name "r-rselenium") - (version "1.7.7") + (version "1.7.9") (source (origin (method url-fetch) (uri (cran-uri "RSelenium" version)) (sha256 (base32 - "1xn5fdbzmq7b1f5fc9ls23g177bmnd8bn4p4d8aafr6z3jwkmfir")))) + "18hd0gfpblg9ij99ik7ccc60q9dxha89n5rrwrrzx498c5sscjg2")))) (properties `((upstream-name . "RSelenium"))) (build-system r-build-system) (propagated-inputs - (list r-binman - r-catools - r-httr - r-openssl - r-wdman - r-xml)) + (list r-catools + r-httr + r-wdman)) (native-inputs (list r-knitr)) (home-page "https://docs.ropensci.org/RSelenium/") (synopsis "R bindings for Selenium WebDriver") @@ -28201,14 +28202,14 @@ you can automate browsers locally or remotely.") (define-public r-conquer (package (name "r-conquer") - (version "1.3.0") + (version "1.3.1") (source (origin (method url-fetch) (uri (cran-uri "conquer" version)) (sha256 (base32 - "1ynmaf7lgqjb8grsifx5dzy29cd5kz4x3yh0abnl2vxdr4c4wddc")))) + "1mdwm0aanq4rx3042djvs0l2vkdx6zbzvrjfyfb9dhv0gfs8mhhl")))) (properties `((upstream-name . "conquer"))) (build-system r-build-system) (propagated-inputs @@ -28300,14 +28301,14 @@ simple interface for all functions.") (define-public r-iml (package (name "r-iml") - (version "0.11.0") + (version "0.11.1") (source (origin (method url-fetch) (uri (cran-uri "iml" version)) (sha256 (base32 - "1za7bjnp07i20vyb6vxz2ya5cr8g4p076w61n8m38wnz04lz5yz5")))) + "0fi37lv9czaxcc123f6r57607shqhs83ks96n2n0b93dl1qs0j52")))) (properties `((upstream-name . "iml"))) (build-system r-build-system) (propagated-inputs @@ -29195,6 +29196,34 @@ function that determines the current environment and returns the appropriate value.") (license license:gpl3))) +(define-public r-confintr + (package + (name "r-confintr") + (version "0.1.2") + (source (origin + (method url-fetch) + (uri (cran-uri "confintr" version)) + (sha256 + (base32 + "06c42jhqp7gp9062jf8f9py1lh34vx38q0g7b6l5kyf7a310ixr6")))) + (properties `((upstream-name . "confintr"))) + (build-system r-build-system) + (propagated-inputs (list r-boot)) + (native-inputs (list r-knitr)) + (home-page "https://github.com/mayer79/confintr") + (synopsis "Confidence intervals") + (description + "This package calculates classic and/or bootstrap confidence intervals +for many parameters such as the population mean, variance, @dfn{interquartile +range} (IQR), @dfn{median absolute deviation} (MAD), skewness, kurtosis, +Cramer's V, odds ratio, R-squared, quantiles (including median), proportions, +different types of correlation measures, difference in means, quantiles and +medians. Many of the classic confidence intervals are described in Smithson, +M. (2003, ISBN: 978-0761924999). Bootstrap confidence intervals are +calculated with the R package @code{boot}. Both one- and two-sided intervals +are supported.") + (license license:gpl2+))) + (define-public r-adaptivesparsity (package (name "r-adaptivesparsity") @@ -29398,14 +29427,14 @@ object sizes.") (define-public r-yardstick (package (name "r-yardstick") - (version "1.0.0") + (version "1.1.0") (source (origin (method url-fetch) (uri (cran-uri "yardstick" version)) (sha256 (base32 - "0mnpvwbzybxp47w4yibmjb7xppwinbjcqcyqfn8qn38l5liwy8yd")))) + "0bcirq9mp7c6kwx563nnsd4lk33xk0rfaakj1xj5r8pzmrcgbikj")))) (properties `((upstream-name . "yardstick"))) (build-system r-build-system) (propagated-inputs @@ -29453,13 +29482,13 @@ observations.") (define-public r-scico (package (name "r-scico") - (version "1.3.0") + (version "1.3.1") (source (origin (method url-fetch) (uri (cran-uri "scico" version)) (sha256 - (base32 "08grfbjd5s0vdw76ni37yjl2242rr8i2jy72sgpwgra282hpnji3")))) + (base32 "1f2czfhzdpi5dqjbxvbrrcnxjpylc5zzghj70ihlh2agq3n9hw5g")))) (properties `((upstream-name . "scico"))) (build-system r-build-system) (propagated-inputs (list r-scales)) @@ -29778,14 +29807,14 @@ final SQL translation of the algorithm. It currently supports @code{lm()}, (define-public r-janeaustenr (package (name "r-janeaustenr") - (version "0.1.5") + (version "1.0.0") (source (origin (method url-fetch) (uri (cran-uri "janeaustenr" version)) (sha256 (base32 - "1wyn4qc28a3sval8shmyi2d7s4nl3jh96s8pzq871brxcmrncbwr")))) + "1ap8p1lpbj2wz90mpf1vbyzhv2spzv03bi8lwzpsir2y77hjxhxl")))) (properties `((upstream-name . "janeaustenr"))) (build-system r-build-system) (home-page "https://github.com/juliasilge/janeaustenr") @@ -29870,14 +29899,14 @@ consistent interface, and the package is built on the @code{stringi} and (define-public r-hunspell (package (name "r-hunspell") - (version "3.0.1") + (version "3.0.2") (source (origin (method url-fetch) (uri (cran-uri "hunspell" version)) (sha256 (base32 - "0ql6y05d4xxpm468rslb0wxdp1x9l3flxzmb5w6pjg617f8vpv8z")))) + "0kij39rhsx7s4lfddy6745f1zjyi003srj14ckjpbhkcyxamk8jy")))) (properties `((upstream-name . "hunspell"))) (build-system r-build-system) (propagated-inputs @@ -29904,14 +29933,14 @@ vignettes in all common formats.") (define-public r-tidytext (package (name "r-tidytext") - (version "0.3.3") + (version "0.3.4") (source (origin (method url-fetch) (uri (cran-uri "tidytext" version)) (sha256 (base32 - "0kljaxyhhzbcv9jkjdy0wn6gkamh25y2xfb9k11sqhz3lv72nfvm")))) + "0mk75wdiy4mixj1xlksw9ns4ajlj8ak90sgchjcg1zb90qp7gg56")))) (properties `((upstream-name . "tidytext"))) (build-system r-build-system) (propagated-inputs @@ -29939,14 +29968,14 @@ analysis using @code{dplyr}, @code{ggplot2}, and other Tidy tools.") (define-public r-parsnip (package (name "r-parsnip") - (version "1.0.0") + (version "1.0.1") (source (origin (method url-fetch) (uri (cran-uri "parsnip" version)) (sha256 (base32 - "0lwz95ff69arbl2mpmnkwjf24cgb866nr3frkb89va91gp1w9691")))) + "0pzr39jhlzjhm2nx1zcgd0mdxd4dxbdzhzc1qrvfsz05jwfb6xxy")))) (properties `((upstream-name . "parsnip"))) (build-system r-build-system) (propagated-inputs @@ -29980,14 +30009,14 @@ functions or computational engines (e.g. R, Spark, Stan, etc).") (define-public r-infer (package (name "r-infer") - (version "1.0.2") + (version "1.0.3") (source (origin (method url-fetch) (uri (cran-uri "infer" version)) (sha256 (base32 - "0qfrxljvwpa8d1k66ii80irarlv593wr6rmcsmi4flc7adgydrnp")))) + "1m5srhcmkh8wq12pvy57g3g703wilkl8r3gmm5s7lbj103iz7v8b")))) (properties `((upstream-name . "infer"))) (build-system r-build-system) (propagated-inputs @@ -30014,14 +30043,14 @@ expressive statistical grammar that coheres with the Tidy design framework.") (define-public r-modeldata (package (name "r-modeldata") - (version "1.0.0") + (version "1.0.1") (source (origin (method url-fetch) (uri (cran-uri "modeldata" version)) (sha256 (base32 - "16ad8g86alahirgmp8bhb6v1ghayw965bdz5mrpnq7nnncazaqcm")))) + "0ik4r25l69brkf0l248bln1kicy7dpi6mziwn19by8rq3f8fylhy")))) (properties `((upstream-name . "modeldata"))) (build-system r-build-system) (propagated-inputs @@ -30164,14 +30193,14 @@ package also provides functions to visualize the observed data and the MLE.") (define-public r-metafor (package (name "r-metafor") - (version "3.4-0") + (version "3.8-1") (source (origin (method url-fetch) (uri (cran-uri "metafor" version)) (sha256 (base32 - "0vn244xfgq7yxwl6ykvadb305z360ssc9vzva7kbcdfiqhhvrqcj")))) + "05053cvk65fh2p4wrmygkvgqvrl73kz22rdbxsjxhi21jmzmg56n")))) (properties `((upstream-name . "metafor"))) (build-system r-build-system) (propagated-inputs @@ -30200,14 +30229,14 @@ phylogenetic relatedness) can also be conducted.") (define-public r-altmeta (package (name "r-altmeta") - (version "4.0") + (version "4.1") (source (origin (method url-fetch) (uri (cran-uri "altmeta" version)) (sha256 (base32 - "17cyiydf4n5j64izj7jph2v43h4x9kfd5b0x6m0ik5ci2aw8xzr5")))) + "01v308389wqzp35icrp9ssb4y4gxwjzl600qw47c6rmm6s2mxzjh")))) (properties `((upstream-name . "altmeta"))) (build-system r-build-system) (propagated-inputs @@ -30379,14 +30408,14 @@ data to rasters. It speeds up plotting of data with millions of points.") (define-public r-seuratobject (package (name "r-seuratobject") - (version "4.1.0") + (version "4.1.1") (source (origin (method url-fetch) (uri (cran-uri "SeuratObject" version)) (sha256 (base32 - "018anas8a9m3kh9jn5370v64d93k64z3iic13a75hp6r7g5hd94w")))) + "1h8b90vg9ysczk3p625n07bfrhmph3cxv9ymh896hqr7rn2qbwd6")))) (properties `((upstream-name . "SeuratObject"))) (build-system r-build-system) (propagated-inputs @@ -30558,17 +30587,18 @@ distributed as independent packages.") (define-public r-phangorn (package (name "r-phangorn") - (version "2.9.0") + (version "2.10.0") (source (origin (method url-fetch) (uri (cran-uri "phangorn" version)) (sha256 (base32 - "08ys4vgmsp070v3119wzl1nrgx359427gb6lcxj67p5y0bhdnqij")))) + "1kjxp352jdk1amxpk9jrql490d0qy79zm65y8szyxrm1adqghlyi")))) (build-system r-build-system) (propagated-inputs (list r-ape + r-digest r-fastmatch r-generics r-igraph @@ -30616,14 +30646,14 @@ rate speciation and extinction.") (define-public r-calculus (package (name "r-calculus") - (version "0.3.3") + (version "0.3.4") (source (origin (method url-fetch) (uri (cran-uri "calculus" version)) (sha256 (base32 - "1fhvr0l2mqik3d95v0vanafxmiab147g5a87q956g2i945wc5f22")))) + "0hpibnbxl3ngfgzxq8cp9hxsn1yv03dnxyycm3gkr5iv5gkbbpw9")))) (properties `((upstream-name . "calculus"))) (build-system r-build-system) (propagated-inputs @@ -30814,13 +30844,13 @@ Services (AWS) Simple Storage Service (S3) REST API.") (define-public r-lgr (package (name "r-lgr") - (version "0.4.3") + (version "0.4.4") (source (origin (method url-fetch) (uri (cran-uri "lgr" version)) (sha256 (base32 - "18s92qyakhvp336kk2777ydypwfrfwfz6a1gqkq812zy3kcb4mcc")))) + "09x1vw6cnc1c0p0ylcz1q1vcxyaf1kljhh7ni3gl5jm19zii2h4c")))) (build-system r-build-system) (propagated-inputs (list r-r6)) @@ -30931,8 +30961,8 @@ resampled, benchmarked, and tuned.") (license license:lgpl3))) (define-public r-mlr3ordinal - (let ((commit "9febac983b11b7b1f477e5cf0212e5999cd2ed44") - (revision "0")) + (let ((commit "736e3a39be6b7088b650297cc6d90208ec58c0d7") + (revision "1")) (package (name "r-mlr3ordinal") (version (git-version "0.1.0-9000" revision commit)) @@ -30944,7 +30974,7 @@ resampled, benchmarked, and tuned.") (file-name (git-file-name name version)) (sha256 (base32 - "1icfhz1pjm0mlsn2y60gsrbk31b2p7xmpx3xsg7639rcgdb5f9gl")))) + "0ipf6n4m6giicn0x7f3lrfmbqkhw8zkz32hzq2xf209wndkqhqm1")))) (build-system r-build-system) (propagated-inputs (list r-checkmate @@ -30986,13 +31016,13 @@ implemented as @code{R6} classes.") (define-public r-mlr3 (package (name "r-mlr3") - (version "0.13.4") + (version "0.14.0") (source (origin (method url-fetch) (uri (cran-uri "mlr3" version)) (sha256 (base32 - "13g0krjry0da1yfm6hrdq63ga5rwag5lkgp375394michiipnbwk")))) + "0cnyby4947g1w0h45nd3ld5zr4k19xrwp565mq1hnqkjwmyjsgdj")))) (build-system r-build-system) (propagated-inputs (list r-r6 @@ -31023,13 +31053,13 @@ computational operations, add-on packages provide additional functionality.") (define-public r-mlr3learners (package (name "r-mlr3learners") - (version "0.5.3") + (version "0.5.4") (source (origin (method url-fetch) (uri (cran-uri "mlr3learners" version)) (sha256 (base32 - "088i2piv7sgxsvc7jyr6mq53vqf8yjdlrysgqphsryq6k50i00zd")))) + "0sa2qjvhvjzsfssln9ah08zknzdcps1z28xzgkdfgi6dj25a0y3k")))) (build-system r-build-system) (propagated-inputs (list r-checkmate @@ -31050,14 +31080,14 @@ vector machines, and gradient boosting.") (define-public r-bbotk (package (name "r-bbotk") - (version "0.5.3") + (version "0.5.4") (source (origin (method url-fetch) (uri (cran-uri "bbotk" version)) (sha256 (base32 - "13qj8qysqismv9k9rfw770r7w8jdaw82n71k7sp3wsrlhxjxw734")))) + "02dp0b62dv02rvxsgj63mkmmcdzrlf06vxjr5gqy9rhq5s2mg4fa")))) (properties `((upstream-name . "bbotk"))) (build-system r-build-system) (propagated-inputs @@ -31080,13 +31110,13 @@ annealing.") (define-public r-mlr3tuning (package (name "r-mlr3tuning") - (version "0.13.1") + (version "0.14.0") (source (origin (method url-fetch) (uri (cran-uri "mlr3tuning" version)) (sha256 (base32 - "0jfslx6pwk408ydn69grrvsp22jd7gsjmwvss0a1j0zav3q1pvks")))) + "10q4m37sg79y1v0gwk7bjrnc5b0a6sb80ramnza93mx9gx3vl99m")))) (build-system r-build-system) (propagated-inputs (list r-bbotk @@ -32252,14 +32282,14 @@ BTM-WWW13.pdf}.") (define-public r-delaporte (package (name "r-delaporte") - (version "8.0.2") + (version "8.0.3") (source (origin (method url-fetch) (uri (cran-uri "Delaporte" version)) (sha256 (base32 - "10xsmms2jfw7x4hmgpd35dv4n4azpjzmfid6585kg6qfh2zg23g5")))) + "1d1jkbxlwnqznh9pkjpkr7np2nmqzjvrdmlb210y1lb08mqmb73w")))) (properties `((upstream-name . "Delaporte"))) (build-system r-build-system) (native-inputs (list gfortran)) @@ -32507,14 +32537,14 @@ complex functions.") (define-public r-gganimate (package (name "r-gganimate") - (version "1.0.7") + (version "1.0.8") (source (origin (method url-fetch) (uri (cran-uri "gganimate" version)) (sha256 (base32 - "046v6j92xxgaghsnh88dy5h8x040qsfa8csvhp4dmsfmrrf0dz0f")))) + "1jabs9qr0319w508kdsk5nmzfhl6nzykpp1by7l639yfvrfqcbd1")))) (properties `((upstream-name . "gganimate"))) (build-system r-build-system) (arguments @@ -32531,7 +32561,6 @@ complex functions.") (propagated-inputs (list r-ggplot2 r-glue - r-plyr r-progress r-rlang r-scales @@ -32768,14 +32797,14 @@ Apache2.") (define-public r-exactextractr (package (name "r-exactextractr") - (version "0.8.2") + (version "0.9.0") (source (origin (method url-fetch) (uri (cran-uri "exactextractr" version)) (sha256 (base32 - "0x4axrq9iznvajqy07gcfcrvzniz5yj6wabchgksg0fqz0xancnc")))) + "13di9s0lv9kdv2p3hp9ksrr0rh98z6m998pj5a1xq9zl6iakankh")))) (properties `((upstream-name . "exactextractr"))) (build-system r-build-system) (inputs (list geos)) @@ -32818,14 +32847,14 @@ the @code{raster} package that is suitable for extracting raster values using (define-public r-rapiserialize (package (name "r-rapiserialize") - (version "0.1.1") + (version "0.1.2") (source (origin (method url-fetch) (uri (cran-uri "RApiSerialize" version)) (sha256 (base32 - "0gkix6s5hb7pdbb8miyz36hghx59hhwxql0slqnlr5nakh31klxp")))) + "02k0l8bi849b2102ysb102xky4p84i9v2r4w6fab7bgf32wvph4w")))) (properties `((upstream-name . "RApiSerialize"))) (build-system r-build-system) (home-page @@ -32842,14 +32871,14 @@ package.") (define-public r-qs (package (name "r-qs") - (version "0.25.3") + (version "0.25.4") (source (origin (method url-fetch) (uri (cran-uri "qs" version)) (sha256 (base32 - "0sxy497v5arjv6lwxng7chkbzrn703waqmgsxv77i7y12ahzdbai")))) + "0cx5k0mzn6bm8ff58yrqz3hjidxcawxgqbpijnynvin1m4395i4j")))) (properties `((upstream-name . "qs"))) (build-system r-build-system) (inputs (list zlib)) @@ -32891,14 +32920,14 @@ C API for topology operations on geometries.") (define-public r-tfruns (package (name "r-tfruns") - (version "1.5.0") + (version "1.5.1") (source (origin (method url-fetch) (uri (cran-uri "tfruns" version)) (sha256 (base32 - "04lfckg1if3kfwcl4s4fcc9aw04crwk4m1qr55ag22j2x2jlb2l9")))) + "1xk7dl51xd1h54798xwycvxmn77jv80in61hanm36zk0024wpxg8")))) (properties `((upstream-name . "tfruns"))) (build-system r-build-system) (propagated-inputs @@ -33252,18 +33281,24 @@ fully reproducible.") (define-public r-paws-common (package (name "r-paws-common") - (version "0.4.0") + (version "0.5.0") (source (origin (method url-fetch) (uri (cran-uri "paws.common" version)) (sha256 (base32 - "1zlv0ahv633z1fwx1syajzqg49zd9hs537df53gm2qch8b66y4bh")))) + "12dz3giv1xajdqq79s5gin9kw4x74w2iaw62ha6ssf8whrc3wmh5")))) (properties `((upstream-name . "paws.common"))) (build-system r-build-system) (propagated-inputs - (list r-base64enc r-curl r-digest r-httr r-jsonlite r-xml2)) + (list r-base64enc + r-curl + r-digest + r-httr + r-jsonlite + r-rcpp + r-xml2)) (home-page "https://cran.r-project.org/package=paws.common") (synopsis "Paws low-level Amazon Web Services API") (description @@ -33560,14 +33595,14 @@ services, including Simple Storage Service (S3).") (define-public r-paws-compute (package (name "r-paws-compute") - (version "0.1.12") + (version "0.1.13") (source (origin (method url-fetch) (uri (cran-uri "paws.compute" version)) (sha256 (base32 - "1km6fng6il5fcjlrbbndahsw2dr2ql83hwac9wlpd67zm3wy9lky")))) + "1s7g4y2h763xf32p08drs3ygkfqb2zjikkgxb7yl91gk13zp7kjm")))) (properties `((upstream-name . "paws.compute"))) (build-system r-build-system) (propagated-inputs @@ -33673,14 +33708,14 @@ zoom/navigate any plot when called with any active plot.") (define-public r-zoolog (package (name "r-zoolog") - (version "1.0.1") + (version "1.1.0") (source (origin (method url-fetch) (uri (cran-uri "zoolog" version)) (sha256 (base32 - "00fi7czfwr0ll9070w3ijskd0xvilj02gy8wkgqzzrlilij8ah7p")))) + "06g44gjk9w73996n4h1a2q8kcd6q2mvm1vhx0iq0785gvrz18pj9")))) (properties `((upstream-name . "zoolog"))) (build-system r-build-system) (propagated-inputs @@ -33910,14 +33945,14 @@ neighborhood graphs, and relatives.") (define-public r-crul (package (name "r-crul") - (version "1.2.0") + (version "1.3") (source (origin (method url-fetch) (uri (cran-uri "crul" version)) (sha256 (base32 - "133g0skz4lifl8hm8pqdryd2m2drbrm6mdfzbbsrw8fg46di86my")))) + "0b8y12wb5kjylr8b4a2iarb5rpw1ydinw3lxp2ssq91pidyn2n40")))) (properties `((upstream-name . "crul"))) (build-system r-build-system) (propagated-inputs @@ -34071,14 +34106,14 @@ configuration of status code, short description, and verbose message.") (define-public r-webmockr (package (name "r-webmockr") - (version "0.8.0") + (version "0.8.2") (source (origin (method url-fetch) (uri (cran-uri "webmockr" version)) (sha256 (base32 - "0j40srwi0yasmllb9wsww4m6zkiyzqd549cis4dxd7c7p24hak8j")))) + "06lqv3v095i51xsac8bvkjgd58l6a5azamchiip8m2y7q0nm4iw9")))) (properties `((upstream-name . "webmockr"))) (build-system r-build-system) (propagated-inputs @@ -34122,13 +34157,13 @@ parsing.") (define-public r-wordspace (package (name "r-wordspace") - (version "0.2-7") + (version "0.2-8") (source (origin (method url-fetch) (uri (cran-uri "wordspace" version)) (sha256 - (base32 "0hrjv5mag7gwl4wj7np248sdyns5i623wl37b11hlgalhbmlypyf")))) + (base32 "17fqd4zrsklv2ik3lg00x66yasfh1kyhs3k9ri6lrk56wwv6hzb2")))) (properties `((upstream-name . "wordspace"))) (build-system r-build-system) (propagated-inputs @@ -34389,18 +34424,24 @@ be efficient and easy to use.") (define-public r-ggh4x (package (name "r-ggh4x") - (version "0.2.1") + (version "0.2.2") (source (origin (method url-fetch) (uri (cran-uri "ggh4x" version)) (sha256 (base32 - "1r49yfm5fqv5s7jb92ad6rf8hd9plcry6f500czjhnhhrp16cqfp")))) + "11mskrby3gyjhkvnkcwl2ar1bdh4h45y48dfnm4kzgc7nwvdl3ia")))) (properties `((upstream-name . "ggh4x"))) (build-system r-build-system) (propagated-inputs - (list r-ggplot2 r-gtable r-rlang r-scales r-vctrs)) + (list r-cli + r-ggplot2 + r-gtable + r-lifecycle + r-rlang + r-scales + r-vctrs)) (native-inputs (list r-knitr)) (home-page "https://github.com/teunbrand/ggh4x") diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm index a8551c8f9f..19fc841b63 100644 --- a/gnu/packages/crates-graphics.scm +++ b/gnu/packages/crates-graphics.scm @@ -3282,7 +3282,10 @@ crate @code{rust-wayland-client} for usable bindings.") ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2) ("rust-web-sys" ,rust-web-sys-0.3) ("rust-winapi" ,rust-winapi-0.3) - ("rust-x11-dl" ,rust-x11-dl-2)))) + ("rust-x11-dl" ,rust-x11-dl-2)) + #:cargo-development-inputs + (("rust-console-log" ,rust-console-log-0.2) + ("rust-simple-logger" ,rust-simple-logger-1)))) (inputs (list rust-wayland-client-0.29 rust-wayland-protocols-0.29)) (home-page "https://github.com/rust-windowing/winit") @@ -3338,7 +3341,10 @@ the platform-specific getters provided by winit, or another library.") ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2) ("rust-web-sys" ,rust-web-sys-0.3) ("rust-winapi" ,rust-winapi-0.3) - ("rust-x11-dl" ,rust-x11-dl-2)))) + ("rust-x11-dl" ,rust-x11-dl-2)) + #:cargo-development-inputs + (("rust-console-log" ,rust-console-log-0.2) + ("rust-simple-logger" ,rust-simple-logger-1)))) (inputs (list rust-wayland-client-0.28)))) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index f09ac91df5..538267c560 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -3362,6 +3362,52 @@ coverage-guided, mutation-based fuzzers.") that runs on Argon2.") (license license:expat))) +(define-public rust-arr-macro-impl-0.1 + (package + (name "rust-arr-macro-impl") + (version "0.1.3") + (source (origin + (method url-fetch) + (uri (crate-uri "arr_macro_impl" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1lbjilz3pvwav72dfkcbz99rsq7m04xbdpqh8g3yvx3jsn5wf286")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5) + ("rust-quote" ,rust-quote-1) + ("rust-syn" ,rust-syn-1)))) + (home-page "https://github.com/JoshMcguigan/arr_macro") + (synopsis "Private impl crate for arr_macro") + (description "This package provides a private @code{impl} crate for +@code{arr_macro}.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-arr-macro-0.1 + (package + (name "rust-arr-macro") + (version "0.1.3") + (source (origin + (method url-fetch) + (uri (crate-uri "arr_macro" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "199086q8zva66lbg9bpz6fa67s81ra7yfa8148cwy1w7lkymn43a")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-arr-macro-impl" ,rust-arr-macro-impl-0.1) + ("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)))) + (home-page "https://github.com/JoshMcguigan/arr_macro") + (synopsis "Initialize arrays with ease") + (description "Array macro helps initialize arrays. It is useful when +initializing large arrays (greater than 32 elements), or arrays of types which +do not implement the copy or default traits.") + (license (list license:expat license:asl2.0)))) + (define-public rust-array-macro-1 (package (name "rust-array-macro") @@ -3432,7 +3478,7 @@ structures.") (define-public rust-arrayvec-0.7 (package (name "rust-arrayvec") - (version "0.7.0") + (version "0.7.2") (source (origin (method url-fetch) @@ -3441,7 +3487,7 @@ structures.") (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1xza6jbs8x51yhh4qnwjw1crm33bhl975r965fpq1hqhpfq5hbss")))) + "1mjl8jjqxpl0x7sm9cij61cppi7yi38cdrd1l8zjw7h7qxk2v9cd")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t @@ -8493,7 +8539,7 @@ alphabet.") (define-public rust-bstr-0.2 (package (name "rust-bstr") - (version "0.2.15") + (version "0.2.17") (source (origin (method url-fetch) @@ -8502,7 +8548,7 @@ alphabet.") (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0gca4v6448clsssll3y787jgw542c9mw9phqdi7419g1jfnlf2x4")))) + "08rjbhysy6gg27db2h3pnhvr2mlr5vkj797i9625kwg8hgrnjdds")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t @@ -12208,6 +12254,32 @@ diagnostics easy and relatively painless for everyone!") ("rust-structopt" ,rust-structopt-0.3) ("rust-unindent" ,rust-unindent-0.1)))))) +(define-public rust-coitrees-0.2 + (package + (name "rust-coitrees") + (version "0.2.1") + (source (origin + (method url-fetch) + (uri (crate-uri "coitrees" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1l2ybr8n02vm08wq9mrix7r07bgwm85i6fyachlm8d626w9w9d3f")))) + (build-system cargo-build-system) + (arguments + ;; Check phase fails with: + ;; no function or associated item named `with_name` found for struct + ;; `Arg` in the current scope + `(#:tests? #false + #:cargo-development-inputs + (("rust-clap" ,rust-clap-3)))) + (home-page "https://github.com/dcjones/coitrees") + (synopsis "Data structure for overlap queries on sets of intervals") + (description + "This package provides a very fast data structure for overlap queries on +sets of intervals.") + (license license:expat))) + (define-public rust-color-backtrace-0.5 (package (name "rust-color-backtrace") @@ -13050,6 +13122,30 @@ this to write Rust programs which can be customized by end users easily.") that logs panics to @code{console.error}.") (license (list license:expat license:asl2.0)))) +(define-public rust-console-log-0.2 + (package + (name "rust-console-log") + (version "0.2.0") + (source (origin + (method url-fetch) + (uri (crate-uri "console_log" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "150li8pznpfpn4q0f7g9jwq2hnd5wik0w8378zaa1wffc5ckf6jh")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-log" ,rust-log-0.4) + ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2) + ("rust-web-sys" ,rust-web-sys-0.3)))) + (home-page "https://github.com/iamcodemaker/console_log") + (synopsis "Route Rust log messages to the browser's console") + (description + "This package provides a logging facility that routes Rust log messages to +the browser's console.") + (license (list license:expat license:asl2.0)))) + (define-public rust-console-log-0.1 (package (name "rust-console-log") @@ -14530,14 +14626,14 @@ criterion.") (define-public rust-crossbeam-channel-0.5 (package (name "rust-crossbeam-channel") - (version "0.5.0") + (version "0.5.6") (source (origin (method url-fetch) (uri (crate-uri "crossbeam-channel" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "0xfplw54pskl3kyf2q6kw8y2phnq6wn8pqxx003n8qfkz3hnx8nw")))) + (base32 "08f5f043rljl82a06d1inda6nl2b030s7yfqp31ps8w8mzfh9pf2")))) (build-system cargo-build-system) (arguments `(#:skip-build? #t @@ -14745,14 +14841,14 @@ message passing.") (define-public rust-crossbeam-queue-0.3 (package (name "rust-crossbeam-queue") - (version "0.3.1") + (version "0.3.6") (source (origin (method url-fetch) (uri (crate-uri "crossbeam-queue" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "0mk790w2y7cn9zqj6cn1kl8vvgaamlkj6fmpxg1iprdqyp3v6v0g")))) + (base32 "19ram1wp87i57w834hwl95mzz9g53qlzkraq6lvab629n21jbm0w")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs @@ -21284,6 +21380,40 @@ You can use this crate to turn non-blocking data structures into async or blocking data structures.") (license (list license:asl2.0 license:expat)))) +(define-public rust-executors-0.9 + (package + (name "rust-executors") + (version "0.9.0") + (source (origin + (method url-fetch) + (uri (crate-uri "executors" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0z8gn5vcr0x1db1bvahhmby9mpr1jgzd4qfvm25mja5js3agk51a")))) + (build-system cargo-build-system) + (arguments + ;; TODO: build needs metrics_printer + `(#:skip-build? #t + #:cargo-inputs + (("rust-arr-macro" ,rust-arr-macro-0.1) + ("rust-async-task" ,rust-async-task-4) + ("rust-core-affinity" ,rust-core-affinity-0.5) + ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5) + ("rust-crossbeam-deque" ,rust-crossbeam-deque-0.8) + ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8) + ("rust-log" ,rust-log-0.4) + ("rust-metrics" ,rust-metrics-0.14) + ("rust-num-cpus" ,rust-num-cpus-1) + ("rust-rand" ,rust-rand-0.8) + ("rust-synchronoise" ,rust-synchronoise-1) + ("rust-threadpool" ,rust-threadpool-1)))) + (home-page "https://github.com/Bathtor/rust-executors") + (synopsis "Collection of high-performance task executors") + (description + "This package provides a collection of high-performance task executors.") + (license license:expat))) + (define-public rust-exitcode-1 (package (name "rust-exitcode") @@ -23307,6 +23437,29 @@ helpful error messages.") process and much more.") (license license:expat))) +(define-public rust-fs-utils-1 + (package + (name "rust-fs-utils") + (version "1.1.4") + (source (origin + (method url-fetch) + (uri (crate-uri "fs-utils" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "14r5wl14mz227v0lpy89lvjzfnxgdxigvrrmm6c4r52w03fakivg")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-quick-error" ,rust-quick-error-1)) + #:cargo-development-inputs + (("rust-tempfile" ,rust-tempfile-3)))) + (home-page "https://github.com/Byron/fs-utils-rs") + (synopsis "Utilities to help working with the filesytem") + (description "This package provides a bunch of utilities to help working +with the filesytem.") + (license (list license:expat license:asl2.0)))) + (define-public rust-fs2-0.2 (package (name "rust-fs2") @@ -25885,7 +26038,11 @@ graphics.") ("rust-smallvec" ,rust-smallvec-1) ("rust-takeable-option" ,rust-takeable-option-0.5)) #:cargo-development-inputs - (("rust-gl-generator" ,rust-gl-generator-0.14)))) + (("rust-cgmath" ,rust-cgmath-0.18) + ("rust-genmesh" ,rust-genmesh-0.6) + ("rust-gl-generator" ,rust-gl-generator-0.14) + ("rust-obj" ,rust-obj-0.10) + ("rust-ouroboros" ,rust-ouroboros-0.14)))) (home-page "https://github.com/glium/glium") (synopsis "OpenGL wrapper") (description @@ -28073,6 +28230,48 @@ Hash-based Message Authentication Code algorithm} for SHA1.") characters in HTML, decoding and unescaping HTML entities as well.") (license license:expat))) +(define-public rust-hts-sys-2 + (package + (name "rust-hts-sys") + (version "2.0.2") + (source (origin + (method url-fetch) + (uri (crate-uri "hts-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1qn1qz2xa69x2dj1fbh91avm9943rbcykr37zs68pb2bdy847i3j")) + (modules '((guix build utils))) + (snippet + '(substitute* "Cargo.toml" + ;; Do not use zlib-ng; just use zlib. + (("features = \\[\"zlib-ng\", \"static\"\\]") "") + ;; No static libraries please. + (("\"static-curl\", \"static-ssl\",") "") + ((", \"static\"") "") + (("\\[\"static\"\\]") "[]"))))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-bindgen" ,rust-bindgen-0.53) + ("rust-bzip2-sys" ,rust-bzip2-sys-0.1) + ("rust-cc" ,rust-cc-1) + ("rust-curl-sys" ,rust-curl-sys-0.4) + ("rust-fs-utils" ,rust-fs-utils-1) + ("rust-glob" ,rust-glob-0.3) + ("rust-libdeflate-sys" ,rust-libdeflate-sys-0.5) + ("rust-libz-sys" ,rust-libz-sys-1) + ("rust-lzma-sys" ,rust-lzma-sys-0.1) + ("rust-openssl-sys" ,rust-openssl-sys-0.9)))) + (inputs + (list curl openssl xz zlib)) + (native-inputs + (list cmake-minimal pkg-config)) + (home-page "https://github.com/samtools/htslib.git") + (synopsis "Rust bindings to HTSlib") + (description "This library provides Rust bindings to HTSlib.") + (license license:expat))) + (define-public rust-http-0.2 (package (name "rust-http") @@ -29029,6 +29228,27 @@ with hyper.") (("rust-rustc-serialize" ,rust-rustc-serialize-0.3) ("rust-rustc-test" ,rust-rustc-test-0.3)))))) +(define-public rust-ieee754-0.2 + (package + (name "rust-ieee754") + (version "0.2.6") + (source (origin + (method url-fetch) + (uri (crate-uri "ieee754" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1771d2kvw1wga65yrg9m7maky0fzsaq9hvhkv91n6gmxmjfdl1wh")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-development-inputs + (("rust-criterion" ,rust-criterion-0.2)))) + (home-page "https://github.com/huonw/ieee754") + (synopsis "Low-level manipulations of IEEE754 floating-point numbers") + (description "This is a package for low-level manipulations of IEEE754 +floating-point numbers.") + (license (list license:expat license:asl2.0)))) + (define-public rust-if-chain-1 (package (name "rust-if-chain") @@ -31906,6 +32126,29 @@ macros on libc without stdlib.") (description "This package provides FFI bindings to libdbus.") (license (list license:asl2.0 license:expat)))) +(define-public rust-libdeflate-sys-0.5 + (package + (name "rust-libdeflate-sys") + (version "0.5.0") + (source (origin + (method url-fetch) + (uri (crate-uri "libdeflate-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "07ychzvz9xrqs92frs3zpny0l8jp3sndzqpl7zhv6kdqhzx9xqr1")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-cc" ,rust-cc-1)))) + (home-page "https://github.com/adamkewley/libdeflater") + (synopsis "Bindings to libdeflate") + (description + "This package provides bindings to libdeflate for DEFLATE (de)compression +exposed as non-streaming buffer operations. It contains bindings for raw +deflate, zlib, and gzip data.") + (license license:asl2.0))) + (define-public rust-libflate-1 (package (name "rust-libflate") @@ -32441,6 +32684,63 @@ library.") library.") (license (list license:expat license:asl2.0)))) +(define-public rust-libradicl-0.4 + (package + (name "rust-libradicl") + (version "0.4.1") + (source (origin + (method url-fetch) + (uri (crate-uri "libradicl" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "10j2f2iv4037315fiqppk7x2bx1mnw6gns3qqwyhcyh4sgbz3ka4")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #false ;fail to compile InternalVersionInfo + #:cargo-inputs + (("rust-ahash" ,rust-ahash-0.7) + ("rust-arrayvec" ,rust-arrayvec-0.7) + ("rust-bincode" ,rust-bincode-1) + ("rust-bio-types" ,rust-bio-types-0.12) + ("rust-bstr" ,rust-bstr-0.2) + ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5) + ("rust-crossbeam-queue" ,rust-crossbeam-queue-0.3) + ("rust-csv" ,rust-csv-1) + ("rust-dashmap" ,rust-dashmap-4) + ("rust-executors" ,rust-executors-0.9) + ("rust-flate2" ,rust-flate2-1) + ("rust-indicatif" ,rust-indicatif-0.16) + ("rust-itertools" ,rust-itertools-0.10) + ("rust-needletail" ,rust-needletail-0.4) + ("rust-num" ,rust-num-0.4) + ("rust-num-format" ,rust-num-format-0.4) + ("rust-petgraph" ,rust-petgraph-0.6) + ("rust-quickersort" ,rust-quickersort-3) + ("rust-rand" ,rust-rand-0.8) + ("rust-rust-htslib" ,rust-rust-htslib-0.38) + ("rust-sce" ,rust-sce-0.1) + ("rust-scroll" ,rust-scroll-0.10) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-slog" ,rust-slog-2) + ("rust-slog-async" ,rust-slog-async-2) + ("rust-slog-term" ,rust-slog-term-2) + ("rust-smallvec" ,rust-smallvec-1) + ("rust-snap" ,rust-snap-1) + ("rust-sprs" ,rust-sprs-0.10) + ("rust-statrs" ,rust-statrs-0.15)))) + (inputs + (list xz zlib)) + (native-inputs + (list pkg-config)) + (home-page "https://github.com/COMBINE-lab/alevin-fry") + (synopsis "Support library for alevin-fry") + (description "This package provides a support library for alevin-fry, a +suite of tools for the rapid, accurate and memory-frugal processing +single-cell and single-nucleus sequencing data.") + (license license:bsd-3))) + (define-public rust-libsqlite3-sys-0.23 (package (name "rust-libsqlite3-sys") @@ -32652,6 +32952,30 @@ known as zlib).") (license (list license:asl2.0 license:expat)))) +(define-public rust-libz-ng-sys-1 + (package + (name "rust-libz-ng-sys") + (version "1.1.8") + (source (origin + (method url-fetch) + (uri (crate-uri "libz-ng-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1wp0aya5hh76h1acspvrrsvq2fl0kyb8dpi6wy0zaswnm6bax6a3")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-cmake" ,rust-cmake-0.1) + ("rust-libc" ,rust-libc-0.2)))) + (home-page "https://github.com/rust-lang/libz-sys") + (synopsis "Low-level bindings to zlib-ng (libz-ng)") + (description + "This package provides low-level bindings to zlib-ng (libz-ng), a +high-performance zlib library.") + (license (list license:expat license:asl2.0)))) + (define-public rust-lifeguard-0.6 (package (name "rust-lifeguard") @@ -32728,6 +33052,48 @@ libraries have. "Efficiently insert line separators.") (license license:asl2.0))) +(define-public rust-linear-map-1 + (package + (name "rust-linear-map") + (version "1.2.0") + (source (origin + (method url-fetch) + (uri (crate-uri "linear-map" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1vh3sczl4xb5asdlpafdf3y4g9bp63fgs8y2a2sjgmcsn7v21bmz")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-serde" ,rust-serde-1) + ("rust-serde-test" ,rust-serde-test-1)))) + (home-page "https://github.com/contain-rs/linear-map") + (synopsis "Map implemented by searching linearly in a vector") + (description + "This package provides a map implemented by searching linearly in a +vector.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-linecount-0.1 + (package + (name "rust-linecount") + (version "0.1.0") + (source (origin + (method url-fetch) + (uri (crate-uri "linecount" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1n2733qcmvxl3fra3924yj8sf21vr6f6g6dg6wnhbkxr8fia9mfm")))) + (build-system cargo-build-system) + (arguments '(#:skip-build? #t)) + (home-page "https://github.com/eclarke/linecount") + (synopsis "Quickly count lines in a file") + (description "This package provides a function @code{count_lines} +to count the number of lines in a file.") + (license license:expat))) + (define-public rust-link-cplusplus-1 (package (name "rust-link-cplusplus") @@ -35182,6 +35548,55 @@ based on Rustls and Ring.") and XXH3 algorithms.") (license license:expat))) +(define-public rust-metrics-macros-0.2 + (package + (name "rust-metrics-macros") + (version "0.2.0") + (source (origin + (method url-fetch) + (uri (crate-uri "metrics-macros" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0yy2dc9g3m1h8df6bmnqh1sngyvrgznz1fjpkp9rz1is9p6n1b0i")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-lazy-static" ,rust-lazy-static-1) + ("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5) + ("rust-proc-macro2" ,rust-proc-macro2-1) + ("rust-quote" ,rust-quote-1) + ("rust-regex" ,rust-regex-1) + ("rust-syn" ,rust-syn-1)))) + (home-page "https://github.com/metrics-rs/metrics") + (synopsis "Macros for the metrics crate") + (description "This package provides macros for the metrics crate.") + (license license:expat))) + +(define-public rust-metrics-0.14 + (package + (name "rust-metrics") + (version "0.14.2") + (source (origin + (method url-fetch) + (uri (crate-uri "metrics" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0lf80vznlh0p06nchj08nlqgf3bajnwr6w3syflg7ffg3mh8bqjq")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-metrics-macros" ,rust-metrics-macros-0.2) + ("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)) + #:cargo-development-inputs + (("rust-criterion" ,rust-criterion-0.3) + ("rust-trybuild" ,rust-trybuild-1)))) + (home-page "https://github.com/metrics-rs/metrics") + (synopsis "Lightweight metrics facade") + (description "This package provides a lightweight metrics facade.") + (license license:expat))) + (define-public rust-metrohash-1 (package (name "rust-metrohash") @@ -35614,10 +36029,8 @@ drop-in replacement for miniz.") "1zw5glv8z2d99c82jy2za97hh9p6377xmf4rbwz7jynsdfxfngg5")))) (build-system cargo-build-system) (arguments - `(#:cargo-inputs - (("rust-serde" ,rust-serde-1)) - #:cargo-development-inputs - (("rust-serde-json" ,rust-serde-json-1)))) + `(#:cargo-inputs (("rust-serde" ,rust-serde-1)) + #:cargo-development-inputs (("rust-serde-json" ,rust-serde-json-1)))) (home-page "https://github.com/kvark/mint") (synopsis "Math interoperability standard types") (description @@ -37436,6 +37849,45 @@ general elements and for numerics.") (description "This package provides FFI bindings for the Android NDK.") (license (list license:expat license:asl2.0)))) +(define-public rust-needletail-0.4 + (package + (name "rust-needletail") + (version "0.4.1") + (source (origin + (method url-fetch) + (uri (crate-uri "needletail" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1k535wlg0khac2gz3q84rlcqc5r89jyw73ww25vfgc04plzc9d3z")))) + (build-system cargo-build-system) + (arguments + ;; Two tests fail due to missing files. + ;; - parser::fastq::test::test_bad_headers + ;; - parser::fastq::test::test_fastq_with_random_tsv_inside + `(#:tests? #false + #:cargo-inputs + (("rust-bio" ,rust-bio-0.33) + ("rust-buf-redux" ,rust-buf-redux-0.8) + ("rust-bytecount" ,rust-bytecount-0.6) + ("rust-bzip2" ,rust-bzip2-0.4) + ("rust-flate2" ,rust-flate2-1) + ("rust-memchr" ,rust-memchr-2) + ("rust-pyo3" ,rust-pyo3-0.13) + ("rust-xz2" ,rust-xz2-0.1)) + #:cargo-development-inputs + (("rust-assert-cmd" ,rust-assert-cmd-1) + ("rust-escargot" ,rust-escargot-0.5) + ("rust-predicates" ,rust-predicates-1) + ("rust-seq-io" ,rust-seq-io-0.3)))) + (inputs (list xz)) + (native-inputs (list pkg-config)) + (home-page "https://github.com/onecodex/needletail") + (synopsis "FASTX parsing and k-mer methods") + (description "Needletail is a minimal-copying FASTA/FASTQ parser and k-mer +processing library for Rust.") + (license license:expat))) + (define-public rust-neli-0.4 (package (name "rust-neli") @@ -39618,6 +40070,25 @@ mathematics.") `(#:cargo-inputs (("rust-num-traits" , rust-num-traits-0.2)))))) +(define-public rust-number-prefix-0.4 + (package + (name "rust-number-prefix") + (version "0.4.0") + (source (origin + (method url-fetch) + (uri (crate-uri "number_prefix" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1wvh13wvlajqxkb1filsfzbrnq0vrmrw298v2j3sy82z1rm282w3")))) + (build-system cargo-build-system) + (home-page "https://github.com/ogham/rust-number-prefix") + (synopsis "Format numeric prefixes: kilo, giga, kibi") + (description + "This package provides a library for formatting numeric prefixes: kilo, +giga, kibi.") + (license license:expat))) + (define-public rust-number-prefix-0.3 (package (name "rust-number-prefix") @@ -39679,6 +40150,27 @@ obfuscation for Rust. The string constant itself is embedded in obfuscated form and deobfuscated locally.") (license license:expat))) +(define-public rust-obj-0.10 + (package + (name "rust-obj") + (version "0.10.2") + (source (origin + (method url-fetch) + (uri (crate-uri "obj" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0jks8qzjn59na40dv9m0q2j540i04cddbkbq02scgk9qawj9b705")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #false ;missing files + #:cargo-inputs (("rust-genmesh" ,rust-genmesh-0.6)))) + (home-page "https://github.com/kvark/obj") + (synopsis "Package for loading Wavefront .obj files") + (description + "This package provides a package for loading Wavefront @code{.obj} files.") + (license license:asl2.0))) + (define-public rust-obj-0.9 (package (name "rust-obj") @@ -47783,6 +48275,33 @@ integers, floats, tuples, booleans, lists, strings, options and results.") #:cargo-development-inputs (("rust-quickcheck" ,rust-quickcheck-0.8)))))) +(define-public rust-quickersort-3 + (package + (name "rust-quickersort") + (version "3.0.1") + (source (origin + (method url-fetch) + (uri (crate-uri "quickersort" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "02r7wplnw7m1dhjah8p89inxn9g4nwb7ga7xdn95cffwpwn88z1h")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-nodrop" ,rust-nodrop-0.1) + ("rust-unreachable" ,rust-unreachable-1)) + #:cargo-development-inputs + (("rust-itertools" ,rust-itertools-0.7) + ("rust-num-traits" ,rust-num-traits-0.2)))) + (home-page "https://github.com/notriddle/quickersort") + (synopsis "Fast sorting") + (description + "This package implements fast sorting compatible with stable Rust. It +also has (optional) support for efficient and robust sorting of floating point +numbers.") + (license (list license:expat license:asl2.0)))) + (define-public rust-quine-mc-cluskey-0.2 (package (name "rust-quine-mc-cluskey") @@ -51494,6 +52013,49 @@ please consider using @code{async-std} or @code{tokio}.") (inputs (list sqlite)))) +(define-public rust-rust-htslib-0.38 + (package + (name "rust-rust-htslib") + (version "0.38.2") + (source (origin + (method url-fetch) + (uri (crate-uri "rust-htslib" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "070sihnvyiyqcw8yjkdl8hvav598bsw36m722phgd2b394k6djia")))) + (build-system cargo-build-system) + (arguments + ;; TODO: cannot find openssl_src + `(#:skip-build? #t + #:cargo-inputs + (("rust-bio-types" ,rust-bio-types-0.12) + ("rust-byteorder" ,rust-byteorder-1) + ("rust-custom-derive" ,rust-custom-derive-0.1) + ("rust-derive-new" ,rust-derive-new-0.5) + ("rust-hts-sys" ,rust-hts-sys-2) + ("rust-ieee754" ,rust-ieee754-0.2) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-linear-map" ,rust-linear-map-1) + ("rust-newtype-derive" ,rust-newtype-derive-0.1) + ("rust-regex" ,rust-regex-1) + ("rust-serde" ,rust-serde-1) + ("rust-serde-bytes" ,rust-serde-bytes-0.11) + ("rust-thiserror" ,rust-thiserror-1) + ("rust-url" ,rust-url-2)) + #:cargo-development-inputs + (("rust-bincode" ,rust-bincode-1) + ("rust-pretty-assertions" ,rust-pretty-assertions-0.6)))) + (inputs (list openssl)) + (native-inputs (list pkg-config)) + (home-page "https://github.com/rust-bio/rust-htslib.git") + (synopsis "HTSlib bindings and API for reading and writing BAM files") + (description + "This library provides HTSlib bindings and a high level Rust API for +reading and writing BAM files.") + (license license:expat))) + (define-public rust-rustsec-0.25 (package (name "rust-rustsec") @@ -53003,6 +53565,37 @@ rustc compiler.") ("rust-serde-derive" ,rust-serde-derive-1) ("rust-webpki-roots" ,rust-webpki-roots-0.14)))))) +(define-public rust-rustls-ffi-0.8 + (package + (name "rust-rustls-ffi") + (version "0.8.2") + (source (origin + (method url-fetch) + (uri (crate-uri "rustls-ffi" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "06kqrvm1d5ps9pml26zdd2hm8hh20j6svwvqibpnx7m5rh3jg9cx")))) + (build-system cargo-build-system) + ;; Build needs cbindgen-0.19 + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-libc" ,rust-libc-0.2) + ("rust-log" ,rust-log-0.4) + ("rust-num-enum" ,rust-num-enum-0.5) + ("rust-rustls" ,rust-rustls-0.20) + ("rust-rustls-pemfile" ,rust-rustls-pemfile-0.2) + ("rust-sct" ,rust-sct-0.7) + ("rust-webpki" ,rust-webpki-0.22)))) + (home-page "https://github.com/rustls/rustls-ffi") + (synopsis "C to rustls bindings") + (description "This package contains FFI bindings for the rustls TLS +library, so you can use the library in C programs or any other language that +supports FFI.") + ;; Use under the terms of any of these licenses + (license (list license:asl2.0 license:isc license:expat)))) + (define-public rust-rustls-native-certs-0.6 (package (name "rust-rustls-native-certs") @@ -54052,6 +54645,33 @@ encodable types.") "This package provides a simple scanf()-like input for Rust") (license license:expat))) +(define-public rust-sce-0.1 + (package + (name "rust-sce") + (version "0.1.2") + (source (origin + (method url-fetch) + (uri (crate-uri "sce" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1fv0nbx6r44rcqfy6881gin30d92zgxl0jrx4hfl725h0425i74j")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-byteorder" ,rust-byteorder-1) + ("rust-csv" ,rust-csv-1) + ("rust-flate2" ,rust-flate2-1) + ("rust-num" ,rust-num-0.4) + ("rust-num-traits" ,rust-num-traits-0.2) + ("rust-sprs" ,rust-sprs-0.11)))) + (home-page "https://github.com/parazodiac/SingleCellExperiment") + (synopsis "Import and manage various single-cell matrices") + (description + "This package provides a library for importing and managing various +single-cell matrices.") + (license license:bsd-3))) + (define-public rust-schannel-0.1 (package (name "rust-schannel") @@ -59602,6 +60222,70 @@ OIDs)") (description "Simple SPMC channel") (license (list license:expat license:asl2.0)))) +(define-public rust-sprs-0.11 + (package + (name "rust-sprs") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (crate-uri "sprs" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0w6xishm9jxqjy83as7g14474cn1xb55vqz8afqw9d7and41x9vf")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t ;8 test failures due to "No such file or directory" + #:cargo-inputs + (("rust-alga" ,rust-alga-0.9) + ("rust-approx" ,rust-approx-0.5) + ("rust-ndarray" ,rust-ndarray-0.15) + ("rust-num-complex" ,rust-num-complex-0.4) + ("rust-num-traits" ,rust-num-traits-0.2) + ("rust-num-cpus" ,rust-num-cpus-1) + ("rust-rayon" ,rust-rayon-1) + ("rust-serde" ,rust-serde-1) + ("rust-smallvec" ,rust-smallvec-1)) + #:cargo-development-inputs + (("rust-bencher" ,rust-bencher-0.1) + ("rust-bincode" ,rust-bincode-1) + ("rust-tobj" ,rust-tobj-3)))) + (home-page "https://github.com/vbarrielle/sprs") + (synopsis "Sparse matrix library") + (description "This package provides a sparse matrix library.") + ;; Either license can be chosen + (license (list license:expat license:asl2.0)))) + +(define-public rust-sprs-0.10 + (package + (inherit rust-sprs-0.11) + (name "rust-sprs") + (version "0.10.0") + (source (origin + (method url-fetch) + (uri (crate-uri "sprs" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "18qwm1wnc1jbzdpl0wfrrybb6rak74zv8jmfg87id7ksb6crkz6r")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t ;8 test failures due to "No such file or directory" + #:cargo-inputs + (("rust-alga" ,rust-alga-0.9) + ("rust-approx" ,rust-approx-0.3) + ("rust-ndarray" ,rust-ndarray-0.14) + ("rust-num-complex" ,rust-num-complex-0.2) + ("rust-num-traits" ,rust-num-traits-0.2) + ("rust-num-cpus" ,rust-num-cpus-1) + ("rust-rayon" ,rust-rayon-1) + ("rust-serde" ,rust-serde-1) + ("rust-smallvec" ,rust-smallvec-1)) + #:cargo-development-inputs + (("rust-bencher" ,rust-bencher-0.1) + ("rust-bincode" ,rust-bincode-1) + ("rust-tobj" ,rust-tobj-2)))))) + (define-public rust-rspotify-0.10 (package (name "rust-rspotify") @@ -61791,6 +62475,28 @@ a syntax tree of Rust source code.") "This package provides the features between \"full\" and \"derive\" of syn.") (license (list license:asl2.0 license:expat)))) +(define-public rust-synchronoise-1 + (package + (name "rust-synchronoise") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (crate-uri "synchronoise" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1szasv8xl6z3gxfq8h8wllw2mq53d71nn29achxsnfcxzh7fs5yp")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-crossbeam-queue" ,rust-crossbeam-queue-0.1)))) + (home-page "https://github.com/QuietMisdreavus/synchronoise") + (synopsis "Synchronization primitives") + (description + "This package provides synchronization primitives that build upon the +standard library.") + (license (list license:expat license:asl2.0)))) + (define-public rust-synom-0.11 (package (name "rust-synom") @@ -65066,6 +65772,47 @@ to a style defined by John Gruber for post titles on his website ``Daring Fireball''.") (license license:expat))) +(define-public rust-tobj-3 + (package + (name "rust-tobj") + (version "3.1.0") + (source (origin + (method url-fetch) + (uri (crate-uri "tobj" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1q9hxhdzbqcrpnmja98mnd5890jf3x1njg0q1lgpj8yg5j29ryc9")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t ;tests are incomplete + #:cargo-inputs + (("rust-ahash" ,rust-ahash-0.7) + ("rust-log" ,rust-log-0.4)))) + (home-page "https://github.com/Twinklebear/tobj") + (synopsis "Lightweight OBJ loader in the spirit of tinyobjloader") + (description + "This package provides a lightweight OBJ loader in the spirit of +tinyobjloader.") + (license license:expat))) + +(define-public rust-tobj-2 + (package + (inherit rust-tobj-3) + (name "rust-tobj") + (version "2.0.4") + (source (origin + (method url-fetch) + (uri (crate-uri "tobj" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "06w8ix9nk38wli0pjfl22hiyy07byhdcz18nkwhzg775x1dzas14")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t ;tests are incomplete + #:cargo-inputs (("rust-log" ,rust-log-0.4)))))) + (define-public rust-tokio-1 (package (name "rust-tokio") @@ -75041,6 +75788,34 @@ for @code{uint} and @code{fixed_hash}.") a trait for tuples.") (license (list license:asl2.0 license:expat)))) +(define-public rust-indicatif-0.16 + (package + (name "rust-indicatif") + (version "0.16.2") + (source (origin + (method url-fetch) + (uri (crate-uri "indicatif" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "06xyjs0kzqiqkjn60n1miwm2l87sa9p2lmzz0ymq18y72z37s81d")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-console" ,rust-console-0.15) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-number-prefix" ,rust-number-prefix-0.4) + ("rust-rayon" ,rust-rayon-1) + ("rust-regex" ,rust-regex-1) + ("rust-unicode-segmentation" ,rust-unicode-segmentation-1) + ("rust-unicode-width" ,rust-unicode-width-0.1)))) + (home-page "https://github.com/console-rs/indicatif") + (synopsis "Progress bar and cli reporting library for Rust") + (description + "This package provides a progress bar and cli reporting library for +Rust.") + (license license:expat))) + (define-public rust-inflections-1 (package (name "rust-inflections") diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 9c98c923ff..0a368d3879 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -70,7 +70,7 @@ (name (string-append (package-name p) "-cross-" target)) (arguments (substitute-keyword-arguments (package-arguments p) - ((#:configure-flags flags) + ((#:configure-flags flags ''()) `(cons ,(string-append "--target=" target) ,flags)))))) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 0158e03032..2581a146ba 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2021, 2022 Brendan Tildesley <mail@brendan.scot> ;;; Copyright © 2022 Allan Adair <allan@adair.no> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1699,3 +1700,42 @@ sha256crypt, md5crypt, SunMD5, sha1crypt, NT, bsdicrypt, bigcrypt, and descrypt.") (home-page "https://github.com/besser82/libxcrypt") (license license:lgpl2.1))) + +(define-public keychain + (package + (name "keychain") + (version "2.8.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/funtoo/keychain") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1bkjlg0a2bbdjhwp37ci1rwikvrl4s3xlbf2jq2z4azc96dr83mj")))) + (build-system gnu-build-system) + (propagated-inputs (list procps)) + (arguments + `(#:tests? #f ; No test suite + #:phases (modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda _ + (install-file "keychain" + (string-append %output "/bin/")) + (install-file "keychain.1" + (string-append %output "/share/man/man1")) + #t))))) + (synopsis + "SSH or GPG agent frontend that can share a single agent on the same +system") + (description + "Keychain is usually run from shell profiles like ~/.bash_profile, but +it is also possible to use it with non-interactive shells. It works +with various operating systems (including GNU/Linux and HURD) and +shells (like bourne-compatible, csh-compatible and fish shells). By +default Keychain will only start ssh-agent, but it can also be +configured to start gpg-agent.") + (home-page "https://www.funtoo.org/Keychain") + (license license:gpl2))) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index a388e45697..545e652ec6 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -258,17 +258,19 @@ ElasticSearch server") (define-public firebird (package (name "firebird") - (version "3.0.7") + (version "3.0.10") (source - (let ((revision "33374-0")) + (let ((revision "33601-0")) (origin (method url-fetch) (uri (string-append "https://github.com/FirebirdSQL/" - "firebird/releases/download/R" - (string-replace-substring version "." "_") "/" + "firebird/releases/download/v" + version "/" "Firebird-" version "." revision ".tar.bz2")) (sha256 - (base32 "0xpy1bncz36c6n28y7kllm1dkrdkn4vb4gw2n43f2351mznmrf5c")) + (base32 "0h033xj1kxwgvdv4ncm6kk0mqybvvn203gf88xcv3avys9hbnf4i")) + (patches (search-patches "firebird-riscv64-support-pt1.patch" + "firebird-riscv64-support-pt2.patch")) (modules '((guix build utils))) (snippet `(begin @@ -290,8 +292,7 @@ ElasticSearch server") "doc/Firebird-3-QuickStart.pdf" (string-append "doc/Firebird-" ,version "-ReleaseNotes.pdf") - "doc/README.SecureRemotePassword.html")) - #t))))) + "doc/README.SecureRemotePassword.html"))))))) (build-system gnu-build-system) (outputs (list "debug" "out")) (arguments @@ -324,13 +325,19 @@ ElasticSearch server") (srfi srfi-26)) #:phases (modify-phases %standard-phases + ,@(if (target-riscv64?) + `((add-before 'bootstrap 'force-bootstrap + (lambda _ + (delete-file "configure") + ;; This file prevents automake from running. + (delete-file "autogen.sh")))) + '()) (add-after 'unpack 'use-system-boost (lambda _ (substitute* "src/include/firebird/Message.h" (("\"\\./impl/boost/preprocessor/seq/for_each_i\\.hpp\"") "<boost/preprocessor/seq/for_each_i.hpp>") - (("FB_BOOST_") "BOOST_")) - #t)) + (("FB_BOOST_") "BOOST_")))) (add-after 'unpack 'patch-installation (lambda _ (substitute* @@ -358,27 +365,23 @@ ElasticSearch server") ;; These promote proprietary workflows not relevant on Guix. (for-each delete-file-recursively - (find-files "doc" "README\\.(build\\.msvc|NT|Win)")) - #t)) + (find-files "doc" "README\\.(build\\.msvc|NT|Win)")))) (add-after 'configure 'delete-init-scripts (lambda _ - (delete-file-recursively "gen/install/misc") - #t)) + (delete-file-recursively "gen/install/misc"))) (add-before 'build 'set-build-environment-variables (lambda _ ;; ‘isql’ needs to run & find libfbclient.so during the build. ;; This doubles as a rudimentary test in lieu of a test suite. (setenv "LD_LIBRARY_PATH" - (string-append (assoc-ref %build-inputs "icu4c") "/lib")) - #t)) + (string-append (assoc-ref %build-inputs "icu4c") "/lib")))) (add-before 'install 'keep-embedded-debug-symbols (lambda _ ;; Let the gnu-build-system separate & deal with them later. ;; XXX Upstream would use ‘--strip-unneeded’, shaving a whole ;; megabyte off Guix's 7.7M libEngine12.so, for example. (substitute* "gen/Makefile.install" - (("readelf") "false")) - #t)) + (("readelf") "false")))) (add-after 'install 'prune-undesirable-files (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -389,12 +392,15 @@ ElasticSearch server") ;; Delete (now-)empty directories. (for-each rmdir (list "include/firebird/impl" - "lib/firebird/plugins/udr")) - #t))))))) + "lib/firebird/plugins/udr"))))))))) + (native-inputs + (if (target-riscv64?) + (list autoconf automake libtool) + '())) (inputs (list boost editline - icu4c-67 + icu4c libtommath ncurses zlib)) @@ -417,8 +423,6 @@ Firebird can also be embedded into stand-alone applications that don't want or need a full client & server. Used in this manner, it offers richer SQL support than SQLite as well as the option to seamlessly migrate to a client/server database later.") - (properties - `((lint-hidden-cve . ("CVE-2017-6369")))) (license ;; See doc/license/README.license.usage.txt for rationale & details. (list license:bsd-3 ; src/common/sha2/ @@ -4137,7 +4141,7 @@ the SQL language using a syntax that reflects the resulting query.") (define-public apache-arrow (package (name "apache-arrow") - (version "8.0.0") + (version "9.0.0") (source (origin (method git-fetch) @@ -4147,7 +4151,7 @@ the SQL language using a syntax that reflects the resulting query.") (file-name (git-file-name name version)) (sha256 (base32 - "1gwiflk72pq1krc0sjzabypmh7slfyf7ak71fiypy3xgzw8a777c")))) + "1l76q7944jyx22vjkk12hxb3nadgiivc3x8ml4mg619v9xxagc2v")))) (build-system cmake-build-system) (arguments `(#:tests? #f diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm index 149144c145..30d360e81f 100644 --- a/gnu/packages/docbook.scm +++ b/gnu/packages/docbook.scm @@ -37,9 +37,11 @@ #:use-module (gnu packages base) #:use-module (gnu packages web-browsers) #:use-module (gnu packages xml) + #:use-module (guix gexp) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module ((guix build utils) #:select (alist-replace)) #:use-module (guix build-system copy) #:use-module (guix build-system gnu) @@ -239,55 +241,152 @@ by no means limited to these applications.) This package provides XML DTDs.") "This package provides XSL style sheets for DocBook.") (license (license:x11-style "" "See 'COPYING' file.")))) -(define-public docbook-xsl-ns +;;; TODO: Make this the default docbook-xsl on core-updates. There's an issue +;;; in docbook-xsl 1.79.2 that causes manpages to be generated incorrectly and +;;; embed raw nroff syntax such as '.PP' when there is a +;;; namespace/non-namespace mismatch between the sources and the stylesheets +;;; used (see: https://github.com/docbook/xslt10-stylesheets/issues/109). +(define-public docbook-xsl-next + (let ((commit "fe16c90013b64e316c3e21ef92d1e8813c10f88c") + (revision "0") + (base-version (package-version docbook-xsl))) + (package + (inherit docbook-xsl) + (name "docbook-xsl") + (version (git-version base-version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/docbook/xslt10-stylesheets") + (commit commit))) + (file-name (git-file-name name version)) + ;; Multiple .jar files are bundled with the sources. + (modules '((guix build utils))) + (snippet '(for-each delete-file (find-files "." "\\.jar$"))) + (sha256 + (base32 + "1bl8dwrcy7skrlh80fpsmiw045bv2j0aym231ikcv3hvm2pi98dj")))) + (build-system gnu-build-system) + (arguments + (list + #:make-flags #~(list "XSLTENGINE=xsltproc") + #:phases + #~(modify-phases %standard-phases + (replace 'configure + (lambda _ + ;; The build systems insist on a ~/.xmlc, and it is simpler to + ;; create a dummy config file than to patch it into + ;; submission. + (setenv "HOME" "/tmp") + (call-with-output-file "/tmp/.xmlc" + (lambda (port) + (format port "\ +<?xml version='1.0' encoding='utf-8'?> <!-- -*- nxml -*- --> +<config> + <java xml:id=\"bigmem\"> + <java-option name=\"Xmx512m\"/> + </java> + <xsltproc xml:id=\"xsltproc\" exec=\"xsltproc\"></xsltproc> + <xmllint xml:id=\"xmllint\" exec=\"xmllint\"></xmllint> +</config>\n"))) + (substitute* "xsl/Makefile" + ;; Do not build webhelp files, as they require a Saxon from + ;; 2005, which is not packaged in Guix. + ((" webhelp") "")))) + (add-before 'install 'generate-catalog.xml + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "-C" "xsl" "catalog.xml" make-flags))) + (replace 'install + (lambda _ + (let ((xml (string-append #$output "/xml/xsl/" + #$name "-" #$version)) + (select-rx (make-regexp + "(\\.xml$|\\.xsl$|\\.dtd$|\\.ent$)"))) + ;; Install catalog. + (chdir "xsl") + (install-file "catalog.xml" xml) + (install-file "VERSION.xsl" xml) + (substitute* (string-append xml "/catalog.xml") + ;; Re-add the no longer present compatibility entries. + ((".*</catalog>.*" anchor) + (string-append "\ + <!-- Also support old URI of v1.79.1 or earlier --> + <rewriteURI uriStartString=\"http://docbook.sourceforge.net\ +/release/xsl/current/\" rewritePrefix=\"./\"/> + <rewriteSystem systemIdStartString=\"http://docbook.sourceforge.net\ +/release/xsl/current/\" rewritePrefix=\"./\"/>\n" anchor)) + (("/snapshot/") + (string-append "/" #$base-version "/")) + (("rewritePrefix=\"./") + (string-append "rewritePrefix=\"file://" xml "/"))) + ;; Install style sheets. + (for-each (lambda (dir) + (for-each (lambda (f) + (install-file + f (string-append xml "/" (dirname f)))) + (find-files dir select-rx))) + '("assembly" "common" "eclipse" "epub" "epub3" "fo" + "highlighting" "html" "htmlhelp" "javahelp" "lib" + "manpages" "params" "profiling" "roundtrip" + "template" "website" + "xhtml" "xhtml-1_1" "xhtml5")))))))) + (native-inputs (list libxml2 + libxslt + perl + perl-xml-xpath))))) + +(define-public docbook-xsl-1.79.1 (package - (name "docbook-xsl-ns") + (name "docbook-xsl") (version "1.79.1") (source (origin (method url-fetch) + ;; At the time, the non namespaced version was still the + ;; default; our latest docbook-xsl is namespaced, so for + ;; consistency preserves this property for older versions too. (uri (string-append "mirror://sourceforge/docbook/" - name "/" version "/" - name "-" version ".tar.bz2")) + name "-ns/" version "/" + name "-ns-" version ".tar.bz2")) (sha256 (base32 "170ggf5dgjar65kkn5n33kvjr3pdinpj66nnxfx8b2avw0k91jin")))) (build-system copy-build-system) (outputs '("out" "doc")) (arguments - `(#:phases - (modify-phases %standard-phases - ;; XXX: The copy-build-system doesn't seem to allow installing to a - ;; different output. - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (xml (string-append out "/xml/xsl/" ,name "-" ,version)) - (doc (string-append (assoc-ref %outputs "doc") - "/share/doc/" ,name "-" ,version)) + (list + #:phases + #~(modify-phases %standard-phases + ;; XXX: The copy-build-system doesn't seem to allow installing to a + ;; different output. + (replace 'install + (lambda _ + (let ((xml (string-append #$output "/xml/xsl/" #$name "-" #$version)) + (doc (string-append #$output:doc + "/share/doc/" #$name "-" #$version)) (select-rx (make-regexp "(\\.xml$|\\.xsl$|\\.dtd$|\\.ent$)"))) - ;; Install catalog. - (install-file "catalog.xml" xml) - (install-file "VERSION.xsl" xml) - (substitute* (string-append xml "/catalog.xml") - (("rewritePrefix=\"./") - (string-append "rewritePrefix=\"file://" xml "/"))) - ;; Install style sheets. - (for-each (lambda (dir) - (for-each (lambda (f) - (install-file - f (string-append xml "/" (dirname f)))) - (find-files dir select-rx))) - '("assembly" "common" "eclipse" "epub" "epub3" "fo" - "highlighting" "html" "htmlhelp" "javahelp" "lib" - "manpages" "params" "profiling" "roundtrip" - "template" "website" - "xhtml" "xhtml-1_1" "xhtml5")) - ;; Install documentation. - (install-file "NEWS" doc) - (install-file "RELEASE-NOTES.html" doc) - (copy-recursively "slides" doc) - (copy-recursively "webhelp" doc))))))) + ;; Install catalog. + (install-file "catalog.xml" xml) + (install-file "VERSION.xsl" xml) + (substitute* (string-append xml "/catalog.xml") + (("rewritePrefix=\"./") + (string-append "rewritePrefix=\"file://" xml "/"))) + ;; Install style sheets. + (for-each (lambda (dir) + (for-each (lambda (f) + (install-file + f (string-append xml "/" (dirname f)))) + (find-files dir select-rx))) + '("assembly" "common" "eclipse" "epub" "epub3" "fo" + "highlighting" "html" "htmlhelp" "javahelp" "lib" + "manpages" "params" "profiling" "roundtrip" + "template" "website" + "xhtml" "xhtml-1_1" "xhtml5")) + ;; Install documentation. + (install-file "NEWS" doc) + (install-file "RELEASE-NOTES.html" doc) + (copy-recursively "slides" doc) + (copy-recursively "webhelp" doc))))))) (home-page "https://docbook.org") (synopsis "DocBook XSL namespaced style sheets for document authoring") (description "This package provides the @emph{namespaced} XSL style sheets diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 30bd0ca48b..c5d49c2925 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -70,7 +70,7 @@ ;;; Copyright © 2020 Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr> ;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> -;;; Copyright © 2020 pinoaffe <pinoaffe@airmail.cc> +;;; Copyright © 2020, 2022 pinoaffe <pinoaffe@gmail.com> ;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com> ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl> @@ -95,7 +95,7 @@ ;;; Copyright © 2021 Alexey Abramov <levenson@mmer.org> ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021, 2022 Stefan Reichör <stefan@xsteve.at> -;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> +;;; Copyright © 2021, 2022 Simon Tournier <zimon.toutoune@gmail.com> ;;; Copyright © 2021 Eugene Klimov <lipklim@mailbox.org> ;;; Copyright © 2021 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2021 David Dashyan <mail@davie.li> @@ -116,6 +116,7 @@ ;;; Copyright © 2022 Haider Mirza <haider@haider.gq> ;;; Copyright © 2022 Jose G Perez Taveras <josegpt27@gmail.com> ;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space> +;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -139,6 +140,7 @@ #:use-module (guix download) #:use-module (guix bzr-download) #:use-module (guix gexp) + #:use-module (guix i18n) #:use-module (guix git-download) #:use-module (guix hg-download) #:use-module (guix build-system gnu) @@ -240,6 +242,9 @@ #:use-module (gnu packages photo) #:use-module (gnu packages uml) #:use-module (gnu packages finance) + #:use-module (gnu packages ocaml) + #:use-module (gnu packages erlang) + #:use-module (gnu packages statistics) #:use-module (guix utils) #:use-module (srfi srfi-1) #:use-module (ice-9 match)) @@ -962,6 +967,8 @@ on stdout instead of using a socket as the Emacsclient does.") (install #:outputs outputs #:include (cons "\\.so$" emacs:%default-include))))) + (add-after 'unpack 'emacs-add-install-to-native-load-path + (assoc-ref emacs:%standard-phases 'add-install-to-native-load-path)) (add-after 'install 'make-autoloads (assoc-ref emacs:%standard-phases 'make-autoloads)) (add-after 'make-autoloads 'enable-autoloads-compilation @@ -2618,6 +2625,29 @@ framework as the user interface, which integrates well with Vertico or Selectrum.") (license license:gpl3+))) +(define-public emacs-marginalia-emprise + (package + (name "emacs-marginalia-emprise") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~plattfot/marginalia-emprise") + (commit (string-append "v" version)))) + (sha256 + (base32 + "1kbk3kgvv1k5zdysvpgcsbxiwn4la3vvnmv3sbzxq7q5v5cr4a54")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-emprise emacs-marginalia)) + (home-page "https://sr.ht/~plattfot/emprise/") + (synopsis "Annotate Emprise with Marginalia") + (description "This package provides an annotation function to show +playback status, artist name and title for Emprise using Marginalia.") + (license license:gpl3+))) + ;;; ;;; Miscellaneous. @@ -2676,6 +2706,29 @@ command, which uses Emacs standard completion to select an application installed on your machine and launch it.") (license license:gpl3+)))) +(define-public emacs-alchemist + (package + (name "emacs-alchemist") + (version "1.8.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://stable.melpa.org/packages/" + "alchemist-" version ".tar")) + (sha256 + (base32 "0ygwf9d739zqc8dcckw0j0bqkipw7cmxbrx3l281x237a3d384yw")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-elixir-mode emacs-dash emacs-company emacs-pkg-info)) + (home-page "http://www.github.com/tonini/alchemist.el") + (synopsis "Elixir tooling integration into Emacs") + (description + "This package brings you all the Elixir tooling and power inside your Emacs +editor. It comes with commands to compile, execute and test your code, spawn +an interactive shell, and look up definitions and documentation as well as +code completion and project management support.") + (license license:gpl3+))) + (define-public emacs-auto-sudoedit (package (name "emacs-auto-sudoedit") @@ -3996,7 +4049,9 @@ during idle time, while Emacs is doing nothing else.") ("pdf-tools-handle-upgrades" '())))) (add-after 'emacs-patch-variables 'emacs-expand-load-path (assoc-ref emacs:%standard-phases 'expand-load-path)) - (add-after 'emacs-expand-load-path 'emacs-install + (add-after 'emacs-expand-load-path 'emacs-add-install-to-native-load-path + (assoc-ref emacs:%standard-phases 'add-install-to-native-load-path)) + (add-after 'emacs-add-install-to-native-load-path 'emacs-install (assoc-ref emacs:%standard-phases 'install)) (add-after 'emacs-install 'emacs-build (assoc-ref emacs:%standard-phases 'build)) @@ -4041,6 +4096,42 @@ DocView mode, and revisiting those PDF files later using the same mode will restore the saved place.") (license license:gpl3+))) +(define-public emacs-pdfgrep + ;; XXX: Upstream does not tag releases. The commit below matches latest + ;; version bump. + (let ((commit "e250376d97fc5240e07d81108bbca9b5a9ab50f4")) + (package + (name "emacs-pdfgrep") + (version "1.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jeremy-compostella/pdfgrep") + (commit commit))) + (sha256 + (base32 "17yqvvgkgxmcl8nc0mb9yaz884zcdnz7dwvfi4mxjzp1l05fvwjk")))) + (build-system emacs-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-pdfgrep-path + (lambda* (#:key inputs #:allow-other-keys) + (make-file-writable "pdfgrep.el") + (emacs-substitute-variables "pdfgrep.el" + ("pdfgrep-program" + (search-input-file inputs "bin/pdfgrep")))))))) + (inputs (list pdfgrep)) + (home-page "https://github.com/jeremy-compostella/pdfgrep") + (synopsis "Emacs module providing @code{grep} comparable facilities but +for PDF files") + (description + "pdfgrep is a GNU/Emacs module providing @code{grep} comparable +facilities but for PDF files. Its usage is similar to the @code{grep} +function. For example, using the @code{next-error} function gets you to the +next matching page.") + (license license:gpl3+)))) + (define-public emacs-dash (package (name "emacs-dash") @@ -5946,6 +6037,41 @@ heading, other headings can be refiled to it with one command, and back to their original location with another.") (license license:gpl3+)))) +(define-public emacs-orgmdb + (package + (name "emacs-orgmdb") + (version "0.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/isamert/orgmdb.el") + (commit "66c13abdb84e0f0a31bae6cfda27478771d58d8e"))) + (sha256 + (base32 + "1hvxha0ih9jhvwj07l6jnpf2vzhgvb6ii73g49c8saxld61l0frf")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "orgmdb.el" + (("\"fd ") + (string-append "\"" + (search-input-file inputs "/bin/fd") + " ")))))))) + (inputs + (list fd)) + (propagated-inputs + (list emacs-dash emacs-org emacs-s)) + (home-page "https://github.com/isamert/orgmdb.el") + (synopsis "Emacs' Org mode watchlist manager and OMDb API client") + (description "This package adds tools for managing your watchlist in Emacs' +Org mode and some functions for interacting with the OMDb API.") + (license license:gpl3+))) + (define-public emacs-rich-minority (package (name "emacs-rich-minority") @@ -6854,14 +6980,14 @@ user.") (define-public emacs-subed (package (name "emacs-subed") - (version "1.0.9") + (version "1.0.10") (source (origin (method url-fetch) (uri (string-append "https://elpa.nongnu.org/nongnu/subed-" version ".tar")) (sha256 (base32 - "192m7pg8hiqx7ppr1sk6n5qjcbz78dmcg6m14syq12ll07zfpcm0")))) + "08vw9sv2g76yj8sfnx53dd28zkj4s0842i7qi92jam993v9s8h0z")))) (arguments (list #:tests? #t @@ -6945,6 +7071,34 @@ source code using IPython.") src blocks.") (license license:gpl3+))) +(define-public emacs-ol-notmuch + (let ((commit "1a53d6c707514784cabf33d865b577bf77f45913") + (revision "0")) + (package + (name "emacs-ol-notmuch") + (version (git-version "2.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~tarsius/ol-notmuch") + (commit commit))) + (sha256 + (base32 + "16p7j51z8r047alwn2hkb6944f7ds29ckb97b4k8ia00vwch0d67")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-compat emacs-notmuch emacs-org)) + (home-page "https://git.sr.ht/~tarsius/ol-notmuch") + (synopsis "Links to notmuch messages for Emacs' Org mode") + (description + "This package implements links to Notmuch messages and searches for +Emacs' Org mode. A search is a query to be performed by Notmuch; it is the +equivalent to folders in other mail clients. Similarly, mails are referred to +by a query, so both a link can refer to several mails.") + (license license:gpl3+)))) + (define-public emacs-debbugs (package (name "emacs-debbugs") @@ -6975,6 +7129,43 @@ A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.") (license license:gpl3+))) +(define-public emacs-piem + (package + (name "emacs-piem") + (version "0.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.kyleam.com/piem") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 "0wr6n6wvznngjdp4c0pmdr4xz05dark0kxi5svzhzxsg3rdaql3z")))) + (build-system emacs-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "piem-b4.el" + ("piem-b4-b4-executable" + (search-input-file inputs "/bin/b4")))))))) + (inputs + (list b4)) + (propagated-inputs + (list emacs-elfeed + emacs-notmuch + emacs-transient)) + (home-page "https://docs.kyleam.com/piem") + (synopsis "Glue for working with public-inbox archives") + (description "This packages provides a collection of Emacs libraries for +working with public-inbox archives. As much of the hard work here is already +done by other Emacs libraries—things like mail clients, news readers, Git +interfaces, and even web browsers—piem is mostly about bridging some of these +parts for convenience.") + (license license:gpl3+))) + (define-public emacs-ert-expectations (package (name "emacs-ert-expectations") @@ -8953,6 +9144,40 @@ variants.") package provides a light and a dark variant.") (license license:gpl3+))) +(define-public emacs-color-theme-solarized + ;; From 2017-10-24. No releases available. + (let ((commit "f3ca8902ea056fb8e46cb09f09c96294e31cd4ee") + (revision "0")) + (package + (name "emacs-color-theme-solarized") + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url + "https://github.com/sellout/emacs-color-theme-solarized") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "16d7adqi07lzzr0qipl1fbag9l8kiyr3xrqxi528pimcisbg85d3")))) + (build-system emacs-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + ;; These are intended for old versions of Emacs and do not + ;; compile with emacs>=24. + (add-before 'install 'remove-color-theme + (lambda _ + (delete-file "./color-theme-solarized.el") + (delete-file "./color-theme-solarized-pkg.el")))))) + (home-page "https://github.com/sellout/emacs-color-theme-solarized") + (synopsis "Solarized color scheme for Emacs") + (description + "This package provides Emacs highlighting using Ethan Schoonover’s +Solarized color scheme.") + (license license:expat)))) + (define-public emacs-poet-theme (let ((commit "16eb694f0755c04c4db98614d0eca1199fddad70") (revision "1")) @@ -9713,7 +9938,7 @@ regexp that matches all known keywords.") (define-public emacs-perspective (package (name "emacs-perspective") - (version "2.17") + (version "2.18") (source (origin (method git-fetch) @@ -9722,7 +9947,7 @@ regexp that matches all known keywords.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1nmz39pcaa969g1966ykblzrz6lr3ddb0ip465y5in1fj498as6y")))) + (base32 "1r026cw6p2ss5wg8mxgzf6iv1lb9pdnqyf6yrqb914aibkrvp9b6")))) (build-system emacs-build-system) (arguments `(#:tests? #t @@ -11078,6 +11303,27 @@ errors and strict-mode warnings, smart line-wrapping within comments and strings, and code folding.") (license license:gpl3+))) +(define-public emacs-js-comint + (package + (name "emacs-js-comint") + (version "1.2.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://stable.melpa.org/packages/" + "js-comint-" version ".el")) + (sha256 + (base32 "1qin0hclm3ly62nl5ddiim64bcd2k74b1yqsqqc61cf9k2q8k287")))) + (build-system emacs-build-system) + (home-page "https://github.com/redguardtoo/js-comint") + (synopsis "Interacting with a JavaScript interpeter") + (description + "This program is a comint mode for Emacs which allows you to run a +compatible JavaScript REPL, such as node, SpiderMonkey or Rhino. +It also defines a few functions for sending JavaScript input to this REPL from +an Emacs buffer.") + (license license:gpl3+))) + (define-public emacs-nodejs-repl (package (name "emacs-nodejs-repl") @@ -12780,7 +13026,7 @@ using package inferred style.") `(#:tests? #t #:test-command '("buttercup" "-l" "lua-mode.el"))) (native-inputs - (list emacs-buttercup lua)) + (list emacs-buttercup-1.25 lua)) (synopsis "Major mode for lua") (description "This Emacs package provides a mode for @uref{https://www.lua.org/, @@ -14010,7 +14256,7 @@ you to deal with multiple log levels.") (define-public emacs-denote (package (name "emacs-denote") - (version "0.5.1") + (version "0.6.0") (source (origin (method git-fetch) @@ -14019,7 +14265,7 @@ you to deal with multiple log levels.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "00f50dhw0x1hn87rc6vkrdwpybnbphg5z0g2c6c4r4cbgaiia8bi")))) + (base32 "0wqrl2fdprmgffxg5xak881gs0g4ffdy2n8wcb4wbz3f6anhfaa5")))) (build-system emacs-build-system) (native-inputs (list texinfo)) (home-page "https://protesilaos.com/emacs/denote/") @@ -14169,6 +14415,33 @@ stuff (words, region, lines) around in Emacs.") @uref{https://bazel.build/} for background on Bazel.") (license license:asl2.0)))) +(define-public emacs-clue + ;; There are no releases so far. + (let ((commit "41895da52cf76f964d97cb8204406ab9828c4839") + (revision "0")) + (package + (name "emacs-clue") + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AmaiKinono/clue") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08xpdpac82v5vwqqqgbh5imakl4pys6bpfacfk05pk88lw925ql8")))) + (build-system emacs-build-system) + (home-page "https://github.com/AmaiKinono/clue/") + (synopsis "Connecting clues while reading code") + (description + "Clue is a tool for helping you take notes while reading code. + +Code reading is all about finding connections between different locations in +a project. With Clue, you can take notes about these connections in plain +text (or your favorite markup language), and insert links to take you to these +locations.") + (license license:gpl3+)))) + (define-public emacs-gntp (package (name "emacs-gntp") @@ -14293,7 +14566,7 @@ automatically discovered and presented in recency order.") (define-public emacs-mentor (package (name "emacs-mentor") - (version "0.3.5") + (version "0.4") (source (origin (method url-fetch) @@ -14301,7 +14574,7 @@ automatically discovered and presented in recency order.") version ".tar")) (sha256 (base32 - "01zrvfk2njzyzjzkvp5hv5cjl1k1qjrila1ab4bv26gf6bkq5xh3")))) + "1n51yabm4npx62fpfn8rhky09x4y779ismdxa026fycy7va7ynzz")))) (build-system emacs-build-system) (propagated-inputs (list emacs-async emacs-xml-rpc)) @@ -15401,13 +15674,13 @@ containing words from the Rime project.") (define-public emacs-pyim (package (name "emacs-pyim") - (version "5.2.4") + (version "5.2.5") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar")) (sha256 - (base32 "1dzl4xaf31nyjb5hnwwf29i75x0i8dakpmmagbn4ks5hi3jl2ig0")))) + (base32 "00f23pl53rdy9iwp4gj2656wik7c6vnmhsglg7z4pz3ippz3f4hq")))) (build-system emacs-build-system) (propagated-inputs (list emacs-async emacs-popup emacs-posframe emacs-xr)) @@ -16304,25 +16577,42 @@ highlighting.") (license license:gpl3+))) (define-public emacs-jsonrpc - (package - (name "emacs-jsonrpc") - (version "1.0.15") - (source - (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/" - "jsonrpc-" version ".tar")) - (sha256 - (base32 "1hx378rg12jz2zm105cvrqk0nqyzsn04l59d903l98d6lbd96rsw")))) - (build-system emacs-build-system) - (home-page "http://elpa.gnu.org/packages/jsonrpc.html") - (synopsis "JSON-RPC library") - (description - "This library implements the JSONRPC 2.0 specification as + ;; 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 + (package + (name "emacs-jsonrpc") + (version (git-version "1.0.15" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/git/emacs.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0srwb171dxha1nfzppk6x9v4bdj3lk74pksqnhalw8jw9c67b72y")))) + (build-system emacs-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (replace 'unpack + (lambda* (#:key source #:allow-other-keys) + (mkdir "source") + (chdir "source") + (copy-file (string-append source "/lisp/jsonrpc.el") + "jsonrpc.el")))))) + (home-page "http://elpa.gnu.org/packages/jsonrpc.html") + (synopsis "JSON-RPC library") + (description + "This library implements the JSONRPC 2.0 specification as described in @url{http://www.jsonrpc.org/}. As the name suggests, JSONRPC is a generic Remote Procedure Call protocol designed around JSON objects.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-jsonnet-mode (package @@ -16706,7 +16996,7 @@ multiplexer.") (define-public emacs-plz (package (name "emacs-plz") - (version "0.2") + (version "0.2.1") (source (origin (method git-fetch) @@ -16715,7 +17005,7 @@ multiplexer.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "170pbqiywk1zyhd0ig4f25qnjf7r1gwy0c6h343bcnl6qxvkvlv2")))) + (base32 "0p0xd532xa8icysyxwqk481lr9xanmp68gf97fd9n2936gp12chv")))) (build-system emacs-build-system) (inputs (list curl)) (home-page "https://github.com/alphapapa/plz.el") @@ -16728,7 +17018,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.1.4") + (version "0.2.1") (source (origin (method git-fetch) @@ -16737,7 +17027,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 "1kms6l14h6ig8kphzpkxv16z7gpvcwvcfsp5ljssdnrx0c7dzz16")))) + (base32 "0kfh0vlsz4qnx4vwkwhkxawk5cpxgnvkar72wha9cxj8s6j51vx0")))) (build-system emacs-build-system) (arguments `(#:emacs ,emacs)) ;need libxml support @@ -17192,7 +17482,7 @@ an elisp expression.") (define-public emacs-taxy (package (name "emacs-taxy") - (version "0.10") + (version "0.10.1") (source (origin (method url-fetch) @@ -17200,7 +17490,7 @@ an elisp expression.") "https://elpa.gnu.org/packages/taxy-" version ".tar")) (sha256 (base32 - "1jamry2p3qhswq8prd2g7ljh4yqk0wwblyd9fhnaclakahrn5vi3")))) + "05czw8fkifb25rwl99dmncr1g0rjfx1bqijl7igqs9j6h9ia2xvg")))) (build-system emacs-build-system) (propagated-inputs (list emacs-magit)) @@ -17496,8 +17786,8 @@ through them using @key{C-c C-SPC}.") (license license:gpl3+))) (define-public emacs-slack - (let ((commit "1f6a40faec0d8d9c9de51c444508d05a3e995ccd") - (revision "9")) + (let ((commit "ff46d88726482211e3ac3d0b9c95dd4fdffe11c2") + (revision "10")) (package (name "emacs-slack") (version (git-version "0.0.2" revision commit)) @@ -17509,7 +17799,7 @@ through them using @key{C-c C-SPC}.") (file-name (git-file-name name commit)) (sha256 (base32 - "19lan9nd8qfw2ws7mx814vrin04c892yn5c8g3nad7lpnzszgr1r")))) + "15g4dmy4iqqpk8ivhkpsngzllbw0nc5d2sc9j36sdnhwkajzhidj")))) (build-system emacs-build-system) (arguments `(#:phases @@ -20473,6 +20763,30 @@ collapse macro forms one step at a time, and evaluate or instrument the expansions for debugging with Edebug as normal.") (license license:gpl3+)))) +(define-public emacs-macrostep-geiser + ;; XXX: Upstream does not tag commits (yet). The commit below matches the + ;; version bump. + (let ((commit "7927651b188cac07113bce5b2cd0de12b2b082f7")) + (package + (name "emacs-macrostep-geiser") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nbfalcon/macrostep-geiser") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1gz2kypyrb4k76dn4j02c8s6a3dqb1la5jcrdcifv8saa8lvqyli")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-geiser emacs-macrostep)) + (home-page "https://github.com/nbfalcon/macrostep-geiser") + (synopsis "Macrostep for Geiser and Cider") + (description + "This plug-in implements a Macrostep back-end powered by Geiser.") + (license license:gpl3+)))) + (define-public emacs-parent-mode (package (name "emacs-parent-mode") @@ -23440,6 +23754,31 @@ from Emacs for C/C++ code that needs to be build against multiple incompatible versions of third party libraries or @code{C++} standards.") (license license:gpl3+))) +(define-public emacs-cpreproc-openvdb + (package + (name "emacs-cpreproc-openvdb") + (version "3.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~plattfot/cpreproc-openvdb") + (commit version))) + (sha256 + (base32 + "0n1y8cxx6xipvip8y6nk9ig1dpjdksz77956wlql3lhqcrcn5hzg")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-cpreproc)) + (home-page "https://sr.ht/~plattfot/cpreproc") + (synopsis "Create preprocessor macros for C++ that uses OpenVDB") + (description + "This project makes it easier to generate preprocessor macros from Emacs +for C++ code that uses OpenVDB and needs to be build against multiple +incompatible versions of it.") + (license license:gpl3+))) + (define-public emacs-org-brain (package (name "emacs-org-brain") @@ -23646,7 +23985,7 @@ source code.") (define-public emacs-rustic (package (name "emacs-rustic") - (version "3.3") + (version "3.4") (source (origin (method git-fetch) @@ -23655,7 +23994,7 @@ source code.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "088g6arlbq7czxyg5f31zmcm0gla7qh4vapaaskf6866yyqhizvb")))) + (base32 "16vsv4fhj8zq9g4zrsmipdb1nydxgw3dhh5s3wawpvx2rcg6gx2l")))) (build-system emacs-build-system) (propagated-inputs (list emacs-dash @@ -24642,6 +24981,23 @@ common set-up and tear-down code, and allows the programmer to \"spy\" on functions to ensure they are called with the right arguments during testing.") (license license:gpl3+))) +;;; Required by emacs-lua-mode +(define emacs-buttercup-1.25 + (package + (inherit emacs-buttercup) + (name "emacs-buttercup") + (version "1.25") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jorgenschaefer/emacs-buttercup") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0fsysvsypda6b7azc15bpaprq3bwx4gb6rlq2mj6f8rgwdqc8153")))))) + (define-public emacs-cort (package (name "emacs-cort") @@ -27339,6 +27695,169 @@ outline-enabled table of contents, additional metadata association for Info nodes, and more.") (license license:gpl2+)))) +(define-public emacs-eval-in-repl + (package + (name "emacs-eval-in-repl") + (version "0.9.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kaz-yos/eval-in-repl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1mrssbl0wyc6iij8zk1y3h9bd3rv53nnrxsij7fn67l1m4z0clyn")))) + (build-system emacs-build-system) + (arguments + (list #:include + #~(list "eval-in-repl\\.el" "eval-in-repl-test\\.el" "README\\.md"))) + (propagated-inputs (list emacs-dash emacs-paredit emacs-ace-window)) + (home-page "https://github.com/kaz-yos/eval-in-repl") + (synopsis "One keybinding to communicate with REPLs") + (description + "@code{eval-in-repl} provides a consistent ESS-like evaluation interface +for various REPLs. In particular, it mimics ESS' C-RET binding, which sends a +line or region to an appropriately configured shell. This package provides +just the core of @code{eval-in-repl}---for the languages themselves, see their +respective packages.") + (license license:expat))) + +(define* (make-emacs-eval-in-repl repl #:key + (eval-in-repl-package emacs-eval-in-repl) + (language (string-capitalize repl)) + (inputs '())) + "Construct an emacs-eval-in-repl package for REPL, which interprets LANGUAGE. +Optionally propagate INPUTS or use a different EVAL-IN-REPL-PACKAGE." + (package + (inherit eval-in-repl-package) + (name (string-append "emacs-eval-in-repl-" repl)) + (arguments + (list #:include + #~(list #$(string-append "eval-in-repl-" repl "\\.el")))) + (propagated-inputs (cons* eval-in-repl-package + (cond + ((procedure? inputs) (inputs)) + ((promise? inputs) (force inputs)) + (else inputs)))) + (description + (format #f (G_ "This package provides an ESS-like binding to send lines +or regions to a REPL from ~a buffers.") language)))) + +(define-public emacs-eval-in-repl-cider + (make-emacs-eval-in-repl "cider" #:language "Clojure" + #:inputs (list emacs-cider))) + +(define-public emacs-eval-in-repl-elm + (make-emacs-eval-in-repl "elm" #:inputs (list emacs-elm-mode))) + +(define-public emacs-eval-in-repl-erlang + (make-emacs-eval-in-repl "erlang" #:inputs (list emacs-erlang))) + +(define-public emacs-eval-in-repl-geiser + (make-emacs-eval-in-repl "geiser" #:language "Scheme" + #:inputs (list emacs-geiser))) + +(define-public emacs-eval-in-repl-hy + (make-emacs-eval-in-repl "hy" #:inputs (list emacs-hy-mode))) + +(define-public emacs-eval-in-repl-ielm + (make-emacs-eval-in-repl "ielm" #:language "Emacs Lisp")) + +(define-public emacs-eval-in-repl-iex + (make-emacs-eval-in-repl + "iex" #:language "Elixir" + #:inputs (delay + (list emacs-elixir-mode emacs-alchemist)))) + +(define-public emacs-eval-in-repl-javascript + (make-emacs-eval-in-repl "javascript" + #:inputs (list emacs-js2-mode emacs-js-comint))) + +(define-public emacs-eval-in-repl-lua + (make-emacs-eval-in-repl "lua" #:inputs (list emacs-lua-mode))) + +(define-public emacs-eval-in-repl-ocaml + (make-emacs-eval-in-repl "ocaml" #:language "OCaml" + #:inputs (delay (list emacs-tuareg)))) + +(define-public emacs-eval-in-repl-prolog + (make-emacs-eval-in-repl "prolog")) + +(define-public emacs-eval-in-repl-python + (make-emacs-eval-in-repl "python")) + +(define-public emacs-eval-in-repl-racket + (make-emacs-eval-in-repl "racket" #:inputs (list emacs-racket-mode))) + +(define-public emacs-eval-in-repl-ruby + (make-emacs-eval-in-repl "ruby" #:inputs (list emacs-inf-ruby))) + +(define-public emacs-eval-in-repl-scheme + (make-emacs-eval-in-repl "scheme")) + +(define-public emacs-eval-in-repl-shell + (make-emacs-eval-in-repl "shell")) + +(define-public emacs-eval-in-repl-slime + (make-emacs-eval-in-repl "slime" #:language "Common Lisp" + #:inputs (list emacs-slime))) + +(define-public emacs-eval-in-repl-sly + (make-emacs-eval-in-repl "sly" #:language "Common Lisp" + #:inputs (list emacs-sly))) + +(define-public emacs-eval-in-repl-sml + (make-emacs-eval-in-repl "sml" #:language "Standard ML" + #:inputs (list emacs-sml-mode))) + +(define-public emacs-ob-elm + (let ((commit "d3a9fbc2f56416894c9aed65ea9a20cc1d98f15d") + (revision "0")) + (package + (name "emacs-ob-elm") + (version (git-version "0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/BonfaceKilz/ob-elm") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1wdlr0cbsb2drdmcn2bnivjkj1f2v52l6yizwsnjgi4xq3w6k56h")))) + (build-system emacs-build-system) + (home-page "https://github.com/BonfaceKilz/ob-elm") + (synopsis "Org-Babel support for Elm code") + (description + "This package adds support to Org-Babel for evaluating Elm code.") + (license license:gpl3+)))) + +(define-public emacs-org-babel-eval-in-repl + (package + (name "emacs-org-babel-eval-in-repl") + (version "1.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://stable.melpa.org/packages/" + "org-babel-eval-in-repl-" version ".tar")) + (sha256 + (base32 "0bdnps6m3kcvsagz8cfm3kf2rvxzl2p252pfggwbdbl43kzvl35h")) + (modules '((guix build utils))) + (snippet + #~(begin (delete-file "eval-in-repl-matlab.el"))))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-eval-in-repl emacs-ess)) + (home-page "https://github.com/diadochos/org-babel-eval-in-repl") + (synopsis "Eval org-mode babel code blocks in various REPLs") + (description + "This package allows you to execute org-mode source code blocks with +@code{eval-in-repl}. It can execute code blocks asynchronously, without +needing to write the result into the buffer.") + (license license:expat))) + (define-public emacs-eval-sexp-fu-el (package (name "emacs-eval-sexp-fu-el") @@ -29455,7 +29974,7 @@ current buffer.") (define-public emacs-repl-toggle (package (name "emacs-repl-toggle") - (version "0.7.1") + (version "0.7.2") (source (origin (method git-fetch) @@ -29464,7 +29983,7 @@ current buffer.") (commit version))) (sha256 (base32 - "0nycm8a4wwkkaif958z4m89slayp17k20lp2h7lvddjx8prn6yfp")) + "18dpy7a7yrn7m7qifrjk5zcr6zbd3kwp9pb55la9052vwipxxvfk")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs @@ -30093,7 +30612,7 @@ mercury-mode provided by Emacs as a wrapper around prolog-mode.") (define-public emacs-boxquote (package (name "emacs-boxquote") - (version "2.2") + (version "2.3") (source (origin (method git-fetch) @@ -30102,7 +30621,7 @@ mercury-mode provided by Emacs as a wrapper around prolog-mode.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0wwjawgylaaifdsszqxcfsyhfzgxbjkzqhzrnxnr9b16wghb7xf7")))) + (base32 "0d7m9kcwhbgv4pikaa2dzlg9zkmwdhyx2ksn68di6xzbh838892q")))) (build-system emacs-build-system) (home-page "https://github.com/davep/boxquote.el") (synopsis "Quote text with different kinds of boxes") @@ -30902,34 +31421,6 @@ as a plug-and-play solution for anyone already using Org mode for their personal wiki.") (license license:gpl3+))) -(define-public emacs-org-roam-ui - (let ((commit "c75fc7506ee7f03840a9a93ed9336d7ed24551aa") - (revision "0")) - (package - (name "emacs-org-roam-ui") - (version (git-version "0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/org-roam/org-roam-ui") - (commit commit))) - (sha256 - (base32 "0mkcd2622np8s5qz2zvx7lch6dc586xqmn6914gi4ym7nvklf3zy")))) - (build-system emacs-build-system) - (arguments - (list #:include #~(cons "^out" %default-include))) - (propagated-inputs - (list emacs-org-roam emacs-simple-httpd emacs-websocket)) - (home-page "https://github.com/org-roam/org-roam-ui") - (synopsis "Web User Interface for Org Roam") - (description - "Org Roam UI is meant as a successor of Org Roam server that extends -functionality of Org Roam with a web app that runs side-by-side with Emacs, -providing a web interface for navigating around notes created within Org -Roam.") - (license license:gpl3+)))) - (define-public emacs-org-roam-bibtex (package (name "emacs-org-roam-bibtex") @@ -32368,14 +32859,14 @@ are prefixed with @code{seq-} and work on lists, strings, and vectors.") (define-public emacs-setup (package (name "emacs-setup") - (version "1.3.1") + (version "1.3.2") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/setup-" version ".tar")) (sha256 - (base32 "0n9zjclf4b2sr8c8zd37fs45p25p3856frm419c9hch69hhcsv3a")))) + (base32 "1sr514w4mn0fbdawjb5p0fd6i6q2zi9737rbwcgakb1l9cqvb5qy")))) (build-system emacs-build-system) (home-page "https://git.sr.ht/~pkal/setup") (synopsis "Helpful configuration macro") @@ -32594,26 +33085,41 @@ hacker.") (define-public emacs-osm (package (name "emacs-osm") - (version "0.6") + (version "0.8") (home-page "https://github.com/minad/osm") - (source - (origin - (method git-fetch) - (uri (git-reference (url home-page) (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0aiq2z9vv4jsl0s0x9vpjgp0mnn27wanhirzj3h80ivgiphzs7l5")))) + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "039ac364f00slx1dxxgsgfcr4x47v9ymn8arcs0fyhdhw7jnky5j")))) (build-system emacs-build-system) (arguments - `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'set-curl-file-name - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "osm.el" - (("\"curl( ?)\"" _ space) - (string-append "\"" - (search-input-file inputs "/bin/curl") - space "\"")))))))) + (list #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'set-curl-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "osm.el" + (("\"curl( ?)\"" _ space) + (string-append "\"" + (search-input-file inputs + "/bin/curl") + space "\""))))) + (add-after 'install 'makeinfo + (lambda _ + (invoke "emacs" + "--batch" + "--eval=(require 'ox-texinfo)" + "--eval=(setq org-export-with-broken-links t)" + "--eval=(find-file \"README.org\")" + "--eval=(org-texinfo-export-to-info)") + (install-file "osm.info" + (string-append #$output + "/share/info"))))))) (inputs (list curl)) + (native-inputs (list texinfo)) (synopsis "OpenStreetMap viewer for Emacs") (description "This package provides an OpenStreetMap viewer for Emacs, featuring diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index bbed0175d4..1756b82466 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -412,7 +412,9 @@ languages.") (source (origin (inherit (package-source emacs-next)) - (patches (search-patches "emacs-pgtk-super-key-fix.patch")))) + (patches + (append (search-patches "emacs-pgtk-super-key-fix.patch") + (origin-patches (package-source emacs-next)))))) (arguments (substitute-keyword-arguments (package-arguments emacs-next) ((#:configure-flags flags #~'()) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 4e3b0e05db..4b5e466c7d 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -71,7 +71,7 @@ (define-public efl (package (name "efl") - (version "1.26.2") + (version "1.26.3") (source (origin (method url-fetch) (uri (string-append @@ -79,7 +79,7 @@ version ".tar.xz")) (sha256 (base32 - "071h0pscbd8g341yy5rz9mk1xn8yhryldhl6mmr1y6lafaycyy99")))) + "05bxc58hj0z6pkp6yy5cmy1lc575q0nrbr5lxr6z8d4kznh3my6r")))) (build-system meson-build-system) (native-inputs `(("check" ,check) @@ -289,7 +289,7 @@ Libraries with some extra bells and whistles.") (define-public enlightenment (package (name "enlightenment") - (version "0.25.3") + (version "0.25.4") (source (origin (method url-fetch) (uri @@ -297,7 +297,7 @@ Libraries with some extra bells and whistles.") "enlightenment/enlightenment-" version ".tar.xz")) (sha256 (base32 - "1xngwixp0cckfq3jhrdmmk6zj67125amr7g6xwc6l89pnpmlkz9p")) + "18mp4ggfy7n0yz6kzx56ali0piqa84z72vnj6649l6w2dch5vnsn")) (patches (search-patches "enlightenment-fix-setuid-path.patch")))) (build-system meson-build-system) (arguments diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index f8bacc2fe8..9739c5acd5 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -707,7 +707,7 @@ blockchain.") ;; the system's dynamically linked library. (package (name "monero") - (version "0.18.1.0") + (version "0.18.1.1") (source (origin (method git-fetch) @@ -725,7 +725,7 @@ blockchain.") delete-file-recursively '("external/miniupnp" "external/rapidjson")))) (sha256 - (base32 "18yj44pki7x8ir6wg02g1h6yxp1hnqb0nrx9x5dvv94rda48cy66")))) + (base32 "050rf4c1i42d0vhcb3hqrrndr2l45w1qg4h62cagk0nmq5va6xj7")))) (build-system cmake-build-system) (native-inputs (list doxygen @@ -812,7 +812,7 @@ the Monero command line client and daemon.") (define-public monero-gui (package (name "monero-gui") - (version "0.18.1.0") + (version "0.18.1.1") (source (origin (method git-fetch) @@ -828,7 +828,7 @@ the Monero command line client and daemon.") ;; See the 'extract-monero-sources' phase. (delete-file-recursively "monero"))) (sha256 - (base32 "1z627jy9n6cwc9yv0w58fbhix4qnllk0q42ga75mhlawaz68j0qi")))) + (base32 "0zh0sf7acr1a4s5kmp9fpjd2wr78qv74z1xhkwrkkn9ainp4qfaz")))) (build-system qt-build-system) (native-inputs `(,@(package-native-inputs monero) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index a812476db1..3554c9a541 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -19,7 +19,7 @@ ;;; Copyright © 2017 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Brendan Tildesley <mail@brendan.scot> -;;; Copyright © 2017, 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2017, 2018, 2019, 2020, 2022 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org> ;;; Copyright © 2018 Charlie Ritter <chewzerita@posteo.net> ;;; Copyright © 2018 Gabriel Hondet <gabrielhondet@gmail.com> @@ -117,7 +117,7 @@ titling.") (define-public font-ibm-plex (package (name "font-ibm-plex") - (version "5.1.3") + (version "6.1.1") (source (origin (method url-fetch) (uri (string-append @@ -125,7 +125,7 @@ titling.") "v" version "/OpenType.zip")) (sha256 (base32 - "0zlz8kxx54i4hpgaip9690bilvn5w14gp7jjkk6cz4h9p3xml231")))) + "1z9nxac9ha6gqz5yvfy5lp6hyl39f8f8hdrw3llcp89rdpjfqdn9")))) (build-system font-build-system) (home-page "https://github.com/IBM/plex") (synopsis "IBM Plex typeface") @@ -2736,7 +2736,7 @@ and readability. This package bundles those icons into a font.") (define-public font-lxgw-wenkai (package (name "font-lxgw-wenkai") - (version "1.240") + (version "1.245") (source (origin (method url-fetch) (uri (string-append @@ -2744,7 +2744,7 @@ and readability. This package bundles those icons into a font.") version "/lxgw-wenkai-v" version ".tar.gz")) (sha256 (base32 - "1rg6i6fqs1b0b2g4kijimkyqbxfn6n8ac74rppsizq65n6crvfib")))) + "01x5nfw0cy7v8vsjw32zayc0ryskiwj22yzqi28252896073mm9k")))) (build-system font-build-system) (home-page "https://lxgw.github.io/2021/01/28/Klee-Simpchin/") (synopsis "Simplified Chinese Imitation Song typeface") @@ -2758,7 +2758,7 @@ within GB 2312, standard glyphs for Mainland China is used.") (package (inherit font-lxgw-wenkai) (name "font-lxgw-wenkai-tc") - (version "0.921") + (version "0.922") (source (origin (method url-fetch) (uri (string-append @@ -2766,7 +2766,7 @@ within GB 2312, standard glyphs for Mainland China is used.") version "/lxgw-wenkai-tc-v" version ".tar.gz")) (sha256 (base32 - "0s7zvb8i1f7ziw8r94l1f3rcv21b80dbgc43zjwz34s43465lwrb")))) + "0kb12sfb8ihsj14yzk5ib657xvswqy0hy5gr1vfbn1n05vzy8wyk")))) (home-page "https://github.com/lxgw/LxgwWenKaitc") (synopsis "Traditional Chinese Imitation Song typeface") (description @@ -2777,7 +2777,7 @@ dialects in Hong Kong and Taiwan."))) (define-public font-chiron-sung-hk (package (name "font-chiron-sung-hk") - (version "1.005") + (version "1.006") (source (origin (method git-fetch) (uri (git-reference @@ -2786,7 +2786,7 @@ dialects in Hong Kong and Taiwan."))) (file-name (git-file-name name version)) (sha256 (base32 - "0iqlnb7825kisg2avhr9hwwvb4jw8f642vvmms5dw6m9czzydpgw")))) + "0cibyhy363yqmif31lwv4qmcaar5np2gdd3nbnxxp55mb4qn0kms")))) (build-system font-build-system) (home-page "https://chiron-fonts.github.io/") (synopsis "Traditional Chinese Song typeface") @@ -2801,7 +2801,7 @@ prevalent typefaces in Traditional Chinese regions.") (package (inherit font-chiron-sung-hk) (name "font-chiron-hei-hk") - (version "2.503") + (version "2.504") (source (origin (method git-fetch) (uri (git-reference @@ -2810,7 +2810,7 @@ prevalent typefaces in Traditional Chinese regions.") (file-name (git-file-name name version)) (sha256 (base32 - "00av598lcsvbwfxabs8m1bfvlk3zq98nziynsrg5p2s5mhz2pkvk")))) + "0d0k88sbhgr597sv2jzz2rcg8g4k60lcjka1xlnkv08n3bdgvmhr")))) (synopsis "Traditional Chinese Gothic typeface") (description "Chiron Hei HK is a Traditional Chinese Gothic typeface based on the Hong diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index f42e380436..5623bdde7d 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -73,6 +73,7 @@ ;;; Copyright © 2022 zamfofex <zamfofex@twdb.moe> ;;; Copyright © 2022 Gabriel Arazas <foo.dogsquared@gmail.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2022 Hendursaga <hendursaga@aol.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2684,6 +2685,35 @@ available, as well as a single-player mode with AI-controlled ships.") (license (list license:expat ; game license:silofl1.1)))) ; fonts +(define-public tetzle + (package + (name "tetzle") + (version "2.2.1") + (source (origin + (method url-fetch) + (uri (string-append "https://gottcode.org/" + name + "/" + name + "-" + version + "-src.tar.bz2")) + (sha256 + (base32 + "1m4j4lzqp8fnwmvyglmzcn3vh14ix4hhh52ycmcsjgrsgj1w4p6a")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f)) ; no tests + (native-inputs (list qttools)) + (inputs (list qtbase)) + (home-page "https://gottcode.org/tetzle/") + (synopsis "Jigsaw puzzle game that uses tetrominoes for the pieces") + (description + "Tetzle is a jigsaw puzzle game that uses tetrominoes for the pieces. Any image +can be imported and used to create puzzles with a wide range of sizes. Games are +saved automatically, and you can select between currently in progress games.") + (license license:gpl3+))) + (define %ufoai-commit "a542a87a891f96b1ab2c44d35b2f6f16859a5019") (define %ufoai-revision "0") (define %ufoai-version (git-version "2.6.0_dev" %ufoai-revision %ufoai-commit)) @@ -5764,17 +5794,14 @@ Linux / Mac OS X servers, and an auto mapper with a VT100 map display.") (patches (search-patches "laby-make-install.patch")))) (build-system gnu-build-system) (inputs - `(("lablgtk3" ,lablgtk3) - ("ocaml" ,ocaml) - ("ocaml-findlib" ,ocaml-findlib) - ("ocamlbuild" ,ocamlbuild))) + (list lablgtk3 ocaml-lablgtk3-sourceview3 ocaml ocaml-findlib ocamlbuild)) (arguments '(#:phases (modify-phases %standard-phases (delete 'configure) (add-before 'build 'set-library-path (lambda* (#:key inputs #:allow-other-keys) - (let ((lablgtk (assoc-ref inputs "lablgtk3"))) + (let ((lablgtk (assoc-ref inputs "lablgtk"))) (setenv "LD_LIBRARY_PATH" (string-append lablgtk "/lib/ocaml/stublibs")))))) #:tests? #f ; no 'check' target @@ -5892,101 +5919,63 @@ throwing people around in pseudo-randomly generated buildings.") (define-public hyperrogue (package (name "hyperrogue") - (version "11.3a") - ;; When updating this package, be sure to update the "hyperrogue-data" - ;; origin in native-inputs. - (source (origin - (method url-fetch) - (uri (string-append - "https://www.roguetemple.com/z/hyper/hyperrogue" - (string-join (string-split version #\.) "") - "-src.tgz")) - (sha256 - (base32 - "1yxabbswq02fc5frigvs43f83m5vlxybc7n5mynkwzj2c70lfp2k")))) + (version "12.1a") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zenorogue/hyperrogue") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1l09d1r3jdwp54zq071fk09hpggif5phjn0gsapzrjy3i289jran")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; no check target - #:make-flags '("HYPERROGUE_USE_GLEW=1" - "HYPERROGUE_USE_PNG=1") - #:phases - (modify-phases %standard-phases - (add-after 'set-paths 'set-sdl-paths - (lambda* (#:key inputs #:allow-other-keys) - (setenv "CPATH" - (string-append (or (getenv "CPATH") "") ":" - (assoc-ref inputs "sdl-union") - "/include/SDL")))) - (replace 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (share-dir (string-append out "/share/hyperrogue")) - (dejavu-dir (string-append - (assoc-ref inputs "font-dejavu") - "/share/fonts/truetype")) - (dejavu-font "DejaVuSans-Bold.ttf") - (music-file "hyperrogue-music.txt")) - ;; Fix font and music paths. - (substitute* "basegraph.cpp" - ((dejavu-font) - (string-append dejavu-dir "/" dejavu-font))) - (substitute* music-file - (("\\*/") - (string-append share-dir "/sounds/"))) - (substitute* "sound.cpp" - (("musicfile = \"\"") - (string-append "musicfile = \"" - share-dir "/" music-file "\""))) - ;; Disable build machine CPU optimizations and warnings treated - ;; as errors. - (substitute* "Makefile" - (("-march=native") "") - (("-Werror") ""))) - #t)) - (replace 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (share-dir (string-append out "/share/hyperrogue"))) - (mkdir-p bin) - (install-file "hyperrogue" bin) - (install-file "hyperrogue-music.txt" share-dir)) - #t)) - (add-after 'install 'install-data - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((data (assoc-ref inputs "hyperrogue-data")) - (out (assoc-ref outputs "out")) - (sounds (string-append out "/share/hyperrogue/sounds")) - (unzip (search-input-file inputs "/bin/unzip"))) - ;; Extract media license information into sounds directory. - (invoke unzip "-j" data - (string-append - "hyperrogue" - (string-join (string-split ,version #\.) "") - "/sounds/credits.txt") "-d" sounds) - ;; Extract sounds and music into sounds directory. - (invoke "unzip" "-j" data - (string-append - "hyperrogue" - (string-join (string-split ,version #\.) "") - "/*.ogg") "-d" sounds))))))) - (native-inputs - `(("hyperrogue-data" - ,(origin - (method url-fetch) - (uri - (string-append - "https://www.roguetemple.com/z/hyper/hyperrogue" - (string-join (string-split version #\.) "") - "-win.zip")) - (sha256 - (base32 - "11yhbia45f1w9z0j67h9nynwjqmvakr9l6rnrmdrdkzin6lvzzj4")))) - ("unzip" ,unzip))) + (list + #:tests? #f ; no check target + #:make-flags #~(list "HYPERROGUE_USE_GLEW=1" + "HYPERROGUE_USE_PNG=1") + #:phases + #~(modify-phases %standard-phases + (add-after 'set-paths 'set-sdl-paths + (lambda* (#:key inputs #:allow-other-keys) + (setenv "CPATH" + (string-append (or (getenv "CPATH") "") ":" + (search-input-directory inputs + "/include/SDL"))))) + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + (let ((share-dir (string-append #$output "/share/hyperrogue/")) + (fonts-dir (dirname + (search-input-file inputs + "DejaVuSans-Bold.ttf")))) + ;; Set fonts and music path. + (substitute* "sysconfig.h" + (("(#define HYPERPATH ).*" _ lead) + (string-append lead "\"" share-dir "\"\n")) + (("(#define HYPERFONTPATH ).*" _ lead) + (string-append lead "\"" fonts-dir "/\"\n"))) + ;; Disable build machine CPU optimizations and warnings treated + ;; as errors. + (substitute* "Makefile" + (("-march=native") "") + (("-Werror") ""))))) + (replace 'install + (lambda _ + (install-file "hyperrogue" (string-append #$output "/bin")) + (let ((share-dir (string-append #$output "/share/hyperrogue/"))) + (install-file "hyperrogue-music.txt" share-dir) + (for-each (lambda (dir) + (copy-recursively dir + (string-append share-dir dir))) + '("music" "sounds")))))))) (inputs - (list font-dejavu glew libpng + (list font-dejavu + glew + libpng (sdl-union (list sdl sdl-gfx sdl-mixer sdl-ttf)))) - (home-page "https://www.roguetemple.com/z/hyper/") + (home-page "https://roguetemple.com/z/hyper") (synopsis "Non-euclidean graphical rogue-like game") (description "HyperRogue is a game in which the player collects treasures and fights @@ -5999,9 +5988,9 @@ are home to particular creatures and may be subject to their own rules of While the game can use ASCII characters to display the the classical rogue symbols, it still needs graphics to render the non-euclidean world.") - (license (list license:bsd-3 ; glew.c, mtrand.* - license:cc-by-sa3.0 ; music - license:cc-by-sa4.0 ; sounds + (license (list license:bsd-3 ; glew.c, mtrand.* + license:cc-by-sa3.0 ; music + license:cc-by-sa4.0 ; sounds license:cc0 license:public-domain ; direntx.*, some sounds license:zlib ; savepng.* diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 8e619d1dba..c49cda3b0b 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -490,6 +490,8 @@ coverages using a SpatiaLite DBMS.") (arguments `(#:configure-flags '("--enable-rttopo=yes") + ;; FIXME: Several tests fail with Proj 9. + #:tests? #f #:phases (modify-phases %standard-phases ;; 1 test is failing, ignore it: diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm index 74eaf74a37..34a703c7e1 100644 --- a/gnu/packages/gnome-xyz.scm +++ b/gnu/packages/gnome-xyz.scm @@ -330,7 +330,7 @@ GNOME Shell.") (define-public gnome-shell-extension-clipboard-indicator (package (name "gnome-shell-extension-clipboard-indicator") - (version "39") + (version "42") (source (origin (method git-fetch) (uri (git-reference @@ -342,7 +342,7 @@ GNOME Shell.") (file-name (git-file-name name version)) (sha256 (base32 - "1kq6bzxki7lwmw690f4qml8pvfwafpqpsfnq2kyjhrp8nh39axwi")) + "0wf2k33pbwjdf8i4y3aw32fgvjbh751qh7504lwhnl02rcq5dc88")) (modules '((guix build utils))) (snippet ;; Remove pre-compiled settings schemas and translations from @@ -449,7 +449,7 @@ easier to keep track of applications running in the background.") (define-public gnome-shell-extension-dash-to-dock (package (name "gnome-shell-extension-dash-to-dock") - (version "71") + (version "73") (source (origin (method git-fetch) (uri (git-reference @@ -458,7 +458,7 @@ easier to keep track of applications running in the background.") version)))) (sha256 (base32 - "12b6ljzs5071zs0kcf5yj4jfhq10b1gnldv0hmbksnqzz5g719wf")) + "1l0isbrgfc8v46l1yc5l4myz7qnlxzyfyiifipp86z9d79d8klzw")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments @@ -487,17 +487,17 @@ faster window switching.") (define-public gnome-shell-extension-gsconnect (package (name "gnome-shell-extension-gsconnect") - (version "48") + (version "50") ; See GNOME Shell supported versions in metadata.json (source (origin (method git-fetch) (uri (git-reference - (url (string-append "https://github.com/andyholmes" + (url (string-append "https://github.com/GSConnect" "/gnome-shell-extension-gsconnect.git")) (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "15agblnm7k1wqnnz6gwhwym992fzqkdz8mkm04805783bx60b8bh")))) + "0vg87fdihs5kp7apgyd32ldjmwzmrxaimsc005yjyy8m3f65sjmr")))) (build-system meson-build-system) (arguments `(#:tests? #f ;; every test fails @@ -568,7 +568,7 @@ faster window switching.") ("gobject-introspection" ,gobject-introspection) ("libxml2" ,libxml2) ("pkg-config" ,pkg-config))) - (home-page "https://github.com/andyholmes/gnome-shell-extension-gsconnect/wiki") + (home-page "https://github.com/GSConnect/gnome-shell-extension-gsconnect/wiki") (synopsis "Connect GNOME Shell with your Android phone") (description "GSConnect is a complete implementation of KDE Connect especially for GNOME Shell, allowing devices to securely share content, like @@ -627,7 +627,7 @@ currently focused application in the top panel of the GNOME shell.") (define-public gnome-shell-extension-just-perfection (package (name "gnome-shell-extension-just-perfection") - (version "20.0") + (version "22.0") (source (origin (method git-fetch) (uri (git-reference @@ -636,7 +636,7 @@ currently focused application in the top panel of the GNOME shell.") (file-name (git-file-name name version)) (sha256 (base32 - "1b1hzibgryn861av2bjnfh5bmzs2bxfcsyl0ardkaj97228xsjzy")))) + "0r4rflppcp05kwhzmh07dzi7znc4kch4nc8mzw61arj3qsfq2qqj")))) (build-system copy-build-system) (arguments `(#:install-plan @@ -678,7 +678,7 @@ certain elements or change animation speeds.") (define-public gnome-shell-extension-dash-to-panel (package (name "gnome-shell-extension-dash-to-panel") - (version "45") + (version "51") (source (origin (method git-fetch) (uri (git-reference @@ -686,7 +686,7 @@ certain elements or change animation speeds.") (commit (string-append "v" version)))) (sha256 (base32 - "05bfd3b1g9zd86pl1rpgfqsmip271lasyfj8phpqf1gdds5yz6f6")) + "103pl77dhafi2ayds5yma2smv3b58zcysnd6vl5m5zavjvk35sz7")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments @@ -714,27 +714,31 @@ into a single panel, similar to that found in KDE Plasma and Windows 7+.") (license license:gpl2+))) (define-public gnome-shell-extension-noannoyance - (package - (name "gnome-shell-extension-noannoyance") - (version "5") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/BjoernDaase/noannoyance") - (commit "e37b5b3c31f577b4698bc6659bc9fec5ea9ac5d4"))) - (sha256 - (base32 - "0fa8l3xlh8kbq07y4385wpb908zm6x53z81q16xlmin97dln32hh")) - (file-name (git-file-name name version)))) - (build-system copy-build-system) - (arguments - '(#:install-plan - '(("." "share/gnome-shell/extensions/noannoyance@daase.net")))) - (synopsis "Remove 'Window is ready' annotation") - (description "One of the many extensions that remove this message. + (let ((revision "1") + (commit "b759d10fd2799bc084007fdd927b62637c3dbd2c")) + (package + (name "gnome-shell-extension-noannoyance") + ;; XXX: There is no version noted anywhere in the source. Thus, infer it + ;; from <https://extensions.gnome.org/extension/2182/noannoyance/>. + (version (git-version "16" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bdaase/noannoyance") + (commit commit))) + (sha256 + (base32 + "0hh7fdqvx54h9j41ia2jl0nq1d5i66k7blw41ya6hkh7201r4anp")) + (file-name (git-file-name name version)))) + (build-system copy-build-system) + (arguments + '(#:install-plan + '(("." "share/gnome-shell/extensions/noannoyance@daase.net")))) + (synopsis "Remove 'Window is ready' annotation") + (description "One of the many extensions that remove this message. It uses ES6 syntax and claims to be more actively maintained than others.") - (home-page "https://extensions.gnome.org/extension/2182/noannoyance/") - (license license:gpl2))) + (home-page "https://extensions.gnome.org/extension/2182/noannoyance/") + (license license:gpl2)))) (define-public gnome-shell-extension-paperwm (package @@ -833,7 +837,7 @@ copies you now want to paste.") (define-public gnome-shell-extension-vertical-overview (package (name "gnome-shell-extension-vertical-overview") - (version "8") + (version "9") (source (origin (method git-fetch) @@ -842,7 +846,7 @@ copies you now want to paste.") (commit (string-append "v" version)))) (sha256 (base32 - "01vz48p3bh7p3ybdyw0s0ahs18lk2kzk9x4ad46s0dnwmmsyhww9")) + "0pkby00rjipj04z68d6i3rr7mzm01dckf2vl3iz6yvbl39602icl")) (file-name (git-file-name name version)) (snippet '(begin (delete-file "schemas/gschemas.compiled"))))) @@ -914,7 +918,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 "15") + (version "21") (source (origin (method git-fetch) @@ -923,7 +927,7 @@ position when the mouse is moved rapidly.") (commit (string-append "v" version)))) (sha256 (base32 - "1gabnqdk11n6345jzv9sc4yjmfrdgg0lsz6zc29gc5afzgirkhm5")) + "07ckfl47pq83nhb77v230zfxlz3imga3s8nn3sr9cq4zxvbkj2r4")) (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 5a2bbe618a..b0a3a1d6d5 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5339,6 +5339,47 @@ possible while still providing features that make playing difficult Sudoku more fun.") (license license:gpl2+))) +(define-public gnome-console + (package + (name "gnome-console") + (version "42.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/gnome-console/" + (version-major version) "/" + "gnome-console-" version ".tar.xz")) + (sha256 + (base32 + "0jbh8g3hmc35fy5fbscqf0831xpg1kv66ci9hykpbia4hz0yc9kx")))) + (build-system meson-build-system) + (arguments + (list #:glib-or-gtk? #t + #:configure-flags #~(list "-Dtests=true" + "-Dnautilus=enabled") + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'patch-nautilus-extension-path + (lambda _ + (substitute* "nautilus/meson.build" + (("'extensions-[0-9.]*'") + "'site-extensions'"))))))) + (native-inputs (list `(,glib "bin") + gettext-minimal + sassc + pkg-config + `(,gtk+ "bin") + desktop-file-utils)) + (inputs (list gtk+ + libhandy + nautilus + vte + libgtop + gsettings-desktop-schemas)) + (home-page "https://gitlab.gnome.org/GNOME/console") + (synopsis "GNOME terminal emulator") + (description + "Console is a simple terminal emulator for GNOME desktop") + (license license:gpl3+))) + (define-public gnome-terminal (package (name "gnome-terminal") @@ -5402,6 +5443,39 @@ It supports several profiles, multiple tabs and implements several keyboard shortcuts.") (license license:gpl3+))) +(define-public gnome-text-editor + (package + (name "gnome-text-editor") + (version "42.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/gnome-text-editor/" + (version-major version) "/" + "gnome-text-editor-" version ".tar.xz")) + (sha256 + (base32 + "1nn53iv2a82kkqkg5jy0bqh2b2wzg7g4a6w8q3qsis5wvj64lvg5")))) + (build-system meson-build-system) + (arguments + (list #:glib-or-gtk? #t)) + (native-inputs (list pkg-config + cmake + gettext-minimal + desktop-file-utils + appstream-glib + `(,glib "bin") + `(,gtk "bin") + itstool)) + (inputs (list gtk gtksourceview libadwaita enchant)) + (home-page "https://gitlab.gnome.org/GNOME/gnome-text-editor") + (synopsis "GNOME text editor") + (description + "GNOME Text Editor is a simple text editor that focuses on session +management. It keeps track of changes and state even if you quit the +application. You can come back to your work even if you've never saved it to a +file.") + (license license:gpl3+))) + (define-public colord-minimal (package (name "colord-minimal") @@ -5477,9 +5551,16 @@ output devices.") (define-public colord (package/inherit colord-minimal (name "colord") + (version "1.4.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.freedesktop.org/software/colord/releases/" + "colord-" version ".tar.xz")) + (sha256 + (base32 "0vwfx06k1in8hci3kdxpc3c0bh81f1vl5bp7favd3rdz4wd661vl")))) (arguments - (substitute-keyword-arguments - (package-arguments colord-minimal) + (substitute-keyword-arguments (package-arguments colord-minimal) ((#:configure-flags flags) #~(begin (use-modules (srfi srfi-1)) @@ -5493,7 +5574,7 @@ output devices.") ((#:phases phases) #~(modify-phases #$phases (add-after 'unpack 'fix-bash-completion-dir - (lambda* (#:key outputs #:allow-other-keys) + (lambda _ (substitute* "data/meson.build" (("bash_completion.get_pkgconfig_variable\ \\('completionsdir'\\)") @@ -5502,7 +5583,7 @@ output devices.") (native-inputs (modify-inputs (package-native-inputs colord-minimal) (append bash-completion - docbook-xsl-ns + docbook-xsl-1.79.1 gtk-doc/stable libxml2 ;for XML_CATALOG_FILES libxslt @@ -7936,7 +8017,7 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") (define-public evolution-data-server (package (name "evolution-data-server") - (version "3.45.3") + (version "3.46.0") (source (origin (method url-fetch) @@ -7944,7 +8025,7 @@ Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1zjg9b77qmfin9m16rqa6cpqp1rh63pg3bcnkh25vmklslwhvq7a")))) + (base32 "1aydynpc9qx2a5xlrvc3xzfq3d3rhf15mqr8m6splgqqb84jiyp5")))) (build-system cmake-build-system) (arguments (list @@ -10170,19 +10251,18 @@ desktop. It supports world clock, stop watch, alarms, and count down timer.") desktop. It supports multiple calendars, month, week and year view.") (license license:gpl3+))) -(define-public gnome-todo +(define-public endeavour (package - (name "gnome-todo") - (version "41.0") + (name "endeavour") + (version "42.0") (source (origin - (method url-fetch) - (uri (string-append "mirror://gnome/sources/" name "/" - (version-major version) "/" - name "-" version ".tar.xz")) + (method git-fetch) + (uri (git-reference + (url "https://gitlab.gnome.org/World/Endeavour") + (commit (string-append "v" version)))) (sha256 (base32 - "1r94880d4khbjhhfnhaba3y3d4hv2bri82rzfzxn27s5iybpqras")) - (patches (search-patches "gnome-todo-libportal.patch")))) + "0d6by7aq8db35zavzvckcxxxcdi6qnv0mkjndhb0syc8ih15dpak")))) (build-system meson-build-system) (arguments (list @@ -10227,6 +10307,9 @@ desktop. It supports multiple calendars, month, week and year view.") to perfectly fit the GNOME desktop.") (license license:gpl3+))) +(define-public gnome-todo + (deprecated-package "gnome-todo" endeavour)) + (define-public gnome-dictionary (package (name "gnome-dictionary") @@ -11420,7 +11503,7 @@ generic enough to work for everyone.") (define-public evolution (package (name "evolution") - (version "3.45.3") + (version "3.46.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/evolution/" @@ -11428,7 +11511,7 @@ generic enough to work for everyone.") "evolution-" version ".tar.xz")) (sha256 (base32 - "1q4fa5l7k0rax39iwn2spmzxcr2l73mj3644lf8j9mnp5w774c96")))) + "0gwi89bqk20ggcxsq7xgd97my0hxx8z82kisml6vz6kbpiv957p0")))) (build-system cmake-build-system) (arguments (list @@ -12066,7 +12149,13 @@ integrate seamlessly with the GNOME desktop.") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'disable-gtk-update-icon-cache (lambda _ - (setenv "DESTDIR" "/")))))) + (setenv "DESTDIR" "/"))) + (add-before 'configure 'set-qemu-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/installed-media.vala" + (("qemu-img") + (search-input-file inputs + "/bin/qemu-img")))))))) (native-inputs (list desktop-file-utils ;for update-desktop-database gettext-minimal @@ -12092,6 +12181,7 @@ integrate seamlessly with the GNOME desktop.") libvirt libvirt-glib libxml2 + qemu-minimal ;for qemu-img sparql-query spice-gtk tracker diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index e05970f98c..dd91f9da1a 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Baptiste Strazzul <bstrazzull@hotmail.fr> +;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -85,6 +86,7 @@ #:use-module (gnu packages assembly) #:use-module (gnu packages rust) #:use-module (gnu packages rust-apps) + #:use-module (gnu packages crates-io) #:use-module (gnu packages llvm) #:use-module (gnu packages nss) #:use-module (gnu packages icu4c) @@ -368,6 +370,169 @@ from collections.abc import MutableSequence")))) (inputs (list icu4c-69 readline zlib)))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Temporary packaging of rust-1.59, pending inclusion in (gnu packages rust) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(define rust-1.58-promise + (delay + (let ((rust-bootstrapped-package + (@@ (gnu packages rust) + rust-bootstrapped-package))) + (rust-bootstrapped-package + rust "1.58.1" "1iq7kj16qfpkx8gvw50d8rf7glbm6s0pj2y1qkrz7mi56vfsyfd8")))) + +(define rust-1.59-promise + (delay + (let ((rust-bootstrapped-package + (@@ (gnu packages rust) + rust-bootstrapped-package))) + (rust-bootstrapped-package + (force rust-1.58-promise) + "1.59.0" "1yc5bwcbmbwyvpfq7zvra78l0r8y3lbv60kbr62fzz2vx2pfxj57")))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Temporary packaging of rust-cbindgen-0.23 and its dependencies +;; follow, pending their inclusion into (gnu packages rust-apps) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(define rust-textwrap-0.15-promise + (delay + (package + (inherit rust-textwrap-0.12) + (name "rust-textwrap") + (version "0.15.0") + (source (origin + (method url-fetch) + (uri (crate-uri "textwrap" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1yw513k61lfiwgqrfvsjw1a5wpvm0azhpjr2kr0jhnq9c56is55i")))) + (arguments + `(#:skip-build? #t + #:cargo-inputs (("rust-hyphenation" ,rust-hyphenation-0.8) + ("rust-smawk" ,rust-smawk-0.3) + ("rust-terminal-size" ,rust-terminal-size-0.1) + ("rust-unicode-linebreak" ,rust-unicode-linebreak-0.1) + ("rust-unicode-width" ,rust-unicode-width-0.1))))))) + +(define rust-clap-lex-0.2 + (package + (name "rust-clap-lex") + (version "0.2.4") + (source (origin + (method url-fetch) + (uri (crate-uri "clap_lex" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1ib1a9v55ybnaws11l63az0jgz5xiy24jkdgsmyl7grcm3sz4l18")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs (("rust-os-str-bytes" ,rust-os-str-bytes-6)))) + (home-page "https://github.com/clap-rs/clap/tree/master/clap_lex") + (synopsis "Minimal, flexible command line parser") + (description "Minimal, flexible command line parser") + (license (list license:expat license:asl2.0)))) + +(define rust-clap-derive-3.2.15-promise + (delay + (package + (inherit rust-clap-derive-3) + (name "rust-clap-derive") + (version "3.2.15") + (source (origin + (method url-fetch) + (uri (crate-uri "clap_derive" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1d2c4vs345fwihkd8cc7m6acbiydcwramkd5mnp36p0a7g6jm9cv")))) + (arguments + `(#:skip-build? #t + #:cargo-inputs (("rust-heck" ,rust-heck-0.4) + ("rust-proc-macro-error" ,rust-proc-macro-error-1) + ("rust-proc-macro2" ,rust-proc-macro2-1) + ("rust-quote" ,rust-quote-1) + ("rust-syn" ,rust-syn-1))))))) + +(define rust-clap-3.2.16-promise + (delay + (package + (inherit rust-clap-3) + (name "rust-clap") + (version "3.2.16") + (source (origin + (method url-fetch) + (uri (crate-uri "clap" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1af06z8z7m3327yz1xvzxfjanclgpvvy3lssb745rig7adkbpnx3")))) + (arguments + `(#:skip-build? #t + #:cargo-inputs (("rust-atty" ,rust-atty-0.2) + ("rust-backtrace" ,rust-backtrace-0.3) + ("rust-bitflags" ,rust-bitflags-1) + ("rust-clap-derive" ,(force rust-clap-derive-3.2.15-promise)) + ("rust-clap-lex" ,rust-clap-lex-0.2) + ("rust-indexmap" ,rust-indexmap-1) + ("rust-once-cell" ,rust-once-cell-1) + ("rust-regex" ,rust-regex-1) + ("rust-strsim" ,rust-strsim-0.10) + ("rust-termcolor" ,rust-termcolor-1) + ("rust-terminal-size" ,rust-terminal-size-0.1) + ("rust-textwrap" ,(force rust-textwrap-0.15-promise)) + ("rust-unicase" ,rust-unicase-2) + ("rust-yaml-rust" ,rust-yaml-rust-0.4))))))) + +(define rust-cbindgen-0.24-promise + (delay + (package + (inherit rust-cbindgen-0.19) + (name "rust-cbindgen") + (version "0.24.3") + (source (origin + (method url-fetch) + (uri (crate-uri "cbindgen" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1yqxqsz2d0cppd8zwihk2139g5gy38wqgl9snj6rnk8gyvnqsdd6")))) + (arguments + `(#:cargo-inputs (("rust-clap" ,(force rust-clap-3.2.16-promise)) + ("rust-heck" ,rust-heck-0.4) + ("rust-indexmap" ,rust-indexmap-1) + ("rust-log" ,rust-log-0.4) + ("rust-proc-macro2" ,rust-proc-macro2-1) + ("rust-quote" ,rust-quote-1) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-syn" ,rust-syn-1) + ("rust-tempfile" ,rust-tempfile-3) + ("rust-toml" ,rust-toml-0.5)) + #:cargo-development-inputs (("rust-serial-test" ,rust-serial-test-0.5))))))) + +;; Bug with IceCat 102 with cbindgen-0.24, see +;; https://bugzilla.mozilla.org/show_bug.cgi?id=1773259#c5 for +;; possible patch (untested) +(define rust-cbindgen-0.23-promise + (delay + (package + (inherit (force rust-cbindgen-0.24-promise)) + (name "rust-cbindgen") + (version "0.23.0") + (source (origin + (method url-fetch) + (uri (crate-uri "cbindgen" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "006rn3fn4njayjxr2vd24g1awssr9i3894nbmfzkybx07j728vav"))))))) + + (define mozilla-compare-locales (origin (method hg-fetch) @@ -395,110 +560,110 @@ from collections.abc import MutableSequence")))) (mozilla-locales ;; sha256 changeset locale ;;--------------------------------------------------------------------------- - ("0f2lkv79gqf46f74905mab3zwyz1532chxlf9d28s548p1hw6lv9" "8312cd2e0777" "ach") - ("1v5jpmd0b04mizm9pjffp4r9q121vpq3yzkkxcgmrcwj4gc5jb2y" "21bf766c19d8" "af") - ("1fqjiq2la543z5pbbvd9kfs0wdc2phmqjbxascfsak854qy1z9f9" "34b6a4f0790d" "an") - ("0pl6j99xnali25glyr3g9fmj67v9vqmhd9k74i97f8q5n4xmv3ym" "513c3e8dac97" "ar") - ("0d1fbk9jcai19pi8b7i4y4r0gscqi1inr9dbahd6h0xbxfwc0zif" "19ca0cd0d1bf" "ast") - ("08f9b63wxxy28zaimjn1ab9w51bvrarc3pp75s7v6kzm5bk1jwic" "44aa0dad7964" "az") - ("15pksy9bgaxcbcnvvp8jwqnqxvvhq9vnljpai6jlh52yyrsglbwi" "5e4499355167" "be") - ("0gdg84jp1i4il4nc6gwaswdhc4ljbb9inyip7vhkng09v3pmwm0h" "98d006107851" "bg") - ("0i6vl0ag74phj4l38cvds1ds3jjdal1c8d7hy6pf4aqrp4ai32mh" "2ca52cbb680a" "bn") - ("16yavargwq8rhipzpmrrvyh68g3a6disz9g5m8xbhxvixhcsi5fr" "ce92556a0a90" "br") - ("1512dzp394pj66i13nsz76qh6fmjpz7r7fmvk8d0h7pjk0d6n0dy" "1c79dabdb120" "bs") - ("19wg0kbr2ihbn4lscsxg9agz04r8bsih4692vfgb6nyn1z8vx2i0" "a22912c01617" "ca") - ("1ixpzjb7caq1d9c7c044rxg3ymxs3hjw120kq85v004jrrb4d9c6" "34bf3fd631d4" "ca-valencia") - ("1abizdmd1c56syni1aanwwrfvmgzz25fmimbj2324bcw801ma9h0" "e2e4ba2c37bc" "cak") - ("0wgrg2wiz1jcj52nd4zl4shfkjhbngfj6p1gw1ywj266hk8g6pvw" "a60792bff6ff" "cs") - ("132f29111jd2z9yxpakkyri80mi2ggnik6zxaxqrp4vlcrd1fxd2" "66369fcad8c7" "cy") - ("04lpic3cxdj1imcwjkbk81avp9dpa1c9b1zcchrr1a4vyy4yfjpy" "af198d43f7d6" "da") - ("1h0rkwlsqls8k1qi1y68plw6xk0z2c5xc2y4nqywiirl71yz7fi5" "816fcef20c05" "de") - ("11lzdyl1h42zb1x2yxiv3r0wih8jy1gr0gzs5d1isdq53sa9cqnq" "962e5a544415" "dsb") - ("146jgrhl41k6zbxg58hxh1s088padsjz7ny8nm59i9i8d00jpv0a" "e7c49fd88463" "el") - ("1qppr44hdnrb1z1igcd1p0w5sy9vpihzilkl2w44y0v0v9rigppv" "5a0e35b08a48" "en-CA") - ("1v2irfms24cx9g5s6r1glmp2c000wi91axyca1pn37s7c01r0n4b" "72f8c5d8305d" "en-GB") - ("1y0rbbmax1w6jy4jacy27xgy4aqnd43izysw8qjwm0qhhfjvf3xh" "40994fca693d" "eo") - ("0kmjvinqpb3y81mqda1qq8k202aa36as9z1z775745bx6sbvkggz" "6cf3c836995d" "es-AR") - ("06rvd1z3l0r7hwnsnw90i0f5j2ysbv6wd3cl64g0bgifmwjk75hi" "8727dda3935e" "es-CL") - ("0gzw1rn9nzpgcrrc10indnbqqpax87azczrfxv8mn5n56j734hc0" "5351aba49895" "es-ES") - ("0bnmgisxfkb6rb12avhipbsj1yr0dyv56qjj9471gnc2ppq7k3c9" "dd834a4af402" "es-MX") - ("1951975h9w813qxanbk3frjz7c8knzx5rvq9i82j9i6x6a3fh6fi" "1f2150796079" "et") - ("1vkb5rd0k6vh9dbll3fhyzg8rfpkxxkd2rxwf66b8l3hg4fqd7f2" "2911663f4a7c" "eu") - ("1cj9zblfp94h86m7zd762bfmcfz0yxc1q4ra35s4wnnlqajarzwj" "04ec3c3bbe92" "fa") - ("1ininsyzaj7xd8ppmklm3zglgw1i0nhdy43iiyva32hb592zxy4m" "0cf866f9bc4e" "ff") - ("1hc308d71iygarrpliv7pxjz49gxwqg10d0pv8j4sbb2pw39bprl" "04a600fc54a4" "fi") - ("02nl54db9130rg59wmrrnh0z726fg5ir1njfcnhxagb4g5b7s69f" "64a3576df276" "fr") - ("1qbby23qlkxjz3vwlk8pd2w1w4cxdff8cq7j0ipk44mijkxkry0c" "c84177dfa254" "fy-NL") - ("1x23pg36ld5qnrmdn149rkl85ia8lmiqbzcac2bm0iqprnjdszii" "31590cffac56" "ga-IE") - ("005fpyr1lvw23dja3yrzx4y8wdih7vx6ljjpisf4pd3k5zai4x81" "ba4f274ac4a1" "gd") - ("0kdlb5q74n0fl5fxfy873s392kry69dmdl8b4gvqdyh5sy66vsqm" "56b41bdcd401" "gl") - ("0v8r8b0nrk1l4xipzhq16klmh0pinzcrma0s0gyhgzqqli6z7aym" "59e2afb65c08" "gn") - ("1grb1lq1f9p5jxgh9v78jl1wswxmsqxkcssm35l30k6y24pglr0m" "33b4409fb615" "gu-IN") - ("172fg55y8l90ix4c8s5x7f8mg6rc7779p6l852cnnkfqjgqa5a5f" "92f9f8238189" "he") - ("0i52nmg0yv3y1y3rkinxcyh51mgjksk7c3jlc8014801m3zvyxj7" "00090f7a2a3f" "hi-IN") - ("074q8n00yq54kzk632dwbs64r0sygvybbvwpd6hbvfpn38lz8hxf" "6e4a3fdc01f3" "hr") - ("1jxiz8zyxbpnwgk5xkwfxlr5f1zfyc88jcsajy8wcaifdkld3cwn" "7fd9bc25e49d" "hsb") - ("0ca11pmkzyd9ccrnrbmk0jrpcb03k88v4zivxblnxj4w03g0hyhq" "ce3b378ce950" "hu") - ("1yszljbh8f7w6lckfw22jwximy3yhis4430lfynfb8lh9nm0fw59" "c91a4a3e8821" "hy-AM") - ("0hhl8b8szqlhjdxhsa81zmgr303kr0jx5d6rzbi840qwf01h12sz" "4f235acc839e" "ia") - ("063yfk3nz3kignbri7r9sr3jwr5p9yyqc6sckgqs94hx6lvc355p" "fface86a34e4" "id") - ("1qszxkgliall4haaq6v0xayxikq43ddcdsn1d4m1mwyp7gdpbry5" "5978ae767b44" "is") - ("1fsfz9iz5pdd5r9ckdal6grvddchsc4r3r8gn4w6f2bja6vpbs05" "0c7d2a0e1304" "it") - ("1phkw0apiicgbw2nq3g392xncw1v2c4yac595h3nchs4q6rp9pd9" "1c923f3e88b9" "ja") - ("1y4gc4l6g72nphhsw4aqhcl80a7wi9qdy61h66c6jc6h14i7278d" "66f700940cfa" "ja-JP-mac") - ("0iqwj0y19zqcdclnn92z490s1g9vh2qr9gmkyfnpsz69llxidx1j" "49b4a7c6bb2c" "ka") - ("111nm2khff0zxnqqfc68rbi3j0b1nx5r4xai7b8yymyv1i0qbsxd" "4854facbd60b" "kab") - ("12p7lg2p6pcqdlb4bqbz5isxilw2r9vb8344sh8zrvv9cb9jq04f" "d2fda8a1b287" "kk") - ("142vpw9npqgc8b5zcg5cy2lh07s4mg8xfbaymg44fb4j3s6agw88" "3a5a1cae9b93" "km") - ("00v1sd2byj2ksxw1020z142cdlxa7ri2v1rzjrhay9l465bj3k8x" "6ed122b33cac" "kn") - ("1s07yhwzpxj0l5vj5lzbvgw115sjx1g2zgbqca5wln95dds39npl" "49bc07645a47" "ko") - ("1b4brfww0w7x1h3ff19i6xi8xq2cb1hxysilira6yq4rb6vhlmly" "93f04df12616" "lij") - ("1i30my0bbgm9z02rxxi7x4vc69bs3bnjs9l2q6jd8xvs1ga3vc7n" "e1f4e0d87509" "lt") - ("1bjh4xlx6562hxq527cqcn4b5295dsdpwn4c4y5ci902nlh6fc8l" "daea4ba4e7f4" "lv") - ("0vig42slcx6bhpisyc1bnyklr95lbv7vqd1ckiywp5c5qzfa9afi" "0c4ca0f4fc17" "mk") - ("10qfnkqi2snmgvm4vcrmp2489klchv3hn2c4rmkdhi5bilfk42jx" "9be8d5951976" "mr") - ("1bkn8ds3fyz710ck4gg4g5vpv23bi573ssm9xbiyl8y59pvbig9b" "0f44d0bcfda2" "ms") - ("1j9af3axbijn0s8y96310mvgaq5a36m0r3ij550jv5bv52862crj" "ccbf0c4355d6" "my") - ("0lspnp9jn3rrgz3djnmc0qrb6ymigvqnr3fb0jbhmf83r4yfs8z1" "a6cf2c6e3594" "nb-NO") - ("1xp2884m9gqm9gaakc747bd9j55wssrh3qsf4y4k02ijh08sfmwb" "c1636a1a7507" "ne-NP") - ("0y1fxp9pxia6x2wxdharh2ynvzdqcmzpya1gdb89pcv5qyrzqgcl" "60ed1c2397a6" "nl") - ("1nbp924p7fp2c76ym71wp34vk96z89i4g2rfgpsi54cgv42a6vgq" "a7f9a3d35875" "nn-NO") - ("1yrmhyvb6skypcyvi6j3py51sdkq9vn35zkryx6rdp8ygqwm1va7" "9ac29828960e" "oc") - ("0rn2414ji1icar627arf5rjwl9r9vxhznbfsyxgrmrf0p6dp72fv" "87720cc32205" "pa-IN") - ("09lam6yaprc8zyisq0pcdj4afpg930c2x3x47gdxnqfyhmcfygs7" "56b2c592ffba" "pl") - ("0mbc1a8wvjs3k928qh0k800d230251i0rw0myhdpc6mk3xjna7i5" "89f1b173c9b1" "pt-BR") - ("1v1qa5slllz78222rlqr4b8k7c8dapmx8d7s5nb90wdffic0zcqy" "27adc5dad781" "pt-PT") - ("04k6h5d7c740lz1hx1vavj6p0fmhgn9mm3nwvk4p9iccy5nw5pmf" "83e2e4833fc3" "rm") - ("0f0hz792wr17mgi6n190dliqx67479aqg3y2ak0jg0fiz2c8qr7p" "69cdc288966f" "ro") - ("17yngj0v30687m7fa1ls0g86vjg8jzxs7bnsca91jpxf3ij44xp6" "03046775600f" "ru") - ("1fvz23nphs9i4gdkx9fcy5ahdk2f879281pchclwi0qlciq7digr" "61ea93a50fff" "sco") - ("0yc1iwqbnpnf1i7yz3zqrx6g8pinc7l53pvbczywfkq3rz6wmmf5" "2b134d24c046" "si") - ("0kizljksn2vn4yw7qlv7c8h2m75f7n9ddg6n6ag3hwxxip83hn4y" "6d69c24dc8db" "sk") - ("1ll936b18wy464623jc5smf3c6dpimh0qwn28a991h7zcw31n3kp" "29e195d1d160" "sl") - ("14w9n994z9gf0wx7vrqisyxkngvhmmnayx8r0vwiq8k7jy81sxlm" "60a3b235fe1d" "son") - ("0z7bcfvq6x6dxf4d4bbjsg36r5npkr89087b0j360ljampk6c2fn" "8588cbc89847" "sq") - ("1fcq9g89lhzckzr2qb6x0w0z6q486n9jdqfi6h70dx8b069b3jfj" "198f7e89f10d" "sr") - ("0ap3m1sbibnaj9s2l139m7l8cc8s2ky4jlxwgzbxdzvqxfz7n954" "b098e2ebc049" "sv-SE") - ("0k93gnwfs5mahb9vz1c65ddcbkav0cwhxnrww3qk7gcmn7q88gqk" "25951b964d5b" "szl") - ("0b0v5pcwvhvhg8vlzy26g3j0m1r8svrpq07hq0q7lxldwlb48phz" "94659c83c9d8" "ta") - ("1v35cl6m3ikzsriq6zkjzjs3p9bhl8zmbp2gl14mga1f1zy4kcah" "eb59646a5d36" "te") - ("0y3r30mjgxngjraqmf5cm00kgqx2pvhbvy8sfxb3fhypv9vda3yr" "10d257301a2d" "th") - ("1inyqk495py20jwjvs4yl0n5ncf3hhb896bs1lwfsgpvbvr5hbq1" "9be6adca0e51" "tl") - ("0vsirjs655cia9n8dys2r84bvg303hcxkk2w6a9j3dkbifq5ymk6" "51354c936bf6" "tr") - ("050x882c0ywil290k4g861njw70ffw2y55dqk3w0kffi972mm909" "d7510f2d01dc" "trs") - ("001ykwxkwibavbi1k42b1hmysb3gmrwcs68zmw96m1vc80p29nz1" "4d1fa878042b" "uk") - ("0lsz6jlmmsqdg47pdx8b1djjvcavi0wlyr0mkpyhjgpginag21zx" "ad3035f28183" "ur") - ("0d3ggm3q76pkpg4n3lz2ji4pbb47n885byqxbp7sk6n9vlgzir7l" "8ea7a5a051db" "uz") - ("0v7d8y6xsr6yf2s1sjxnsjmw0hdnj91f0w2da6spkifb52lmbv6v" "67fe2acb306f" "vi") - ("0j8l09vzqlw4zlkyp6wkh44c5gr1xgbcmnawks1zj7xz02ambwii" "abc22dfb6d84" "xh") - ("1c01pbyswixkjg42714fvfy33b09mpdbf4d8f8kcs88c86jpf07z" "d6d6f9bb6113" "zh-CN") - ("0yq8fqdz862pnlbvfsqfc152rhpsqgncvp8bqkd653mdfv4qkwr4" "0cbdc5f1a048" "zh-TW"))) + ("1y562h0dg33vhhhwfk6jl7xbr67gng21vcf3rpm96zzcgbnf8rjj" "503a7baec899" "ach") + ("1cqixlk9f8p63jz20wzsvnfb7xa82ba725gzdydlwz2axgp09c26" "4e2c7d1ddbed" "af") + ("19r1yhmfxqasyslc8gr9as5w1scscz1xr8iqy9zi4b90fdjzs0ac" "06897e40a7ea" "an") + ("0nfknb1p03j9fgmkwlm1mzdyh10g0l33x34ab39kc072apziyv0n" "9272819b09e2" "ar") + ("11qqblqfffbmkdr5b6mxzq02i8rj1hjq3iy6xv5i5xxy311b3vpb" "f706d22e6910" "ast") + ("0q2p1a437qr2nshdd4934qkv2sblmykiwzir149c8p9m5sjk0dyw" "f5c2a9800add" "az") + ("0gxxm3lv18kj0922bw0g897azc4nkrszm5irgwdkgmkbyr97li83" "98ba7d51484f" "be") + ("10vrbbaabjns824ndya6c09znm815pak2xpvqgjydl3r5qvacx65" "5c79c77311cd" "bg") + ("1il7yyifx5xzj0v2lna315mppl5pk1vi4m9r66hdz1lzc485m1wp" "c80c87ef7193" "bn") + ("1p1ig4v9pczzrnnxzr20r61g7xk85k5lgnxhzgn1rx518p85xrkm" "6a1bcb9851b2" "br") + ("08q33bk9kdvbyc4ib58bsn2b67ki3d2yzskkf5r2n5zlglblksa2" "939779cb58d6" "bs") + ("1bdkywrqah85fh8kfnz163qnc02ffx0a4vlnx5pq1wg9j4f1gznf" "9a45ccf144f1" "ca") + ("0hhmp5dzc0rssykl0b2n9h0vfy4svwhxmhpsr3rcfpbg2s0r5h6l" "4f60e18fc248" "ca-valencia") + ("18phbl9raqsbys9wa8z0gq0h0pw3b55v6ngn67r4373lfc0s9cxv" "b4ef404c7de8" "cak") + ("0147qyw1y97mgqhkb46wblxv61lq2mvvm5n5ihwf49l5cyizi0jg" "f56ef18f05df" "cs") + ("08sbhnsxndlsaijnxndc367qcbrzb29m7bpkcawinz9fg6mz3573" "4f9d92f04f5e" "cy") + ("09cm5kk1sh2a6ws1fj185jrknhfa6n4bhj7nfnr4lsk339n0kvv9" "902503567e30" "da") + ("0r630bki5d4ylicq6lzh6s2mvsq225933szswmm0sap507rj75cm" "6000baf7a412" "de") + ("0749qjsfv3rn94rnci3ydgndw27qlr3w3w97kfwma2gmsf3m3r0p" "4a948952d1f4" "dsb") + ("0yc64i7mpxhs4qlyyh59i2aiz0vpap0bn8slcsk8b71wd1d7cy5m" "153a16a13733" "el") + ("0d4m5ji6ii10yap8y24cxx3fr60ba1jqi10hy3j1cq6ni7hzavga" "7ce17ae529ac" "en-CA") + ("12jzqcfbgdhfm8f2gqp15bdnin62li07jwicjc8ynn4cl9a19xiz" "a25d9eea7c23" "en-GB") + ("0gbb8hfc5yvjah63mapjxm53wxrf98srbrbg43b9g734zfi4n8y5" "4ed3471dad5d" "eo") + ("19lw7zmqx2irjmv5y6r7nncp6nysn06abf10n3dzj5nzgays6sln" "853fe7acb415" "es-AR") + ("0rq4pa380b77rkv6dq7sqx8a8i33jk3vs5rgcl8fv7slqvsw23kd" "921b67bf27a5" "es-CL") + ("1dyxzab9hln5spch66wmfagfzmfdiaxgpq7qlzvdfg98wkqdj25n" "c9a210ea496c" "es-ES") + ("1gwpmfl37wxl7rynqswgj41liljflgxydvljd4zdhk3jzqn605fb" "ddd35183d81c" "es-MX") + ("0c3blniddklapifnjbz03f2frw24jjgwgwn6swl5mwm2z0y6wa9f" "82d23ffaa7d3" "et") + ("05mq2df6n6fr8m5m2xwl0f6n1q3zgjrnk465ldx1nfr9agrhd36c" "13975626d549" "eu") + ("1l1jyqqiy551903j6yzh9ayg1pf26q2hr9h3jj4l51xzp7x4ms2q" "039e1fdb7c71" "fa") + ("091l05y9sggxznv0y11b9zy5qf146p0hb5faw4ix7yn5p5kca2f5" "7bd3722d82de" "ff") + ("1lllwjvmbl5dx44fcvsqg08fbflkc8dx5as9n6nf4xlkzydx6izm" "39808e88c9d1" "fi") + ("10ha955vvyf5vbciricm72kplj9j0s00g2333lmg46jiwi7aviiv" "426d373db6a7" "fr") + ("11zdfk8jvdy1k9z1q162cwapplcbz35l3dq4mv45brdin3v0x8kr" "96cd93d18389" "fy-NL") + ("1l5xr25gmssyachwmfprlnp2v2xj4b0hp8gxrf7fi5bvv9c2fynb" "de3daf7d3f9d" "ga-IE") + ("06h9ijfsn1cgz5fvxxbisk7fvqhgsw99id92575hgyg1p8xb1n69" "f04aea656d9e" "gd") + ("19913i5n8yyfhz9j21krlk7wqsyy89vggxc1m1swv94y2ix8rpaj" "1b8cdb87bf69" "gl") + ("0k5x31bfl2l0r9b5dkn03frm1gd8n6igai7ch2f1kj0skflynwww" "82df570c4241" "gn") + ("03rygnj9xhfvykark7dls117kwhid13ghvrsqiial0vp8m7ymx79" "e2e41d7beaa5" "gu-IN") + ("0vyraplj1x7b5im15anhzdaq03k2gqfyybgklrd4f9ry6msh5jhx" "de724e943805" "he") + ("1zqps586jrgxpf7xx2l3qw3ch3fr31r9a25y861fpxrpvh7ygw7g" "898598e1a5c6" "hi-IN") + ("0czq68l3qdhdc0mgazlrh8x83a6d5qrjwgjv8xvsmmzi7h68ww0l" "2711d1515af0" "hr") + ("1wwvrnm38gk2rnw4vmcranh8hk61gjcj9292pck3ckiv6mq7kd4s" "03e02f3d0676" "hsb") + ("0yvgdxlbyhhg3lk43hxx9gx66rcm7gaj02zzzx5zni8dhvlk2v6m" "d423ada9dc00" "hu") + ("1kjm7bg4990jhfbxwc38r4lqm2fbcxc82nc2d4qkqwikr4aah4b9" "06836af0bd6e" "hy-AM") + ("1dla7r3snvagb7m985xxqyi7gl498cr5xsz8msw0zpg6xmi05rlx" "299bd950d538" "ia") + ("0w8w9xn93akir7nqcp5iwr3kqvba5gbirg7gmzlzg7mgrhw8pcsa" "dee087477b99" "id") + ("10iakv1c1d20ihxg1s7c3zc1zfw18vr2kspcw7bk5k02rmrffgcn" "320095d063ed" "is") + ("1xn5pa3rc7l6k2migm3c0dx71q1hk7mjls045xpv9cy8gvirnj94" "4722680fb5bf" "it") + ("0va9zfj3wqh1yvbgh3x808yvdyxkg780vazjg887wbxpfk1n6hxa" "cb3cfe294621" "ja") + ("0qvjc3fhk6jg2c3g6mymmnslg1rkkxmv9gi3whf2bc5mzfgyc5zw" "7efe92bd7780" "ja-JP-mac") + ("0zfiwwz0axbd219ar32c7a6b8h816sf04ajx6jl74s5kyij79y82" "4c1fe3a18da9" "ka") + ("1aiik4758r5df76q2a132y5fjdjrsxshjylk7irwsr7yy0c7f63g" "acdf76048aa0" "kab") + ("0icxh4sgv6m1yykycb9d9c43k3r6w02f9c6jr04wm8hvqq5icfl5" "9b418ff7936b" "kk") + ("1cqlhggf46lr7w399k7qb7a1hc56f32w1dy26i2racpppzza5plc" "9771ada0b5f8" "km") + ("0p04irnb7x7y37m6lz388x9dynn8rnk000avpp296barajnhs5i8" "645aa37a2112" "kn") + ("1lbc1fxr5i0ccymlsd8axz3633cqggg5k8ak5yqwi704g7kvv9g2" "1cd68952d119" "ko") + ("11b55bxg73zqfdn5gy9nn5imab2mv0hxr603whggp7vymllgb7kb" "26bb83959bfe" "lij") + ("15jsijm6d26i0105gz0f7sh2yh2v4pmw4j95cwkdrb1d8m935jlz" "b9829891f153" "lt") + ("0liwwv13fgyw97nizhsyy53xrbf8jks5ics7qkkxfccawjrg5rlb" "e5f09d03d959" "lv") + ("0w420yf3hdnl7dp9mn9ghc20cq79k24fn9adn3syk723ppl6mkb0" "7884845e94f3" "mk") + ("13wkr7rgqsv9w3d9w7k8lnxdzgfixsq4bmc27zsyc770l6062ml6" "030db7412202" "mr") + ("06nsadcnxx0ssdp67x47dj9crihn1ycgd5mwvn5m7lkb97r4ch9f" "40a7703e875c" "ms") + ("0mlnjdzck6dp9p59ajj3sr63r36fn0qi8r9scrqrqcisgfclw9sg" "daca40056531" "my") + ("0z1hgx9d5i9w20f9k9azzng1y3lmm5d6hdjkj7rf6r5710bhhzh5" "664bd049e105" "nb-NO") + ("1466qvrs13g2iix1k35cknb2pia9b66li2ncvdyqf0jsd92z9k8x" "eaa6ae781ba0" "ne-NP") + ("0jgmz2lkzj0aspd9mabygzic6li5s2b25y0r6vjg8mv3jm5pi86j" "5ef8f1c9739e" "nl") + ("1m46x0h20vdfbzjxlz0ac43dbaq40xnyldr2yzbf7pk5di9pzxa6" "f08e15466d5d" "nn-NO") + ("0r3zvihqh6iya3z1qm7if0m3zfgf81s9qp7x7qc701h2q357wkgf" "6712c0e12ec2" "oc") + ("102j89jm28c223yhhkrj76xxj4kmy58hcs2r0jn15xa1qkqv1fdk" "8f36cc819e00" "pa-IN") + ("1j9za6s0i46abn8dsrlkpck3qxxw35rhfcg1xs1vp8sc4ckg8qwi" "c3b0c1c02b94" "pl") + ("1k9lbsvckpwl4xax8kxp5yxsfkspq2mhqm77jh5nl9aw88dsn55b" "cc32bf9630fe" "pt-BR") + ("0f0jyvbn2sa5m66wqdzh4607g4gd0270xq37ipd9ls52b4764bd8" "5478d7242086" "pt-PT") + ("19znkkialh1d4np7qcp80xkagrf1j2xah2s1xxzsh854p3d30zs7" "dd934a76fb01" "rm") + ("1xn26r8g8zzkb5myfgmnjbk8k4i0brkvbrvnhp7k5nkrnsin25di" "d57ab3dee73d" "ro") + ("04rhkxlmpp5pyzw85ldbfkmiigqr2p9y5cbns5dqs6sz1633ccxp" "7aea98f33a20" "ru") + ("1zzkkxl7ayxh5gx9snyvp5czflsvi77hp48li613h3c2fii4n9qk" "7c986f4b5044" "sco") + ("1219i0ghhqj3s1i0rm68jjkvivh6y40938wav7z4ifck527sq6r1" "bc9e55d4e3ea" "si") + ("05i5p3n3a6hgl6rf10yjs4vag7y3rn2jwgxsddcdcqiv6405zn81" "8814afd7f67e" "sk") + ("1wcqdbm1py1ldq6cj2g201m715nql79r6szr71jvrxacb711c62a" "20013dc06e96" "sl") + ("0g2izkaa4ipwgwyhy77ciyrxxpf4pxzj9mjqvxriy5prmkhm3zjs" "d86d5d2b6eef" "son") + ("1cc99m6srjg8698dkc3il70crby0mdv43v3ijwy069k4w50hyjjg" "49bb5fae5d9b" "sq") + ("13kfssq4fhq9mb36as6sxiaffl17qyg1wdw8kpz3ilqm86bsjrgl" "d6a0ab79b06f" "sr") + ("1wx9snbm0431q97i0q0nv4wbsqcv9nhllwfr88crlp7bfj5w8czw" "4bab04993da3" "sv-SE") + ("0laglkfl8ml0ip5vmm3z2q790hgwax9gfqwq3wm68a2nnsyck8fw" "4b3316c4aa48" "szl") + ("15pnlic4q7m48y0mc5yh8w5yscjwzx0mmfrbj3f2b9jxxa44nx4h" "48c7aab86db8" "ta") + ("16qar5y0wns75ryi8bfv7yln3mjsyn7qi4345zcniz3ydgkczh46" "7bbb3dac8f47" "te") + ("112g7x8h0qz16r5faam386x4a0rgwd4zy02d5agmg9m0kbficdfx" "009fd0852454" "th") + ("1l80kh9byqxnz5vkz357rb39g4y9sgn9pr0v29ywp6d009img1qg" "dad9caecd7a9" "tl") + ("1nalvjlxxsa9wldhhdb93bgfc7dl084xayh7i7mgg93yjgrym93x" "0c48082d37cd" "tr") + ("0wkxqcfgsra2ljws28kiwajv73w9aa8drsc4fqlg9krbicnjl2n8" "f6d105faedcc" "trs") + ("18jf4ysrfv3635fyxc1vwr970dr2r05bl3h8v599pwp2g7jzyjpm" "e1011388a55e" "uk") + ("1ihmksjsz54yii23qda5iv8cxrj9144afy75hzhvfi6m182kj4h8" "c4e927eab511" "ur") + ("0d42dhfa2vcw24wsvwf95pw20np0pz8c0is6p4307n981n8s207y" "7063df917cb3" "uz") + ("04khnkrg8css55hyna01jqay9c2ppxk5znbx2zj9i25knhvvx1lq" "1753054e6ab8" "vi") + ("0fi5kxn78xp7s15svkqlf4748j4pzxh941nm52n6kbbrhyi3qcqn" "93bc595dc32e" "xh") + ("0jg676vd37wqgzjnm0yynj7xrvm6fsgdwg296h78wnyc33zc4ads" "edd4e468bc31" "zh-CN") + ("1y4wldm3z95mfjlficp994jyqg0lj07wi35b79dy1s8ljy3jilil" "0bad1f7d2b2d" "zh-TW"))) ;; XXXX: Workaround 'snippet' limitations. (define computed-origin-method (@@ (guix packages) computed-origin-method)) -(define %icecat-version "91.13.0-guix0-preview1") -(define %icecat-build-id "20220823000000") ;must be of the form YYYYMMDDhhmmss +(define %icecat-version "102.3.0-guix0-preview1") +(define %icecat-build-id "20220920000000") ;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' @@ -520,11 +685,11 @@ from collections.abc import MutableSequence")))) "firefox-" upstream-firefox-version ".source.tar.xz")) (sha256 (base32 - "0qh7j960wdp5zcfqhkj8ki47spp9i9ms12xx0v0kxvmmw36jpgjk")))) + "0nmm861p4zakdvi9lj0ac8dkf9v17250rzcmrx1f6r7rvjv273ih")))) - (upstream-icecat-base-version "91.13.0") ; maybe older than base-version + (upstream-icecat-base-version "102.3.0") ; maybe older than base-version ;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version)) - (gnuzilla-commit "4a87716686104266a9cccc2d83cc249e312f3673") + (gnuzilla-commit "f82b5b40943fe7723486fadccb48d454ee3e9dad") (gnuzilla-source (origin (method git-fetch) @@ -536,13 +701,10 @@ from collections.abc import MutableSequence")))) (string-take gnuzilla-commit 8))) (sha256 (base32 - "070j78al04xzchfl5xj1w300hmw17a3iqcw7mnlxf6b8rqlgj20p")))) + "1d7lfvwi9mvaxcfiqcgch3idhyxpdf56r9b71r54yiifv6xlr7x9")))) ;; 'search-patch' returns either a valid file name or #f, so wrap it ;; in 'assume-valid-file-name' to avoid 'local-file' warnings. - (gnuzilla-fixes-patch - (local-file (assume-valid-file-name - (search-patch "icecat-use-older-reveal-hidden-html.patch")))) (makeicecat-patch (local-file (assume-valid-file-name (search-patch "icecat-makeicecat.patch"))))) @@ -599,8 +761,6 @@ from collections.abc import MutableSequence")))) (with-directory-excursion "/tmp/gnuzilla" (make-file-writable "makeicecat") (invoke "patch" "--force" "--no-backup-if-mismatch" - "-p1" "--input" #+gnuzilla-fixes-patch) - (invoke "patch" "--force" "--no-backup-if-mismatch" "-p1" "--input" #+makeicecat-patch) (patch-shebang "makeicecat") (substitute* "makeicecat" @@ -715,7 +875,7 @@ from collections.abc import MutableSequence")))) libffi ffmpeg libvpx - icu4c + icu4c-71 ; TODO: Change to 'icu4c' when its version is >= 71. pixman pulseaudio mesa @@ -739,18 +899,19 @@ from collections.abc import MutableSequence")))) ;; a tarball suitable for compilation on any system that IceCat supports. ;; (Bug fixes and security fixes, however, should go in 'source'). (list - ;; XXX TODO: Adapt these patches to IceCat 91. + ;; XXX TODO: Adapt these patches to IceCat 102. ;; ("icecat-avoid-bundled-libraries.patch" ;; ,(search-patch "icecat-avoid-bundled-libraries.patch")) ;; ("icecat-use-system-graphite2+harfbuzz.patch" ;; ,(search-patch "icecat-use-system-graphite2+harfbuzz.patch")) ;; ("icecat-use-system-media-libs.patch" ;; ,(search-patch "icecat-use-system-media-libs.patch")) - rust - `(,rust "cargo") - rust-cbindgen-0.19 - llvm-11 - clang-11 + ;; TODO: Change the following lines to use 'rust' when it's >= 1.59. + (force rust-1.59-promise) + `(,(force rust-1.59-promise) "cargo") + (force rust-cbindgen-0.23-promise) + llvm + clang perl node python-wrapper @@ -807,6 +968,9 @@ from collections.abc import MutableSequence")))) ;; Hack to work around missing "unofficial" branding in icecat. "--enable-official-branding" + ;; TODO: Add support for wasm sandboxed libraries. + "--without-wasm-sandboxed-libraries" + ;; Avoid bundled libraries. "--with-system-jpeg" ;must be libjpeg-turbo "--with-system-png" ;must be libpng-apng @@ -970,6 +1134,13 @@ from collections.abc import MutableSequence")))) "servo" "security/manager/ssl" "build"))))) + (add-after 'patch-cargo-checksums 'remove-cargo-frozen-flag + (lambda _ + ;; Remove --frozen flag from cargo invokation, otherwise it'll + ;; complain that it's not able to change Cargo.lock. + ;; https://bugzilla.mozilla.org/show_bug.cgi?id=1726373 + (substitute* "build/RunCbindgen.py" + (("\"--frozen\",") "")))) (delete 'bootstrap) (replace 'configure ;; configure does not work followed by both "SHELL=..." and @@ -991,10 +1162,18 @@ from collections.abc import MutableSequence")))) (setenv "LDFLAGS" (string-append "-Wl,-rpath=" #$output "/lib/icecat")) - (setenv "MACH_USE_SYSTEM_PYTHON" "1") - (setenv "MOZ_NOSPAM" "1") + (setenv "MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE" "system") (setenv "MOZ_BUILD_DATE" #$%icecat-build-id) ; avoid timestamp + ;; XXX TODO: Fix this to work on systems other than x86_64-linux. + (setenv "GUIX_PYTHONPATH" + (string-append (getcwd) + "/obj-x86_64-pc-linux-gnu/_virtualenvs/build")) + + (mkdir ".mozbuild") + (setenv "MOZBUILD_STATE_PATH" + (string-append (getcwd) "/.mozbuild")) + (format #t "build directory: ~s~%" (getcwd)) (format #t "configure flags: ~s~%" flags) @@ -1069,7 +1248,9 @@ from collections.abc import MutableSequence")))) (("IceCat") "GNU IceCat") (("Icon=.*") "Icon=icecat\n") (("NewWindow") "new-window") - (("NewPrivateWindow") "new-private-window")) + (("NewPrivateWindow") "new-private-window") + (("StartupNotify=true") + "StartupNotify=true\nStartupWMClass=Navigator")) (install-file desktop-file applications)))) (add-after 'install-desktop-entry 'install-icons (lambda _ @@ -1093,7 +1274,7 @@ features built-in privacy-protecting features. This package also includes the @command{geckodriver} command, which can be useful for automated web testing. -WARNING: IceCat 91 has not yet been released by the upstream IceCat project. +WARNING: IceCat 102 has not yet been released by the upstream IceCat project. This is a preview release, and does not currently meet the privacy-respecting standards of the IceCat project.") (license license:mpl2.0) ;and others, see toolkit/content/license.html @@ -1102,13 +1283,293 @@ standards of the IceCat project.") (cpe-name . "firefox_esr") (cpe-version . ,(first (string-split version #\-))))))) +(define all-mozilla-91-locales + (mozilla-locales + ;; sha256 changeset locale + ;;--------------------------------------------------------------------------- + ("0f2lkv79gqf46f74905mab3zwyz1532chxlf9d28s548p1hw6lv9" "8312cd2e0777" "ach") + ("1v5jpmd0b04mizm9pjffp4r9q121vpq3yzkkxcgmrcwj4gc5jb2y" "21bf766c19d8" "af") + ("1fqjiq2la543z5pbbvd9kfs0wdc2phmqjbxascfsak854qy1z9f9" "34b6a4f0790d" "an") + ("0pl6j99xnali25glyr3g9fmj67v9vqmhd9k74i97f8q5n4xmv3ym" "513c3e8dac97" "ar") + ("0d1fbk9jcai19pi8b7i4y4r0gscqi1inr9dbahd6h0xbxfwc0zif" "19ca0cd0d1bf" "ast") + ("08f9b63wxxy28zaimjn1ab9w51bvrarc3pp75s7v6kzm5bk1jwic" "44aa0dad7964" "az") + ("15pksy9bgaxcbcnvvp8jwqnqxvvhq9vnljpai6jlh52yyrsglbwi" "5e4499355167" "be") + ("0gdg84jp1i4il4nc6gwaswdhc4ljbb9inyip7vhkng09v3pmwm0h" "98d006107851" "bg") + ("0i6vl0ag74phj4l38cvds1ds3jjdal1c8d7hy6pf4aqrp4ai32mh" "2ca52cbb680a" "bn") + ("16yavargwq8rhipzpmrrvyh68g3a6disz9g5m8xbhxvixhcsi5fr" "ce92556a0a90" "br") + ("1512dzp394pj66i13nsz76qh6fmjpz7r7fmvk8d0h7pjk0d6n0dy" "1c79dabdb120" "bs") + ("19wg0kbr2ihbn4lscsxg9agz04r8bsih4692vfgb6nyn1z8vx2i0" "a22912c01617" "ca") + ("1ixpzjb7caq1d9c7c044rxg3ymxs3hjw120kq85v004jrrb4d9c6" "34bf3fd631d4" "ca-valencia") + ("1abizdmd1c56syni1aanwwrfvmgzz25fmimbj2324bcw801ma9h0" "e2e4ba2c37bc" "cak") + ("0wgrg2wiz1jcj52nd4zl4shfkjhbngfj6p1gw1ywj266hk8g6pvw" "a60792bff6ff" "cs") + ("132f29111jd2z9yxpakkyri80mi2ggnik6zxaxqrp4vlcrd1fxd2" "66369fcad8c7" "cy") + ("04lpic3cxdj1imcwjkbk81avp9dpa1c9b1zcchrr1a4vyy4yfjpy" "af198d43f7d6" "da") + ("1h0rkwlsqls8k1qi1y68plw6xk0z2c5xc2y4nqywiirl71yz7fi5" "816fcef20c05" "de") + ("11lzdyl1h42zb1x2yxiv3r0wih8jy1gr0gzs5d1isdq53sa9cqnq" "962e5a544415" "dsb") + ("146jgrhl41k6zbxg58hxh1s088padsjz7ny8nm59i9i8d00jpv0a" "e7c49fd88463" "el") + ("1qppr44hdnrb1z1igcd1p0w5sy9vpihzilkl2w44y0v0v9rigppv" "5a0e35b08a48" "en-CA") + ("1v2irfms24cx9g5s6r1glmp2c000wi91axyca1pn37s7c01r0n4b" "72f8c5d8305d" "en-GB") + ("1y0rbbmax1w6jy4jacy27xgy4aqnd43izysw8qjwm0qhhfjvf3xh" "40994fca693d" "eo") + ("0kmjvinqpb3y81mqda1qq8k202aa36as9z1z775745bx6sbvkggz" "6cf3c836995d" "es-AR") + ("06rvd1z3l0r7hwnsnw90i0f5j2ysbv6wd3cl64g0bgifmwjk75hi" "8727dda3935e" "es-CL") + ("0gzw1rn9nzpgcrrc10indnbqqpax87azczrfxv8mn5n56j734hc0" "5351aba49895" "es-ES") + ("0bnmgisxfkb6rb12avhipbsj1yr0dyv56qjj9471gnc2ppq7k3c9" "dd834a4af402" "es-MX") + ("1951975h9w813qxanbk3frjz7c8knzx5rvq9i82j9i6x6a3fh6fi" "1f2150796079" "et") + ("1vkb5rd0k6vh9dbll3fhyzg8rfpkxxkd2rxwf66b8l3hg4fqd7f2" "2911663f4a7c" "eu") + ("1cj9zblfp94h86m7zd762bfmcfz0yxc1q4ra35s4wnnlqajarzwj" "04ec3c3bbe92" "fa") + ("1ininsyzaj7xd8ppmklm3zglgw1i0nhdy43iiyva32hb592zxy4m" "0cf866f9bc4e" "ff") + ("1hc308d71iygarrpliv7pxjz49gxwqg10d0pv8j4sbb2pw39bprl" "04a600fc54a4" "fi") + ("02nl54db9130rg59wmrrnh0z726fg5ir1njfcnhxagb4g5b7s69f" "64a3576df276" "fr") + ("1qbby23qlkxjz3vwlk8pd2w1w4cxdff8cq7j0ipk44mijkxkry0c" "c84177dfa254" "fy-NL") + ("1x23pg36ld5qnrmdn149rkl85ia8lmiqbzcac2bm0iqprnjdszii" "31590cffac56" "ga-IE") + ("005fpyr1lvw23dja3yrzx4y8wdih7vx6ljjpisf4pd3k5zai4x81" "ba4f274ac4a1" "gd") + ("0kdlb5q74n0fl5fxfy873s392kry69dmdl8b4gvqdyh5sy66vsqm" "56b41bdcd401" "gl") + ("0v8r8b0nrk1l4xipzhq16klmh0pinzcrma0s0gyhgzqqli6z7aym" "59e2afb65c08" "gn") + ("1grb1lq1f9p5jxgh9v78jl1wswxmsqxkcssm35l30k6y24pglr0m" "33b4409fb615" "gu-IN") + ("172fg55y8l90ix4c8s5x7f8mg6rc7779p6l852cnnkfqjgqa5a5f" "92f9f8238189" "he") + ("0i52nmg0yv3y1y3rkinxcyh51mgjksk7c3jlc8014801m3zvyxj7" "00090f7a2a3f" "hi-IN") + ("074q8n00yq54kzk632dwbs64r0sygvybbvwpd6hbvfpn38lz8hxf" "6e4a3fdc01f3" "hr") + ("1jxiz8zyxbpnwgk5xkwfxlr5f1zfyc88jcsajy8wcaifdkld3cwn" "7fd9bc25e49d" "hsb") + ("0ca11pmkzyd9ccrnrbmk0jrpcb03k88v4zivxblnxj4w03g0hyhq" "ce3b378ce950" "hu") + ("1yszljbh8f7w6lckfw22jwximy3yhis4430lfynfb8lh9nm0fw59" "c91a4a3e8821" "hy-AM") + ("0hhl8b8szqlhjdxhsa81zmgr303kr0jx5d6rzbi840qwf01h12sz" "4f235acc839e" "ia") + ("063yfk3nz3kignbri7r9sr3jwr5p9yyqc6sckgqs94hx6lvc355p" "fface86a34e4" "id") + ("1qszxkgliall4haaq6v0xayxikq43ddcdsn1d4m1mwyp7gdpbry5" "5978ae767b44" "is") + ("1fsfz9iz5pdd5r9ckdal6grvddchsc4r3r8gn4w6f2bja6vpbs05" "0c7d2a0e1304" "it") + ("1phkw0apiicgbw2nq3g392xncw1v2c4yac595h3nchs4q6rp9pd9" "1c923f3e88b9" "ja") + ("1y4gc4l6g72nphhsw4aqhcl80a7wi9qdy61h66c6jc6h14i7278d" "66f700940cfa" "ja-JP-mac") + ("0iqwj0y19zqcdclnn92z490s1g9vh2qr9gmkyfnpsz69llxidx1j" "49b4a7c6bb2c" "ka") + ("111nm2khff0zxnqqfc68rbi3j0b1nx5r4xai7b8yymyv1i0qbsxd" "4854facbd60b" "kab") + ("12p7lg2p6pcqdlb4bqbz5isxilw2r9vb8344sh8zrvv9cb9jq04f" "d2fda8a1b287" "kk") + ("142vpw9npqgc8b5zcg5cy2lh07s4mg8xfbaymg44fb4j3s6agw88" "3a5a1cae9b93" "km") + ("00v1sd2byj2ksxw1020z142cdlxa7ri2v1rzjrhay9l465bj3k8x" "6ed122b33cac" "kn") + ("1s07yhwzpxj0l5vj5lzbvgw115sjx1g2zgbqca5wln95dds39npl" "49bc07645a47" "ko") + ("1b4brfww0w7x1h3ff19i6xi8xq2cb1hxysilira6yq4rb6vhlmly" "93f04df12616" "lij") + ("1i30my0bbgm9z02rxxi7x4vc69bs3bnjs9l2q6jd8xvs1ga3vc7n" "e1f4e0d87509" "lt") + ("1bjh4xlx6562hxq527cqcn4b5295dsdpwn4c4y5ci902nlh6fc8l" "daea4ba4e7f4" "lv") + ("0vig42slcx6bhpisyc1bnyklr95lbv7vqd1ckiywp5c5qzfa9afi" "0c4ca0f4fc17" "mk") + ("10qfnkqi2snmgvm4vcrmp2489klchv3hn2c4rmkdhi5bilfk42jx" "9be8d5951976" "mr") + ("1bkn8ds3fyz710ck4gg4g5vpv23bi573ssm9xbiyl8y59pvbig9b" "0f44d0bcfda2" "ms") + ("1j9af3axbijn0s8y96310mvgaq5a36m0r3ij550jv5bv52862crj" "ccbf0c4355d6" "my") + ("0lspnp9jn3rrgz3djnmc0qrb6ymigvqnr3fb0jbhmf83r4yfs8z1" "a6cf2c6e3594" "nb-NO") + ("1xp2884m9gqm9gaakc747bd9j55wssrh3qsf4y4k02ijh08sfmwb" "c1636a1a7507" "ne-NP") + ("0y1fxp9pxia6x2wxdharh2ynvzdqcmzpya1gdb89pcv5qyrzqgcl" "60ed1c2397a6" "nl") + ("1nbp924p7fp2c76ym71wp34vk96z89i4g2rfgpsi54cgv42a6vgq" "a7f9a3d35875" "nn-NO") + ("1yrmhyvb6skypcyvi6j3py51sdkq9vn35zkryx6rdp8ygqwm1va7" "9ac29828960e" "oc") + ("0rn2414ji1icar627arf5rjwl9r9vxhznbfsyxgrmrf0p6dp72fv" "87720cc32205" "pa-IN") + ("09lam6yaprc8zyisq0pcdj4afpg930c2x3x47gdxnqfyhmcfygs7" "56b2c592ffba" "pl") + ("0mbc1a8wvjs3k928qh0k800d230251i0rw0myhdpc6mk3xjna7i5" "89f1b173c9b1" "pt-BR") + ("1v1qa5slllz78222rlqr4b8k7c8dapmx8d7s5nb90wdffic0zcqy" "27adc5dad781" "pt-PT") + ("04k6h5d7c740lz1hx1vavj6p0fmhgn9mm3nwvk4p9iccy5nw5pmf" "83e2e4833fc3" "rm") + ("0f0hz792wr17mgi6n190dliqx67479aqg3y2ak0jg0fiz2c8qr7p" "69cdc288966f" "ro") + ("17yngj0v30687m7fa1ls0g86vjg8jzxs7bnsca91jpxf3ij44xp6" "03046775600f" "ru") + ("1fvz23nphs9i4gdkx9fcy5ahdk2f879281pchclwi0qlciq7digr" "61ea93a50fff" "sco") + ("0yc1iwqbnpnf1i7yz3zqrx6g8pinc7l53pvbczywfkq3rz6wmmf5" "2b134d24c046" "si") + ("0kizljksn2vn4yw7qlv7c8h2m75f7n9ddg6n6ag3hwxxip83hn4y" "6d69c24dc8db" "sk") + ("1ll936b18wy464623jc5smf3c6dpimh0qwn28a991h7zcw31n3kp" "29e195d1d160" "sl") + ("14w9n994z9gf0wx7vrqisyxkngvhmmnayx8r0vwiq8k7jy81sxlm" "60a3b235fe1d" "son") + ("0z7bcfvq6x6dxf4d4bbjsg36r5npkr89087b0j360ljampk6c2fn" "8588cbc89847" "sq") + ("1fcq9g89lhzckzr2qb6x0w0z6q486n9jdqfi6h70dx8b069b3jfj" "198f7e89f10d" "sr") + ("0ap3m1sbibnaj9s2l139m7l8cc8s2ky4jlxwgzbxdzvqxfz7n954" "b098e2ebc049" "sv-SE") + ("0k93gnwfs5mahb9vz1c65ddcbkav0cwhxnrww3qk7gcmn7q88gqk" "25951b964d5b" "szl") + ("0b0v5pcwvhvhg8vlzy26g3j0m1r8svrpq07hq0q7lxldwlb48phz" "94659c83c9d8" "ta") + ("1v35cl6m3ikzsriq6zkjzjs3p9bhl8zmbp2gl14mga1f1zy4kcah" "eb59646a5d36" "te") + ("0y3r30mjgxngjraqmf5cm00kgqx2pvhbvy8sfxb3fhypv9vda3yr" "10d257301a2d" "th") + ("1inyqk495py20jwjvs4yl0n5ncf3hhb896bs1lwfsgpvbvr5hbq1" "9be6adca0e51" "tl") + ("0vsirjs655cia9n8dys2r84bvg303hcxkk2w6a9j3dkbifq5ymk6" "51354c936bf6" "tr") + ("050x882c0ywil290k4g861njw70ffw2y55dqk3w0kffi972mm909" "d7510f2d01dc" "trs") + ("001ykwxkwibavbi1k42b1hmysb3gmrwcs68zmw96m1vc80p29nz1" "4d1fa878042b" "uk") + ("0lsz6jlmmsqdg47pdx8b1djjvcavi0wlyr0mkpyhjgpginag21zx" "ad3035f28183" "ur") + ("0d3ggm3q76pkpg4n3lz2ji4pbb47n885byqxbp7sk6n9vlgzir7l" "8ea7a5a051db" "uz") + ("0v7d8y6xsr6yf2s1sjxnsjmw0hdnj91f0w2da6spkifb52lmbv6v" "67fe2acb306f" "vi") + ("0j8l09vzqlw4zlkyp6wkh44c5gr1xgbcmnawks1zj7xz02ambwii" "abc22dfb6d84" "xh") + ("1c01pbyswixkjg42714fvfy33b09mpdbf4d8f8kcs88c86jpf07z" "d6d6f9bb6113" "zh-CN") + ("0yq8fqdz862pnlbvfsqfc152rhpsqgncvp8bqkd653mdfv4qkwr4" "0cbdc5f1a048" "zh-TW"))) + +(define %icecat-91-version "91.13.0-guix0-preview1") + +(define icecat-91-source + (let* ((base-version (first (string-split %icecat-91-version #\-))) + + (major-version (first (string-split base-version #\.))) + (minor-version (second (string-split base-version #\.))) + (sub-version (third (string-split base-version #\.))) + + (upstream-firefox-version (string-append base-version "esr")) + (upstream-firefox-source + (origin + (method url-fetch) + (uri (string-append + "https://ftp.mozilla.org/pub/firefox/releases/" + upstream-firefox-version "/source/" + "firefox-" upstream-firefox-version ".source.tar.xz")) + (sha256 + (base32 + "0qh7j960wdp5zcfqhkj8ki47spp9i9ms12xx0v0kxvmmw36jpgjk")))) + + (upstream-icecat-base-version "91.13.0") ; maybe older than base-version + ;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version)) + (gnuzilla-commit "4a87716686104266a9cccc2d83cc249e312f3673") + (gnuzilla-source + (origin + (method git-fetch) + (uri (git-reference + (url "git://git.savannah.gnu.org/gnuzilla.git") + (commit gnuzilla-commit))) + (file-name (git-file-name "gnuzilla" + ;;upstream-icecat-base-version + (string-take gnuzilla-commit 8))) + (sha256 + (base32 + "070j78al04xzchfl5xj1w300hmw17a3iqcw7mnlxf6b8rqlgj20p")))) + + ;; 'search-patch' returns either a valid file name or #f, so wrap it + ;; in 'assume-valid-file-name' to avoid 'local-file' warnings. + (gnuzilla-fixes-patch + (local-file (assume-valid-file-name + (search-patch "icecat-use-older-reveal-hidden-html.patch")))) + (makeicecat-patch + (local-file (assume-valid-file-name + (search-patch "icecat-makeicecat.patch"))))) + + (origin + (method computed-origin-method) + (file-name (string-append "icecat-" %icecat-91-version ".tar.xz")) + (sha256 #f) + (uri + (delay + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (let ((firefox-dir + (string-append "firefox-" #$base-version)) + (icecat-dir + (string-append "icecat-" #$%icecat-91-version))) + + (set-path-environment-variable + "PATH" '("bin") + (list #+rename + #+python + #+(canonical-package bash) + #+(canonical-package coreutils) + #+(canonical-package findutils) + #+(canonical-package patch) + #+(canonical-package xz) + #+(canonical-package sed) + #+(canonical-package grep) + #+(canonical-package bzip2) + #+(canonical-package gzip) + #+(canonical-package tar))) + + (set-path-environment-variable + "PYTHONPATH" + (list #+(format #f "lib/python~a/site-packages" + (version-major+minor + (package-version python)))) + '#+(cons python-jsonschema + (map second + (package-transitive-propagated-inputs + python-jsonschema)))) + + ;; Needed by the 'makeicecat' script. + (setenv "RENAME_CMD" "rename") + + ;; We copy the gnuzilla source directory because it is + ;; read-only in 'gnuzilla-source', and the makeicecat script + ;; uses "cp -a" to copy parts of it and assumes that the + ;; copies will be writable. + (copy-recursively #+gnuzilla-source "/tmp/gnuzilla" + #:log (%make-void-port "w")) + + (with-directory-excursion "/tmp/gnuzilla" + (make-file-writable "makeicecat") + (invoke "patch" "--force" "--no-backup-if-mismatch" + "-p1" "--input" #+gnuzilla-fixes-patch) + (invoke "patch" "--force" "--no-backup-if-mismatch" + "-p1" "--input" #+makeicecat-patch) + (patch-shebang "makeicecat") + (substitute* "makeicecat" + (("^readonly FFMAJOR=(.*)" all ffmajor) + (unless (string=? #$major-version + (string-trim-both ffmajor)) + ;; The makeicecat script cannot be expected to work + ;; properly on a different version of Firefox, even if + ;; no errors occur during execution. + (error "makeicecat major version mismatch")) + (string-append "readonly FFMAJOR=" #$major-version "\n")) + (("^readonly FFMINOR=.*") + (string-append "readonly FFMINOR=" #$minor-version "\n")) + (("^readonly FFSUB=.*") + (string-append "readonly FFSUB=" #$sub-version "\n")) + (("^readonly DATADIR=.*") + "readonly DATADIR=/tmp/gnuzilla/data\n") + (("^readonly SOURCEDIR=.*") + (string-append "readonly SOURCEDIR=" icecat-dir "\n")) + (("/bin/sed") + #+(file-append (canonical-package sed) "/bin/sed")))) + + (format #t "Unpacking upstream firefox tarball...~%") + (force-output) + (invoke "tar" "xf" #+upstream-firefox-source) + (rename-file firefox-dir icecat-dir) + + (with-directory-excursion icecat-dir + (format #t "Populating l10n directory...~%") + (force-output) + (mkdir "l10n") + (with-directory-excursion "l10n" + (for-each + (lambda (locale-dir) + (let ((locale + (string-drop (basename locale-dir) + (+ 32 ; length of hash + (string-length "-mozilla-locale-"))))) + (format #t " ~a~%" locale) + (force-output) + (copy-recursively locale-dir locale + #:log (%make-void-port "w")) + (for-each make-file-writable (find-files locale)) + (with-directory-excursion locale + (when (file-exists? ".hgtags") + (delete-file ".hgtags")) + (mkdir-p "browser/chrome/browser/preferences") + (call-with-output-file + "browser/chrome/browser/preferences/advanced-scripts.dtd" + (lambda (port) #f))))) + '#+all-mozilla-91-locales) + (copy-recursively #+mozilla-compare-locales + "compare-locales" + #:log (%make-void-port "w")) + (delete-file "compare-locales/.gitignore") + (delete-file "compare-locales/.hgignore") + (delete-file "compare-locales/.hgtags"))) + + (format #t "Running makeicecat script...~%") + (force-output) + (invoke "bash" "/tmp/gnuzilla/makeicecat") + + (format #t "Packing IceCat source tarball...~%") + (force-output) + (setenv "XZ_DEFAULTS" (string-join (%xz-parallel-args))) + (invoke "tar" "cfa" #$output + ;; Avoid non-determinism in the archive. We set the + ;; mtime of files in the archive to early 1980 because + ;; the build process fails if the mtime of source + ;; files is pre-1980, due to the creation of zip + ;; archives. + "--mtime=@315619200" ; 1980-01-02 UTC + "--owner=root:0" + "--group=root:0" + "--sort=name" + icecat-dir))))))))) + ;; Update this together with icecat! -(define %icedove-build-id "20220726000000") ;must be of the form YYYYMMDDhhmmss +(define %icedove-build-id "20220919000000") ;must be of the form YYYYMMDDhhmmss (define-public icedove (package (name "icedove") - (version "91.12.0") - (source icecat-source) + (version "91.13.1") + (source icecat-91-source) (properties `((cpe-name . "thunderbird_esr"))) (build-system gnu-build-system) @@ -1386,7 +1847,7 @@ standards of the IceCat project.") ;; in the Thunderbird release tarball. We don't use the release ;; tarball because it duplicates the Icecat sources and only adds the ;; "comm" directory, which is provided by this repository. - ,(let ((changeset "bd3da11e22d0070699026cb5f4e31b44b35580f0")) + ,(let ((changeset "2f9b465346ceb38b4ab79ccc1bfe8d8ad0bc8743")) (origin (method hg-fetch) (uri (hg-reference @@ -1395,7 +1856,7 @@ standards of the IceCat project.") (file-name (string-append "thunderbird-" version "-checkout")) (sha256 (base32 - "14na1n37sqjqcxmhbp0c56a1j70gnyqgrhlrk5jkblml47x4i35w"))))) + "10vsbwlh5imq7iljwzq3r4y80wzsmj6s2gsi1n64l0wmfq2m6ilb"))))) ("cargo" ,rust "cargo") ("clang" ,clang) ("llvm" ,llvm) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 41ef0d8bfb..398c60f6ab 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -1153,13 +1153,13 @@ with strong support for multi-part, multi-channel use cases.") (("/var/tmp") "/tmp")))) (add-after 'change-directory 'increase-test-timeout (lambda _ - ;; On armhf-linux, we need to override the CTest default + ;; On some architectures, we need to override the CTest default ;; timeout of 1500 seconds for the OpenEXR.IlmImf test. (substitute* "IlmImfTest/CMakeLists.txt" (("add_test\\(NAME OpenEXR\\.IlmImf.*" all) (string-append all - "set_tests_properties(OpenEXR.IlmImf PROPERTIES TIMEOUT 2000)"))) + "set_tests_properties(OpenEXR.IlmImf PROPERTIES TIMEOUT 15000)"))) #t)) ,@(if (not (target-64bit?)) `((add-after 'change-directory 'disable-broken-test diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index a1cf662e37..77b62264ff 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -823,7 +823,8 @@ model to base your own plug-in on, here it is.") xorg-server-for-tests)) (inputs (append - (if (target-x86?) (list mediasdk svt-hevc) '()) + (if (target-x86?) (list mediasdk) '()) + (if (target-x86-64?) (list svt-hevc) '()) (list bluez bzip2 cairo diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 56f0bb8acc..2e7094cfff 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -618,6 +618,21 @@ Unix-style DSV format and RFC 4180 format.") (search-patches "guile-fibers-wait-for-io-readiness.patch" "guile-fibers-epoll-instance-is-dead.patch")))) (build-system gnu-build-system) + (arguments + (list #:make-flags + #~(list "GUILE_AUTO_COMPILE=0") + #:phases + (if (target-x86-64?) + #~%standard-phases + #~(modify-phases %standard-phases + (add-before 'check 'disable-some-tests + (lambda _ + ;; This test can take more than an hour on some systems. + (substitute* "tests/basic.scm" + ((".*spawn-fiber loop-to-1e4.*") "")) + ;; These tests can take more than an hour and/or segfault. + (substitute* "Makefile" + (("tests/speedup.scm") "")))))))) (native-inputs (list texinfo pkg-config autoconf automake libtool guile-3.0 ;for 'guild compile @@ -4936,7 +4951,7 @@ with a FSM is being built (for example, from a Makefile.)") (define-public guile-ini (package (name "guile-ini") - (version "0.5.1") + (version "0.5.2") (source (origin (method git-fetch) (uri (git-reference @@ -4945,21 +4960,12 @@ with a FSM is being built (for example, from a Makefile.)") (file-name (string-append name "-" version)) (sha256 (base32 - "0ky7sffxywc2p84q5kdsphr99q0g5gy45rj0vx7f77hwpfm2093x")))) + "17fbys3gsfyx4f77a2fswirx76dlr57il2z27z77wljaz777jk36")))) (build-system gnu-build-system) (arguments `(#:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings #:phases (modify-phases %standard-phases - (delete 'strip) - (add-before 'build 'generate-fsm-context - ;; Make sure the intermediate FSM context is present - ;; before the build. - (lambda _ - (let ((cwd (getcwd))) - (chdir "modules/ini/") - (invoke "make" "GUILE_AUTO_COMPILE=0" - "fsm-context.scm") - (chdir cwd))))))) + (delete 'strip)))) (native-inputs (list autoconf automake pkg-config texinfo)) (inputs (list bash-minimal guile-3.0 guile-lib)) (propagated-inputs (list guile-smc)) diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm index 2e00b6ba26..87986952f0 100644 --- a/gnu/packages/icu4c.scm +++ b/gnu/packages/icu4c.scm @@ -151,22 +151,6 @@ C/C++ part.") (base32 "0icps0avkwy5df3wwc5kybxcg63hcgk4phdh9g244g0xrmx7pfjc")))))) -(define-public icu4c-67 - (package - (inherit icu4c) - (version "67.1") - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/unicode-org/icu/releases/download/release-" - (string-map (lambda (x) (if (char=? x #\.) #\- x)) version) - "/icu4c-" - (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version) - "-src.tgz")) - (sha256 - (base32 - "1p6mhvxl0xr2n0g6xdps3mwzwlv6mjsz3xlpm793p9aiybb0ra4l")))))) - (define-public icu4c-68 (package (inherit icu4c) diff --git a/gnu/packages/instrumentation.scm b/gnu/packages/instrumentation.scm index 964e26d40a..3d6b6fab38 100644 --- a/gnu/packages/instrumentation.scm +++ b/gnu/packages/instrumentation.scm @@ -22,6 +22,7 @@ #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages commencement) + #:use-module (gnu packages compression) #:use-module (gnu packages datastructures) #:use-module (gnu packages documentation) #:use-module (gnu packages elf) @@ -30,6 +31,7 @@ #:use-module (gnu packages flex) #:use-module (gnu packages gawk) #:use-module (gnu packages glib) + #:use-module (gnu packages guile) #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages libunwind) #:use-module (gnu packages linux) @@ -207,17 +209,76 @@ interactive SVGs out of traces genated from various tracing tools. It comes with the script @command{flamegraph.pl} and many stackcollapse scripts.") (license license:cddl1.0)))) +(define-public libpatch + (package + (name "libpatch") + (version "1.0.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~old/libpatch") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1sx1sichnnqfi84z37gd04h41vpr8i2vg6yg0jkqxlrv3dys489a")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list + (string-append + "--target=" + ,(platform-linux-architecture + (lookup-platform-by-target-or-system + (or + (%current-target-system) + (%current-system)))))))) + ;;; Add lttng-ust to the inputs if you want tracepoints within libpatch + ;;; for debugging. + (inputs + (list capstone + elfutils + libunwind + liburcu)) + (native-inputs + (list coreutils + ;; test-ftrace.scm + (list coreutils "debug") + (list guile-3.0 "debug") + (list gnu-make "debug") + + ;; For eu-nm in test-ftrace.scm. + (list elfutils "bin") + + guile-3.0 + gnu-make + pkg-config + ;; zlib is required by libdw. This can be removed if zlib is put + ;; as a propagated-input of elfutils. + zlib)) + (synopsis "Dynamic binary patcher") + (description + "libpatch is a lightweight C library that can be used by tracers, +debuggers and other tools for insertion of probes in a program at runtime. It +has many strategies to minimize probe overhead and maximize possible +coverage.") + (home-page "https://git.sr.ht/~old/libpatch") + (license (list license:lgpl2.1 license:expat license:gpl3+)) + ;; Libpatch only supports instrumentation for x86_64 right now. Augment + ;; that list in further version. + (supported-systems (list "x86_64-linux")))) + (define-public lttng-modules (package (name "lttng-modules") - (version "2.13.4") + (version "2.13.5") (source (origin (method url-fetch) (uri (string-append "https://lttng.org/files/lttng-modules/" "lttng-modules-" version ".tar.bz2")) (sha256 (base32 - "1vm9nnjvid7acsvgwnjyxd60ih9rmbhnfjldxip58n8x9q7d0nb1")))) + "0277yfp57psnvn5g40mk09zryp0r4saynns213qak18fv0l39szc")))) (build-system linux-module-build-system) (arguments `(#:tests? #f ; no tests @@ -234,14 +295,14 @@ many probes which instrument numerous interesting parts of Linux.") (define-public lttng-ust (package (name "lttng-ust") - (version "2.13.3") + (version "2.13.4") (source (origin (method url-fetch) (uri (string-append "https://lttng.org/files/lttng-ust/" "lttng-ust-" version ".tar.bz2")) (sha256 (base32 - "0vwgxp027pgwm0a4xr6bdibday7xjlnv6wmbqh546l2h2i8jzi1c")))) + "165kz3zsklynkxdkcbkwhw7cccdgmgmld35h1cf9hvn5bpn853v9")))) (build-system gnu-build-system) (inputs (list numactl)) @@ -260,20 +321,17 @@ to ring buffers shared with a consumer daemon.") (define-public lttng-tools (package (name "lttng-tools") - (version "2.13.7") + (version "2.13.8") (source (origin (method url-fetch) (uri (string-append "https://lttng.org/files/lttng-tools/" "lttng-tools-" version ".tar.bz2")) (sha256 (base32 - "13gh4bvlgbh82h9vb80aw8l1cfmdj3xyvjg30cscz9vqy7l04yni")))) + "1h9x6mmqrxrbgivll3g81l7a9f7ggjmcgwr01f9r01r6kdbmksdi")))) (build-system gnu-build-system) (arguments - `( ;; FIXME - Currently there's a segmentation fault by swig when enabling - ;; Python's bindings. Thus, bindings are disable here. Replace - ;; `disable` by `enable` in #:configure-flags when this is fixed. - #:configure-flags '("--disable-python-bindings") + `(#:configure-flags '("--enable-python-bindings") ;; FIXME - Tests are disabled for now because one test hangs ;; indefinetely. Also, parallel testing is not possible because of how ;; the lttng-daemon handles sessions. Thus, keep parallel testing diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm index d1e04c3ae0..141653176b 100644 --- a/gnu/packages/ipfs.scm +++ b/gnu/packages/ipfs.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,7 +29,8 @@ #:use-module (guix build-system go) #:use-module (gnu packages golang) #:use-module (gnu packages python) - #:use-module (gnu packages shells)) + #:use-module (gnu packages shells) + #:use-module (gnu packages syncthing)) (define-public go-github-com-ipfs-go-ipfs-cmdkit-files (let ((commit @@ -227,7 +229,55 @@ written in Go.") "/go-ipfs-source.tar.gz")) (sha256 (base32 "13pmj83hwpz6mk7x52qn0cjnfqxqw2qri3r0k4b270w3bafcccwm")) - (file-name (string-append name "-" version "-source")))) + (file-name (string-append name "-" version "-source")) + (modules '((guix build utils))) + (snippet '(for-each delete-file-recursively + ;; TODO: unbundle the rest as well + '("vendor/github.com/alecthomas" + ;; "vendor/github.com/blang" + "vendor/github.com/cespare" + ;; TODO: Go files not found + ;; "vendor/github.com/cheggaaa" + "vendor/github.com/davecgh" + "vendor/github.com/dustin" + "vendor/github.com/flynn" + "vendor/github.com/francoispqt" + "vendor/github.com/fsnotify" + "vendor/github.com/gogo" + "vendor/github.com/golang/groupcache" + "vendor/github.com/golang/snappy" + "vendor/github.com/google/uuid" + "vendor/github.com/gorilla" + ;; These should be fine, they are part of + ;; the IPFS project + ;; "vendor/github.com/ipfs" + ;; "vendor/github.com/ipld" + "vendor/github.com/jackpal" + "vendor/github.com/klauspost" + ;; TODO: Go files not found + ;; "vendor/github.com/lucas-clemente" + "vendor/github.com/mattn" + "vendor/github.com/mgutz" + "vendor/github.com/minio" + "vendor/github.com/mitchellh" + "vendor/github.com/mr-tron" + "vendor/github.com/opentracing" + "vendor/github.com/pkg" + "vendor/github.com/pmezard" + "vendor/github.com/prometheus/client_golang" + "vendor/github.com/prometheus/client_model" + "vendor/github.com/prometheus/common" + "vendor/github.com/prometheus/procfs" + "vendor/github.com/spaolacci" + "vendor/github.com/stretchr" + "vendor/github.com/syndtr" + "vendor/golang.org/x" + "vendor/gopkg.in/yaml.v2" + "vendor/gopkg.in/yaml.v3" + "vendor/go.uber.org/atomic" + "vendor/go.uber.org/multierr" + "vendor/go.uber.org/zap" + "vendor/lukechampine.com"))))) (build-system go-build-system) (arguments (list @@ -247,6 +297,60 @@ written in Go.") "ipfs" #~(string-append #$output "/bin/ipfs")) "commands" "completion" "bash"))))))))) + (inputs (list go-github-com-alecthomas-units + ;; TODO: needs to be updated first + ;; go-github-com-blang-semver + go-github-com-cespare-xxhash + go-github-com-cheekybits-genny + go-github-com-cheggaaa-pb-v3 + go-github-com-davecgh-go-spew + go-github-com-dustin-go-humanize + go-github-com-flynn-noise + go-github-com-francoispqt-gojay + go-github-com-fsnotify-fsnotify + go-github-com-gogo-protobuf + go-github-com-google-uuid + go-github-com-golang-groupcache-lru + go-github-com-golang-snappy + go-github-com-gorilla-websocket + go-github-com-jackpal-go-nat-pmp + go-github-com-klauspost-compress + go-github-com-klauspost-cpuid + go-github-com-lucas-clemente-quic-go + go-github-com-mattn-go-colorable + go-github-com-mattn-go-isatty + go-github-com-mattn-go-runewidth + go-github-com-mgutz-ansi + go-github-com-minio-blake2b-simd + go-github-com-minio-sha256-simd + go-github-com-mitchellh-go-homedir + go-github-com-mr-tron-base58 + go-github-com-opentracing-opentracing-go + go-github-com-pkg-errors + go-github-com-pmezard-go-difflib + go-github-com-prometheus-client-golang + go-github-com-prometheus-client-model + go-github-com-prometheus-common + go-github-com-prometheus-procfs + go-github-com-spaolacci-murmur3 + go-github-com-stretchr-testify + go-github-com-syndtr-goleveldb + go-gopkg-in-yaml-v2 + go-gopkg-in-yaml-v3 + go-go-uber-org-atomic + go-go-uber-org-multierr + go-go-uber-org-zap + go-golang-org-x-crypto + go-golang-org-x-lint + go-golang-org-x-mod + go-golang-org-x-net + go-golang-org-x-oauth2 + go-golang-org-x-sync + go-golang-org-x-sys + go-golang-org-x-term + go-golang-org-x-tools + go-golang-org-x-xerrors + go-lukechampine-com-blake3)) (native-inputs (append (if (%current-target-system) (list this-package) diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 95c0052841..ae4fb653bd 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -66,7 +66,7 @@ #:use-module (guix packages) #:use-module (guix utils)) -(define %jami-version "20220726.1515.da8d1da") +(define %jami-version "20220825.0828.c10f01f") (define %jami-sources ;; Return an origin object of the tarball release sources archive of the @@ -90,8 +90,8 @@ "plugins")))) (sha256 (base32 - "1zx0i9aw8jsba3bjc5r4pkkybm8c0lyz420ciq89vsswd48gfdhg")) - (patches (search-patches "jami-fix-esc-bug.patch")))) + "1iv06jb66g206qxm75v7rc3mqvrml1028avflsj11chj8jh63j14")) + (patches (search-patches "jami-fix-crash-on-block-contact.patch")))) ;; Jami maintains a set of patches for some key dependencies (currently ;; pjproject and ffmpeg) of Jami that haven't yet been integrated upstream. @@ -113,12 +113,12 @@ patches)))) (define-public pjproject-jami - (let ((commit "e1f389d0b905011e0cb62cbdf7a8b37fc1bcde1a") + (let ((commit "5e478bbf8692f43059de9c6ad654b377359baaa0") (revision "0")) (package (inherit pjproject) (name "pjproject-jami") - (version (git-version "2.11" revision commit)) + (version (git-version "2.12" revision commit)) (source (origin (inherit (package-source pjproject)) ;; The Jami development team regularly issues patches to @@ -133,7 +133,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0inpmyb6mhrzr0g309d6clkc99lddqdvyf9xajz0igvgp9pvgpza")))) + "0n9hyqr57hhbmq35iqq5ihavj22gxzsspv0f8i6ajxwd4029nmcl")))) (arguments (substitute-keyword-arguments (package-arguments pjproject) ((#:phases phases '%standard-phases) @@ -374,16 +374,21 @@ '()))) (define-public ffmpeg-jami - (package/inherit ffmpeg + (package + (inherit ffmpeg-5) (name "ffmpeg-jami") + ;; XXX: Use a slightly older version, otherwise the + ;; 'libopusdec-enable-FEC' patch doesn't apply. + (version "5.0.1") + (source (origin + (method url-fetch) + (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" + version ".tar.xz")) + (sha256 + (base32 + "0yq0jcdc4qm5znrzylj3dsicrkk2n3n8bv28vr0a506fb7iglbpg")))) (arguments - (substitute-keyword-arguments (package-arguments ffmpeg) - ((#:tests? _ #f) - ;; The "rtp_ext_abs_send_time" patch causes the 'lavf-mov_rtphint' - ;; test to fail (see: - ;; https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/685). - ;; TODO: Try to disable just this test. - #f) + (substitute-keyword-arguments (package-arguments ffmpeg-5) ((#:configure-flags '()) (ffmpeg-compose-configure-flags)) ((#:phases phases) @@ -399,7 +404,16 @@ "rtp_ext_abs_send_time" "libopusdec-enable-FEC" "libopusenc-reload-packet-loss-at-encode" - "screen-sharing-x11-fix")))))))))) + "screen-sharing-x11-fix")))) + (add-after 'apply-patches 'disable-problematic-tests + (lambda _ + ;; The "rtp_ext_abs_send_time" patch causes the 'lavf-mov_rtphint' + ;; test to fail (see: + ;; https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/685). + (substitute* "tests/fate/lavf-container.mak" + (("mov mov_rtphint ismv") + "mov ismv") + (("fate-lavf-mov_rtphint:.*") "")))))))))) (define-public libjami (package diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index f467c473d7..165de8da63 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1793,515 +1793,400 @@ new Date();")) "0di91nnms2iq1svgq72r5y17am17r4vh2lq43k0bkcwpc84d6nd8")) (modules '((guix build utils))) (snippet - `(begin - (for-each delete-file (find-files "." ".*.(bin|exe|jar)$")) - #t)))) + '(for-each delete-file (find-files "." ".*.(bin|exe|jar)$"))))) (build-system gnu-build-system) (outputs '("out" "jdk" "doc")) (arguments - `(#:imported-modules ((guix build syscalls) + (list + #:imported-modules `((guix build syscalls) ,@%gnu-build-system-modules) - - #:disallowed-references ,(list (gexp-input openjdk10) - (gexp-input openjdk10 "jdk")) - - #:tests? #f; requires jtreg - ;; TODO package jtreg - #:configure-flags - `(;; Add flags for compilation with gcc >= 10 - ,(string-append "--with-extra-cflags=-fcommon" - " -fno-delete-null-pointer-checks" - " -fno-lifetime-dse") - "--disable-option-checking" ; --enable-fast-install default flag errors otherwise + #:modules `((guix build gnu-build-system) + (guix build utils) + (ice-9 match) + (srfi srfi-1) + (srfi srfi-26)) + #:disallowed-references (list (gexp-input openjdk10) + (gexp-input openjdk10 "jdk")) + + #:tests? #f ; requires jtreg + ;; TODO package jtreg + #:configure-flags + #~(list + ;; Add flags for compilation with gcc >= 10. + #$(string-append "--with-extra-cflags=-fcommon" + " -fno-delete-null-pointer-checks" + " -fno-lifetime-dse") + ;; Otherwise, the '--enable-fast-install' causes an error. + "--disable-option-checking" "--disable-warnings-as-errors" - ;; make validate-runpath pass, see: http://issues.guix.info/issue/32894 + ;; Make validate-runpath pass (see: + ;; http://issues.guix.info/issue/32894). "--with-native-debug-symbols=zipped" - ;; do not use the bundled libraries + ;; Do not use the bundled libraries. "--with-giflib=system" "--with-lcms=system" "--with-libjpeg=system" "--with-libpng=system" "--with-version-pre=" - ;; allow the build system to locate the system freetype - ,(string-append "--with-freetype-include=" - (assoc-ref %build-inputs "freetype") "/include") - ,(string-append "--with-freetype-lib=" - (assoc-ref %build-inputs "freetype") "/lib")) - #:phases - (modify-phases %standard-phases - (add-after 'patch-source-shebangs 'fix-java-shebangs - (lambda _ - ;; This file was "fixed" by patch-source-shebangs, but it requires - ;; this exact first line. - (substitute* "make/data/blockedcertsconverter/blocked.certs.pem" - (("^#!.*") "#! java BlockedCertsConverter SHA-256\n")) - #t)) - (add-after 'unpack 'patch-jni-libs - ;; Hardcode dynamically loaded libraries. - (lambda _ - (define remove - (@ (srfi srfi-1) remove)) - - (define (icedtea-or-openjdk? path) - (or (string-contains path "openjdk") - (string-contains path "icedtea"))) - - (let* ((library-path (remove icedtea-or-openjdk? - (search-path-as-string->list - (getenv "LIBRARY_PATH")))) - (find-library (lambda (name) - (or (search-path - library-path - (string-append "lib" name ".so")) - (string-append "lib" name ".so"))))) - (for-each - (lambda (file) - (catch 'decoding-error - (lambda () - (substitute* file - (("VERSIONED_JNI_LIB_NAME\\(\"(.*)\", \"(.*)\"\\)" - _ name version) - (string-append "\"" (find-library name) "\"")) - (("JNI_LIB_NAME\\(\"(.*)\"\\)" _ name) - (string-append "\"" (find-library name) "\"")))) - (lambda _ - ;; Those are safe to skip. - (format (current-error-port) - "warning: failed to substitute: ~a~%" - file)))) - (find-files "." - "\\.c$|\\.h$")) - #t))) - (add-before 'build 'write-source-revision-file - (lambda _ - (with-output-to-file ".src-rev" - (lambda _ - (display ,version))) - #t)) - (replace 'build - (lambda* (#:key parallel-build? make-flags #:allow-other-keys) - (apply invoke "make" "all" - `(,@(if parallel-build? - (list (string-append "JOBS=" - (number->string (parallel-job-count)))) - '()) - ,@make-flags)))) - ;; jdk 11 does not build jre by default any more - ;; building it anyways - ;; for further information see: - ;; https://github.com/AdoptOpenJDK/openjdk-build/issues/356 - (add-after 'build 'build-jre - (lambda* (#:key parallel-build? make-flags #:allow-other-keys) - (apply invoke "make" "legacy-jre-image" - `(,@(if parallel-build? - (list (string-append "JOBS=" - (number->string (parallel-job-count)))) - '()) - ,@make-flags)))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (jdk (assoc-ref outputs "jdk")) - (doc (assoc-ref outputs "doc")) - (images (car (find-files "build" ".*-server-release" - #:directories? #t)))) - (copy-recursively (string-append images "/images/jdk") jdk) - (copy-recursively (string-append images "/images/jre") out) - (copy-recursively (string-append images "/images/docs") doc)) - #t)) - ;; Some of the libraries in the lib/ folder link to libjvm.so. - ;; But that shared object is located in the server/ folder, so it - ;; cannot be found. This phase creates a symbolic link in the - ;; lib/ folder so that the other libraries can find it. - ;; - ;; See: - ;; https://lists.gnu.org/archive/html/guix-devel/2017-10/msg00169.html - ;; - ;; FIXME: Find the bug in the build system, so that this symlink is - ;; not needed. - (add-after 'install 'install-libjvm - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((lib-out (string-append (assoc-ref outputs "out") - "/lib")) - (lib-jdk (string-append (assoc-ref outputs "jdk") - "/lib"))) - (symlink (string-append lib-jdk "/server/libjvm.so") - (string-append lib-jdk "/libjvm.so")) - (symlink (string-append lib-out "/server/libjvm.so") - (string-append lib-out "/libjvm.so"))) - #t)) - (add-after 'install 'strip-character-data-timestamps - (lambda* (#:key outputs #:allow-other-keys) - (use-modules (guix build syscalls)) - (let ((archive (string-append - (assoc-ref outputs "jdk") "/lib/src.zip")) - (dir (mkdtemp! "zip-contents.XXXXXX"))) - (with-directory-excursion dir - (invoke "unzip" archive)) - (delete-file archive) - (with-directory-excursion dir - (let ((char-data-files (find-files "." "CharacterData.*"))) - (for-each (lambda (file) - (substitute* file - (((string-append "This file was generated " + ;; Allow the build system to locate the system freetype. + (string-append "--with-freetype-include=" + #$(this-package-input "freetype") "/include") + (string-append "--with-freetype-lib=" + #$(this-package-input "freetype") "/lib")) + #:phases + #~(modify-phases %standard-phases + (add-after 'patch-source-shebangs 'fix-java-shebangs + (lambda _ + ;; This file was "fixed" by patch-source-shebangs, but it requires + ;; this exact first line. + (substitute* "make/data/blockedcertsconverter/blocked.certs.pem" + (("^#!.*") "#! java BlockedCertsConverter SHA-256\n")))) + (add-after 'unpack 'patch-jni-libs + ;; Hardcode dynamically loaded libraries. + (lambda _ + (define remove + (@ (srfi srfi-1) remove)) + + (define (icedtea-or-openjdk? path) + (or (string-contains path "openjdk") + (string-contains path "icedtea"))) + + (let* ((library-path (remove icedtea-or-openjdk? + (search-path-as-string->list + (getenv "LIBRARY_PATH")))) + (find-library (lambda (name) + (or (search-path + library-path + (string-append "lib" name ".so")) + (string-append "lib" name ".so"))))) + (for-each + (lambda (file) + (catch 'decoding-error + (lambda () + (substitute* file + (("VERSIONED_JNI_LIB_NAME\\(\"(.*)\", \"(.*)\"\\)" + _ name version) + (string-append "\"" (find-library name) "\"")) + (("JNI_LIB_NAME\\(\"(.*)\"\\)" _ name) + (string-append "\"" (find-library name) "\"")))) + (lambda _ + ;; Those are safe to skip. + (format (current-error-port) + "warning: failed to substitute: ~a~%" + file)))) + (find-files "." + "\\.c$|\\.h$"))))) + (add-before 'build 'write-source-revision-file + (lambda _ + (with-output-to-file ".src-rev" + (lambda _ + (display #$version))))) + (replace 'build + (lambda* (#:key parallel-build? make-flags #:allow-other-keys) + (apply invoke "make" "all" + `(,@(if parallel-build? + (list (string-append "JOBS=" + (number->string (parallel-job-count)))) + '()) + ,@make-flags)))) + ;; jdk 11 does not build jre by default any more; so explicitly build + ;; it (see: + ;; https://github.com/AdoptOpenJDK/openjdk-build/issues/356). + (add-after 'build 'build-jre + (lambda* (#:key parallel-build? make-flags #:allow-other-keys) + (apply invoke "make" "legacy-jre-image" + `(,@(if parallel-build? + (list (string-append "JOBS=" + (number->string (parallel-job-count)))) + '()) + ,@make-flags)))) + (replace 'install + (lambda _ + (let ((images (car (find-files "build" ".*-server-release" + #:directories? #t)))) + (copy-recursively (string-append images "/images/jdk") + #$output:jdk) + (copy-recursively (string-append images "/images/jre") + #$output) + (copy-recursively (string-append images "/images/docs") + #$output:doc)))) + ;; Some of the libraries in the lib/ folder link to libjvm.so. + ;; But that shared object is located in the server/ folder, so it + ;; cannot be found. This phase creates a symbolic link in the + ;; lib/ folder so that the other libraries can find it. + ;; + ;; See: + ;; https://lists.gnu.org/archive/html/guix-devel/2017-10/msg00169.html + ;; + ;; FIXME: Find the bug in the build system, so that this symlink is + ;; not needed. + (add-after 'install 'install-libjvm + (lambda _ + (let ((lib-out (string-append #$output "/lib")) + (lib-jdk (string-append #$output:jdk "/lib"))) + (symlink (string-append lib-jdk "/server/libjvm.so") + (string-append lib-jdk "/libjvm.so")) + (symlink (string-append lib-out "/server/libjvm.so") + (string-append lib-out "/libjvm.so"))))) + (add-after 'install 'strip-character-data-timestamps + (lambda _ + (use-modules (guix build syscalls)) + (let ((archive (string-append #$output:jdk "/lib/src.zip")) + (dir (mkdtemp! "zip-contents.XXXXXX"))) + (with-directory-excursion dir + (invoke "unzip" archive)) + (delete-file archive) + (with-directory-excursion dir + (let ((char-data-files (find-files "." "CharacterData.*"))) + (for-each (lambda (file) + (substitute* file + (((string-append "This file was generated " + "AUTOMATICALLY from a template " + "file.*")) + (string-append "This file was generated " "AUTOMATICALLY from a template " - "file.*")) - (string-append "This file was generated " - "AUTOMATICALLY from a template " - "file")))) - char-data-files))) - (with-directory-excursion dir - (let ((files (find-files "." ".*" #:directories? #t))) - (apply invoke "zip" "-0" "-X" archive files)))))) - (add-after 'strip-character-data-timestamps 'strip-archive-timestamps - (lambda* (#:key outputs #:allow-other-keys) - (use-modules (guix build syscalls) - (ice-9 binary-ports) - (rnrs bytevectors)) - (letrec ((repack-archive - (lambda (archive) - (let ((dir (mkdtemp! "zip-contents.XXXXXX"))) - (with-directory-excursion dir - (invoke "unzip" archive)) - (delete-file archive) - (for-each (compose repack-archive canonicalize-path) - (find-files dir "(ct.sym|.*.jar)$")) - (let ((reset-file-timestamp - (lambda (file) - (let ((s (lstat file))) - (unless (eq? (stat:type s) 'symlink) - (format #t "reset ~a~%" file) - (utime file 0 0 0 0)))))) - (for-each reset-file-timestamp - (find-files dir #:directories? #t))) - (with-directory-excursion dir - (let ((files (find-files "." ".*" #:directories? #t))) - (apply invoke "zip" "-0" "-X" archive files))))))) - (for-each repack-archive - (find-files (assoc-ref outputs "doc") ".*.zip$")) - (for-each repack-archive - (find-files (assoc-ref outputs "jdk") - ".*.(zip|jar|diz)$")) - (repack-archive (string-append (assoc-ref outputs "jdk") "/lib/ct.sym")) - (let ((repack-jmod - (lambda (file-name) - (call-with-input-file file-name - (lambda (file) - (let ((header #vu8(#x4a #x4d #x01 #x00))) - (if (equal? (get-bytevector-n - file (bytevector-length header)) - header) - (let* ((header-length (bytevector-length header)) - (temp-file (mkstemp! - (string-copy - "temp-file.XXXXXX"))) - (temp-filename (port-filename temp-file)) - (content-length - (- (stat:size (stat file)) - header-length))) - (sendfile temp-file file content-length header-length) - (delete-file file-name) - (close-port temp-file) - (repack-archive (canonicalize-path temp-filename)) - (call-with-output-file file-name - (lambda (file) - (put-bytevector file header) - (call-with-input-file temp-filename - (lambda (temp-file) - (sendfile - file temp-file - (stat:size (stat temp-file)) 0))))))))))))) - (for-each repack-jmod - (find-files (assoc-ref outputs "jdk") ".*.jmod$"))) - #t))) - (add-after 'install 'remove-timestamp-from-api-summary - (lambda* (#:key outputs #:allow-other-keys) - (substitute* (string-append (assoc-ref outputs "doc") - "/api/overview-summary.html") - (("Generated by javadoc \\(11-internal\\).*$") - "Generated by javadoc (11-internal) -->\n")) - #t))))) - (inputs - `(("alsa-lib" ,alsa-lib) - ("cups" ,cups) - ("fontconfig" ,fontconfig) - ("freetype" ,freetype) - ("giflib" ,giflib) - ("lcms" ,lcms) - ("libjpeg" ,libjpeg-turbo) - ("libpng" ,libpng) - ("libx11" ,libx11) - ("libxext" ,libxext) - ("libxrandr" ,libxrandr) - ("libxrender" ,libxrender) - ("libxt" ,libxt) - ("libxtst" ,libxtst))) - (native-inputs - `(("autoconf" ,autoconf) - ("openjdk10" ,openjdk10) - ("openjdk10:jdk" ,openjdk10 "jdk") - ("make" ,gnu-make-4.2) - ("pkg-config" ,pkg-config) - ("unzip" ,unzip) - ("which" ,which) - ("zip" ,zip))) + "file")))) + char-data-files))) + (with-directory-excursion dir + (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) + ;; Remove the *.diz and src.zip files for space considerations. + ;; The former are compressed debuginfo files not typically + ;; shipped with Java distributions, while the later corresponds + ;; to Java core API source files. + (for-each delete-file + (append-map (cut find-files <> "(^src\\.zip|\\.diz)$") + (map (match-lambda + ((name . dir) + dir)) + outputs))))) + (add-after 'remove-diz-file 'strip-archive-timestamps + (lambda _ + (use-modules (guix build syscalls) + (ice-9 binary-ports) + (rnrs bytevectors)) + (letrec ((repack-archive + (lambda (archive) + (let ((dir (mkdtemp! "zip-contents.XXXXXX"))) + (with-directory-excursion dir + (invoke "unzip" archive)) + (delete-file archive) + (for-each (compose repack-archive canonicalize-path) + (find-files dir "(ct.sym|\\.jar)$")) + (let ((reset-file-timestamp + (lambda (file) + (let ((s (lstat file))) + (unless (eq? (stat:type s) 'symlink) + (format #t "reset ~a~%" file) + (utime file 0 0 0 0)))))) + (for-each reset-file-timestamp + (find-files dir #:directories? #t))) + (with-directory-excursion dir + (let ((files (find-files "." ".*" #:directories? #t))) + (apply invoke "zip" "-0" "-X" archive files))))))) + (for-each repack-archive + (find-files #$output:doc "\\.zip$")) + (for-each repack-archive + (find-files #$output:jdk "\\.(zip|jar)$")) + (repack-archive (string-append #$output:jdk "/lib/ct.sym")) + (let ((repack-jmod + (lambda (file-name) + (call-with-input-file file-name + (lambda (file) + (let ((header #vu8(#x4a #x4d #x01 #x00))) + (if (equal? (get-bytevector-n + file (bytevector-length header)) + header) + (let* ((header-length (bytevector-length header)) + (temp-file (mkstemp! + (string-copy + "temp-file.XXXXXX"))) + (temp-filename (port-filename temp-file)) + (content-length + (- (stat:size (stat file)) + header-length))) + (sendfile temp-file file content-length header-length) + (delete-file file-name) + (close-port temp-file) + (repack-archive (canonicalize-path temp-filename)) + (call-with-output-file file-name + (lambda (file) + (put-bytevector file header) + (call-with-input-file temp-filename + (lambda (temp-file) + (sendfile + file temp-file + (stat:size (stat temp-file)) 0))))))))))))) + (for-each repack-jmod + (find-files #$output:jdk "\\.jmod$")))))) + (add-after 'install 'remove-timestamp-from-api-summary + (lambda _ + (substitute* (string-append #$output:doc + "/api/overview-summary.html") + (("Generated by javadoc \\(11-internal\\).*$") + "Generated by javadoc (11-internal) -->\n"))))))) + (inputs + (list alsa-lib + cups + fontconfig + freetype + giflib + lcms + libjpeg-turbo + libpng + libx11 + libxext + libxrandr + libxrender + libxt + libxtst)) + (native-inputs + (list autoconf + openjdk10 + `(,openjdk10 "jdk") + gnu-make-4.2 + pkg-config + unzip + which + zip)) (home-page "https://openjdk.java.net/projects/jdk/11/") (synopsis "Java development kit") (description "This package provides the Java development kit OpenJDK.") (license license:gpl2+))) +(define-syntax make-openjdk + ;; Return an OpenJDK package at VERSION with checksum HASH, using BOOTSTRAP, + ;; the bootstrap package. One or more FIELD can be provided to further + ;; refine the package definition; for convenience, the BASE, NAME and + ;; VERSION are defined in their scope. + (lambda (x) + (syntax-case x () + ((_ bootstrap version* hash field ...) + (with-syntax ((base (datum->syntax x 'base)) + (name (datum->syntax x 'name)) + (version (datum->syntax x 'version))) + #'(let ((base (package + (inherit bootstrap) + (name "openjdk") + (version version*) + (source + (origin + (inherit (package-source bootstrap)) + (method git-fetch) + (uri (git-reference + (url (format + #f "https://github.com/openjdk/jdk~au" + (version-major version*))) + (commit (string-append "jdk-" version* + "-ga")))) + (file-name (git-file-name name version)) + (sha256 (base32 hash)))) + (native-inputs + (modify-inputs (package-native-inputs bootstrap) + (replace "openjdk" bootstrap))) + (home-page (string-append + "https://openjdk.java.net/projects/jdk/" + (version-major version))))) + (name "openjdk") + (version version*)) + (package + (inherit base) + field + ...))))))) + (define-public openjdk12 - (package - (inherit openjdk11) - (name "openjdk") - (version "12.33") - (source (origin - (method url-fetch) - (uri "http://hg.openjdk.java.net/jdk/jdk/archive/0276cba45aac.tar.bz2") - (file-name (string-append name "-" version ".tar.bz2")) - (sha256 - (base32 - "0mbhdrk12b6878kby0flnbak7444dlpm0ihlmf92vk59y1c02bc2")) - (patches (search-patches "openjdk-10-hotspot-stack-size.patch")) - (modules '((guix build utils))) - (snippet - `(begin - (for-each delete-file (find-files "." ".*.(bin|exe|jar)$")) - #t)))) - (arguments - (substitute-keyword-arguments (package-arguments openjdk11) - ((#:phases phases) - `(modify-phases ,phases + (make-openjdk + openjdk11 "12.33" "0mbhdrk12b6878kby0flnbak7444dlpm0ihlmf92vk59y1c02bc2" + (source + (origin + (method url-fetch) + (uri "http://hg.openjdk.java.net/jdk/jdk/archive/0276cba45aac.tar.bz2") + (file-name (string-append name "-" version ".tar.bz2")) + (sha256 + (base32 + "0mbhdrk12b6878kby0flnbak7444dlpm0ihlmf92vk59y1c02bc2")) + (modules '((guix build utils))) + (snippet + '(for-each delete-file (find-files "." "\\.(bin|exe|jar)$"))) + (patches (search-patches "openjdk-10-hotspot-stack-size.patch")))) + (arguments + (substitute-keyword-arguments (package-arguments openjdk11) + ((#:phases phases) + #~(modify-phases #$phases (replace 'fix-java-shebangs (lambda _ - ;; This file was "fixed" by patch-source-shebangs, but it requires - ;; this exact first line. - (substitute* "make/data/blacklistedcertsconverter/blacklisted.certs.pem" - (("^#!.*") "#! java BlacklistedCertsConverter SHA-256\n")))))))) - (inputs - `(("alsa-lib" ,alsa-lib) - ("cups" ,cups) - ("fontconfig" ,fontconfig) - ("freetype" ,freetype) - ("giflib" ,giflib) - ("lcms" ,lcms) - ("libjpeg" ,libjpeg-turbo) - ("libpng" ,libpng) - ("libx11" ,libx11) - ("libxext" ,libxext) - ("libxrandr" ,libxrandr) - ("libxrender" ,libxrender) - ("libxt" ,libxt) - ("libxtst" ,libxtst))) - (native-inputs - `(("autoconf" ,autoconf) - ("openjdk11" ,openjdk11) - ("openjdk11:jdk" ,openjdk11 "jdk") - ("make@4.2" ,gnu-make-4.2) - ("pkg-config" ,pkg-config) - ("unzip" ,unzip) - ("which" ,which) - ("zip" ,zip))) - (home-page "https://openjdk.java.net/projects/jdk/12"))) + ;; 'blocked' was renamed to 'blacklisted' in this version for + ;; some reason. + (substitute* "make/data/blacklistedcertsconverter/\ +blacklisted.certs.pem" + (("^#!.*") + "#! java BlacklistedCertsConverter SHA-256\n")))))))))) (define-public openjdk13 - (package - (inherit openjdk12) - (name "openjdk") - (version "13.0.7") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/openjdk/jdk13u") - (commit (string-append "jdk-" version "-ga")))) - (file-name (git-file-name name version)) - (patches (search-patches "openjdk-10-hotspot-stack-size.patch")) - (sha256 - (base32 + (make-openjdk openjdk12 "13.0.7" "0wrrr0d7lz1v8qqm752mn4gz5l2vpl2kmx4ac3ysvk4mljc924hp")) - (modules '((guix build utils))) - (snippet - `(begin - (for-each delete-file (find-files "." ".*.(bin|exe|jar)$")) - #t)))) - (inputs - `(("alsa-lib" ,alsa-lib) - ("cups" ,cups) - ("fontconfig" ,fontconfig) - ("freetype" ,freetype) - ("giflib" ,giflib) - ("lcms" ,lcms) - ("libjpeg" ,libjpeg-turbo) - ("libpng" ,libpng) - ("libx11" ,libx11) - ("libxext" ,libxext) - ("libxrandr" ,libxrandr) - ("libxrender" ,libxrender) - ("libxt" ,libxt) - ("libxtst" ,libxtst))) - (native-inputs - `(("autoconf" ,autoconf) - ("openjdk12:jdk" ,openjdk12 "jdk") - ("make@4.2" ,gnu-make-4.2) - ("pkg-config" ,pkg-config) - ("unzip" ,unzip) - ("which" ,which) - ("zip" ,zip))) - (home-page "https://openjdk.java.net/projects/jdk/13"))) (define-public openjdk14 - (package - (inherit openjdk13) - (name "openjdk") - (version "14.0.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/openjdk/jdk14u") - (commit (string-append "jdk-" version "-ga")))) - (file-name (git-file-name name version)) - (patches (search-patches "openjdk-10-hotspot-stack-size.patch")) - (sha256 - (base32 - "07k9bsbxwyf2z2n50z96nvhsdai916mxdxcr5lm44jz7f6xrwfq6")) - (modules '((guix build utils))) - (snippet - `(begin - ;; The m4 macro uses 'help' to search for builtins, which is - ;; not available in bash-minimal - (substitute* "make/autoconf/basics.m4" - (("if help") "if command -v")) - (for-each delete-file (find-files "." ".*.(bin|exe|jar)$")) - #t)))) - (inputs - `(("alsa-lib" ,alsa-lib) - ("cups" ,cups) - ("fontconfig" ,fontconfig) - ("freetype" ,freetype) - ("giflib" ,giflib) - ("lcms" ,lcms) - ("libjpeg" ,libjpeg-turbo) - ("libpng" ,libpng) - ("libx11" ,libx11) - ("libxext" ,libxext) - ("libxrandr" ,libxrandr) - ("libxrender" ,libxrender) - ("libxt" ,libxt) - ("libxtst" ,libxtst))) - (native-inputs - `(("autoconf" ,autoconf) - ("make@4.2" ,gnu-make-4.2) - ("openjdk13:jdk" ,openjdk13 "jdk") - ("pkg-config" ,pkg-config) - ("unzip" ,unzip) - ("which" ,which) - ("zip" ,zip))) - (home-page "https://openjdk.java.net/projects/jdk/14"))) + (make-openjdk + openjdk13 "14.0.2" + "07k9bsbxwyf2z2n50z96nvhsdai916mxdxcr5lm44jz7f6xrwfq6" + (source (origin + (inherit (package-source base)) + (snippet ;override snippet + '(begin + ;; The m4 macro uses 'help' to search for builtins, which is + ;; not available in bash-minimal + (substitute* "make/autoconf/basics.m4" + (("if help") "if command -v")) + (for-each delete-file (find-files "." "\\.(bin|exe|jar)$")))))))) (define-public openjdk15 - (package - (inherit openjdk14) - (name "openjdk") - (version "15.0.3") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/openjdk/jdk15u") - (commit (string-append "jdk-" version "-ga")))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "168cr08nywp0q3vyj8njkhsmmnyd8rz9r58hk4xhzdzc6bdfkl1i")) - (patches - (search-patches "openjdk-15-xcursor-no-dynamic.patch" - "openjdk-10-hotspot-stack-size.patch")))) - (inputs - (cons `("libxcursor" ,libxcursor) ; for our patch to work - (package-inputs openjdk14))) - (native-inputs - `(("autoconf" ,autoconf) - ("openjdk14:jdk" ,openjdk14 "jdk") - ("pkg-config" ,pkg-config) - ("unzip" ,unzip) - ("which" ,which) - ("zip" ,zip))) - (home-page "https://openjdk.java.net/projects/jdk/15"))) + (make-openjdk + openjdk14 "15.0.3" + "168cr08nywp0q3vyj8njkhsmmnyd8rz9r58hk4xhzdzc6bdfkl1i" + (source (origin + (inherit (package-source base)) + (modules '()) + (snippet #f) + (patches + (append (search-patches "openjdk-15-xcursor-no-dynamic.patch") + (origin-patches (package-source base)))))) + (inputs + (modify-inputs (package-inputs base) + (append libxcursor))) ;for our patch to work + (native-inputs + (modify-inputs (package-native-inputs base) + (delete "make" ;remove old gnu-make-4.2 + "openjdk") ;to remove non-jdk output + (append `(,openjdk14 "jdk")))))) (define-public openjdk16 - (package - (inherit openjdk15) - (name "openjdk") - (version "16.0.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/openjdk/jdk16u") - (commit (string-append "jdk-" version "-ga")))) - (file-name (git-file-name name version)) - (sha256 - (base32 + (make-openjdk openjdk15 "16.0.1" "1ggddsbsar4dj2fycfqqqagqil7prhb30afvq6933rz7pa9apm2f")) - (patches (search-patches "openjdk-15-xcursor-no-dynamic.patch" - "openjdk-10-hotspot-stack-size.patch")))) - (native-inputs - `(("autoconf" ,autoconf) - ("openjdk15:jdk" ,openjdk15 "jdk") - ("pkg-config" ,pkg-config) - ("unzip" ,unzip) - ("which" ,which) - ("zip" ,zip))) - (arguments - (substitute-keyword-arguments (package-arguments openjdk15) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'make-templates-writable - (lambda _ - ;; The build system copies a few .template files from the - ;; source directory into the build directory and then modifies - ;; them in-place. So these files have to be writable. - (for-each make-file-writable - (find-files "src/java.base/share/classes/jdk/internal/misc/" - "\\.template$")))))))) - (home-page "https://openjdk.java.net/projects/jdk/16"))) (define-public openjdk17 - (package - (inherit openjdk16) - (name "openjdk") - (version "17.0.3") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/openjdk/jdk17u") - (commit (string-append "jdk-" version "-ga")))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0slmd6ww947gxpp4yr2wmr5z975bg86qh7zqfp2radf2q77ql65b")) - (patches - (search-patches "openjdk-15-xcursor-no-dynamic.patch")))) - (native-inputs - `(("autoconf" ,autoconf) - ("openjdk16:jdk" ,openjdk16 "jdk") - ("pkg-config" ,pkg-config) - ("unzip" ,unzip) - ("which" ,which) - ("zip" ,zip))) - (arguments - (substitute-keyword-arguments (package-arguments openjdk16) - ((#:phases phases) - `(modify-phases ,phases + (make-openjdk + openjdk16 "17.0.3" + "0slmd6ww947gxpp4yr2wmr5z975bg86qh7zqfp2radf2q77ql65b" + (arguments + (substitute-keyword-arguments (package-arguments openjdk16) + ((#:phases phases) + #~(modify-phases #$phases (replace 'fix-java-shebangs (lambda _ - ;; This file was "fixed" by patch-source-shebangs, but it requires - ;; this exact first line. + ;; 'blacklisted' was renamed back to 'blocked'. (substitute* "make/data/blockedcertsconverter/blocked.certs.pem" - (("^#!.*") "#! java BlockedCertsConverter SHA-256\n")))))))) - (home-page "https://openjdk.java.net/projects/jdk/17"))) + (("^#!.*") "#! java BlockedCertsConverter SHA-256\n")))))))))) + +(define-public openjdk18 + (make-openjdk openjdk17 "18" + "1bv6bdhkmwvn10l0xy8yi9xibds640hs5zsvx0jp7wrxa3qw4qy8")) ;;; Convenience alias to point to the latest version of OpenJDK. -(define-public openjdk openjdk17) +(define-public openjdk openjdk18) (define-public icedtea icedtea-8) @@ -13981,6 +13866,41 @@ library and the API is similar.") parse command line options/arguments in your CUI application.") (license license:expat))) +(define-public java-argparse4j + (package + (name "java-argparse4j") + (version "0.9.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/argparse4j/argparse4j") + (commit (string-append "argparse4j-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1i0j3zs1ln48n0g8a90vqbv6528mcswhzys6252yp0c8w1ai64fb")))) + (build-system ant-build-system) + (arguments + (list #:jar-name "java-argparse4j.jar" + #:source-dir "main/src/main/" + #:test-dir "main/src/test/" + #:jdk openjdk11 + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'copy-resources + (lambda _ + (copy-recursively "main/src/test/resources" + "target/test-classes") + (copy-recursively "main/src/main/resources" + "build/classes"))) + (replace 'install + (install-from-pom "pom.xml"))))) + (inputs (list java-junit)) + (home-page "https://argparse4j.github.io/") + (synopsis "Java command-line argument parser library") + (description "Argparse4j is a command line argument parser library for +Java based on Python's @code{argparse} module.") + (license license:expat))) + (define-public java-metadata-extractor (package (name "java-metadata-extractor") diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index baeebc3bc7..a41b985b3c 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Christopher Howard <christopher@librehacker.com> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2022 Jacob Hrbek <kreyren@rixotstudio.cz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,6 +42,8 @@ #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system python) #:use-module (gnu packages autotools) + #:use-module (gnu packages compression) + #:use-module (gnu packages curl) #:use-module (gnu packages gnupg) #:use-module (gnu packages gtk) #:use-module (gnu packages java) @@ -49,6 +52,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages readline) #:use-module (gnu packages tls) #:use-module (gnu packages xiph)) @@ -339,6 +343,72 @@ unmodified CircuitPython code to run on the host computer and interact with I2C and SPI devices attached to the USB Hub.") (license license:expat))) +(define-public ideviceinstaller + (package + (name "ideviceinstaller") + (version "1.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libimobiledevice/ideviceinstaller") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1xp0sjgfx2z19x9mxihn18ybsmrnrcfc55zbh5a44g3vrmagmlzz")))) + (build-system gnu-build-system) + (native-inputs (list autoconf automake libtool pkg-config)) + (inputs (list libimobiledevice libzip)) + (home-page "https://libimobiledevice.org/") + (synopsis "CLI Tool to manage apps and app archives on iOS devices") + (description "This package provides an interface to manage IPA format +files and applications for iOS devices, it's written in C") + (license license:gpl2))) + +(define-public libirecovery + (package + (name "libirecovery") + (version "1.0.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libimobiledevice/libirecovery") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0p9ncqnz5kb7qisw00ynvasw1hax5qx241h9nwppi2g544i9lbnr")))) + (build-system gnu-build-system) + (inputs (list readline libusb)) + (native-inputs (list autoconf automake libtool pkg-config)) + (home-page "https://libimobiledevice.org/") + (synopsis "Communication library with iBoot/iBSS of iOS devices via USB") + (description "Libirecovery is a cross-platform library which implements +communication to iBoot/iBSS found on Apple's iOS devices via USB.") + (license license:lgpl2.1))) + +(define-public idevicerestore + (package + (name "idevicerestore") + (version "1.0.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libimobiledevice/idevicerestore") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1w7ywp77xc6v4hifi3j9ywrj447vv7fkwg2w26w0lq95f3bkblqr")))) + (build-system gnu-build-system) + (inputs (list libusb libirecovery libimobiledevice libzip curl zlib)) + (native-inputs (list autoconf automake libtool pkg-config)) + (home-page "https://libimobiledevice.org/") + (synopsis "CLI tool to restore firmware files to iOS devices") + (description "This utility is used to restore bricked or otherwise +broken iOS devices.") + (license license:lgpl3+))) + (define-public libplist (package (name "libplist") diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 81e1fb8f70..a97b84d657 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -64,6 +64,7 @@ ;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2022 Rene Saavedra <nanuui@protonmail.com> ;;; Copyright © 2022 muradm <mail@muradm.net> +;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> ;;; ;;; This file is part of GNU Guix. @@ -353,7 +354,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-5.19-version "5.19.9") +(define-public linux-libre-5.19-version "5.19.11") (define-public linux-libre-5.19-gnu-revision "gnu") (define deblob-scripts-5.19 (linux-libre-deblob-scripts @@ -363,7 +364,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "092myqjixvy1k3ylcj0hfc4whfxapjvxsxm4gk30a3jv5dnh7mly"))) (define-public linux-libre-5.19-pristine-source (let ((version linux-libre-5.19-version) - (hash (base32 "0dvzjbyknzlx4ndz77fsm6v28fj2chxbq1z85fbc3bckcscbbm8a"))) + (hash (base32 "0wyrwdqm4dypx2jbb7d8c3b7fl7q5j434d6g9x2v6sw01gwx4m2m"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.19))) @@ -372,7 +373,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.68") +(define-public linux-libre-5.15-version "5.15.70") (define-public linux-libre-5.15-gnu-revision "gnu") (define deblob-scripts-5.15 (linux-libre-deblob-scripts @@ -382,12 +383,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "048r4synfax2ajyzlmp672b68yshxwlfccdah2vz1kh88rqfmgsc"))) (define-public linux-libre-5.15-pristine-source (let ((version linux-libre-5.15-version) - (hash (base32 "0zlb44bwpc0hwfynzz5v5b3lkv4aha7w5737ns1qb8cvbk5v7fqp"))) + (hash (base32 "0xhdjz7aqq13pkh1yr7ax3msqdb2xvrcpj464wibn1rl4pq2cz0s"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.15))) -(define-public linux-libre-5.10-version "5.10.143") +(define-public linux-libre-5.10-version "5.10.145") (define-public linux-libre-5.10-gnu-revision "gnu1") (define deblob-scripts-5.10 (linux-libre-deblob-scripts @@ -397,12 +398,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1981axxswghza3iadp94q54y8w30h9w9vyq4cbjiiv9alvbv0pb8"))) (define-public linux-libre-5.10-pristine-source (let ((version linux-libre-5.10-version) - (hash (base32 "14af0lsvgh1k0fh283d0nrm1pkrk2kaf2mz0ab59vlvjybg9wb7s"))) + (hash (base32 "0qdcqmwvc70hfgj8hb8ccwmnvwl41dvdffqrmyg3cyblwprr0ngw"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.10))) -(define-public linux-libre-5.4-version "5.4.213") +(define-public linux-libre-5.4-version "5.4.214") (define-public linux-libre-5.4-gnu-revision "gnu1") (define deblob-scripts-5.4 (linux-libre-deblob-scripts @@ -412,12 +413,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1vnjbdyssa7dwyjl9kg35alwvf7yh597cl74yr1wy2gk5bc9paw6"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "1wdssqmac66zqsnq5lx2z8ampa0rd3qswg0gm1sh6n3y8xlf2z76"))) + (hash (base32 "1ny57g5agk8sq6cbp2crjiay5bfkwqy32i4a5yw7x0lch2s7kg4s"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.258") +(define-public linux-libre-4.19-version "4.19.259") (define-public linux-libre-4.19-gnu-revision "gnu1") (define deblob-scripts-4.19 (linux-libre-deblob-scripts @@ -427,12 +428,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "002sw8b272dzkp3vff0x89sbj5p3vrrikqygfdgrsxv7k3w4459x"))) + (hash (base32 "1ska6v95zjjj44h53gi34rnbsrm4507jwxi3kklnky6d0aykiy1z"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.293") +(define-public linux-libre-4.14-version "4.14.294") (define-public linux-libre-4.14-gnu-revision "gnu1") (define deblob-scripts-4.14 (linux-libre-deblob-scripts @@ -442,12 +443,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 "047gl9nqrvpi9jaxlmhfnx848qvnrhf13710ka8fwn3lyv22k342"))) + (hash (base32 "069i11hv4fhwc9dirqbag1g1k3fn21wzpfggah4f1a41whf98apy"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.328") +(define-public linux-libre-4.9-version "4.9.329") (define-public linux-libre-4.9-gnu-revision "gnu1") (define deblob-scripts-4.9 (linux-libre-deblob-scripts @@ -457,7 +458,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 "1px2np3k796cjwq1sp9gfxyql6hqyqya82vq9cb5y0canq6fqmg8"))) + (hash (base32 "168hy7vhgw2sfknflhhf6ykhkp4xs8v0igii6ivjlvs3dmwm21sj"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) @@ -1342,6 +1343,31 @@ battery charging thresholds, keyboard backlight, fans and thermal monitors, and the notification, WiFi, and Bluetooth LED.") (license license:gpl2))) +(define-public ec + (package + (name "ec") + (version (package-version linux-libre)) + (source (package-source linux-libre)) + (build-system gnu-build-system) + (arguments + (list #:make-flags #~(list (string-append "sbindir=" + #$output "/sbin") + "INSTALL=install" "STRIPCMD=true") + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'enter-subdirectory + (lambda _ + (chdir "tools/power/acpi/tools/ec"))) + (delete 'configure)) ;no configure script + #:tests? #f)) ;no tests + (home-page (package-home-page linux-libre)) + (synopsis + "Utility for reading or writing @acronym{EC, Embedded Controller} registers") + (description + "This utility can read or write specific registers or all the available +registers of the @acronym{EC, Embedded Controller} supported by the +@code{ec_sys} Linux driver.") + (license license:gpl2))) + (define-public lkrg (package (name "lkrg") @@ -8659,7 +8685,11 @@ of Linux application development.") #:configure-flags #~(list (string-append "-Dudevrulesdir=" #$output "/lib/udev/rules.d") "-Dsystemd=disabled" - "-Dsession-managers=[]"))) + "-Dsession-managers=[]" + "-Dman=enabled"))) + (native-inputs + (modify-inputs (package-native-inputs pipewire) + (prepend python-docutils))) (inputs (modify-inputs (package-inputs pipewire) (prepend avahi bluez diff --git a/gnu/packages/lisp-check.scm b/gnu/packages/lisp-check.scm index d3f43a4f60..7002cd9d92 100644 --- a/gnu/packages/lisp-check.scm +++ b/gnu/packages/lisp-check.scm @@ -575,7 +575,7 @@ testing. It is an extension of the library written by Chris Riesbeck.") ;; See https://github.com/AccelerationNet/symbol-munger/issues/4 (package (name "sbcl-lisp-unit2") - (version "0.9.3") + (version "0.9.4") (source (origin (method git-fetch) @@ -584,7 +584,7 @@ testing. It is an extension of the library written by Chris Riesbeck.") (commit version))) (file-name (git-file-name "cl-lisp-unit2" version)) (sha256 - (base32 "0y7k6fd4mf7ggc8kdrbg8flkj5j7i7ki1350wnj6hqax7cmh4xv5")))) + (base32 "0dnq0qvbsn7ciknvmwzfjnimlzq1gdkv5xd87agmhxm1cpm1ksz0")))) (build-system asdf-build-system/sbcl) (inputs (list sbcl-alexandria sbcl-cl-interpol sbcl-iterate diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 07fca27e1e..f23b4a70bb 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -214,6 +214,38 @@ with dice-roll statistics.") (define-public ecl-alea (sbcl-package->ecl-package sbcl-alea)) +(define-public sbcl-bubble-operator-upwards + (let ((commit "846275a318b960de81b62caecb1e31930f70aef6") + (revision "0")) + (package + (name "sbcl-bubble-operator-upwards") + (version (git-version "1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Hexstream/bubble-operator-upwards") + (commit commit))) + (file-name (git-file-name "cl-bubble-operator-upwards" version)) + (sha256 + (base32 "0ybsy29ms3yrxgr7f2146lr6z4vm070dvdyzvwwxjh4dgm9na7bi")))) + (build-system asdf-build-system/sbcl) + (native-inputs + (list sbcl-parachute)) + (home-page "https://www.hexstreamsoft.com/libraries/bubble-operator-upwards/") + (synopsis "Function that bubbles an operator upwards in a form") + (description + "@code{bubble-operator-upwards} is a function that bubbles an operator +upwards in a form, demultiplexing all alternative branches by way of +cartesian product.") + (license license:unlicense)))) + +(define-public cl-bubble-operator-upwards + (sbcl-package->cl-source-package sbcl-bubble-operator-upwards)) + +(define-public ecl-bubble-operator-upwards + (sbcl-package->ecl-package sbcl-bubble-operator-upwards)) + (define-public sbcl-map-bind (let ((commit "532d55d93540c632e22b2cd264b5daa5f9d3d900") (revision "0")) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 77706c88ae..e21b60ec75 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -988,7 +988,7 @@ the HTML documentation of TXR.") (define-public txr (package (name "txr") - (version "281") + (version "282") (source (origin (method git-fetch) @@ -997,7 +997,7 @@ the HTML documentation of TXR.") (commit (string-append "txr-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "18sncprahl41hcy9l6mc4vwlaiamkwrs805974g4vci4waccb37k")))) + (base32 "1hzni1v9qlh1vy8spz8prink7v9hp2bin15vnyfha2ax306w6dq5")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -1359,7 +1359,7 @@ executable Common Lisp image. It is similar to cl-launch and hu.dwim.build.") (define-public eisl (package (name "eisl") - (version "2.62") + (version "2.63") (source (origin (method git-fetch) @@ -1368,7 +1368,7 @@ executable Common Lisp image. It is similar to cl-launch and hu.dwim.build.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0yqzj64h9z4dlf2jz5chy6l6lggd4scgsd06crvfi9h1j1cxjvgi")))) + (base32 "01fwffk71c1cvq7pf50xwpl2a32rbghcymllg67wvm07yfw3gi0q")))) (build-system gnu-build-system) (inputs (list bash-minimal freeglut gdbm libiconv ncurses tcl tk)) diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index c3bb1e8f5b..829c819975 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014 Raimon Grau <raimonster@gmail.com> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2016, 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2020-2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 doncatnip <gnopap@gmail.com> ;;; Copyright © 2016, 2017, 2019 Clément Lassieur <clement@lassieur.org> @@ -61,7 +61,8 @@ #:use-module (gnu packages tls) #:use-module (gnu packages vim) #:use-module (gnu packages xml) - #:use-module (gnu packages xorg)) + #:use-module (gnu packages xorg) + #:use-module (srfi srfi-1)) (define-public lua (package @@ -177,7 +178,8 @@ for configuration, scripting, and rapid prototyping.") (synopsis "Just in time compiler for Lua programming language version 5.1") ;; On powerpc64le-linux, the build fails with an error: "No support for ;; PowerPC 64 bit mode (yet)". See: https://issues.guix.gnu.org/49220 - (supported-systems (delete "powerpc64le-linux" %supported-systems)) + (supported-systems (fold delete %supported-systems + (list "powerpc64le-linux" "riscv64-linux"))) (description "LuaJIT is a Just-In-Time Compiler (JIT) for the Lua programming language. Lua is a powerful, dynamic and light-weight programming diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 666f9777da..e702e499fc 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -295,19 +295,36 @@ training, HMM clustering, HMM mixtures.") (define-public guile-aiscm (package (name "guile-aiscm") - (version "0.23.1") + (version "0.24.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/wedesoft/aiscm") - (commit "c78b91edb7c17c6fbf3b294452f44e91d75e3c67"))) + (commit "2e16e38391bf1638f1dd9a1cf4b25a25f6626078"))) (file-name (git-file-name name version)) (sha256 (base32 - "09rdbcr8dinzijyx9h940ann91yjlbg0fangx365llhvy354n840")))) + "1gwqpzl6irpaszkpxaf5wliwq19280632hlgxs3ikjkfg8mkqql0")))) (build-system gnu-build-system) (arguments (list + #:configure-flags + #~(list (string-append "OPENCV_CFLAGS=-I" #$(this-package-input "opencv") + "/include/opencv4") + (let ((modules + (list "aruco" "barcode" "bgsegm" "bioinspired" + "calib3d" "ccalib" "core" "datasets" "dnn" + "dnn_objdetect" "dnn_superres" "dpm" "face" + "features2d" "flann" "freetype" "fuzzy" "hdf" + "hfs" "highgui" "img_hash" "imgcodecs" "imgproc" + "intensity_transform" "line_descriptor" "mcc" + "ml" "objdetect" "optflow" "phase_unwrapping" + "photo" "plot" "quality" "rapid" "reg" "rgbd" + "saliency" "shape" "stereo" "stitching" + "structured_light" "superres" "surface_matching" + "text" "tracking" "video" "videoio" "videostab" + "wechat_qrcode" "ximgproc" "xobjdetect" "xphoto"))) + (format #false "OPENCV_LIBS=~{-lopencv_~a~^ ~}" modules))) #:make-flags #~(list (string-append "GUILE_CACHE=" #$output "/lib/guile/3.0/site-ccache") (string-append "GUILE_EXT=" #$output "/lib/guile/3.0/extensions") @@ -318,10 +335,23 @@ training, HMM clustering, HMM mixtures.") (lambda _ (substitute* "doc/Makefile.am" (("\\$\\(DATE\\)") "1970-01-01")))) + (add-after 'unpack 'find-clearsilver + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "configure.ac" + (("/usr/local/include/ClearSilver") + (string-append (assoc-ref inputs "clearsilver") + "/include/ClearSilver"))) + (substitute* "aiscm/Makefile.am" + (("-lneo_utl" m) + (string-append m " -lstreamhtmlparser"))) + (setenv "C_INCLUDE_PATH" + (string-append (assoc-ref inputs "clearsilver") + "/include/ClearSilver:" + (or (getenv "C_INCLUDE_PATH") ""))))) (add-after 'unpack 'use-llvm-config (lambda _ (substitute* "m4/ax_llvmc.m4" - (("llvm-config-13") "llvm-config") + (("llvm-config-11") "llvm-config") ;; For some reason this library is not on the link list. (("(LLVM_LIBS=\"\\$\\(\\$ac_llvm_config_path --libs \\$1\\))\"" _ m) (string-append m " -lLLVMMCJIT\""))) @@ -329,10 +359,17 @@ training, HMM clustering, HMM mixtures.") ;; Because of this message: ;; symbol lookup error: ./.libs/libguile-aiscm-core.so: undefined symbol: LLVMInitializeX86TargetInfo ;; This probably needs to differ when building on architectures - ;; other than x86_64p + ;; other than x86_64. (substitute* "aiscm/Makefile.am" (("LLVM_LIBS\\)") "LLVM_LIBS) \ -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info")))) + ;; This test fails because our version of tensorflow is too old + ;; to provide tf-string-length. + (add-after 'unpack 'disable-broken-test + (lambda _ + (substitute* "tests/test_tensorflow.scm" + (("\\(test-eqv \"determine string length" m) + (string-append "#;" m))))) ;; Use Clang instead of GCC. (add-before 'configure 'prepare-build-environment (lambda _ @@ -341,10 +378,12 @@ training, HMM clustering, HMM mixtures.") (setenv "CC" "clang") (setenv "CXX" "clang++")))))) (inputs - (list ffmpeg + (list clearsilver + ffmpeg-4 freeglut guile-3.0 imagemagick + libgc libjpeg-turbo libomp libxi @@ -354,12 +393,15 @@ training, HMM clustering, HMM mixtures.") libxv mesa mjpegtools + opencv pandoc - pulseaudio)) + pulseaudio + tensorflow)) (native-inputs - (list clang-13 - llvm-13 + (list clang-11 + llvm-11 pkg-config + protobuf-c autoconf automake gettext-minimal @@ -372,68 +414,7 @@ Performance is achieved by using the LLVM JIT compiler.") (license license:gpl3+))) (define-public guile-aiscm-next - (let ((commit "b17ed538c303badc419a7c358d91f266d2a8c354") - (revision "1")) - (package - (inherit guile-aiscm) - (name "guile-aiscm-next") - (version (git-version "0.23.1" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/wedesoft/aiscm") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0px7r7lfskbp1prdrfrcvrsc4wjrk3ahkigsw4pqvny6zs7jnvc0")))) - (arguments - (substitute-keyword-arguments (package-arguments guile-aiscm) - ((#:configure-flags flags '()) - #~(list (string-append "OPENCV_CFLAGS=-I" #$(this-package-input "opencv") - "/include/opencv4") - (let ((modules - (list "aruco" "barcode" "bgsegm" "bioinspired" - "calib3d" "ccalib" "core" "datasets" "dnn" - "dnn_objdetect" "dnn_superres" "dpm" "face" - "features2d" "flann" "freetype" "fuzzy" "hdf" - "hfs" "highgui" "img_hash" "imgcodecs" "imgproc" - "intensity_transform" "line_descriptor" "mcc" - "ml" "objdetect" "optflow" "phase_unwrapping" - "photo" "plot" "quality" "rapid" "reg" "rgbd" - "saliency" "shape" "stereo" "stitching" - "structured_light" "superres" "surface_matching" - "text" "tracking" "video" "videoio" "videostab" - "wechat_qrcode" "ximgproc" "xobjdetect" "xphoto"))) - (format #false "OPENCV_LIBS=~{-lopencv_~a~^ ~}" modules)))) - ((#:phases phases '%standard-phases) - `(modify-phases ,phases - (add-after 'unpack 'find-clearsilver - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "configure.ac" - (("/usr/local/include/ClearSilver") - (string-append (assoc-ref inputs "clearsilver") - "/include/ClearSilver"))) - (substitute* "aiscm/Makefile.am" - (("-lneo_utl" m) - (string-append m " -lstreamhtmlparser"))) - (setenv "C_INCLUDE_PATH" - (string-append (assoc-ref inputs "clearsilver") - "/include/ClearSilver:" - (or (getenv "C_INCLUDE_PATH") ""))))) - ;; This test fails because our version of tensorflow is too old - ;; to provide tf-string-length. - (add-after 'unpack 'disable-broken-test - (lambda _ - (substitute* "tests/test_tensorflow.scm" - (("\\(test-eqv \"determine string length" m) - (string-append "#;" m))))))))) - (inputs - (modify-inputs (package-inputs guile-aiscm) - (append clearsilver opencv tensorflow libgc))) - (native-inputs - (modify-inputs (package-native-inputs guile-aiscm) - (append protobuf-c)))))) + (deprecated-package "guile-aiscm-next" guile-aiscm)) (define-public mcl (package @@ -3165,7 +3146,7 @@ of Hidden Markov Models.") (define-public liblantern (package (name "liblantern") - (version "0.8.0") + (version "0.8.1") (source (origin (method git-fetch) @@ -3174,48 +3155,53 @@ of Hidden Markov Models.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1xkqyj1clj1r70yrp5qpbpyf0xmh9c128005idshi7vk883wfp77")))) + (base32 "1q57jsqzv9b70svr6whf04yd08np3x15qq1zm06fbl0sqf0kfn7p")))) (build-system cmake-build-system) (arguments (list #:tests? #false ;no test target #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'chdir - (lambda _ (chdir "lantern"))) - (add-after 'chdir 'do-not-download-binaries - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "CMakeLists.txt" - (("find_package\\(Torch.*") "set(TORCH_CXX_FLAGS \"-ltorch\")\n") - (("retrieve_lib\\(.*") "")) - (setenv "LIBRARY_PATH" - (string-append - (search-input-directory - inputs "/lib/python3.10/site-packages/torch/lib") - ":" (or (getenv "LIBRARY_PATH") ""))) - (setenv "CPLUS_INCLUDE_PATH" - (string-append - (search-input-directory - inputs "lib/python3.10/site-packages/torch/include/torch/csrc/api/include/") - ":" - (search-input-directory - inputs "lib/python3.10/site-packages/torch/include/") - ":" - (or (getenv "CPLUS_INCLUDE_PATH") ""))) - (setenv "C_INCLUDE_PATH" - (string-append - (search-input-directory - inputs "lib/python3.10/site-packages/torch/include/") - ":" - (or (getenv "C_INCLUDE_PATH") ""))))) - (replace 'install - (lambda _ - (install-file - "../build/liblantern.so" - (string-append #$output "/lib")) - (copy-recursively - "../lantern/include" - (string-append #$output "/include"))))))) + (let ((python-version (version-major+minor (package-version python)))) + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "lantern"))) + (add-after 'chdir 'do-not-download-binaries + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "CMakeLists.txt" + (("find_package\\(Torch.*") "set(TORCH_CXX_FLAGS \"-ltorch\")\n") + (("retrieve_lib\\(.*") "")) + (let ((site-packages (string-append "/lib/python" + #$python-version + "/site-packages"))) + (setenv "LIBRARY_PATH" + (string-append + (search-input-directory + inputs (string-append site-packages "/torch/lib")) + ":" (or (getenv "LIBRARY_PATH") ""))) + (setenv "CPLUS_INCLUDE_PATH" + (string-append + (search-input-directory + inputs (string-append + site-packages "/torch/include/torch/csrc/api/include/")) + ":" + (search-input-directory + inputs (string-append site-packages "/torch/include/")) + ":" + (or (getenv "CPLUS_INCLUDE_PATH") ""))) + (setenv "C_INCLUDE_PATH" + (string-append + (search-input-directory + inputs (string-append site-packages "/torch/include/")) + ":" + (or (getenv "C_INCLUDE_PATH") "")))))) + (replace 'install + (lambda _ + (install-file + "../build/liblantern.so" + (string-append #$output "/lib")) + (copy-recursively + "../lantern/include" + (string-append #$output "/include")))))))) (inputs (list python-pytorch-for-r-torch)) (home-page "https://github.com/mlverse/torch/") (synopsis "C API to libtorch") diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index aa15666a5c..4d29265bb2 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -7598,6 +7598,7 @@ of C, Java, or Ada programs.") ocaml-graph ocaml-yojson ocaml-zarith + ocaml-lablgtk3-sourceview3 lablgtk3 why3)) (native-search-paths diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 28ec4eb9a8..b7794c4e89 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -27,6 +27,7 @@ #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system ant) + #:use-module (guix gexp) #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages compression) @@ -1780,31 +1781,33 @@ artifactId=maven-core" ,(package-version maven-core-bootstrap)))) (arguments `(#:jar-name "maven-slf4j-provider.jar" #:source-dir "maven-slf4j-provider/src/main/java" - #:tests? #f; no tests - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'unpack-slf4j - (lambda* (#:key inputs #:allow-other-keys) - (mkdir-p "generated-sources") - (with-directory-excursion "generated-sources" - (invoke "tar" "xf" (assoc-ref inputs "java-slf4j-simple-source")) - (for-each delete-file (find-files "." "StaticLoggerBinder.java"))) - (for-each - (lambda (simple) - (for-each - (lambda (java) - (copy-file java - (string-append - "maven-slf4j-provider/src/main/java/org/slf4j/impl/" - (basename java)))) - (find-files (string-append simple "/src/main/java/") "\\.java$"))) - (find-files "generated-sources" "slf4j-simple" #:directories? #t)))) - (replace 'install - (install-from-pom "maven-slf4j-provider/pom.xml"))))) - (inputs - `(("java-slf4j-api" ,java-slf4j-api) - ("java-slf4j-simple-source" ,(package-source java-slf4j-simple)) - ("maven-shared-utils" ,maven-shared-utils))) + #:tests? #f ;no tests + #:phases (modify-phases %standard-phases + (add-after 'unpack 'unpack-slf4j + (lambda* (#:key inputs #:allow-other-keys) + (mkdir-p "generated-sources") + (copy-recursively (assoc-ref inputs + "java-slf4j-simple-source") + "generated-sources") + (with-directory-excursion "generated-sources" + (for-each delete-file + (find-files "." "StaticLoggerBinder.java"))) + (for-each (lambda (simple) + (for-each (lambda (java) + (copy-file java + (string-append + "maven-slf4j-provider/src/main/java/org/slf4j/impl/" + (basename java)))) + (find-files (string-append simple + "/src/main/java/") + "\\.java$"))) + (find-files "generated-sources" "slf4j-simple" + #:directories? #t)))) + (replace 'install + (install-from-pom "maven-slf4j-provider/pom.xml"))))) + (inputs `(("java-slf4j-api" ,java-slf4j-api) + ("java-slf4j-simple-source" ,(package-source java-slf4j-simple)) + ("maven-shared-utils" ,maven-shared-utils))) (native-inputs (list unzip)))) (define-public maven-embedder @@ -3012,6 +3015,50 @@ Maven project dependencies.") maven-plugin-annotations maven-enforcer-parent-pom)))) +(define-public maven-sisu-plugin + (package + (name "maven-sisu-plugin") + (version "0.3.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/eclipse/sisu.mojos/") + (commit (string-append "releases/" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "00hb7v6hz8jg0mgkj3cl0nmqz49za4k2a0rbjr4gdhy2m7f34sq3")))) + (build-system ant-build-system) + (arguments + (list #:jar-name "maven-sisu-plugin.jar" + #:source-dir "src" + #:tests? #f ;no tests + #:phases #~(modify-phases %standard-phases + (add-before 'build 'generate-plugin.xml + (generate-plugin.xml "pom.xml" "sisu" + "src/main/java/org/eclipse/sisu/mojos/" + (list (list "IndexMojo.java") + (list "MainIndexMojo.java") + (list "TestIndexMojo.java")))) + (replace 'install + (install-from-pom "pom.xml"))))) + (propagated-inputs (list java-sonatype-oss-parent-pom-9)) + (inputs (list maven-artifact + maven-plugin-api + maven-plugin-annotations + maven-core + maven-common-artifact-filters + java-slf4j-nop + java-eclipse-sisu-inject + java-plexus-utils + java-plexus-build-api + java-slf4j-api)) + (home-page "https://www.eclipse.org/sisu/") + (synopsis "Maven plugin that generates annotation indexes for Sisu") + (description "Maven plugin that generates annotation indexes for Sisu to +avoid classpath scanning at runtime.") + (license license:epl1.0))) + (define-public maven-artifact-transfer (package (name "maven-artifact-transfer") diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index b5600d4baf..c19ec45a35 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -3196,7 +3196,7 @@ designed for experienced users.") (define-public matterbridge (package (name "matterbridge") - (version "1.24.0") + (version "1.25.2") (source (origin (method git-fetch) (uri (git-reference @@ -3205,7 +3205,7 @@ designed for experienced users.") (file-name (git-file-name name version)) (sha256 (base32 - "0cd70x9685162c0imdici1ipl9lziq700wzyb5bsg610wfak3ms7")))) + "0csvxsgl62fjkrmk0wy64h2qaiy16m0wh6pqfbhz0kfacq16p9an")))) ;; Using the go-build-system results in the same error message ;; than in the bug 1551[1]. So we fix it by running go build ;; manually in the git repository as-is as this is the solution diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm index e2cdf7c448..51ead2fe9b 100644 --- a/gnu/packages/monitoring.scm +++ b/gnu/packages/monitoring.scm @@ -12,6 +12,8 @@ ;;; Copyright © 2021 Raphaël Mélotte <raphael.melotte@mind.be> ;;; Copyright © 2022 Paul A. Patience <paul@apatience.com> ;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> +;;; Copyright © 2022 ( <paren@disroot.org> +;;; Copyright © 2022 Mathieu Laparie <mlaparie@disr.it> ;;; ;;; This file is part of GNU Guix. ;;; @@ -50,6 +52,7 @@ #:use-module (gnu packages django) #:use-module (gnu packages gd) #:use-module (gnu packages gettext) + #:use-module (gnu packages gnome) ;libnotify #:use-module (gnu packages image) #:use-module (gnu packages mail) #:use-module (gnu packages ncurses) @@ -758,3 +761,46 @@ display resumes. (description "StatsD is a friendly front-end to Graphite. This package provides a simple Python client for the StatsD daemon.") (license license:expat))) + +(define-public batsignal + (package + (name "batsignal") + (version "1.6.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/electrickite/batsignal") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0b1j6mljnqgxwr3id3r9shzhsjk5r0qdh9cxkvy1dm4kzbyc4dxq")))) + (build-system gnu-build-system) + (arguments + (list #:make-flags + #~(list (string-append "PREFIX=" #$output) + (string-append "CC=" #$(cc-for-target))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-cross-compile + (lambda _ + (substitute* "Makefile" + (("pkg-config") + #$(pkg-config-for-target))))) + (delete 'configure) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "./batsignal" "-v"))))))) + (inputs (list libnotify)) + (native-inputs (list pkg-config)) + (home-page "https://github.com/electrickite/batsignal") + (synopsis "Power monitoring tool") + (description + "This package provides a daemon that monitors device power levels, +notifying the user and optionally running a command when it reaches +user-configured power thresholds. This can be used to force powering off a +laptop when the battery gets below critical levels, instead of damaging the +battery.") + (license license:isc))) + diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index a69c7fbad8..39aa8041a7 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -867,14 +867,14 @@ systems with no further dependencies.") (define-public blueman (package (name "blueman") - (version "2.2.3") + (version "2.3.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/blueman-project/blueman/releases" "/download/" version "/blueman-" version ".tar.xz")) (sha256 - (base32 "1s86w4mklzr8hvbgl3nkg8jycl6grww533dhzw8gdn5glqfpkpbf")))) + (base32 "1bjh0cx9j2akygiqyxm7g0q74jyx9hpgf186gv3m31vks5zpvkw4")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags (list "--enable-polkit" @@ -942,30 +942,30 @@ systems with no further dependencies.") (map (lambda (prog) (string-append libexec prog)) '("mechanism" "rfcomm-watcher")))))))))) (native-inputs - `(("cython" ,python-cython) - ("glib:bin" ,glib "bin") - ("gobject-introspection" ,gobject-introspection) - ("gtk+:bin" ,gtk+ "bin") - ("intltool" ,intltool) - ("pkg-config" ,pkg-config))) + (list python-cython + `(,glib "bin") + gobject-introspection + `(,gtk+ "bin") + intltool + pkg-config)) (inputs - `(("bluez" ,bluez) - ("dbus" ,dbus) - ("librsvg" ,librsvg) - ("glib" ,glib) - ("gtk+" ,gtk+) - ("iproute2" ,iproute) - ("iptables" ,iptables) - ("net-tools" ,net-tools) - ("pango" ,pango) - ("polkit" ,polkit) - ("ppp" ,ppp) - ("pulseaudio" ,pulseaudio) - ("pycairo" ,python-pycairo) - ("pygobject" ,python-pygobject) - ("python" ,python-wrapper) - ("libappindicator" ,libappindicator) - ("libnm" ,network-manager))) + (list bluez + dbus + librsvg + glib + gtk+ + iproute + iptables + net-tools + pango + polkit + ppp + pulseaudio + python-pycairo + python-pygobject + python-wrapper + libappindicator + network-manager)) (synopsis "GTK+ Bluetooth manager") (description "Blueman is a Bluetooth management utility using the Bluez D-Bus backend. It is designed to be easy to use for most common Bluetooth @@ -2747,6 +2747,10 @@ procedure calls (RPCs).") "--disable-static" ; XXX still installs libopenvswitchavx512.a "--localstatedir=/var" "--with-dbdir=/var/lib/openvswitch") + ;; Tests fail in different ways, on different x86_64-linux hardware: + ;; 25. bfd.at:268: 25. bfd - bfd decay (bfd.at:268): FAILED (bfd.at:397) + ;; 1040. dpif-netdev - meters (dpif-netdev.at:269): FAILED (dpif-netdev.at:376) + #:tests? #f #:phases (modify-phases %standard-phases (add-after 'unpack 'use-absolute-/bin/sh diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 89dcb1d60a..b8f8a6f70b 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -26,6 +26,7 @@ ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com> +;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1078,54 +1079,52 @@ the OCaml core distribution.") (license license:lgpl2.1+))); with linking exception (define-public emacs-tuareg - ;; Last upstream release on Sept., 14th, 2018, since then "Package cl - ;; deprecated" or 'lexical-binding' and others had been fixed. - (let ((commit "ccde45bbc292123ec20617f1af7f7e19f7481545") - (revision "0")) - (package - (name "emacs-tuareg") - (version (git-version "2.2.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ocaml/tuareg") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1yxv4bnqarilnpg5j7wywall8170hwvm0q4xx06yqjgcn8pq1lac")))) - (build-system gnu-build-system) - (native-inputs - `(("emacs" ,emacs-minimal) - ("opam" ,opam))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'make-git-checkout-writable - (lambda _ - (for-each make-file-writable (find-files ".")) - #t)) - (delete 'configure) - (add-before 'install 'fix-install-path - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "Makefile" - (("/emacs/site-lisp") - (string-append (assoc-ref %outputs "out") - "/share/emacs/site-lisp/"))) - #t)) - (add-after 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - (symlink "tuareg.el" - (string-append (assoc-ref outputs "out") - "/share/emacs/site-lisp/" - "tuareg-autoloads.el")) - #t))))) - (home-page "https://github.com/ocaml/tuareg") - (synopsis "OCaml programming mode, REPL, debugger for Emacs") - (description "Tuareg helps editing OCaml code, to highlight important + (package + (name "emacs-tuareg") + (version "3.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocaml/tuareg") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "115vm0hq4xkwfd3w0j8xqhkdgcirlxpnwzwxv02c27583hj056is")))) + (build-system gnu-build-system) + (arguments + (list + #:imported-modules `(,@%gnu-build-system-modules + (guix build emacs-build-system) + (guix build emacs-utils)) + #:modules '((guix build gnu-build-system) + ((guix build emacs-build-system) #:prefix emacs:) + (guix build emacs-utils) + (guix build utils)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'make-git-checkout-writable + (lambda _ + (for-each make-file-writable (find-files ".")))) + (delete 'configure) + (add-before 'install 'fix-install-path + (lambda _ + (substitute* "Makefile" + (("/emacs/site-lisp") + (emacs:elpa-directory #$output))))) + (add-after 'install 'post-install + (lambda _ + (symlink "tuareg.el" + (string-append (emacs:elpa-directory #$output) + "/tuareg-autoloads.el"))))))) + (native-inputs + (list emacs-minimal opam)) + (home-page "https://github.com/ocaml/tuareg") + (synopsis "OCaml programming mode, REPL, debugger for Emacs") + (description "Tuareg helps editing OCaml code, to highlight important parts of the code, to run an OCaml REPL, and to run the OCaml debugger within Emacs.") - (license license:gpl2+)))) + (license license:gpl2+))) (define-public ocaml-menhir (package @@ -1954,7 +1953,7 @@ ocaml-migrate-parsetree") (define-public ocaml-linenoise (package (name "ocaml-linenoise") - (version "1.3.1") + (version "1.4.0") (source (origin (method git-fetch) (uri (git-reference @@ -1963,7 +1962,7 @@ ocaml-migrate-parsetree") (file-name (git-file-name name version)) (sha256 (base32 - "0s98695skz1wvrak0rdlh80w3cv6piic1dxqpn9rv1yymbklafg4")))) + "1gk11pflal08kg2dz1b5zrlpnhbxpg2rwf8cknw3vzmq6gsmk2kc")))) (build-system dune-build-system) (arguments ;; No tests @@ -2701,7 +2700,7 @@ module Unix.") (define-public ocaml-lwt-log (package (name "ocaml-lwt-log") - (version "1.1.1") + (version "1.1.2") (source (origin (method git-fetch) (uri (git-reference @@ -2710,7 +2709,7 @@ module Unix.") (file-name (git-file-name name version)) (sha256 (base32 - "1n12i1rmn9cjn6p8yr6qn5dwbrwvym7ckr7bla04a1xnq8qlcyj7")))) + "0mbv5l9gj09jd1c4lr2axcl4v043ipmhjd9xrk27l4hylzfc6d1q")))) (build-system dune-build-system) (arguments `(#:tests? #f)); require lwt_ppx @@ -3068,7 +3067,7 @@ string values and to directly encode characters in OCaml Buffer.t values.") (define-public ocaml-uunf (package (name "ocaml-uunf") - (version "14.0.0") + (version "15.0.0") (source (origin (method url-fetch) @@ -3076,13 +3075,18 @@ string values and to directly encode characters in OCaml Buffer.t values.") version".tbz")) (sha256 (base32 - "17wv0nm3vvwcbzb1b09akw8jblmigyhbfmh1sy9lkb5756ni94a2")))) + "1s5svvdqfbzw16rf1h0zm9n92xfdr0qciprd7lcjza8z1hy6pyh7")))) (build-system ocaml-build-system) (arguments `(#:build-flags (list "build" "--tests" "true") #:phases (modify-phases %standard-phases (delete 'configure) + ;; reported and fixed upstream, will be available in next version. + (add-before 'build 'fix-test + (lambda _ + (substitute* "test/test.ml" + (("test/NormalizationTest.txt") "-")))) (add-before 'check 'check-data (lambda* (#:key inputs #:allow-other-keys) (copy-file (assoc-ref inputs "NormalizationTest.txt") @@ -3101,7 +3105,7 @@ string values and to directly encode characters in OCaml Buffer.t values.") "/ucd/NormalizationTest.txt")) (file-name (string-append "NormalizationTest-" version ".txt")) (sha256 - (base32 "0c93pqdkksf7b7zw8y2w0h9i5kkrsdjmh2cr5clrrhp6mg10rcvw")))))) + (base32 "09pkawfqpgy2xnv2nkkgmxv53rx4anprg65crbbcm02a2p6ci6pv")))))) (propagated-inputs (list ocaml-uutf)) (home-page "https://erratique.ch/software/uunf") (synopsis "Unicode text normalization for OCaml") @@ -4468,6 +4472,35 @@ sensitive completion, colors, and more.") ("ocaml-zed" ,ocaml-zed))) (properties '())))) +(define-public ocaml-ansiterminal + (package + (name "ocaml-ansiterminal") + (version "0.8.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Chris00/ANSITerminal") + (commit version) + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "052qnc23vmxp90yympjz9q6lhqw98gs1yvb3r15kcbi1j678l51h")))) + (build-system dune-build-system) + (arguments + `(#:test-target "tests")) + (home-page "https://github.com/Chris00/ANSITerminal") + (synopsis + "Basic control of ANSI compliant terminals and the windows shell") + (description + "ANSITerminal is a module allowing to use the colors and cursor +movements on ANSI terminals.") + ;; Variant of the LGPL3+ which permits + ;; static and dynamic linking when producing binary files. + ;; In other words, it allows one to link to the library + ;; when compiling nonfree software. + (license (license:non-copyleft "LICENSE.md")))) + (define-public ocaml-ptmap (package (name "ocaml-ptmap") @@ -7998,7 +8031,7 @@ support for Mparser."))) (define-public lablgtk3 (package (name "lablgtk") - (version "3.1.1") + (version "3.1.2") (source (origin (method git-fetch) (uri (git-reference @@ -8007,10 +8040,11 @@ support for Mparser."))) (file-name (git-file-name name version)) (sha256 (base32 - "11qfc39cmwfwfpwmjh6wh98zwdv6p73bv8hqwcsss869vs1r7gmn")))) + "0b17w9qb1f02h3313cm62mrqlhwxficppzm72n7sf8mmwrylxbm7")))) (build-system dune-build-system) (arguments - `(#:test-target "." + `(#:package "lablgtk3" + #:test-target "." #:phases (modify-phases %standard-phases (add-before 'build 'make-writable @@ -8026,7 +8060,7 @@ support for Mparser."))) (propagated-inputs (list ocaml-cairo2)) (inputs - (list camlp5 gtk+ gtksourceview-3 gtkspell3)) + (list camlp5 gtk+)) (native-inputs (list pkg-config)) (home-page "https://github.com/garrigue/lablgtk") @@ -8040,6 +8074,19 @@ generate OCaml code from .glade files), libpanel, librsvg and quartz.") ;; Version 2 only, with linking exception. (license license:lgpl2.0))) +(define-public ocaml-lablgtk3-sourceview3 + (package + (inherit lablgtk3) + (name "ocaml-lablgtk3-sourceview3") + (propagated-inputs (list lablgtk3)) + (native-inputs (list gtksourceview-3 pkg-config)) + (arguments + `(#:package "lablgtk3-sourceview3" + #:test-target ".")) + (synopsis "OCaml interface to GTK+ gtksourceview library") + (description "This package provides the lablgtk interface to the +GTK+ gtksourceview library."))) + (define-public ocaml-reactivedata (package (name "ocaml-reactivedata") @@ -8071,7 +8118,7 @@ client chooses the concrete timeline.") (define-public ocaml-uucd (package (name "ocaml-uucd") - (version "14.0.0") + (version "15.0.0") (source (origin (method url-fetch) @@ -8079,7 +8126,7 @@ client chooses the concrete timeline.") "uucd-" version ".tbz")) (sha256 (base32 - "0fc737v5gj3339jx4x9xr096lxrpwvp6vaiylhavcvsglcwbgm30")))) + "1g26237yqmxr7sd1n9fg65qm5mxz66ybk7hr336zfyyzl25h6jqf")))) (build-system ocaml-build-system) (arguments '(#:build-flags '("build" "--tests" "true") @@ -8101,7 +8148,7 @@ representations can be extracted.") (define-public ocaml-uucp (package (name "ocaml-uucp") - (version "14.0.0") + (version "15.0.0") (source (origin (method url-fetch) @@ -8109,7 +8156,7 @@ representations can be extracted.") "uucp-" version ".tbz")) (sha256 (base32 - "1yx9nih3d9prb9zizq8fzmmqylf24a6yifhf81h33znrj5xn1mpj")))) + "0c2k9gkg442l7hnc8rn1vqzn6qh68w9fx7h3nj03n2x90ps98ixc")))) (build-system ocaml-build-system) (arguments '(#:build-flags '("build" "--tests" "true") diff --git a/gnu/packages/patches/connman-CVE-2022-32292.patch b/gnu/packages/patches/connman-CVE-2022-32292.patch new file mode 100644 index 0000000000..cbe30742e1 --- /dev/null +++ b/gnu/packages/patches/connman-CVE-2022-32292.patch @@ -0,0 +1,34 @@ +https://git.kernel.org/pub/scm/network/connman/connman.git/patch/?id=d1a5ede5d255bde8ef707f8441b997563b9312bd + +From d1a5ede5d255bde8ef707f8441b997563b9312bd Mon Sep 17 00:00:00 2001 +From: Nathan Crandall <ncrandall@tesla.com> +Date: Tue, 12 Jul 2022 08:56:34 +0200 +Subject: gweb: Fix OOB write in received_data() + +There is a mismatch of handling binary vs. C-string data with memchr +and strlen, resulting in pos, count, and bytes_read to become out of +sync and result in a heap overflow. Instead, do not treat the buffer +as an ASCII C-string. We calculate the count based on the return value +of memchr, instead of strlen. + +Fixes: CVE-2022-32292 +--- + gweb/gweb.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gweb/gweb.c b/gweb/gweb.c +index 12fcb1d8..13c6c5f2 100644 +--- a/gweb/gweb.c ++++ b/gweb/gweb.c +@@ -918,7 +918,7 @@ static gboolean received_data(GIOChannel *channel, GIOCondition cond, + } + + *pos = '\0'; +- count = strlen((char *) ptr); ++ count = pos - ptr; + if (count > 0 && ptr[count - 1] == '\r') { + ptr[--count] = '\0'; + bytes_read--; +-- +cgit + diff --git a/gnu/packages/patches/connman-CVE-2022-32293-pt1.patch b/gnu/packages/patches/connman-CVE-2022-32293-pt1.patch new file mode 100644 index 0000000000..c4d1aec31b --- /dev/null +++ b/gnu/packages/patches/connman-CVE-2022-32293-pt1.patch @@ -0,0 +1,140 @@ +https://git.kernel.org/pub/scm/network/connman/connman.git/patch/?id=72343929836de80727a27d6744c869dff045757c + +From 72343929836de80727a27d6744c869dff045757c Mon Sep 17 00:00:00 2001 +From: Daniel Wagner <wagi@monom.org> +Date: Tue, 5 Jul 2022 08:32:12 +0200 +Subject: wispr: Add reference counter to portal context + +Track the connman_wispr_portal_context live time via a +refcounter. This only adds the infrastructure to do proper reference +counting. + +Fixes: CVE-2022-32293 +--- + src/wispr.c | 52 ++++++++++++++++++++++++++++++++++++++++++---------- + 1 file changed, 42 insertions(+), 10 deletions(-) + +diff --git a/src/wispr.c b/src/wispr.c +index a07896ca..bde7e63b 100644 +--- a/src/wispr.c ++++ b/src/wispr.c +@@ -56,6 +56,7 @@ struct wispr_route { + }; + + struct connman_wispr_portal_context { ++ int refcount; + struct connman_service *service; + enum connman_ipconfig_type type; + struct connman_wispr_portal *wispr_portal; +@@ -97,6 +98,11 @@ static char *online_check_ipv4_url = NULL; + static char *online_check_ipv6_url = NULL; + static bool enable_online_to_ready_transition = false; + ++#define wispr_portal_context_ref(wp_context) \ ++ wispr_portal_context_ref_debug(wp_context, __FILE__, __LINE__, __func__) ++#define wispr_portal_context_unref(wp_context) \ ++ wispr_portal_context_unref_debug(wp_context, __FILE__, __LINE__, __func__) ++ + static void connman_wispr_message_init(struct connman_wispr_message *msg) + { + DBG(""); +@@ -162,9 +168,6 @@ static void free_connman_wispr_portal_context( + { + DBG("context %p", wp_context); + +- if (!wp_context) +- return; +- + if (wp_context->wispr_portal) { + if (wp_context->wispr_portal->ipv4_context == wp_context) + wp_context->wispr_portal->ipv4_context = NULL; +@@ -201,9 +204,38 @@ static void free_connman_wispr_portal_context( + g_free(wp_context); + } + ++static struct connman_wispr_portal_context * ++wispr_portal_context_ref_debug(struct connman_wispr_portal_context *wp_context, ++ const char *file, int line, const char *caller) ++{ ++ DBG("%p ref %d by %s:%d:%s()", wp_context, ++ wp_context->refcount + 1, file, line, caller); ++ ++ __sync_fetch_and_add(&wp_context->refcount, 1); ++ ++ return wp_context; ++} ++ ++static void wispr_portal_context_unref_debug( ++ struct connman_wispr_portal_context *wp_context, ++ const char *file, int line, const char *caller) ++{ ++ if (!wp_context) ++ return; ++ ++ DBG("%p ref %d by %s:%d:%s()", wp_context, ++ wp_context->refcount - 1, file, line, caller); ++ ++ if (__sync_fetch_and_sub(&wp_context->refcount, 1) != 1) ++ return; ++ ++ free_connman_wispr_portal_context(wp_context); ++} ++ + static struct connman_wispr_portal_context *create_wispr_portal_context(void) + { +- return g_try_new0(struct connman_wispr_portal_context, 1); ++ return wispr_portal_context_ref( ++ g_new0(struct connman_wispr_portal_context, 1)); + } + + static void free_connman_wispr_portal(gpointer data) +@@ -215,8 +247,8 @@ static void free_connman_wispr_portal(gpointer data) + if (!wispr_portal) + return; + +- free_connman_wispr_portal_context(wispr_portal->ipv4_context); +- free_connman_wispr_portal_context(wispr_portal->ipv6_context); ++ wispr_portal_context_unref(wispr_portal->ipv4_context); ++ wispr_portal_context_unref(wispr_portal->ipv6_context); + + g_free(wispr_portal); + } +@@ -452,7 +484,7 @@ static void portal_manage_status(GWebResult *result, + connman_info("Client-Timezone: %s", str); + + if (!enable_online_to_ready_transition) +- free_connman_wispr_portal_context(wp_context); ++ wispr_portal_context_unref(wp_context); + + __connman_service_ipconfig_indicate_state(service, + CONNMAN_SERVICE_STATE_ONLINE, type); +@@ -616,7 +648,7 @@ static void wispr_portal_request_wispr_login(struct connman_service *service, + return; + } + +- free_connman_wispr_portal_context(wp_context); ++ wispr_portal_context_unref(wp_context); + return; + } + +@@ -952,7 +984,7 @@ static int wispr_portal_detect(struct connman_wispr_portal_context *wp_context) + + if (wp_context->token == 0) { + err = -EINVAL; +- free_connman_wispr_portal_context(wp_context); ++ wispr_portal_context_unref(wp_context); + } + } else if (wp_context->timeout == 0) { + wp_context->timeout = g_idle_add(no_proxy_callback, wp_context); +@@ -1001,7 +1033,7 @@ int __connman_wispr_start(struct connman_service *service, + + /* If there is already an existing context, we wipe it */ + if (wp_context) +- free_connman_wispr_portal_context(wp_context); ++ wispr_portal_context_unref(wp_context); + + wp_context = create_wispr_portal_context(); + if (!wp_context) +-- +cgit + diff --git a/gnu/packages/patches/connman-CVE-2022-32293-pt2.patch b/gnu/packages/patches/connman-CVE-2022-32293-pt2.patch new file mode 100644 index 0000000000..556e69e397 --- /dev/null +++ b/gnu/packages/patches/connman-CVE-2022-32293-pt2.patch @@ -0,0 +1,173 @@ +https://git.kernel.org/pub/scm/network/connman/connman.git/patch/?id=416bfaff988882c553c672e5bfc2d4f648d29e8a + +From 416bfaff988882c553c672e5bfc2d4f648d29e8a Mon Sep 17 00:00:00 2001 +From: Daniel Wagner <wagi@monom.org> +Date: Tue, 5 Jul 2022 09:11:09 +0200 +Subject: wispr: Update portal context references + +Maintain proper portal context references to avoid UAF. + +Fixes: CVE-2022-32293 +--- + src/wispr.c | 34 ++++++++++++++++++++++------------ + 1 file changed, 22 insertions(+), 12 deletions(-) + +diff --git a/src/wispr.c b/src/wispr.c +index bde7e63b..84bed33f 100644 +--- a/src/wispr.c ++++ b/src/wispr.c +@@ -105,8 +105,6 @@ static bool enable_online_to_ready_transition = false; + + static void connman_wispr_message_init(struct connman_wispr_message *msg) + { +- DBG(""); +- + msg->has_error = false; + msg->current_element = NULL; + +@@ -166,8 +164,6 @@ static void free_wispr_routes(struct connman_wispr_portal_context *wp_context) + static void free_connman_wispr_portal_context( + struct connman_wispr_portal_context *wp_context) + { +- DBG("context %p", wp_context); +- + if (wp_context->wispr_portal) { + if (wp_context->wispr_portal->ipv4_context == wp_context) + wp_context->wispr_portal->ipv4_context = NULL; +@@ -483,9 +479,6 @@ static void portal_manage_status(GWebResult *result, + &str)) + connman_info("Client-Timezone: %s", str); + +- if (!enable_online_to_ready_transition) +- wispr_portal_context_unref(wp_context); +- + __connman_service_ipconfig_indicate_state(service, + CONNMAN_SERVICE_STATE_ONLINE, type); + +@@ -546,14 +539,17 @@ static void wispr_portal_request_portal( + { + DBG(""); + ++ wispr_portal_context_ref(wp_context); + wp_context->request_id = g_web_request_get(wp_context->web, + wp_context->status_url, + wispr_portal_web_result, + wispr_route_request, + wp_context); + +- if (wp_context->request_id == 0) ++ if (wp_context->request_id == 0) { + wispr_portal_error(wp_context); ++ wispr_portal_context_unref(wp_context); ++ } + } + + static bool wispr_input(const guint8 **data, gsize *length, +@@ -618,13 +614,15 @@ static void wispr_portal_browser_reply_cb(struct connman_service *service, + return; + + if (!authentication_done) { +- wispr_portal_error(wp_context); + free_wispr_routes(wp_context); ++ wispr_portal_error(wp_context); ++ wispr_portal_context_unref(wp_context); + return; + } + + /* Restarting the test */ + __connman_service_wispr_start(service, wp_context->type); ++ wispr_portal_context_unref(wp_context); + } + + static void wispr_portal_request_wispr_login(struct connman_service *service, +@@ -700,11 +698,13 @@ static bool wispr_manage_message(GWebResult *result, + + wp_context->wispr_result = CONNMAN_WISPR_RESULT_LOGIN; + ++ wispr_portal_context_ref(wp_context); + if (__connman_agent_request_login_input(wp_context->service, + wispr_portal_request_wispr_login, +- wp_context) != -EINPROGRESS) ++ wp_context) != -EINPROGRESS) { + wispr_portal_error(wp_context); +- else ++ wispr_portal_context_unref(wp_context); ++ } else + return true; + + break; +@@ -753,6 +753,7 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data) + if (length > 0) { + g_web_parser_feed_data(wp_context->wispr_parser, + chunk, length); ++ wispr_portal_context_unref(wp_context); + return true; + } + +@@ -770,6 +771,7 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data) + + switch (status) { + case 000: ++ wispr_portal_context_ref(wp_context); + __connman_agent_request_browser(wp_context->service, + wispr_portal_browser_reply_cb, + wp_context->status_url, wp_context); +@@ -781,11 +783,14 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data) + if (g_web_result_get_header(result, "X-ConnMan-Status", + &str)) { + portal_manage_status(result, wp_context); ++ wispr_portal_context_unref(wp_context); + return false; +- } else ++ } else { ++ wispr_portal_context_ref(wp_context); + __connman_agent_request_browser(wp_context->service, + wispr_portal_browser_reply_cb, + wp_context->redirect_url, wp_context); ++ } + + break; + case 300: +@@ -798,6 +803,7 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data) + !g_web_result_get_header(result, "Location", + &redirect)) { + ++ wispr_portal_context_ref(wp_context); + __connman_agent_request_browser(wp_context->service, + wispr_portal_browser_reply_cb, + wp_context->status_url, wp_context); +@@ -808,6 +814,7 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data) + + wp_context->redirect_url = g_strdup(redirect); + ++ wispr_portal_context_ref(wp_context); + wp_context->request_id = g_web_request_get(wp_context->web, + redirect, wispr_portal_web_result, + wispr_route_request, wp_context); +@@ -820,6 +827,7 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data) + + break; + case 505: ++ wispr_portal_context_ref(wp_context); + __connman_agent_request_browser(wp_context->service, + wispr_portal_browser_reply_cb, + wp_context->status_url, wp_context); +@@ -832,6 +840,7 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data) + wp_context->request_id = 0; + done: + wp_context->wispr_msg.message_type = -1; ++ wispr_portal_context_unref(wp_context); + return false; + } + +@@ -890,6 +899,7 @@ static void proxy_callback(const char *proxy, void *user_data) + xml_wispr_parser_callback, wp_context); + + wispr_portal_request_portal(wp_context); ++ wispr_portal_context_unref(wp_context); + } + + static gboolean no_proxy_callback(gpointer user_data) +-- +cgit + diff --git a/gnu/packages/patches/firebird-riscv64-support-pt1.patch b/gnu/packages/patches/firebird-riscv64-support-pt1.patch new file mode 100644 index 0000000000..a46bfe208a --- /dev/null +++ b/gnu/packages/patches/firebird-riscv64-support-pt1.patch @@ -0,0 +1,42 @@ +https://salsa.debian.org/firebird-team/firebird3.0/-/raw/master/debian/patches/out/riscv64-prefix.patch + +Description: add builds/posix/prefix.linux_riscv64, missing upstream + It appears the commit adding RiscV64 support + (1e8e7858db84750a77006d307bf28e9686f9414e) misses the build prefix file + Here's one submitted by Manuel A. Fernandez Montecelo +Author: Manuel A. Fernandez Montecelo <manuel.montezelo@gmail.com> +Bug: http://tracker.firebirdsql.org/browse/CORE-5851 +Bug-Debian: https://bugs.debian.org/895257 +Author: Manuel A. Fernandez Montecelo <manuel.montezelo@gmail.com> + +--- /dev/null ++++ b/builds/posix/prefix.linux_riscv64 +@@ -0,0 +1,28 @@ ++# The contents of this file are subject to the Interbase Public ++# License Version 1.0 (the "License"); you may not use this file ++# except in compliance with the License. You may obtain a copy ++# of the License at http://www.Inprise.com/IPL.html ++# ++# Software distributed under the License is distributed on an ++# "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express ++# or implied. See the License for the specific language governing ++# rights and limitations under the License. ++# ++# The Original Code was created by Inprise Corporation ++# and its predecessors. Portions created by Inprise Corporation are ++# Copyright (C) Inprise Corporation. ++# ++# All Rights Reserved. ++# Contributor(s): ______________________________________. ++# Start of file prefix.linux: $(VERSION) $(PLATFORM) ++# 14 Apr 2008 Alan Barclay alan AT escribe.co.uk ++# 2018, "Manuel A. Fernandez Montecelo" <manuel.montezelo@gmail.com> ++ ++ ++#LD=@CXX@ ++ ++#PROD_FLAGS=-ggdb -O3 -fno-omit-frame-pointer -DLINUX -pipe -MMD -fPIC ++#DEV_FLAGS=-ggdb -DLINUX -DDEBUG_GDS_ALLOC -pipe -MMD -p -fPIC -Wall -Wno-switch ++ ++PROD_FLAGS=-O3 -DLINUX -DRISCV64 -pipe -p -MMD -fPIC -fsigned-char -fmessage-length=0 -std=gnu++03 -fno-delete-null-pointer-checks ++DEV_FLAGS=-ggdb -DLINUX -DRISCV64 -pipe -p -MMD -fPIC -Wall -fsigned-char -fmessage-length=0 -Wno-non-virtual-dtor diff --git a/gnu/packages/patches/firebird-riscv64-support-pt2.patch b/gnu/packages/patches/firebird-riscv64-support-pt2.patch new file mode 100644 index 0000000000..a6f93c1a50 --- /dev/null +++ b/gnu/packages/patches/firebird-riscv64-support-pt2.patch @@ -0,0 +1,108 @@ +https://salsa.debian.org/firebird-team/firebird3.0/-/raw/master/debian/patches/upstream/riscv64-support.patch + +1e8e7858db84750a77006d307bf28e9686f9414e Patch for CORE-5779: support for riscv64, also some code fixes related with prior ports + Minor corrections compared to the commit above due to whitespace/spelling + differences with 3.0 version +Bug-Debian: https://bugs.debian.org/895257 +Bug: http://tracker.firebirdsql.org/browse/CORE-5779 + +--- a/configure.ac ++++ b/configure.ac +@@ -251,6 +251,18 @@ dnl CPU_TYPE=ppc64 + libdir=/usr/lib64 + ;; + ++ riscv64*-*-linux*) ++ MAKEFILE_PREFIX=linux_riscv64 ++ INSTALL_PREFIX=linux ++ PLATFORM=LINUX ++ AC_DEFINE(LINUX, 1, [Define this if OS is Linux]) ++ EDITLINE_FLG=Y ++ SHRLIB_EXT=so ++ STD_EDITLINE=true ++ STD_ICU=true ++ libdir=/usr/lib64 ++ ;; ++ + powerpc64le-*-linux*) + MAKEFILE_PREFIX=linux_powerpc64el + INSTALL_PREFIX=linux +--- a/src/common/classes/DbImplementation.cpp ++++ b/src/common/classes/DbImplementation.cpp +@@ -49,6 +49,7 @@ static const UCHAR CpuAlpha = 14; + static const UCHAR CpuArm64 = 15; + static const UCHAR CpuPowerPc64el = 16; + static const UCHAR CpuM68k = 17; ++static const UCHAR CpuRiscV64 = 18; + + static const UCHAR OsWindows = 0; + static const UCHAR OsLinux = 1; +@@ -89,7 +90,8 @@ const char* hardware[] = { + "Alpha", + "ARM64", + "PowerPC64el", +- "M68k" ++ "M68k", ++ "RiscV64" + }; + + const char* operatingSystem[] = { +@@ -116,22 +118,22 @@ const char* compiler[] = { + // This table lists pre-fb3 implementation codes + const UCHAR backwardTable[FB_NELEM(hardware) * FB_NELEM(operatingSystem)] = + { +-// Intel AMD Sparc PPC PPC64 MIPSEL MIPS ARM IA64 s390 s390x SH SHEB HPPA Alpha ARM64 PowerPC64el +-/* Windows */ 50, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +-/* Linux */ 60, 66, 65, 69, 86, 71, 72, 75, 76, 79, 78, 80, 81, 82, 83, 84, 85, +-/* Darwin */ 70, 73, 0, 63, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +-/* Solaris */ 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +-/* HPUX */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, +-/* AIX */ 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +-/* MVS */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +-/* FreeBSD */ 61, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +-/* NetBSD */ 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ++// Intel AMD Sparc PPC PPC64 MIPSEL MIPS ARM IA64 s390 s390x SH SHEB HPPA Alpha ARM64 PPC64el M68k RiscV64 ++/* Windows */ 50, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++/* Linux */ 60, 66, 65, 69, 86, 71, 72, 75, 76, 79, 78, 80, 81, 82, 83, 84, 85, 87, 88, ++/* Darwin */ 70, 73, 0, 63, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++/* Solaris */ 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++/* HPUX */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, ++/* AIX */ 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++/* MVS */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++/* FreeBSD */ 61, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++/* NetBSD */ 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + + const UCHAR backEndianess[FB_NELEM(hardware)] = + { +-// Intel AMD Sparc PPC PPC64 MIPSEL MIPS ARM IA64 s390 s390x SH SHEB HPPA Alpha ARM64 PowerPC64el M68k +- 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1 ++// Intel AMD Sparc PPC PPC64 MIPSEL MIPS ARM IA64 s390 s390x SH SHEB HPPA Alpha ARM64 PPC64el M68k RiscV64 ++ 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, + }; + + } // anonymous namespace +--- a/src/common/common.h ++++ b/src/common/common.h +@@ -135,6 +135,10 @@ + #define FB_CPU CpuArm64 + #endif /* ARM64 */ + ++#ifdef RISCV64 ++#define FB_CPU CpuRiscV64 ++#endif /* RISCV64 */ ++ + #ifdef sparc + #define FB_CPU CpuUltraSparc + #define RISC_ALIGNMENT +--- a/src/jrd/inf_pub.h ++++ b/src/jrd/inf_pub.h +@@ -247,7 +247,7 @@ enum info_db_implementations + isc_info_db_impl_linux_ppc64el = 85, + isc_info_db_impl_linux_ppc64 = 86, + isc_info_db_impl_linux_m68k = 87, +- ++ isc_info_db_impl_linux_riscv64 = 88, + + isc_info_db_impl_last_value // Leave this LAST! + }; diff --git a/gnu/packages/patches/gnome-todo-libportal.patch b/gnu/packages/patches/gnome-todo-libportal.patch deleted file mode 100644 index 380c628592..0000000000 --- a/gnu/packages/patches/gnome-todo-libportal.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 3e1f4da8c0e536c09ffaf3b43fe2eb5dc17cc23e Mon Sep 17 00:00:00 2001 -From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com> -Date: Thu, 18 Nov 2021 19:46:13 -0300 -Subject: [PATCH] flatpak: Adjust to libportal changes - ---- - build-aux/flatpak/org.gnome.Todo.json | 3 +++ - src/plugins/background/gtd-plugin-background.c | 2 +- - src/plugins/background/meson.build | 2 +- - 3 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/build-aux/flatpak/org.gnome.Todo.json b/build-aux/flatpak/org.gnome.Todo.json -index 034e200c..44b83d66 100644 ---- a/build-aux/flatpak/org.gnome.Todo.json -+++ b/build-aux/flatpak/org.gnome.Todo.json -@@ -143,6 +143,9 @@ - { - "name" : "libportal", - "buildsystem" : "meson", -+ "config-opts" : [ -+ "-Dbackends=gtk4" -+ ], - "sources" : [ - { - "type" : "git", -diff --git a/src/plugins/background/gtd-plugin-background.c b/src/plugins/background/gtd-plugin-background.c -index cf48786c..f64d07aa 100644 ---- a/src/plugins/background/gtd-plugin-background.c -+++ b/src/plugins/background/gtd-plugin-background.c -@@ -28,7 +28,7 @@ - #include <gtk/gtk.h> - - #include <libportal/portal.h> --#include <libportal/portal-gtk4.h> -+#include <libportal-gtk4/portal-gtk4.h> - - #define AUTOSTART_NOTIFICATION_ID "Gtd::BackgroundPlugin::autostart_notification" - #define AUTOSTART_NOTIFICATION_TIMEOUT 3 /* seconds */ -diff --git a/src/plugins/background/meson.build b/src/plugins/background/meson.build -index a671a4f3..59d3635f 100644 ---- a/src/plugins/background/meson.build -+++ b/src/plugins/background/meson.build -@@ -1,7 +1,7 @@ - plugins_ldflags += ['-Wl,--undefined=gtd_plugin_background_register_types'] - - plugins_deps += [ -- dependency('libportal'), -+ dependency('libportal-gtk4'), - ] - - plugins_sources += files( --- -GitLab - diff --git a/gnu/packages/patches/jami-fix-crash-on-block-contact.patch b/gnu/packages/patches/jami-fix-crash-on-block-contact.patch new file mode 100644 index 0000000000..60dab79296 --- /dev/null +++ b/gnu/packages/patches/jami-fix-crash-on-block-contact.patch @@ -0,0 +1,32 @@ +From 673dc5f525c9d478fc22f8ea0a50d9849a81f6c8 Mon Sep 17 00:00:00 2001 +From: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com> +Date: Fri, 2 Sep 2022 13:32:10 -0400 +Subject: [PATCH] conversation: fix crash when block contact + +This patch fixes crash that happened when block contact +for not active account. + +GitLab: #758 +Change-Id: I5347394a67cdffe0d95c9ee03aedf9d2618cec55 +--- + src/jamidht/jamiaccount.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/daemon/src/jamidht/jamiaccount.cpp b/daemon/src/jamidht/jamiaccount.cpp +index fe15eedb2..9d0a5ee68 100644 +--- a/daemon/src/jamidht/jamiaccount.cpp ++++ b/daemon/src/jamidht/jamiaccount.cpp +@@ -1129,7 +1129,9 @@ JamiAccount::loadAccount(const std::string& archive_password, + if (auto convModule = shared->convModule()) + convModule->removeContact(uri, banned); + // Remove current connections with contact +- shared->connectionManager_->closeConnectionsWith(uri); ++ if (shared->connectionManager_) { ++ shared->connectionManager_->closeConnectionsWith(uri); ++ } + // Update client. + emitSignal<DRing::ConfigurationSignal::ContactRemoved>(shared->getAccountID(), + uri, +-- +2.37.3 + diff --git a/gnu/packages/patches/jami-fix-esc-bug.patch b/gnu/packages/patches/jami-fix-esc-bug.patch deleted file mode 100644 index 6d78542f1e..0000000000 --- a/gnu/packages/patches/jami-fix-esc-bug.patch +++ /dev/null @@ -1,24 +0,0 @@ -This fixes the issue where pressing the ESC key would hide the Jami -GUI on systems lacking a notification tray. - -From 47fd4c38ddd8bd350319ce9bb750ca496826e655 Mon Sep 17 00:00:00 2001 -From: Sébastien Blin <sebastien.blin@savoirfairelinux.com> -Date: Fri, 29 Jul 2022 21:24:01 -0400 -Subject: [PATCH] layoutmanager: fix popFullScreenItem - -Change-Id: I79780d4ad570846e6f3c52734dd627bcd0e11327 ---- - -diff --git a/src/app/LayoutManager.qml b/src/app/LayoutManager.qml -index 98516ce..87f13ac 100644 ---- a/client-qt/src/app/LayoutManager.qml -+++ b/client-qt/src/app/LayoutManager.qml -@@ -176,7 +176,7 @@ - - // Only leave fullscreen mode if our window isn't in fullscreen - // mode already. -- if (priv.fullScreenItems.length === 0) { -+ if (priv.fullScreenItems.length === 0 && priv.windowedVisibility !== Window.Hidden) { - // Simply recall the last visibility state. - visibility = priv.windowedVisibility - } diff --git a/gnu/packages/patches/pjproject-install-libpjsua2.patch b/gnu/packages/patches/pjproject-install-libpjsua2.patch deleted file mode 100644 index ef9b0de91f..0000000000 --- a/gnu/packages/patches/pjproject-install-libpjsua2.patch +++ /dev/null @@ -1,19 +0,0 @@ -# Retrieved from upstream: -# https://github.com/pjsip/pjproject/commit/742f7dc252ded778a8b677937791c02e2fbc0dde -diff --git a/Makefile b/Makefile -index 31a6d39d4..74e246a44 100644 ---- a/Makefile -+++ b/Makefile -@@ -121,9 +121,10 @@ cmp_wav: - - install: - mkdir -p $(DESTDIR)$(libdir)/ -- cp -af $(APP_LIB_FILES) $(DESTDIR)$(libdir)/ - if [ "$(PJ_EXCLUDE_PJSUA2)x" = "x" ] ; then \ -- cp -af $(PJ_DIR)/pjsip/lib/libpjsua2-$(LIB_SUFFIX) $(DESTDIR)$(libdir)/; \ -+ cp -af $(APP_LIBXX_FILES) $(DESTDIR)$(libdir)/; \ -+ else \ -+ cp -af $(APP_LIB_FILES) $(DESTDIR)$(libdir)/; \ - fi - mkdir -p $(DESTDIR)$(includedir)/ - for d in pjlib pjlib-util pjnath pjmedia pjsip; do \ diff --git a/gnu/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch b/gnu/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch new file mode 100644 index 0000000000..bd55d512cf --- /dev/null +++ b/gnu/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch @@ -0,0 +1,25 @@ +From ff5ed26f21d304e867ab57781878069567deb23d Mon Sep 17 00:00:00 2001 +From: Hartmut Goebel <h.goebel@crazy-compilers.com> +Date: Mon, 3 Aug 2020 19:49:58 +0000 +Subject: [PATCH] Fix build errors if PREFIX is different from ECM's PREFIX. + +See <https://bugs.kde.org/424483> for details +--- + KF5PlasmaMacros.cmake | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/KF5PlasmaMacros.cmake b/KF5PlasmaMacros.cmake +index 494b42d56..80b3fd8dd 100644 +--- a/KF5PlasmaMacros.cmake ++++ b/KF5PlasmaMacros.cmake +@@ -1,6 +1,5 @@ + +-find_package(ECM 1.6.0 CONFIG REQUIRED) +-include(${ECM_KDE_MODULE_DIR}/KDEInstallDirs.cmake) ++include(KDEInstallDirs) + + set(PLASMA_RELATIVE_DATA_INSTALL_DIR "plasma") + set(PLASMA_DATA_INSTALL_DIR "${KDE_INSTALL_DATADIR}/${PLASMA_RELATIVE_DATA_INSTALL_DIR}") +-- +GitLab + diff --git a/gnu/packages/patches/qemu-disable-aarch64-migration-test.patch b/gnu/packages/patches/qemu-disable-aarch64-migration-test.patch new file mode 100644 index 0000000000..bf60ed23bb --- /dev/null +++ b/gnu/packages/patches/qemu-disable-aarch64-migration-test.patch @@ -0,0 +1,13 @@ +Disable the qtest-aarch64/migration-test, which sometimes fail non-deterministically. +See: https://gitlab.com/qemu-project/qemu/-/issues/1230. + +--- qemu-7.1.0/tests/qtest/meson.build.old 1969-12-31 19:00:01.000000000 -0500 ++++ qemu-7.1.0/tests/qtest/meson.build 2022-09-26 11:11:05.434209797 -0400 +@@ -219,7 +219,6 @@ + ['arm-cpu-features', + 'numa-test', + 'boot-serial-test', +- 'migration-test', + 'bcm2835-dma-test'] + + qtests_s390x = \ diff --git a/gnu/packages/patches/r-httpuv-1.5.5-unvendor-libuv.patch b/gnu/packages/patches/r-httpuv-1.6.6-unvendor-libuv.patch index 30c6425477..adbacc995f 100644 --- a/gnu/packages/patches/r-httpuv-1.5.5-unvendor-libuv.patch +++ b/gnu/packages/patches/r-httpuv-1.6.6-unvendor-libuv.patch @@ -1,7 +1,7 @@ Removes references to bundled libuv. ---- a/src/Makevars 2020-07-31 11:53:30.576484531 +0200 -+++ b/src/Makevars 2020-07-31 11:54:19.369863118 +0200 +--- a/src/Makevars 2022-09-19 23:37:55.067810741 +0200 ++++ b/src/Makevars 2022-09-19 23:39:20.984859770 +0200 @@ -5,7 +5,7 @@ UNAME := $(shell uname) @@ -20,13 +20,12 @@ Removes references to bundled libuv. # To avoid spurious warnings from `R CMD check --as-cran`, about compiler # warning flags like -Werror. -@@ -43,49 +43,5 @@ +@@ -43,50 +43,4 @@ # PKG_CPPFLAGS += -D_GLIBCXX_ASSERTIONS -$(SHLIB): libuv/.libs/libuv.a http-parser/http_parser.o sha1/sha1.o base64/base64.o -+$(SHLIB): http-parser/http_parser.o sha1/sha1.o base64/base64.o - +- -# We needed to rename lt~obsolete.m4 because the name causes problems with R -# CMD check. Here we rename it back. -libuv/m4/lt~obsolete.m4: libuv/m4/lt_obsolete.m4 @@ -59,7 +58,8 @@ Removes references to bundled libuv. - touch aclocal.m4; \ - touch -r aclocal.m4 configure Makefile.in; \ - else \ -- echo "automake found. Running autogen.sh."; \ +- echo "automake found. Running autoupdate and autogen.sh."; \ +- autoupdate; \ - sh autogen.sh; \ - fi; \ - chmod +x configure; \ @@ -71,3 +71,4 @@ Removes references to bundled libuv. - -clean: - $(MAKE) --directory=libuv distclean ++$(SHLIB): http-parser/http_parser.o sha1/sha1.o base64/base64.o diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index bdc773f650..90781a7f7f 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -629,7 +629,7 @@ by using the poppler rendering engine.") (define-public zathura (package (name "zathura") - (version "0.4.9") + (version "0.5.1") (source (origin (method url-fetch) (uri @@ -637,20 +637,21 @@ by using the poppler rendering engine.") version ".tar.xz")) (sha256 (base32 - "0msy7s57mlx0wya99qpia4fpcy40pbj253kmx2y97nb0sqnc8c7w")))) - (native-inputs `(("pkg-config" ,pkg-config) - ("gettext" ,gettext-minimal) - ("glib:bin" ,glib "bin") + "1c8vmfpghqlq5kdnq92bzzp2grym3x3kxxxqgs51178s4z7639lq")))) + (native-inputs + (list pkg-config + gettext-minimal + (list glib "bin") - ;; For building documentation. - ("python-sphinx" ,python-sphinx) + ;; For building documentation. + python-sphinx - ;; For building icons. - ("librsvg" ,(librsvg-for-system)) + ;; For building icons. + (librsvg-for-system) - ;; For tests. - ("check" ,check) - ("xorg-server" ,xorg-server-for-tests))) + ;; For tests. + check + xorg-server-for-tests)) (inputs (list sqlite)) ;; Listed in 'Requires.private' of 'zathura.pc'. (propagated-inputs (list cairo girara)) @@ -664,8 +665,7 @@ by using the poppler rendering engine.") (add-before 'check 'start-xserver ;; Tests require a running X server. (lambda* (#:key inputs #:allow-other-keys) - (let ((xorg-server (assoc-ref inputs "xorg-server")) - (display ":1")) + (let ((display ":1")) (setenv "DISPLAY" display) ;; On busy machines, tests may take longer than @@ -674,8 +674,9 @@ by using the poppler rendering engine.") ;; Don't fail due to missing '/etc/machine-id'. (setenv "DBUS_FATAL_WARNINGS" "0") - (zero? (system (string-append xorg-server "/bin/Xvfb " - display " &"))))))))) + (zero? (system (string-append + (search-input-file inputs "/bin/Xvfb") + " " display " &"))))))))) (home-page "https://pwmt.org/projects/zathura/") (synopsis "Lightweight keyboard-driven PDF viewer") (description "Zathura is a customizable document viewer. It provides a diff --git a/gnu/packages/python-build.scm b/gnu/packages/python-build.scm index e7023aca0c..9d9b07f769 100644 --- a/gnu/packages/python-build.scm +++ b/gnu/packages/python-build.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2018, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2021, 2022 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -474,3 +475,25 @@ system, then @code{flit_core} to build the package.") @dfn{software configuration management} (SCM) metadata instead of declaring them as the version argument or in a SCM managed file.") (license license:expat))) + +(define-public python-editables + (package + (name "python-editables") + (version "0.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pfmoore/editables") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1gbfkgzmrmbd4ycshm09fr2wd4f1n9gq7s567jgkavhfkn7s2pn1")))) + (build-system python-build-system) + (home-page "https://github.com/pfmoore/editables") + (synopsis "Editable installations") + (description "This library supports the building of wheels which, when +installed, will expose packages in a local directory on @code{sys.path} in +``editable mode''. In other words, changes to the package source will be +reflected in the package visible to Python, without needing a reinstall.") + (license license:expat))) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index 417f9c5a34..dfc0bad7a0 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -50,6 +50,7 @@ #:use-module (guix git-download) #:use-module (guix build-system cargo) #:use-module (guix build-system python) + #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages check) #:use-module (gnu packages crates-io) @@ -394,6 +395,86 @@ general production use. Include this module and use its backends at your own risk.") (license license:expat))) +(define-public python-blake3 + (package + (name "python-blake3") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "blake3" version)) + (sha256 + (base32 "1p6z6jfk8n1lshz4cp6dgz2i8zmqdxwr8d9m86ypp3m1kp70k5xk")))) + (build-system cargo-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'build-python-module + (lambda _ + ;; We don't use maturin. + (delete-file "pyproject.toml") + (call-with-output-file "pyproject.toml" + (lambda (port) + (format port "\ +[build-system] +build-backend = 'setuptools.build_meta' +requires = ['setuptools'] +"))) + (call-with-output-file "setup.cfg" + (lambda (port) + (format port "\ + +[metadata] +name = blake3 +version = '~a' + +[options] +packages = find: + +[options.packages.find] +exclude = + src* + c_impl* + tests* + Cargo.toml +" #$version))) + ;; ZIP does not support timestamps before 1980. + (setenv "SOURCE_DATE_EPOCH" "315532800") + (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) + (add-after 'build-python-module 'install-python-module + (lambda* (#:key outputs #:allow-other-keys) + (let ((whl (car (find-files "dist" "\\.whl$")))) + (invoke "pip" "--no-cache-dir" "--no-input" + "install" "--no-deps" "--prefix" #$output whl)))) + (add-after 'install-python-module 'install-python-library + (lambda _ + (let ((site (string-append #$output "/lib/python" + #$(version-major+minor + (package-version python)) + "/site-packages"))) + (mkdir-p site) + (copy-file "target/release/libblake3.so" + (string-append site "/blake3.so")))))) + #:cargo-inputs + `(("rust-blake3" ,rust-blake3-1) + ("rust-hex" ,rust-hex-0.4) + ("rust-parking-lot" ,rust-parking-lot-0.11) + ("rust-pyo3" ,rust-pyo3-0.15) + ("rust-rayon" ,rust-rayon-1)))) + (inputs (list rust-blake3-1)) + (native-inputs + (list python-wrapper + python-pypa-build + python-wheel)) + (home-page "https://github.com/oconnor663/blake3-py") + (synopsis "Python bindings for the Rust blake3 crate") + (description "This package provides Python bindings for the Rust crate of +blake3, a cryptographic hash function.") + ;; This work is released into the public domain with CC0 + ;; 1.0. Alternatively, it is licensed under the Apache License 2.0. + (license (list license:asl2.0 license:cc0)))) + (define-public python-certauth (package (name "python-certauth") diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm index 80acb606b2..8ebf3d27b1 100644 --- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -45,12 +45,14 @@ #:use-module (gnu packages build-tools) #:use-module (gnu packages check) #:use-module (gnu packages cpp) + #:use-module (gnu packages crypto) #:use-module (gnu packages databases) #:use-module (gnu packages gcc) #:use-module (gnu packages image-processing) #:use-module (gnu packages machine-learning) #:use-module (gnu packages maths) #:use-module (gnu packages mpi) + #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -1492,6 +1494,62 @@ well as potentially any library which conforms to a standard API. See the documentation for more information.") (license license:expat))) +(define-public python-vaex-core + (package + (name "python-vaex-core") + (version "4.13.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "vaex-core" version)) + (sha256 + (base32 "0ni862x5njhfsldjy49xmasd34plrs7yrmkyss6z1b6sgkbw9fsb")) + (modules '((guix build utils))) + (snippet + ;; Remove bundled libraries + '(for-each delete-file-recursively + (list "vendor/boost" + "vendor/pcre" + "vendor/pybind11"))))) + (build-system python-build-system) + (arguments + `(#:tests? #false ;require vaex.server and others, which require vaex-core. + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-vv" ))))))) + (inputs + (list boost pcre pybind11-2.3)) + (propagated-inputs + (list python-aplus + python-blake3 + python-cloudpickle + python-dask + python-filelock + python-frozendict + python-future + python-nest-asyncio + python-numpy + python-pandas + python-progressbar2 + python-pyarrow + python-pydantic + python-pyyaml + python-requests + python-rich + python-six + python-tabulate)) + (native-inputs + (list python-pytest python-cython)) + (home-page "https://www.github.com/maartenbreddels/vaex") + (synopsis "Core of Vaex library for exploring tabular datasets") + (description "Vaex is a high performance Python library for lazy +Out-of-Core DataFrames (similar to Pandas), to visualize and explore big +tabular datasets. This package provides the core modules of Vaex.") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 9bdc139f21..4136645d8d 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -5671,6 +5671,12 @@ files.") (base32 "1vk7g5z977mi89hamwiqawpmibwvv9ghrf3pqva1waxmyc7gyjb5")))) (build-system python-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-before 'check 'extend-test-timeout + (lambda _ + (setenv "WEBSOCKETS_TESTS_TIMEOUT_FACTOR" "10")))))) (home-page "https://github.com/aaugustin/websockets") (synopsis "Python implementation of the WebSocket Protocol (RFC 6455 & 7692)") diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 323a435beb..a6b1c7e27e 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -129,6 +129,7 @@ ;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space> ;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl> ;;; Copyright © 2022 Mathieu Laparie <mlaparie@disr.it> +;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -19675,6 +19676,26 @@ point is the point of maximum curvature.") perform the operations required for synchronizing plain text.") (license license:asl2.0))) +(define-public python-icdiff + (package + (name "python-icdiff") + (version "2.0.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jeffkaufman/icdiff") + (commit (string-append "release-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "14gr9j2h7sfw47pwfzspm4zinywhqmzm4a0qz5c2k9wbixz120a4")))) + (build-system python-build-system) + (home-page "https://www.jefftk.com/icdiff") + (synopsis "Improved colored diff") + (description "This package provides colored diff functions that highlight +parts of the lines that were modified.") + (license license:psfl))) + (define-public python-dirsync (package (name "python-dirsync") @@ -22385,6 +22406,26 @@ library: to minimize boilerplate code in traditional extension modules by inferring type information using compile-time introspection.") (license license:bsd-3))) +;; This is needed for python-vaex-core. +(define-public pybind11-2.3 + (package + (inherit pybind11) + (name "pybind11") + (version "2.3.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pybind/pybind11") + (commit (string-append "v" version)))) + (sha256 + (base32 + "11b6dniri8m05spfd2a19irz82shf4sdca73566bniggrf3zclnf")) + (file-name (git-file-name name version)))) + (arguments + (substitute-keyword-arguments (package-arguments pybind11) + ((#:tests? tests? #false) + #false))))) + (define-public python-pooch (package (name "python-pooch") @@ -27146,6 +27187,29 @@ applications with variable CPU loads).") (home-page "https://jwilk.net/software/python-djvulibre") (license license:gpl2))) +(define-public python-version + ;; No version tags available in the git repo; just using bare commit instead. + (let ((commit "5232eea250ab72cc5cb72b0b75efb35d2192b906") + (revision "1")) + (package + (name "python-version") + (version (git-version "0.0.2" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/halfak/python_version") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0w210559ypdynlj9yn40m9awzkaknwrf682i99hswl7h66sdgh0h")))) + (build-system python-build-system) + (home-page "https://gitlab.com/halfak/python_version") + (synopsis "Python version checking utility") + (description + "This package provides a simple utility for checking the python version.") + (license license:expat)))) + (define-public python-versioneer (package (name "python-versioneer") diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm index b89eff4eb0..8e7c4a0ed5 100644 --- a/gnu/packages/rust-apps.scm +++ b/gnu/packages/rust-apps.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org> ;;; Copyright © 2022 Gabriel Arazas <foo.dogsquared@gmail.com> ;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2022 Mathieu Laparie <mlaparie@disr.it> ;;; ;;; This file is part of GNU Guix. ;;; @@ -768,6 +769,31 @@ your current directory for a regex pattern while respecting your gitignore rules.") (license (list license:unlicense license:expat)))) +(define-public rot8 + (package + (name "rot8") + (version "0.1.4") + (source (origin + (method url-fetch) + (uri (crate-uri "rot8" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1m5kzpqq9pgc19lbnh20iaq654lzlmc1m5fc9f73w2vpwqdiw1qf")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs (("rust-clap" ,rust-clap-2) + ("rust-glob" ,rust-glob-0.3) + ("rust-regex" ,rust-regex-1) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1)))) + (home-page "https://github.com/efernau/rot8/") + (synopsis "Automatic display rotation using built-in accelerometer") + (description "@command{rot8} is a daemon that automates rotating screen and +associated input devices using the built-in accelerometer; handy for convertible +touchscreen devices.") + (license license:expat))) + (define-public git-interactive-rebase-tool (package (name "git-interactive-rebase-tool") diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index 95082840d3..0095d51e88 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -36,6 +36,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system copy) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix utils) #:use-module (gnu packages) @@ -277,7 +278,7 @@ external dependencies.") python-pyasn1 ;for krb5 tests ;; For generating man pages. docbook-xml-4.2 - docbook-xsl + docbook-xsl-next ;otherwise the man pages are corrupted libxslt libxml2)) ;for XML_CATALOG_FILES (home-page "https://www.samba.org/") @@ -508,3 +509,30 @@ and IPV6 and the protocols layered above them, such as TCP and UDP.") license:bsd-4 license:gpl2+ license:public-domain)))) + +(define-public wsdd + (package + (name "wsdd") + (version "0.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference (url "https://github.com/christgau/wsdd") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04an2w6hamnai668ag4vq8x0i09fsg2jrayb4a7ar0x6bn837k7m")))) + (build-system copy-build-system) + (inputs + `(("python" ,python))) + (arguments + '(#:install-plan + '(("src/wsdd.py" "bin/wsdd") + ("man/wsdd.1" "share/man/man1/")))) + (home-page "https://github.com/christgau/wsdd") + (synopsis "A Web Service Discovery host daemon") + (description "This daemon allows (Samba) hosts to be found by Web +Service Dicovery Clients. It also implements the client side of the +discovery protocol which allows to search for devices implementing +WSD.") + (license license:expat))) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 7bb2557249..787f46d0f6 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -536,14 +536,14 @@ ksh, and tcsh.") (define-public xonsh (package (name "xonsh") - (version "0.13.1") + (version "0.13.3") (source (origin (method url-fetch) (uri (pypi-uri "xonsh" version)) (sha256 (base32 - "1b409wkh41inn6m0qmps4iq6bgvwg465dcfcbffqd15fr1j2d0hq")) + "154s4lbda3n8kamiyblfrv8isn3hnqyxw2k99qicyfll02chpjzl")) (modules '((guix build utils))) (snippet #~(begin diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 4b6328a587..88f833174a 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -550,14 +550,14 @@ k-nearest neighbour, Learning Vector Quantization and Self-Organizing Maps.") (define-public r-cluster (package (name "r-cluster") - (version "2.1.3") + (version "2.1.4") (source (origin (method url-fetch) (uri (cran-uri "cluster" version)) (sha256 (base32 - "1ab466lniykz2a6kdnrbkk7hwair79xfmy6cqvhc8d6nana7mbd3")))) + "1dpmss4mdpw6la5kjf135h2jj5j5zmqvykpj6fl6n5wslbn0rwf6")))) (build-system r-build-system) (native-inputs (list gfortran)) @@ -655,14 +655,14 @@ also flexible enough to handle most nonstandard requirements.") (define-public r-matrix (package (name "r-matrix") - (version "1.4-1") + (version "1.5-1") (source (origin (method url-fetch) (uri (cran-uri "Matrix" version)) (sha256 (base32 - "0zigzgx4dv7ydcyppr5ypna9dxi9vzi944pgy07jnj4l3qflzcj2")))) + "0pap6pb0is2s02l43y982p7banwi844bjpgbcgf6fb8pb01vlzam")))) (properties `((upstream-name . "Matrix"))) (build-system r-build-system) (propagated-inputs @@ -677,13 +677,13 @@ and operations on them using LAPACK and SuiteSparse.") (define-public r-nlme (package (name "r-nlme") - (version "3.1-158") + (version "3.1-159") (source (origin (method url-fetch) (uri (cran-uri "nlme" version)) (sha256 - (base32 "08xzaslqmbizj38v746hn09bi7k9h0vjhh0z7mv0c9xsq80v8nx5")))) + (base32 "1gqrv4skfgcny4pdpmymdwjcmsd3hla84s76g18dgqj665f5zc4v")))) (build-system r-build-system) (propagated-inputs (list r-lattice)) @@ -779,14 +779,14 @@ analysis.") (define-public r-survival (package (name "r-survival") - (version "3.3-1") + (version "3.4-0") (source (origin (method url-fetch) (uri (cran-uri "survival" version)) (sha256 (base32 - "1isdrcvrzi118xiyigckj9sq1xl4m92180brmpzdqzhcrl2qg1ql")))) + "04pqkklbjpcqaq49h49j0vw18q4hi31ry3szzf84vzk5fba273m4")))) (build-system r-build-system) (propagated-inputs (list r-matrix)) @@ -1186,16 +1186,21 @@ transliteration, concatenation, date-time formatting and parsing, etc.") (define-public r-stringr (package (name "r-stringr") - (version "1.4.0") + (version "1.4.1") (source (origin (method url-fetch) (uri (cran-uri "stringr" version)) (sha256 - (base32 "1p9ip7p87gbbg4s6d3d392svvzz2b5dqdq2c8ilgvn4s78nlsq47")))) + (base32 "1cfw1lv64lzg16zb04c0fcmd3gx8vq9x73hqikqhgqd3ra88w3gc")))) (build-system r-build-system) (propagated-inputs (list r-glue r-magrittr r-stringi)) + ;; We can't add r-knitr here, because this package ends up being an input + ;; to r-knitr. + #; + (native-inputs + (list r-knitr)) (home-page "https://github.com/hadley/stringr") (synopsis "Simple, consistent wrappers for common string operations") (description @@ -1421,13 +1426,13 @@ for template use among CRAN packages.") (define-public r-evaluate (package (name "r-evaluate") - (version "0.15") + (version "0.16") (source (origin (method url-fetch) (uri (cran-uri "evaluate" version)) (sha256 (base32 - "0pbwj02y2j7r0msa7747ih1p32xm9bcyr8fa7bysfslb199ywnl8")))) + "009861l805z4c10cz0pyym5qd2b2wsiignjkz74vl25718k0mz0h")))) (build-system r-build-system) (home-page "https://github.com/hadley/evaluate") (synopsis "Parsing and evaluation tools for R") @@ -1551,13 +1556,13 @@ emitter (http://pyyaml.org/wiki/LibYAML) for R.") (define-public r-knitr (package (name "r-knitr") - (version "1.39") + (version "1.40") (source (origin (method url-fetch) (uri (cran-uri "knitr" version)) (sha256 (base32 - "0wmcj6xv0bcqzmp5vm8s574rfx366rkgm03lgyppk9ywxgnna6n9")))) + "1g1mhnkyxd2sv6p1l6iph9dnmpbwxhah78xx4kq543ks6vzrb3wv")))) (build-system r-build-system) (propagated-inputs (list r-evaluate r-highr r-stringr r-xfun r-yaml)) @@ -1756,13 +1761,13 @@ defined in different packages.") (define-public r-rlang (package (name "r-rlang") - (version "1.0.4") + (version "1.0.5") (source (origin (method url-fetch) (uri (cran-uri "rlang" version)) (sha256 (base32 - "15l65as409b3y9sn1jm7lb2019jsp19w6qxsgvimr1badka8kdqz")))) + "1argj8pvf8b19693r6j7rw1fl4bd99b39h5y52qrm1wpcvjkba9d")))) (build-system r-build-system) (home-page "http://rlang.tidyverse.org") (synopsis "Functions for base types, core R and Tidyverse features") @@ -1803,13 +1808,13 @@ and printing capabilities than traditional data frames.") (define-public r-dplyr (package (name "r-dplyr") - (version "1.0.9") + (version "1.0.10") (source (origin (method url-fetch) (uri (cran-uri "dplyr" version)) (sha256 (base32 - "0sxl9yzccsdhlrrwj26lmh9frsijxyfaf7csv8mf7d0q4qqzgqg2")))) + "0aqggs0gk95b326gzqjab8i27cna1hzik3zi5l2kkr5l4zv3kdis")))) (build-system r-build-system) (propagated-inputs (list r-generics @@ -2173,13 +2178,13 @@ jackknifed confidence intervals are available for most estimates.") (define-public r-rversions (package (name "r-rversions") - (version "2.1.1") + (version "2.1.2") (source (origin (method url-fetch) (uri (cran-uri "rversions" version)) (sha256 (base32 - "1cbwwbz8lqx2n33xr4q904whvld22s63rpyy1nn93395l7ssrakr")))) + "0q5ip3rkhcxz7472fbqddrw3a2wm31b18w7ax0pi6wc27qiihn6y")))) (build-system r-build-system) (propagated-inputs (list r-curl r-xml2)) @@ -2353,14 +2358,14 @@ module, Java Server Pages, and Python's psp module.") (define-public r-desc (package (name "r-desc") - (version "1.4.1") + (version "1.4.2") (source (origin (method url-fetch) (uri (cran-uri "desc" version)) (sha256 (base32 - "0m3g5m0g08k674zh4lq0ihmqiwz8jpsfqrdwfqp5p4ngxi8vp7lg")))) + "0z1259ghccmrjylydra4bpryqasirsky7bc4gsx0k327pqacz2km")))) (build-system r-build-system) (propagated-inputs (list r-cli r-r6 r-rprojroot)) @@ -2434,14 +2439,14 @@ collation, and NAMESPACE files.") (define-public r-openssl (package (name "r-openssl") - (version "2.0.2") + (version "2.0.3") (source (origin (method url-fetch) (uri (cran-uri "openssl" version)) (sha256 (base32 - "1i7il5kkr1yp2xk8zw7max4llga4hfz0cx9sx0v2xnb9pg4ksbc6")))) + "1al6cb0qwafa32dxr2hhhv6hvbp26hiykamn7w27z1gc1d99ipkw")))) (build-system r-build-system) (arguments (list @@ -2476,13 +2481,13 @@ integers.") (define-public r-httr (package (name "r-httr") - (version "1.4.3") + (version "1.4.4") (source (origin (method url-fetch) (uri (cran-uri "httr" version)) (sha256 (base32 - "0skwi501rzndywn81704d68n1l6lrvqilf91q08cjfhpjvx171ls")))) + "0pa3ypkq6kq6sw7b8w62rfpcbjwhc49y8nkvk900s9pfycijbn21")))) (build-system r-build-system) (propagated-inputs (list r-curl r-jsonlite r-openssl r-mime r-r6)) @@ -2523,13 +2528,13 @@ pure C implementation of the Git core methods.") (define-public r-rstudioapi (package (name "r-rstudioapi") - (version "0.13") + (version "0.14") (source (origin (method url-fetch) (uri (cran-uri "rstudioapi" version)) (sha256 (base32 - "12vdfzzjc6mv4h105l8cp108j3hjk0mqmg23m6mqr3jarfymphxa")))) + "1i5g9l2739mlaglzg98iifycx98jlzxj5933qfb8lwmdn63hk7a6")))) (build-system r-build-system) (native-inputs (list r-knitr)) @@ -2605,14 +2610,14 @@ were originally a part of the r-devtools package.") (define-public r-hms (package (name "r-hms") - (version "1.1.1") + (version "1.1.2") (source (origin (method url-fetch) (uri (cran-uri "hms" version)) (sha256 (base32 - "0qlh4s1g9rbm6c3s906dhw3xsz28m8fg6cyynlkhvis533dk0pvb")))) + "1vdx08irnh8q5232hriv47hh88hc55nbbrff7y6zbainff2akrhy")))) (build-system r-build-system) (propagated-inputs (list r-ellipsis r-lifecycle r-pkgconfig r-rlang r-vctrs)) @@ -2721,13 +2726,13 @@ well as additional utilities such as panel and axis annotation functions.") (define-public r-rcpparmadillo (package (name "r-rcpparmadillo") - (version "0.11.2.0.0") + (version "0.11.2.4.0") (source (origin (method url-fetch) (uri (cran-uri "RcppArmadillo" version)) (sha256 (base32 - "0f0rrv254jd66m80vm4bmk3yrnyw1kdfgdki6zbcih7mbvw7mqgr")))) + "1y499idmci72x6gpj855vf4rlzh1r2qqpxyzs53r59ay8f4g0jar")))) (properties `((upstream-name . "RcppArmadillo"))) (build-system r-build-system) (propagated-inputs @@ -2813,13 +2818,13 @@ certain criterion, e.g., it contains a certain regular file.") (define-public r-rmarkdown (package (name "r-rmarkdown") - (version "2.14") + (version "2.16") (source (origin (method url-fetch) (uri (cran-uri "rmarkdown" version)) (sha256 - (base32 "081j1hpxcwadn606ch5lq279s66c1b0f0mjvap7yimnrljpigv79")))) + (base32 "0wgsc5ax4wynviasyxr240fkjk0g1wm9aq7b42mx66f43424xlyk")))) (properties `((upstream-name . "rmarkdown"))) (build-system r-build-system) (propagated-inputs @@ -2846,15 +2851,17 @@ variety of formats.") (define-public r-gtable (package (name "r-gtable") - (version "0.3.0") + (version "0.3.1") (source (origin (method url-fetch) (uri (cran-uri "gtable" version)) (sha256 (base32 - "1lyncxf2dqdjgw1071cn9c8zwzkz6sldnd5cgmicf70bc726qf7x")))) + "1dbwxhxawwbmaixwxxglazv5bici56qvmjk7sqa8j66m49bjrmlb")))) (properties `((upstream-name . "gtable"))) (build-system r-build-system) + (native-inputs + (list r-knitr)) (home-page "https://cran.r-project.org/web/packages/gtable") (synopsis "R library to arrange grobs in tables") (description @@ -2928,13 +2935,13 @@ a column in data frame.") (define-public r-rsqlite (package (name "r-rsqlite") - (version "2.2.15") + (version "2.2.17") (source (origin (method url-fetch) (uri (cran-uri "RSQLite" version)) (sha256 (base32 - "1cypz9i85fnp3izk0px9r8s3l1jwn5kmgs2avc0fi3fad1775029")))) + "16l64ganvdlaldmqryz2c95id2m8vchlj9x5rz9kppbmhy122vjw")))) (properties `((upstream-name . "RSQLite"))) (build-system r-build-system) (propagated-inputs @@ -3346,9 +3353,8 @@ using the multicore functionality of the parallel package.") ("https://cdn.datatables.net/buttons/1.6.1/js/buttons.bootstrap4.js" "0hfclipg43wr9p7irrcn9vp5wji8z7gz6y5mclkq88z1mlpwklzf" "datatables-extensions/Buttons") - ;; It is not clear what version the bundled file corresponds to. - ("https://cdnjs.cloudflare.com/ajax/libs/jszip/2.5.0/jszip.js" - "18hpj9vwgki56ijb20l5gwmqa5p1d0xprn57z2mlg3ph6ll0bdkd" + ("https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.js" + "01l5lw49jz2qn6k9i63dk4llar4lvvpd6xp6i45mpwfk49fbxqg2" "datatables-extensions/Buttons") ("https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/pdfmake.js" "1sfw80az2cgzin5wk7q1p2n9zm66c35cz0m6isdygml81i594wia" @@ -3564,13 +3570,13 @@ using the multicore functionality of the parallel package.") "datatables-extensions/Select")))) (package (name "r-dt") - (version "0.23") + (version "0.25") (source (origin (method url-fetch) (uri (cran-uri "DT" version)) (sha256 (base32 - "0w6wgiwa3zgldp175a3q7zfw853xqc7mfj34n6hja48ln7yf42in")) + "0as43h4minnz5c09nvbvq8b1d9506mzkcdl98bhf87rf0q9qgz0d")) (modules '((guix build utils))) (snippet '(for-each delete-file @@ -4132,14 +4138,14 @@ most common form of color blindness.") (define-public r-viridislite (package (name "r-viridislite") - (version "0.4.0") + (version "0.4.1") (source (origin (method url-fetch) (uri (cran-uri "viridisLite" version)) (sha256 (base32 - "0siwr0vq80gs3sbyd542zjb0cl9av5zqdm0fqnym5g6ribf5b6c4")))) + "15zaf2c7kzjf3i0g7y8w6jlgfkpprqj2zl346y5imz75r8fdp5m8")))) (properties `((upstream-name . "viridisLite"))) (build-system r-build-system) (home-page "https://github.com/sjmgarnier/viridisLite") @@ -4183,14 +4189,14 @@ selection.") (define-public r-tidyr (package (name "r-tidyr") - (version "1.2.0") + (version "1.2.1") (source (origin (method url-fetch) (uri (cran-uri "tidyr" version)) (sha256 (base32 - "1a0k296a0jb2xi5zgfrqfmmw8197bwibjl7a04fm49vqx6livl4c")))) + "1bv1rvnbbfdqf78qfbawq3yxjhjfdy0mgcla6b17bp336rnpcwb9")))) (build-system r-build-system) (propagated-inputs (list r-cpp11 @@ -4445,14 +4451,14 @@ following problems: (define-public r-base64 (package (name "r-base64") - (version "2.0") + (version "2.0.1") (source (origin (method url-fetch) (uri (cran-uri "base64" version)) (sha256 (base32 - "1labh0ycdm2xcjssj8bhnyjvbk44mcdsi0rb2p8rfqa428mrq9cf")))) + "1w9m4n29xmj7px8fbmha04vq146bxfqi7ipj1ag09hlm05y6h8jd")))) (build-system r-build-system) (propagated-inputs (list r-openssl)) @@ -4467,13 +4473,13 @@ package instead.") (define-public r-hmisc (package (name "r-hmisc") - (version "4.7-0") + (version "4.7-1") (source (origin (method url-fetch) (uri (cran-uri "Hmisc" version)) (sha256 - (base32 "1gc71wg6f17x6nriphs1kk39ix7lpqk32clk1qshqy8wl6f2vv19")))) + (base32 "0zrfi2mmi6wfl6440iqflzzmkina8dhxia2qsamqw6djd0d5fp9j")))) (properties `((upstream-name . "Hmisc"))) (build-system r-build-system) (native-inputs @@ -4858,13 +4864,13 @@ Wall Street Journal, among others. This package also provides (define-public r-statmod (package (name "r-statmod") - (version "1.4.36") + (version "1.4.37") (source (origin (method url-fetch) (uri (cran-uri "statmod" version)) (sha256 (base32 - "1hkvklcav6gj4zib4g3b4xwsdsbsmnzdblr0v6jaqv227p49gs0l")))) + "04v9nynv3lakhnd7b17v5syrlnscrxml71jnd3r93chckskwillh")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/statmod") (native-inputs @@ -5245,14 +5251,14 @@ analysis} (PCA) by projection pursuit.") (define-public r-rrcov (package (name "r-rrcov") - (version "1.7-0") + (version "1.7-1") (source (origin (method url-fetch) (uri (cran-uri "rrcov" version)) (sha256 (base32 - "1z98j9973hl19b70dcwfcf55ifxr2a9v53daaq2sagynh95aik6b")))) + "1rd4r4acgpr25x2iy7v2mnahmmf76a378zq16gnpwv5ljycs05g1")))) (build-system r-build-system) (propagated-inputs (list r-lattice r-mvtnorm r-pcapp r-robustbase)) @@ -5486,14 +5492,14 @@ metrics for evaluating models.") (define-public r-matrixmodels (package (name "r-matrixmodels") - (version "0.5-0") + (version "0.5-1") (source (origin (method url-fetch) (uri (cran-uri "MatrixModels" version)) (sha256 (base32 - "1va6i6bpkq71rzl9i4xgyc5x7qcksa3nfzihlaggf6aj30dayzx8")))) + "1a9ywhv1yklfcp0jgirkih3ib5scs61hkscmyddwfh5blpgmpi9z")))) (properties `((upstream-name . "MatrixModels"))) (build-system r-build-system) (propagated-inputs @@ -5773,14 +5779,14 @@ first and second order derivatives.") (define-public r-sn (package (name "r-sn") - (version "2.0.2") + (version "2.1.0") (source (origin (method url-fetch) (uri (cran-uri "sn" version)) (sha256 (base32 - "140p1pl5sq0laxhcm16kbqm986hlhqj90gj3jccga491gh14jywm")))) + "12s4g9rfrnijdil7bqw66ikj5k3w6bdnz6fsgqsp0bkfsap9nps9")))) (build-system r-build-system) (propagated-inputs (list r-mnormt r-numderiv r-quantreg)) @@ -5950,17 +5956,24 @@ and the corresponding decision threshold.") (define-public r-forcats (package (name "r-forcats") - (version "0.5.1") + (version "0.5.2") (source (origin (method url-fetch) (uri (cran-uri "forcats" version)) (sha256 (base32 - "12d2nv2w15085jscgidmjdnr1ryymciflcmal6ldmgp2fkl9dyy4")))) + "0hb1m16il1n8nmhp7hx8k2xxq8bd8kp3qqs2pw7xm0iz311hm9hl")))) (build-system r-build-system) (propagated-inputs - (list r-ellipsis r-magrittr r-tibble r-rlang)) + (list r-cli + r-ellipsis + r-glue + r-lifecycle + r-magrittr + r-tibble + r-rlang + r-withr)) (native-inputs (list r-knitr)) (home-page "https://forcats.tidyverse.org") @@ -6462,14 +6475,14 @@ mediation and estimating power.") (define-public r-clubsandwich (package (name "r-clubsandwich") - (version "0.5.7") + (version "0.5.8") (source (origin (method url-fetch) (uri (cran-uri "clubSandwich" version)) (sha256 (base32 - "1chq0bjz0yskm3cs8k6019j9v1m3fiz4p2ysk3xmqxlcihmnvv0b")))) + "1y894n35l4lzqm15ifxjnpnh95dldsfivv4098571yqf1z4a253q")))) (properties `((upstream-name . "clubSandwich"))) (build-system r-build-system) (propagated-inputs @@ -6901,13 +6914,13 @@ Calculates confidence intervals for the difference in proportion.") (define-public r-desctools (package (name "r-desctools") - (version "0.99.45") + (version "0.99.46") (source (origin (method url-fetch) (uri (cran-uri "DescTools" version)) (sha256 - (base32 "01gbmikpzjmymvb7p76k7wqvfvwznl6v0qa78jy7bi6fzmbp1zld")))) + (base32 "1f6jhvwgzv8mw5vmy7nqh8bpmrrzl36x1bq1ggnk3va24fcd01jq")))) (properties `((upstream-name . "DescTools"))) (build-system r-build-system) (propagated-inputs diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm index 1a22d230d2..6c9869f93e 100644 --- a/gnu/packages/telegram.scm +++ b/gnu/packages/telegram.scm @@ -62,6 +62,7 @@ #:use-module (gnu packages xorg) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system copy) @@ -71,6 +72,230 @@ #:use-module (guix build-system python) #:use-module (guix build-system qt)) +(define %telegram-version "2.9.3") + +(define libvpx-for-telegram-desktop + (let ((commit "5b63f0f821e94f8072eb483014cfc33b05978bb9") + (revision "112")) + (origin + (method git-fetch) + (uri (git-reference + (url "https://chromium.googlesource.com/webm/libvpx") + (commit commit))) + (file-name (git-file-name + "libvpx-for-telegram-desktop" + (git-version "1.9.0" revision commit))) + (sha256 + (base32 + "1psvxaddihlw1k5n0anxif3qli6zyw2sa2ywn6mkb8six9myrp68"))))) + +(define libyuv-for-telegram-desktop + (let ((commit "ad890067f661dc747a975bc55ba3767fe30d4452") + (revision "2211")) + (origin + (method git-fetch) + (uri (git-reference + (url "https://chromium.googlesource.com/libyuv/libyuv") + (commit commit))) + (file-name (git-file-name + "libyuv-for-telegram-desktop" + (git-version "0" revision commit))) + (sha256 + (base32 + "01knnk4h247rq536097n9n3s3brxlbby3nv3ppdgsqfda3k159ll"))))) + +(define cmake-helpers-for-telegram-desktop + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/desktop-app/cmake_helpers.git") + (commit "4d44d822e01b3b5fbec3ce824e01f56aa35d7f72"))) + (file-name + (git-file-name "cmake-helpers-for-telegram-desktop" %telegram-version)) + (sha256 + (base32 + "0h6cjiqy014h2mz90h1z5a7plb3ihbnds4bja8994ybr1dy3m7m5")))) + +(define codegen-for-telegram-desktop + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/desktop-app/codegen.git") + (commit "248614b49cd7d5aff69d75a737f2e35b79fbb119"))) + (file-name + (git-file-name "codegen-for-telegram-desktop" %telegram-version)) + (sha256 + (base32 + "00f7g2z6xmkbkrmi3q27hscjl44mg66wf9q0mz3rhy3jaa6cfdrk")))) + +(define lib-base-for-telegram-desktop + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/desktop-app/lib_base.git") + (commit "a23c05c44e4f01dc4428f4d75d4db98c59d313a6"))) + (file-name + (git-file-name "lib-base-for-telegram-desktop" %telegram-version)) + (sha256 + (base32 + "0vh5zgxwalmbnvz8lzlnba87ch8vnpmcz6nvf56w09f3nlxvvq78")))) + +(define lib-crl-for-telegram-desktop + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/desktop-app/lib_crl.git") + (commit "3ccf2ed5095442e5874bba8852cb7dc4efeae29f"))) + (file-name + (git-file-name "lib-crl-for-telegram-desktop" %telegram-version)) + (sha256 + (base32 + "11my7q54m4lvvlgma6pbdyjxi1cv1adk1gph2j50mh18sqlm8myz")))) + +(define lib-lottie-for-telegram-desktop + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/desktop-app/lib_lottie.git") + (commit "0770df009db7928df1d0cad0900dc5110106d229"))) + (file-name + (git-file-name "lib-lottie-for-telegram-desktop" %telegram-version)) + (sha256 + (base32 + "1gj56ymlbk5dnk82jw674808m511lv9dky8891a5wm4gp3pph5jb")))) + +(define lib-qr-for-telegram-desktop + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/desktop-app/lib_qr.git") + (commit "2b08c71c6edcfc3e31f7d7f518cc963493b6e189"))) + (file-name + (git-file-name "lib-qr-for-telegram-desktop" %telegram-version)) + (sha256 + (base32 + "05hrkmwgrczyjv87r507i2r7m1zr6k2i43mq3my0s6j4szr1rjq0")))) + +(define lib-rlottie-for-telegram-desktop + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/desktop-app/lib_rlottie.git") + (commit "0671bf70547381effcf442ec9618e04502a8adbc"))) + (file-name + (git-file-name "lib-rlottie-for-telegram-desktop" %telegram-version)) + (sha256 + (base32 + "05qnza7j15356s8jq16pkbyp4zr586lssmd86lz5jq23lcb3raxv")))) + +(define lib-rpl-for-telegram-desktop + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/desktop-app/lib_rpl.git") + (commit "df721be3fa14a27dfc230d2e3c42bb1a7c9d0617"))) + (file-name + (git-file-name "lib-rpl-for-telegram-desktop" %telegram-version)) + (sha256 + (base32 + "15fnv3ssn7rn5d0j52gggdvyqc2wm464678dj7v2x9h8lka2jjxn")))) + +(define lib-spellcheck-for-telegram-desktop + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/desktop-app/lib_spellcheck.git") + (commit "68c9b788958904aea7de79f986a0f82ec8c5b094"))) + (file-name + (git-file-name "lib-spellcheck-for-telegram-desktop" %telegram-version)) + (sha256 + (base32 + "0d8s4wwk6fxf536mhzq2vb9qw3j0m8nqia7ylvvpsbc4kh09dadn")))) + +(define lib-storage-for-telegram-desktop + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/desktop-app/lib_storage.git") + (commit "403df6c4a29562bd417c92d410e49819f5a48cc1"))) + (file-name + (git-file-name "lib-storage-for-telegram-desktop" %telegram-version)) + (sha256 + (base32 + "1zxvzfrxbj4d395fzyb5pm9wn3n8jyimxx88cyqjcdd46sx4h7r5")))) + +(define lib-tl-for-telegram-desktop + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/desktop-app/lib_tl.git") + (commit "45faed44e7f4d11fec79b7a70e4a35dc91ef3fdb"))) + (file-name + (git-file-name "lib-tl-for-telegram-desktop" %telegram-version)) + (sha256 + (base32 + "0h43xvzklda02494d466jp52hl8c1kmav9f12dyld10dpf1w6c7m")))) + +(define lib-ui-for-telegram-desktop + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/desktop-app/lib_ui.git") + (commit "1b590f9e16eb9571a039f072d6fea66c607e419f"))) + (file-name + (git-file-name "lib-ui-for-telegram-desktop" %telegram-version)) + (sha256 + (base32 + "0ighyhfp29h9h8c7vr70pnhcv2xnsr9ln084pssn8hb5z4pmb62f")))) + +(define lib-waylandshells-for-telegram-desktop + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/desktop-app/lib_waylandshells.git") + (commit "59b0ee55a68976d27f1bf7cec0e11d5939e185e7"))) + (file-name + (git-file-name "lib-waylandshells-for-telegram-desktop" %telegram-version)) + (sha256 + (base32 + "0l2xrpc5mvvdlsj333pmkgfvn9wi1ijfdaaz8skfnw9icw52faaf")))) + +(define lib-webrtc-for-telegram-desktop + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/desktop-app/lib_webrtc.git") + (commit "ef49f953f12b112008a094a719f40939aaf39db4"))) + (file-name + (git-file-name "lib-webrtc-for-telegram-desktop" %telegram-version)) + (sha256 + (base32 + "15k4xs3462p3ddp5cn9im3nvdiaijmxir8wxsf5yrj70ghy26ibw")))) + +(define lib-webview-for-telegram-desktop + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/desktop-app/lib_webview.git") + (commit "e06427c624515485774e2e2181d4afeb05ad5a67"))) + (file-name + (git-file-name "lib-webview-for-telegram-desktop" %telegram-version)) + (sha256 + (base32 + "148z7xzfscynwwwqssdsd97npax6yn8zrd64xw8qzbwff2g2r7k4")))) + +(define tgcalls-for-telegram-desktop + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/TelegramMessenger/tgcalls.git") + (commit "81e97fa52e25b7775b62ce07bb653533d81e91b3"))) + (file-name + (git-file-name "tgcalls-for-telegram-desktop" %telegram-version)) + (sha256 + (base32 + "0fvad87hyxli83xn19mgf8jjrrh6y6iaig14pckpbkg33vf4wqkj")))) + (define-public webrtc-for-telegram-desktop (let ((commit "91d836dc84a16584c6ac52b36c04c0de504d9c34") (revision "166")) @@ -94,84 +319,54 @@ (ice-9 ftw) (srfi srfi-1))) (snippet - `(begin - (let ((keep - '( ;; Custom forks which are incompatible with the ones in Guix. - "abseil-cpp" "libsrtp" "openh264" "rnnoise" - ;; Not available in Guix. - "pffft" "usrsctp" - ;; Has cmake support files for libvpx input. - "libvpx"))) - (with-directory-excursion "src/third_party" - (for-each delete-file-recursively - (lset-difference string=? - (scandir ".") - (cons* "." ".." keep)))) - #t))))) + #~(begin + (let ((keep + '( ;; Custom forks which are incompatible with the ones in Guix. + "abseil-cpp" "libsrtp" "openh264" "rnnoise" + ;; Not available in Guix. + "pffft" "usrsctp" + ;; Has cmake support files for libvpx input. + "libvpx"))) + (with-directory-excursion "src/third_party" + (for-each delete-file-recursively + (lset-difference string=? + (scandir ".") + (cons* "." ".." keep))))))))) (build-system cmake-build-system) (arguments - `(#:tests? #f ; No target - #:configure-flags - (list - "-DCMAKE_C_FLAGS=-fPIC" - "-DCMAKE_CXX_FLAGS=-fPIC") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'copy-inputs - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((libvpx-from (assoc-ref inputs "libvpx")) - (libyuv-from (assoc-ref inputs "libyuv")) - (libvpx-to (string-append (getcwd) - "/src/third_party/libvpx/source/libvpx")) - (libyuv-to (string-append (getcwd) - "/src/third_party/libyuv"))) - (copy-recursively libvpx-from libvpx-to) - (copy-recursively libyuv-from libyuv-to)) - #t))))) - (native-inputs - `(("perl" ,perl) - ("pkg-config" ,pkg-config) - ("python" ,python-wrapper) - ("yasm" ,yasm))) + (list + #:tests? #f ; No target + #:configure-flags #~(list "-DCMAKE_C_FLAGS=-fPIC" + "-DCMAKE_CXX_FLAGS=-fPIC") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'copy-inputs + (lambda _ + (let* ((third-party (string-append (getcwd) "/src/third_party")) + (libvpx-to (string-append third-party + "/libvpx/source/libvpx")) + (libyuv-to (string-append third-party "/libyuv"))) + (copy-recursively #$libvpx-for-telegram-desktop libvpx-to) + (copy-recursively #$libyuv-for-telegram-desktop + libyuv-to))))))) + (native-inputs (list perl pkg-config python-wrapper yasm)) (inputs - `(("alsa" ,alsa-lib) - ("ffmpeg" ,ffmpeg) - ("libjpeg" ,libjpeg-turbo) - ("glib" ,glib) - ("libvpx" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://chromium.googlesource.com/webm/libvpx") - (commit "5b63f0f821e94f8072eb483014cfc33b05978bb9"))) - (file-name - (git-file-name "libvpx-for-webrtc-for-telegram-desktop" version)) - (sha256 - (base32 "1psvxaddihlw1k5n0anxif3qli6zyw2sa2ywn6mkb8six9myrp68")))) - ("libyuv" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://chromium.googlesource.com/libyuv/libyuv") - (commit "ad890067f661dc747a975bc55ba3767fe30d4452"))) - (file-name - (git-file-name "libyuv-for-webrtc-for-telegram-desktop" version)) - (sha256 - (base32 "01knnk4h247rq536097n9n3s3brxlbby3nv3ppdgsqfda3k159ll")))) - ("libxcomposite" ,libxcomposite) - ("libxdamage" ,libxdamage) - ("libxrender" ,libxrender) - ("libxrandr" ,libxrandr) - ("openssl" ,openssl) - ("opus" ,opus) - ("pipewire" ,pipewire) - ("protobuf" ,protobuf) - ("pulseaudio" ,pulseaudio) - ("x11" ,libx11) - ("xext" ,libxext) - ("xtst" ,libxtst))) + (list alsa-lib + ffmpeg + libjpeg-turbo + glib + libxcomposite + libxdamage + libxrender + libxrandr + openssl + opus + pipewire + protobuf + pulseaudio + libx11 + libxext + libxtst)) (synopsis "WebRTC support for Telegram Desktop") (description "WebRTC-for-Telegram-Desktop is a custom WebRTC fork by Telegram project, for its use in telegram desktop client.") @@ -269,7 +464,7 @@ Telegram project, for its use in telegram desktop client.") (define-public telegram-desktop (package (name "telegram-desktop") - (version "2.9.3") + (version %telegram-version) (source (origin (method git-fetch) @@ -286,312 +481,124 @@ Telegram project, for its use in telegram desktop client.") (ice-9 ftw) (srfi srfi-1))) (snippet - `(begin - (let ((keep - '( ;; Not available in Guix. - "SPMediaKeyTap" "statusnotifieritem" "tgcalls"))) - (with-directory-excursion "Telegram/ThirdParty" - (for-each delete-file-recursively - (lset-difference string=? - (scandir ".") - (cons* "." ".." keep)))) - #t))))) + #~(begin + (let ((keep + '( ;; Not available in Guix. + "SPMediaKeyTap" "statusnotifieritem" "tgcalls"))) + (with-directory-excursion "Telegram/ThirdParty" + (for-each delete-file-recursively + (lset-difference string=? + (scandir ".") + (cons* "." ".." keep))))))))) (build-system qt-build-system) (arguments - `(#:tests? #f ; No target - #:imported-modules - (,@%qt-build-system-modules - (guix build glib-or-gtk-build-system)) - #:modules - ((guix build qt-build-system) - ((guix build glib-or-gtk-build-system) - #:prefix glib-or-gtk:) - (guix build utils) - (ice-9 match)) - #:configure-flags - (list - ;; Client applications must provide their own API-ID and API-HASH, - ;; see also <https://core.telegram.org/api/obtaining_api_id>. - ;; In case, that the credentials below fail to work, contact - ;; Raghav Gururajan <rg@raghavgururajan.name> - "-DTDESKTOP_API_ID=2791056" - "-DTDESKTOP_API_HASH=582d6d0b44f7a2de949e99271fd8b3f2" - ;; Disable WebkitGTK support as it fails to link - "-DDESKTOP_APP_DISABLE_WEBKITGTK=ON" - ;; Use bundled fonts as fallback. - "-DDESKTOP_APP_USE_PACKAGED_FONTS=OFF") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'make-writable - (lambda _ - (for-each make-file-writable (find-files ".")) - #t)) - (add-after 'make-writable 'copy-inputs - (lambda* (#:key inputs outputs #:allow-other-keys) - (for-each - (match-lambda - ((dst src) - (copy-recursively src dst) - (for-each make-file-writable (find-files dst)))) - `(("cmake" ,(assoc-ref inputs "cmake-helpers")) - ("Telegram/codegen" ,(assoc-ref inputs "codegen-source")) - ("Telegram/lib_base" ,(assoc-ref inputs "lib-base-source")) - ("Telegram/lib_crl" ,(assoc-ref inputs "lib-crl-source")) - ("Telegram/lib_lottie" - ,(assoc-ref inputs "lib-lottie-source")) - ("Telegram/lib_qr" ,(assoc-ref inputs "lib-qr-source")) - ("Telegram/lib_rlottie" - ,(assoc-ref inputs "lib-rlottie-source")) - ("Telegram/lib_rpl" ,(assoc-ref inputs "lib-rpl-source")) - ("Telegram/lib_spellcheck" - ,(assoc-ref inputs "lib-spellcheck-source")) - ("Telegram/lib_storage" - ,(assoc-ref inputs "lib-storage-source")) - ("Telegram/lib_tl" ,(assoc-ref inputs "lib-tl-source")) - ("Telegram/lib_ui" ,(assoc-ref inputs "lib-ui-source")) - ("Telegram/lib_waylandshells" ,(assoc-ref inputs "lib-waylandshells-source")) - ("Telegram/lib_webrtc" ,(assoc-ref inputs "lib-webrtc-source")) - ("Telegram/lib_webview" ,(assoc-ref inputs "lib-webview-source")) - ("Telegram/ThirdParty/tgcalls" - ,(assoc-ref inputs "tgcalls-source")))) - #t)) - (add-before 'configure 'patch-cxx-flags - (lambda _ - (substitute* "cmake/options_linux.cmake" - (("class-memaccess") "all")) - #t)) - (add-after 'install 'glib-or-gtk-compile-schemas - (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas)) - (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap - (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) + (list #:tests? #f ; No target + #:imported-modules + `(,@%qt-build-system-modules + (guix build glib-or-gtk-build-system)) + #:modules + '((guix build qt-build-system) + ((guix build glib-or-gtk-build-system) + #:prefix glib-or-gtk:) + (guix build utils) + (ice-9 match)) + #:configure-flags + #~(list + ;; Client applications must provide their own API-ID and API-HASH, + ;; see also <https://core.telegram.org/api/obtaining_api_id>. + ;; Here, we snarf the keys from the official Snaps, which are + ;; also stored in <#$source/snap/snapcraft.yaml>. + "-DTDESKTOP_API_ID=611335" + "-DTDESKTOP_API_HASH=d524b414d21f4d37f08684c1df41ac9c" + ;; Disable WebkitGTK support as it fails to link + "-DDESKTOP_APP_DISABLE_WEBKITGTK=ON" + ;; Use bundled fonts as fallback. + "-DDESKTOP_APP_USE_PACKAGED_FONTS=OFF") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'make-writable + (lambda _ + (for-each make-file-writable (find-files ".")))) + (add-after 'make-writable 'copy-inputs + (lambda _ + (for-each + (match-lambda + ((dst src) + (copy-recursively src dst) + (for-each make-file-writable (find-files dst)))) + '(("cmake" #$cmake-helpers-for-telegram-desktop) + ("Telegram/codegen" #$codegen-for-telegram-desktop) + ("Telegram/lib_base" #$lib-base-for-telegram-desktop) + ("Telegram/lib_crl" #$lib-crl-for-telegram-desktop) + ("Telegram/lib_lottie" #$lib-lottie-for-telegram-desktop) + ("Telegram/lib_qr" #$lib-qr-for-telegram-desktop) + ("Telegram/lib_rlottie" #$lib-rlottie-for-telegram-desktop) + ("Telegram/lib_rpl" #$lib-rpl-for-telegram-desktop) + ("Telegram/lib_spellcheck" #$lib-spellcheck-for-telegram-desktop) + ("Telegram/lib_storage" #$lib-storage-for-telegram-desktop) + ("Telegram/lib_tl" #$lib-tl-for-telegram-desktop) + ("Telegram/lib_ui" #$lib-ui-for-telegram-desktop) + ("Telegram/lib_waylandshells" #$lib-waylandshells-for-telegram-desktop) + ("Telegram/lib_webrtc" #$lib-webrtc-for-telegram-desktop) + ("Telegram/lib_webview" #$lib-webview-for-telegram-desktop) + ("Telegram/ThirdParty/tgcalls" #$tgcalls-for-telegram-desktop))))) + (add-before 'configure 'patch-cxx-flags + (lambda _ + (substitute* "cmake/options_linux.cmake" (("class-memaccess") "all")))) + (add-after 'install 'glib-or-gtk-compile-schemas + (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas)) + (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap + (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) (native-inputs - `(("cmake-helpers" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/desktop-app/cmake_helpers.git") - (commit "4d44d822e01b3b5fbec3ce824e01f56aa35d7f72"))) - (file-name - (git-file-name "cmake-helpers-for-telegram-desktop" version)) - (sha256 - (base32 "0h6cjiqy014h2mz90h1z5a7plb3ihbnds4bja8994ybr1dy3m7m5")))) - ("cmake-shared" ,cmake-shared) - ("extra-cmake-modules" ,extra-cmake-modules) - ("glib:bin" ,glib "bin") - ("gobject-introspection" ,gobject-introspection) - ("gtk+:bin" ,gtk+ "bin") - ("pkg-config" ,pkg-config) - ("python" ,python-wrapper) - ("qttools-5" ,qttools-5))) + (list cmake-shared + extra-cmake-modules + `(,glib "bin") + `(,gtk+ "bin") + pkg-config + python-wrapper + qttools-5)) (inputs - `(("alsa" ,alsa-lib) - ("c++-gsl" ,c++-gsl) - ("catch" ,catch2) - ("codegen-source" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/desktop-app/codegen.git") - (commit "248614b49cd7d5aff69d75a737f2e35b79fbb119"))) - (file-name - (git-file-name "codegen" version)) - (sha256 - (base32 "00f7g2z6xmkbkrmi3q27hscjl44mg66wf9q0mz3rhy3jaa6cfdrk")))) - ("expected" ,libexpected) - ("fcitx-qt5" ,fcitx-qt5) - ("fcitx5-qt" ,fcitx5-qt) - ("ffmpeg" ,ffmpeg) - ("glib" ,glib) - ("glibmm" ,glibmm-2.64) - ("gtk+" ,gtk+) - ("hime" ,hime) - ("hunspell" ,hunspell) - ("jemalloc" ,jemalloc) - ("kwayland" ,kwayland) - ("lib-base-source" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/desktop-app/lib_base.git") - (commit "a23c05c44e4f01dc4428f4d75d4db98c59d313a6"))) - (file-name - (git-file-name "lib-base-for-telegram-desktop" version)) - (sha256 - (base32 "0vh5zgxwalmbnvz8lzlnba87ch8vnpmcz6nvf56w09f3nlxvvq78")))) - ("lib-crl-source" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/desktop-app/lib_crl.git") - (commit "3ccf2ed5095442e5874bba8852cb7dc4efeae29f"))) - (file-name - (git-file-name "lib-crl-for-telegram-desktop" version)) - (sha256 - (base32 "11my7q54m4lvvlgma6pbdyjxi1cv1adk1gph2j50mh18sqlm8myz")))) - ("lib-lottie-source" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/desktop-app/lib_lottie.git") - (commit "0770df009db7928df1d0cad0900dc5110106d229"))) - (file-name - (git-file-name "lib-lottie-for-telegram-desktop" version)) - (sha256 - (base32 "1gj56ymlbk5dnk82jw674808m511lv9dky8891a5wm4gp3pph5jb")))) - ("lib-qr-source" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/desktop-app/lib_qr.git") - (commit "2b08c71c6edcfc3e31f7d7f518cc963493b6e189"))) - (file-name - (git-file-name "lib-qr-for-telegram-desktop" version)) - (sha256 - (base32 "05hrkmwgrczyjv87r507i2r7m1zr6k2i43mq3my0s6j4szr1rjq0")))) - ("lib-rlottie-source" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/desktop-app/lib_rlottie.git") - (commit "0671bf70547381effcf442ec9618e04502a8adbc"))) - (file-name - (git-file-name "lib-rlottie-for-telegram-desktop" version)) - (sha256 - (base32 "05qnza7j15356s8jq16pkbyp4zr586lssmd86lz5jq23lcb3raxv")))) - ("lib-rpl-source" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/desktop-app/lib_rpl.git") - (commit "df721be3fa14a27dfc230d2e3c42bb1a7c9d0617"))) - (file-name - (git-file-name "lib-rpl-for-telegram-desktop" version)) - (sha256 - (base32 "15fnv3ssn7rn5d0j52gggdvyqc2wm464678dj7v2x9h8lka2jjxn")))) - ("lib-spellcheck-source" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/desktop-app/lib_spellcheck.git") - (commit "68c9b788958904aea7de79f986a0f82ec8c5b094"))) - (file-name - (git-file-name "lib-spellcheck-for-telegram-desktop" version)) - (sha256 - (base32 "0d8s4wwk6fxf536mhzq2vb9qw3j0m8nqia7ylvvpsbc4kh09dadn")))) - ("lib-storage-source" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/desktop-app/lib_storage.git") - (commit "403df6c4a29562bd417c92d410e49819f5a48cc1"))) - (file-name - (git-file-name "lib-storage-for-telegram-desktop" version)) - (sha256 - (base32 "1zxvzfrxbj4d395fzyb5pm9wn3n8jyimxx88cyqjcdd46sx4h7r5")))) - ("lib-tl-source" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/desktop-app/lib_tl.git") - (commit "45faed44e7f4d11fec79b7a70e4a35dc91ef3fdb"))) - (file-name - (git-file-name "lib-tl-for-telegram-desktop" version)) - (sha256 - (base32 "0h43xvzklda02494d466jp52hl8c1kmav9f12dyld10dpf1w6c7m")))) - ("lib-ui-source" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/desktop-app/lib_ui.git") - (commit "1b590f9e16eb9571a039f072d6fea66c607e419f"))) - (file-name - (git-file-name "lib-ui-for-telegram-desktop" version)) - (sha256 - (base32 "0ighyhfp29h9h8c7vr70pnhcv2xnsr9ln084pssn8hb5z4pmb62f")))) - ("lib-waylandshells-source" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/desktop-app/lib_waylandshells.git") - (commit "59b0ee55a68976d27f1bf7cec0e11d5939e185e7"))) - (file-name - (git-file-name "lib-waylandshells-for-telegram-desktop" version)) - (sha256 - (base32 "0l2xrpc5mvvdlsj333pmkgfvn9wi1ijfdaaz8skfnw9icw52faaf")))) - ("lib-webrtc-source" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/desktop-app/lib_webrtc.git") - (commit "ef49f953f12b112008a094a719f40939aaf39db4"))) - (file-name - (git-file-name "lib-webrtc-for-telegram-desktop" version)) - (sha256 - (base32 "15k4xs3462p3ddp5cn9im3nvdiaijmxir8wxsf5yrj70ghy26ibw")))) - ("lib-webview-source" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/desktop-app/lib_webview.git") - (commit "e06427c624515485774e2e2181d4afeb05ad5a67"))) - (file-name - (git-file-name "lib-webview-for-telegram-desktop" version)) - (sha256 - (base32 "148z7xzfscynwwwqssdsd97npax6yn8zrd64xw8qzbwff2g2r7k4")))) - ("libdbusmenu-qt" ,libdbusmenu-qt) - ("libjpeg" ,libjpeg-turbo) - ("libtgvoip" ,libtgvoip-for-telegram-desktop) - ("lz4" ,lz4) - ("materialdecoration" ,materialdecoration) - ("minizip" ,minizip) - ("nimf" ,nimf) - ("openal" ,openal) - ("openssl" ,openssl) - ("opus" ,opus) - ("pulseaudio" ,pulseaudio) - ("qrcodegen" ,qrcodegen-cpp) - ("qt" ,qtbase-5) - ("qtsvg-5" ,qtsvg-5) - ("qt5ct" ,qt5ct) - ("qtimageformats" ,qtimageformats) - ("qtwayland" ,qtwayland) - ("range-v3" ,range-v3) - ("rlottie" ,rlottie-for-telegram-desktop) - ("rnnoise" ,rnnoise) - ("tgcalls-source" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://github.com/TelegramMessenger/tgcalls.git") - (commit "81e97fa52e25b7775b62ce07bb653533d81e91b3"))) - (file-name - (git-file-name "tgcalls-for-telegram-desktop" version)) - (sha256 - (base32 "0fvad87hyxli83xn19mgf8jjrrh6y6iaig14pckpbkg33vf4wqkj")))) - ("webrtc" ,webrtc-for-telegram-desktop) - ("x11" ,libx11) - ("xcb" ,libxcb) - ("xcb-keysyms" ,xcb-util-keysyms) - ("xxhash" ,xxhash) - ("zlib" ,zlib))) - (propagated-inputs - (list dconf)) + (list alsa-lib + c++-gsl + catch2 + libexpected + fcitx-qt5 + fcitx5-qt + ffmpeg + glib + glibmm-2.64 + gtk+ + hime + hunspell + jemalloc + kwayland + libdbusmenu-qt + libjpeg-turbo + libtgvoip-for-telegram-desktop + lz4 + materialdecoration + minizip + nimf + openal + openssl + opus + pulseaudio + qrcodegen-cpp + qtbase-5 + qtsvg-5 + qt5ct + qtimageformats + qtwayland + range-v3 + rlottie-for-telegram-desktop + rnnoise + webrtc-for-telegram-desktop + libx11 + libxcb + xcb-util-keysyms + xxhash + zlib)) + (propagated-inputs (list dconf)) (synopsis "Telegram Desktop") (description "Telegram desktop is the official desktop version of the Telegram instant messenger.") diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 6702155a57..5a7c3821ad 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -17,7 +17,7 @@ ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> -;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> @@ -723,7 +723,7 @@ your calls and messages.") (define-public pjproject (package (name "pjproject") - (version "2.11.1") + (version "2.12.1") (source (origin (method git-fetch) @@ -733,7 +733,7 @@ your calls and messages.") (file-name (git-file-name name version)) (sha256 (base32 - "04s4bgr2d22ym2ajjk6q507hyqss1p59yp8avyyyf5f8032nbaws")) + "0xrj4sznbaip22y9hclff6y81l285bzkkj1smzifskpk3kiwp00w")) (modules '((guix build utils))) (snippet '(begin @@ -742,99 +742,100 @@ your calls and messages.") (substitute* "aconfigure.ac" (("third_party/build/os-auto.mak") "")) (substitute* "Makefile" - (("third_party/build") "")))) - (patches (search-patches "pjproject-install-libpjsua2.patch")))) + (("third_party/build") "")))))) (build-system gnu-build-system) (outputs '("out" "debug" "static")) (arguments - `(#:test-target "selftest" - #:configure-flags - (list "--enable-shared" - "--with-external-speex" - "--with-external-gsm" - "--with-external-srtp" - "--with-external-pa" - ;; The following flag is Linux specific. - ,@(if (string-contains (or (%current-system) - (%current-target-system)) "linux") - '("--enable-epoll") - '()) - "--with-gnutls" ;disable OpenSSL checks - "--disable-libyuv" ;TODO: add missing package - "--disable-silk" ;TODO: add missing package - "--disable-libwebrtc" ;TODO: add missing package - "--disable-ilbc-codec" ;cannot be unbundled - "--disable-g7221-codec" ;TODO: add missing package - "--enable-libsamplerate" - ;; -DNDEBUG is set to prevent pjproject from raising - ;; assertions that aren't critical, crashing - ;; applications as the result. - "CFLAGS=-DNDEBUG" - ;; Specify a runpath reference to itself, which is missing and - ;; causes the validate-runpath phase to fail. - (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") - "/lib")) - #:phases - (modify-phases %standard-phases - (add-before 'build 'build-dep - (lambda _ (invoke "make" "dep"))) - ;; The check phases is moved after the install phase so to - ;; use the installed shared libraries for the tests. - (delete 'check) - (add-after 'install 'move-static-libraries - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (s (string-append (assoc-ref outputs "static") "/lib"))) - (mkdir-p s) - (with-directory-excursion out - (for-each (lambda (f) - (rename-file f (string-append s "/" (basename f)))) - (find-files "." "\\.a$")))))) - (add-after 'install 'check - (assoc-ref %standard-phases 'check)) - (add-before 'patch-source-shebangs 'autoconf - (lambda _ - (invoke "autoconf" "-v" "-f" "-i" "-o" - "aconfigure" "aconfigure.ac"))) - (add-before 'autoconf 'disable-some-tests - (lambda _ - (substitute* "pjlib/src/pjlib-test/test.h" - ;; Disable network tests which are slow and/or require an - ;; actual network. - (("#define GROUP_NETWORK.*") - "#define GROUP_NETWORK 0\n")) - (substitute* "self-test.mak" - ;; Fails with: pjlib-util-test-x86_64-unknown-linux-gnu: - ;; ../src/pjlib-util-test/resolver_test.c:1501: action2_1: - ;; Assertio n `pj_strcmp2(&pkt->q[0].name, "_sip._udp." - ;; "domain2.com")==0' failed. - ((" pjlib_util_test ") "")) - (substitute* "pjsip/src/test/test.h" - ;; Fails with: Error: unable to acquire TCP transport: - ;; [pj_status_t=120101] Network is unreachable. - (("#define INCLUDE_TCP_TEST.*") - "#define INCLUDE_TCP_TEST 0\n") - ;; The TSX tests takes a very long time to run; skip them. - (("#define INCLUDE_TSX_GROUP.*") - "#define INCLUDE_TSX_GROUP 0\n")) - (substitute* "pjsip/src/test/dns_test.c" - ;; The round_robin_test fails non-deterministically (depending - ;; on load); skip it (see: - ;; https://github.com/pjsip/pjproject/issues/2500). - (("round_robin_test(pool)") 0)) - (substitute* "pjmedia/src/test/test.h" - ;; The following tests require a sound card. - (("#define HAS_MIPS_TEST.*") - "#define HAS_MIPS_TEST 0\n") - (("#define HAS_JBUF_TEST.*") - "#define HAS_JBUF_TEST 0\n")) - (substitute* "Makefile" - ;; Disable the pjnath and pjsua tests, which require an actual - ;; network and an actual sound card, respectively. - (("pjnath-test pjmedia-test pjsip-test pjsua-test") - "pjmedia-test pjsip-test"))))))) + (list + #:test-target "selftest" + #:configure-flags + #~(list "--enable-shared" + "--with-external-speex" + "--with-external-gsm" + "--with-external-srtp" + "--with-external-pa" + ;; The following flag is Linux specific. + #$@(if (string-contains (or (%current-system) + (%current-target-system)) "linux") + #~("--enable-epoll") + #~()) + "--with-gnutls" ;disable OpenSSL checks + "--disable-libyuv" ;TODO: add missing package + "--disable-silk" ;TODO: add missing package + "--disable-libwebrtc" ;TODO: add missing package + "--disable-ilbc-codec" ;cannot be unbundled + "--disable-g7221-codec" ;TODO: add missing package + "--enable-libsamplerate" + ;; -DNDEBUG is set to prevent pjproject from raising + ;; assertions that aren't critical, crashing + ;; applications as the result. + "CFLAGS=-DNDEBUG" + ;; Specify a runpath reference to itself, which is missing and + ;; causes the validate-runpath phase to fail. + (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib")) + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'build-dep + (lambda _ (invoke "make" "dep"))) + ;; The check phases is moved after the install phase so to + ;; use the installed shared libraries for the tests. + (delete 'check) + (add-after 'install 'move-static-libraries + (lambda* (#:key outputs #:allow-other-keys) + (let ((s (string-append #$output:static "/lib"))) + (mkdir-p s) + (with-directory-excursion #$output + (for-each (lambda (f) + (rename-file f (string-append s "/" (basename f)))) + (find-files "." "\\.a$")))))) + (add-after 'install 'check + (assoc-ref %standard-phases 'check)) + (add-before 'patch-source-shebangs 'autoconf + (lambda _ + (invoke "autoconf" "-v" "-f" "-i" "-o" + "aconfigure" "aconfigure.ac"))) + (add-before 'autoconf 'disable-some-tests + (lambda _ + (substitute* "pjlib/src/pjlib-test/test.h" + ;; Disable network tests which are slow and/or require an + ;; actual network. + (("#define GROUP_NETWORK.*") + "#define GROUP_NETWORK 0\n")) + (substitute* "self-test.mak" + ;; Fails with: pjlib-util-test-x86_64-unknown-linux-gnu: + ;; ../src/pjlib-util-test/resolver_test.c:1501: action2_1: + ;; Assertio n `pj_strcmp2(&pkt->q[0].name, "_sip._udp." + ;; "domain2.com")==0' failed. + ((" pjlib_util_test ") "")) + (substitute* "pjsip/src/test/test.h" + ;; Fails with: Error: unable to acquire TCP transport: + ;; [pj_status_t=120101] Network is unreachable. + (("#define INCLUDE_TCP_TEST.*") + "#define INCLUDE_TCP_TEST 0\n") + ;; The TSX tests takes a very long time to run; skip them. + (("#define INCLUDE_TSX_GROUP.*") + "#define INCLUDE_TSX_GROUP 0\n")) + (substitute* "pjsip/src/test/dns_test.c" + ;; The round_robin_test fails non-deterministically (depending + ;; on load); skip it (see: + ;; https://github.com/pjsip/pjproject/issues/2500). + (("round_robin_test(pool)") 0)) + (substitute* "pjmedia/src/test/test.h" + ;; The following tests require a sound card. + (("#define HAS_MIPS_TEST.*") + "#define HAS_MIPS_TEST 0\n") + (("#define HAS_JBUF_TEST.*") + "#define HAS_JBUF_TEST 0\n")) + (substitute* "Makefile" + ;; Disable the pjnath and pjsua tests, which require an actual + ;; network and an actual sound card, respectively. + (("pjnath-test pjmedia-test pjsip-test pjsua-test") + "pjmedia-test pjsip-test"))))))) (native-inputs - (list autoconf automake libtool pkg-config)) + (list autoconf + automake + libtool + pkg-config)) (inputs (list bcg729 gnutls diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 93625b0fe9..1279673852 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -6542,6 +6542,45 @@ that also takes care of the involved internal macros.") (define-deprecated-package texlive-latex-letltxmacro texlive-letltxmacro) +(define-public texlive-latex-frankenstein + (package + (name "texlive-latex-frankenstein") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference (url (string-append + "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/latex/frankenstein")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1zhdvn3zgdarlzfcyq8nzilvw0v0bqgl4m0y7j233cbqw8wiil4z")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/latex/frankenstein"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") + target) #t)))) + (home-page "https://ctan.org/pkg/frankenstein") + (synopsis "Collection of unrelated LaTeX packages") + (description + "Frankenstein is a bundle of LaTeX packages serving various purposes and a +BibTeX bibliography style. The individual packages are: @code{abbrevs}, +@code{achicago}, @code{achicago} bibstyle, @code{attrib}, @code{blkcntrl}, +@code{compsci}, @code{dialogue}, @code{lips}, @code{moredefs}, @code{newclude}, +@code{slemph} and @code{titles}. Note: The installation follows the suboptimal +``Quick and dirty'' recipe, rendering some features unavailable.") + ;; README mentions an unspecified version of GNU GPL and points to COPYING, + ;; which is missing. However, the individual files mention LPPL 1.2 or + ;; later. + (license license:lppl1.2+))) + (define-public texlive-listings (let ((template (simple-texlive-package @@ -7330,6 +7369,24 @@ They combine a comprehensive Unicode-based collection of mathematical symbols and alphabets with a set of text faces suitable for professional publishing.") (license license:silofl1.1)))) +(define-public texlive-latex-sidecap + (package + (inherit (simple-texlive-package + "texlive-latex-sidecap" + (list "doc/latex/sidecap/" + "tex/latex/sidecap/") + (base32 "1biyxvh7fm70pq1rxqrla2vs013bpsd1j8jvlyl3vjg433d5bly3") + #:trivial? #t)) + (build-system texlive-build-system) + (home-page "https://ctan.org/pkg/sidecap") + (synopsis "Typeset captions sideways") + (description + "@code{sidecap} defines environments called @code{SCfigure} and +@code{SCtable} (analogous to @code{figure} and @code{table}) to typeset +captions sideways. Options include @code{outercaption}, @code{innercaption}, +@code{leftcaption} and @code{rightcaption}.") + (license license:lppl1.0+))) + (define-public texlive-stmaryrd (let ((template (simple-texlive-package "texlive-stmaryrd" @@ -11929,6 +11986,33 @@ Danish in @code{babel}. It provides all the necessary macros, definitions and settings to typeset Danish documents.") (license license:lppl1.3c+)))) +(define-public texlive-babel-polish + (let ((template (simple-texlive-package + "texlive-babel-polish" + (list "/source/generic/babel-polish/") + (base32 + "1jymxl98mwxmq0yq90mhrr7bq7c613rh1rnhl7l3bih36af55rwr")))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:tex-directory _ '()) + "generic/babel-polish") + ((#:build-targets _ '()) + ''("polish.ins")) ; TODO: use dtx and build documentation + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "source/generic/babel-polish"))))))) + (home-page "https://www.ctan.org/pkg/babel-polish") + (synopsis "Babel support for Polish") + (description + "This package provides the language definition file for support of +Polish in @code{babel}. Some shortcuts are defined, as well as translations to +Polish of standard ``LaTeX names''.") + (license license:lppl1.3+)))) + (define-public texlive-mdframed (package (inherit diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 9cc1ea46e3..0ccf01d737 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -335,7 +335,8 @@ the SVT-HEVC encoder, it is possible to spread video encoding processing across multiple Intel's Xeon processors to achieve a real advantage of processing efficiency.") (home-page "https://01.org/svt") - (supported-systems '("x86_64-linux" "i686-linux")) + ;; Specifically targets x86_64 Intel hardware. + (supported-systems '("x86_64-linux")) (license (license:non-copyleft "file:///LICENSE.md")))) (define-public mediasdk diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index fefdaf8f55..a6250f71de 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -77,7 +77,7 @@ (define-public vim (package (name "vim") - (version "9.0.0325") + (version "9.0.0509") (source (origin (method git-fetch) (uri (git-reference @@ -86,7 +86,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "18m3lhp7d8a0n3bx0kqn082gqrh7lyar1ndvwq79gj73fz5c19vh")))) + "0affh0q6r5cvf01f4m5nr94bq1k23bzhiwa4xlpqim21yipafamm")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -95,14 +95,11 @@ (modify-phases %standard-phases (add-after 'configure 'patch-absolute-paths (lambda _ - (substitute* '("runtime/autoload/context.vim" - "src/testdir/Makefile" + (substitute* '("src/testdir/Makefile" "src/testdir/test_filetype.vim" "src/testdir/test_normal.vim" "src/testdir/test_popupwin.vim" - "src/testdir/test_prompt_buffer.vim" "src/testdir/test_shell.vim" - "src/testdir/test_suspend.vim" "src/testdir/test_terminal.vim" "src/testdir/test_terminal2.vim") (("/bin/sh") (which "sh"))) @@ -826,7 +823,7 @@ and support for fonts with ligatures.") (define-public vifm (package (name "vifm") - (version "0.12") + (version "0.12.1") (source (origin (method url-fetch) @@ -837,7 +834,7 @@ and support for fonts with ligatures.") "vifm-" version ".tar.bz2"))) (sha256 (base32 - "1h5j4y704nciyzg3aaav8sl3r5h9mpwq8f28cj65nnxk6a7n3a9k")))) + "122ncp319xisxjxcy33bshjib6905bb0aaz0xjdfkkycplz83qlg")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-build-timestamp") @@ -852,8 +849,7 @@ and support for fonts with ligatures.") (("/bin/bash") (which "bash"))) ;; This test segfaults (substitute* "tests/Makefile" - (("misc") "")) - #t)) + (("misc") "")))) (add-after 'install 'install-vim-plugin-files (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -864,8 +860,7 @@ and support for fonts with ligatures.") (copy-recursively (string-append vifm "/vim") vimfiles) (delete-file-recursively (string-append vifm "/colors")) - (delete-file-recursively (string-append vifm "/vim"))) - #t))))) + (delete-file-recursively (string-append vifm "/vim")))))))) (native-inputs (list groff)) ; for the documentation (inputs @@ -1380,30 +1375,29 @@ files for reading or editing, and perform basic file system operations.") (license license:wtfpl2))) (define-public vim-nerdcommenter - (let ((commit "a65465d321f2f8a74b2ffa540b9b87563f7e12e8") - (revision "1")) - (package - (name "vim-nerdcommenter") - (version (git-version "2.5.2" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/preservim/nerdcommenter") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "00ir65iv8jfbgzjmj7332fmydh0qhabbhx8zbvd3j6pgfxqpaafw")))) - (build-system copy-build-system) - (arguments - '(#:install-plan - '(("autoload" "share/vim/vimfiles/") - ("doc" "share/vim/vimfiles/") - ("plugin" "share/vim/vimfiles/")))) - (home-page "https://github.com/preservim/nerdcommenter") - (synopsis "Vim plugin for easy commenting of code") - (description - "NERD commenter is a Vim plugin that provides many different commenting + (package + (name "vim-nerdcommenter") + (version "2.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/preservim/nerdcommenter") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ka2rqn7rby55aps3iblh1dcqxm7m7qx72mpkz6y2aaj8mkj0zyd")))) + (build-system copy-build-system) + (arguments + (list + #:install-plan + #~`(("autoload" "share/vim/vimfiles/") + ("doc" "share/vim/vimfiles/") + ("plugin" "share/vim/vimfiles/")))) + (home-page "https://github.com/preservim/nerdcommenter") + (synopsis "Vim plugin for easy commenting of code") + (description + "NERD commenter is a Vim plugin that provides many different commenting operations and styles which are invoked via key mappings and a menu. These operations are available for most filetypes.") - (license license:cc0)))) + (license license:cc0))) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 199156dbb9..e14549dcd1 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -169,6 +169,7 @@ (base32 "1rmvrgqjhrvcmchnz170dxvrrf14n6nm39y8ivrprmfydd9lwqx0")) (patches (search-patches "qemu-build-info-manual.patch" + "qemu-disable-aarch64-migration-test.patch" "qemu-fix-agent-paths.patch")) (modules '((guix build utils))) (snippet diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index f30285a5fd..201c5994d8 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -1987,6 +1987,41 @@ productive, customizable lisp based systems.") (description "This package provides a StumpWM interactive shell.") (license (list license:gpl2+ license:gpl3+ license:bsd-2)))) +(define-public sbcl-stumpwm-pamixer + (let ((commit "aa820533c80ea1af5a0e107cea25eaf34e69dc24") + (revision "1")) + (package + (name "sbcl-stumpwm-pamixer") + (version (git-version "0.1.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Junker/stumpwm-pamixer") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0djcrr16bx40l7b60d4j507vk5l42fdgmjpgrnk86z1ba8wlqim8")))) + (inputs (list pamixer `(,stumpwm "lib"))) + (build-system asdf-build-system/sbcl) + (arguments + (list #:asd-systems ''("pamixer") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-pamixer + (lambda _ + (substitute* "pamixer.lisp" + (("\"pamixer \"") + (string-append "\"" + #$(this-package-input "pamixer") + "/bin/pamixer \"")))))))) + (home-page "https://github.com/Junker/stumpwm-pamixer") + (synopsis "StumpWM Pamixer Module") + (description + "This package provides a minimalistic Pulseaudio volume and microphone +control module for StumpWM.") + (license license:gpl3)))) + (define-public sbcl-stumpwm+slynk (deprecated-package "sbcl-stumpwm-with-slynk" stumpwm+slynk)) @@ -2814,7 +2849,7 @@ Type=Application~%" (define-public avizo (package (name "avizo") - (version "1.2") + (version "1.2.1") (source (origin (method git-fetch) (uri (git-reference @@ -2823,7 +2858,7 @@ Type=Application~%" (file-name (git-file-name name version)) (sha256 (base32 - "02h2jbgrbl2hyq6bzwryc1r47mipgdqrdh7zi44skc25w045s6q5")))) + "0ddv5ssxfjbzhqskbbhi9qj1yqkraiv3r8svfmp9s5nnfpid8aba")))) (build-system meson-build-system) (inputs (list gtk+)) (native-inputs diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 85a20a94ef..e49e55edc7 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -497,7 +497,7 @@ matching them against regular expressions.") (define-public xfce4-pulseaudio-plugin (package (name "xfce4-pulseaudio-plugin") - (version "0.4.3") + (version "0.4.5") (source (origin (method url-fetch) @@ -506,21 +506,8 @@ matching them against regular expressions.") (version-major+minor version) "/" "xfce4-pulseaudio-plugin-" version ".tar.bz2")) (sha256 - (base32 "0nv1lbkshfzar87f6xq1ib120pjja24r7135rbc42wqkw8vq4las")))) + (base32 "05f12fzn8q1y7jkzanxy82pzl00km66gngb5j6d5k8kbx9ykj9a4")))) (build-system gnu-build-system) - (arguments - `(#:phases - ;; For dbus/dbus-glib.h in pulseaudio-config.h. - (modify-phases %standard-phases - (add-after 'set-paths 'augment-cflags - (lambda* (#:key inputs #:allow-other-keys) - (setenv "C_INCLUDE_PATH" - (string-append (assoc-ref inputs "dbus-glib") - "/include/dbus-1.0" ":" - (assoc-ref inputs "dbus") - "/include/dbus-1.0" ":" - (or (getenv "C_INCLUDE_PATH") ""))) - #t))))) (native-inputs (list intltool pkg-config dbus-glib dbus)) (inputs @@ -1530,7 +1517,7 @@ each time a new earthquake occurs.") (define-public xfce4-datetime-plugin (package (name "xfce4-datetime-plugin") - (version "0.8.1") + (version "0.8.2") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/panel-plugins/" @@ -1539,7 +1526,7 @@ each time a new earthquake occurs.") "/xfce4-datetime-plugin-" version ".tar.bz2")) (sha256 (base32 - "0h15mxq5lawlxyr6h1vxc60rkf0rpmnv81l0f52mrswww9dz3xp9")))) + "0dz0syl9dm55pqcqywbnjpi14z2xh7pg2ipmxjgn4pq1az28qf3c")))) (build-system gnu-build-system) (native-inputs (list intltool pkg-config)) @@ -1847,7 +1834,7 @@ interfaces of your choice in the panel.") (define-public xfce4-places-plugin (package (name "xfce4-places-plugin") - (version "1.8.1") + (version "1.8.2") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/panel-plugins/" @@ -1856,7 +1843,7 @@ interfaces of your choice in the panel.") "/xfce4-places-plugin-" version ".tar.bz2")) (sha256 (base32 - "1chac4ki70axgvkmhw94m0srsv0pwiwqrqbh8di0y9n90fgj24gj")))) + "00bh7d91vzk6s38djlpnihvjvymxgrnx3nh6sm2y3mnx2jmb4chy")))) (build-system gnu-build-system) (native-inputs (list intltool desktop-file-utils pkg-config)) diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scm index 83da63c1b3..636c49ccba 100644 --- a/gnu/services/configuration.scm +++ b/gnu/services/configuration.scm @@ -410,7 +410,7 @@ If NEGATE? is @code{#t}, retrieve all fields except FIELDS." (define* (interpose ls #:optional (delimiter "\n") (grammar 'infix)) - "Same as @code{string-join}, but without join and string, returns an + "Same as @code{string-join}, but without join and string, returns a DELIMITER interposed LS. Support 'infix and 'suffix GRAMMAR values." (when (not (member grammar '(infix suffix))) (raise @@ -442,6 +442,7 @@ the list result in @code{#t} when applying PRED? on them." (define (text-config? config) (list-of file-like?)) + (define (serialize-text-config field-name val) #~(string-append #$@(interpose diff --git a/gnu/services/samba.scm b/gnu/services/samba.scm new file mode 100644 index 0000000000..4e930d61dc --- /dev/null +++ b/gnu/services/samba.scm @@ -0,0 +1,286 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Simon Streit <simon@netpanic.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu services samba) + + #:use-module (gnu packages) + #:use-module (gnu packages base) + #:use-module (gnu packages admin) + #:use-module (gnu packages samba) + + #:use-module (gnu services) + #:use-module (gnu services configuration) + #:use-module (gnu services shepherd) + #:use-module (gnu services base) + #:use-module (gnu system shadow) + + #:use-module (guix gexp) + #:use-module (guix packages) + #:use-module (guix modules) + #:use-module (guix records) + + #:use-module (ice-9 format) + #:use-module (ice-9 match) + #:use-module (ice-9 textual-ports) + #:use-module (srfi srfi-1) + + #:export (samba-service-type + samba-configuration + samba-smb-conf + + wsdd-service-type + wsdd-configuration)) + +(define %smb-conf + (plain-file "smb.conf" "[global] + workgroup = WORKGROUP + server string = Samba Server + server role = standalone server + log file = /var/log/samba/log.%m + logging = file +")) + +(define-record-type* <samba-configuration> + samba-configuration + make-samba-configuration + samba-configuration? + (package samba-configuration-package + (default samba)) + (config-file samba-configuration-config-file + (default #f)) + (enable-samba? samba-configuration-enable-samba? + (default #f)) + (enable-smbd? samba-configuration-enable-smbd? + (default #t)) + (enable-nmbd? samba-configuration-enable-nmbd? + (default #t)) + (enable-winbindd? samba-configuration-enable-winbindd? + (default #t))) + +(define (samba-activation config) + (let ((package (samba-configuration-package config)) + (config-file (samba-configuration-config-file config))) + (with-imported-modules '((guix build utils)) + (let ((lib-dir "/var/lib/samba") + (log-dir "/var/log/samba") + (run-dir "/var/run/samba") + (lock-dir "/var/lock/samba") + (cache-dir "/var/cache/samba") + (etc-dir "/etc/samba") + (smb.conf "/etc/samba/smb.conf")) + #~(begin + (use-modules (guix build utils)) + (mkdir-p #$etc-dir) + (mkdir-p #$lib-dir) + (mkdir-p/perms (string-append #$lib-dir "/private") + (getpwnam "root") #o700) + (mkdir-p #$log-dir) + (mkdir-p #$run-dir) + (mkdir-p #$lock-dir) + (mkdir-p #$cache-dir) + (copy-file #$config-file #$smb.conf) + (invoke #$(file-append package "/bin/testparm") + "--suppress-prompt" #$smb.conf)))))) + +(define (samba-samba-shepherd-service config) + (let ((package (samba-configuration-package config)) + (config-file (samba-configuration-config-file config))) + (list (shepherd-service + (documentation "Run Samba") + (provision '(samba-samba)) + (requirement '(networking)) + (start #~(make-forkexec-constructor + (list #$(file-append package "/sbin/samba") + (string-append "--configfile=" #$config-file) + "--foreground" + "--no-process-group"))) + (stop #~(make-kill-destructor)))))) + +(define (samba-nmbd-shepherd-service config) + (let ((package (samba-configuration-package config)) + (config-file (samba-configuration-config-file config))) + (list (shepherd-service + (documentation "Run NMBD") + (provision '(samba-nmbd)) + (requirement '(networking)) + (start #~(make-forkexec-constructor + (list #$(file-append package "/sbin/nmbd") + (string-append "--configfile=" #$config-file) + "--foreground" + "--no-process-group"))) + (stop #~(make-kill-destructor)))))) + +(define (samba-smbd-shepherd-service config) + (let ((package (samba-configuration-package config)) + (config-file (samba-configuration-config-file config))) + (list (shepherd-service + (documentation "Run SMBD") + (provision '(samba-smbd)) + (requirement '(networking)) + (start #~(make-forkexec-constructor + (list #$(file-append package "/sbin/smbd") + (string-append "--configfile=" #$config-file) + "--foreground" + "--no-process-group"))) + (stop #~(make-kill-destructor)))))) + +(define (samba-winbindd-shepherd-service config) + (let ((package (samba-configuration-package config)) + (config-file (samba-configuration-config-file config))) + (list (shepherd-service + (documentation "Run Winnbindd for Name Service Switch") + (provision '(samba-winbindd)) + (requirement '(networking)) + (start #~(make-forkexec-constructor + (list #$(file-append package "/sbin/winbindd") + (string-append "--configfile=" #$config-file) + "--foreground" + "--no-process-group"))) + (stop #~(make-kill-destructor)))))) + +(define (samba-shepherd-services config) + (append (if (samba-configuration-enable-samba? config) + (samba-samba-shepherd-service config) + '()) + (if (samba-configuration-enable-nmbd? config) + (samba-nmbd-shepherd-service config) + '()) + (if (samba-configuration-enable-smbd? config) + (samba-smbd-shepherd-service config) + '()) + (if (samba-configuration-enable-winbindd? config) + (samba-winbindd-shepherd-service config) + '()))) + +(define samba-service-type + (service-type + (name 'samba) + (description "Run @uref{https://www.samba.org/, Samba}, a network file and +print service for all clients using the SMB/CIFS protocol. Samba is an +important component to seamlessly integrate Linux/Unix Servers and Desktops +into Active Directory environments. It can function both as a domain +controller or as a regular domain member.") + (extensions + (list (service-extension shepherd-root-service-type + samba-shepherd-services) + (service-extension activation-service-type + samba-activation) + (service-extension profile-service-type + (compose list samba-configuration-package)))) + (default-value (samba-configuration)))) + + +;;; +;;; WSDD +;;; + +(define-record-type* <wsdd-configuration> + wsdd-configuration + make-wsdd-configuration + wsdd-configuration? + (package wsdd-configuration-package + (default wsdd)) + (ipv4only? wsdd-configuration-ipv4only? + (default #f)) + (ipv6only? wsdd-configuration-ipv6only? + (default #f)) + (chroot wsdd-configuration-chroot + (default #f)) + (hop-limit wsdd-configuration-hop-limit + (default 1)) + (interfaces wsdd-configuration-interfaces + (default '())) + (uuid-device wsdd-configuration-uuid-device + (default #f)) + (domain wsdd-configuration-domain + (default #f)) + (host-name wsdd-configuration-host-name + (default #f)) + (preserve-case? wsdd-configuration-preserve-case? + (default #f)) + (workgroup wsdd-configuration-workgroup + (default "WORKGROUP"))) + +(define wsdd-accounts + (list + (user-group (name "wsdd")) + (user-account (name "wsdd") + (group "wsdd") + (comment "Web Service Discovery user") + (home-directory "/var/empty") + (shell (file-append shadow "/sbin/nologin"))))) + +(define (wsdd-shepherd-service config) + (match-record config <wsdd-configuration> + (package ipv4only? ipv6only? chroot hop-limit interfaces uuid-device + domain host-name preserve-case? workgroup) + (list (shepherd-service + (documentation "The Web Service Discovery daemon enables (Samba) hosts, +like your local NAS device, to be found by Web Service Discovery Clients +like Windows.") + (provision '(wsdd)) + (requirement '(networking)) + (start #~(make-forkexec-constructor + (list #$(file-append package "/bin/wsdd") + #$@(if ipv4only? + #~("--ipv4only") + '()) + #$@(if ipv6only? + #~("--ipv6only") + '()) + #$@(if chroot + #~("--chroot" #$chroot) + '()) + #$@(if hop-limit + #~("--hoplimit" #$(number->string hop-limit)) + '()) + #$@(map (lambda (interfaces) + (string-append "--interface=" interfaces)) + interfaces) + #$@(if uuid-device + #~("--uuid" #$uuid-device) + '()) + #$@(if domain + #~("--domain" #$domain) + '()) + #$@(if host-name + #~("--hostname" #$host-name) + '()) + #$@(if preserve-case? + #~("--preserve-case") + '()) + #$@(if workgroup + #~("--workgroup" #$workgroup) + '())) + #:user "wsdd" + #:group "wsdd" + #:log-file "/var/log/wsdd.log")) + (stop #~(make-kill-destructor)))))) + +(define wsdd-service-type + (service-type + (name 'wsdd) + (description "Web Service Discovery Daemon") + (extensions + (list (service-extension shepherd-root-service-type + wsdd-shepherd-service) + (service-extension account-service-type + (const wsdd-accounts)) + (service-extension profile-service-type + (compose list wsdd-configuration-package)))) + (default-value (wsdd-configuration)))) diff --git a/gnu/services/telephony.scm b/gnu/services/telephony.scm index 3d855221e5..b66c7a8563 100644 --- a/gnu/services/telephony.scm +++ b/gnu/services/telephony.scm @@ -685,13 +685,11 @@ argument, either a registered username or the fingerprint of the account.") ;; Finally, return the PID of the daemon process. daemon-pid)) - (stop - #~(lambda (pid . args) - (kill pid SIGKILL) - ;; Wait for the process to exit; this prevents overlapping - ;; processes when issuing 'herd restart'. - (waitpid pid) - #f)))))))) + ;; XXX: jamid takes some time to terminate, and GNU Shepherd + ;; doesn't block when calling waitpid (see: + ;; https://issues.guix.gnu.org/57922). Using SIGKILL instead + ;; of SIGTERM works around that. + (stop #~(make-kill-destructor SIGKILL)))))))) (define jami-service-type (service-type diff --git a/gnu/services/web.scm b/gnu/services/web.scm index 5bac496f01..e347f5dbcc 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020, 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro> +;;; Copyright © 2022 Simen Endsjø <simendsjo@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -646,8 +647,12 @@ of index files." " server_name " (config-domain-strings server-name) ";\n" (and/l ssl-certificate " ssl_certificate " <> ";\n") (and/l ssl-certificate-key " ssl_certificate_key " <> ";\n") - " root " root ";\n" - " index " (config-index-strings index) ";\n" + (if (not (equal? "" root)) + (list " root " root ";\n") + "") + (if (not (null? index)) + (list " index " (config-index-strings index) ";\n") + "") (if (not (nil? try-files)) (and/l (config-index-strings try-files) " try_files " <> ";\n") "") diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 464b76a2ca..f2eb2e0837 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -434,7 +434,7 @@ TARGET in the other system." (define %pseudo-file-system-types ;; List of know pseudo file system types. This is used when validating file ;; system definitions. - '("binfmt_misc" "cgroup" "debugfs" "devpts" "devtmpfs" "efivarfs" "fusectl" + '("binfmt_misc" "cgroup" "cgroup2" "debugfs" "devpts" "devtmpfs" "efivarfs" "fusectl" "hugetlbfs" "overlay" "proc" "securityfs" "sysfs" "tmpfs")) (define %fuse-control-file-system diff --git a/gnu/system/image.scm b/gnu/system/image.scm index a04363a130..5fc0d55d9a 100644 --- a/gnu/system/image.scm +++ b/gnu/system/image.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2022 Pavel Shlyak <p.shlyak@pantherx.org> ;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +;;; Copyright © 2022 Alex Griffin <a@ajgrf.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,17 +33,20 @@ #:use-module ((guix self) #:select (make-config.scm)) #:use-module (gnu bootloader) #:use-module (gnu bootloader grub) + #:use-module (gnu compression) #:use-module (gnu image) #:use-module (guix platform) #:use-module (gnu services) #:use-module (gnu services base) #:use-module (gnu system) + #:use-module (gnu system accounts) #:use-module (gnu system file-systems) #:use-module (gnu system linux-container) #:use-module (gnu system uuid) #:use-module (gnu system vm) #:use-module (guix packages) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages bootloaders) #:use-module (gnu packages cdrom) #:use-module (gnu packages compression) @@ -65,6 +69,7 @@ #:use-module (ice-9 match) #:export (root-offset root-label + image-without-os esp-partition esp32-partition @@ -73,6 +78,8 @@ efi-disk-image iso9660-image docker-image + tarball-image + wsl2-image raw-with-offset-disk-image image-with-os @@ -82,6 +89,8 @@ iso-image-type uncompressed-iso-image-type docker-image-type + tarball-image-type + wsl2-image-type raw-with-offset-image-type image-with-label @@ -102,6 +111,12 @@ ;; Generic root partition label. (define root-label "Guix_image") +(define-syntax-rule (image-without-os . fields) + "Return an image record with the mandatory operating-system field set to +#false. This is useful when creating an image record that will serve as a +parent image record." + (image (operating-system #false) . fields)) + (define esp-partition (partition (size (* 40 (expt 2 20))) @@ -127,17 +142,17 @@ (initializer (gexp initialize-root-partition)))) (define efi-disk-image - (image + (image-without-os (format 'disk-image) (partitions (list esp-partition root-partition)))) (define efi32-disk-image - (image + (image-without-os (format 'disk-image) (partitions (list esp32-partition root-partition)))) (define iso9660-image - (image + (image-without-os (format 'iso9660) (partitions (list (partition @@ -146,11 +161,19 @@ (flags '(boot))))))) (define docker-image - (image + (image-without-os (format 'docker))) +(define tarball-image + (image-without-os + (format 'tarball))) + +(define wsl2-image + (image-without-os + (format 'wsl2))) + (define* (raw-with-offset-disk-image #:optional (offset root-offset)) - (image + (image-without-os (format 'disk-image) (partitions (list (partition @@ -211,6 +234,16 @@ set to the given OS." (name 'docker) (constructor (cut image-with-os docker-image <>)))) +(define tarball-image-type + (image-type + (name 'tarball) + (constructor (cut image-with-os tarball-image <>)))) + +(define wsl2-image-type + (image-type + (name 'wsl2) + (constructor (cut image-with-os wsl2-image <>)))) + (define raw-with-offset-image-type (image-type (name 'raw-with-offset) @@ -682,6 +715,88 @@ output file." #:substitutable? ,substitutable?)))) +;;; +;;; Tarball image. +;;; + +;; TODO: Some bits can be factorized with (guix scripts pack). +(define* (system-tarball-image image + #:key + (name "image") + (compressor (srfi-1:first %compressors)) + (wsl? #f)) + "Build a tarball of IMAGE. NAME is the base name to use for the +output file." + (let* ((os (image-operating-system image)) + (substitutable? (image-substitutable? image)) + (schema (local-file (search-path %load-path + "guix/store/schema.sql"))) + (name (string-append name ".tar" (compressor-extension compressor))) + (graph "system-graph") + (root (srfi-1:find (lambda (user) + (and=> (user-account-uid user) zero?)) + (operating-system-users os))) + (root-shell (or (and=> root user-account-shell) + (file-append bash "/bin/bash")))) + (define builder + (with-extensions gcrypt-sqlite3&co ;for (guix store database) + (with-imported-modules `(,@(source-module-closure + '((guix build pack) + (guix build store-copy) + (guix build utils) + (guix store database) + (gnu build image)) + #:select? not-config?) + ((guix config) => ,(make-config.scm))) + #~(begin + (use-modules (guix build pack) + (guix build store-copy) + (guix build utils) + (guix store database) + (gnu build image)) + + ;; Set the SQL schema location. + (sql-schema #$schema) + + ;; Allow non-ASCII file names--e.g., 'nss-certs'--to be decoded. + (setenv "GUIX_LOCPATH" + #+(file-append glibc-utf8-locales "/lib/locale")) + (setlocale LC_ALL "en_US.utf8") + + (let ((image-root (string-append (getcwd) "/tmp-root")) + (tar #+(file-append tar "/bin/tar"))) + + (mkdir-p image-root) + (initialize-root-partition image-root + #:references-graphs '(#$graph) + #:deduplicate? #f + #:system-directory #$os) + + (with-directory-excursion image-root + #$@(if wsl? + #~(;; WSL requires /bin/sh. Will be overwritten by + ;; system activation. + (symlink #$root-shell "./bin/sh") + + ;; WSL requires /bin/mount to access the host fs. + (symlink #$(file-append util-linux "/bin/mount") + "./bin/mount")) + #~()) + + (apply invoke tar "-cvf" #$output "." + (tar-base-options + #:tar tar + #:compressor + #+(and=> compressor compressor-command))))))))) + + (computed-file name builder + ;; Allow offloading so that this I/O-intensive process + ;; doesn't run on the build farm's head node. + #:local-build? #f + #:options `(#:references-graphs ((,graph ,os)) + #:substitutable? ,substitutable?)))) + + ;; ;; Image creation. ;; @@ -690,7 +805,7 @@ output file." "Return the IMAGE root partition file-system type." (case (image-format image) ((iso9660) "iso9660") - ((docker) "dummy") + ((docker tarball wsl2) "dummy") (else (partition-file-system (find-root-partition image))))) @@ -827,6 +942,10 @@ image, depending on IMAGE format." ("bootcfg" ,bootcfg)))) ((memq image-format '(docker)) (system-docker-image image*)) + ((memq image-format '(tarball)) + (system-tarball-image image*)) + ((memq image-format '(wsl2)) + (system-tarball-image image* #:wsl? #t)) ((memq image-format '(iso9660)) (system-iso9660-image image* diff --git a/gnu/system/images/hurd.scm b/gnu/system/images/hurd.scm index 6da09b855a..9b618f7dc6 100644 --- a/gnu/system/images/hurd.scm +++ b/gnu/system/images/hurd.scm @@ -74,9 +74,9 @@ #:wal-mode? #f))))) (define hurd-disk-image - (image + (image-without-os (format 'disk-image) - (platform hurd) + (platform i586-gnu) (partitions (list (partition (size 'guess) @@ -104,14 +104,14 @@ (define hurd-barebones-disk-image (image (inherit - (os+platform->image hurd-barebones-os hurd + (os+platform->image hurd-barebones-os i586-gnu #:type hurd-image-type)) (name 'hurd-barebones-disk-image))) (define hurd-barebones-qcow2-image (image (inherit - (os+platform->image hurd-barebones-os hurd + (os+platform->image hurd-barebones-os i586-gnu #:type hurd-qcow2-image-type)) (name 'hurd-barebones.qcow2))) diff --git a/gnu/system/images/wsl2.scm b/gnu/system/images/wsl2.scm new file mode 100644 index 0000000000..15cb4f69b8 --- /dev/null +++ b/gnu/system/images/wsl2.scm @@ -0,0 +1,170 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Alex Griffin <a@ajgrf.com> +;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu system images wsl2) + #:use-module (gnu bootloader) + #:use-module (gnu image) + #:use-module (gnu packages admin) + #:use-module (gnu packages base) + #:use-module (gnu packages bash) + #:use-module (gnu packages guile) + #:use-module (gnu packages linux) + #:use-module (gnu services) + #:use-module (gnu services base) + #:use-module (gnu system) + #:use-module (gnu system image) + #:use-module (gnu system shadow) + #:use-module (guix build-system trivial) + #:use-module (guix gexp) + #:use-module (guix packages) + #:export (wsl-boot-program + wsl-os + wsl2-image)) + +(define (wsl-boot-program user) + "Program that runs the system boot script, then starts a login shell as +USER." + (program-file + "wsl-boot-program" + (with-imported-modules '((guix build syscalls)) + #~(begin + (use-modules (guix build syscalls)) + (unless (file-exists? "/run/current-system") + (let ((shepherd-socket "/var/run/shepherd/socket")) + ;; Clean up this file so we can wait for it later. + (when (file-exists? shepherd-socket) + (delete-file shepherd-socket)) + + ;; Child process boots the system and is replaced by shepherd. + (when (zero? (primitive-fork)) + (let* ((system-generation + (readlink "/var/guix/profiles/system")) + (system (readlink + (string-append + (if (absolute-file-name? system-generation) + "" + "/var/guix/profiles/") + system-generation)))) + (setenv "GUIX_NEW_SYSTEM" system) + (execl #$(file-append guile-3.0 "/bin/guile") + "guile" + "--no-auto-compile" + (string-append system "/boot")))) + + ;; Parent process waits for shepherd before continuing. + (while (not (file-exists? shepherd-socket)) + (sleep 1)))) + + (let* ((pw (getpw #$user)) + (shell (passwd:shell pw)) + (sudo #+(file-append sudo "/bin/sudo")) + (args (cdr (command-line)))) + ;; Save the value of $PATH set by WSL. Useful for finding + ;; Windows binaries to run with WSL's binfmt interop. + (setenv "WSLPATH" (getenv "PATH")) + + ;; /run is mounted with the nosuid flag by WSL. This prevents + ;; running the /run/setuid-programs. Remount it without this flag + ;; as a workaround. See: + ;; https://github.com/microsoft/WSL/issues/8716. + (mount #f "/run" #f + MS_REMOUNT + #:update-mtab? #f) + + ;; Start login shell as user. + (apply execl sudo "sudo" + "--preserve-env=WSLPATH" + "-u" #$user + "--" + shell "-l" args)))))) + +(define dummy-package + (package + (name "dummy") + (version "0") + (source #f) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:target #f + #:builder (begin + (use-modules (guix build utils)) + (let* ((out (assoc-ref %outputs "out")) + (dummy (string-append out "/dummy"))) + (mkdir-p out) + (call-with-output-file dummy + (const #t)))))) + (home-page #f) + (synopsis #f) + (description #f) + (license #f))) + +(define dummy-bootloader + (bootloader + (name 'dummy-bootloader) + (package dummy-package) + (configuration-file "/dev/null") + (configuration-file-generator + (lambda (. _rest) + (plain-file "dummy-bootloader" ""))) + (installer #~(const #t)))) + +(define dummy-kernel dummy-package) + +(define (dummy-initrd . _rest) + (plain-file "dummy-initrd" "")) + +(define-public wsl-os + (operating-system + (host-name "gnu") + (timezone "Etc/UTC") + (bootloader + (bootloader-configuration + (bootloader dummy-bootloader))) + (kernel dummy-kernel) + (initrd dummy-initrd) + (initrd-modules '()) + (firmware '()) + (file-systems '()) + (users (cons* (user-account + (name "guest") + (group "users") + (supplementary-groups '("wheel")) ; allow use of sudo + (password "") + (comment "Guest of GNU")) + (user-account + (inherit %root-account) + (shell (wsl-boot-program "guest"))) + %base-user-accounts)) + (services + (list + (service guix-service-type) + (service special-files-service-type + `(("/bin/sh" ,(file-append bash "/bin/bash")) + ("/bin/mount" ,(file-append util-linux "/bin/mount")) + ("/usr/bin/env" ,(file-append coreutils "/bin/env")))))))) + +(define wsl2-image + (image + (inherit + (os->image wsl-os + #:type wsl2-image-type)) + (name 'wsl2-image))) + +wsl2-image diff --git a/gnu/tests/samba.scm b/gnu/tests/samba.scm new file mode 100644 index 0000000000..cb2762a90e --- /dev/null +++ b/gnu/tests/samba.scm @@ -0,0 +1,215 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2022 Simon Streit <simon@netpanic.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu tests samba) + #:use-module (gnu tests) + #:use-module (gnu system) + #:use-module (gnu system vm) + #:use-module (gnu services) + #:use-module (gnu services networking) + #:use-module (gnu services samba) + #:use-module (gnu packages samba) + #:use-module (guix gexp) + #:use-module (guix store) + #:export (%test-samba + %test-wsdd)) + + +;;; +;;; The Samba service. +;;; + +(define %samba-os + (let ((base-os (simple-operating-system + (simple-service 'create-target-directory activation-service-type + #~(begin + (mkdir-p "/srv/samba/guest") + (chown "/srv/samba/guest" + (passwd:uid (getpw "nobody")) + (passwd:gid (getpw "nobody"))))) + (service dhcp-client-service-type) + (service samba-service-type + (samba-configuration + (config-file (plain-file "smb.conf" " +[global] + workgroup = WORKGROUP + server string = Samba Server + server role = standalone server + log file = /var/log/samba/log.%m + logging = file + +[guest] + path = /srv/samba/guest + read only = no + guest ok = yes + guest only = yes +"))))))) + (operating-system + (inherit base-os) + (packages (cons samba (operating-system-packages base-os)))))) + +(define* (run-samba-test) + "Return a test of an OS running Samba service." + + (define vm + (virtual-machine + (operating-system (marionette-operating-system + %samba-os + #:imported-modules '((gnu services herd)))) + (port-forwardings '((8135 . 135) + (8137 . 137) + (8138 . 138) + (8445 . 445))))) + + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (gnu build marionette) + (srfi srfi-26) + (srfi srfi-64)) + + (define marionette + (make-marionette '(#$vm))) + + (test-runner-current (system-test-runner #$output)) + (test-begin "samba") + + (test-assert "samba-smbd running" + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'samba-smbd)) + marionette)) + + (test-assert "samba-nmbd running" + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'samba-nmbd)) + marionette)) + + (test-assert "samba-winbindd running" + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'samba-winbindd)) + marionette)) + + (test-assert "smbd service process id" + (let ((pid + (number->string (wait-for-file "/var/run/samba/smbd.pid" + marionette)))) + (marionette-eval `(file-exists? (string-append "/proc/" ,pid)) + marionette))) + + (test-assert "nmbd service process id" + (let ((pid + (number->string (wait-for-file "/var/run/samba/nmbd.pid" + marionette)))) + (marionette-eval `(file-exists? (string-append "/proc/" ,pid)) + marionette))) + + (test-assert "winbindd service process id" + (let ((pid + (number->string (wait-for-file "/var/run/samba/winbindd.pid" + marionette)))) + (marionette-eval `(file-exists? (string-append "/proc/" ,pid)) + marionette))) + + (test-assert "samba-smbd is listening for peers" + (wait-for-tcp-port 445 marionette)) + + (test-equal "smbclient connect" + 0 + (marionette-eval + '(system* #$(file-append samba "/bin/smbclient") + "--list=localhost" "--no-pass") + marionette)) + + (test-equal "smbclient connect" + 0 + (marionette-eval + '(system* #$(file-append samba "/bin/smbclient") + "--list=localhost" "--no-pass") + marionette)) + + (test-end)))) + + (gexp->derivation "samba-test" test)) + +(define %test-samba + (system-test + (name "samba") + (description "Connect to a running Samba daemon.") + (value (run-samba-test)))) + + +;;; +;;; The wsdd service. +;;; + +(define %wsdd-os + (let ((base-os (simple-operating-system + (service dhcp-client-service-type) + (service wsdd-service-type)))) + (operating-system + (inherit base-os) + (packages (cons wsdd (operating-system-packages base-os)))))) + +(define* (run-wsdd-test) + "Return a test of an OS running wsdd service." + + (define vm + (virtual-machine + (operating-system (marionette-operating-system + %wsdd-os + #:imported-modules '((gnu services herd)))) + (port-forwardings '((3702 . 3702) + (5357 . 5357))))) + + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (gnu build marionette) + (srfi srfi-26) + (srfi srfi-64)) + + (define marionette + (make-marionette '(#$vm))) + + (test-runner-current (system-test-runner #$output)) + (test-begin "wsdd") + + ;; Here shall be more tests to begin with. + + (test-assert "wsdd running" + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'wsdd)) + marionette)) + + (test-end)))) + + (gexp->derivation "wsdd-test" test)) + +(define %test-wsdd + (system-test + (name "wsdd") + (description "Connect to a running wsdd daemon.") + (value (run-wsdd-test)))) diff --git a/gnu/tests/telephony.scm b/gnu/tests/telephony.scm index 83fa7228c8..28a466ff67 100644 --- a/gnu/tests/telephony.scm +++ b/gnu/tests/telephony.scm @@ -273,6 +273,7 @@ jami account used as part of the jami configuration are left *unspecified*." (marionette-eval '(begin (use-modules (gnu services herd) + (ice-9 match) (rnrs base) (srfi srfi-1)) @@ -349,7 +350,7 @@ jami account used as part of the jami configuration are left *unspecified*." (gexp->derivation (if provisioning? (if partial? "jami-provisioning-partial-test" - "jami-provisioning-partial") + "jami-provisioning-test") "jami-test") test)) diff --git a/guix/build-system/go.scm b/guix/build-system/go.scm index 5e0e5bbad3..4b3b67b08f 100644 --- a/guix/build-system/go.scm +++ b/guix/build-system/go.scm @@ -240,45 +240,46 @@ commit hash and its date rather than a proper release tag." (substitutable? #t)) "Cross-build NAME using GO, where TARGET is a GNU triplet and with INPUTS." (define builder - #~(begin - (use-modules #$@(sexp->gexp modules)) + (with-imported-modules imported-modules + #~(begin + (use-modules #$@(sexp->gexp modules)) - (define %build-host-inputs - #+(input-tuples->gexp build-inputs)) + (define %build-host-inputs + #+(input-tuples->gexp build-inputs)) - (define %build-target-inputs - (append #$(input-tuples->gexp host-inputs) + (define %build-target-inputs + (append #$(input-tuples->gexp host-inputs) #+(input-tuples->gexp target-inputs))) - (define %build-inputs - (append %build-host-inputs %build-target-inputs)) + (define %build-inputs + (append %build-host-inputs %build-target-inputs)) - (define %outputs - #$(outputs->gexp outputs)) + (define %outputs + #$(outputs->gexp outputs)) - (go-build #:name #$name - #:source #+source - #:system #$system - #:phases #$phases - #:outputs %outputs - #:target #$target - #:goarch #$goarch - #:goos #$goos - #:inputs %build-target-inputs - #:native-inputs %build-host-inputs - #:search-paths '#$(map search-path-specification->sexp - search-paths) - #:native-search-paths '#$(map - search-path-specification->sexp - native-search-paths) - #:install-source? #$install-source? - #:import-path #$import-path - #:unpack-path #$unpack-path - #:build-flags #$build-flags - #:tests? #$tests? - #:make-dynamic-linker-cache? #f ;cross-compiling - #:allow-go-reference? #$allow-go-reference? - #:inputs %build-inputs))) + (go-build #:name #$name + #:source #+source + #:system #$system + #:phases #$phases + #:outputs %outputs + #:target #$target + #:goarch #$goarch + #:goos #$goos + #:inputs %build-target-inputs + #:native-inputs %build-host-inputs + #:search-paths '#$(map search-path-specification->sexp + search-paths) + #:native-search-paths '#$(map + search-path-specification->sexp + native-search-paths) + #:install-source? #$install-source? + #:import-path #$import-path + #:unpack-path #$unpack-path + #:build-flags #$build-flags + #:tests? #$tests? + #:make-dynamic-linker-cache? #f ;cross-compiling + #:allow-go-reference? #$allow-go-reference? + #:inputs %build-inputs)))) (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) system #:graft? #f))) diff --git a/guix/build/debug-link.scm b/guix/build/debug-link.scm index 9167737fb3..f3284f74c4 100644 --- a/guix/build/debug-link.scm +++ b/guix/build/debug-link.scm @@ -38,10 +38,10 @@ ;;; create separate debug files (info "(gdb) Separate Debug Files"). ;;; ;;; The main facility of this module is 'graft-debug-links', which allows us -;;; to update the CRC that appears in '.gnu_debuglink' sections when grafting, -;;; such that separate debug files remain usable after grafting. Failing to -;;; do that, GDB would complain about CRC mismatch---see -;;; <https://bugs.gnu.org/19973>. +;;; to update the cyclic redundancy check (CRC) that appears in +;;; '.gnu_debuglink' sections when grafting, such that separate debug files +;;; remain usable after grafting. Failing to do that, GDB would complain +;;; about CRC mismatch---see <https://issues.guix.gnu.org/19973>. ;;; ;;; Code: diff --git a/guix/download.scm b/guix/download.scm index d459ba8cf1..29a8f99034 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -96,15 +96,15 @@ (hackage "http://hackage.haskell.org/") (savannah ; http://download0.savannah.gnu.org/mirmon/savannah/ - "http://download.savannah.gnu.org/releases/" - "http://nongnu.freemirror.org/nongnu/" - "http://ftp.cc.uoc.gr/mirrors/nongnu.org/" - "http://ftp.twaren.net/Unix/NonGNU/" - "http://mirror.csclub.uwaterloo.ca/nongnu/" - "http://nongnu.askapache.com/" - "http://savannah.c3sl.ufpr.br/" + "https://download.savannah.gnu.org/releases/" + "https://nongnu.freemirror.org/nongnu/" + "https://ftp.cc.uoc.gr/mirrors/nongnu.org/" + "http://ftp.twaren.net/Unix/NonGNU/" ; https appears unsupported + "https://mirror.csclub.uwaterloo.ca/nongnu/" + "https://nongnu.askapache.com/" + "https://savannah.c3sl.ufpr.br/" "http://download.savannah.gnu.org/releases-noredirect/" - "http://download-mirror.savannah.gnu.org/releases/" + "https://download-mirror.savannah.gnu.org/releases/" "ftp://ftp.twaren.net/Unix/NonGNU/" "ftp://mirror.csclub.uwaterloo.ca/nongnu/" "ftp://mirror.publicns.net/pub/nongnu/" @@ -138,6 +138,7 @@ "http://kernel.osuosl.org/pub/" "http://ftp.be.debian.org/pub/" "http://mirror.linux.org.au/" + "https://mirrors.edge.kernel.org/pub/" "ftp://ftp.funet.fi/pub/mirrors/ftp.kernel.org/pub/") (apache ; from http://www.apache.org/mirrors/dist.html "http://www.eu.apache.org/dist/" diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 1ffa408666..f983debcd2 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -33,6 +33,8 @@ #:use-module (rnrs io ports) #:use-module (system foreign) #:use-module ((guix http-client) #:hide (open-socket-for-uri)) + ;; not required in many cases, so autoloaded to reduce start-up costs. + #:autoload (guix download) (%mirrors) #:use-module (guix ftp-client) #:use-module (guix utils) #:use-module (guix memoization) @@ -58,6 +60,8 @@ find-package gnu-package? + uri-mirror-rewrite + release-file? releases latest-release @@ -359,10 +363,12 @@ return the corresponding signature URL, or #f it signatures are unavailable." (upstream-source (package project) (version (tarball->version file)) - (urls (list url)) + ;; uri-mirror-rewrite: Don't turn nice mirror:// URIs into ftp:// + ;; URLs during "guix refresh -u". + (urls (list (uri-mirror-rewrite url))) (signature-urls (match (file->signature url) (#f #f) - (sig (list sig))))))) + (sig (list (uri-mirror-rewrite sig)))))))) (let loop ((directory directory) (result #f)) @@ -532,9 +538,12 @@ are unavailable." (upstream-source (package package) (version version) - (urls (list url)) + ;; uri-mirror-rewrite: Don't turn nice mirror:// URIs into ftp:// + ;; URLs during "guix refresh -u". + (urls (list (uri-mirror-rewrite url))) (signature-urls - (list ((or file->signature file->signature/guess) url)))))))) + (and=> ((or file->signature file->signature/guess) url) + (lambda (url) (list (uri-mirror-rewrite url)))))))))) (define candidates (filter-map url->release links)) @@ -651,21 +660,22 @@ GNOME packages; EMMS is included though, because its releases are on gnu.org." (define gnu-hosted? (url-prefix-predicate "mirror://gnu/")) -(define (url-prefix-rewrite old new) - "Return a one-argument procedure that rewrites URL prefix OLD to NEW." - (lambda (url) - (if (and url (string-prefix? old url)) - (string-append new (string-drop url (string-length old))) - url))) - -(define (adjusted-upstream-source source rewrite-url) - "Rewrite URLs in SOURCE by apply REWRITE-URL to each of them." - (upstream-source - (inherit source) - (urls (map rewrite-url (upstream-source-urls source))) - (signature-urls (and=> (upstream-source-signature-urls source) - (lambda (urls) - (map rewrite-url urls)))))) +(define (uri-mirror-rewrite uri) + "Rewrite URI to a mirror:// URI if possible, or return URI unmodified." + (if (string-prefix? "mirror://" uri) + uri ;nothing to do, it's already a mirror URI + (let loop ((mirrors %mirrors)) + (match mirrors + (() + uri) + (((mirror-id mirror-urls ...) rest ...) + (match (find (cut string-prefix? <> uri) mirror-urls) + (#f + (loop rest)) + (prefix + (format #f "mirror://~a/~a" + mirror-id + (string-drop uri (string-length prefix)))))))))) (define %savannah-base ;; One of the Savannah mirrors listed at @@ -680,15 +690,12 @@ GNOME packages; EMMS is included though, because its releases are on gnu.org." ((? string? uri) uri) ((uri mirrors ...) uri)))) (package (package-upstream-name package)) - (directory (dirname (uri-path uri))) - (rewrite (url-prefix-rewrite %savannah-base - "mirror://savannah"))) + (directory (dirname (uri-path uri)))) ;; Note: We use the default 'file->signature', which adds ".sig", ".asc", ;; or whichever detached signature naming scheme PACKAGE uses. - (and=> (latest-html-release package - #:base-url %savannah-base - #:directory directory) - (cut adjusted-upstream-source <> rewrite)))) + (latest-html-release package + #:base-url %savannah-base + #:directory directory))) (define (latest-sourceforge-release package) "Return the latest release of PACKAGE." @@ -768,14 +775,11 @@ GNOME packages; EMMS is included though, because its releases are on gnu.org." ((? string? uri) uri) ((uri mirrors ...) uri)))) (package (package-upstream-name package)) - (directory (dirname (uri-path uri))) - (rewrite (url-prefix-rewrite %kernel.org-base - "mirror://kernel.org"))) - (and=> (latest-html-release package - #:base-url %kernel.org-base - #:directory directory - #:file->signature file->signature) - (cut adjusted-upstream-source <> rewrite)))) + (directory (dirname (uri-path uri)))) + (latest-html-release package + #:base-url %kernel.org-base + #:directory directory + #:file->signature file->signature))) (define html-updatable-package? ;; Return true if the given package may be handled by the generic HTML diff --git a/guix/import/cran.scm b/guix/import/cran.scm index 4e1ce7c010..d7f6945675 100644 --- a/guix/import/cran.scm +++ b/guix/import/cran.scm @@ -200,11 +200,11 @@ bioconductor package NAME, or #F if the package is unknown." ;; Little helper to download URLs only once. (define download (memoize - (lambda* (url #:key method) + (lambda* (url #:key method (ref '())) (with-store store (cond ((eq? method 'git) - (latest-repository-commit store url)) + (latest-repository-commit store url #:ref ref)) ((eq? method 'hg) (call-with-temporary-directory (lambda (dir) @@ -516,32 +516,32 @@ from the alist META, which was derived from the R package's DESCRIPTION file." (package `(package (name ,(cran-guix-name name)) - (version ,(case repository - ((git) - `(git-version ,version revision commit)) - ((hg) - `(string-append ,version "-" revision "." changeset)) - (else version))) + (version ,(cond + (git? + `(git-version ,version revision commit)) + (hg? + `(string-append ,version "-" revision "." changeset)) + (else version))) (source (origin (method ,(cond (git? 'git-fetch) (hg? 'hg-fetch) (else 'url-fetch))) - (uri ,(case repository - ((git) - `(git-reference - (url ,(assoc-ref meta 'git)) - (commit commit))) - ((hg) - `(hg-reference - (url ,(assoc-ref meta 'hg)) - (changeset changeset))) - (else - `(,(procedure-name uri-helper) ,name version - ,@(or (and=> (assoc-ref meta 'bioconductor-type) - (lambda (type) - (list (list 'quote type)))) - '()))))) + (uri ,(cond + (git? + `(git-reference + (url ,(assoc-ref meta 'git)) + (commit commit))) + (hg? + `(hg-reference + (url ,(assoc-ref meta 'hg)) + (changeset changeset))) + (else + `(,(procedure-name uri-helper) ,name version + ,@(or (and=> (assoc-ref meta 'bioconductor-type) + (lambda (type) + (list (list 'quote type)))) + '()))))) ,@(cond (git? '((file-name (git-file-name name version)))) @@ -576,16 +576,16 @@ from the alist META, which was derived from the R package's DESCRIPTION file." ""))) (license ,license)))) (values - (case repository - ((git) - `(let ((commit ,(assoc-ref meta 'git-commit)) - (revision "1")) - ,package)) - ((hg) - `(let ((changeset ,(assoc-ref meta 'hg-changeset)) - (revision "1")) - ,package)) - (else package)) + (cond + (git? + `(let ((commit ,(assoc-ref meta 'git-commit)) + (revision "1")) + ,package)) + (hg? + `(let ((changeset ,(assoc-ref meta 'hg-changeset)) + (revision "1")) + ,package)) + (else package)) propagate))) (define cran->guix-package diff --git a/guix/lint.scm b/guix/lint.scm index 7d6fd5ee7e..4ef3a46838 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2020 Timothy Sample <samplet@ngyro.com> ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> -;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> +;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re> ;;; ;;; This file is part of GNU Guix. @@ -1221,22 +1221,14 @@ descriptions maintained upstream." (define (check-mirror-url package) "Check whether PACKAGE uses source URLs that should be 'mirror://'." - (define (check-mirror-uri uri) ;XXX: could be optimized - (let loop ((mirrors %mirrors)) - (match mirrors - (() - #f) - (((mirror-id mirror-urls ...) rest ...) - (match (find (cut string-prefix? <> uri) mirror-urls) - (#f - (loop rest)) - (prefix - (make-warning package - (G_ "URL should be \ -'mirror://~a/~a'") - (list mirror-id - (string-drop uri (string-length prefix))) - #:field 'source))))))) + (define (check-mirror-uri uri) + (define rewritten-uri + (uri-mirror-rewrite uri)) + + (and (not (string=? uri rewritten-uri)) + (make-warning package (G_ "URL should be '~a'") + (list rewritten-uri) + #:field 'source))) (let ((origin (package-source package))) (if (and (origin? origin) diff --git a/guix/narinfo.scm b/guix/narinfo.scm index 4fc550aa6c..741c7ad406 100644 --- a/guix/narinfo.scm +++ b/guix/narinfo.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 © 2014 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com> ;;; @@ -209,7 +209,8 @@ No authentication and authorization checks are performed here!" (define* (valid-narinfo? narinfo #:optional (acl (current-acl)) #:key verbose?) - "Return #t if NARINFO's signature is not valid." + "Return #t if NARINFO's signature is valid and made by one of the keys in +ACL." (let ((hash (narinfo-sha256 narinfo)) (signature (narinfo-signature narinfo)) (uri (uri->string (first (narinfo-uris narinfo))))) diff --git a/guix/platforms/x86.scm b/guix/platforms/x86.scm index 5338049d6f..6f547dd770 100644 --- a/guix/platforms/x86.scm +++ b/guix/platforms/x86.scm @@ -23,7 +23,7 @@ x86_64-linux i686-mingw x86_64-mingw - hurd)) + i586-gnu)) (define i686-linux (platform @@ -51,7 +51,7 @@ (system #f) (glibc-dynamic-linker #f))) -(define hurd +(define i586-gnu (platform (target "i586-pc-gnu") (system "i586-gnu") diff --git a/guix/read-print.scm b/guix/read-print.scm index a5a1b708bf..65b8cce37d 100644 --- a/guix/read-print.scm +++ b/guix/read-print.scm @@ -337,7 +337,8 @@ expressions and blanks that were read." ('services '(operating-system)) ('set-xorg-configuration '()) - ('services '(home-environment)))) + ('services '(home-environment)) + ('home-bash-configuration '(service)))) (define (prefix? candidate lst) "Return true if CANDIDATE is a prefix of LST." @@ -367,10 +368,9 @@ surrounding SYMBOL." (define (newline-form? symbol context) "Return true if parenthesized expressions starting with SYMBOL must be followed by a newline." - (match (vhash-assq symbol %newline-forms) - (#f #f) - ((_ . prefix) - (prefix? prefix context)))) + (let ((matches (vhash-foldq* cons '() symbol %newline-forms))) + (find (cut prefix? <> context) + matches))) (define (escaped-string str) "Return STR with backslashes and double quotes escaped. Everything else, in diff --git a/guix/scripts/home/import.scm b/guix/scripts/home/import.scm index 825ccb1e73..fd263c0699 100644 --- a/guix/scripts/home/import.scm +++ b/guix/scripts/home/import.scm @@ -26,9 +26,9 @@ #:use-module (guix utils) #:use-module (guix packages) #:autoload (guix scripts package) (manifest-entry-version-prefix) + #:use-module (guix read-print) #:use-module (gnu packages) #:use-module (ice-9 match) - #:use-module (ice-9 pretty-print) #:use-module (ice-9 rdelim) #:use-module (ice-9 regex) #:use-module (ice-9 popen) @@ -170,8 +170,19 @@ user's files to CONFIGURATION-DIRECTORY; the generated sexp refers to them." (gnu services) ,@(delete-duplicates (concatenate modules))) + ,(vertical-space 1) + (home-environment - (packages (specifications->packages ,packages)) + ,(comment (G_ "\ +;; Below is the list of packages that will show up in your +;; Home profile, under ~/.guix-home/profile.\n")) + (packages + (specifications->packages ,packages)) + + ,(vertical-space 1) + ,(comment (G_ "\ +;; Below is the list of Home services. To search for available +;; services, run 'guix home search KEYWORD' in a terminal.\n")) (services (list ,@services))))))))) (define* (import-manifest @@ -187,7 +198,5 @@ user's files to CONFIGURATION-DIRECTORY; the generated sexp refers to them." ;; specifies package names. To reproduce the exact same profile, you also ;; need to capture the channels being used, as returned by \"guix describe\". ;; See the \"Replicating Guix\" section in the manual.\n")) - (for-each (lambda (exp) - (newline port) - (pretty-print exp port)) - exp)))) + (newline port) + (pretty-print-with-comments/splice port exp)))) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index d3ee69840c..78b6978c92 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -48,6 +48,7 @@ #:use-module (guix scripts build) #:use-module (guix transformations) #:use-module ((guix self) #:select (make-config.scm)) + #:use-module (gnu compression) #:use-module (gnu packages) #:use-module (gnu packages bootstrap) #:use-module ((gnu packages compression) #:hide (zip)) @@ -61,13 +62,7 @@ #:use-module (srfi srfi-26) #:use-module (srfi srfi-37) #:use-module (ice-9 match) - #:export (compressor? - compressor-name - compressor-extension - compressor-command - %compressors - lookup-compressor - self-contained-tarball + #:export (self-contained-tarball debian-archive docker-image squashfs-image @@ -75,34 +70,6 @@ %formats guix-pack)) -;; Type of a compression tool. -(define-record-type <compressor> - (compressor name extension command) - compressor? - (name compressor-name) ;string (e.g., "gzip") - (extension compressor-extension) ;string (e.g., ".lz") - (command compressor-command)) ;gexp (e.g., #~(list "/gnu/store/…/gzip" - ; "-9n" )) - -(define %compressors - ;; Available compression tools. - (list (compressor "gzip" ".gz" - #~(list #+(file-append gzip "/bin/gzip") "-9n")) - (compressor "lzip" ".lz" - #~(list #+(file-append lzip "/bin/lzip") "-9")) - (compressor "xz" ".xz" - #~(append (list #+(file-append xz "/bin/xz") - "-e") - (%xz-parallel-args))) - (compressor "bzip2" ".bz2" - #~(list #+(file-append bzip2 "/bin/bzip2") "-9")) - (compressor "zstd" ".zst" - ;; The default level 3 compresses better than gzip in a - ;; fraction of the time, while the highest level 19 - ;; (de)compresses more slowly and worse than xz. - #~(list #+(file-append zstd "/bin/zstd") "-3")) - (compressor "none" "" #f))) - ;; This one is only for use in this module, so don't put it in %compressors. (define bootstrap-xz (compressor "bootstrap-xz" ".xz" @@ -110,15 +77,6 @@ "-e") (%xz-parallel-args)))) -(define (lookup-compressor name) - "Return the compressor object called NAME. Error out if it could not be -found." - (or (find (match-lambda - (($ <compressor> name*) - (string=? name* name))) - %compressors) - (leave (G_ "~a: compressor not found~%") name))) - (define not-config? ;; Select (guix …) and (gnu …) modules, except (guix config). (match-lambda diff --git a/guix/scripts/weather.scm b/guix/scripts/weather.scm index b7d8165262..f46c11b1a5 100644 --- a/guix/scripts/weather.scm +++ b/guix/scripts/weather.scm @@ -205,7 +205,6 @@ In case ITEMS is an empty list, return 1 instead." #:make-progress-reporter (lambda* (total #:key url #:allow-other-keys) (progress-reporter/bar total))))) - (format #t (highlight "~a~%") server) (let ((obtained (length narinfos)) (requested (length items)) (missing (lset-difference string=? @@ -224,6 +223,15 @@ In case ITEMS is an empty list, return 1 instead." (coloring-procedure (color BOLD RED))) (else highlight)))) + (format #t (highlight "~a ~a~%") server + ;; This requires a Unicode-capable encoding, which we + ;; restrict to UTF-8 for simplicity. + (if (string=? (port-encoding (current-output-port)) "UTF-8") + (cond ((> ratio 0.80) "☀") + ((< ratio 0.50) "⛈") + (else "⛅")) + "")) + (format #t (colorize (G_ " ~,1f% substitutes available (~h out of ~h)~%")) (* 100. ratio) diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index c27bc74afc..4050a4c7ae 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -6,6 +6,7 @@ gnu/services.scm gnu/system.scm gnu/services/configuration.scm gnu/services/shepherd.scm +gnu/services/samba.scm gnu/home/services.scm gnu/home/services/ssh.scm gnu/home/services/symlink-manager.scm diff --git a/tests/gnu-maintenance.scm b/tests/gnu-maintenance.scm index 89b0684c25..abe74d799c 100644 --- a/tests/gnu-maintenance.scm +++ b/tests/gnu-maintenance.scm @@ -84,4 +84,66 @@ (equal? (upstream-source-version update) "2") (equal? (list expected-new-url) (upstream-source-urls update)))))) +(test-assert "latest-html-release, no signature" + (with-http-server + `((200 "<html xmlns=\"http://www.w3.org/1999/xhtml\"> +<head> +<title>Releases!</title> +</head> +<body> +<a href=\"bar/foo-1.tar.gz\">version 1</a> +<a href=\"bar/foo-2.tar.gz\">version 2</a> +</body> +</html>")) + (let () + (define package + (dummy-package "foo" + (source + (dummy-origin + (uri (string-append (%local-url) "/foo-1.tar.gz")))) + (properties + `((release-monitoring-url . ,(%local-url)))))) + (define update ((upstream-updater-latest %generic-html-updater) package)) + (define expected-new-url + (string-append (%local-url) "/foo-2.tar.gz")) + (and (pk 'u update) + (equal? (upstream-source-version update) "2") + (equal? (list expected-new-url) + (upstream-source-urls update)) + (null? ;; both #false and the empty list are acceptable + (or (upstream-source-signature-urls update) '())))))) + +(test-assert "latest-html-release, signature" + (with-http-server + `((200 "<html xmlns=\"http://www.w3.org/1999/xhtml\"> +<head> +<title>Signed releases!</title> +</head> +<body> +<a href=\"bar/foo-1.tar.gz\">version 1</a> +<a href=\"bar/foo-2.tar.gz\">version 2</a> +<a href=\"bar/foo-1.tar.gz.sig\">version 1 signature</a> +<a href=\"bar/foo-2.tar.gz.sig\">version 2 signature</a> +</body> +</html>")) + (let () + (define package + (dummy-package "foo" + (source + (dummy-origin + (uri (string-append (%local-url) "/foo-1.tar.gz")))) + (properties + `((release-monitoring-url . ,(%local-url)))))) + (define update ((upstream-updater-latest %generic-html-updater) package)) + (define expected-new-url + (string-append (%local-url) "/foo-2.tar.gz")) + (define expected-signature-url + (string-append (%local-url) "/foo-2.tar.gz.sig")) + (and (pk 'u update) + (equal? (upstream-source-version update) "2") + (equal? (list expected-new-url) + (upstream-source-urls update)) + (equal? (list expected-signature-url) + (upstream-source-signature-urls update)))))) + (test-end) diff --git a/tests/home-import.scm b/tests/home-import.scm index d62a6de648..04b7b76156 100644 --- a/tests/home-import.scm +++ b/tests/home-import.scm @@ -23,6 +23,7 @@ #:use-module (guix build utils) #:use-module (guix packages) #:use-module (ice-9 match) + #:use-module ((guix read-print) #:select (blank?)) #:use-module ((guix profiles) #:hide (manifest->code)) #:use-module ((guix build syscalls) #:select (mkdtemp!)) #:use-module ((guix scripts package) @@ -85,13 +86,21 @@ corresponding file." ((file . content) (create-file file content))) files-alist)) +(define (remove-recursively pred sexp) + "Like SRFI-1 'remove', but recurse within SEXP." + (let loop ((sexp sexp)) + (match sexp + ((lst ...) + (map loop (remove pred lst))) + (x x)))) + (define (eval-test-with-home-environment files-alist manifest matcher) (create-temporary-home files-alist) (setenv "HOME" %temporary-home-directory) (mkdir-p %temporary-home-directory) (let* ((home-environment (manifest+configuration-files->code manifest %destination-directory)) - (result (matcher home-environment))) + (result (matcher (remove-recursively blank? home-environment)))) (delete-file-recursively %temporary-home-directory) result)) diff --git a/tests/read-print.scm b/tests/read-print.scm index ca3f3193f7..ea52a52145 100644 --- a/tests/read-print.scm +++ b/tests/read-print.scm @@ -294,6 +294,11 @@ mnopqrstuvwxyz.\")" ;; page break above end)") +(test-pretty-print "\ +(home-environment + (services + (list (service-type home-bash-service-type))))") + (test-pretty-print/sequence "\ ;;; This is a top-level comment. diff --git a/tests/substitute.scm b/tests/substitute.scm index 049e6ba762..5315292987 100644 --- a/tests/substitute.scm +++ b/tests/substitute.scm @@ -137,6 +137,12 @@ version identifier.." (string-append (dirname %main-substitute-directory) "/substituter-alt-data")) +(define %unroutable-substitute-url + ;; Substitute URL with an unroutable server address, as per + ;; <https://www.rfc-editor.org/rfc/rfc5737>. + "http://203.0.113.1") + + (define %narinfo ;; Skeleton of the narinfo used below. (string-append "StorePath: " (%store-prefix) @@ -305,6 +311,24 @@ Deriver: " (%store-prefix) "/foo.drv") (lambda () (guix-substitute "--query")))))))) +(test-equal "query narinfo signed with authorized key, unroutable URL first" + (string-append (%store-prefix) "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") + + (with-narinfo (string-append %narinfo "Signature: " + (signature-field %narinfo) + "\n") + (string-trim-both + (with-output-to-string + (lambda () + (with-input-from-string (string-append "have " (%store-prefix) + "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") + (lambda () + (parameterize ((substitute-urls + (list %unroutable-substitute-url + (string-append "file://" + %main-substitute-directory)))) + (guix-substitute "--query"))))))))) + (test-equal "query narinfo signed with unauthorized key" "" ; not substitutable @@ -417,6 +441,28 @@ System: mips64el-linux\n"))) (lambda () (false-if-exception (delete-file "substitute-retrieved")))))) +(test-equal "substitute, authorized key, first substitute URL is unroutable" + '("Substitutable data." 1 #o444) + (with-narinfo (string-append %narinfo "Signature: " + (signature-field %narinfo)) + (dynamic-wind + (const #t) + (lambda () + ;; Pick an unroutable URL as the first one. This shouldn't be a + ;; problem. + (parameterize ((substitute-urls + (list %unroutable-substitute-url + (string-append "file://" + %main-substitute-directory)))) + (request-substitution (string-append (%store-prefix) + "/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo") + "substitute-retrieved") + (list (call-with-input-file "substitute-retrieved" get-string-all) + (stat:mtime (lstat "substitute-retrieved")) + (stat:perms (lstat "substitute-retrieved"))))) + (lambda () + (false-if-exception (delete-file "substitute-retrieved")))))) + (test-equal "substitute, unauthorized narinfo comes first" "Substitutable data." (with-narinfo* |