diff options
author | Leo Famulari <leo@famulari.name> | 2021-01-25 15:21:09 -0500 |
---|---|---|
committer | Leo Famulari <leo@famulari.name> | 2021-01-25 15:40:55 -0500 |
commit | 68dd78e2e47248b3e1e7ba1807a92a8374b39097 (patch) | |
tree | d38564293f285d688a55b23e8a6424c6b26213b1 | |
parent | 8b55544212a90b0276df49596a3d373e5c2e8f5c (diff) | |
parent | 3f0af15131e524891df8c9f013f1be1597fe2d7e (diff) | |
download | guix-68dd78e2e47248b3e1e7ba1807a92a8374b39097.tar.gz |
Merge branch 'master' into staging
177 files changed, 7931 insertions, 2627 deletions
diff --git a/Makefile.am b/Makefile.am index 99bdcfa346..8a8133d669 100644 --- a/Makefile.am +++ b/Makefile.am @@ -103,6 +103,7 @@ MODULES = \ guix/profiles.scm \ guix/serialization.scm \ guix/nar.scm \ + guix/narinfo.scm \ guix/derivations.scm \ guix/grafts.scm \ guix/repl.scm \ @@ -987,7 +988,7 @@ download-po.$(1): fi ; \ for lang in $$$$LINGUAS; do \ if wget -nv -O "$(top_srcdir)/$(2)/$(3)$$$$lang.po.tmp" \ - "https://translationproject.org/latest/$(1)/$$$$lang.po" ; \ + "https://translate.fedoraproject.org/api/translations/guix/$(1)/$$$$lang/file/" ; \ then \ mv "$(top_srcdir)/$(2)/$(3)$$$$lang.po"{.tmp,} ; \ else \ @@ -999,11 +1000,12 @@ download-po.$(1): endef +$(eval $(call make-download-po-rule,documentation-cookbook,po/doc,guix-cookbook.)) +$(eval $(call make-download-po-rule,documentation-manual,po/doc,guix-manual.)) $(eval $(call make-download-po-rule,guix,po/guix)) -$(eval $(call make-download-po-rule,guix-packages,po/packages)) -$(eval $(call make-download-po-rule,guix-manual,po/doc,guix-manual.)) +$(eval $(call make-download-po-rule,packages,po/packages)) -download-po: $(foreach domain,guix guix-packages guix-manual,download-po.$(domain)) +download-po: $(foreach domain,guix packages documentation-manual documentation-cookbook,download-po.$(domain)) .PHONY: download-po ## -------------- ## diff --git a/doc/contributing.texi b/doc/contributing.texi index d0ab08336a..d1619d3a65 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -593,8 +593,8 @@ such as @command{guix package --show} take care of rendering it appropriately. Synopses and descriptions are translated by volunteers -@uref{https://translationproject.org/domain/guix-packages.html, at the -Translation Project} so that as many users as possible can read them in +@uref{https://translate.fedoraproject.org/projects/guix/packages, at +Weblate} so that as many users as possible can read them in their native language. User interfaces search them and display them in the language specified by the current locale. diff --git a/doc/guix-cookbook.texi b/doc/guix-cookbook.texi index 54ab99558e..1cddaa7faf 100644 --- a/doc/guix-cookbook.texi +++ b/doc/guix-cookbook.texi @@ -57,8 +57,9 @@ its API, and related concepts. @c how to join your own translation team and how to report issues with the @c translation. If you would like to translate this document in your native language, consider -joining the @uref{https://translationproject.org/domain/guix-cookbook.html, -Translation Project}. +joining +@uref{https://translate.fedoraproject.org/projects/guix/documentation-cookbook, +Weblate}. @menu * Scheme tutorials:: Meet your new favorite language! @@ -1353,6 +1354,7 @@ reference. @menu * Customizing the Kernel:: Creating and using a custom Linux kernel on Guix System. +* Guix System Image API:: Customizing images to target specific platforms. * Connecting to Wireguard VPN:: Connecting to a Wireguard VPN. * Customizing a Window Manager:: Handle customization of a Window manager on Guix System. * Running Guix on a Linode Server:: Running Guix on a Linode Server @@ -1601,6 +1603,217 @@ likely that you'll need to modify the initrd on a machine using a custom kernel, since certain modules which are expected to be built may not be available for inclusion into the initrd. +@node Guix System Image API +@section Guix System Image API + +Historically, Guix System is centered around an @code{operating-system} +structure. This structure contains various fields ranging from the +bootloader and kernel declaration to the services to install. + +Depending on the target machine, that can go from a standard +@code{x86_64} machine to a small ARM single board computer such as the +Pine64, the image constraints can vary a lot. The hardware +manufacturers will impose different image formats with various partition +sizes and offsets. + +To create images suitable for all those machines, a new abstraction is +necessary: that's the goal of the @code{image} record. This record +contains all the required information to be transformed into a +standalone image, that can be directly booted on any target machine. + +@lisp +(define-record-type* <image> + image make-image + image? + (name image-name ;symbol + (default #f)) + (format image-format) ;symbol + (target image-target + (default #f)) + (size image-size ;size in bytes as integer + (default 'guess)) + (operating-system image-operating-system ;<operating-system> + (default #f)) + (partitions image-partitions ;list of <partition> + (default '())) + (compression? image-compression? ;boolean + (default #t)) + (volatile-root? image-volatile-root? ;boolean + (default #t)) + (substitutable? image-substitutable? ;boolean + (default #t))) +@end lisp + +This record contains the operating-system to instantiate. The +@code{format} field defines the image type and can be @code{efi-raw}, +@code{qcow2} or @code{iso9660} for instance. In the future, it could be +extended to @code{docker} or other image types. + +A new directory in the Guix sources is dedicated to images definition. For now +there are four files: + +@itemize @bullet +@item @file{gnu/system/images/hurd.scm} +@item @file{gnu/system/images/pine64.scm} +@item @file{gnu/system/images/novena.scm} +@item @file{gnu/system/images/pinebook-pro.scm} +@end itemize + +Let's have a look to @file{pine64.scm}. It contains the +@code{pine64-barebones-os} variable which is a minimal definition of an +operating-system dedicated to the @b{Pine A64 LTS} board. + +@lisp +(define pine64-barebones-os + (operating-system + (host-name "vignemale") + (timezone "Europe/Paris") + (locale "en_US.utf8") + (bootloader (bootloader-configuration + (bootloader u-boot-pine64-lts-bootloader) + (target "/dev/vda"))) + (initrd-modules '()) + (kernel linux-libre-arm64-generic) + (file-systems (cons (file-system + (device (file-system-label "my-root")) + (mount-point "/") + (type "ext4")) + %base-file-systems)) + (services (cons (service agetty-service-type + (agetty-configuration + (extra-options '("-L")) ; no carrier detect + (baud-rate "115200") + (term "vt100") + (tty "ttyS0"))) + %base-services)))) +@end lisp + +The @code{kernel} and @code{bootloader} fields are pointing to packages +dedicated to this board. + +Right below, the @code{pine64-image-type} variable is also defined. + +@lisp +(define pine64-image-type + (image-type + (name 'pine64-raw) + (constructor (cut image-with-os arm64-disk-image <>)))) +@end lisp + +It's using a record we haven't talked about yet, the @code{image-type} record, +defined this way: + +@lisp +(define-record-type* <image-type> + image-type make-image-type + image-type? + (name image-type-name) ;symbol + (constructor image-type-constructor)) ;<operating-system> -> <image> +@end lisp + +The main purpose of this record is to associate a name to a procedure +transforming an @code{operating-system} to an image. To understand why +it is necessary, let's have a look to the command producing an image +from an @code{operating-system} configuration file: + +@example +guix system image my-os.scm +@end example + +This command expects an @code{operating-system} configuration but how +should we indicate that we want an image targeting a Pine64 board? We +need to provide an extra information, the @code{image-type}, by passing +the @code{--image-type} or @code{-t} flag, this way: + +@example +guix system image --image-type=pine64-raw my-os.scm +@end example + +This @code{image-type} parameter points to the @code{pine64-image-type} +defined above. Hence, the @code{operating-system} declared in +@code{my-os.scm} will be applied the @code{(cut image-with-os +arm64-disk-image <>)} procedure to turn it into an image. + +The resulting image looks like: + +@lisp +(image + (format 'disk-image) + (target "aarch64-linux-gnu") + (operating-system my-os) + (partitions + (list (partition + (inherit root-partition) + (offset root-offset))))) +@end lisp + +which is the aggregation of the @code{operating-system} defined in + @code{my-os.scm} to the @code{arm64-disk-image} record. + +But enough Scheme madness. What does this image API bring to the Guix user? + +One can run: + +@example +mathieu@@cervin:~$ guix system --list-image-types +The available image types are: + + - pinebook-pro-raw + - pine64-raw + - novena-raw + - hurd-raw + - hurd-qcow2 + - qcow2 + - uncompressed-iso9660 + - efi-raw + - arm64-raw + - arm32-raw + - iso9660 +@end example + +and by writing an @code{operating-system} file based on +@code{pine64-barebones-os}, you can customize your image to your +preferences in a file (@file{my-pine-os.scm}) like this: + +@lisp +(use-modules (gnu services linux) + (gnu system images pine64)) + +(let ((base-os pine64-barebones-os)) + (operating-system + (inherit base-os) + (timezone "America/Indiana/Indianapolis") + (services + (cons + (service earlyoom-service-type + (earlyoom-configuration + (prefer-regexp "icecat|chromium"))) + (operating-system-user-services base-os))))) +@end lisp + +run: + +@example +guix system image --image-type=pine64-raw my-pine-os.scm +@end example + +or, + +@example +guix system image --image-type=hurd-raw my-hurd-os.scm +@end example + +to get an image that can be written directly to a hard drive and booted +from. + +Without changing anything to @code{my-hurd-os.scm}, calling: + +@example +guix system image --image-type=hurd-qcow2 my-hurd-os.scm +@end example + +will instead produce a Hurd QEMU image. + @node Connecting to Wireguard VPN @section Connecting to Wireguard VPN diff --git a/doc/guix.texi b/doc/guix.texi index 884224fce6..7e7c43286f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -55,7 +55,7 @@ Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019, 2020 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* -Copyright @copyright{} 2018 Oleg Pykhalov@* +Copyright @copyright{} 2018, 2021 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright @copyright{} 2018, 2019 Gábor Boskovits@* @@ -107,7 +107,7 @@ Documentation License''. @dircategory Software development @direntry -* guix environment: (guix)Invoking guix environment. Building development environments with Guix. +* guix environment: (guix)Invoking guix environment. Building development environments with Guix. * guix build: (guix)Invoking guix build. Building packages. * guix pack: (guix)Invoking guix pack. Creating binary bundles. @end direntry @@ -142,9 +142,9 @@ GNU Guix参考手册}), French (@pxref{Top,,, guix.fr, Manuel de référence de Guix}), German (@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}), Spanish (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}), and Russian (@pxref{Top,,, guix.ru, Руководство GNU Guix}). If you -would like to translate it in your native language, consider joining the -@uref{https://translationproject.org/domain/guix-manual.html, Translation -Project}. +would like to translate it in your native language, consider joining +@uref{https://translate.fedoraproject.org/projects/guix/documentation-manual, +Weblate}. @menu * Introduction:: What is Guix about? @@ -518,7 +518,7 @@ way for you to give it a try is by setting up an instance of little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel. This configuration is no longer fully supported; in particular, there is no ongoing work to ensure that this -architecture still works. Should someone decide they wish to revive this +architecture still works. Should someone decide they wish to revive this architecture then the code is still available. @end table @@ -852,6 +852,11 @@ Support for build offloading (@pxref{Daemon Offload Setup}) and version 0.13.0 or later. @item +@uref{https://notabug.org/guile-zstd/guile-zstd, Guile-zstd}, for zstd +compression and decompression in @command{guix publish} and for +substitutes (@pxref{Invoking guix publish}). + +@item @uref{https://ngyro.com/software/guile-semver.html, Guile-Semver} for the @code{crate} importer (@pxref{Invoking guix import}). @@ -1589,7 +1594,7 @@ them with Bzip2 by default. Whether to discover substitute servers on the local network using mDNS and DNS-SD. -This feature is still experimental. However, here are a few +This feature is still experimental. However, here are a few considerations. @enumerate @@ -1743,7 +1748,7 @@ $ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale Note that the @code{glibc-locales} package contains data for all the locales supported by the GNU@tie{}libc and weighs in at around -917@tie{}MiB. Alternatively, the @code{glibc-utf8-locales} is smaller but +917@tie{}MiB@. Alternatively, the @code{glibc-utf8-locales} is smaller but limited to a few UTF-8 locales. The @env{GUIX_LOCPATH} variable plays a role similar to @env{LOCPATH} @@ -2132,7 +2137,7 @@ Access to @file{/dev/srX} usually requires root privileges. @unnumberedsubsec Booting Once this is done, you should be able to reboot the system and boot from -the USB stick or DVD. The latter usually requires you to get in the +the USB stick or DVD@. The latter usually requires you to get in the BIOS or UEFI boot menu, where you can choose to boot from the USB stick. In order to boot from Libreboot, switch to the command mode by pressing the @kbd{c} key and type @command{search_grub usb}. @@ -2656,7 +2661,7 @@ The installation image described above was built using the @command{guix system} command, specifically: @example -guix system disk-image -t iso9660 gnu/system/install.scm +guix system image -t iso9660 gnu/system/install.scm @end example Have a look at @file{gnu/system/install.scm} in the source tree, @@ -2673,7 +2678,7 @@ If you build a disk image and the bootloader is not available otherwise includes the bootloader, specifically: @example -guix system disk-image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) "A20-OLinuXino-Lime2")' +guix system image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) "A20-OLinuXino-Lime2")' @end example @code{A20-OLinuXino-Lime2} is the name of the board. If you specify an invalid @@ -3077,7 +3082,7 @@ shells get all the right environment variable definitions: @example GUIX_PROFILE="$HOME/.guix-profile" ; \ -source "$HOME/.guix-profile/etc/profile" +source "$GUIX_PROFILE/etc/profile" @end example In a multi-user setup, user profiles are stored in a place registered as @@ -3571,11 +3576,8 @@ Consequently, this command must be used with care. Finally, since @command{guix package} may actually start build processes, it supports all the common build options (@pxref{Common Build Options}). It also supports package transformation options, such as -@option{--with-source} (@pxref{Package Transformation Options}). -However, note that package transformations are lost when upgrading; to -preserve transformations across upgrades, you should define your own -package variant in a Guile module and add it to @env{GUIX_PACKAGE_PATH} -(@pxref{Defining Packages}). +@option{--with-source}, and preserves them across upgrades +(@pxref{Package Transformation Options}). @node Substitutes @section Substitutes @@ -3843,7 +3845,7 @@ authenticating bindings between domain names and public keys). @vindex http_proxy @vindex https_proxy -Substitutes are downloaded over HTTP or HTTPS. The @env{http_proxy} and +Substitutes are downloaded over HTTP or HTTPS@. The @env{http_proxy} and @env{https_proxy} environment variables can be set in the environment of @command{guix-daemon} and are honored for downloads of substitutes. Note that the value of those environment variables in the environment @@ -4263,7 +4265,7 @@ Generation 3 Jun 13 2018 23:31:07 (current) describe the current status of Guix. This @code{~/.config/guix/current} profile works exactly like the profiles -created by @command{guix package} (@pxref{Invoking guix package}). That +created by @command{guix package} (@pxref{Invoking guix package}). That is, you can list generations, roll back to the previous generation---i.e., the previous Guix---and so on: @@ -4460,7 +4462,7 @@ Scheme code that evaluates to a list of channel objects. @end table As for @command{guix pull}, the absence of any options means that the -latest commit on the master branch will be used. The command +latest commit on the master branch will be used. The command @example guix time-machine -- build hello @@ -4924,7 +4926,7 @@ updates. @cindex extending the package collection (channels) @cindex variant packages (channels) -You can specify @emph{additional channels} to pull from. To use a channel, write +You can specify @emph{additional channels} to pull from. To use a channel, write @code{~/.config/guix/channels.scm} to instruct @command{guix pull} to pull from it @emph{in addition} to the default Guix channel(s): @@ -5311,7 +5313,7 @@ repository in the @file{.guix-channel} file, like so: This allows @command{guix pull} to determine whether it is pulling code from a mirror of the channel; when that is the case, it warns the user -that the mirror might be stale and displays the primary URL. That way, +that the mirror might be stale and displays the primary URL@. That way, users cannot be tricked into fetching code from a stale mirror that does not receive security updates. @@ -6713,7 +6715,7 @@ values are: a URL represented as a string, or a list thereof. @cindex fixed-output derivations, for download @item @code{method} -A monadic procedure that handles the given URI. The procedure must +A monadic procedure that handles the given URI@. The procedure must accept at least three arguments: the value of the @code{uri} field and the hash algorithm and hash value specified by the @code{hash} field. It must return a store item or a derivation in the store monad @@ -7244,9 +7246,9 @@ specify the source sub-directory, defaulting to ``src''. The @code{#:main-class} parameter can be used with the minimal ant buildfile to specify the main class of the resulting jar. This makes the jar file executable. The @code{#:test-include} parameter can be used to -specify the list of junit tests to run. It defaults to +specify the list of junit tests to run. It defaults to @code{(list "**/*Test.java")}. The @code{#:test-exclude} can be used to -disable some tests. It defaults to @code{(list "**/Abstract*.java")}, +disable some tests. It defaults to @code{(list "**/Abstract*.java")}, because abstract classes cannot be run as tests. The parameter @code{#:build-target} can be used to specify the Ant task @@ -7280,12 +7282,12 @@ the libraries and header files are assumed to be host tools. These variables, exported by @code{(guix build-system asdf)}, implement build procedures for Common Lisp packages using -@url{https://common-lisp.net/project/asdf/, ``ASDF''}. ASDF is a system +@url{https://common-lisp.net/project/asdf/, ``ASDF''}. ASDF is a system definition facility for Common Lisp programs and libraries. The @code{asdf-build-system/source} system installs the packages in source form, and can be loaded using any common lisp implementation, via -ASDF. The others, such as @code{asdf-build-system/sbcl}, install binary +ASDF@. The others, such as @code{asdf-build-system/sbcl}, install binary systems in the format which a particular implementation understands. These build systems can also be used to produce executable programs, or lisp images which contain a set of packages pre-loaded. @@ -7620,13 +7622,13 @@ Julia packages require the source @code{file-name} to be the real name of the package, correctly capitalized. For packages requiring shared library dependencies, you may need to write the -@file{/deps/deps.jl} file manually. It's usually a line of @code{const +@file{/deps/deps.jl} file manually. It's usually a line of @code{const variable = /gnu/store/library.so} for each dependency, plus a void function @code{check_deps() = nothing}. Some older packages that aren't using @file{Package.toml} yet, will require -this file to be created, too. The function @code{julia-create-package-toml} -helps creating the file. You need to pass the outputs and the source of the +this file to be created, too. The function @code{julia-create-package-toml} +helps creating the file. You need to pass the outputs and the source of the package, it's name (the same as the @code{file-name} parameter), the package uuid, the package version, and a list of dependencies specified by their name and their uuid. @@ -7823,7 +7825,7 @@ run after installation using the R function @defvr {Scheme Variable} rakudo-build-system This variable is exported by @code{(guix build-system rakudo)}. It implements the build procedure used by @uref{https://rakudo.org/, -Rakudo} for @uref{https://perl6.org/, Perl6} packages. It installs the +Rakudo} for @uref{https://perl6.org/, Perl6} packages. It installs the package to @code{/gnu/store/@dots{}/NAME-VERSION/share/perl6} and installs the binaries, library files and the resources, as well as wrap the files under the @code{bin/} directory. Tests can be skipped by @@ -8577,7 +8579,7 @@ instruct it to listen for TCP connections (@pxref{Invoking guix-daemon, @item ssh @cindex SSH access to build daemons -These URIs allow you to connect to a remote daemon over SSH. This +These URIs allow you to connect to a remote daemon over SSH@. This feature requires Guile-SSH (@pxref{Requirements}) and a working @command{guile} binary in @env{PATH} on the destination machine. It supports public key and GSSAPI authentication. A typical URL might look @@ -10302,7 +10304,7 @@ guix build --with-c-toolchain=hwloc=clang-toolchain \ @quotation Note There can be application binary interface (ABI) incompatibilities among tool chains. This is particularly true of the C++ standard library and -run-time support libraries such as that of OpenMP. By rebuilding all +run-time support libraries such as that of OpenMP@. By rebuilding all dependents with the same tool chain, @option{--with-c-toolchain} minimizes the risks of incompatibility but cannot entirely eliminate them. Choose @var{package} wisely. @@ -10376,6 +10378,37 @@ guix build coreutils --with-patch=glibc=./glibc-frob.patch In this example, glibc itself as well as everything that leads to Coreutils in the dependency graph is rebuilt. +@cindex upstream, latest version +@item --with-latest=@var{package} +So you like living on the bleeding edge? This option is for you! It +replaces occurrences of @var{package} in the dependency graph with its +latest upstream version, as reported by @command{guix refresh} +(@pxref{Invoking guix refresh}). + +It does so by determining the latest upstream release of @var{package} +(if possible), downloading it, and authenticating it @emph{if} it comes +with an OpenPGP signature. + +As an example, the command below builds Guix against the latest version +of Guile-JSON: + +@example +guix build guix --with-latest=guile-json +@end example + +There are limitations. First, in cases where the tool cannot or does +not know how to authenticate source code, you are at risk of running +malicious code; a warning is emitted in this case. Second, this option +simply changes the source used in the existing package definitions, +which is not always sufficient: there might be additional dependencies +that need to be added, patches to apply, and more generally the quality +assurance work that Guix developers normally do will be missing. + +You've been warned! In all the other cases, it's a snappy way to stay +on top. We encourage you to submit patches updating the actual package +definitions once you have successfully tested an upgrade +(@pxref{Contributing}). + @cindex test suite, skipping @item --without-tests=@var{package} Build @var{package} without running its tests. This can be useful in @@ -11465,7 +11498,7 @@ inconvenient. @item --manifest=@var{file} @itemx -m @var{file} -Select all the packages from the manifest in @var{file}. This is useful to +Select all the packages from the manifest in @var{file}. This is useful to check if any packages of the user manifest can be updated. @item --type=@var{updater} @@ -11694,7 +11727,7 @@ Identify inputs that should most likely be native inputs. Probe @code{home-page} and @code{source} URLs and report those that are invalid. Suggest a @code{mirror://} URL when applicable. If the @code{source} URL redirects to a GitHub URL, recommend usage of the GitHub -URL. Check that the source file name is meaningful, e.g.@: is not just a +URL@. Check that the source file name is meaningful, e.g.@: is not just a version number or ``git-checkout'', without a declared @code{file-name} (@pxref{origin Reference}). @@ -11988,7 +12021,7 @@ the command-line tools. Packages and their dependencies form a @dfn{graph}, specifically a directed acyclic graph (DAG). It can quickly become difficult to have a mental model of the package DAG, so the @command{guix graph} command -provides a visual representation of the DAG. By default, +provides a visual representation of the DAG@. By default, @command{guix graph} emits a DAG representation in the input format of @uref{https://www.graphviz.org/, Graphviz}, so its output can be passed directly to the @command{dot} command of Graphviz. It can also emit an @@ -12348,17 +12381,23 @@ server socket is open and the signing key has been read. @item --compression[=@var{method}[:@var{level}]] @itemx -C [@var{method}[:@var{level}]] Compress data using the given @var{method} and @var{level}. @var{method} is -one of @code{lzip} and @code{gzip}; when @var{method} is omitted, @code{gzip} -is used. +one of @code{lzip}, @code{zstd}, and @code{gzip}; when @var{method} is +omitted, @code{gzip} is used. When @var{level} is zero, disable compression. The range 1 to 9 corresponds to different compression levels: 1 is the fastest, and 9 is the best (CPU-intensive). The default is 3. -Usually, @code{lzip} compresses noticeably better than @code{gzip} for a small -increase in CPU usage; see -@uref{https://nongnu.org/lzip/lzip_benchmark.html,benchmarks on the lzip Web -page}. +Usually, @code{lzip} compresses noticeably better than @code{gzip} for a +small increase in CPU usage; see +@uref{https://nongnu.org/lzip/lzip_benchmark.html,benchmarks on the lzip +Web page}. However, @code{lzip} achieves low decompression throughput +(on the order of 50@tie{}MiB/s on modern hardware), which can be a +bottleneck for someone who downloads over a fast network connection. + +The compression ratio of @code{zstd} is between that of @code{lzip} and +that of @code{gzip}; its main advantage is a +@uref{https://facebook.github.io/zstd/,high decompression speed}. Unless @option{--cache} is used, compression occurs on the fly and the compressed streams are not @@ -12917,8 +12956,9 @@ updating substitutes from '@value{SUBSTITUTE-URL}'... 100.0% @end example What this example shows is that @code{kcoreaddons} and presumably the 58 -packages that depend on it have no substitutes at @code{ci.guix.info}; -likewise for @code{qgpgme} and the 46 packages that depend on it. +packages that depend on it have no substitutes at +@code{@value{SUBSTITUTE-SERVER}}; likewise for @code{qgpgme} and the 46 +packages that depend on it. If you are a Guix developer, or if you are taking care of this build farm, you'll probably want to have a closer look at these packages: they may simply @@ -12996,7 +13036,7 @@ Produce output in the specified @var{format}, one of: @table @code @item recutils -The default option. It outputs a set of Session recutils records +The default option. It outputs a set of Session recutils records that include each @code{ChildProcess} as a field. @item normalized @@ -13421,7 +13461,7 @@ Manual}). Here are some examples: @table @code @item (list (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")) -Use the swap partition with the given UUID. You can learn the UUID of a +Use the swap partition with the given UUID@. You can learn the UUID of a Linux swap partition by running @command{swaplabel @var{device}}, where @var{device} is the @file{/dev} file name of that partition. @@ -13919,7 +13959,7 @@ the system boots up. @item source This is either a string specifying the name of the block device to be mapped, such as @code{"/dev/sda3"}, or a list of such strings when several devices -need to be assembled for creating a new one. In case of LVM this is a +need to be assembled for creating a new one. In case of LVM this is a string specifying name of the volume group to be mapped. @item target @@ -13934,7 +13974,7 @@ be specified as @code{"VGNAME-LVNAME"}. @item targets This list of strings specifies names of the resulting mapped devices in case -there are several. The format is identical to @var{target}. +there are several. The format is identical to @var{target}. @item type This must be a @code{mapped-device-kind} object, which specifies how @@ -14811,7 +14851,7 @@ Shadow tool suite. @item @code{local-line} (default: @code{#f}) Control the CLOCAL line flag. This accepts one of three symbols as -arguments, @code{'auto}, @code{'always}, or @code{'never}. If @code{#f}, +arguments, @code{'auto}, @code{'always}, or @code{'never}. If @code{#f}, the default value chosen by agetty is @code{'auto}. @item @code{extract-baud?} (default: @code{#f}) @@ -14926,7 +14966,7 @@ implements virtual console log-in. The name of the console this Kmscon runs on---e.g., @code{"tty1"}. @item @code{login-program} (default: @code{#~(string-append #$shadow "/bin/login")}) -A gexp denoting the name of the log-in program. The default log-in program is +A gexp denoting the name of the log-in program. The default log-in program is @command{login} from the Shadow tool suite. @item @code{login-arguments} (default: @code{'("-p")}) @@ -15399,7 +15439,9 @@ at level 7 and gzip at level 9, write: @end lisp Level 9 achieves the best compression ratio at the expense of increased CPU -usage, whereas level 1 achieves fast compression. +usage, whereas level 1 achieves fast compression. @xref{Invoking guix +publish}, for more information on the available compression methods and +the tradeoffs involved. An empty list disables compression altogether. @@ -15829,7 +15871,7 @@ and @command{wicd-curses} user interfaces. @defvr {Scheme Variable} modem-manager-service-type This is the service type for the @uref{https://wiki.gnome.org/Projects/ModemManager, ModemManager} -service. The value for this service type is a +service. The value for this service type is a @code{modem-manager-configuration} record. This service is part of @code{%desktop-services} (@pxref{Desktop @@ -15851,8 +15893,9 @@ The ModemManager package to use. @defvr {Scheme Variable} usb-modeswitch-service-type This is the service type for the -@uref{https://www.draisberghof.de/usb_modeswitch/, USB_ModeSwitch} service. The -value for this service type is a @code{usb-modeswitch-configuration} record. +@uref{https://www.draisberghof.de/usb_modeswitch/, USB_ModeSwitch} +service. The value for this service type is +a @code{usb-modeswitch-configuration} record. When plugged in, some USB modems (and other USB devices) initially present themselves as a read-only storage medium and not as a modem. They need to be @@ -16197,7 +16240,7 @@ The data type representing the configuration of a NTP server. @table @asis @item @code{type} (default: @code{'server}) -The type of the NTP server, given as a symbol. One of @code{'pool}, +The type of the NTP server, given as a symbol. One of @code{'pool}, @code{'server}, @code{'peer}, @code{'broadcast} or @code{'manycastclient}. @item @code{address} @@ -16205,7 +16248,7 @@ The address of the server, as a string. @item @code{options} NTPD options to use with that specific server, given as a list of option names -and/or of option names and values tuples. The following example define a server +and/or of option names and values tuples. The following example define a server to use with the options @option{iburst} and @option{prefer}, as well as @option{version} 3 and a @option{maxpoll} time of 16 seconds. @@ -16231,8 +16274,7 @@ clock synchronized with that of the given servers. (listen-on '("127.0.0.1" "::1")) (sensor '("udcf0 correction 70000")) (constraint-from '("www.gnu.org")) - (constraints-from '("https://www.google.com/")) - (allow-large-adjustment? #t))) + (constraints-from '("https://www.google.com/")))) @end lisp @end deffn @@ -16270,9 +16312,6 @@ a constraint. As with constraint from, specify a list of URLs, IP addresses or hostnames of HTTPS servers to provide a constraint. Should the hostname resolve to multiple IP addresses, @code{ntpd} will calculate a median constraint from all of them. -@item @code{allow-large-adjustment?} (default: @code{#f}) -Determines if @code{ntpd} is allowed to make an initial adjustment of more -than 180 seconds. @end table @end deftp @@ -16506,6 +16545,55 @@ Group name or group ID that will be used when accessing the module. @end table @end deftp +The @code{(gnu services syncthing)} module provides the following services: +@cindex syncthing + +You might want a syncthing daemon if you have files between two or more +computers and want to sync them in real time, safely protected from +prying eyes. + +@deffn {Scheme Variable} syncthing-service-type +This is the service type for the @uref{https://syncthing.net/, +syncthing} daemon, The value for this service type is a +@command{syncthing-configuration} record as in this example: + +@lisp +(service syncthing-service-type + (syncthing-configuration (user "alice"))) +@end lisp + +See below for details about @code{syncthing-configuration}. + +@deftp {Data Type} syncthing-configuration +Data type representing the configuration for @code{syncthing-service-type}. + +@table @asis +@item @code{syncthing} (default: @var{syncthing}) +@code{syncthing} package to use. + +@item @code{arguments} (default: @var{'()}) +List of command-line arguments passing to @code{syncthing} binary. + +@item @code{logflags} (default: @var{0}) +Sum of loging flags, see +@uref{https://docs.syncthing.net/users/syncthing.html#cmdoption-logflags, Syncthing documentation logflags}. + +@item @code{user} (default: @var{#f}) +The user as which the Syncthing service is to be run. +This assumes that the specified user exists. + +@item @code{group} (default: @var{"users"}) +The group as which the Syncthing service is to be run. +This assumes that the specified group exists. + +@item @code{home} (default: @var{#f}) +Common configuration and data directory. The default configuration +directory is @file{$HOME} of the specified Syncthing @code{user}. + +@end table +@end deftp +@end deffn + Furthermore, @code{(gnu services ssh)} provides the following services. @cindex SSH @cindex SSH server @@ -17052,7 +17140,7 @@ Connect to the named PageKite frontend server instead of the @uref{https://pagekite.net,,pagekite.net} service. @item @code{kites} (default: @code{'("http:@@kitename:localhost:80:@@kitesecret")}) -List of service kites to use. Exposes HTTP on port 80 by default. The format +List of service kites to use. Exposes HTTP on port 80 by default. The format is @code{proto:kitename:host:port:secret}. @item @code{extra-file} (default: @code{#f}) @@ -17157,6 +17245,58 @@ address, delete everything except these options: @end table @end deftp +@cindex keepalived +@deffn {Scheme Variable} keepalived-service-type +This is the type for the @uref{https://www.keepalived.org/, Keepalived} +routing software, @command{keepalived}. Its value must be an +@code{keepalived-configuration} record as in this example for master +machine: + +@lisp +(service keepalived-service-type + (keepalived-configuration + (config-file (local-file "keepalived-master.conf")))) +@end lisp + +where @file{keepalived-master.conf}: + +@example +vrrp_instance my-group @{ + state MASTER + interface enp9s0 + virtual_router_id 100 + priority 100 + unicast_peer @{ 10.0.0.2 @} + virtual_ipaddress @{ + 10.0.0.4/24 + @} +@} +@end example + +and for backup machine: + +@lisp +(service keepalived-service-type + (keepalived-configuration + (config-file (local-file "keepalived-backup.conf")))) +@end lisp + +where @file{keepalived-backup.conf}: + +@example +vrrp_instance my-group @{ + state BACKUP + interface enp9s0 + virtual_router_id 100 + priority 99 + unicast_peer @{ 10.0.0.3 @} + virtual_ipaddress @{ + 10.0.0.4/24 + @} +@} +@end example +@end deffn + @node Unattended Upgrades @subsection Unattended Upgrades @@ -17597,7 +17737,7 @@ auto-login session. @deftp {Data Type} xorg-configuration This data type represents the configuration of the Xorg graphical display server. Note that there is no Xorg service; instead, the X server is started -by a ``display manager'' such as GDM, SDDM, and SLiM. Thus, the configuration +by a ``display manager'' such as GDM, SDDM, and SLiM@. Thus, the configuration of these display managers aggregates an @code{xorg-configuration} record. @table @asis @@ -17738,7 +17878,7 @@ Available @code{cups-configuration} fields are: The CUPS package. @end deftypevr -@deftypevr {@code{cups-configuration} parameter} package-list extensions (default: @code{(list epson-inkjet-printer-escpr hplip-minimal foomatic-filters splix)}) +@deftypevr {@code{cups-configuration} parameter} package-list extensions (default: @code{(list brlaser cups-filters epson-inkjet-printer-escpr foomatic-filters hplip-minimal splix)}) Drivers and other extensions to the CUPS package. @end deftypevr @@ -18586,7 +18726,7 @@ The desktop environments in Guix use the Xorg display server by default. If you'd like to use the newer display server protocol called Wayland, you need to use the @code{sddm-service} instead of GDM as the graphical login manager. You should then -select the ``GNOME (Wayland)'' session in SDDM. Alternatively you can +select the ``GNOME (Wayland)'' session in SDDM@. Alternatively you can also try starting GNOME on Wayland manually from a TTY with the command ``XDG_SESSION_TYPE=wayland exec dbus-run-session gnome-session``. Currently only GNOME has support for Wayland. @@ -19200,7 +19340,7 @@ Port on which PostgreSQL should listen. Locale to use as the default when creating the database cluster. @item @code{config-file} (default: @code{(postgresql-config-file)}) -The configuration file to use when running PostgreSQL. The default +The configuration file to use when running PostgreSQL@. The default behaviour uses the postgresql-config-file record with the default values for the fields. @@ -19253,7 +19393,7 @@ required to add extensions provided by other packages. @deftp {Data Type} postgresql-config-file Data type representing the PostgreSQL configuration file. As shown in the following example, this can be used to customize the configuration -of PostgreSQL. Note that you can use any G-expression or filename in +of PostgreSQL@. Note that you can use any G-expression or filename in place of this record, if you already have a configuration file you'd like to use for example. @@ -19280,7 +19420,7 @@ host all all ::1/128 md5")) @table @asis @item @code{log-destination} (default: @code{"syslog"}) -The logging method to use for PostgreSQL. Multiple values are accepted, +The logging method to use for PostgreSQL@. Multiple values are accepted, separated by commas. @item @code{hba-file} (default: @code{%default-postgres-hba}) @@ -19724,7 +19864,7 @@ Defaults to @samp{"private"}. @end deftypevr @deftypevr {@code{namespace-configuration} parameter} string separator -Hierarchy separator to use. You should use the same separator for +Hierarchy separator to use. You should use the same separator for all namespaces or some clients get confused. @samp{/} is usually a good one. The default however depends on the underlying mail storage format. @@ -19733,7 +19873,7 @@ Defaults to @samp{""}. @deftypevr {@code{namespace-configuration} parameter} string prefix Prefix required to access this namespace. This needs to be -different for all namespaces. For example @samp{Public/}. +different for all namespaces. For example @samp{Public/}. Defaults to @samp{""}. @end deftypevr @@ -19751,7 +19891,7 @@ Defaults to @samp{#f}. @deftypevr {@code{namespace-configuration} parameter} boolean hidden? If namespace is hidden, it's not advertised to clients via NAMESPACE -extension. You'll most likely also want to set @samp{list? #f}. This is mostly +extension. You'll most likely also want to set @samp{list? #f}. This is mostly useful when converting from another server with different namespaces which you want to deprecate but still keep working. For example you can create hidden namespaces with prefixes @samp{~/mail/}, @samp{~%u/mail/} @@ -19760,7 +19900,7 @@ Defaults to @samp{#f}. @end deftypevr @deftypevr {@code{namespace-configuration} parameter} boolean list? -Show the mailboxes under this namespace with the LIST command. This +Show the mailboxes under this namespace with the LIST command. This makes the namespace visible for clients that do not support the NAMESPACE extension. The special @code{children} value lists child mailboxes, but hides the namespace prefix. @@ -20206,7 +20346,7 @@ could allow a user to delete others' mailboxes, or @code{ln -s @deftypevr {@code{dovecot-configuration} parameter} boolean mail-full-filesystem-access? Allow full file system access to clients. There's no access checks -other than what the operating system does for the active UID/GID. It +other than what the operating system does for the active UID/GID@. It works with both maildir and mboxes, allowing you to prefix mailboxes names with e.g.@: @file{/path/} or @file{~user/}. Defaults to @samp{#f}. @@ -20239,14 +20379,14 @@ Defaults to @samp{"optimized"}. @end deftypevr @deftypevr {@code{dovecot-configuration} parameter} boolean mail-nfs-storage? -Mail storage exists in NFS. Set this to yes to make Dovecot flush +Mail storage exists in NFS@. Set this to yes to make Dovecot flush NFS caches whenever needed. If you're using only a single mail server this isn't needed. Defaults to @samp{#f}. @end deftypevr @deftypevr {@code{dovecot-configuration} parameter} boolean mail-nfs-index? -Mail index files also exist in NFS. Setting this to yes requires +Mail index files also exist in NFS@. Setting this to yes requires @samp{mmap-disable? #t} and @samp{fsync-disable? #f}. Defaults to @samp{#f}. @end deftypevr @@ -20353,9 +20493,9 @@ Defaults to @samp{"30 secs"}. @end deftypevr @deftypevr {@code{dovecot-configuration} parameter} boolean mail-save-crlf? -Save mails with CR+LF instead of plain LF. This makes sending those +Save mails with CR+LF instead of plain LF@. This makes sending those mails take less CPU, especially with sendfile() syscall with Linux and -FreeBSD. But it also creates a bit more disk I/O which may just make it +FreeBSD@. But it also creates a bit more disk I/O which may just make it slower. Also note that if other software reads the mboxes/maildirs, they may handle the extra CRs wrong and cause problems. Defaults to @samp{#f}. @@ -20861,9 +21001,9 @@ Data type representing the configuration of exim. Package object of the Exim server. @item @code{config-file} (default: @code{#f}) -File-like object of the Exim configuration file to use. If its value is +File-like object of the Exim configuration file to use. If its value is @code{#f} then use the default configuration file from the package -provided in @code{package}. The resulting configuration file is loaded +provided in @code{package}. The resulting configuration file is loaded after setting the @code{exim_user} and @code{exim_group} configuration variables. @@ -21179,11 +21319,11 @@ specifying how to deliver mail to users on this system. The configuration for a @code{mail-aliases-service-type} service is an association list denoting how to deliver mail that comes to this -system. Each entry is of the form @code{(alias addresses ...)}, with +system. Each entry is of the form @code{(alias addresses ...)}, with @code{alias} specifying the local alias and @code{addresses} specifying where to deliver this user's mail. -The aliases aren't required to exist as users on the local system. In +The aliases aren't required to exist as users on the local system. In the above example, there doesn't need to be a @code{postmaster} entry in the @code{operating-system}'s @code{user-accounts} in order to deliver the @code{postmaster} mail to @code{bob} (which subsequently would @@ -21419,7 +21559,7 @@ A list of verification options (these mostly map to OpenSSL's @end deftypevr @deftypevr {@code{ssl-configuration} parameter} maybe-string-list options -A list of general options relating to SSL/TLS. These map to OpenSSL's +A list of general options relating to SSL/TLS@. These map to OpenSSL's @code{set_options()}. For a full list of options available in LuaSec, see the LuaSec source. @end deftypevr @@ -21484,7 +21624,7 @@ Defaults to @samp{#f}. @deftypevr {@code{prosody-configuration} parameter} string-list s2s-insecure-domains Many servers don't support encryption or have invalid or self-signed certificates. You can list domains here that will not be required to -authenticate using certificates. They will be authenticated using DNS. See +authenticate using certificates. They will be authenticated using DNS@. See @url{https://prosody.im/doc/s2s#security}. Defaults to @samp{()}. @end deftypevr @@ -21848,7 +21988,7 @@ Maximum size in bytes that a user can send in one image message. @item @code{cert-required?} (default: @code{#f}) If it is set to @code{#t} clients that use weak password authentication -will not be accepted. Users must have completed the certificate wizard to join. +will not be accepted. Users must have completed the certificate wizard to join. @item @code{remember-channel?} (default: @code{#f}) Should murmur remember the last channel each user was in when they disconnected @@ -21859,7 +21999,7 @@ Should html be allowed in text messages, user comments, and channel descriptions @item @code{allow-ping?} (default: @code{#f}) Setting to true exposes the current user count, the maximum user count, and -the server's maximum bandwidth per client to unauthenticated users. In the +the server's maximum bandwidth per client to unauthenticated users. In the Mumble client, this information is shown in the Connect dialog. Disabling this setting will prevent public listing of the server. @@ -21933,11 +22073,11 @@ Configuration for public registration of a murmur service. @table @asis @item @code{name} -This is a display name for your server. Not to be confused with the hostname. +This is a display name for your server. Not to be confused with the hostname. @item @code{password} A password to identify your registration. -Subsequent updates will need the same password. Don't lose your password. +Subsequent updates will need the same password. Don't lose your password. @item @code{url} This should be a @code{http://} or @code{https://} link to your web @@ -21984,7 +22124,7 @@ This type has the following parameters: @table @asis @item @code{config-file} (default: @code{(tailon-configuration-file)}) -The configuration file to use for Tailon. This can be set to a +The configuration file to use for Tailon. This can be set to a @dfn{tailon-configuration-file} record value, or any gexp (@pxref{G-Expressions}). @@ -22009,7 +22149,7 @@ This type has the following parameters: @table @asis @item @code{files} (default: @code{(list "/var/log")}) -List of files to display. The list can include strings for a single file +List of files to display. The list can include strings for a single file or directory, or a list, where the first item is the name of a subsection, and the remaining items are the files or directories in that subsection. @@ -22030,24 +22170,24 @@ Allow tailing of not-yet existent files. Number of lines to read initially from each file. @item @code{allowed-commands} (default: @code{(list "tail" "grep" "awk")}) -Commands to allow running. By default, @code{sed} is disabled. +Commands to allow running. By default, @code{sed} is disabled. @item @code{debug?} (default: @code{#f}) Set @code{debug?} to @code{#t} to show debug messages. @item @code{wrap-lines} (default: @code{#t}) -Initial line wrapping state in the web interface. Set to @code{#t} to +Initial line wrapping state in the web interface. Set to @code{#t} to initially wrap lines (the default), or to @code{#f} to initially not wrap lines. @item @code{http-auth} (default: @code{#f}) -HTTP authentication type to use. Set to @code{#f} to disable -authentication (the default). Supported values are @code{"digest"} or +HTTP authentication type to use. Set to @code{#f} to disable +authentication (the default). Supported values are @code{"digest"} or @code{"basic"}. @item @code{users} (default: @code{#f}) If HTTP authentication is enabled (see @code{http-auth}), access will be -restricted to the credentials provided here. To configure users, use a +restricted to the credentials provided here. To configure users, use a list of pairs, where the first element of the pair is the username, and the 2nd element of the pair is the password. @@ -22097,7 +22237,7 @@ Bind the web interface to the specified port. Bind the web interface to the specified address. @item @code{base} (default: @code{"/"}) -Specify the path of the base URL. This can be useful if +Specify the path of the base URL@. This can be useful if @command{darkstat} is accessed via a reverse proxy. @end table @@ -22661,7 +22801,7 @@ Defaults to @samp{"nslcd"}. @deftypevr {@code{nslcd-configuration} parameter} log-option log This option controls the way logging is done via a list containing -SCHEME and LEVEL. The SCHEME argument may either be the symbols +SCHEME and LEVEL@. The SCHEME argument may either be the symbols @samp{none} or @samp{syslog}, or an absolute file name. The LEVEL argument is optional and specifies the log level. The log level may be one of the following symbols: @samp{crit}, @samp{error}, @samp{warning}, @@ -23123,9 +23263,9 @@ The httpd package to use. The pid file used by the shepherd-service. @item @code{config} (default: @code{(httpd-config-file)}) -The configuration file to use with the httpd service. The default value +The configuration file to use with the httpd service. The default value is a @code{httpd-config-file} record, but this can also be a different -G-expression that generates a file, for example a @code{plain-file}. A +G-expression that generates a file, for example a @code{plain-file}. A file outside of the store can also be specified through a string. @end table @@ -23139,7 +23279,7 @@ This data type represents a module for the httpd service. The name of the module. @item @code{file} -The file for the module. This can be relative to the httpd package being +The file for the module. This can be relative to the httpd package being used, the absolute location of a file, or a G-expression for a file within the store, for example @code{(file-append mod-wsgi "/modules/mod_wsgi.so")}. @@ -23156,7 +23296,7 @@ This data type represents a configuration file for the httpd service. @table @asis @item @code{modules} (default: @code{%default-httpd-modules}) -The modules to load. Additional modules can be added here, or loaded by +The modules to load. Additional modules can be added here, or loaded by additional configuration. For example, in order to handle requests for PHP files, you can use Apache’s @@ -23187,7 +23327,7 @@ For example, in order to handle requests for PHP files, you can use Apache’s @item @code{server-root} (default: @code{httpd}) The @code{ServerRoot} in the configuration file, defaults to the httpd -package. Directives including @code{Include} and @code{LoadModule} are +package. Directives including @code{Include} and @code{LoadModule} are taken as relative to the server root. @item @code{server-name} (default: @code{#f}) @@ -23196,7 +23336,7 @@ request scheme, hostname and port that the server uses to identify itself. This doesn't need to be set in the server config, and can be specified -in virtual hosts. The default is @code{#f} to not specify a +in virtual hosts. The default is @code{#f} to not specify a @code{ServerName}. @item @code{document-root} (default: @code{"/srv/http"}) @@ -23204,12 +23344,12 @@ The @code{DocumentRoot} from which files will be served. @item @code{listen} (default: @code{'("80")}) The list of values for the @code{Listen} directives in the config -file. The value should be a list of strings, when each string can +file. The value should be a list of strings, when each string can specify the port number to listen on, and optionally the IP address and protocol to use. @item @code{pid-file} (default: @code{"/var/run/httpd"}) -The @code{PidFile} to use. This should match the @code{pid-file} set in +The @code{PidFile} to use. This should match the @code{pid-file} set in the @code{httpd-configuration} so that the Shepherd service is configured correctly. @@ -23297,7 +23437,7 @@ configuration. In our case, startup error messages can be found in with the @var{log-directory} configuration option. @deffn {Data Type} nginx-configuration -This data type represents the configuration for NGinx. Some +This data type represents the configuration for NGinx. Some configuration can be done through this and the other provided record types, or alternatively, a config file can be provided. @@ -23511,7 +23651,7 @@ URI which this location block matches. @anchor{nginx-location-configuration body} @item @code{body} -Body of the location block, specified as a list of strings. This can contain +Body of the location block, specified as a list of strings. This can contain many configuration directives. For example, to pass requests to a upstream server group defined using an @code{nginx-upstream-configuration} block, @@ -23677,8 +23817,8 @@ The domain to use for Patchwork, this is used in the HTTPD service virtual host. @item @code{settings-module} -The settings module to use for Patchwork. As a Django application, Patchwork -is configured with a Python module containing the settings. This can either be +The settings module to use for Patchwork. As a Django application, Patchwork +is configured with a Python module containing the settings. This can either be an instance of the @code{<patchwork-settings-module>} record, any other record that represents the settings in the store, or a directory outside of the store. @@ -23688,7 +23828,7 @@ The path under which the HTTPD service should serve the static files. @item @code{getmail-retriever-config} The getmail-retriever-configuration record value to use with -Patchwork. Getmail will be configured with this value, the messages will be +Patchwork. Getmail will be configured with this value, the messages will be delivered to Patchwork. @end table @@ -23715,7 +23855,7 @@ value by the patchwork-setup shepherd service. This setting relates to Django. @item @code{allowed-hosts} -A list of valid hosts for this Patchwork service. This should at least include +A list of valid hosts for this Patchwork service. This should at least include the domain specified in the @code{<patchwork-configuration>} record. This is a Django setting. @@ -23726,7 +23866,7 @@ The email address from which Patchwork should send email by default. This is a Patchwork setting. @item @code{static-url} (default: @code{#f}) -The URL to use when serving static assets. It can be part of a URL, or a full +The URL to use when serving static assets. It can be part of a URL, or a full URL, but must end in a @code{/}. If the default value is used, the @code{static-path} value from the @@ -24201,7 +24341,7 @@ first securely generates a key on the server. It then makes a request to the Let's Encrypt certificate authority (CA) to sign the key. The CA checks that the request originates from the host in question by using a challenge-response protocol, requiring the server to provide its -response over HTTP. If that protocol completes successfully, the CA +response over HTTP@. If that protocol completes successfully, the CA signs the key, resulting in a certificate. That certificate is valid for a limited period of time, and therefore to continue to provide TLS services, the server needs to periodically ask the CA to renew its @@ -24426,7 +24566,7 @@ This type has the following parameters: @table @asis @item @code{id} (default: @code{""}) -An identifier for other configuration fields to refer to this key. IDs must +An identifier for other configuration fields to refer to this key. IDs must be unique and must not be empty. @item @code{algorithm} (default: @code{#f}) @@ -24446,7 +24586,7 @@ This type has the following parameters: @table @asis @item @code{id} (default: @code{""}) -An identifier for other configuration fields to refer to this key. IDs must be +An identifier for other configuration fields to refer to this key. IDs must be unique and must not be empty. @item @code{address} (default: @code{'()}) @@ -24460,7 +24600,7 @@ must match a key ID defined in a @code{knot-key-configuration}. No key means that a key is not require to match that ACL. @item @code{action} (default: @code{'()}) -An ordered list of actions that are permitted or forbidden by this ACL. Possible +An ordered list of actions that are permitted or forbidden by this ACL@. Possible values are lists of zero or more elements from @code{'transfer}, @code{'notify} and @code{'update}. @@ -24561,7 +24701,7 @@ This type has the following parameters: @table @asis @item @code{id} (default: @code{""}) -An identifier for other configuration fields to refer to this remote. IDs must +An identifier for other configuration fields to refer to this remote. IDs must be unique and must not be empty. @item @code{address} (default: @code{'()}) @@ -24571,7 +24711,7 @@ An optional port can be given with the @@ separator. For instance: @item @code{via} (default: @code{'()}) An ordered list of source IP addresses. An empty list will have Knot choose -an appropriate source IP. An optional port can be given with the @@ separator. +an appropriate source IP@. An optional port can be given with the @@ separator. The default is to choose at random. @item @code{key} (default: @code{#f}) @@ -24640,11 +24780,11 @@ When @code{#t}, use the Single-Type Signing Scheme. An algorithm of signing keys and issued signatures. @item @code{ksk-size} (default: @code{256}) -The length of the KSK. Note that this value is correct for the default +The length of the KSK@. Note that this value is correct for the default algorithm, but would be unsecure for other algorithms. @item @code{zsk-size} (default: @code{256}) -The length of the ZSK. Note that this value is correct for the default +The length of the ZSK@. Note that this value is correct for the default algorithm, but would be unsecure for other algorithms. @item @code{dnskey-ttl} (default: @code{'default}) @@ -24970,9 +25110,9 @@ If set, fixes the dynamical ports (one per client) to the given range @item @code{tftp-root} (default: @code{/var/empty,lo}) Look for files to transfer using TFTP relative to the given directory. -When this is set, TFTP paths which include ".." are rejected, to stop clients -getting outside the specified root. Absolute paths (starting with /) are -allowed, but they must be within the tftp-root. If the optional interface +When this is set, TFTP paths which include @samp{..} are rejected, to stop clients +getting outside the specified root. Absolute paths (starting with @samp{/}) are +allowed, but they must be within the TFTP-root. If the optional interface argument is given, the directory is only used for TFTP requests via that interface. @@ -24982,13 +25122,14 @@ on the end of the TFTP-root. Only valid if a TFTP root is set and the directory exists. Defaults to adding IP address (in standard dotted-quad format). -For instance, if --tftp-root is "/tftp" and client 1.2.3.4 requests file -"myfile" then the effective path will be "/tftp/1.2.3.4/myfile" if -/tftp/1.2.3.4 exists or /tftp/myfile otherwise. When "=mac" is specified -it will append the MAC address instead, using lowercase zero padded digits -separated by dashes, e.g.: 01-02-03-04-aa-bb Note that resolving MAC -addresses is only possible if the client is in the local network or obtained -a DHCP lease from dnsmasq. +For instance, if @option{--tftp-root} is @samp{/tftp} and client +@samp{1.2.3.4} requests file @file{myfile} then the effective path will +be @file{/tftp/1.2.3.4/myfile} if @file{/tftp/1.2.3.4} exists or +@file{/tftp/myfile} otherwise. When @samp{=mac} is specified it will +append the MAC address instead, using lowercase zero padded digits +separated by dashes, e.g.: @samp{01-02-03-04-aa-bb}. Note that +resolving MAC addresses is only possible if the client is in the local +network or obtained a DHCP lease from dnsmasq. @end table @end deftp @@ -25109,7 +25250,7 @@ Defaults to @samp{()}. The @code{(gnu services vpn)} module provides services related to @dfn{virtual private networks} (VPNs). It provides a @emph{client} service for your machine to connect to a VPN, and a @emph{server} service for your machine -to host a VPN. Both services use @uref{https://openvpn.net/, OpenVPN}. +to host a VPN@. Both services use @uref{https://openvpn.net/, OpenVPN}. @deffn {Scheme Procedure} openvpn-client-service @ [#:config (openvpn-client-configuration)] @@ -25754,11 +25895,11 @@ Location of the log file. Location of the log file used by the web interface. @item @code{queries-log-file} (default: @code{#f}) -Location of the SQL queries log file. By default, SQL queries logging is +Location of the SQL queries log file. By default, SQL queries logging is disabled. @item @code{web-queries-log-file} (default: @code{#f}) -Location of the web SQL queries log file. By default, web SQL queries +Location of the web SQL queries log file. By default, web SQL queries logging is disabled. @item @code{cache-directory} (default: @code{"/var/cache/cuirass"}) @@ -26031,7 +26172,7 @@ Defaults to @samp{disabled}. @end deftypevr @deftypevr {@code{tlp-configuration} parameter} string energy-perf-policy-on-ac -Set CPU performance versus energy saving policy on AC. Alternatives are +Set CPU performance versus energy saving policy on AC@. Alternatives are performance, normal, powersave. Defaults to @samp{"performance"}. @@ -26438,7 +26579,7 @@ is only useful for output plugins that can receive tags, for example the @item @code{always-on?} (default: @code{#f}) If set to @code{#t}, then MPD attempts to keep this audio output always -open. This may be useful for streaming servers, when you don’t want to +open. This may be useful for streaming servers, when you don’t want to disconnect all listeners even when playback is accidentally stopped. @item @code{mixer-type} @@ -26482,7 +26623,7 @@ services. @subsubheading Libvirt daemon @code{libvirtd} is the server side daemon component of the libvirt -virtualization management system. This daemon runs on host servers +virtualization management system. This daemon runs on host servers and performs required management tasks for virtualized guests. @deffn {Scheme Variable} libvirt-service-type @@ -26964,7 +27105,7 @@ Defaults to @samp{#f}. @end deftypevr @deftypevr {@code{libvirt-configuration} parameter} optional-string host-uuid -Host UUID. UUID must not have all digits be the same. +Host UUID@. UUID must not have all digits be the same. Defaults to @samp{""}. @@ -27047,9 +27188,9 @@ The virtlogd service is a server side daemon component of libvirt that is used to manage logs from virtual machine consoles. This daemon is not used directly by libvirt client applications, rather it -is called on their behalf by @code{libvirtd}. By maintaining the logs in a +is called on their behalf by @code{libvirtd}. By maintaining the logs in a standalone daemon, the main @code{libvirtd} daemon can be restarted without -risk of losing logs. The @code{virtlogd} daemon has the ability to re-exec() +risk of losing logs. The @code{virtlogd} daemon has the ability to re-exec() itself upon receiving @code{SIGUSR1}, to allow live upgrades without downtime. @deffn {Scheme Variable} virtlog-service-type @@ -27221,7 +27362,7 @@ This is the configuration for the @code{qemu-binfmt} service. The list of emulated QEMU platforms. Each item must be a @dfn{platform object} as returned by @code{lookup-qemu-platforms} (see below). -@item @code{guix-support?} (default: @code{#f}) +@item @code{guix-support?} (default: @code{#t}) When it is true, QEMU and all its dependencies are added to the build environment of @command{guix-daemon} (@pxref{Invoking guix-daemon, @option{--chroot-directory} option}). This allows the @code{binfmt_misc} @@ -27246,10 +27387,14 @@ guix build -s armhf-linux inkscape @noindent and it will build Inkscape for ARMv7 @emph{as if it were a native -build}, transparently using QEMU to emulate the ARMv7 CPU. Pretty handy +build}, transparently using QEMU to emulate the ARMv7 CPU@. Pretty handy if you'd like to test a package build for an architecture you don't have access to! +When @code{guix-support?} is set to @code{#f}, programs for other +architectures can still be executed transparently, but invoking commands +like @command{guix build -s armhf-linux @dots{}} will fail. + @item @code{qemu} (default: @code{qemu}) The QEMU package to use. @end table @@ -28236,7 +28381,7 @@ serve the default @file{/srv/git} over HTTPS might be: This example assumes that you are using Let's Encrypt to get your TLS certificate. @xref{Certificate Services}. The default @code{certbot} service will redirect all HTTP traffic on @code{git.my-host.org} to -HTTPS. You will also need to add an @code{fcgiwrap} proxy to your +HTTPS@. You will also need to add an @code{fcgiwrap} proxy to your system services. @xref{Web Services}. @end deffn @@ -29269,12 +29414,12 @@ This controls the permissions Gitolite sets on the repositories and their contents. A value like @code{#o0027} will give read access to the group used by Gitolite -(by default: @code{git}). This is necessary when using Gitolite with software +(by default: @code{git}). This is necessary when using Gitolite with software like cgit or gitweb. @item @code{git-config-keys} (default: @code{""}) -Gitolite allows you to set git config values using the @samp{config} keyword. This -setting allows control over the config keys to accept. +Gitolite allows you to set git config values using the @samp{config} +keyword. This setting allows control over the config keys to accept. @item @code{roles} (default: @code{'(("READERS" . 1) ("WRITERS" . ))}) Set the role names allowed to be used by users running the perms command. @@ -29418,8 +29563,8 @@ been thorougly tested. @end quotation The Guix Build Coordinator consists of one @dfn{coordinator}, and one or -more connected @dfn{agent} processes. The coordinator process handles -clients submitting builds, and allocating builds to agents. The agent +more connected @dfn{agent} processes. The coordinator process handles +clients submitting builds, and allocating builds to agents. The agent processes talk to a build daemon to actually perform the builds, then send the results back to the coordinator. @@ -29860,7 +30005,7 @@ An association list specifies kernel parameters and their values. The @code{(gnu services security-token)} module provides the following service to run @command{pcscd}, the PC/SC Smart Card Daemon. @command{pcscd} is the -daemon program for pcsc-lite and the MuscleCard framework. It is a resource +daemon program for pcsc-lite and the MuscleCard framework. It is a resource manager that coordinates communications with smart card readers, smart cards and cryptographic tokens that are connected to the system. @@ -29881,7 +30026,7 @@ The data type representing the configuration of @command{pcscd}. @item @code{pcsc-lite} (default: @code{pcsc-lite}) The pcsc-lite package that provides pcscd. @item @code{usb-drivers} (default: @code{(list ccid)}) -List of packages that provide USB drivers to pcscd. Drivers are expected to be +List of packages that provide USB drivers to pcscd. Drivers are expected to be under @file{pcsc/drivers} in the store directory of the package. @end table @end deftp @@ -30489,7 +30634,7 @@ system databases. @itemx rpc @itemx services @itemx shadow -The system databases handled by the NSS. Each of these fields must be a +The system databases handled by the NSS@. Each of these fields must be a list of @code{<name-service>} objects (see below). @end table @end deftp @@ -30579,7 +30724,7 @@ volatile root file system. The @code{base-initrd} procedure is built from @code{raw-initrd} procedure. Unlike @code{base-initrd}, @code{raw-initrd} doesn't do anything high-level, such as trying to guess which kernel modules and packages should be included -to the initrd. An example use of @code{raw-initrd} is when a user has +to the initrd. An example use of @code{raw-initrd} is when a user has a custom Linux kernel configuration and default kernel modules included by @code{base-initrd} are not available. @@ -30640,7 +30785,8 @@ the root file system specified on the kernel command line via @option{--root}. @var{linux-modules} is a list of kernel modules to be loaded at boot time. @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted (@pxref{Mapped Devices}). -@var{helper-packages} is a list of packages to be copied in the initrd. It may +@var{helper-packages} is a list of packages to be copied in the initrd. + It may include @code{e2fsck/static} or other packages needed by the initrd to check the root file system. @@ -30722,7 +30868,7 @@ The type of a bootloader configuration declaration. @cindex EFI, bootloader @cindex UEFI, bootloader @cindex BIOS, bootloader -The bootloader to use, as a @code{bootloader} object. For now +The bootloader to use, as a @code{bootloader} object. For now @code{grub-bootloader}, @code{grub-efi-bootloader}, @code{grub-efi-netboot-bootloader}, @code{extlinux-bootloader} and @code{u-boot-bootloader} are supported. @@ -30746,7 +30892,7 @@ in ``legacy'' BIOS mode. @vindex grub-efi-netboot-bootloader @code{grub-efi-netboot-bootloader} allows you to boot your system over network -through TFTP. In combination with an NFS root file system this allows you to +through TFTP@. In combination with an NFS root file system this allows you to build a diskless Guix system. The installation of the @code{grub-efi-netboot-bootloader} generates the content @@ -30783,7 +30929,7 @@ TFTP, for example by copying them into the TFTP root directory at @code{target}. It is important to note that symlinks pointing outside the TFTP root directory may need to be allowed in the configuration of your TFTP server. Further the -store link exposes the whole store through TFTP. Both points need to be +store link exposes the whole store through TFTP@. Both points need to be considered carefully for security aspects. Beside the @code{grub-efi-netboot-bootloader}, the already mentioned TFTP and @@ -31275,7 +31421,7 @@ size of the image. @cindex System images, creation in various formats @cindex Creating system images in various formats @item vm-image -@itemx disk-image +@itemx image @itemx docker-image Return a virtual machine, disk image, or Docker image of the operating system declared in @var{file} that stands alone. By default, @@ -31285,35 +31431,35 @@ a value. Docker images are built to contain exactly what they need, so the @option{--image-size} option is ignored in the case of @code{docker-image}. -@cindex disk-image, creating disk images -The @code{disk-image} command can produce various image types. The +@cindex image, creating disk images +The @code{image} command can produce various image types. The image type can be selected using the @option{--image-type} option. It -defaults to @code{raw}. When its value is @code{iso9660}, the +defaults to @code{efi-raw}. When its value is @code{iso9660}, the @option{--label} option can be used to specify a volume ID with -@code{disk-image}. By default, the root file system of a disk image is +@code{image}. By default, the root file system of a disk image is mounted non-volatile; the @option{--volatile} option can be provided to -make it volatile instead. When using @code{disk-image}, the bootloader +make it volatile instead. When using @code{image}, the bootloader installed on the generated image is taken from the provided @code{operating-system} definition. The following example demonstrates how to generate an image that uses the @code{grub-efi-bootloader} bootloader and boot it with QEMU: @example -image=$(guix system disk-image --image-type=qcow2 \ - gnu/system/examples/lightweight-desktop.tmpl) +image=$(guix system image --image-type=qcow2 \ + gnu/system/examples/lightweight-desktop.tmpl) cp $image /tmp/my-image.qcow2 chmod +w /tmp/my-image.qcow2 qemu-system-x86_64 -enable-kvm -hda /tmp/my-image.qcow2 -m 1000 \ -bios $(guix build ovmf)/share/firmware/ovmf_x64.bin @end example -When using the @code{raw} image type, a raw disk image is produced; it -can be copied as is to a USB stick, for instance. Assuming +When using the @code{efi-raw} image type, a raw disk image is produced; +it can be copied as is to a USB stick, for instance. Assuming @code{/dev/sdc} is the device corresponding to a USB stick, one can copy the image to it using the following command: @example -# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc status=progress +# dd if=$(guix system image my-os.scm) of=/dev/sdc status=progress @end example The @code{--list-image-types} command lists all the available image @@ -31433,10 +31579,10 @@ of the image. @item --image-type=@var{type} @itemx -t @var{type} -For the @code{disk-image} action, create an image with given @var{type}. +For the @code{image} action, create an image with given @var{type}. -When this option is omitted, @command{guix system} uses the @code{raw} -image type. +When this option is omitted, @command{guix system} uses the +@code{efi-raw} image type. @cindex ISO-9660 format @cindex CD image format @@ -31445,7 +31591,7 @@ image type. for burning on CDs and DVDs. @item --image-size=@var{size} -For the @code{vm-image} and @code{disk-image} actions, create an image +For the @code{vm-image} and @code{image} actions, create an image of the given @var{size}. @var{size} may be a number of bytes, or it may include a unit as a suffix (@pxref{Block size, size specifications,, coreutils, GNU Coreutils}). @@ -31769,9 +31915,9 @@ machine with an @code{environment} of @code{digital-ocean-environment-type}. @table @asis @item @code{ssh-key} The path to the SSH private key to use to authenticate with the remote -host. In the future, this field may not exist. +host. In the future, this field may not exist. @item @code{tags} -A list of string ``tags'' that uniquely identify the machine. Must be given +A list of string ``tags'' that uniquely identify the machine. Must be given such that no two machines in the deployment have the same set of tags. @item @code{region} A Digital Ocean region slug, such as @code{"nyc3"}. @@ -31900,7 +32046,7 @@ connect pass the @command{-spice port=5930,disable-ticketing} flag to @command{qemu}. See previous section for further information on how to do this. Spice also allows you to do some nice stuff like share your clipboard with your -VM. To enable that you'll also have to pass the following flags to @command{qemu}: +VM@. To enable that you'll also have to pass the following flags to @command{qemu}: @example -device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5 @@ -32652,7 +32798,7 @@ missing. The problem with debugging information is that is takes up a fair amount of disk space. For example, debugging information for the GNU C Library -weighs in at more than 60 MiB. Thus, as a user, keeping all the +weighs in at more than 60 MiB@. Thus, as a user, keeping all the debugging info of all the installed programs is usually not an option. Yet, space savings should not come at the cost of an impediment to debugging---especially in the GNU system, which should make it easier diff --git a/etc/news.scm b/etc/news.scm index 0df018af0b..044561cef9 100644 --- a/etc/news.scm +++ b/etc/news.scm @@ -1,11 +1,11 @@ ;; GNU Guix news, for use by 'guix pull'. ;; -;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;; Copyright © 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;; Copyright © 2019, 2020 Miguel Ángel Arruga Vivas <rosen644835@gmail.com> ;; Copyright © 2019, 2020 Konrad Hinsen <konrad.hinsen@fastmail.net> ;; Copyright © 2019, 2020 Julien Lepiller <julien@lepiller.eu> -;; Copyright © 2019, 2020 Florian Pelz <pelzflorian@pelzflorian.de> +;; Copyright © 2019, 2020, 2021 Florian Pelz <pelzflorian@pelzflorian.de> ;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> @@ -18,6 +18,104 @@ (channel-news (version 0) + (entry (commit "9ab817b2a4601b4a6755983590ed7d93ebdc8d09") + (title (en "New @option{--with-latest} package transformation option") + (de "Neue Paketumwandlungsoption @option{--with-latest}") + (fr "Nouvelle option de transformation @option{--with-latest}")) + (body + (en "The new @option{--with-latest} package transformation option +gets the latest release of a package, as would be identified by @command{guix +refresh}, and uses it instead of the currently-packaged version. For example, +to install the latest release of GNOME Weather linked against the latest +version of libgweather, run: + +@example +guix install gnome-weather \\ + --with-latest=gnome-weather --with-latest=libgweather +@end example + +Run @command{info \"(guix) Package Transformation Options\"} for more info.") + (de "Mit der neuen Paketumwandlungsoption @option{--with-latest} wird +die neueste Veröffentlichung für ein Paket verwendet. Diese wird wie bei +@command{guix refresh} bestimmt und anstelle der zurzeit im Paket festgelegten +Version verwendet. Um zum Beispiel die neuste Veröffentlichung von GNOME +Weather gebunden an die neuste Version von libgweather zu installieren, führen +Sie dies aus: + +@example +guix install gnome-weather \\ + --with-latest=gnome-weather --with-latest=libgweather +@end example + +Führen Sie für mehr Informationen @command{info \"(guix.de) +Paketumwandlungsoptionen\"} aus.") + (fr "La nouvelle option de transformation de paquets +@option{--with-latest} récupère la dernière version d'un logiciel telle +qu'elle serait trouvée par @command{guix refresh} et l'utilise à la place la +version actuellement fournie par le paquet. Par exemple, pour installer la +dernière version de GNOME Weather, elle-même compilée avec la dernière version +de libgweather, on lancera : + +@example +guix install gnome-weather \\ + --with-latest=gnome-weather --with-latest=libgweather +@end example + +Voir @command{info \"(guix.fr) Options de transformation de paquets\"} pour +plus de détails."))) + + (entry (commit "a879e35116043d5daf3d9d175b697d10b9177fd5") + (title (en "Substitutes can now be compressed with zstd") + (de "Substitute können nun mit zstd komprimiert werden") + (fr "Les substituts peuvent maintenant être compressés avec zstd")) + (body + (en "The @command{guix publish} command now supports substitute +compression with zstd and @command{guix-daemon} can now fetch and decompress +them. + +The advantage of zstd over the other options is its high compression and +decompression throughput, with good compression ratios (not as good as lzip, +but slightly better than gzip). Its high decompression throughput makes it a +good choice in situations where substitute downloads would otherwise be +CPU-bound, typically when having a high-speed connection to the substitute +server. Run @command{info \"(guix) Invoking guix publish\"} for more info. + +To be able to fetch zstd-compressed substitutes (if the substitute servers you +chose provide them), you need to upgrade your daemon. Run @command{info +\"(guix) Upgrading Guix\"} to learn how to do it.") + (de "Mit dem Befehl @command{guix publish} können Sie jetzt auch +Substitute mit zstd komprimieren und @command{guix-daemon} kann sie laden und +dekomprimieren. + +zstd bietet gegenüber den anderen Optionen einen hohen Durchsatz bei +Kompression und Dekompression mit guten Kompressionsverhältnissen (nicht so +gut wie lzip, aber etwas besser als gzip). Wegen des hohen Durchsatzes bei +der Dekompression ist zstd eine gute Wahl, wenn beim Herunterladen von +Substituten ansonsten der Engpass bei der Prozessorleistung läge, etwa weil +eine schnelle Netzwerkverbindung zum Substitutserver besteht. Führen Sie für +mehr Informationen @command{info \"(guix.de) Aufruf von guix publish\"} aus. + +Um zstd-komprimierte Substitute benutzen zu können (wenn der Substitutserver +sie anbietet), müssen Sie Ihren Daemon aktualisieren. Führen Sie +@command{info \"(guix.de) Aktualisieren von Guix\"} aus, um zu erfahren, wie +Sie ihn aktualisieren.") + (fr "La commande @command{guix publish} peut maintenant compresser +les substituts avec zstd et @command{guix-daemon} est capable de les récupérer +et de les décompresser. + +L'avantage de zstd par rapport aux autres méthodes est son haut débit en +compression et décompression, avec un taux de compression correct (pas aussi +bon que lzip, mais légèrement meilleur que gzip). Sa vitesse de décompression +en fait un bon choix dans les situations où le temps de téléchargement des +substituts se retrouve sinon limité par le temps de calcul comme c'est le cas +lorsqu'on bénéficie d'une connexion rapide au serveur de substitut. Lancer +@command{info \"(guix.fr) Invoquer guix publish\"} pour plus d'informations. + +Pour pouvoir télécharger des substituts compressés avec zstd (si les serveurs +de substituts choisis les fournissent), il faudra d'abord mettre à jour le +démon. Lancer @command{info \"(guix.fr) Mettre à niveau Guix\"} pour voir +comment faire."))) + (entry (commit "e38d90d497e19e00263fa28961c688a433154386") (title (en "New @option{--with-patch} package transformation option") (de "Neue Paketumwandlungsoption @option{--with-patch}") diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm index 29c81ae641..13ee695909 100644 --- a/gnu/bootloader/grub.scm +++ b/gnu/bootloader/grub.scm @@ -168,15 +168,14 @@ STORE-DEVICE designates the device holding the store, and STORE-MOUNT-POINT is its mount point; these are used to determine where the background image and fonts must be searched for. STORE-DIRECTORY-PREFIX is a directory prefix to prepend to any store file name." - (define (setup-gfxterm config font-file) + (define (setup-gfxterm config) (if (memq 'gfxterm (bootloader-configuration-terminal-outputs config)) #~(format #f " -if loadfont ~a; then +if loadfont unicode; then set gfxmode=~a insmod all_video insmod gfxterm fi~%" - #+font-file #$(string-join (grub-theme-gfxmode (bootloader-theme config)) ";")) @@ -188,13 +187,6 @@ fi~%" (string-append (symbol->string (assoc-ref colors 'fg)) "/" (symbol->string (assoc-ref colors 'bg))))) - (define font-file - (let* ((bootloader (bootloader-configuration-bootloader config)) - (grub (bootloader-package bootloader))) - (normalize-file (file-append grub "/share/grub/unicode.pf2") - store-mount-point - store-directory-prefix))) - (define image (normalize-file (grub-background-image config) store-mount-point @@ -216,8 +208,8 @@ else set menu_color_normal=cyan/blue set menu_color_highlight=white/blue fi~%" - #$(grub-root-search store-device font-file) - #$(setup-gfxterm config font-file) + #$(grub-root-search store-device image) + #$(setup-gfxterm config) #$(grub-setup-io config) #$image @@ -545,9 +537,13 @@ fi~%")))) (invoke/quiet grub "--no-floppy" "--target=i386-pc" "--boot-directory" install-dir device)) - ;; When creating a disk-image, only install GRUB modules. - (copy-recursively (string-append bootloader "/lib/") - install-dir))))) + ;; When creating a disk-image, only install a font and GRUB modules. + (let* ((fonts (string-append install-dir "/grub/fonts"))) + (mkdir-p fonts) + (copy-file (string-append bootloader "/share/grub/unicode.pf2") + (string-append fonts "/unicode.pf2")) + (copy-recursively (string-append bootloader "/lib/") + install-dir)))))) (define install-grub-disk-image #~(lambda (bootloader root-index image) diff --git a/gnu/installer.scm b/gnu/installer.scm index 7863edbb67..d2be4b34f9 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -187,7 +187,7 @@ selected keymap." (lambda (models layouts) ((installer-keymap-page current-installer) layouts '#$context))))) - (#$apply-keymap result) + (and result (#$apply-keymap result)) result))) (define (installer-steps) diff --git a/gnu/installer/newt/keymap.scm b/gnu/installer/newt/keymap.scm index 1b3af2f158..92f7f46f34 100644 --- a/gnu/installer/newt/keymap.scm +++ b/gnu/installer/newt/keymap.scm @@ -56,7 +56,7 @@ different layout at any time from the parameters menu."))) (else (G_ "Exit"))) #:button-callback-procedure (case context - ((param) (const #t)) + ((param) (const #f)) (else (lambda _ (raise @@ -183,7 +183,9 @@ options." (compute (lambda (result _) (let* ((layout (result-step result 'layout)) - (variants (x11-keymap-layout-variants layout))) + (variants (if layout + (x11-keymap-layout-variants layout) + '()))) ;; Return #f if the layout does not have any variant. (and (not (null? variants)) (run-variant-page @@ -196,16 +198,19 @@ options." (gettext (x11-keymap-layout-description layout) "xkeyboard-config"))))))))))) - (define (format-result result) - (let ((layout (x11-keymap-layout-name - (result-step result 'layout))) - (variant (and=> (result-step result 'variant) + (define (format-result layout variant) + (let ((layout (x11-keymap-layout-name layout)) + (variant (and=> variant (lambda (variant) (gettext (x11-keymap-variant-name variant) "xkeyboard-config"))))) (toggleable-latin-layout layout variant))) - (format-result - (run-installer-steps #:steps keymap-steps))) + + (let* ((result (run-installer-steps #:steps keymap-steps)) + (layout (result-step result 'layout)) + (variant (result-step result 'variant))) + (and layout + (format-result layout variant)))) (define (keyboard-layout->configuration keymap) "Return the operating system configuration snippet to install KEYMAP." diff --git a/gnu/local.mk b/gnu/local.mk index ba95aeca64..f71d75135d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -10,14 +10,14 @@ # Copyright © 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> # Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com> # Copyright © 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com> -# Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> +# Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> # Copyright © 2016, 2017, 2018, 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> # Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> # Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org> # Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com> # Copyright © 2017, 2018, 2019 Gábor Boskovits <boskovits@gmail.com> # Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net> -# Copyright © 2018, 2019, 2020 Oleg Pykhalov <go.wigust@gmail.com> +# Copyright © 2018, 2019, 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com> # Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com> # Copyright © 2018, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> # Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net> @@ -630,6 +630,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/sddm.scm \ %D%/services/spice.scm \ %D%/services/ssh.scm \ + %D%/services/syncthing.scm \ %D%/services/sysctl.scm \ %D%/services/telephony.scm \ %D%/services/version-control.scm \ @@ -997,6 +998,7 @@ dist_patch_DATA = \ %D%/packages/patches/fpc-reproducibility.patch \ %D%/packages/patches/fplll-std-fenv.patch \ %D%/packages/patches/freedink-engine-fix-sdl-hints.patch \ + %D%/packages/patches/freebayes-devendor-deps.patch \ %D%/packages/patches/freeimage-unbundle.patch \ %D%/packages/patches/fuse-overlapping-headers.patch \ %D%/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch \ @@ -1128,6 +1130,7 @@ dist_patch_DATA = \ %D%/packages/patches/gspell-dash-test.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-2.2-skip-oom-test.patch \ + %D%/packages/patches/guile-2.2-skip-so-test.patch \ %D%/packages/patches/guile-default-utf8.patch \ %D%/packages/patches/guile-2.2-default-utf8.patch \ %D%/packages/patches/guile-relocatable.patch \ @@ -1178,12 +1181,14 @@ dist_patch_DATA = \ %D%/packages/patches/icu4c-CVE-2020-10531.patch \ %D%/packages/patches/id3lib-CVE-2007-4460.patch \ %D%/packages/patches/id3lib-UTF16-writing-bug.patch \ + %D%/packages/patches/idris-disable-test.patch \ %D%/packages/patches/ilmbase-fix-tests.patch \ %D%/packages/patches/inetutils-hurd.patch \ %D%/packages/patches/inkscape-poppler-0.76.patch \ %D%/packages/patches/intel-xed-fix-nondeterminism.patch \ %D%/packages/patches/intltool-perl-compatibility.patch \ %D%/packages/patches/iputils-libcap-compat.patch \ + %D%/packages/patches/ipxe-reproducible-geniso.patch \ %D%/packages/patches/irrlicht-use-system-libs.patch \ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \ %D%/packages/patches/json-c-CVE-2020-12762.patch \ @@ -1383,6 +1388,7 @@ dist_patch_DATA = \ %D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch \ %D%/packages/patches/musl-cross-locale.patch \ %D%/packages/patches/mutt-store-references.patch \ + %D%/packages/patches/mutt-CVE-2021-3181.patch \ %D%/packages/patches/m4-gnulib-libio.patch \ %D%/packages/patches/ncompress-fix-softlinks.patch \ %D%/packages/patches/netcdf-date-time.patch \ @@ -1491,7 +1497,6 @@ dist_patch_DATA = \ %D%/packages/patches/plib-CVE-2011-4620.patch \ %D%/packages/patches/plib-CVE-2012-4552.patch \ %D%/packages/patches/plotutils-spline-test.patch \ - %D%/packages/patches/podofo-cmake-3.12.patch \ %D%/packages/patches/portaudio-audacity-compat.patch \ %D%/packages/patches/portmidi-modular-build.patch \ %D%/packages/patches/postgresql-disable-resolve_symlinks.patch \ @@ -1580,7 +1585,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.4-unvendor-libuv.patch \ + %D%/packages/patches/r-httpuv-1.5.5-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 \ @@ -1667,8 +1672,10 @@ dist_patch_DATA = \ %D%/packages/patches/thefuck-test-environ.patch \ %D%/packages/patches/tidy-CVE-2015-5522+5523.patch \ %D%/packages/patches/tinyxml-use-stl.patch \ + %D%/packages/patches/tipp10-disable-downloader.patch \ %D%/packages/patches/tipp10-fix-compiling.patch \ %D%/packages/patches/tipp10-remove-license-code.patch \ + %D%/packages/patches/tipp10-qt5.patch \ %D%/packages/patches/tk-find-library.patch \ %D%/packages/patches/transcode-ffmpeg.patch \ %D%/packages/patches/transmission-honor-localedir.patch \ @@ -1703,7 +1710,6 @@ dist_patch_DATA = \ %D%/packages/patches/vboot-utils-fix-format-load-address.patch \ %D%/packages/patches/vboot-utils-fix-tests-show-contents.patch \ %D%/packages/patches/vboot-utils-skip-test-workbuf.patch \ - %D%/packages/patches/vcflib-use-shared-libraries.patch \ %D%/packages/patches/vlc-qt-5.15.patch \ %D%/packages/patches/vigra-python-compat.patch \ %D%/packages/patches/vinagre-newer-freerdp.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 375073363f..87b0f36cc1 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -267,7 +267,8 @@ and provides a \"top-like\" mode (monitoring).") "0x9zr0x3xvk4qkb6jnda451d5iyrl06cz1bjzjsm0lxvjj3fabyk")))) (build-system gnu-build-system) (arguments - '(#:configure-flags '("--localstatedir=/var"))) + '(#:configure-flags '("--localstatedir=/var") + #:make-flags '("GUILE_AUTO_COMPILE=0"))) (native-inputs `(("pkg-config" ,pkg-config) @@ -297,7 +298,8 @@ interface and is based on GNU Guile.") `(("pkg-config" ,pkg-config) ("guile" ,guile-2.2))) (inputs - `(("guile" ,guile-2.2))))) + `(("guile" ,guile-2.2) + ("guile2.2-readline" ,guile2.2-readline))))) (define-public guile3.0-shepherd (deprecated-package "guile3.0-shepherd" shepherd)) @@ -307,10 +309,21 @@ interface and is based on GNU Guile.") (inherit shepherd) (name "guile2.0-shepherd") (native-inputs - `(("pkg-config" ,pkg-config) + `(("help2man" ,help2man) + ("pkg-config" ,pkg-config) ("guile" ,guile-2.0))) (inputs - `(("guile" ,guile-2.0))))) + `(("guile" ,guile-2.0))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + ;; (ice-9 threads) isn't available in guile-2.0 + (substitute* "modules/shepherd.scm" + ((".*\\(ice-9 threads\\).*") "")) + #t))) + ,@(package-arguments shepherd))))) (define-public cloud-utils (package @@ -445,7 +458,7 @@ graphs and can export its output to different formats.") (define-public facter (package (name "facter") - (version "4.0.47") + (version "4.0.49") (source (origin (method git-fetch) (uri (git-reference @@ -454,7 +467,7 @@ graphs and can export its output to different formats.") (file-name (git-file-name name version)) (sha256 (base32 - "1zz5kk3ad1jj8y939369dfvjh7zqwpkcqzzad7yb6wp01rc5sf88")))) + "0l7gic5ql5xiy5s6rb0j9ydyaal5bcxl10bx45khcgdr9zg16pb1")))) (build-system ruby-build-system) (arguments `(#:phases @@ -516,7 +529,7 @@ or via the @code{facter} Ruby library.") (define-public htop (package (name "htop") - (version "3.0.4") + (version "3.0.5") (source (origin (method git-fetch) @@ -524,7 +537,7 @@ or via the @code{facter} Ruby library.") (url "https://github.com/htop-dev/htop") (commit version))) (sha256 - (base32 "1fckfv96vzqjs3lzy0cgwsqv5vh1sxca3fhvgskmnkvr5bq6cia9")) + (base32 "10lp6cbfvigzp6pq5nwj3s3l4vs7cv92krz2r08nwrz8vl6rqdzp")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (inputs @@ -1402,7 +1415,7 @@ system administrator.") (define-public sudo (package (name "sudo") - (version "1.9.4p2") + (version "1.9.5p1") (source (origin (method url-fetch) (uri @@ -1412,7 +1425,7 @@ system administrator.") version ".tar.gz"))) (sha256 (base32 - "0r0g8z289ipw0zpkhmm33cpfm42j01jds2q1wilhh3flg7xg2jn3")) + "10kqdfbfpf3vk5ihz5gwynv4pxdf1lg6ircrlanyygb549yg7pad")) (modules '((guix build utils))) (snippet '(begin @@ -1862,7 +1875,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).") (define-public acpica (package (name "acpica") - (version "20201217") + (version "20210105") (source (origin (method url-fetch) (uri (string-append @@ -1870,7 +1883,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).") version ".tar.gz")) (sha256 (base32 - "06rdpfjmij5nni1x2wi1gnalhsza5yxq1viskjm9r11wmsjnxm2a")))) + "1gi7qzfywg118g5nlqn5lawxk25pg2sz01gmbz40vvmikks4ri9r")))) (build-system gnu-build-system) (native-inputs `(("flex" ,flex) ("bison" ,bison))) @@ -2611,14 +2624,14 @@ done with the @code{auditctl} utility.") (define-public nmap (package (name "nmap") - (version "7.91") + (version "7.80") (source (origin (method url-fetch) (uri (string-append "https://nmap.org/dist/nmap-" version ".tar.bz2")) (sha256 (base32 - "001kb5xadqswyw966k2lqi6jr6zz605jpp9w4kmm272if184pk0q")) + "1aizfys6l9f9grm82bk878w56mg0zpkfns3spzj157h98875mypw")) (modules '((guix build utils))) (snippet '(begin @@ -2696,7 +2709,7 @@ advanced netcat implementation (ncat), a utility for comparing scan results (ndiff), and a packet generation and response analysis tool (nping).") ;; This package uses nmap's bundled versions of libdnet and liblinear, which ;; both use a 3-clause BSD license. - (license (list license:npsl license:bsd-3)))) + (license (list license:nmap license:bsd-3)))) (define-public dstat (package @@ -3617,7 +3630,7 @@ Python loading in HPC environments.") (let ((real-name "inxi")) (package (name "inxi-minimal") - (version "3.2.01-1") + (version "3.2.02-2") (source (origin (method git-fetch) @@ -3626,7 +3639,7 @@ Python loading in HPC environments.") (commit version))) (file-name (git-file-name real-name version)) (sha256 - (base32 "15bakrv3jzj5h88c3bd0cfhh6hb8b4hm79924k1ygn29sqzgyw65")))) + (base32 "0fwx798v9kwiwkgbj97w6rjdanwf7ap65vvq1fqy7gd9x78xcxsq")))) (build-system trivial-build-system) (inputs `(("bash" ,bash-minimal) @@ -4306,3 +4319,30 @@ This program allows you to view and manipulate this EEPROM list.") (home-page "https://github.com/xobs/novena-eeprom/") (supported-systems '("armhf-linux")) (license license:bsd-3))) + +(define-public lrzsz + (package + (name "lrzsz") + (version "0.12.20") + (source (origin + (method url-fetch) + (uri (string-append "https://www.ohse.de/uwe/releases/lrzsz-" + version ".tar.gz")) + (sha256 + (base32 + "1wcgfa9fsigf1gri74gq0pa7pyajk12m4z69x7ci9c6x9fqkd2y2")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (setenv "CONFIG_SHELL" (which "bash")) + (invoke "./configure" + (string-append "--prefix=" + (assoc-ref outputs "out")))))))) + (synopsis "Implementation of XMODEM/YMODEM/ZMODEM transfer protocols") + (description "This package provides programs that transfer files using +the XMODEM/YMODEM/ZMODEM file transfer protocols.") + (home-page "https://ohse.de/uwe/software/lrzsz.html") + (license license:gpl2+))) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 214878949e..4699f766b5 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2013, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> @@ -327,9 +327,9 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.") (version "1.0") (source (origin (method url-fetch) - (uri (string-append - "https://gforge.inria.fr/frs/download.php/33497/cmh-" - version ".tar.gz")) + ;; Git repo at <https://gitlab.inria.fr/cmh/cmh>. + (uri (string-append "http://www.multiprecision.org/downloads/cmh-" + version ".tar.gz")) (sha256 (base32 "1a28xr9bs0igms0ik99x0w8lnb0jyfcmvyi26pbyh9ggcdivd33p")))) @@ -349,13 +349,12 @@ varieties, i.e. Jacobians of hyperelliptic curves. It can also be used to compute theta constants at arbitrary precision.") (license license:gpl3+) - (home-page - "https://gitlab.inria.fr/cmh/cmh#cmh-computation-of-genus-2-class-polynomials"))) + (home-page "http://www.multiprecision.org/cmh/home.html"))) (define-public giac (package (name "giac") - (version "1.6.0-41") + (version "1.6.0-47") (source (origin (method url-fetch) @@ -367,7 +366,7 @@ precision.") "~parisse/debian/dists/stable/main/source/" "giac_" version ".tar.gz")) (sha256 - (base32 "1z5b3jm6ffxk3yvdqzwn9icbna68brkrz5kspgacq823d03jfklc")))) + (base32 "15sgsr8l6njp5spagbqclqkdy3x7ra23wi6wvpc8vzlbivy3v43k")))) (build-system gnu-build-system) (arguments `(#:modules ((ice-9 ftw) @@ -674,9 +673,11 @@ geometry and singularity theory.") (version "7.0.4") (source (origin (method url-fetch) - ;; Use the ‘Latest version’ link for a stable URI across releases. - (uri (string-append "https://gforge.inria.fr/frs/download.php/" - "latestfile/160/ecm-" version ".tar.gz")) + (uri + (let ((hash "00c4c691a1ef8605b65bdf794a71539d")) + (string-append "https://gitlab.inria.fr/zimmerma/ecm/" + "uploads/" hash "/ecm-" version + ".tar.gz"))) (sha256 (base32 "0hxs24c2m3mh0nq1zz63z3sb7dhy1rilg2s1igwwcb26x3pb7xqc")))) (build-system gnu-build-system) diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm index 76089333ce..26c0cf4332 100644 --- a/gnu/packages/aspell.scm +++ b/gnu/packages/aspell.scm @@ -476,14 +476,14 @@ under permissive licensing terms. See the 'Copyright' file.")))) (define-public ispell (package (name "ispell") - (version "3.4.01") + (version "3.4.02") (source (origin (method url-fetch) (uri (string-append "https://www.cs.hmc.edu/~geoff/tars/ispell-" version ".tar.gz")) (sha256 - (base32 "103vscg4bc7x2q84y18x1l75k54yhkw8lpza3qh8xxhcz5b0w7jb")))) + (base32 "0b6rqzqjdhwf323sf1dv8qzx5pxa5asz618922r59zjp65660yb6")))) (build-system gnu-build-system) (arguments `(#:parallel-build? #f diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm index aaf70967ab..55a1be8d54 100644 --- a/gnu/packages/assembly.scm +++ b/gnu/packages/assembly.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com> ;;; Copyright © 2019 Andy Tai <atai@atai.org> @@ -26,6 +26,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages assembly) + #:use-module (guix build-system meson) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix download) @@ -148,6 +149,38 @@ to the clients.") (home-page "https://www.gnu.org/software/lightning/") (license license:gpl3+))) +(define-public simde + (package + (name "simde") + (version "0.7.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/simd-everywhere/simde") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1xf5xfzkk9rj47cichgz5ni8xs9hbpz5p6fmxr4ij721ffd002k3")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Fix the version string + (substitute* "meson.build" + (("0.7.0-rc2") "0.7.0")) + #t)))) + (build-system meson-build-system) + ;; We really want this for the headers, and the tests require a bundled library. + (arguments '(#:configure-flags '("-Dtests=false"))) + (synopsis "Implementations of SIMD instruction sets for foreign systems") + (description "The SIMDe header-only library provides fast, portable +implementations of SIMD intrinsics on hardware which doesn't natively support +them, such as calling SSE functions on ARM. There is no performance penalty if +the hardware supports the native implementation (e.g., SSE/AVX runs at full +speed on x86, NEON on ARM, etc.).") + (home-page "https://simd-everywhere.github.io/blog/") + (license license:expat))) + (define-public fasm (package (name "fasm") diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index 9485fe600f..0e1a55481f 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2019 by Amar Singh <nly@disroot.org> ;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in> ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -51,6 +52,7 @@ #:use-module (gnu packages xorg) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) + #:use-module (ice-9 match) #:use-module (srfi srfi-1)) (define-public cfitsio @@ -156,6 +158,52 @@ header.") programs for the manipulation and analysis of astronomical data.") (license license:gpl3+))) +(define-public sextractor + (package + (name "sextractor") + (version "2.25.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/astromatic/sextractor") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0q69n3nyal57h3ik2xirwzrxzljrwy9ivwraxzv9566vi3n4z5mw")))) + (build-system gnu-build-system) + ;; NOTE: (Sharlatan-20210124T103117+0000): Building with `atlas' is failing + ;; due to missing shared library which required on configure phase. Switch + ;; build to use `openblas' instead. It requires FFTW with single precision + ;; `fftwf'. + (arguments + `(#:configure-flags + (list + "--enable-openblas" + (string-append + "--with-openblas-libdir=" (assoc-ref %build-inputs "openblas") "/lib") + (string-append + "--with-openblas-incdir=" (assoc-ref %build-inputs "openblas") "/include") + (string-append + "--with-fftw-libdir=" (assoc-ref %build-inputs "fftw") "/lib") + (string-append + "--with-fftw-incdir=" (assoc-ref %build-inputs "fftw") "/include")))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (inputs + `(("openblas" ,openblas) + ("fftw" ,fftwf))) + (home-page "http://www.astromatic.net/software/sextractor") + (synopsis "Extract catalogs of sources from astronomical images") + (description + "SExtractor is a program that builds a catalogue of objects from an +astronomical image. Although it is particularly oriented towards reduction of +large scale galaxy-survey data, it can perform reasonably well on moderately +crowded star fields.") + (license license:gpl3+))) + (define-public stellarium (package (name "stellarium") @@ -299,6 +347,55 @@ Mechanics, Astrometry and Astrodynamics library.") (license (list license:lgpl2.0+ license:gpl2+)))) ; examples/transforms.c & lntest/*.c +(define-public libpasastro + ;; NOTE: (Sharlatan-20210122T215921+0000): the version tag has a build + ;; error on spice which is resolved with the latest commit. + (let ((commit "e3c218d1502a18cae858c83a9a8812ab197fcb60") + (revision "1")) + (package + (name "libpasastro") + (version (git-version "1.4.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pchev/libpasastro") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0asp2sn34nds5va2ghppwc41vb6j3d1mf049j949rgrll817kx47")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:make-flags + (list + ,(match (or (%current-target-system) (%current-system)) + ((or "aarch64-linux" "armhf-linux" "i686-linux" "x86_64-linux") + "OS_TARGET=linux") + (_ #f)) + ,(match (or (%current-target-system) (%current-system)) + ("i686-linux" "CPU_TARGET=i386") + ("x86_64-linux" "CPU_TARGET=x86_64") + ((or "armhf-linux" "aarch64-linux") "CPU_TARGET=armv7l") + (_ #f)) + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (home-page "https://github.com/pchev/libpasastro") + (synopsis "Interface to astronomy library for use from Pascal program") + (description + "This package provides shared libraries to interface Pascal program with +standard astronomy libraries: + +@itemize +@item @code{libpasgetdss.so}: Interface with GetDSS to work with DSS images. +@item @code{libpasplan404.so}: Interface with Plan404 to compute planets position. +@item @code{libpaswcs.so}: Interface with libwcs to work with FITS WCS. +@item @code{libpasspice.so}: To work with NAIF/SPICE kernel. +@end itemize\n") + (license license:gpl2+)))) + (define-public xplanet (package (name "xplanet") diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 6fe441faae..2e46dc3a26 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Alex Kost <alezost@gmail.com> @@ -4134,6 +4134,63 @@ the following features: ") (license license:lgpl3+))) +(define-public lv2-speech-denoiser + (let ((commit "04cfba929630404f8d4f4ca5bac8d9b09a99152f") + (revision "1")) + (package + (name "lv2-speech-denoiser") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lucianodato/speech-denoiser/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "189l6lz8sz5vr6bjyzgcsrvksl1w6crqsg0q65r94b5yjsmjnpr4")))) + (build-system meson-build-system) + (arguments + `(#:meson ,meson-0.55 + ;; Using a "release" build is recommended for performance + #:build-type "release" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-meson-build + (lambda _ + (substitute* "meson.build" + (("install_folder = 'sdenoise.lv2'") + "install_folder = 'lib/lv2/sdenoise.lv2'") + (("build/manifest.ttl") "../build/manifest.ttl")) + #t)) + (add-after 'unpack 'build-rnnoise + (lambda _ + (with-directory-excursion "rnnoise" + (let ((old-CFLAGS (getenv "CFLAGS"))) + (setenv "CFLAGS" "-fvisibility=hidden -fPIC -Wl,--exclude-libs,ALL") + (setenv "CONFIG_SHELL" (which "bash")) + (invoke "autoreconf" "-vif") + (invoke "sh" "configure" + "--disable-examples" + "--disable-doc" + "--disable-shared" + "--enable-static") + (invoke "make") + (setenv "CFLAGS" old-CFLAGS)))))))) + (inputs + `(("lv2" ,lv2))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (home-page "https://github.com/werman/noise-suppression-for-voice") + (synopsis "Speech denoise LV2 plugin based on Xiph's RNNoise library") + (description "RNNoise is a library that uses deep learning to apply +noise supression to audio sources with voice presence. This package provides +an LV2 audio plugin.") + (license license:lgpl3+)))) + (define-public cli-visualizer (package (name "cli-visualizer") diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm index 203f1bfb52..6074379c46 100644 --- a/gnu/packages/autotools.scm +++ b/gnu/packages/autotools.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,6 +39,7 @@ #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (ice-9 match) @@ -491,6 +493,53 @@ complexity of working with shared libraries across platforms.") (license gpl3+) (home-page "https://www.gnu.org/software/libtool/"))) +(define-public config + (let ((revision "1") + (commit "c8ddc8472f8efcadafc1ef53ca1d863415fddd5f")) + (package + (name "config") + (version (git-version "0.0.0" revision commit)) ;no release tag + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/git/config.git/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0x6ycvkmmhhhag97wsf0pw8n5fvh12rjvrck90rz17my4ys16qwv")))) + (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-/bin/sh + (lambda _ + (substitute* "testsuite/config-guess.sh" + (("#!/bin/sh") + (string-append "#!" (which "sh")))) + #t)) + (replace 'build + (lambda _ + (invoke "make" "manpages"))) + (delete 'configure) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (man1 (string-append out "/share/man/man1"))) + (install-file "config.guess" bin) + (install-file "config.sub" bin) + (install-file "doc/config.guess.1" man1) + (install-file "doc/config.sub.1" man1) + #t)))))) + (native-inputs + `(("help2man" ,help2man))) + (home-page "https://savannah.gnu.org/projects/config") + (synopsis "Ubiquitious config.guess and config.sub scripts") + (description "The `config.guess' script tries to guess a canonical system triple, +and `config.sub' validates and canonicalizes. These are used as part of +configuration in nearly all GNU packages (and many others).") + (license gpl2+)))) + (define-public libltdl ;; This is a libltdl package separate from the libtool package. This is ;; useful because, unlike libtool, it has zero extra dependencies (making it diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 512abcd8fd..8514306f94 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -4,14 +4,14 @@ ;;; Copyright © 2015, 2016, 2018, 2019, 2020 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016, 2020 Roel Janssen <roel@gnu.org> -;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016, 2018 Raoul Bonnal <ilpuccio.febo@gmail.com> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com> ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com> -;;; Copyright © 2018, 2019, 2020 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de> +;;; Copyright © 2018, 2019, 2020, 2021 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de> ;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> @@ -57,6 +57,7 @@ #:use-module (guix build-system trivial) #:use-module (guix deprecation) #:use-module (gnu packages) + #:use-module (gnu packages assembly) #:use-module (gnu packages autotools) #:use-module (gnu packages algebra) #:use-module (gnu packages base) @@ -142,6 +143,7 @@ #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) #:use-module (ice-9 match)) (define-public aragorn @@ -3563,61 +3565,60 @@ comment or quality sections.") (define-public gemma (package (name "gemma") - (version "0.98") + (version "0.98.3") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/xiangzhou/GEMMA") - (commit (string-append "v" version)))) + (url "https://github.com/genetics-statistics/GEMMA") + (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "1s3ncnbn45r2hh1cvrqky1kbqq6546biypr4f5mkw1kqlrgyh0yg")))) + "1p8a7kkfn1mmrg017aziy544aha8i9h6wd1x2dk3w2794wl33qb7")) + (modules '((guix build utils))) + (snippet + '(begin + (delete-file-recursively "contrib") + #t)))) + (build-system gnu-build-system) (inputs - `(("eigen" ,eigen) - ("gfortran" ,gfortran "lib") - ("gsl" ,gsl) - ("lapack" ,lapack) + `(("gsl" ,gsl) ("openblas" ,openblas) ("zlib" ,zlib))) - (build-system gnu-build-system) + (native-inputs + `(("catch" ,catch-framework2-1) + ("perl" ,perl) + ("shunit2" ,shunit2) + ("which" ,which))) (arguments - `(#:make-flags - '(,@(match (%current-system) - ("x86_64-linux" - '("FORCE_DYNAMIC=1")) - ("i686-linux" - '("FORCE_DYNAMIC=1" "FORCE_32BIT=1")) - (_ - '("FORCE_DYNAMIC=1" "NO_INTEL_COMPAT=1")))) - #:phases + `(#:phases (modify-phases %standard-phases (delete 'configure) - (add-after 'unpack 'find-eigen + (add-after 'unpack 'prepare-build (lambda* (#:key inputs #:allow-other-keys) - ;; Ensure that Eigen headers can be found - (setenv "CPLUS_INCLUDE_PATH" - (string-append (assoc-ref inputs "eigen") - "/include/eigen3")) + (mkdir-p "bin") + (substitute* "Makefile" + (("/usr/local/opt/openblas") + (assoc-ref inputs "openblas"))) #t)) - (add-before 'build 'bin-mkdir - (lambda _ - (mkdir-p "bin") - #t)) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; 'make slow-check' expects shunit2-2.0.3. + (with-directory-excursion "test" + (invoke "./test_suite.sh")) + #t))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (install-file "bin/gemma" - (string-append - out "/bin"))) - #t))) - #:tests? #f)) ; no tests included yet - (home-page "https://github.com/xiangzhou/GEMMA") + (install-file "bin/gemma" + (string-append (assoc-ref outputs "out") "/bin")) + #t))))) + (home-page "https://github.com/genetics-statistics/GEMMA") (synopsis "Tool for genome-wide efficient mixed model association") (description - "Genome-wide Efficient Mixed Model Association (GEMMA) provides a -standard linear mixed model resolver with application in genome-wide -association studies (GWAS).") + "@acronym{GEMMA, Genome-wide Efficient Mixed Model Association} provides a +standard linear mixed model resolver with application in @acronym{GWAS, +genome-wide association studies}.") (license license:gpl3))) (define-public grit @@ -4687,7 +4688,7 @@ sequencing tag position and orientation.") (define-public mafft (package (name "mafft") - (version "7.471") + (version "7.475") (source (origin (method url-fetch) (uri (string-append @@ -4696,7 +4697,7 @@ sequencing tag position and orientation.") (file-name (string-append name "-" version ".tgz")) (sha256 (base32 - "0r1973fx2scq4712zdqfy67wkzqj0c0bhrdy4jxhvq40mdxyry30")))) + "0i2i2m3blh2xkbkdk48hxfssks30ny0v381gdl7zwhcvp0axs26r")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no automated tests, though there are tests in the read me @@ -7073,6 +7074,55 @@ sequence.") (supported-systems '("i686-linux" "x86_64-linux")) (license license:bsd-3))) +(define-public r-snapatac + (package + (name "r-snapatac") + (version "2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/r3fang/SnapATAC") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "037jzlbl436fi7lkpq7d83i2vd1crnrik3vac2x6xj75dbikb2av")))) + (properties `((upstream-name . "SnapATAC"))) + (build-system r-build-system) + (propagated-inputs + `(("r-bigmemory" ,r-bigmemory) + ("r-doparallel" ,r-doparallel) + ("r-dosnow" ,r-dosnow) + ("r-edger" ,r-edger) + ("r-foreach" ,r-foreach) + ("r-genomicranges" ,r-genomicranges) + ("r-igraph" ,r-igraph) + ("r-iranges" ,r-iranges) + ("r-irlba" ,r-irlba) + ("r-matrix" ,r-matrix) + ("r-plyr" ,r-plyr) + ("r-plot3d" ,r-plot3d) + ("r-rann" ,r-rann) + ("r-raster" ,r-raster) + ("r-rcolorbrewer" ,r-rcolorbrewer) + ("r-rhdf5" ,r-rhdf5) + ("r-rtsne" ,r-rtsne) + ("r-scales" ,r-scales) + ("r-viridis" ,r-viridis))) + (home-page "https://github.com/r3fang/SnapATAC") + (synopsis "Single nucleus analysis package for ATAC-Seq") + (description + "This package provides a fast and accurate analysis toolkit for single +cell ATAC-seq (Assay for transposase-accessible chromatin using sequencing). +Single cell ATAC-seq can resolve the heterogeneity of a complex tissue and +reveal cell-type specific regulatory landscapes. However, the exceeding data +sparsity has posed unique challenges for the data analysis. This package +@code{r-snapatac} is an end-to-end bioinformatics pipeline for analyzing large- +scale single cell ATAC-seq data which includes quality control, normalization, +clustering analysis, differential analysis, motif inference and exploration of +single cell ATAC-seq sequencing data.") + (license license:gpl3))) + (define-public r-scde (package (name "r-scde") @@ -7726,6 +7776,31 @@ BLAST, KEGG, GenBank, MEDLINE and GO.") ;; (LGPLv2.1+) and scripts in samples (which have GPL2 and GPL2+) (license (list license:ruby license:lgpl2.1+ license:gpl2+ )))) +(define-public bio-vcf + (package + (name "bio-vcf") + (version "0.9.5") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "bio-vcf" version)) + (sha256 + (base32 + "1glw5pn9s8z13spxk6yyfqaz80n9lga67f33w35nkpq9dwi2vg6g")))) + (build-system ruby-build-system) + (native-inputs + `(("ruby-cucumber" ,ruby-cucumber))) + (synopsis "Smart VCF parser DSL") + (description + "Bio-vcf provides a @acronym{DSL, domain specific language} for processing +the VCF format. Record named fields can be queried with regular expressions. +Bio-vcf is a new generation VCF parser, filter and converter. Bio-vcf is not +only very fast for genome-wide (WGS) data, it also comes with a filtering, +evaluation and rewrite language and can output any type of textual data, +including VCF header and contents in RDF and JSON.") + (home-page "https://github.com/vcflib/bio-vcf") + (license license:expat))) + (define-public r-biocviews (package (name "r-biocviews") @@ -9386,8 +9461,9 @@ group or two ChIP groups run under different conditions.") (delete 'configure) ; There is no configure phase. (replace 'install (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) - (install-file "filevercmp" bin) + (let ((out (assoc-ref outputs "out"))) + (install-file "filevercmp" (string-append out "/bin")) + (install-file "filevercmp.h" (string-append out "/include")) #t)))))) (home-page "https://github.com/ekg/filevercmp") (synopsis "This program compares version strings") @@ -10514,41 +10590,20 @@ explore and perform basic analysis of single cell sequencing data coming from droplet sequencing. It has been particularly tailored for Drop-seq.") (license license:gpl3)))) -(define htslib-for-sambamba - (let ((commit "2f3c3ea7b301f9b45737a793c0b2dcf0240e5ee5")) - (package - (inherit htslib) - (name "htslib-for-sambamba") - (version (string-append "1.3.1-1." (string-take commit 9))) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/lomereiter/htslib") - (commit commit))) - (file-name (string-append "htslib-" version "-checkout")) - (sha256 - (base32 - "0g38g8s3npr0gjm9fahlbhiskyfws9l5i0x1ml3rakzj7az5l9c9")))) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ,@(package-native-inputs htslib)))))) - (define-public sambamba (package (name "sambamba") - (version "0.7.1") + (version "0.8.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/lomereiter/sambamba") + (url "https://github.com/biod/sambamba") (commit (string-append "v" version)))) - (file-name (string-append name "-" version "-checkout")) + (file-name (git-file-name name version)) (sha256 (base32 - "111h05b60pj8dxbidiamy4imc92x2962b3lmb7wgysl6lx064qis")))) + "07dznzl6m8k7sw84jxw2kx6i3ymrapbmcmyh0fxz8wrybhw8fmwc")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; there is no test target @@ -10558,52 +10613,30 @@ droplet sequencing. It has been particularly tailored for Drop-seq.") (delete 'configure) (add-after 'unpack 'fix-ldc-version (lambda _ - (substitute* "gen_ldc_version_info.py" - (("/usr/bin/env.*") (which "python3"))) (substitute* "Makefile" ;; We use ldc2 instead of ldmd2 to compile sambamba. (("\\$\\(shell which ldmd2\\)") (which "ldc2"))) #t)) - (add-after 'unpack 'place-biod-and-undead - (lambda* (#:key inputs #:allow-other-keys) - (copy-recursively (assoc-ref inputs "biod") "BioD") - #t)) (add-after 'unpack 'unbundle-prerequisites (lambda _ (substitute* "Makefile" - (("htslib/libhts.a lz4/lib/liblz4.a") - "-L-lhts -L-llz4") - ((" lz4-static htslib-static") "")) + (("= lz4/lib/liblz4.a") "= -L-llz4") + (("ldc_version_info lz4-static") "ldc_version_info")) #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) (mkdir-p bin) (copy-file (string-append "bin/sambamba-" ,version) (string-append bin "/sambamba")) #t)))))) (native-inputs - `(("ldc" ,ldc) - ("rdmd" ,rdmd) - ("python" ,python) - ("biod" - ,(let ((commit "7969eb0a847b05874e83ffddead26e193ece8101")) - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/biod/BioD") - (commit commit))) - (file-name (string-append "biod-" - (string-take commit 9) - "-checkout")) - (sha256 - (base32 - "0mjxsmbmv0jxl3pq21p8j5r829d648if8q58ka50b2956lc6qkpm"))))))) + `(("python" ,python))) (inputs - `(("lz4" ,lz4) - ("htslib" ,htslib-for-sambamba))) - (home-page "https://lomereiter.github.io/sambamba/") + `(("ldc" ,ldc) + ("lz4" ,lz4) + ("zlib" ,zlib))) + (home-page "https://github.com/biod/sambamba") (synopsis "Tools for working with SAM/BAM data") (description "Sambamba is a high performance modern robust and fast tool (and library), written in the D programming language, for @@ -14855,10 +14888,14 @@ some of the details of opening and jumping in tabix-indexed files.") (delete 'configure) ; There is no configure phase. (replace 'install (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (include (string-append out "/include"))) ;; TODO: There are Python modules for these programs too. (install-file "multichoose" bin) - (install-file "multipermute" bin)) + (install-file "multipermute" bin) + (install-file "multichoose.h" include) + (install-file "multipermute.h" include)) #t))))) (home-page "https://github.com/ekg/multichoose") (synopsis "Efficient loopless multiset combination generation algorithm") @@ -14967,32 +15004,44 @@ library automatically handles index file generation and use.") (define-public vcflib (package (name "vcflib") - (version "1.0.1") + (version "1.0.2") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/vcflib/vcflib/releases/" - "download/v" version - "/vcflib-" version "-src.tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/vcflib/vcflib") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "14zzrg8hg8cq9cvq2wdvp21j7nmxxkjrbagw2apd2yqv2kyx42lm")) - (patches (search-patches "vcflib-use-shared-libraries.patch")) + (base32 "1k1z3876kbzifj1sqfzsf3lgb4rw779hvkg6ryxbyq5bc2paj9kh")) (modules '((guix build utils))) (snippet - `(begin + '(begin + (substitute* "CMakeLists.txt" + ((".*fastahack.*") "") + ((".*smithwaterman.*") "") + (("(pkg_check_modules\\(TABIXPP)" text) + (string-append + "pkg_check_modules(FASTAHACK REQUIRED fastahack)\n" + "pkg_check_modules(SMITHWATERMAN REQUIRED smithwaterman)\n" + text)) + (("\\$\\{TABIXPP_LIBRARIES\\}" text) + (string-append "${FASTAHACK_LIBRARIES} " + "${SMITHWATERMAN_LIBRARIES} " + text))) (substitute* (find-files "." "\\.(h|c)(pp)?$") (("\"SmithWatermanGotoh.h\"") "<smithwaterman/SmithWatermanGotoh.h>") (("\"convert.h\"") "<smithwaterman/convert.h>") (("\"disorder.h\"") "<smithwaterman/disorder.h>") - (("\"tabix.hpp\"") "<tabix.hpp>") - (("\"Fasta.h\"") "<fastahack/Fasta.h>")) + (("Fasta.h") "fastahack/Fasta.h")) (for-each delete-file-recursively '("fastahack" "filevercmp" "fsom" "googletest" "intervaltree" - "libVCFH" "multichoose" "smithwaterman" "tabixpp")) + "libVCFH" "multichoose" "smithwaterman")) #t)))) - (build-system gnu-build-system) + (build-system cmake-build-system) (inputs - `(("htslib" ,htslib) + `(("bzip2" ,bzip2) + ("htslib" ,htslib) ("fastahack" ,fastahack) ("perl" ,perl) ("python" ,python) @@ -15005,22 +15054,20 @@ library automatically handles index file generation and use.") ;; Submodules. ;; This package builds against the .o files so we need to extract the source. ("filevercmp-src" ,(package-source filevercmp)) + ("fsom-src" ,(package-source fsom)) ("intervaltree-src" ,(package-source intervaltree)) ("multichoose-src" ,(package-source multichoose)))) (arguments `(#:tests? #f ; no tests #:phases (modify-phases %standard-phases - (add-after 'unpack 'set-flags - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "Makefile" - (("LDFLAGS =") - (string-append "LDFLAGS = -Wl,-rpath=" - (assoc-ref outputs "out") "/lib "))) - (substitute* "filevercmp/Makefile" - (("-c") "-c -fPIC")) + (add-after 'unpack 'build-shared-library + (lambda _ + (substitute* "CMakeLists.txt" + (("vcflib STATIC") "vcflib SHARED")) + (substitute* "test/Makefile" + (("libvcflib.a") "libvcflib.so")) #t)) - (delete 'configure) (add-after 'unpack 'unpack-submodule-sources (lambda* (#:key inputs #:allow-other-keys) (let ((unpack (lambda (source target) @@ -15033,39 +15080,31 @@ library automatically handles index file generation and use.") "--strip-components=1")))))) (and (unpack "filevercmp-src" "filevercmp") + (unpack "fsom-src" "fsom") (unpack "intervaltree-src" "intervaltree") - (unpack "multichoose-src" "multichoose"))))) - (replace 'install + (unpack "multichoose-src" "multichoose")) + #t))) + ;; This pkg-config file is provided by other distributions. + (add-after 'install 'install-pkg-config-file (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (lib (string-append out "/lib"))) - (for-each (lambda (file) - (install-file file bin)) - (find-files "bin" ".*")) - (install-file "libvcflib.so" lib) - (install-file "libvcflib.a" lib) - (for-each - (lambda (file) - (install-file file (string-append out "/include"))) - (find-files "include" "\\.h(pp)?$")) - (mkdir-p (string-append lib "/pkgconfig")) - (with-output-to-file (string-append lib "/pkgconfig/vcflib.pc") + (pkgconfig (string-append out "/lib/pkgconfig"))) + (mkdir-p pkgconfig) + (with-output-to-file (string-append pkgconfig "/libvcflib.pc") (lambda _ (format #t "prefix=~a~@ exec_prefix=${prefix}~@ libdir=${exec_prefix}/lib~@ includedir=${prefix}/include~@ ~@ - ~@ Name: libvcflib~@ Version: ~a~@ Requires: smithwaterman, fastahack~@ Description: C++ library for parsing and manipulating VCF files~@ - Libs: -L${libdir} -lvcflib~@ + Libs: -L${libdir} -llibvcflib~@ Cflags: -I${includedir}~%" - out ,version)))) - #t))))) + out ,version))) + #t)))))) (home-page "https://github.com/vcflib/vcflib/") (synopsis "Library for parsing and manipulating VCF files") (description "Vcflib provides methods to manipulate and interpret @@ -15076,125 +15115,94 @@ manipulations on VCF files.") (license license:expat))) (define-public freebayes - (let ((commit "3ce827d8ebf89bb3bdc097ee0fe7f46f9f30d5fb") - (revision "1") - (version "1.0.2")) - (package - (name "freebayes") - (version (git-version version revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ekg/freebayes") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1sbzwmcbn78ybymjnhwk7qc5r912azy5vqz2y7y81616yc3ba2a2")))) - (build-system gnu-build-system) - (inputs - `(("bamtools" ,bamtools) - ("htslib" ,htslib) - ("zlib" ,zlib))) - (native-inputs - `(("bc" ,bc) ; Needed for running tests. - ("samtools" ,samtools) ; Needed for running tests. - ("parallel" ,parallel) ; Needed for running tests. - ("perl" ,perl) ; Needed for running tests. - ("procps" ,procps) ; Needed for running tests. - ("python" ,python-2) ; Needed for running tests. - ("vcflib-src" ,(package-source vcflib)) - ;; These are submodules for the vcflib version used in freebayes. - ;; This package builds against the .o files so we need to extract the source. - ("tabixpp-src" ,(package-source tabixpp)) - ("smithwaterman-src" ,(package-source smithwaterman)) - ("multichoose-src" ,(package-source multichoose)) - ("fsom-src" ,(package-source fsom)) - ("filevercmp-src" ,(package-source filevercmp)) - ("fastahack-src" ,(package-source fastahack)) - ("intervaltree-src" ,(package-source intervaltree)) - ;; These submodules are needed to run the tests. - ("bash-tap-src" ,(package-source bash-tap)) - ("test-simple-bash-src" - ,(origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ingydotnet/test-simple-bash/") - (commit "124673ff204b01c8e96b7fc9f9b32ee35d898acc"))) - (file-name "test-simple-bash-src-checkout") - (sha256 - (base32 "043plp6z0x9yf7mdpky1fw7zcpwn1p47px95w9mh16603zqqqpga")))))) - (arguments - `(#:make-flags - (list "CC=gcc" - (string-append "BAMTOOLS_ROOT=" - (assoc-ref %build-inputs "bamtools"))) - #:test-target "test" - #:phases - (modify-phases %standard-phases - (delete 'configure) - (add-after 'unpack 'fix-tests - (lambda _ - (substitute* "test/t/01_call_variants.t" - (("grep -P \"\\(\\\\t500\\$\\|\\\\t11000\\$\\|\\\\t1000\\$\\)\"") - "grep -E ' (500|11000|1000)$'")) - #t)) - (add-after 'unpack 'unpack-submodule-sources - (lambda* (#:key inputs #:allow-other-keys) - (let ((unpack (lambda (source target) - (with-directory-excursion target - (if (file-is-directory? (assoc-ref inputs source)) - (copy-recursively (assoc-ref inputs source) ".") - (invoke "tar" "xvf" - (assoc-ref inputs source) - "--strip-components=1")))))) - (and - (unpack "vcflib-src" "vcflib") - (unpack "fastahack-src" "vcflib/fastahack") - (unpack "filevercmp-src" "vcflib/filevercmp") - (unpack "fsom-src" "vcflib/fsom") - (unpack "intervaltree-src" "vcflib/intervaltree") - (unpack "multichoose-src" "vcflib/multichoose") - (unpack "smithwaterman-src" "vcflib/smithwaterman") - (unpack "tabixpp-src" "vcflib/tabixpp") - (unpack "test-simple-bash-src" "test/test-simple-bash") - (unpack "bash-tap-src" "test/bash-tap"))))) - (add-after 'unpack-submodule-sources 'fix-makefiles - (lambda _ - ;; We don't have the .git folder to get the version tag from. - (substitute* "vcflib/Makefile" - (("^GIT_VERSION.*") - (string-append "GIT_VERSION = v" ,version))) - (substitute* "src/Makefile" - (("-I\\$\\(BAMTOOLS_ROOT\\)/src") - "-I$(BAMTOOLS_ROOT)/include/bamtools")) - #t)) - (add-before 'build 'build-tabixpp-and-vcflib - (lambda* (#:key inputs make-flags #:allow-other-keys) - (with-directory-excursion "vcflib" - (with-directory-excursion "tabixpp" - (apply invoke "make" - (string-append "HTS_LIB=" - (assoc-ref inputs "htslib") - "/lib/libhts.a") - make-flags)) - (apply invoke "make" - (string-append "CFLAGS=-Itabixpp") - "all" - make-flags)))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) - (install-file "bin/freebayes" bin) - (install-file "bin/bamleftalign" bin)) - #t))))) - (home-page "https://github.com/ekg/freebayes") - (synopsis "Haplotype-based variant detector") - (description "FreeBayes is a Bayesian genetic variant detector designed to + (package + (name "freebayes") + (version "1.3.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/freebayes/freebayes") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0myz3giad7jqp6ricdfnig9ymlcps2h67mlivadvx97ngagm85z8")) + (patches (search-patches "freebayes-devendor-deps.patch")) + (modules '((guix build utils))) + (snippet + '(begin + (delete-file-recursively "contrib/htslib") + #t)))) + (build-system meson-build-system) + (inputs + `(("fastahack" ,fastahack) + ("htslib" ,htslib) + ("smithwaterman" ,smithwaterman) + ("tabixpp" ,tabixpp) + ("vcflib" ,vcflib) + ("zlib" ,zlib))) + (native-inputs + `(("bash-tap" ,bash-tap) + ("bc" ,bc) + ("grep" ,grep) ; Built with perl support. + ("parallel" ,parallel) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("samtools" ,samtools) + ("simde" ,simde) + ;; This submodule is needed to run the tests. + ("test-simple-bash-src" + ,(origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ingydotnet/test-simple-bash/") + (commit "124673ff204b01c8e96b7fc9f9b32ee35d898acc"))) + (file-name "test-simple-bash-src-checkout") + (sha256 + (base32 "043plp6z0x9yf7mdpky1fw7zcpwn1p47px95w9mh16603zqqqpga")))))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda* (#:key inputs #:allow-other-keys) + (let ((bash-tap (assoc-ref inputs "bash-tap"))) + (substitute* (find-files "test/t") + (("BASH_TAP_ROOT=bash-tap") + (string-append "BASH_TAP_ROOT=" bash-tap "/bin")) + (("bash-tap/bash-tap-bootstrap") + (string-append bash-tap "/bin/bash-tap-bootstrap")) + (("source.*bash-tap-bootstrap") + (string-append "source " bash-tap "/bin/bash-tap-bootstrap"))) + (substitute* "meson.build" + ;; Some inputs aren't actually needed. + ((".*bamtools/src.*") "") + ((".*multichoose.*") "")) + (substitute* '("src/BedReader.cpp" + "src/BedReader.h") + (("../intervaltree/IntervalTree.h") "IntervalTree.h")) + #t))) + (add-after 'unpack 'unpack-submodule-sources + (lambda* (#:key inputs #:allow-other-keys) + (mkdir-p "test/test-simple-bash") + (copy-recursively (assoc-ref inputs "test-simple-bash-src") + "test/test-simple-bash") + #t)) + ;; The slow tests take longer than the specified timeout. + ,@(if (any (cute string=? <> (%current-system)) + '("armhf-linux" "aarch64-linux")) + '((replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "meson" "test" "--timeout-multiplier" "5")) + #t))) + '())))) + (home-page "https://github.com/freebayes/freebayes") + (synopsis "Haplotype-based variant detector") + (description "FreeBayes is a Bayesian genetic variant detector designed to find small polymorphisms, specifically SNPs (single-nucleotide polymorphisms), indels (insertions and deletions), MNPs (multi-nucleotide polymorphisms), and complex events (composite insertion and substitution events) smaller than the length of a short-read sequencing alignment.") - (license license:expat)))) + (license license:expat))) (define-public samblaster (package diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 9ca574a151..88abe29a1e 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -7,12 +7,14 @@ ;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2016, 2017 David Craven <david@craven.ch> ;;; Copyright © 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2019, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 nee <nee@cock.li> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; Copyright © 2018, 2019, 2020 Vagrant Cascadian <vagrant@debian.org> ;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com> +;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1095,3 +1097,124 @@ systems so that they can be added to the bootloader. It also works out how to boot existing GNU/Linux systems and detects what distribution is installed in order to add a suitable bootloader menu entry.") (license license:gpl2+))) + +(define-public ipxe + ;; XXX: 'BUILD_TIMESTAMP' is used to automatically select the newest version + ;; of iPXE if multiple iPXE drivers are loaded concurrently in a UEFI system. + ;; + ;; TODO: Bump this timestamp at each modifications of the package (not only + ;; for updates) by running: date +%s. + (let ((timestamp "1591706427")) + (package + (name "ipxe") + (version "1.21.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipxe/ipxe") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (patches (search-patches "ipxe-reproducible-geniso.patch")) + (sha256 + (base32 + "1pkf1n1c0rdlzfls8fvjvi1sd9xjd9ijqlyz3wigr70ijcv6x8i9")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build utils) + (guix build gnu-build-system) + (guix base32) + (ice-9 string-fun) + (ice-9 regex) + (rnrs bytevectors)) + #:imported-modules ((guix base32) + ,@%gnu-build-system-modules) + #:make-flags + ;; XXX: 'BUILD_ID' is used to determine when another ROM in the + ;; system contains identical code in order to save space within the + ;; legacy BIOS option ROM area, which is extremely limited in size. + ;; It is supposed to be collision-free across all ROMs, to do so we + ;; use the truncated output hash of the package. + (let ((build-id + (lambda (out) + (let* ((nix-store (string-append + (or (getenv "NIX_STORE") "/gnu/store") + "/")) + (filename + (string-replace-substring out nix-store "")) + (hash (match:substring (string-match "[0-9a-z]{32}" + filename))) + (bv (nix-base32-string->bytevector hash))) + (format #f "0x~x" + (bytevector-u32-ref bv 0 (endianness big)))))) + (out (assoc-ref %outputs "out")) + (syslinux (assoc-ref %build-inputs "syslinux"))) + (list "ECHO_E_BIN_ECHO=echo" + "ECHO_E_BIN_ECHO_E=echo -e" + + ;; cdrtools' mkisofs will silently ignore a missing isolinux.bin! + ;; Luckily xorriso is more strict. + (string-append "ISOLINUX_BIN=" syslinux + "/share/syslinux/isolinux.bin") + (string-append "SYSLINUX_MBR_DISK_PATH=" syslinux + "/share/syslinux/isohdpfx.bin") + + ;; Build reproducibly. + (string-append "BUILD_ID_CMD=echo -n " (build-id out)) + (string-append "BUILD_TIMESTAMP=" ,timestamp) + "everything")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-source-directory + (lambda _ (chdir "src") #t)) + (add-after 'enter-source-directory 'set-options + (lambda _ + (substitute* "config/general.h" + (("^//(#define PING_CMD.*)" _ uncommented) uncommented) + (("^//(#define IMAGE_TRUST_CMD.*)" _ uncommented) + uncommented) + (("^#undef.*(DOWNLOAD_PROTO_HTTPS.*)" _ option) + (string-append "#define " option)) + (("^#undef.*(DOWNLOAD_PROTO_NFS.*)" _ option) + (string-append "#define " option))) + #t)) + (delete 'configure) ; no configure script + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (ipxe (string-append out "/lib/ipxe")) + (exts-re + "\\.(efi|efirom|iso|kkpxe|kpxe|lkrn|mrom|pxe|rom|usb)$") + (dirs '("bin" "bin-i386-linux" "bin-x86_64-pcbios" + "bin-x86_64-efi" "bin-x86_64-linux" "bin-i386-efi")) + (files (apply append + (map (lambda (dir) + (find-files dir exts-re)) dirs)))) + (for-each (lambda (file) + (let* ((subdir (dirname file)) + (fn (basename file)) + (tgtsubdir (cond + ((string=? "bin" subdir) "") + ((string-prefix? "bin-" subdir) + (string-drop subdir 4))))) + (install-file file + (string-append ipxe "/" tgtsubdir)))) + files)) + #t)) + (add-after 'install 'leave-source-directory + (lambda _ (chdir "..") #t))) + #:tests? #f)) ; no test suite + (native-inputs + `(("perl" ,perl) + ("syslinux" ,syslinux) + ("xorriso" ,xorriso))) + (home-page "https://ipxe.org") + (synopsis "PXE-compliant network boot firmware") + (description "iPXE is a network boot firmware. It provides a full PXE +implementation enhanced with additional features such as booting from: a web +server via HTTP, an iSCSI SAN, a Fibre Channel SAN via FCoE, an AoE SAN, a +wireless network, a wide-area network, an Infiniband network. It allows to +control the boot process with a script. You can use iPXE to replace the +existing PXE ROM on your network card, or you can chainload into iPXE to obtain +the features of iPXE without the hassle of reflashing.") + (license license:gpl2+)))) + diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm index 7fc065f7ac..5af67e084d 100644 --- a/gnu/packages/busybox.scm +++ b/gnu/packages/busybox.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 John Darrington <jmd@gnu.org> ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,7 +33,7 @@ (define-public busybox (package (name "busybox") - (version "1.32.0") + (version "1.32.1") (source (origin (method url-fetch) (uri (string-append @@ -41,7 +41,7 @@ version ".tar.bz2")) (sha256 (base32 - "12g63zsvzfz04wbyga8riyl8ils05riw4xf26cyiaasbs3qqfpf3")))) + "1vhd59qmrdyrr1q7rvxmyl96z192mxl089hi87yl0hcp6fyw8mwx")))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 1300f9e1a6..d9a1fb3acf 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2015, 2017 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2015, 2016, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2015, 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org> @@ -288,6 +288,55 @@ unit testing. Test output is in XML for automatic testing and GUI based for supervised tests.") (license license:lgpl2.1))) ; no copyright notices. LGPL2.1 is in the tarball +(define-public shunit2 + (package + (name "shunit2") + (version "2.1.8") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kward/shunit2") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "08vs0jjl3pfh100sjlw31x4638xj7fghr0j2g1zfikba8n1f9491")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (delete 'build) + (add-after 'patch-source-shebangs 'patch-more-shebangs + (lambda _ + (substitute* "shunit2" + (("#! /bin/sh") (string-append "#! " (which "sh"))) + (("/usr/bin/od") (which "od"))) + (substitute* "test_runner" + (("/bin/sh") (which "sh")) + (("/bin/bash") (which "bash"))) + #t)) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; This test is buggy in the build container. + (delete-file "shunit2_misc_test.sh") + (invoke "sh" "test_runner")) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (install-file "shunit2" + (string-append (assoc-ref outputs "out") + "/bin")) + #t))))) + (home-page "https://github.com/kward/shunit2") + (synopsis "@code{xUnit} based unit testing for Unix shell scripts") + (description "@code{shUnit2} was originally developed to provide a +consistent testing solution for @code{log4sh}, a shell based logging framework +similar to @code{log4j}. It is designed to work in a similar manner to JUnit, +PyUnit and others.") + (license license:asl2.0))) + ;; When dependent packages upgraded to use newer version of catch, this one should ;; be removed. (define-public catch-framework diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm index 175b1a74ef..a994b387bb 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -302,8 +302,8 @@ (string-append "ungoogled-chromium-" category "-" name)))) (sha256 (base32 hash)))) -(define %chromium-version "87.0.4280.88") -(define %ungoogled-revision "b78cb927fa8beaee0ddfb4385277edb96444c40f") +(define %chromium-version "87.0.4280.141") +(define %ungoogled-revision "483a1bae4eee601c7d0a4a63499380e40e4f8a44") (define %debian-revision "debian/84.0.4147.105-1") (define %debian-patches @@ -321,7 +321,7 @@ (string-take %ungoogled-revision 7))) (sha256 (base32 - "0w2137w8hfcgl6f938hqnb4ffp33v5r8vdzxrvs814w7dszkiqgg")))) + "0r09d27jrdz01rcwifchbq7ksh2bac15h8svq18jx426mr56dzla")))) (define %guix-patches (list (local-file @@ -443,7 +443,7 @@ %chromium-version ".tar.xz")) (sha256 (base32 - "1h09g9b2zxad85vd146ymvg3w2kpngpi78yig3dn1vrmhwr4aiiy")) + "0x9k809m36pfirnw2vnr9pk93nxdbgrvna0xf1rs3q91zkbr2x8l")) (modules '((guix build utils))) (snippet (force ungoogled-chromium-snippet)))) (build-system gnu-build-system) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 1eab34a517..56350089f5 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1816,14 +1816,14 @@ Clzip is intended to be fully compatible with the regular lzip package.") (define-public lzlib (package (name "lzlib") - (version "1.11") + (version "1.12") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/lzip/lzlib/" "lzlib-" version ".tar.gz")) (sha256 - (base32 "0djdj4sg33rzi4k84cygvnp09bfsv6i8wy2k7i67rayib63myp3c")))) + (base32 "1c9pwd6by8is4z8bs6j306jyy6pgm2dvsn4fr7fg2b5m5qj88pcf")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -2075,13 +2075,13 @@ reading from and writing to ZIP archives. ") (define-public zutils (package (name "zutils") - (version "1.9") + (version "1.10") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/zutils/zutils-" version ".tar.lz")) (sha256 - (base32 "0y2wm8wqr1wi1b1fv45dn50njv4q81p6ifx0279ji1bq56qkrn2r")))) + (base32 "15dimqp8zlqaaa2l46r22srp1py38mlmn69ph1j5fmrd54w43m0d")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 45d3faeafb..ca8f7a9f80 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -808,3 +808,25 @@ code will be mixed in with the actual programming logic. This implementation provides a number of utilities to make coding with expected cleaner.") (home-page "https://tl.tartanllama.xyz/") (license license:cc0))) + +(define-public magic-enum + (package + (name "magic-enum") + (version "0.7.2") + (home-page "https://github.com/Neargye/magic_enum") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "07j5zdf3vkliwrcv6k663k35akn7qp23794sz2mnvkj9hbv9s8cx")))) + (build-system cmake-build-system) + (native-inputs + `(("gcc" ,gcc-9))) + (synopsis "C++17 header only library for compile time reflection of enums") + (description "Magic Enum offers static reflection of enums, with +conversions to and from strings, iteration and related functionality.") + (license license:expat))) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 40f8e82c34..874a77c552 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015, 2016 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2016, 2017 Ben Woodcroft <donttrustben@gmail.com> @@ -126,14 +126,14 @@ files and provide more explicit control over line endings.") (define-public r-diffobj (package (name "r-diffobj") - (version "0.3.2") + (version "0.3.3") (source (origin (method url-fetch) (uri (cran-uri "diffobj" version)) (sha256 (base32 - "0v18zz14g8ppzmj1d997rdmsfh327ml4wvpmfx168lravdsk5ym2")))) + "1x3d5sk8mk0s2d7dq8wxi1zv6krlx33n22ls2jwnb58b8xrmakj1")))) (properties `((upstream-name . "diffobj"))) (build-system r-build-system) (propagated-inputs `(("r-crayon" ,r-crayon))) @@ -178,14 +178,14 @@ easier.") (define-public r-rticles (package (name "r-rticles") - (version "0.17") + (version "0.18") (source (origin (method url-fetch) (uri (cran-uri "rticles" version)) (sha256 (base32 - "1wbwva5n88dw3vvhcrlzkr58cv03hyx0dqgfmxj7d0dgf4ichr3c")))) + "1srczjy9dqw06glrv95798xsg462kfbbwm3yk1fv1zhpz9jhakwv")))) (properties `((upstream-name . "rticles"))) (build-system r-build-system) (propagated-inputs @@ -639,13 +639,13 @@ objects.") (define-public r-mboost (package (name "r-mboost") - (version "2.9-3") + (version "2.9-4") (source (origin (method url-fetch) (uri (cran-uri "mboost" version)) (sha256 (base32 - "1qp5c43kc0939sss5w3hhn794lbi69wgfsa31sq4c8vzh35pjqmf")))) + "1dgyc38axfk2a430wsdnnk76xikizkyxf5r0l1kbp6cacrx6idz0")))) (build-system r-build-system) (propagated-inputs `(("r-lattice" ,r-lattice) @@ -1024,19 +1024,17 @@ into a pipeline of data manipulation and visualisation.") (define-public r-httpuv (package (name "r-httpuv") - (version "1.5.4") + (version "1.5.5") (source (origin (method url-fetch) (uri (cran-uri "httpuv" version)) (sha256 (base32 - "066rprqvz9qln6xd85x1yh1wbbmzd157xjl8zq1zbgr8l6347inm")) + "05rir03xwamwfq5691vx0x957sgmr4i8iv5vpx5rv1f74y4wkrhb")) ;; 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.4-unvendor-libuv.patch")) - (modules '((guix build utils) - (ice-9 ftw) - (srfi srfi-1))) + (patches (search-patches "r-httpuv-1.5.5-unvendor-libuv.patch")) + (modules '((guix build utils))) (snippet `(begin (delete-file-recursively "src/libuv") @@ -1080,13 +1078,13 @@ particularly easy to create complete web applications using httpuv alone.") (define-public r-jsonlite (package (name "r-jsonlite") - (version "1.7.1") + (version "1.7.2") (source (origin (method url-fetch) (uri (cran-uri "jsonlite" version)) (sha256 (base32 - "1wygpnycmyf339x92hwapqk7nc1gs9cadx890b809a9spjhah41a")))) + "1lhzcpz9clwq04i5m6jzkvw9x03pwlqrixv4l9xzchjr8d84nd86")))) (build-system r-build-system) (native-inputs `(("r-knitr" ,r-knitr))) @@ -1106,13 +1104,13 @@ in systems and applications.") (define-public r-servr (package (name "r-servr") - (version "0.20") + (version "0.21") (source (origin (method url-fetch) (uri (cran-uri "servr" version)) (sha256 (base32 - "0px75vkc6q4iwbirr27bbrbpv0v9ial7zijnbd6dhjccwxl3x1l3")))) + "12fk585hmz735v4hra8da9wld1fmd67byqnf95m7jjyh7l3dmh1z")))) (build-system r-build-system) (propagated-inputs `(("r-httpuv" ,r-httpuv) @@ -1130,13 +1128,13 @@ directory.") (define-public r-htmltools (package (name "r-htmltools") - (version "0.5.0") + (version "0.5.1") (source (origin (method url-fetch) (uri (cran-uri "htmltools" version)) (sha256 (base32 - "07fjznax5sin563ddnzlb7iwc8b39wzf7ymjn66pbmxgskijq2pz")))) + "01v33zcs9rv16r6v8ckqh92k5axj6skmk9hyakmqqmgra522xj3a")))) (build-system r-build-system) (propagated-inputs `(("r-base64enc" ,r-base64enc) @@ -1151,13 +1149,13 @@ directory.") (define-public r-htmlwidgets (package (name "r-htmlwidgets") - (version "1.5.2") + (version "1.5.3") (source (origin (method url-fetch) (uri (cran-uri "htmlwidgets" version)) (sha256 (base32 - "0072wlkl58lav3qszzqw6pmx8qra4784r0yb6rx4lg7rbrik6335")))) + "0a8g7wqd3qxnhwkm9c9bkzg29db7gvjiaa5y038ln8nch8qq7981")))) (build-system r-build-system) (propagated-inputs `(("r-htmltools" ,r-htmltools) @@ -1728,14 +1726,14 @@ in R and Shiny via the D3 visualization library.") (define-public r-crosstalk (package (name "r-crosstalk") - (version "1.1.0.1") + (version "1.1.1") (source (origin (method url-fetch) (uri (cran-uri "crosstalk" version)) (sha256 (base32 - "03ihj7cimkklrbad9zic78xsrfcisygmgy859hqnx0hiph80p9rn")))) + "1n6c6s7a6yxiwvva71x6bzcrim8xprl5s01fqiy61yq0y3vk8cpd")))) (build-system r-build-system) (propagated-inputs `(("r-htmltools" ,r-htmltools) @@ -2143,13 +2141,13 @@ initiative to bring PASSTEC 2000 functionalities to R.") (define-public r-partykit (package (name "r-partykit") - (version "1.2-10") + (version "1.2-11") (source (origin (method url-fetch) (uri (cran-uri "partykit" version)) (sha256 (base32 - "1jg68rqhk2r0h2hk50xl99zp56b1nfdcam06kfvssqrkgkavkswf")))) + "00n6a74x257m2jk7jadjfxaclihxqpqwh356bgxmq8rag0nk70rs")))) (build-system r-build-system) (propagated-inputs `(("r-formula" ,r-formula) @@ -2241,13 +2239,13 @@ processes. Most of its code is based on the @code{psutil} Python package.") (define-public r-pkgbuild (package (name "r-pkgbuild") - (version "1.1.0") + (version "1.2.0") (source (origin (method url-fetch) (uri (cran-uri "pkgbuild" version)) (sha256 - (base32 "1gdbrjq4kiwm45c6pb23mp327qyjvslhyf72ca4zhlzwc5vgp6xk")))) + (base32 "0qx920h2viwjg10va81nj0xja495d8ni6vcc25ggvzki6a6k069f")))) (build-system r-build-system) (propagated-inputs `(("r-callr" ,r-callr) @@ -2298,13 +2296,13 @@ you to rapidly iterate while developing a package.") (define-public r-rcpp (package (name "r-rcpp") - (version "1.0.5") + (version "1.0.6") (source (origin (method url-fetch) (uri (cran-uri "Rcpp" version)) (sha256 - (base32 "012wbj446k1wz6bp6bpf6h77ypvcsw69xvnax6qf6vyc7dj2qimq")))) + (base32 "04ph6lm36cmvz01ng53pvvf3jxvzsn9smyflkfc7l3q0pib4gwn9")))) (build-system r-build-system) (home-page "http://www.rcpp.org") (synopsis "Seamless R and C++ integration") @@ -2473,14 +2471,14 @@ validation and filtering on the values, making options invisible or private.") (define-public r-circlize (package (name "r-circlize") - (version "0.4.11") + (version "0.4.12") (source (origin (method url-fetch) (uri (cran-uri "circlize" version)) (sha256 (base32 - "1s84xl7kv3qc1261xxaq4aqh64gwywhacsf5nh6yf8djw0d1w42d")))) + "1x2j6a80bb4fly3dm91ias964s1gb1cmzj3lyh69ikwjaam0rdmk")))) (build-system r-build-system) (propagated-inputs `(("r-colorspace" ,r-colorspace) @@ -2581,14 +2579,14 @@ compare different dendrograms to one another.") (define-public r-getoptlong (package (name "r-getoptlong") - (version "1.0.4") + (version "1.0.5") (source (origin (method url-fetch) (uri (cran-uri "GetoptLong" version)) (sha256 (base32 - "0l9pa9dx8pcg3j7jn4b9k98g7r5vdsvnmf6apnifzm57mc0vlkg6")))) + "00fpm6nd3kqa2ikasxa62jzywi46fvvmx1mdavcp5yrxxn37j8wc")))) (properties `((upstream-name . "GetoptLong"))) (build-system r-build-system) (inputs @@ -2718,13 +2716,13 @@ quantities.") (define-public r-restrserve (package (name "r-restrserve") - (version "0.4.0") + (version "0.4.1") (source (origin (method url-fetch) (uri (cran-uri "RestRserve" version)) (sha256 - (base32 "07mm65yxzpwlg6x3lsggj41v8nl4m6v9mszhqjpgj19v3yxvwgi0")))) + (base32 "1486hrzj5q5w4nbrsbqlv7vv20ly01y90qc2vygl5syzwvyjd422")))) (build-system r-build-system) (propagated-inputs `(("r-checkmate" ,r-checkmate) @@ -2774,20 +2772,22 @@ package also provides a C++ API, that works with or without Rcpp.") (define-public r-ggally (package (name "r-ggally") - (version "2.0.0") + (version "2.1.0") (source (origin (method url-fetch) (uri (cran-uri "GGally" version)) (sha256 (base32 - "1gkmpzh1yvwvypkw0nwqv3gsf6za3220wig3rfv8g23kss60rl1s")))) + "0lvcvlc8p2cii7rqx7m81f7cv3kk9mlf7cbbgv7l75g7ljw8dyvz")))) (properties `((upstream-name . "GGally"))) (build-system r-build-system) (inputs - `(("libressl" ,libressl))) + `(("openssl" ,openssl))) (propagated-inputs - `(("r-ggplot2" ,r-ggplot2) + `(("r-dplyr" ,r-dplyr) + ("r-forcats" ,r-forcats) + ("r-ggplot2" ,r-ggplot2) ("r-gtable" ,r-gtable) ("r-lifecycle" ,r-lifecycle) ("r-plyr" ,r-plyr) @@ -2795,7 +2795,8 @@ package also provides a C++ API, that works with or without Rcpp.") ("r-rcolorbrewer" ,r-rcolorbrewer) ("r-reshape" ,r-reshape) ("r-rlang" ,r-rlang) - ("r-scales" ,r-scales))) + ("r-scales" ,r-scales) + ("r-tidyr" ,r-tidyr))) (home-page "https://ggobi.github.io/ggally") (synopsis "Extension to ggplot2") (description @@ -2830,13 +2831,13 @@ most popular ones.") (define-public r-sp (package (name "r-sp") - (version "1.4-4") + (version "1.4-5") (source (origin (method url-fetch) (uri (cran-uri "sp" version)) (sha256 - (base32 "0zzw1gfic5b311vrbkmmmaap3yllgd192af067l5ymm885jqm1zs")))) + (base32 "1nh9izsnszzm5kbq461w8bi0yh7fqzb74b2zmpg5qis0slbb5vkb")))) (build-system r-build-system) (propagated-inputs `(("r-lattice" ,r-lattice))) @@ -3387,14 +3388,14 @@ contexts.") (define-public r-squarem (package (name "r-squarem") - (version "2020.5") + (version "2021.1") (source (origin (method url-fetch) (uri (cran-uri "SQUAREM" version)) (sha256 (base32 - "1f0j5pbsz2wi7dfl8h8gvdl991bjywiwkd2f6z0xgkh87kl5y0b4")))) + "0n1s32l9p4vdm3h5q6g43s0qbpzry08difsh0yay80wrla6f3rb6")))) (properties `((upstream-name . "SQUAREM"))) (build-system r-build-system) (home-page "https://coah.jhu.edu/people/Faculty_personal_Pages/Varadhan.html") @@ -3552,14 +3553,14 @@ dimensioned arrays.") (define-public r-rmysql (package (name "r-rmysql") - (version "0.10.20") + (version "0.10.21") (source (origin (method url-fetch) (uri (cran-uri "RMySQL" version)) (sha256 (base32 - "0lv9m6zpm8dgv7yixr6xhw379vbq45d7n7gkrmjrppdj8vcih77i")))) + "0cbb5ln9iigl816nzvsls9zil5qlfr8yv2aginapqv6n69nz0srs")))) (properties `((upstream-name . "RMySQL"))) (build-system r-build-system) (inputs @@ -3765,14 +3766,14 @@ problems as well as resampling based estimators of prediction error.") (define-public r-psych (package (name "r-psych") - (version "2.0.9") + (version "2.0.12") (source (origin (method url-fetch) (uri (cran-uri "psych" version)) (sha256 (base32 - "0wdh580a0psbdil28n0d85hnp42wmn11hcbnihjq8r7h54drgzpn")))) + "0k5dw5nb7kx7f21b0z01dry99qcpnk7iaicv7xq9d35wv2hx8wca")))) (build-system r-build-system) (propagated-inputs `(("r-lattice" ,r-lattice) @@ -3818,14 +3819,14 @@ by base R methods related to model fitting.") (define-public r-broom (package (name "r-broom") - (version "0.7.2") + (version "0.7.3") (source (origin (method url-fetch) (uri (cran-uri "broom" version)) (sha256 (base32 - "18qkgw5f46cfr8sc7r9a261ivn3s4w88sdj653gaa20723179300")))) + "0bxwmqj37m06ci378xqlf7kar7pg5g903i1vnrv4i256dkj50mny")))) (build-system r-build-system) (propagated-inputs `(("r-backports" ,r-backports) @@ -3922,18 +3923,19 @@ for certain use cases.") (define-public r-ggrepel (package (name "r-ggrepel") - (version "0.8.2") + (version "0.9.1") (source (origin (method url-fetch) (uri (cran-uri "ggrepel" version)) (sha256 (base32 - "1qaifn3dazdqbqlii210xhw7yf142iw7g9p2axmmxbz90p0by08d")))) + "1z5xyr5f4aryy0v1gzz9m8m4s5fzzwbrf0fxll1nbflr8xnr3yr9")))) (build-system r-build-system) (propagated-inputs `(("r-ggplot2" ,r-ggplot2) ("r-rcpp" ,r-rcpp) + ("r-rlang" ,r-rlang) ("r-scales" ,r-scales))) (native-inputs `(("r-knitr" ,r-knitr))) ; for vignettes @@ -4228,14 +4230,14 @@ programming} (SQP) based solver).") (define-public r-hardyweinberg (package (name "r-hardyweinberg") - (version "1.6.9") + (version "1.7.1") (source (origin (method url-fetch) (uri (cran-uri "HardyWeinberg" version)) (sha256 (base32 - "0l93r1hkr483hp4yd7rm7mdkgl5lp0nkvv0inahj3r1cplgfxpvs")))) + "0afjz818yvaq3akvgpy4irnlpspd2dj71qkrwj81lm9y36ypwlw6")))) (properties `((upstream-name . "HardyWeinberg"))) (build-system r-build-system) (propagated-inputs @@ -4539,20 +4541,22 @@ plotting. a three dimensional point cloud.") (define-public r-ggridges (package (name "r-ggridges") - (version "0.5.2") + (version "0.5.3") (source (origin (method url-fetch) (uri (cran-uri "ggridges" version)) (sha256 (base32 - "03pz257aw0mkh5k75rby9givkc1ky3n5scvhjhjiz9vry9fpffmh")))) + "0bmlqy1p6rac90af97ffpdi6php7dblx66l2hcm8ljidgyqzmspm")))) (build-system r-build-system) (propagated-inputs `(("r-ggplot2" ,r-ggplot2) ("r-plyr" ,r-plyr) ("r-scales" ,r-scales) ("r-withr" ,r-withr))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://github.com/clauswilke/ggridges") (synopsis "Ridgeline plots in ggplot2") (description @@ -4798,13 +4802,13 @@ iVAT).") (define-public r-xfun (package (name "r-xfun") - (version "0.19") + (version "0.20") (source (origin (method url-fetch) (uri (cran-uri "xfun" version)) (sha256 - (base32 "15yyigkl1g9w9d7097hrm94dxn1af333ywr5xdw78qqrw6npn0iv")))) + (base32 "043wv9qihs3r29810mf8ajpn2iks1bxq44wbxz8sfpix5b8kjhi8")))) (build-system r-build-system) ;; knitr itself depends on xfun #; @@ -4861,14 +4865,14 @@ to variables on the left-hand side of the assignment.") (define-public r-vctrs (package (name "r-vctrs") - (version "0.3.5") + (version "0.3.6") (source (origin (method url-fetch) (uri (cran-uri "vctrs" version)) (sha256 (base32 - "1k1mcq7jkpc55dsm0wb4k8asc1irvmi5884v3ap4sabf22c5sq0i")))) + "09ddxgzyah7lw42hn6n8fynsixf43s10jamsf94d2aidky63czfz")))) (build-system r-build-system) (propagated-inputs `(("r-digest" ,r-digest) @@ -4948,14 +4952,14 @@ terminals.") (define-public r-tinytex (package (name "r-tinytex") - (version "0.27") + (version "0.28") (source (origin (method url-fetch) (uri (cran-uri "tinytex" version)) (sha256 (base32 - "10hbc9h1fsw91w5f4fjcaqy68b3n1wr6pml01fnkf3pdjiri5sj0")))) + "11pa1q7gl17ala74lz10qbghk2yqanl9pylwvi9b4kmhx856b83n")))) (build-system r-build-system) (propagated-inputs `(("r-xfun" ,r-xfun))) @@ -5496,14 +5500,14 @@ sample Robust Rank-Order Distributional Test.") (define-public r-expm (package (name "r-expm") - (version "0.999-5") + (version "0.999-6") (source (origin (method url-fetch) (uri (cran-uri "expm" version)) (sha256 (base32 - "0y98ya8rhy891nysjlzzy7kcm13dsz8gvxwzvbkmcp1xx0vicxc7")))) + "1p5dapwv8ycxaysgi6imnby04i4kh1c5a2czqa4wygz0s8pr2y9c")))) (build-system r-build-system) (propagated-inputs `(("r-matrix" ,r-matrix))) (native-inputs `(("gfortran" ,gfortran))) @@ -6042,14 +6046,14 @@ specific S3-method.") (define-public r-vim (package (name "r-vim") - (version "6.0.0") + (version "6.1.0") (source (origin (method url-fetch) (uri (cran-uri "VIM" version)) (sha256 (base32 - "0ddhca4v912q82rjpf1qld6i6g2c381g0v5b4hbnygr3lm6a7wiv")))) + "1a8aw0ysaf0al95m2la2zx1p3g5mnwqx0x30br1s1dqqkfnv57hz")))) (properties `((upstream-name . "VIM"))) (build-system r-build-system) (propagated-inputs @@ -6530,14 +6534,14 @@ Python's @url{https://github.com/ActiveState/appdirs,Appdirs} to R.") (define-public r-renv (package (name "r-renv") - (version "0.12.3") + (version "0.12.5") (source (origin (method url-fetch) (uri (cran-uri "renv" version)) (sha256 (base32 - "0k31x19gzpffb701c76p840cip10c0dh8yv3wcs30gqi0ag1g77l")))) + "0wfq1z5glng6jrfxj25mjhp129z6468gaszr9ggks5gp8lrwszzh")))) (properties `((upstream-name . "renv"))) (build-system r-build-system) (native-inputs @@ -6867,19 +6871,20 @@ clustering.") (define-public r-factominer (package (name "r-factominer") - (version "2.3") + (version "2.4") (source (origin (method url-fetch) (uri (cran-uri "FactoMineR" version)) (sha256 (base32 - "0ldgf3daksh6lpblhqys67m4mxqx3q9s9n5plfam6dwshfik0ky6")))) + "0lg8n9fxxk46nchnj4pbpqqf4swxfsq7r9jzr36dmd36kb7avqxr")))) (properties `((upstream-name . "FactoMineR"))) (build-system r-build-system) (propagated-inputs `(("r-car" ,r-car) ("r-cluster" ,r-cluster) + ("r-dt" ,r-dt) ("r-ellipse" ,r-ellipse) ("r-flashclust" ,r-flashclust) ("r-ggplot2" ,r-ggplot2) @@ -6888,6 +6893,8 @@ clustering.") ("r-leaps" ,r-leaps) ("r-mass" ,r-mass) ("r-scatterplot3d" ,r-scatterplot3d))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "http://factominer.free.fr") (synopsis "Multivariate exploratory data analysis and data mining") (description @@ -6938,14 +6945,14 @@ steps and provides ggplot2-based elegant data visualization.") (define-public r-fansi (package (name "r-fansi") - (version "0.4.1") + (version "0.4.2") (source (origin (method url-fetch) (uri (cran-uri "fansi" version)) (sha256 (base32 - "028ywjy538psnmdnddvy5jr3idzffr4hikzr4x97x0m30g4fws9w")))) + "0i7wmaflkjzdbggqv31wnsj3m9imvc6db429vyjk64xrz1ng1vd2")))) (build-system r-build-system) (native-inputs `(("r-knitr" ,r-knitr))) ; for vignettes @@ -7147,18 +7154,17 @@ references and Rd files.") (define-public r-officer (package (name "r-officer") - (version "0.3.15") + (version "0.3.16") (source (origin (method url-fetch) (uri (cran-uri "officer" version)) (sha256 (base32 - "1s9hrkdx105c1plpxywv68bmp8hvvxbdizhwx81fxr79fhj62x5j")))) + "1ls5kp70jfxrzxxb3xrg8sn2fyk6qd7rmx23n5jxi7z7850avjrj")))) (build-system r-build-system) (propagated-inputs - `(("r-magrittr" ,r-magrittr) - ("r-r6" ,r-r6) + `(("r-r6" ,r-r6) ("r-uuid" ,r-uuid) ("r-xml2" ,r-xml2) ("r-zip" ,r-zip))) @@ -7180,14 +7186,14 @@ to help insert or delete content at a specific location in the document.") (define-public r-profilemodel (package (name "r-profilemodel") - (version "0.6.0") + (version "0.6.1") (source (origin (method url-fetch) (uri (cran-uri "profileModel" version)) (sha256 (base32 - "0yq8hy43h62hlz8bbf9ila4a3xcwizi1if27b78xc5y857ncwad8")))) + "01m5nb8cmq0aq555pxk2a99182si65hhmn68yn9nal2j3zl2bp4i")))) (properties `((upstream-name . "profileModel"))) (build-system r-build-system) (home-page "https://github.com/ikosmidis/profileModel") @@ -7409,14 +7415,14 @@ other add-on packages.") (define-public r-insight (package (name "r-insight") - (version "0.11.1") + (version "0.12.0") (source (origin (method url-fetch) (uri (cran-uri "insight" version)) (sha256 (base32 - "1m95xfvai1kbzqxdggjvdbk6ax2dg4v2lrfpqn7v607g2n77n2k0")))) + "0gkvcw9d729ql1gfrpxzgrag4xafd0hchrdww215qz11ma1rzy7s")))) (build-system r-build-system) (native-inputs `(("r-knitr" ,r-knitr))) @@ -7463,14 +7469,14 @@ vice versa), or to deal with multiple declared missing values.") (define-public r-sjmisc (package (name "r-sjmisc") - (version "2.8.5") + (version "2.8.6") (source (origin (method url-fetch) (uri (cran-uri "sjmisc" version)) (sha256 (base32 - "0xl0s56d13bia89ai619rcr0fzbvc2k8f7hjxik4qp0g4v87zzlk")))) + "1nfrkv5jfnwb85blpv7yk7xac1myzi2c30bqcf7xicniknkjwycr")))) (build-system r-build-system) (propagated-inputs `(("r-dplyr" ,r-dplyr) @@ -7514,23 +7520,25 @@ hypothesis of normality.") (define-public r-moonbook (package (name "r-moonbook") - (version "0.2.3") + (version "0.2.4") (source (origin (method url-fetch) (uri (cran-uri "moonBook" version)) (sha256 (base32 - "0hys56mwbm776ff7dibi8wzyf69qiais9rs1jazv79lk6h56s9s6")))) + "0z78pzc8sr2g19xjdd9cmai4iqyifmh79gj8x40ddww6a27dalry")))) (properties `((upstream-name . "moonBook"))) (build-system r-build-system) (propagated-inputs `(("r-magrittr" ,r-magrittr) ("r-nortest" ,r-nortest) - ("r-purrr" ,r-purrr) ("r-sjmisc" ,r-sjmisc) ("r-stringr" ,r-stringr) - ("r-survival" ,r-survival))) + ("r-survival" ,r-survival) + ("r-ztable" ,r-ztable))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://github.com/cardiomoon/moonBook") (synopsis "Functions and datasets for the book by Keon-Woong Moon") (description @@ -7769,14 +7777,14 @@ Group (Non-)Overlap considerations.") (define-public r-deriv (package (name "r-deriv") - (version "4.1.1") + (version "4.1.2") (source (origin (method url-fetch) (uri (cran-uri "Deriv" version)) (sha256 (base32 - "1fzchsignpb7cpizbf6l8v9k1nkmaf4r4j3mnxz0csl2g2npi1xc")))) + "1j9sh1w9lsnnhlh59g4ghykyfx46rxh380s8imvm7pzna7rw7c64")))) (properties `((upstream-name . "Deriv"))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/Deriv") @@ -7901,14 +7909,14 @@ containing one or more SNPs that evolved under directional selection.") (define-public r-proc (package (name "r-proc") - (version "1.16.2") + (version "1.17.0.1") (source (origin (method url-fetch) (uri (cran-uri "pROC" version)) (sha256 (base32 - "0apwa5zzqh74pjnvf5a1s5qf6i9r5h44jdllfrwymkd2v479d2xn")))) + "1gd6a47d6bcfd237s3g7r9rws8x2sg7zrvq5k6clpc41zdpp4712")))) (properties `((upstream-name . "pROC"))) (build-system r-build-system) (propagated-inputs @@ -8176,13 +8184,13 @@ and coverage methods to tune the choice of threshold.") (define-public r-ggstance (package (name "r-ggstance") - (version "0.3.4") + (version "0.3.5") (source (origin (method url-fetch) (uri (cran-uri "ggstance" version)) (sha256 - (base32 "0aqz3dn02cgij018a4sglqwrwr9dzzj12l8xr1064q7hfd4f64m1")))) + (base32 "0jz9vvnmcc6a38n8nzr458r65sna23bgn5r8mxdhzdlyqibihr7d")))) (build-system r-build-system) (propagated-inputs `(("r-ggplot2" ,r-ggplot2) @@ -8202,13 +8210,13 @@ and coverage methods to tune the choice of threshold.") (define-public r-mosaiccore (package (name "r-mosaiccore") - (version "0.8.0") + (version "0.9.0") (source (origin (method url-fetch) (uri (cran-uri "mosaicCore" version)) (sha256 - (base32 "00va6x1i8d3wkm1bgsms9dsjfn5a1l43prpl9pqirgq3zm85hrqj")))) + (base32 "1h3ixzna4xy42rdnd89jj0v9q0riy3fnkd33z6l5c0zaidzm58fz")))) (properties `((upstream-name . "mosaicCore"))) (build-system r-build-system) (propagated-inputs @@ -8222,26 +8230,62 @@ and coverage methods to tune the choice of threshold.") "Common utilities used in other Mosaic family packages are collected here.") (license license:gpl2+))) +(define-public r-labelled + (package + (name "r-labelled") + (version "2.7.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "labelled" version)) + (sha256 + (base32 + "1nsb0mh0jg7gggc41b6v55nmfq07g0qn9fy55x4jws5dscs6pdmi")))) + (properties `((upstream-name . "labelled"))) + (build-system r-build-system) + (propagated-inputs + `(("r-dplyr" ,r-dplyr) + ("r-haven" ,r-haven) + ("r-lifecycle" ,r-lifecycle) + ("r-pillar" ,r-pillar) + ("r-rlang" ,r-rlang) + ("r-tidyr" ,r-tidyr) + ("r-vctrs" ,r-vctrs))) + (native-inputs + `(("r-knitr" ,r-knitr))) + (home-page "http://larmarange.github.io/labelled/") + (synopsis "Manipulating labelled data") + (description + "This package provides useful functions to deal with the +@code{haven_labelled} and @code{haven_labelled_spss} classes introduced by the +haven package. ") + (license license:gpl3))) + (define-public r-ggformula (package (name "r-ggformula") - (version "0.9.4") + (version "0.10.1") (source (origin (method url-fetch) (uri (cran-uri "ggformula" version)) (sha256 - (base32 "04vdhg1bbc1psrx9ggaphz7cx4fw5xsmhkqpqfcg2w4ba2bjy46f")))) + (base32 "1ph5jd8svk8hmshi894vmmpq3zwgdmf4yn3gmdlkad68z8jynhsp")))) (build-system r-build-system) (propagated-inputs `(("r-ggforce" ,r-ggforce) ("r-ggplot2" ,r-ggplot2) + ("r-ggridges" ,r-ggridges) ("r-ggstance" ,r-ggstance) + ("r-labelled" ,r-labelled) ("r-magrittr" ,r-magrittr) ("r-mosaiccore" ,r-mosaiccore) ("r-rlang" ,r-rlang) + ("r-scales" ,r-scales) ("r-stringr" ,r-stringr) ("r-tibble" ,r-tibble))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://github.com/ProjectMOSAIC/ggformula/") (synopsis "Formula interface for the @code{r-ggplot2}") (description @@ -8254,13 +8298,13 @@ while providing the intuitive capabilities of @code{r-ggplot2}.") (define-public r-mosaicdata (package (name "r-mosaicdata") - (version "0.20.1") + (version "0.20.2") (source (origin (method url-fetch) (uri (cran-uri "mosaicData" version)) (sha256 - (base32 "05mrwvs7awhpv2gvk0jjva74gndfgh2cl17slxcjhwlpga8nmxji")))) + (base32 "0h3f5fgzkzjfgf3ml0qa5j52921y6wy6jgggxmhs31bs8fd4srg4")))) (properties `((upstream-name . "mosaicData"))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/mosaicData/") @@ -8868,14 +8912,14 @@ samples is large and the number of mixture components is not too large.") (define-public r-magick (package (name "r-magick") - (version "2.5.2") + (version "2.6.0") (source (origin (method url-fetch) (uri (cran-uri "magick" version)) (sha256 (base32 - "0myvryya7b4bbw0hs4jqflrbdffmg78kz28gbybw3yc7zwc7sqxx")))) + "1k4fqhxh2ppynl56fs044wpn4wk6gbv6lwp2x4x7j67zwcv56n36")))) (build-system r-build-system) (inputs `(("imagemagick" ,imagemagick) @@ -9310,14 +9354,14 @@ Hothorn, Westfall, 2010, CRC Press).") (define-public r-emmeans (package (name "r-emmeans") - (version "1.5.2-1") + (version "1.5.3") (source (origin (method url-fetch) (uri (cran-uri "emmeans" version)) (sha256 (base32 - "0ndbjhglycdycppz9lbj3vhiqv2mp0z6h4w8fbyjziqx15ai5h59")))) + "11x7bn260v91gb7qri1pq54l339zm4msa5frc8saqb9ykbg4dby5")))) (build-system r-build-system) (propagated-inputs `(("r-estimability" ,r-estimability) @@ -9361,13 +9405,13 @@ Cohen (1988).") (define-public r-libcoin (package (name "r-libcoin") - (version "1.0-6") + (version "1.0-7") (source (origin (method url-fetch) (uri (cran-uri "libcoin" version)) (sha256 - (base32 "0njfdbz4mkyasxm80p0fb0qibvzz7kdzddn8ybj2k6y8bx0w3bs8")))) + (base32 "1vb21pw3vpv2pdnfcddw2bax13v0dg656r28j0p8njcyhwk89xln")))) (build-system r-build-system) (propagated-inputs `(("r-mvtnorm" ,r-mvtnorm))) (home-page "https://cran.r-project.org/web/packages/libcoin") @@ -9380,14 +9424,14 @@ and permutation inference in the framework of Strasser and Weber (1999).") (define-public r-coin (package (name "r-coin") - (version "1.3-1") + (version "1.4-0") (source (origin (method url-fetch) (uri (cran-uri "coin" version)) (sha256 (base32 - "0qi03fyqw42a2vnqcia5l2m1mzyarj2q1iblknx9n19bdsd53qjx")))) + "1n2ad4m3zw8px6yc0h750k59pci3fqpnr742hhvsqirrwcdzp6zv")))) (build-system r-build-system) (propagated-inputs `(("r-libcoin" ,r-libcoin) @@ -9407,14 +9451,14 @@ correlation, censored, ordered and multivariate problems.") (define-public r-bayesplot (package (name "r-bayesplot") - (version "1.7.2") + (version "1.8.0") (source (origin (method url-fetch) (uri (cran-uri "bayesplot" version)) (sha256 (base32 - "0aqy4bfjq1fmds0vpacsmqih528cp8wk4v4w0balzkph6zqzpwcl")))) + "0j69a78l5z0wyxcz607amaa4jc8kwwvcia9wxyir65b8ks9gj1d6")))) (build-system r-build-system) (inputs `(("pandoc" ,pandoc) @@ -9471,13 +9515,13 @@ detection, parallelism through BLAS and parallel user templates.") (define-public r-sjstats (package (name "r-sjstats") - (version "0.18.0") + (version "0.18.1") (source (origin (method url-fetch) (uri (cran-uri "sjstats" version)) (sha256 - (base32 "17b1fcrhgjw66qa8zk2jj1bvz3vp5bnjn3p4y1wsg5ng5nxq8jz0")))) + (base32 "1cv80yjnyh6qihxf57zivihhia20gibr5f03x8aspy6382wnwlka")))) (build-system r-build-system) (propagated-inputs `(("r-bayestestr" ,r-bayestestr) @@ -9573,14 +9617,14 @@ ROPE percentage and pd).") (define-public r-performance (package (name "r-performance") - (version "0.6.0") + (version "0.6.1") (source (origin (method url-fetch) (uri (cran-uri "performance" version)) (sha256 (base32 - "0ai1pp6k0pmmjgpj7hc53s0h258c4mljln8lv3nd9r7kzrmic0gc")))) + "0wz2zc98r99pg6r4l09qxxzv1fwxwp1md6wmhay401568kd8h5zn")))) (build-system r-build-system) (propagated-inputs `(("r-bayestestr" ,r-bayestestr) @@ -9600,14 +9644,14 @@ effects models and Bayesian models.") (define-public r-ggeffects (package (name "r-ggeffects") - (version "1.0.0") + (version "1.0.1") (source (origin (method url-fetch) (uri (cran-uri "ggeffects" version)) (sha256 (base32 - "18diwssc5vij5g7zh9mv0ppcv3xgfi2jqzfx9srxfahg05sr1xdq")))) + "1c5rvycaqp7zp1j6j17c84v8nlpi0w7bhfxmcha4n37m0snk1kgy")))) (build-system r-build-system) (propagated-inputs `(("r-insight" ,r-insight) @@ -9630,14 +9674,14 @@ results using @code{ggplot2}.") (define-public r-effectsize (package (name "r-effectsize") - (version "0.4.1") + (version "0.4.3") (source (origin (method url-fetch) (uri (cran-uri "effectsize" version)) (sha256 (base32 - "1rbl63b1c7z9llznnwvclqrcgdd4hfmc7y66v7raqqf2a4nadqa5")))) + "1hcrnax9wf0nwsb8nv15rxw8yy8w5dak16dw3w5bxi8xnf56lkz2")))) (properties `((upstream-name . "effectsize"))) (build-system r-build-system) (propagated-inputs @@ -9657,13 +9701,13 @@ conversion of indices such as Cohen's d, r, odds, etc.") (define-public r-sjplot (package (name "r-sjplot") - (version "2.8.6") + (version "2.8.7") (source (origin (method url-fetch) (uri (cran-uri "sjPlot" version)) (sha256 - (base32 "1dn9nvvp4jd45kwr4rpp2abf7xdpdmiv41rr3fkdb32a136bzx4b")))) + (base32 "1g4qabg654kwdm09ihp4h3mg64a1d7a7gsn6w56rwsidqqaxilq0")))) (properties `((upstream-name . "sjPlot"))) (build-system r-build-system) (propagated-inputs @@ -9811,17 +9855,96 @@ when building command line applications. They fall back to alternatives on terminals that do not support Unicode.") (license license:expat))) +(define-public r-credentials + (package + (name "r-credentials") + (version "1.3.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "credentials" version)) + (sha256 + (base32 + "1w9zj34xdwz9bszsvhv2cbgq96y5sgxbh7ndn31pgfcpzlkfq6f1")))) + (properties `((upstream-name . "credentials"))) + (build-system r-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'setenv-HOME + (lambda _ + ;; This is necessary because git looks for $HOME/.gitconfig + (setenv "HOME" "/tmp") + #t))))) + (inputs + `(("git" ,git-minimal))) + (propagated-inputs + `(("r-askpass" ,r-askpass) + ("r-curl" ,r-curl) + ("r-jsonlite" ,r-jsonlite) + ("r-openssl" ,r-openssl) + ("r-sys" ,r-sys))) + (native-inputs + `(("r-knitr" ,r-knitr))) + (home-page "https://docs.ropensci.org/credentials/") + (synopsis "Tools for managing SSH and Git credentials") + (description + "This package assists you in setting up and retrieving of HTTPS and SSH +credentials for use with git and other services. For HTTPS remotes the +package interfaces the @command{git-credential} utility which @command{git} +uses to store HTTP usernames and passwords. For SSH remotes this package +provides convenient functions to find or generate appropriate SSH keys. The +package both helps the user to setup a local git installation, and also +provides a back-end for git/ssh client libraries to authenticate with existing +user credentials.") + (license license:expat))) + +(define-public r-gert + (package + (name "r-gert") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "gert" version)) + (sha256 + (base32 + "1lq4hgv2727lwcv8vha5af26nslj99rjxjrgflshmmcihawpls1n")))) + (properties `((upstream-name . "gert"))) + (build-system r-build-system) + (inputs + `(("libgit2" ,libgit2) + ("zlib" ,zlib))) + (propagated-inputs + `(("r-askpass" ,r-askpass) + ("r-credentials" ,r-credentials) + ("r-openssl" ,r-openssl) + ("r-rstudioapi" ,r-rstudioapi) + ("r-zip" ,r-zip))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("r-knitr" ,r-knitr))) + (home-page "https://docs.ropensci.org/gert/") + (synopsis "Simple Git client for R") + (description + "This package provides a simple git client for R based on libgit2 with +support for SSH and HTTPS remotes. All functions in gert use basic R data +types (such as vectors and data-frames) for their arguments and return values. +User credentials are shared with command line git through the +@code{git-credential} store and SSH keys stored on disk or ssh-agent.") + (license license:expat))) + (define-public r-usethis (package (name "r-usethis") - (version "1.6.3") + (version "2.0.0") (source (origin (method url-fetch) (uri (cran-uri "usethis" version)) (sha256 (base32 - "09lk04kycvf5x9ggrb6pwc7bx5mzqxwialm2w9vn1a0w0gh2gcfc")))) + "0m4qnnkdiizsdvq33x502zwkn98hw2qcfm45cjj031vaydcjpai2")))) (build-system r-build-system) (propagated-inputs `(("r-cli" ,r-cli) @@ -9830,11 +9953,13 @@ terminals that do not support Unicode.") ("r-curl" ,r-curl) ("r-desc" ,r-desc) ("r-fs" ,r-fs) + ("r-gert" ,r-gert) ("r-gh" ,r-gh) - ("r-git2r" ,r-git2r) ("r-glue" ,r-glue) + ("r-jsonlite" ,r-jsonlite) + ("r-lifecycle" ,r-lifecycle) ("r-purrr" ,r-purrr) - ("r-rematch2" ,r-rematch2) + ("r-rappdirs" ,r-rappdirs) ("r-rlang" ,r-rlang) ("r-rprojroot" ,r-rprojroot) ("r-rstudioapi" ,r-rstudioapi) @@ -10002,14 +10127,14 @@ ways.") (define-public r-summarytools (package (name "r-summarytools") - (version "0.9.6") + (version "0.9.8") (source (origin (method url-fetch) (uri (cran-uri "summarytools" version)) (sha256 (base32 - "03pcb2ild1rb9f15yq8b68p9bg10z5wk2x7ahgyzkwdh5f81vbq2")))) + "0n7rad6bkfn9cb99wbfzbwl5qzch48r0gafhddfcqvyh4fbn2k0j")))) (build-system r-build-system) (propagated-inputs `(("r-base64enc" ,r-base64enc) @@ -10024,6 +10149,8 @@ ways.") ("r-rapportools" ,r-rapportools) ("r-tibble" ,r-tibble) ("r-tidyr" ,r-tidyr))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://github.com/dcomtois/summarytools") (synopsis "Tools to quickly and neatly summarize data") (description @@ -10152,14 +10279,14 @@ the interfaces between R and C++.") (define-public r-mvabund (package (name "r-mvabund") - (version "4.1.3") + (version "4.1.6") (source (origin (method url-fetch) (uri (cran-uri "mvabund" version)) (sha256 (base32 - "1z58h4dk3mc2hfnfvc7pghk471cbp7ah2s1z2ria5igw4s80962b")))) + "0aisvax9d7bk6aykrcdcn1ji618r520mcrkr1i3jnck1qs31z41f")))) (build-system r-build-system) (propagated-inputs `(("r-mass" ,r-mass) @@ -10177,14 +10304,14 @@ analysing multivariate abundance data in community ecology.") (define-public r-afex (package (name "r-afex") - (version "0.28-0") + (version "0.28-1") (source (origin (method url-fetch) (uri (cran-uri "afex" version)) (sha256 (base32 - "0c47bq2llzw2b4avhkxyhmf1m2zjh9jsjiw2kww9n1bhwqsyr4ci")))) + "0blwqr5ni3psav1dcdmhfi4jy3b4scm5njimqfpr1d81zadvgc6g")))) (build-system r-build-system) (propagated-inputs `(("r-car" ,r-car) @@ -10294,14 +10421,14 @@ address a bug.") (define-public r-rcppannoy (package (name "r-rcppannoy") - (version "0.0.17") + (version "0.0.18") (source (origin (method url-fetch) (uri (cran-uri "RcppAnnoy" version)) (sha256 (base32 - "0z4dpvk2hmh817709l70jdl1vvnzn0vb9wlr5m8jza24sn9w14ac")))) + "0n68cf77gz34iq6w6ad87pbqwqam45nxp1gjzns4g6qhf7qdvrz4")))) (properties `((upstream-name . "RcppAnnoy"))) (build-system r-build-system) (propagated-inputs @@ -10410,17 +10537,18 @@ Bioconductor packages.") (define-public r-rgl (package (name "r-rgl") - (version "0.100.54") + (version "0.104.16") (source (origin (method url-fetch) (uri (cran-uri "rgl" version)) (sha256 (base32 - "1mgs2d8igmcdzzymfwbqdrypmaidd4pra5n5gnhsn9pm6pqzidqp")))) + "169a8riiam8445nl7rcwn0x92dlwyzh5xldvap6dcxjyjqmjwbdq")))) (build-system r-build-system) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("r-knitr" ,r-knitr))) (inputs `(("freetype" ,freetype) ("libpng" ,libpng) @@ -11017,14 +11145,14 @@ only sparse real matrices in Matrix package format are supported.") (define-public r-speedglm (package (name "r-speedglm") - (version "0.3-2") + (version "0.3-3") (source (origin (method url-fetch) (uri (cran-uri "speedglm" version)) (sha256 (base32 - "1b25zimk0z7ad62yacqdg0zk0qs0jja4i918ym942xfw4j1z3jjz")))) + "0f37w4lj8dpcg1sfkd7cv6qpdkanmb97mnd8zih2fxzv8bpd0rfh")))) (build-system r-build-system) (propagated-inputs `(("r-mass" ,r-mass) @@ -11401,14 +11529,14 @@ conditional reporting based on the current \"output level\".") (define-public r-tractor-base (package (name "r-tractor-base") - (version "3.3.2") + (version "3.3.3.1") (source (origin (method url-fetch) (uri (cran-uri "tractor.base" version)) (sha256 (base32 - "0y5gm0y4chl30f5qqq8qiiw4j8g32s4i9xrvyp3cwg902kf2p86i")))) + "0w5jw7pf77npkgig7667yikpbwv4dfk1dcq63qm88l409ga2f95p")))) (properties `((upstream-name . "tractor.base"))) (build-system r-build-system) (propagated-inputs @@ -11758,14 +11886,14 @@ preparing, executing, and processing HTTP requests.") (define-public r-gmp (package (name "r-gmp") - (version "0.6-1") + (version "0.6-2") (source (origin (method url-fetch) (uri (cran-uri "gmp" version)) (sha256 (base32 - "11rl7qmfrpp1974f0vzsi3zjyx147wlb82ydxak2b60khfvhrn90")))) + "03kzbflgpy5sgnzxmhshs5qv7jjmfc113ybkhxys4z8y7xdv9z3b")))) (build-system r-build-system) (arguments '(#:phases @@ -12254,17 +12382,19 @@ This makes it a convenient and fast interface to C/C++ and Fortran code.") (define-public r-spam (package (name "r-spam") - (version "2.5-1") + (version "2.6-0") (source (origin (method url-fetch) (uri (cran-uri "spam" version)) (sha256 - (base32 "0ry0a76cljlmilrzcriiizcidxyhq1i7i9bqhvl1qda81ld8hifi")))) + (base32 "0p5ycvpry955ldrgbbq3syy91wx9425mddpn8r5m9xwlirjxv3v3")))) (build-system r-build-system) (propagated-inputs `(("r-dotcall64" ,r-dotcall64))) - (native-inputs `(("gfortran" ,gfortran))) + (native-inputs + `(("gfortran" ,gfortran) + ("r-knitr" ,r-knitr))) (home-page "https://www.math.uzh.ch/pages/spam/") (synopsis "Sparse matrix algebra") (description @@ -12757,14 +12887,14 @@ them in distributed compute environments.") (define-public r-parallelly (package (name "r-parallelly") - (version "1.21.0") + (version "1.23.0") (source (origin (method url-fetch) (uri (cran-uri "parallelly" version)) (sha256 (base32 - "1hlr81khr7z4x9gprymdh19mdq3nw6wm8d2795sd2pa3ya6phnb0")))) + "025whcz55wj9jd73dalkbxh4l2331mqn758glr6hlf472lwf4v1p")))) (properties `((upstream-name . "parallelly"))) (build-system r-build-system) (home-page "https://github.com/HenrikBengtsson/parallelly") @@ -12785,14 +12915,14 @@ port-forwarding to your local computer.") (define-public r-future (package (name "r-future") - (version "1.20.1") + (version "1.21.0") (source (origin (method url-fetch) (uri (cran-uri "future" version)) (sha256 (base32 - "14k00g8c9zgf77d6q7x2vibvlivzk2rzj7lwn7v7d9nr6prqzlb6")))) + "0bfiy17n5rghxw0702k0vgpjkk13268lniifdlx59flf0q16d7lh")))) (build-system r-build-system) (propagated-inputs `(("r-digest" ,r-digest) @@ -12818,14 +12948,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.6.0") + (version "1.7.0") (source (origin (method url-fetch) (uri (cran-uri "future.apply" version)) (sha256 (base32 - "1zbfycjfvxnrigm6l2fd2zgnw96g0apiw426c73gkv3xv7bdy6ms")))) + "1ns5cf80vyabvyz9qp6kpvkg4jycinn7x6v7x6692fgjapdnmyig")))) (properties `((upstream-name . "future.apply"))) (build-system r-build-system) (propagated-inputs @@ -13131,14 +13261,14 @@ users of rARPACK are advised to switch to the RSpectra package.") (define-public r-compositions (package (name "r-compositions") - (version "2.0-0") + (version "2.0-1") (source (origin (method url-fetch) (uri (cran-uri "compositions" version)) (sha256 (base32 - "0xsx4n699q2r4pk2jrvifi3wi49lih7d1j3j6qgqqd31brg53jqr")))) + "03qslsfx11gshls901zlhw47prd55mf16w4mkmd8x1dgiwq938l4")))) (build-system r-build-system) (propagated-inputs `(("r-bayesm" ,r-bayesm) @@ -13419,17 +13549,19 @@ them (Anscombe-Glynn, D'Agostino, Bonett-Seier).") (define-public r-msir (package (name "r-msir") - (version "1.3.2") + (version "1.3.3") (source (origin (method url-fetch) (uri (cran-uri "msir" version)) (sha256 (base32 - "0pvc3q162vqq3k39nni732x05zzfz4y9y2zf56d83185ypszv9kb")))) + "1wm83m3cqd6llxb9p2jwim0wb81v84pgdmgcznygzaaq6kbn3n84")))) (build-system r-build-system) (propagated-inputs `(("r-mclust" ,r-mclust))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://cran.r-project.org/web/packages/msir") (synopsis "Model-based sliced inverse regression") (description @@ -13611,14 +13743,14 @@ graphs.") (define-public r-pbdzmq (package (name "r-pbdzmq") - (version "0.3-3.1") + (version "0.3-4") (source (origin (method url-fetch) (uri (cran-uri "pbdZMQ" version)) (sha256 (base32 - "08qmrzazadkyxlqc8830r0pckaq10l3fgj1f198xy6wwrm2lf0wy")))) + "0adiac53yq305ymhrds1gas4jm0rn1ddv7c7df5ky2cfhpb4ny87")))) (properties `((upstream-name . "pbdZMQ"))) (build-system r-build-system) (inputs @@ -14137,14 +14269,14 @@ barplots or heatmaps.") (define-public r-seqinr (package (name "r-seqinr") - (version "4.2-4") + (version "4.2-5") (source (origin (method url-fetch) (uri (cran-uri "seqinr" version)) (sha256 (base32 - "0pw035h17dmic8m0pb73fbyf6p4jbwggxjk5vpjlybn8dwd0rk93")))) + "1z1jipgrn9nrnxlx7bcf8c2chwpa3kfva0zgyb12xbr3kisn166y")))) (build-system r-build-system) (propagated-inputs `(("r-ade4" ,r-ade4) @@ -14270,14 +14402,14 @@ sampling.") (define-public r-deldir (package (name "r-deldir") - (version "0.2-3") + (version "0.2-9") (source (origin (method url-fetch) (uri (cran-uri "deldir" version)) (sha256 (base32 - "0kin1hsd6dj36kkg7n328mzp21wwn9jm69lvgg2rvbf6bq7q091d")))) + "0jfwff5kk0zraspsvbk26lphl3fnrc6xmhl4690hr0a5k177ildm")))) (build-system r-build-system) (native-inputs `(("gfortran" ,gfortran))) (home-page "https://cran.r-project.org/web/packages/deldir") @@ -14294,14 +14426,14 @@ tessellation.") (define-public r-sf (package (name "r-sf") - (version "0.9-6") + (version "0.9-7") (source (origin (method url-fetch) (uri (cran-uri "sf" version)) (sha256 (base32 - "01yqlnx9v7lzb6g4ywjlncz67cnkizszarnf2dmd4fi8abhw4zs9")))) + "175fmnnw11fjhfgjv9sn9b0jfjcqbybpgwsvv99d5yddigvw5jja")))) (build-system r-build-system) (inputs `(("gdal" ,gdal) @@ -14907,14 +15039,14 @@ handle missing genotypes at some SNPs.") (define-public r-sampling (package (name "r-sampling") - (version "2.8") + (version "2.9") (source (origin (method url-fetch) (uri (cran-uri "sampling" version)) (sha256 (base32 - "06pj7dan0mknpsblmlnk7am78qrnwgnql5vvx7vmbfvib7rj6s9m")))) + "11xis4vzn2ga8ml9xrgfgqzccvwbnabq35aidzdvpnvciybsanvz")))) (build-system r-build-system) (propagated-inputs `(("r-lpsolve" ,r-lpsolve) @@ -15180,14 +15312,14 @@ yeast.") (define-public r-gridgraphics (package (name "r-gridgraphics") - (version "0.5-0") + (version "0.5-1") (source (origin (method url-fetch) (uri (cran-uri "gridGraphics" version)) (sha256 (base32 - "0rlyc3xk8kfrfzbfd8n4javq3yxqd7lsfmi4q5n6s61srnrl6c1r")))) + "12yswy02j3h5wir7m5jnkhpjmb0sa4snn61vjd68i49qwsa6w219")))) (properties `((upstream-name . "gridGraphics"))) (build-system r-build-system) (home-page "https://github.com/pmur002/gridgraphics") @@ -16075,14 +16207,14 @@ code edited with @code{RStudio IDE}, @code{Emacs} and @code{Vim}.") (define-public r-sctransform (package (name "r-sctransform") - (version "0.3.1") + (version "0.3.2") (source (origin (method url-fetch) (uri (cran-uri "sctransform" version)) (sha256 (base32 - "0b8ni8dzlcikjm2bx5w8yi9vygx0qqxjrmnsy4kf7d1h03n2sxwa")))) + "1p3m6i28nlxh6r609syn88cwlbdpl3dw44dy3gsijk2ibq20mfsx")))) (build-system r-build-system) (propagated-inputs `(("r-future" ,r-future) @@ -16179,14 +16311,14 @@ parallel versions of vectorized R functions of the @code{mc*apply} family.") (define-public r-blme (package (name "r-blme") - (version "1.0-4") + (version "1.0-5") (source (origin (method url-fetch) (uri (cran-uri "blme" version)) (sha256 (base32 - "1ca2b0248k0fj3lczn9shfjplz1sl4ay4v6djldizp2ch2vwdgy2")))) + "0413j7gwr5yj14jamkizj55q7xii1a0kgazzj0ilqn2ascclz6k7")))) (build-system r-build-system) (propagated-inputs `(("r-lme4" ,r-lme4))) (home-page "https://github.com/vdorie/blme") @@ -16200,14 +16332,14 @@ extends the lme4 package.") (define-public r-batchtools (package (name "r-batchtools") - (version "0.9.14") + (version "0.9.15") (source (origin (method url-fetch) (uri (cran-uri "batchtools" version)) (sha256 (base32 - "1b78r70gm4a0wzjr367hqx2rfphfkbppp14d0l5zs2fvyz166lsx")))) + "0d2xy77hkzhcnyz8zxcv98i80fx6ripjw4rvyx4ww1d0vjjgqf52")))) (build-system r-build-system) (propagated-inputs `(("r-backports" ,r-backports) @@ -16593,20 +16725,19 @@ the current document.") (define-public r-xgboost (package (name "r-xgboost") - (version "1.2.0.1") + (version "1.3.2.1") (source (origin (method url-fetch) (uri (cran-uri "xgboost" version)) (sha256 (base32 - "16hpvv2hwdzcyg90z7c1g5d2hj011qk8mivy4l2nqd2g7rkjwis4")))) + "117q8xqm82589517fi8xicd8724v9c0wnq3qpl84h6nm3aw65x1g")))) (build-system r-build-system) (propagated-inputs `(("r-data-table" ,r-data-table) ("r-magrittr" ,r-magrittr) - ("r-matrix" ,r-matrix) - ("r-stringi" ,r-stringi))) + ("r-matrix" ,r-matrix))) (native-inputs `(("r-knitr" ,r-knitr))) (home-page "https://github.com/dmlc/xgboost") @@ -16652,14 +16783,14 @@ in R, including a translation of the original algorithm into R.") (define-public r-uwot (package (name "r-uwot") - (version "0.1.9") + (version "0.1.10") (source (origin (method url-fetch) (uri (cran-uri "uwot" version)) (sha256 (base32 - "1iqvircvlxyd68n5279a0cwn5rc3pshxs7w1gqrns9c602xd6mhy")))) + "08vxh085wnrxgwy35ksb4cr7ccjvd98pyr2zlgarqryfgc1bdqbf")))) (build-system r-build-system) (propagated-inputs `(("r-dqrng" ,r-dqrng) @@ -16839,14 +16970,14 @@ guaranteeing well-connected communities.\" <arXiv:1810.08473>.") (define-public r-patchwork (package (name "r-patchwork") - (version "1.1.0") + (version "1.1.1") (source (origin (method url-fetch) (uri (cran-uri "patchwork" version)) (sha256 (base32 - "13vswvcfmadmjz7pw0qdqdr6x85zbza4gljx2nx3a39hldj71yck")))) + "10glgkf58lcykcwda1hj6xdps02m3i247qynk6s2jmwljagps3fg")))) (build-system r-build-system) (propagated-inputs `(("r-ggplot2" ,r-ggplot2) @@ -17164,14 +17295,14 @@ in pipelines.") (define-public r-parameters (package (name "r-parameters") - (version "0.10.1") + (version "0.11.0") (source (origin (method url-fetch) (uri (cran-uri "parameters" version)) (sha256 (base32 - "1xvjvsdd0hql209f7v2l1nw7gy8jkj5qp0699p5m2h55a01jl778")))) + "020k3vxnp0vjrlkcxx5vj30vag474hw48zxzw9315whsq4hhhbqc")))) (properties `((upstream-name . "parameters"))) (build-system r-build-system) (propagated-inputs @@ -17193,13 +17324,13 @@ effect size.") (define-public r-rgdal (package (name "r-rgdal") - (version "1.5-18") + (version "1.5-19") (source (origin (method url-fetch) (uri (cran-uri "rgdal" version)) (sha256 - (base32 "1pr267sh0v6cympdg12yny51cmn4r20s5sjq2hqymn4kphcpqijk")))) + (base32 "1cii2azm3zv5l6fn33xzwahp8349z3pb2769vpdxkf7734dxggvg")))) (properties `((upstream-name . "rgdal"))) (build-system r-build-system) (inputs @@ -17811,14 +17942,14 @@ server-side.") (define-public r-sysfonts (package (name "r-sysfonts") - (version "0.8.2") + (version "0.8.3") (source (origin (method url-fetch) (uri (cran-uri "sysfonts" version)) (sha256 (base32 - "1gapsiva0vjd2myxgm1avav6my5x00rmy2hx0qll7dm7v1isznbv")))) + "00kbazxw6zd1kakfshffdj928krca53bw9k78k0zar40mbqxiwd5")))) (properties `((upstream-name . "sysfonts"))) (build-system r-build-system) (inputs @@ -17859,14 +17990,14 @@ package.") (define-public r-showtext (package (name "r-showtext") - (version "0.9-1") + (version "0.9-2") (source (origin (method url-fetch) (uri (cran-uri "showtext" version)) (sha256 (base32 - "1hq346k2lm7rv49hw7srn3ab5gcp6b0r4zc1kgsdmswyh3q1asra")))) + "0y5mw6ffk92r7b22irrfhdmj4hxfl0d1wjxj14hznbapc4qm6f0z")))) (properties `((upstream-name . "showtext"))) (build-system r-build-system) (inputs @@ -18706,14 +18837,14 @@ identify file sets and individual files.") (define-public r-r-devices (package (name "r-r-devices") - (version "2.16.1") + (version "2.17.0") (source (origin (method url-fetch) (uri (cran-uri "R.devices" version)) (sha256 (base32 - "15zlnq3g27whq26fbcy5zfl5hiddm256h4rga4frblg6wqlbkvdd")))) + "1djz6vm1b7sjvx1q319dl47gbnz9kvipaxcz9i0spyp094lv3m62")))) (properties `((upstream-name . "R.devices"))) (build-system r-build-system) (propagated-inputs @@ -19351,14 +19482,14 @@ R.") (define-public r-hdrcde (package (name "r-hdrcde") - (version "3.3") + (version "3.4") (source (origin (method url-fetch) (uri (cran-uri "hdrcde" version)) (sha256 (base32 - "0c2qbw4c3mq1cb068kjs72rxlbibz8svwcrx853jyr8ybs23z7ab")))) + "16qlk44cjvn2s0vzaf915df65ksdx20dbxhy7fpdqins46hccha3")))) (properties `((upstream-name . "hdrcde"))) (build-system r-build-system) (propagated-inputs @@ -19432,14 +19563,14 @@ variable observed over time.") (define-public r-fda (package (name "r-fda") - (version "5.1.7") + (version "5.1.9") (source (origin (method url-fetch) (uri (cran-uri "fda" version)) (sha256 (base32 - "1r8hfi6x1maw5zz8k95wfcr7v69lg4zl3mcj69cvvq2mkg4y3158")))) + "0yjrjsv55bcwqn2yxjgj3hn17wfvjvgngfw9xv3w802i52yz9gf8")))) (properties `((upstream-name . "fda"))) (build-system r-build-system) (propagated-inputs @@ -19539,20 +19670,22 @@ data for different accelerometer brands.") (define-public r-activityindex (package (name "r-activityindex") - (version "0.3.6") + (version "0.3.7") (source (origin (method url-fetch) (uri (cran-uri "ActivityIndex" version)) (sha256 (base32 - "14k6d78s15j7kb7jhixf4msrdjdl28d0r264cbvy41p8dkq7ysvk")))) + "1zj2b6x31a1kxl80rarmkrlm7ack4154mrkbqs3fpi48zpmjbgd5")))) (properties `((upstream-name . "ActivityIndex"))) (build-system r-build-system) (propagated-inputs `(("r-data-table" ,r-data-table) ("r-matrixstats" ,r-matrixstats) ("r-r-utils" ,r-r-utils))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://cran.r-project.org/web/packages/ActivityIndex/") (synopsis "Activity Index calculation using raw accelerometry data") (description @@ -19671,14 +19804,14 @@ API; see the package vignette for details.") (define-public r-actuar (package (name "r-actuar") - (version "3.0-0") + (version "3.1-0") (source (origin (method url-fetch) (uri (cran-uri "actuar" version)) (sha256 (base32 - "0dkp1sczldzy7kj70qvh1q59jhsq1brjybmxdz43jnx63y45llpz")))) + "15a8axb2ym46j8vlm7icwnsc950p8m66hp0armha7drk0725y77k")))) (properties `((upstream-name . "actuar"))) (build-system r-build-system) (propagated-inputs `(("r-expint" ,r-expint))) @@ -21176,14 +21309,14 @@ least squares.") (define-public r-semtools (package (name "r-semtools") - (version "0.5-3") + (version "0.5-4") (source (origin (method url-fetch) (uri (cran-uri "semTools" version)) (sha256 (base32 - "0k3w10fnq0l89inhxvnypyrfhlrm921mfn0kwyyfpndvbqizky1d")))) + "15kban4ds2mssxqslm126b89p8biya14c9m68sqk61vzvx5dm2vq")))) (properties `((upstream-name . "semTools"))) (build-system r-build-system) (propagated-inputs @@ -21227,14 +21360,14 @@ perform @dfn{exploratory mediation} (XMed).") (define-public r-stanheaders (package (name "r-stanheaders") - (version "2.21.0-6") + (version "2.21.0-7") (source (origin (method url-fetch) (uri (cran-uri "StanHeaders" version)) (sha256 (base32 - "1wwcrss4y6xbi81cg6ldhm57wz5paflzzp3yxh8b6shf9l2jla50")))) + "0srkyawyiykn3p5lw1z3zf18s4ax4iasv1ci3l1px40f9w36wm17")))) (properties `((upstream-name . "StanHeaders"))) (build-system r-build-system) (inputs `(("pandoc" ,pandoc))) @@ -21912,13 +22045,13 @@ recommendations for developers.") (define-public r-loo (package (name "r-loo") - (version "2.4.0") + (version "2.4.1") (source (origin (method url-fetch) (uri (cran-uri "loo" version)) (sha256 - (base32 "01a15ikfnyxhjhrgvy3ag929rg45dxp3wji1j38r4hg4q1yz4ma9")))) + (base32 "0l2v8zpashqbnck3qx5lp1gqjcfphzky8mxyw5gfk9wk99mzn8dw")))) (properties `((upstream-name . "loo"))) (build-system r-build-system) (inputs @@ -22603,14 +22736,14 @@ is also implemented here.") (define-public r-aws (package (name "r-aws") - (version "2.5") + (version "2.5-1") (source (origin (method url-fetch) (uri (cran-uri "aws" version)) (sha256 (base32 - "1mwg1q7l4a07g5aa9c6kh3fpl9lakk01pbzlk7ixbpy12yfvj9nm")))) + "1fhm87iax6bkvd4vszvjbcqw3b2drs11rjxr7zf2w4sgc72svaz8")))) (properties `((upstream-name . "aws"))) (build-system r-build-system) @@ -22978,19 +23111,26 @@ with posterior predictive checks and leave-one-out cross-validation.") (define-public r-mstate (package (name "r-mstate") - (version "0.2.12") + (version "0.3.1") (source (origin (method url-fetch) (uri (cran-uri "mstate" version)) (sha256 (base32 - "0qnhivbibzss8yfsg44cvbf73n4jj4i28rbdysl88g14ig5sabgv")))) + "11i3p7fph8nbnfis1m7rdrq32qryaajv2wrkxk1x6k17zkh4rq6i")))) (properties `((upstream-name . "mstate"))) (build-system r-build-system) (propagated-inputs - `(("r-rcolorbrewer" ,r-rcolorbrewer) - ("r-survival" ,r-survival))) + `(("r-data-table" ,r-data-table) + ("r-lattice" ,r-lattice) + ("r-magrittr" ,r-magrittr) + ("r-rcolorbrewer" ,r-rcolorbrewer) + ("r-rlang" ,r-rlang) + ("r-survival" ,r-survival) + ("r-viridis" ,r-viridis))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://www.lumc.nl/org/bds/research/medische-statistiek/survival-analysis/") (synopsis @@ -23055,14 +23195,14 @@ permuted copies (shadows).") (define-public r-directlabels (package (name "r-directlabels") - (version "2020.6.17") + (version "2021.1.13") (source (origin (method url-fetch) (uri (cran-uri "directlabels" version)) (sha256 (base32 - "1b6v206kizz5rjw03chjvn40a7cqihjpk80h1h79z2x27hp1qi3f")))) + "0415kh9k2qzdwi8zb32fh2icl5wf5335kyj11cyfdmfxji39zv2w")))) (build-system r-build-system) (propagated-inputs `(("r-quadprog" ,r-quadprog))) @@ -23180,17 +23320,53 @@ by providing functionality for preprocessing, predicting, and validating input.") (license license:expat))) +(define-public r-lightgbm + (package + (name "r-lightgbm") + (version "3.1.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "lightgbm" version)) + (sha256 + (base32 + "1pwsh6j9ksahh58b15j5ij56bsc6syy3z4k4a5zhy5n7829rz555")))) + (properties `((upstream-name . "lightgbm"))) + (build-system r-build-system) + (propagated-inputs + `(("r-data-table" ,r-data-table) + ("r-jsonlite" ,r-jsonlite) + ("r-matrix" ,r-matrix) + ("r-r6" ,r-r6))) + (home-page "https://github.com/Microsoft/LightGBM") + (synopsis "Light gradient boosting machine") + (description + "Tree based algorithms can be improved by introducing boosting +frameworks. LightGBM is one such framework, based on Ke, Guolin et +al. (2017). This package offers an R interface to work with it. It is +designed to be distributed and efficient with the following goals: + +@enumerate +@item Faster training speed and higher efficiency; +@item lower memory usage; +@item better accuracy; +@item parallel learning supported; and +@item capable of handling large-scale data. +@end enumerate +") + (license license:expat))) + (define-public r-shapforxgboost (package (name "r-shapforxgboost") - (version "0.0.4") + (version "0.1.0") (source (origin (method url-fetch) (uri (cran-uri "SHAPforxgboost" version)) (sha256 (base32 - "0k6bg27wqnkzv82bcahbapmqhiz6rvnx81m23zbjw58c7lwshgnq")))) + "0jgyss9bawl7sf4dwa75sn7ld3mvrrr0z2074lbkq3f5qb9gwsly")))) (properties `((upstream-name . "SHAPforxgboost"))) (build-system r-build-system) @@ -23201,6 +23377,7 @@ input.") ("r-ggforce" ,r-ggforce) ("r-ggplot2" ,r-ggplot2) ("r-ggpubr" ,r-ggpubr) + ("r-lightgbm" ,r-lightgbm) ("r-rcolorbrewer" ,r-rcolorbrewer) ("r-xgboost" ,r-xgboost))) (home-page "https://github.com/liuyanguu/SHAPforxgboost") @@ -23534,14 +23711,14 @@ diagonals. This package allows you to compute the tensor product of arrays.") (define-public r-spatstat-utils (package (name "r-spatstat-utils") - (version "1.17-0") + (version "1.20-2") (source (origin (method url-fetch) (uri (cran-uri "spatstat.utils" version)) (sha256 (base32 - "08h9kzkkxvlnngxnv5mdylfali5jj4yhgbr8kvf8l7glswz6ik9r")))) + "066f35017wpbz9plwc14gji3ddq4a1h2lx4mcgxajrcrk0zl3hk2")))) (properties `((upstream-name . "spatstat.utils"))) (build-system r-build-system) @@ -23555,14 +23732,14 @@ which may also be useful for other purposes.") (define-public r-spatstat-data (package (name "r-spatstat-data") - (version "1.5-2") + (version "1.7-0") (source (origin (method url-fetch) (uri (cran-uri "spatstat.data" version)) (sha256 (base32 - "17vbf48g1mh8iigzzlaa9j4mw087hib7f1kkbl3c50xjcrr5iw6b")))) + "0by10dx72jjn6rvgrdj4xwh4zg6vxi4cp536aq4b6drb7za95hdv")))) (properties `((upstream-name . "spatstat.data"))) (build-system r-build-system) (propagated-inputs @@ -23645,14 +23822,14 @@ for linear mixed models (AIREML).") (define-public r-cpp11 (package (name "r-cpp11") - (version "0.2.4") + (version "0.2.5") (source (origin (method url-fetch) (uri (cran-uri "cpp11" version)) (sha256 (base32 - "08lrmpfkwh1w290a5ikhs9yn1vn32wbgvbzb4n3zb2indb8s5g69")))) + "081f3b98mcxyilqsxbzzdnj2x6v7xycprrw7r5934163q0397vvg")))) (properties `((upstream-name . "cpp11"))) (build-system r-build-system) (native-inputs `(("r-knitr" ,r-knitr))) @@ -24103,14 +24280,14 @@ coerce and verify the types and shapes of values for input checking.") (define-public r-config (package (name "r-config") - (version "0.3") + (version "0.3.1") (source (origin (method url-fetch) (uri (cran-uri "config" version)) (sha256 (base32 - "0l67nfpm42ssnk0bl4jmq6bibz8hawgfgh2s14s5c8mnimv6mpjs")))) + "0l2zp7v6qaz72dclcbjrlis633zlwp8rsi5azr7iw127iyz7i26l")))) (properties `((upstream-name . "config"))) (build-system r-build-system) (propagated-inputs @@ -24627,14 +24804,14 @@ consistent interface, and the package is built on the @code{stringi} and (define-public r-hunspell (package (name "r-hunspell") - (version "3.0") + (version "3.0.1") (source (origin (method url-fetch) (uri (cran-uri "hunspell" version)) (sha256 (base32 - "0mwqw5p0ph083plm2hr2hqr50bjg2dw862dpsfm4l2fgyy3rryq1")))) + "0ql6y05d4xxpm468rslb0wxdp1x9l3flxzmb5w6pjg617f8vpv8z")))) (properties `((upstream-name . "hunspell"))) (build-system r-build-system) (propagated-inputs @@ -24662,14 +24839,14 @@ vignettes in all common formats.") (define-public r-tidytext (package (name "r-tidytext") - (version "0.2.6") + (version "0.3.0") (source (origin (method url-fetch) (uri (cran-uri "tidytext" version)) (sha256 (base32 - "0xmjkab7p13ncfglf3a9hvndf8fh96mmxw3l7hcpbnaq9qkiwk29")))) + "1icbfw4zkbs9sp6vk814mw2zzm0bc0d7af92vhriqxaga0gbwdkx")))) (properties `((upstream-name . "tidytext"))) (build-system r-build-system) (propagated-inputs @@ -24677,12 +24854,14 @@ vignettes in all common formats.") ("r-generics" ,r-generics) ("r-hunspell" ,r-hunspell) ("r-janeaustenr" ,r-janeaustenr) + ("r-lifecycle" ,r-lifecycle) ("r-matrix" ,r-matrix) ("r-purrr" ,r-purrr) ("r-rlang" ,r-rlang) ("r-stringr" ,r-stringr) ("r-tibble" ,r-tibble) - ("r-tokenizers" ,r-tokenizers))) + ("r-tokenizers" ,r-tokenizers) + ("r-vctrs" ,r-vctrs))) (native-inputs `(("r-knitr" ,r-knitr))) (home-page "https://github.com/juliasilge/tidytext") @@ -24695,14 +24874,14 @@ analysis using @code{dplyr}, @code{ggplot2}, and other Tidy tools.") (define-public r-parsnip (package (name "r-parsnip") - (version "0.1.4") + (version "0.1.5") (source (origin (method url-fetch) (uri (cran-uri "parsnip" version)) (sha256 (base32 - "1134840xisvkkrbkh5kvx24vxp7sx06124svy573a9m4h8c492sr")))) + "0c12lyfxqsdprqlcmgy421py38z28h88d68pxb1c4fw14v1c2d06")))) (properties `((upstream-name . "parsnip"))) (build-system r-build-system) (propagated-inputs @@ -24730,14 +24909,14 @@ functions or computational engines (e.g. R, Spark, Stan, etc).") (define-public r-infer (package (name "r-infer") - (version "0.5.3") + (version "0.5.4") (source (origin (method url-fetch) (uri (cran-uri "infer" version)) (sha256 (base32 - "1q0lnxnv8krv4n9z80sh4b442s89rvnbph5bddy34z83bkncwv2g")))) + "0wvvgqjhyv7ql98cjzqad61wbmk7xrqd1ybk894jr5cmza13c8w2")))) (properties `((upstream-name . "infer"))) (build-system r-build-system) (propagated-inputs @@ -24952,14 +25131,14 @@ covariate (usually group indicator) and the scores.") (define-public r-qtl (package (name "r-qtl") - (version "1.46-2") + (version "1.47-9") (source (origin (method url-fetch) (uri (cran-uri "qtl" version)) (sha256 (base32 - "0rbwcnvyy96gq1dsgpxx03pv423qya26h6ws5y0blj3blfdmj83a")))) + "0hffirsvw9j82cdx6l7vhqn3a7ab52claqjlinv3lswl1nsfg93b")))) (build-system r-build-system) (home-page "https://rqtl.org/") (synopsis "R package for analyzing QTL experiments in genetics") @@ -24975,12 +25154,12 @@ genome scans.") (define-public r-qtl2 (package (name "r-qtl2") - (version "0.22-11") + (version "0.24") (source (origin (method url-fetch) (uri (cran-uri "qtl2" version)) (sha256 - (base32 "0dfdzjylqzc92dcszawc8cyinxccjm3p36v9vcq9ma818pqcanmr")))) + (base32 "1558khh0zkwm0rdk87krv9836krvwv5h7ymlz9bsrgcvypyr9186")))) (build-system r-build-system) (propagated-inputs `(("r-data-table" ,r-data-table) @@ -25046,16 +25225,39 @@ alignment using warping functions, handling of replicated measurements as well as allowing spectra with different resolutions.") (license license:gpl3+))) +(define-public r-scattermore + (package + (name "r-scattermore") + (version "0.7") + (source + (origin + (method url-fetch) + (uri (cran-uri "scattermore" version)) + (sha256 + (base32 + "18nzlprmphkvjg946h10h2qq0wbkmv2526p8di6k2xl4gccq0qpk")))) + (properties `((upstream-name . "scattermore"))) + (build-system r-build-system) + (propagated-inputs + `(("r-ggplot2" ,r-ggplot2) + ("r-scales" ,r-scales))) + (home-page "https://github.com/exaexa/scattermore") + (synopsis "Scatterplots with more points") + (description + "This package provides C-based tools for converting large scatterplot +data to rasters. It speeds up plotting of data with millions of points.") + (license license:gpl3+))) + (define-public r-seurat (package (name "r-seurat") - (version "3.2.2") + (version "3.2.3") (source (origin (method url-fetch) (uri (cran-uri "Seurat" version)) (sha256 (base32 - "048vnj0c3mrwhr6yq3jqhgnkg68w99nj1ccsmgnd8rl694w26spj")))) + "11rzc7h2ad8z8k5r1sbz4d7y4rl3080qp2hh7vibwmipbkvlial3")))) (properties `((upstream-name . "Seurat"))) (build-system r-build-system) (propagated-inputs @@ -25095,6 +25297,7 @@ as allowing spectra with different resolutions.") ("r-rsvd" ,r-rsvd) ("r-rtsne" ,r-rtsne) ("r-scales" ,r-scales) + ("r-scattermore" ,r-scattermore) ("r-sctransform" ,r-sctransform) ("r-shiny" ,r-shiny) ("r-spatstat" ,r-spatstat) @@ -25200,18 +25403,20 @@ absolute GSEA.") (define-public r-calculus (package (name "r-calculus") - (version "0.2.1") + (version "0.3.0") (source (origin (method url-fetch) (uri (cran-uri "calculus" version)) (sha256 (base32 - "0hs7hzjl6xjza20v9zx9a1piywxa6w3h2rskr52d1dcbc0vwhinp")))) + "1wa5ap89cfcp0ancj9ivx5s2y0wqr2vmp9y115g7f6g772jwhscj")))) (properties `((upstream-name . "calculus"))) (build-system r-build-system) (propagated-inputs `(("r-rcpp" ,r-rcpp))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://github.com/eguidotti/calculus") (synopsis "High dimensional numerical and symbolic calculus") (description @@ -25368,16 +25573,18 @@ Services (AWS) Simple Storage Service (S3) REST API.") (define-public r-lgr (package (name "r-lgr") - (version "0.4.1") + (version "0.4.2") (source (origin (method url-fetch) (uri (cran-uri "lgr" version)) (sha256 (base32 - "196553hmni1ha9y6494f4g3ds0lwcl81v7k4r8wwap4a6acdrgd9")))) + "0k4kacjk7swm3gmdpha1rg44xb29vzvhvx48jhpb78glj5c9phyr")))) (build-system r-build-system) (propagated-inputs `(("r-r6" ,r-r6))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://s-fleck.github.io/lgr/") (synopsis "Fully featured logging framework") (description "This package offers a flexible, feature-rich yet @@ -25390,13 +25597,13 @@ well as email and push notifications.") (define-public r-mlr3measures (package (name "r-mlr3measures") - (version "0.3.0") + (version "0.3.1") (source (origin (method url-fetch) (uri (cran-uri "mlr3measures" version)) (sha256 (base32 - "106lfaxphz0kh96ddq14hic7wvxjqp871zdp9kkkfk1kwfg35abw")))) + "18jk4kdj9771r16smz7xhmmiilcdg1qlavln5hrpvkx780zh3hj6")))) (build-system r-build-system) (propagated-inputs `(("r-checkmate" ,r-checkmate) @@ -25413,13 +25620,13 @@ are.") (define-public r-mlr3misc (package (name "r-mlr3misc") - (version "0.6.0") + (version "0.7.0") (source (origin (method url-fetch) (uri (cran-uri "mlr3misc" version)) (sha256 (base32 - "1q63i2059bf7cf61kwm0dqnk5vd60i0j4flziswwdk07fjxqh8xr")))) + "19k3l2d6wnqvdng0m7p54rrlvwl5457lcy7bg82m2bbpqxi8qch3")))) (build-system r-build-system) (propagated-inputs `(("r-backports" ,r-backports) diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm index 02bf7b27a4..ca1fd9b3a7 100644 --- a/gnu/packages/crates-graphics.scm +++ b/gnu/packages/crates-graphics.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020 Leo Famulari <leo@famulari.name> -;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2020 Antoine Côté <antoine.cote@posteo.net> ;;; ;;; This file is part of GNU Guix. @@ -62,7 +62,7 @@ ("rust-line-drawing" ,rust-line-drawing-0.7) ("rust-rusttype" ,rust-rusttype-0.7) ("rust-walkdir" ,rust-walkdir-2) - ("rust-xdg" ,rust-xdg-2.2) + ("rust-xdg" ,rust-xdg-2) ("rust-xml-rs" ,rust-xml-rs-0.8)) #:cargo-development-inputs (("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.4)))) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 38d6fe806a..36f0b98112 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -993,10 +993,10 @@ block ciphers using AES-NI.") ("rust-lazy-static" ,rust-lazy-static-1) ("rust-libc" ,rust-libc-0.2) ("rust-rustc-version" ,rust-rustc-version-0.2) - ("rust-xdg" ,rust-xdg-2.2)) + ("rust-xdg" ,rust-xdg-2)) #:cargo-development-inputs (("rust-rustc-version" ,rust-rustc-version-0.2) - ("rust-xdg" ,rust-xdg-2.2)))) + ("rust-xdg" ,rust-xdg-2)))) (home-page "https://github.com/rust-fuzz/afl.rs") (synopsis "Fuzzing Rust code with american-fuzzy-lop") @@ -1023,11 +1023,11 @@ block ciphers using AES-NI.") #:cargo-inputs (("rust-rustc-version" ,rust-rustc-version-0.2) ("rust-cc" ,rust-cc-1) - ("rust-xdg" ,rust-xdg-2.2) + ("rust-xdg" ,rust-xdg-2) ("rust-clap" ,rust-clap-2)) #:cargo-development-inputs (("rust-rustc-version" ,rust-rustc-version-0.2) - ("rust-xdg" ,rust-xdg-2.2)))))) + ("rust-xdg" ,rust-xdg-2)))))) (define-public rust-afl-0.4 (package @@ -1103,25 +1103,23 @@ using AES-NI for high performance.") (define-public rust-aho-corasick-0.7 (package (name "rust-aho-corasick") - (version "0.7.13") + (version "0.7.15") (source (origin (method url-fetch) (uri (crate-uri "aho-corasick" version)) - (file-name - (string-append name "-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 - "11hfmqf90rdvjdpk0x1lixw1s9n08y3fxfy9zqsk0k2wpbc68c84")))) + (base32 "1rb8gzhljl8r87dpf2n5pnqnkl694casgns4ma0sqzd4zazzw13l")))) (build-system cargo-build-system) (arguments - `(#:cargo-inputs (("rust-memchr" ,rust-memchr-2)) + `(#:cargo-inputs + (("rust-memchr" ,rust-memchr-2)) #:cargo-development-inputs (("rust-doc-comment" ,rust-doc-comment-0.3)))) (home-page "https://github.com/BurntSushi/aho-corasick") (synopsis "Fast multiple substring searching") - (description - "Fast multiple substring searching.") + (description "This package provides a fast multiple substring searching.") (license (list license:unlicense license:expat)))) (define-public rust-aho-corasick-0.6 @@ -1415,6 +1413,35 @@ escape codes.") @code{std::error::Error}.") (license (list license:expat license:asl2.0)))) +(define-public rust-app-dirs2-2 + (package + (name "rust-app-dirs2") + (version "2.3.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "app_dirs2" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "04v2q3jkqr32mwqs4niqfyhbkvvgrcsw0dajwqaz83nc5hs1igsm")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-jni" ,rust-jni-0.18) + ("rust-ndk-glue" ,rust-ndk-glue-0.2) + ("rust-winapi" ,rust-winapi-0.3) + ("rust-xdg" ,rust-xdg-2)) + #:cargo-development-inputs + (("rust-lazy-static" ,rust-lazy-static-1) + ("rust-tempfile" ,rust-tempfile-3) + ("rust-test-case" ,rust-test-case-1)))) + (home-page "https://lib.rs/app_dirs2") + (synopsis "Put app's data in the right place on every platform") + (description + "This package helps you to put your app's data in the right place +on every platform.") + (license license:expat))) + (define-public rust-approx-0.3 (package (name "rust-approx") @@ -2491,15 +2518,14 @@ crate.") (define-public rust-async-trait-0.1 (package (name "rust-async-trait") - (version "0.1.40") + (version "0.1.42") (source (origin (method url-fetch) (uri (crate-uri "async-trait" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 - "10x7jcg8xqvkmqyz11117aw959p4af5gq1cpf022b9f0hl6j6z38")))) + (base32 "0gd13pqgw5m6l4bqwjkickq13c4v0jxzxs5i4dwmldrlgvklafld")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs @@ -3366,12 +3392,43 @@ bindings to C and C++ libraries.") ("rust-quote" ,rust-quote-0.6) ("rust-regex" ,rust-regex-1) ("rust-shlex" ,rust-shlex-0.1) - ("rust-which" ,rust-which-2.0)) + ("rust-which" ,rust-which-2)) #:cargo-development-inputs (("rust-clap" ,rust-clap-2) ("rust-diff" ,rust-diff-0.1) ("rust-shlex" ,rust-shlex-0.1)))))) +(define-public rust-bindgen-0.47 + (package + (inherit rust-bindgen-0.50) + (name "rust-bindgen") + (version "0.47.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "bindgen" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0b9fyq3h4lz5xfy6gv5h8v6j3hzyqcarlylvw9zc715pas1pz09a")))) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-bitflags" ,rust-bitflags-1) + ("rust-cexpr" ,rust-cexpr-0.3) + ("rust-cfg-if" ,rust-cfg-if-0.1) + ("rust-clang-sys" ,rust-clang-sys-0.26) + ("rust-clap" ,rust-clap-2) + ("rust-env-logger" ,rust-env-logger-0.6) + ("rust-hashbrown" ,rust-hashbrown-0.1) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-log" ,rust-log-0.4) + ("rust-peeking-take-while" ,rust-peeking-take-while-0.1) + ("rust-proc-macro2" ,rust-proc-macro2-0.4) + ("rust-quote" ,rust-quote-0.6) + ("rust-regex" ,rust-regex-1) + ("rust-shlex" ,rust-shlex-0.1) + ("rust-which" ,rust-which-2)))))) + (define-public rust-bindgen-0.46 (package (inherit rust-bindgen-0.50) @@ -3401,7 +3458,7 @@ bindings to C and C++ libraries.") ("rust-proc-macro2" ,rust-proc-macro2-0.4) ("rust-quote" ,rust-quote-0.6) ("rust-regex" ,rust-regex-1) - ("rust-which" ,rust-which-2.0)) + ("rust-which" ,rust-which-2)) #:cargo-development-inputs (("rust-clap" ,rust-clap-2) ("rust-diff" ,rust-diff-0.1) @@ -3470,7 +3527,7 @@ bindings to C and C++ libraries.") ("rust-quote" ,rust-quote-0.6) ("rust-regex" ,rust-regex-1) ("rust-shlex" ,rust-shlex-0.1) - ("rust-which" ,rust-which-2.0)) + ("rust-which" ,rust-which-2)) #:cargo-development-inputs (("rust-clap" ,rust-clap-2) ("rust-diff" ,rust-diff-0.1) @@ -4662,28 +4719,23 @@ in a byte slice, fast.") (define-public rust-byteorder-1 (package (name "rust-byteorder") - (version "1.3.4") + (version "1.4.2") (source (origin (method url-fetch) (uri (crate-uri "byteorder" version)) - (file-name - (string-append name "-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 - "1pkjfhgjnq898g1d38ygcfi0msg3m6756cwv0sgysj1d26p8mi08")))) + (base32 "0srh0h0594jmsnbvm7n0g8xabhla8lwb3gn8s0fzd7d1snix2i5f")))) (build-system cargo-build-system) (arguments `(#:cargo-development-inputs - (("rust-doc-comment" ,rust-doc-comment-0.3) - ("rust-quickcheck" ,rust-quickcheck-0.8) - ("rust-rand" ,rust-rand-0.6)))) - (home-page - "https://github.com/BurntSushi/byteorder") - (synopsis - "Reading/writing numbers in big-endian and little-endian") + (("rust-quickcheck" ,rust-quickcheck-0.9) + ("rust-rand" ,rust-rand-0.7)))) + (home-page "https://github.com/BurntSushi/byteorder") + (synopsis "Reading/writing numbers in big-endian and little-endian") (description - "Library for reading/writing numbers in big-endian and + "This library is used for reading or writing numbers in big-endian and little-endian.") (license (list license:expat license:unlicense)))) @@ -5498,6 +5550,31 @@ chain, the first matching branch is the item that gets emitted.") (description "Date and time library for Rust.") (license (list license:expat license:asl2.0)))) +(define-public rust-chrono-tz-0.5 + (package + (name "rust-chrono-tz") + (version "0.5.3") + (source + (origin + (method url-fetch) + (uri (crate-uri "chrono-tz" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "085i4940kn0fn4gkl3xi1kv3vp2frhfig1vla1i461pcbwas6m15")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-chrono" ,rust-chrono-0.4) + ("rust-parse-zoneinfo" ,rust-parse-zoneinfo-0.3) + ("rust-serde" ,rust-serde-1)))) + (home-page "https://github.com/chronotope/chrono-tz") + (synopsis "TimeZone implementations for rust-chrono from the IANA database") + (description + "Chrono-TZ is a library that provides implementors of the +TimeZone trait for @code{rust-chrono}.") + (license (list license:expat license:asl2.0)))) + (define-public rust-ci-info-0.3 (package (name "rust-ci-info") @@ -6062,8 +6139,43 @@ programming languages.") (sha256 (base32 "0fildacm47g86acmx44yvxx6cka8fdym5qkgfm8x8gh2hsrghc7r")))))) +(define-public rust-combine-4 + (package + (name "rust-combine") + (version "4.5.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "combine" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0zkvqp21fbhznf7sjssdiw3zgx3x3q8w10c9mmjdzkf0wjsnjhyc")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-bytes" ,rust-bytes-0.5) + ("rust-bytes" ,rust-bytes-1) + ("rust-futures-io" ,rust-futures-io-0.3) + ("rust-futures-util" ,rust-futures-util-0.3) + ("rust-memchr" ,rust-memchr-2) + ("rust-pin-project-lite" ,rust-pin-project-lite-0.2) + ("rust-regex" ,rust-regex-1) + ("rust-tokio" ,rust-tokio-1) + ("rust-tokio" ,rust-tokio-0.2) + ("rust-tokio" ,rust-tokio-0.3)))) + (home-page "https://github.com/Marwes/combine") + (synopsis "Parser combinators on arbitrary streams with zero-copy support") + (description + "This package is an implementation of parser combinators for Rust, +inspired by the Haskell library Parsec. As in Parsec the parsers are LL(1) by +default but they can opt-in to arbitrary lookahead using the attempt +combinator.") + (license license:expat))) + (define-public rust-combine-3 (package + (inherit rust-combine-4) (name "rust-combine") (version "3.8.1") (source @@ -6073,7 +6185,6 @@ programming languages.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "1006sbl3ybiky3d5q28p0lyph37hk7sipls1rkhikv11lfxacgfs")))) - (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-ascii" ,rust-ascii-0.9) @@ -6088,15 +6199,7 @@ programming languages.") ("rust-bytes" ,rust-bytes-0.4) ("rust-futures" ,rust-futures-0.1) ("rust-partial-io" ,rust-partial-io-0.3) - ("rust-tokio-codec" ,rust-tokio-codec-0.1)))) - (home-page "https://github.com/Marwes/combine") - (synopsis "Parser combinators on arbitrary streams with zero-copy support") - (description - "This package is an implementation of parser combinators for Rust, -inspired by the Haskell library Parsec. As in Parsec the parsers are LL(1) by -default but they can opt-in to arbitrary lookahead using the attempt -combinator.") - (license license:expat))) + ("rust-tokio-codec" ,rust-tokio-codec-0.1)))))) (define-public rust-combine-regex-1-1 (package @@ -7270,8 +7373,34 @@ criterion.") (description "Tools for concurrent programming.") (license (list license:expat license:asl2.0)))) +(define-public rust-crossbeam-channel-0.5 + (package + (name "rust-crossbeam-channel") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "crossbeam-channel" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0xfplw54pskl3kyf2q6kw8y2phnq6wn8pqxx003n8qfkz3hnx8nw")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-cfg-if" ,rust-cfg-if-1) + ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)))) + (home-page + "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-channel") + (synopsis "Multi-producer multi-consumer channels for message passing") + (description + "This package provides multi-producer multi-consumer channels for +message passing.") + (license (list license:expat license:asl2.0)))) + (define-public rust-crossbeam-channel-0.4 (package + (inherit rust-crossbeam-channel-0.5) (name "rust-crossbeam-channel") (version "0.4.2") (source @@ -7283,7 +7412,6 @@ criterion.") (sha256 (base32 "0qd05n5bcwafkmbzq1lspwrfi29xnzlw46qarg1sl0lwj68qdvfc")))) - (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7) @@ -7291,16 +7419,7 @@ criterion.") #:cargo-development-inputs (("rust-num-cpus" ,rust-num-cpus-1) ("rust-rand" ,rust-rand-0.6) - ("rust-signal-hook" ,rust-signal-hook-0.1)))) - (home-page - "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-channel") - (synopsis - "Multi-producer multi-consumer channels for message passing") - (description - "Multi-producer multi-consumer channels for message passing.") - (license (list license:expat - license:asl2.0 - license:bsd-2)))) + ("rust-signal-hook" ,rust-signal-hook-0.1)))))) (define-public rust-crossbeam-channel-0.3 (package @@ -7324,8 +7443,33 @@ criterion.") ("rust-rand" ,rust-rand-0.6) ("rust-signal-hook" ,rust-signal-hook-0.1)))))) +(define-public rust-crossbeam-deque-0.8 + (package + (name "rust-crossbeam-deque") + (version "0.8.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "crossbeam-deque" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1ad995vzq74k7jd1pgn9zxbacyzj9ii6l0svhlb2dxzy8vxnxbwl")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-cfg-if" ,rust-cfg-if-1) + ("rust-crossbeam-epoch" ,rust-crossbeam-epoch-0.9) + ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)))) + (home-page + "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-deque") + (synopsis "Concurrent work-stealing deque") + (description "This package provides a concurrent work-stealing deque.") + (license (list license:expat license:asl2.0)))) + (define-public rust-crossbeam-deque-0.7 (package + (inherit rust-crossbeam-deque-0.8) (name "rust-crossbeam-deque") (version "0.7.3") (source @@ -7337,19 +7481,13 @@ criterion.") (sha256 (base32 "11c2c0x5grdba3ah3g94yn6b8s47xi8qwm85h8hq5vmf9nbsy0lz")))) - (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-crossbeam-epoch" ,rust-crossbeam-epoch-0.8) ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7) ("rust-maybe-uninit" ,rust-maybe-uninit-2.0)) #:cargo-development-inputs - (("rust-rand" ,rust-rand-0.6)))) - (home-page - "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-deque") - (synopsis "Concurrent work-stealing deque") - (description "Concurrent work-stealing deque.") - (license (list license:expat license:asl2.0)))) + (("rust-rand" ,rust-rand-0.6)))))) (define-public rust-crossbeam-deque-0.6 (package @@ -7372,8 +7510,36 @@ criterion.") #:cargo-development-inputs (("rust-rand" ,rust-rand-0.6)))))) +(define-public rust-crossbeam-epoch-0.9 + (package + (name "rust-crossbeam-epoch") + (version "0.9.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "crossbeam-epoch" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "17anyfg5azjpmcfidq6wn4phj9h0a0zqcxksi33w44akz4wsgam1")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-cfg-if" ,rust-cfg-if-1) + ("rust-const-fn" ,rust-const-fn-0.4) + ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-memoffset" ,rust-memoffset-0.6) + ("rust-scopeguard" ,rust-scopeguard-1)))) + (home-page + "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-epoch") + (synopsis "Epoch-based garbage collection") + (description "This package provides an Epoch-based garbage collection.") + (license (list license:expat license:asl2.0)))) + (define-public rust-crossbeam-epoch-0.8 (package + (inherit rust-crossbeam-epoch-0.9) (name "rust-crossbeam-epoch") (version "0.8.2") (source @@ -7385,7 +7551,6 @@ criterion.") (sha256 (base32 "1knsf0zz7rgzxn0nwz5gajjcrivxpw3zrdcp946gdhdgr9sd53h5")))) - (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-autocfg" ,rust-autocfg-1) @@ -7396,12 +7561,7 @@ criterion.") ("rust-memoffset" ,rust-memoffset-0.5) ("rust-scopeguard" ,rust-scopeguard-1)) #:cargo-development-inputs - (("rust-rand" ,rust-rand-0.6)))) - (home-page - "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-epoch") - (synopsis "Epoch-based garbage collection") - (description "Epoch-based garbage collection.") - (license (list license:expat license:asl2.0)))) + (("rust-rand" ,rust-rand-0.6)))))) (define-public rust-crossbeam-epoch-0.7 (package @@ -7631,7 +7791,7 @@ Code} (MAC) algorithms.") (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1rbrq6qy9dl0pj4ym2zy33miaaa8vpzdss60p9bdb58xy46l0d24")))) + "1axfs4zmy74rn9666p92j7nmcv11zdp2d51yrppc2dv26cqa715m")))) (arguments `(#:cargo-inputs (("rust-blobby" ,rust-blobby-0.1) @@ -8458,8 +8618,35 @@ reading attributes into structs when implementing custom derives.") reading attributes into structs when implementing custom derives.") (license license:expat))) +(define-public rust-dashmap-4 + (package + (name "rust-dashmap") + (version "4.0.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "dashmap" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1773x18k5m2zw1iyibs8l3wl1p1aijdbrc0w844xys06inr46yp7")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-cfg-if" ,rust-cfg-if-1) + ("rust-num-cpus" ,rust-num-cpus-1) + ("rust-rayon" ,rust-rayon-1) + ("rust-serde" ,rust-serde-1)))) + (home-page "https://github.com/xacrimon/dashmap") + (synopsis "Blazing fast concurrent HashMap for Rust.") + (description "This package implements a blazing fast concurrent HashMap +for Rust.") + (license license:expat))) + (define-public rust-dashmap-3 (package + (inherit rust-dashmap-4) (name "rust-dashmap") (version "3.11.10") (source @@ -8480,7 +8667,6 @@ reading attributes into structs when implementing custom derives.") "#![feature(inner_deref)]" "\n" all))) #t)))) - (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-ahash" ,rust-ahash-0.3) @@ -8491,12 +8677,7 @@ reading attributes into structs when implementing custom derives.") (add-after 'unpack 'enable-unstable-features (lambda _ (setenv "RUSTC_BOOTSTRAP" "1") - #t))))) - (home-page "https://github.com/xacrimon/dashmap") - (synopsis "Blazing fast concurrent HashMap for Rust") - (description "This package implements a blazing fast concurrent HashMap -for Rust.") - (license license:expat))) + #t))))))) (define-public rust-data-encoding-2 (package @@ -9004,6 +9185,26 @@ traits for both structs and enums.") structs and enums.") (license license:expat))) +(define-public rust-deunicode-0.4 + (package + (name "rust-deunicode") + (version "0.4.3") + (source + (origin + (method url-fetch) + (uri (crate-uri "deunicode" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "146nc3wlwz2j9awwf7zf76qvjcahnls0mlv9jm6clcvr9dlph245")))) + (build-system cargo-build-system) + (arguments `(#:skip-build? #t)) + (home-page "https://lib.rs/crates/deunicode") + (synopsis "Convert Unicode strings to pure ASCII") + (description + "This package converts Unicode strings to pure ASCII by +intelligently transliterating them. It supports Emoji and Chinese.") + (license license:bsd-3))) + (define-public rust-dialoguer-0.6 (package (name "rust-dialoguer") @@ -9586,7 +9787,7 @@ from macros.") (build-system cargo-build-system) (arguments `(#:cargo-inputs - (("rust-which" ,rust-which-2.0)))) + (("rust-which" ,rust-which-2)))) (home-page "https://github.com/assert-rs/docmatic") (synopsis "Test Rust examples in your documentation") (description "Test Rust examples in your documentation.") @@ -13771,15 +13972,14 @@ path simultaneously, and returning all of the globs that matched.") (define-public rust-globwalk-0.8 (package (name "rust-globwalk") - (version "0.8.0") + (version "0.8.1") (source (origin (method url-fetch) (uri (crate-uri "globwalk" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 - "0ihld70ngnri1qd8sd61099yfzcl6iqn17rfa102q1bl6ck710hp")))) + (base32 "1k6xwkydr7igvwjn3xkwjywk4213lcs53f576ilqz1h84jaazqwk")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs @@ -13978,7 +14178,7 @@ loading crate.") ("rust-lazy-static" ,rust-lazy-static-1) ("rust-log" ,rust-log-0.4) ("rust-regex" ,rust-regex-1) - ("rust-same-file" ,rust-same-file-1.0) + ("rust-same-file" ,rust-same-file-1) ("rust-termcolor" ,rust-termcolor-1) ("rust-winapi-util" ,rust-winapi-util-0.1)))) (home-page @@ -15607,36 +15807,34 @@ let} expressions.") (define-public rust-ignore-0.4 (package (name "rust-ignore") - (version "0.4.16") + (version "0.4.17") (source (origin (method url-fetch) (uri (crate-uri "ignore" version)) - (file-name - (string-append name "-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 - "0wpcv4qgfzcyzydhlqa2qr56j72fj1a66s11xzdji59898mbzp12")))) + (base32 "1347mxd0cwiidcl0qvixl7za524x5ds0izv8vjh2df0bqr2zp1xj")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs - (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7) + (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8) ("rust-globset" ,rust-globset-0.4) ("rust-lazy-static" ,rust-lazy-static-1) ("rust-log" ,rust-log-0.4) ("rust-memchr" ,rust-memchr-2) ("rust-regex" ,rust-regex-1) - ("rust-same-file" ,rust-same-file-1.0) + ("rust-same-file" ,rust-same-file-1) ("rust-thread-local" ,rust-thread-local-1) ("rust-walkdir" ,rust-walkdir-2) ("rust-winapi-util" ,rust-winapi-util-0.1)) #:cargo-development-inputs - (("rust-crossbeam-channel" ,rust-crossbeam-channel-0.4)))) - (home-page "https://github.com/BurntSushi/ripgrep/tree/master/ignore") - (synopsis "Efficiently match ignore files such as .gitignore") + (("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)))) + (home-page "https://github.com/BurntSushi/ripgrep/tree/master/crates/ignore") + (synopsis "Efficiently match ignore files such as @file{.gitignore}") (description "This package provides a fast library for efficiently matching -ignore files such as .gitignore against file paths.") +ignore files such as @file{.gitignore} against file paths.") (license (list license:unlicense license:expat)))) (define-public rust-indexmap-1 @@ -15710,6 +15908,33 @@ or numerical index. A corresponding hash set type is also provided.") Rust.") (license license:expat))) +(define-public rust-indoc-1 + (package + (name "rust-indoc") + (version "1.0.3") + (source + (origin + (method url-fetch) + (uri (crate-uri "indoc" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0diih20xsxjb159nr0dq6jxnyhq7gg10dlsnh2siikphmvm5m9z5")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #true + #:cargo-inputs + (("rust-unindent" ,rust-unindent-0.1)) + #:cargo-development-inputs + (("rust-rustversion" ,rust-rustversion-1) + ("rust-trybuild" ,rust-trybuild-1)))) + (home-page "https://github.com/dtolnay/indoc") + (synopsis "Indented document literals for Rust") + (description + "This crate provides a procedural macro for indented string literals. +The @code{indoc!()} macro takes a multiline string literal and un-indents it +at compile time so the leftmost non-space character is in the first column.") + (license (list license:expat license:asl2.0)))) + (define-public rust-infer-0.2 (package (name "rust-infer") @@ -16639,25 +16864,25 @@ primitives to an @code{io::Write}.") (native-inputs `(("jemalloc" ,jemalloc))))) -(define-public rust-jni-0.14 +(define-public rust-jni-0.18 (package (name "rust-jni") - (version "0.14.0") + (version "0.18.0") (source (origin (method url-fetch) (uri (crate-uri "jni" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "00jl4jzzbbcf1nyziras5drp501xsk89g0132pwg194ilh6k308r")))) + (base32 "1brglk3kfia9wkr6rkm6p297b8qk6rv3k8rf6jjiqc74l49735i4")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-cesu8" ,rust-cesu8-1) - ("rust-combine" ,rust-combine-3) - ("rust-error-chain" ,rust-error-chain-0.12) + ("rust-combine" ,rust-combine-4) ("rust-jni-sys" ,rust-jni-sys-0.3) ("rust-log" ,rust-log-0.4) + ("rust-thiserror" ,rust-thiserror-1) ("rust-walkdir" ,rust-walkdir-2)) #:cargo-development-inputs (("rust-lazy-static" ,rust-lazy-static-1)))) @@ -16670,6 +16895,29 @@ code from Rust, embed JVM in Rust applications and use any Java libraries.") (license (list license:expat license:asl2.0)))) +(define-public rust-jni-0.14 + (package + (inherit rust-jni-0.18) + (name "rust-jni") + (version "0.14.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "jni" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "00jl4jzzbbcf1nyziras5drp501xsk89g0132pwg194ilh6k308r")))) + (arguments + `(#:cargo-inputs + (("rust-cesu8" ,rust-cesu8-1) + ("rust-combine" ,rust-combine-3) + ("rust-error-chain" ,rust-error-chain-0.12) + ("rust-jni-sys" ,rust-jni-sys-0.3) + ("rust-log" ,rust-log-0.4) + ("rust-walkdir" ,rust-walkdir-2)) + #:cargo-development-inputs + (("rust-lazy-static" ,rust-lazy-static-1)))))) + (define-public rust-jni-glue-0.0 (package (name "rust-jni-glue") @@ -16791,6 +17039,73 @@ friction with idiomatic Rust structs to ease interopability.") (license (list license:asl2.0 license:expat)))) +(define-public rust-juniper-codegen-0.14 + (package + (name "rust-juniper-codegen") + (version "0.14.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "juniper_codegen" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "06ym8568k9p75kvnfc4ywqbkzaa4ib6gngx9vpbsjwg9v0sg42nl")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #false ;FIXME: fail due to unresolved import + #:cargo-inputs + (("rust-proc-macro2" ,rust-proc-macro2-1) + ("rust-quote" ,rust-quote-1) + ("rust-syn" ,rust-syn-1)) + #:cargo-development-inputs + (("rust-juniper" ,rust-juniper-0.14)))) + (home-page "https://github.com/graphql-rust/juniper") + (synopsis "Internal custom derive trait for Juniper GraphQL") + (description + "This package provides an internal custom derive trait for Juniper +GraphQL.") + (license license:bsd-2))) + +(define-public rust-juniper-0.14 + (package + (name "rust-juniper") + (version "0.14.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "juniper" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0s56rb31yddhvjynl5bk8jihcdln8h5yfsx63kfxdhzvw98vlqpn")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-chrono" ,rust-chrono-0.4) + ("rust-fnv" ,rust-fnv-1) + ("rust-indexmap" ,rust-indexmap-1) + ("rust-juniper-codegen" ,rust-juniper-codegen-0.14) + ("rust-serde" ,rust-serde-1) + ("rust-serde-derive" ,rust-serde-derive-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-url" ,rust-url-2) + ("rust-uuid" ,rust-uuid-0.7)) + #:cargo-development-inputs + (("rust-bencher" ,rust-bencher-0.1) + ("rust-serde-json" ,rust-serde-json-1)))) + (home-page "https://github.com/graphql-rust/juniper") + (synopsis "GraphQL server library for Rust") + (description + "Juniper makes it possible to write GraphQL servers in Rust that are +type-safe and fast. It also tries to make declaring and resolving GraphQL +schemas convenient. + +Juniper does not include a web server. Instead it provides building blocks to +make integration with existing servers straightforward. It optionally +provides a pre-built integration for the Actix, Hyper, Iron, Rocket, and Warp +frameworks, including embedded Graphiql and GraphQL Playground for easy +debugging.") + (license license:bsd-2))) + (define-public rust-keccak-0.1 (package (name "rust-keccak") @@ -18317,6 +18632,30 @@ by inspecting the system for user preference.") `(#:cargo-inputs (("rust-log" ,rust-log-0.4)))))) +(define-public rust-logtest-2 + (package + (name "rust-logtest") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "logtest" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "09ihwkq6z7xm6wdwxmc9mz74lsl20g5bi7fcdm8n87bwcnl46gpb")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #false + #:cargo-inputs + (("rust-lazy-static" ,rust-lazy-static-1) + ("rust-log" ,rust-log-0.4)) + #:cargo-development-inputs + (("rust-kv-log-macro" ,rust-kv-log-macro-1)))) + (home-page "https://github.com/yoshuawuyts/logtest") + (synopsis "Test and assert log statements") + (description "This package tests and asserts log statements.") + (license (list license:expat license:asl2.0)))) + (define-public rust-loom-0.4 (package (name "rust-loom") @@ -19135,8 +19474,32 @@ file IO.") #:cargo-development-inputs (("rust-tempdir" ,rust-tempdir-0.3)))))) +(define-public rust-memoffset-0.6 + (package + (name "rust-memoffset") + (version "0.6.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "memoffset" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "11yxgw330cf8g4wy0fnb20ag8gg1b33fsnfmg2g8z6h5wc444yqm")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-autocfg" ,rust-autocfg-1)))) + (home-page "https://github.com/Gilnaa/memoffset") + (synopsis "C-like offset_of functionality for Rust structs") + (description + "This package provides C-like @code{offset_of} functionality +for Rust structs.") + (license license:expat))) + (define-public rust-memoffset-0.5 (package + (inherit rust-memoffset-0.6) (name "rust-memoffset") (version "0.5.3") (source @@ -19148,19 +19511,12 @@ file IO.") (sha256 (base32 "1fblqzc25hfaym8m0pj112s66pqq87avvaqm5hp5rskib2w9w63m")))) - (build-system cargo-build-system) (arguments `(#:skip-build? #t #:cargo-inputs (("rust-rustc-version" ,rust-rustc-version-0.2)) #:cargo-development-inputs - (("rust-doc-comment" ,rust-doc-comment-0.3)))) - (home-page "https://github.com/Gilnaa/memoffset") - (synopsis - "C-like offset_of functionality for Rust structs") - (description "This package provides C-like @code{offset_of} functionality -for Rust structs.") - (license license:expat))) + (("rust-doc-comment" ,rust-doc-comment-0.3)))))) (define-public rust-memoffset-0.2 (package @@ -21517,6 +21873,62 @@ primitives and enums easier.") primitives and enums easier.") (license license:bsd-3))) +(define-public rust-num-format-0.4 + (package + (name "rust-num-format") + (version "0.4.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "num-format" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0r94i9lhr15hk32494v9my31r0829w29yyp7iql98a1cf9wl3zms")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-arrayvec" ,rust-arrayvec-0.4) + ("rust-cfg-if" ,rust-cfg-if-0.1) + ("rust-encoding-rs" ,rust-encoding-rs-0.8) + ("rust-itoa" ,rust-itoa-0.4) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-num-bigint" ,rust-num-bigint-0.2) + ("rust-num-format-windows" ,rust-num-format-windows-0.3) + ("rust-serde" ,rust-serde-1) + ("rust-widestring" ,rust-widestring-0.4) + ("rust-winapi" ,rust-winapi-0.3)))) + (home-page "https://github.com/bcmyers/num-format") + (synopsis "Produce string-representations of numbers") + (description + "This package provides a Rust crate for producing string-representations +of numbers, formatted according to international standards.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-num-format-windows-0.3 + (package + (name "rust-num-format-windows") + (version "0.3.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "num-format-windows" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1sy5jxrbhv6s28c51ibzi34s8qcjm8b21nf7biray7v1qi89h5sf")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-bindgen" ,rust-bindgen-0.47)))) + (home-page "https://github.com/bcmyers/num-format/num-format-windows") + (synopsis "Helper crate for @code{num-format}") + (description + "This package provides a helper crate for num-format. Do not use it +directly.") + (license (list license:expat license:asl2.0)))) + (define-public rust-num-integer-0.1 (package (name "rust-num-integer") @@ -22813,18 +23225,18 @@ unparking.") (define-public rust-parking-lot-0.11 (package (name "rust-parking-lot") - (version "0.11.0") + (version "0.11.1") (source (origin (method url-fetch) (uri (crate-uri "parking_lot" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 - "0cw73942xhxb7a49mp9gkjnlwc8acr30wpfs8zk758icz92ki2d4")))) + (base32 "1sqmgaia8zfd5fbnqw2w13ijh7crk3lf9vw4cb52vwlx0an48xvd")))) (build-system cargo-build-system) (arguments - `(#:cargo-inputs + `(#:skip-build? #t + #:cargo-inputs (("rust-instant" ,rust-instant-0.1) ("rust-lock-api" ,rust-lock-api-0.4) ("rust-parking-lot-core" ,rust-parking-lot-core-0.8)) @@ -22832,9 +23244,11 @@ unparking.") (("rust-bincode" ,rust-bincode-1) ("rust-rand" ,rust-rand-0.7)))) (home-page "https://github.com/Amanieu/parking_lot") - (synopsis "More compact and efficient implementations of the standard synchronization primitives") - (description "This package provides more compact and efficient -implementations of the standard synchronization primitives.") + (synopsis + "Efficient implementations of the standard synchronization primitives") + (description + "This package provides more compact and efficient implementations +of the standard synchronization primitives.") (license (list license:asl2.0 license:expat)))) (define-public rust-parking-lot-0.10 @@ -23080,6 +23494,28 @@ synchronization primitives.") ("rust-winapi" ,rust-winapi-0.3) ("rust-rustc-version" ,rust-rustc-version-0.2)))))) +(define-public rust-parse-zoneinfo-0.3 + (package + (name "rust-parse-zoneinfo") + (version "0.3.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "parse-zoneinfo" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0h8g6jy4kckn2gk8sd5adaws180n1ip65xhzw5jxlq4w8ibg41f7")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-regex" ,rust-regex-1)))) + (home-page "") + (synopsis "Parse zoneinfo files from the IANA database") + (description + "This packages parses zoneinfo files from the IANA database.") + (license license:expat))) + (define-public rust-partial-io-0.3 (package (name "rust-partial-io") @@ -26077,19 +26513,48 @@ that must be shared-mutable, but merely may use atomic instructions to do so.") radix.") (license license:asl2.0))) +(define-public rust-rand-0.8 + (package + (name "rust-rand") + (version "0.8.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "rand" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "07lb17qj02bi17mhqxlmsiyf4g8cmplm6hbiw5hxc900li19nl8q")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-libc" ,rust-libc-0.2) + ("rust-log" ,rust-log-0.4) + ("rust-packed-simd-2" ,rust-packed-simd-2-0.3) + ("rust-rand-chacha" ,rust-rand-chacha-0.3) + ("rust-rand-core" ,rust-rand-core-0.6) + ("rust-rand-hc" ,rust-rand-hc-0.3) + ("rust-serde" ,rust-serde-1)))) + (home-page "https://crates.io/crates/rand") + (synopsis "Random number generators and other randomness functionality") + (description + "Rand provides utilities to generate random numbers, to convert them to +useful types and distributions, and some randomness-related algorithms.") + (license (list license:expat license:asl2.0)))) + (define-public rust-rand-0.7 (package + (inherit rust-rand-0.8) (name "rust-rand") (version "0.7.3") (source - (origin - (method url-fetch) - (uri (crate-uri "rand" version)) - (file-name (string-append name "-" version ".crate")) - (sha256 - (base32 - "00sdaimkbz491qgi6qxkv582yivl32m2jd401kzbn94vsiwicsva")))) - (build-system cargo-build-system) + (origin + (method url-fetch) + (uri (crate-uri "rand" version)) + (file-name (string-append name "-" version ".crate")) + (sha256 + (base32 + "00sdaimkbz491qgi6qxkv582yivl32m2jd401kzbn94vsiwicsva")))) (arguments `(#:cargo-inputs (("rust-getrandom" ,rust-getrandom-0.1) @@ -26102,14 +26567,7 @@ radix.") ("rust-rand-pcg" ,rust-rand-pcg-0.2)) #:cargo-development-inputs (("rust-rand-hc" ,rust-rand-hc-0.2) - ("rust-rand-pcg" ,rust-rand-pcg-0.2)))) - (home-page "https://crates.io/crates/rand") - (synopsis "Random number generators and other randomness functionality") - (description - "Rand provides utilities to generate random numbers, to convert them to -useful types and distributions, and some randomness-related algorithms.") - (license (list license:asl2.0 - license:expat)))) + ("rust-rand-pcg" ,rust-rand-pcg-0.2)))))) (define-public rust-rand-0.6 (package @@ -26211,8 +26669,32 @@ useful types and distributions, and some randomness-related algorithms.") (("rust-libc" ,rust-libc-0.2) ("rust-rand" ,rust-rand-0.4)))))) +(define-public rust-rand-chacha-0.3 + (package + (name "rust-rand-chacha") + (version "0.3.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "rand_chacha" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "03df2xh5nbdvwr17qm3sviaxa95r8yhm1nil2pr0pqf90p7ka9z1")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-ppv-lite86" ,rust-ppv-lite86-0.2) + ("rust-rand-core" ,rust-rand-core-0.6)))) + (home-page "https://crates.io/crates/rand_chacha") + (synopsis "ChaCha random number generator") + (description + "This package provides the ChaCha random number generator.") + (license (list license:expat license:asl2.0)))) + (define-public rust-rand-chacha-0.2 (package + (inherit rust-rand-chacha-0.3) (name "rust-rand-chacha") (version "0.2.2") (source @@ -26224,15 +26706,10 @@ useful types and distributions, and some randomness-related algorithms.") (sha256 (base32 "00il36fkdbsmpr99p9ksmmp6dn1md7rmnwmz0rr77jbrca2yvj7l")))) - (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-c2-chacha" ,rust-c2-chacha-0.2) - ("rust-rand-core" ,rust-rand-core-0.5)))) - (home-page "https://crates.io/crates/rand-chacha") - (synopsis "ChaCha random number generator") - (description "ChaCha random number generator.") - (license (list license:asl2.0 license:expat)))) + ("rust-rand-core" ,rust-rand-core-0.5)))))) (define-public rust-rand-chacha-0.1 (package @@ -26253,8 +26730,33 @@ useful types and distributions, and some randomness-related algorithms.") #:cargo-development-inputs (("rust-autocfg" ,rust-autocfg-0.1)))))) +(define-public rust-rand-core-0.6 + (package + (name "rust-rand-core") + (version "0.6.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "rand_core" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1rfjrcyaj7blz2nawv2pypm5kqc59p80n6f5pg691399iggxf9n0")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-getrandom" ,rust-getrandom-0.2) + ("rust-serde" ,rust-serde-1)))) + (home-page "https://rust-random.github.io/book") + (synopsis "Core random number generator traits and tools") + (description + "This package provides core random number generator traits and +tools for implementation.") + (license (list license:expat license:asl2.0)))) + (define-public rust-rand-core-0.5 (package + (inherit rust-rand-core-0.6) (name "rust-rand-core") (version "0.5.1") (source @@ -26266,17 +26768,10 @@ useful types and distributions, and some randomness-related algorithms.") (sha256 (base32 "06bdvx08v3rkz451cm7z59xwwqn1rkfh6v9ay77b14f8dwlybgch")))) - (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-getrandom" ,rust-getrandom-0.1) - ("rust-serde" ,rust-serde-1)))) - (home-page "https://crates.io/crates/rand-core") - (synopsis - "Core random number generator traits and tools for implementation") - (description - "Core random number generator traits and tools for implementation.") - (license (list license:expat license:asl2.0)))) + ("rust-serde" ,rust-serde-1)))))) (define-public rust-rand-core-0.4 (package @@ -26359,8 +26854,32 @@ useful types and distributions, and some randomness-related algorithms.") "Sampling from random number distributions.") (license (list license:expat license:asl2.0)))) +(define-public rust-rand-hc-0.3 + (package + (name "rust-rand-hc") + (version "0.3.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "rand_hc" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0wra6ar22zdjkry9dsq1mg620m4h3qb9s8rfykkz4im4crqfz41i")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-rand-core" ,rust-rand-core-0.6)))) + (home-page "https://crates.io/crates/rand_hc") + (synopsis "HC128 random number generator") + (description "This package provides a cryptographically secure random number +generator that uses the HC-128 algorithm.") + (license (list license:expat license:asl2.0)))) + (define-public rust-rand-hc-0.2 (package + (inherit rust-rand-hc-0.3) (name "rust-rand-hc") (version "0.2.0") (source @@ -26371,16 +26890,9 @@ useful types and distributions, and some randomness-related algorithms.") (sha256 (base32 "0g31sqwpmsirdlwr0svnacr4dbqyz339im4ssl9738cjgfpjjcfa")))) - (build-system cargo-build-system) (arguments `(#:cargo-inputs - (("rust-rand-hc" ,rust-rand-core-0.5)))) - (home-page "https://crates.io/crates/rand_hc") - (synopsis "HC128 random number generator") - (description "This package provides a cryptographically secure random number -generator that uses the HC-128 algorithm.") - (license (list license:asl2.0 - license:expat)))) + (("rust-rand-hc" ,rust-rand-core-0.5)))))) (define-public rust-rand-hc-0.1 (package @@ -26858,21 +27370,19 @@ accessors.") (define-public rust-rayon-1 (package (name "rust-rayon") - (version "1.3.1") + (version "1.5.0") (source (origin (method url-fetch) (uri (crate-uri "rayon" version)) - (file-name - (string-append name "-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 - "104h6i5lcp9kx8g80jgqf6z7wcqa186q57wj4qzf011xfmb2iw32")))) + (base32 "0x2n4zkrm6z3avdfh7zgcwx0wq6hx8332dx89v3j1p7s3448w3cb")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-autocfg" ,rust-autocfg-1) - ("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7) + ("rust-crossbeam-deque" ,rust-crossbeam-deque-0.8) ("rust-either" ,rust-either-1) ("rust-rayon-core" ,rust-rayon-core-1)) #:cargo-development-inputs @@ -26884,7 +27394,8 @@ accessors.") (home-page "https://github.com/rayon-rs/rayon") (synopsis "Simple work-stealing parallelism for Rust") (description - "Simple work-stealing parallelism for Rust.") + "This package provides a simple work-stealing parallelism for +Rust.") (license (list license:asl2.0 license:expat)))) (define-public rust-rayon-0.8 @@ -26913,25 +27424,23 @@ accessors.") (define-public rust-rayon-core-1 (package (name "rust-rayon-core") - (version "1.7.1") + (version "1.9.0") (source (origin (method url-fetch) (uri (crate-uri "rayon-core" version)) - (file-name - (string-append name "-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 - "101jjwkcfw5jk31695gbdm163iicc2pz349q6l8lwj43j3c1abp9")))) + (base32 "0jpsi8zf66xyx4m5f329lpgiql8775vpm6zqm7zn5p11b6n4dcws")))) (build-system cargo-build-system) (arguments - `(;; One of the tests attempts to overflow the stack, but the compiler - ;; has since gotten smarter and the test became defective. - #:tests? #f + ;; One of the tests attempts to overflow the stack, but the compiler has + ;; since gotten smarter and the test became defective. + `(#:tests? #f #:cargo-inputs - (("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7) - ("rust-crossbeam-queue" ,rust-crossbeam-queue-0.2) - ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7) + (("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-lazy-static" ,rust-lazy-static-1) ("rust-num-cpus" ,rust-num-cpus-1)) #:cargo-development-inputs @@ -26941,8 +27450,8 @@ accessors.") ("rust-scoped-tls" ,rust-scoped-tls-1)))) (home-page "https://github.com/rayon-rs/rayon") (synopsis "Core APIs for Rayon") - (description "Core APIs for Rayon.") - (license (list license:expat license:asl2.0)))) + (description "This package provides core APIs for Rayon.") + (license (list license:asl2.0 license:expat)))) (define-public rust-rctree-0.3 (package @@ -27199,15 +27708,14 @@ functionality.") (define-public rust-regex-1 (package (name "rust-regex") - (version "1.4.2") + (version "1.4.3") (source (origin (method url-fetch) (uri (crate-uri "regex" version)) - (file-name - (string-append name "-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "172bw2yryv65whn3n5vkww4kgk0bq08lx0zbln8xwia7xl9jrkrq")))) + (base32 "12llbg82js69mdl50lav4yn1iqlx71ckb18dww467q99w4wi49fr")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs @@ -27320,21 +27828,20 @@ uses finite automata and guarantees linear time matching on all inputs.") (define-public rust-regex-syntax-0.6 (package (name "rust-regex-syntax") - (version "0.6.21") + (version "0.6.22") (source (origin (method url-fetch) (uri (crate-uri "regex-syntax" version)) - (file-name (string-append name "-" version ".crate")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "12d176jkgw9749g07zjxz0n78nyvb2nqx3j4sp5aqyphvji1n61v")))) + (base32 "10b56ylil35jkb4nwqxm8hbyx3zq7fws0wpydjln165s8xql3sxm")))) (build-system cargo-build-system) (home-page "https://github.com/rust-lang/regex") (synopsis "Regular expression parser") (description "This package provides a regular expression parser.") - (license (list license:asl2.0 - license:expat)))) + (license (list license:expat license:asl2.0)))) (define-public rust-regex-syntax-0.5 (package @@ -27861,6 +28368,25 @@ Rust Language Server.") (;("rust-serde-bytes" ,rust-serde-bytes-0.10) ("rust-serde-json" ,rust-serde-json-1)))))) +(define-public rust-route-recognizer-0.2 + (package + (name "rust-route-recognizer") + (version "0.2.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "route-recognizer" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "17mmnyzg7yr5x84n28y6bll1qn21g11k61p6sgg2fjf0xdshcxsn")))) + (build-system cargo-build-system) + (home-page "https://github.com/http-rs/route-recognizer") + (synopsis "Recognizes URL patterns") + (description + "This package helps recognizing URL patterns with support for dynamic and +wildcard segments") + (license license:expat))) + (define-public rust-rspec-1 (package (name "rust-rspec") @@ -29384,7 +29910,7 @@ quickly convert floating point numbers to decimal strings.") (license (list license:asl2.0 license:expat)))) -(define-public rust-same-file-1.0 +(define-public rust-same-file-1 (package (name "rust-same-file") (version "1.0.6") @@ -29412,7 +29938,7 @@ paths point to the same file.") (define-public rust-same-file-0.1 (package - (inherit rust-same-file-1.0) + (inherit rust-same-file-1) (name "rust-same-file") (version "0.1.3") (source @@ -30789,15 +31315,14 @@ for the serde framework.") (define-public rust-serde-json-1 (package (name "rust-serde-json") - (version "1.0.60") + (version "1.0.61") (source (origin (method url-fetch) - (uri (crate-uri "serde-json" version)) + (uri (crate-uri "serde_json" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 - "0yapc7xxk8dx12691yj0l13008rgvknmc6krvk8jwj7y4x6yh00m")))) + (base32 "0nijvxvgcncvd1wbn73zx7q14bdxah0gf2789qd8kdjpa1cv5kjg")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs @@ -31087,32 +31612,28 @@ the application/x-www-form-urlencoded format.") (define-public rust-serde-yaml-0.8 (package (name "rust-serde-yaml") - (version "0.8.11") + (version "0.8.15") (source (origin (method url-fetch) (uri (crate-uri "serde_yaml" version)) - (file-name - (string-append name "-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 - "0d9wdjrlx9gxg80kzc6pvdwz5pwhja2n8n0bxja9vv61kzqif6v9")))) + (base32 "17q8rshlq56z6zna7wxhk9pihna3s5qdz8q5niip396lwkvfh6wp")))) (build-system cargo-build-system) (arguments - `(#:skip-build? #t - #:cargo-inputs + `(#:cargo-inputs (("rust-dtoa" ,rust-dtoa-0.4) ("rust-linked-hash-map" ,rust-linked-hash-map-0.5) ("rust-serde" ,rust-serde-1) ("rust-yaml-rust" ,rust-yaml-rust-0.4)) #:cargo-development-inputs - (("rust-serde-derive" ,rust-serde-derive-1) - ("rust-unindent" ,rust-unindent-0.1)))) - (home-page - "https://github.com/dtolnay/serde-yaml") + (("rust-indoc" ,rust-indoc-1) + ("rust-serde-derive" ,rust-serde-derive-1)))) + (home-page "https://github.com/dtolnay/serde-yaml") (synopsis "YAML support for Serde") - (description "YAML support for Serde.") - (license (list license:asl2.0 license:expat)))) + (description "This package provides YAML support for Serde.") + (license (list license:expat license:asl2.0)))) (define-public rust-serial-test-0.5 (package @@ -32267,6 +32788,30 @@ data type.") license:expat license:asl2.0)))) +(define-public rust-slug-0.1 + (package + (name "rust-slug") + (version "0.1.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "slug" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0wrk0w7mcmnvpmc27fw8dxkip6f6xgwpfgp7mp56yv2bd8p7dg5k")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-deunicode" ,rust-deunicode-0.4)))) + (home-page "https://github.com/Stebalien/slug-rs") + (synopsis "Convert a Unicode string to a slug") + (description + "This package is a small library for generating slugs from +Unicode strings.") + (license (list license:expat license:asl2.0)))) + (define-public rust-sluice-0.5 (package (name "rust-sluice") @@ -34490,6 +35035,52 @@ memory all at once.") "Targeting utilities for compilers and related tools") (license license:asl2.0))) +(define-public rust-tectonic-cfg-support-0.1 + (package + (name "rust-tectonic-cfg-support") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "tectonic_cfg_support" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1jsbk89g4s75cdav6350anls81k3lwaq6imhjb4q2c4cmr24i1cz")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-lazy-static" ,rust-lazy-static-1)))) + (home-page "https://tectonic-typesetting.github.io/") + (synopsis "Support crate for @code{CARGO_CFG_TARGET_*} variables") + (description + "This package provides a build.rs support crate that helps deal +with @code{CARGO_CFG_TARGET_*} variables.") + (license license:expat))) + +(define-public rust-tectonic-xdv-0.1 + (package + (name "rust-tectonic-xdv") + (version "0.1.11") + (source + (origin + (method url-fetch) + (uri (crate-uri "tectonic_xdv" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1ibxv32i7dla3iw6s01cagzgdgzhm1mmxwqjv841m6m4r7g57gxj")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-byteorder" ,rust-byteorder-1)))) + (home-page "https://tectonic-typesetting.github.io/") + (synopsis "Decoder for the XDV and SPX file formats") + (description + "This package provides a decoder for the XDV and SPX file formats +used by XeTeX and Tectonic.") + (license license:expat))) + (define-public rust-tempdir-0.3 (package (name "rust-tempdir") @@ -34597,6 +35188,42 @@ directories.") "Compact buffer/string type for zero-copy parsing.") (license (list license:expat license:asl2.0)))) +(define-public rust-tera-1 + (package + (name "rust-tera") + (version "1.6.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "tera" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1p7qzd8akd4xk4b23dmdrqw9q8061xkl1mar34j3f2glmizapipa")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-chrono" ,rust-chrono-0.4) + ("rust-chrono-tz" ,rust-chrono-tz-0.5) + ("rust-globwalk" ,rust-globwalk-0.8) + ("rust-humansize" ,rust-humansize-1) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-percent-encoding" ,rust-percent-encoding-2) + ("rust-pest" ,rust-pest-2) + ("rust-pest-derive" ,rust-pest-derive-2) + ("rust-rand" ,rust-rand-0.8) + ("rust-regex" ,rust-regex-1) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-slug" ,rust-slug-0.1) + ("rust-unic-segment" ,rust-unic-segment-0.9)))) + (home-page "https://tera.netlify.com/") + (synopsis "Template engine based on Jinja2/Django templates") + (description + "Tera is a template engine inspired by Jinja2 and the Django +template language.") + (license license:expat))) + (define-public rust-term-0.6 (package (name "rust-term") @@ -38431,6 +39058,148 @@ panic-free alternative to @code{core::fmt}.") "Unchecked indexing wrapper using regular index syntax.") (license (list license:asl2.0 license:expat)))) +(define-public rust-unic-char-property-0.9 + (package + (name "rust-unic-char-property") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "unic-char-property" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "08g21dn3wwix3ycfl0vrbahn0835nv2q3swm8wms0vwvgm07mid8")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-unic-char-range" ,rust-unic-char-range-0.9)))) + (home-page "https://github.com/open-i18n/rust-unic/") + (synopsis "Character property taxonomy, contracts and macros for UNIC") + (description + "This package provides character property taxonomy, contracts and +build macros for the Unicode and Internationalization Crates (UNIC) +project.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-unic-char-range-0.9 + (package + (name "rust-unic-char-range") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "unic-char-range" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1g0z7iwvjhqspi6194zsff8vy6i3921hpqcrp3v1813hbwnh5603")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-rayon" ,rust-rayon-1)))) + (home-page "https://github.com/open-i18n/rust-unic/") + (synopsis "Character range and iteration for UNIC") + (description + "This package provides Unicode character range and iteration for +the Unicode and Internationalization Crates (UNIC) project.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-unic-common-0.9 + (package + (name "rust-unic-common") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "unic-common" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1g1mm954m0zr497dl4kx3vr09yaly290zs33bbl4wrbaba1gzmw0")))) + (build-system cargo-build-system) + (arguments `(#:skip-build? #t)) + (home-page "https://github.com/open-i18n/rust-unic/") + (synopsis "Common utilities for UNIC") + (description + "This package provides common utilities for the Unicode and +Internationalization Crates (UNIC) project.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-unic-segment-0.9 + (package + (name "rust-unic-segment") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "unic-segment" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "08wgz2q6vrdvmbd23kf9pbg8cyzm5q8hq9spc4blzy2ppqk5vvg4")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-unic-ucd-segment" ,rust-unic-ucd-segment-0.9)))) + (home-page "https://github.com/open-i18n/rust-unic/") + (synopsis "Text segmentation algorithmes for UNIC") + (description + "This UNIC component implements algorithms from Unicode Standard +Annex #29 - Unicode Text Segmentation, used for detecting boundaries +of text element boundaries, such as user-perceived characters (a.k.a. +grapheme clusters), words, and sentences.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-unic-ucd-segment-0.9 + (package + (name "rust-unic-ucd-segment") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "unic-ucd-segment" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0027lczcg0r401g6fnzm2bq9fxhgxvri1nlryhhv8192lqic2y90")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-unic-char-property" ,rust-unic-char-property-0.9) + ("rust-unic-char-range" ,rust-unic-char-range-0.9) + ("rust-unic-ucd-version" ,rust-unic-ucd-version-0.9)))) + (home-page "https://github.com/open-i18n/rust-unic/") + (synopsis "Segmentation properties for the UNIC Unicode character database") + (description + "This package provides segmentation properties in the Unicode +character database for the Unicode and Internationalization +Crates (UNIC) project.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-unic-ucd-version-0.9 + (package + (name "rust-unic-ucd-version") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "unic-ucd-version" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1i5hnzpfnxkp4ijfk8kvhpvj84bij575ybqx1b6hyigy6wi2zgcn")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-unic-common" ,rust-unic-common-0.9)))) + (home-page "https://github.com/open-i18n/rust-unic/") + (synopsis "Unicode character database for UNIC") + (description + "This package provides a Unicode character database for the +Unicode and Internationalization Crates (UNIC) project.") + (license (list license:expat license:asl2.0)))) + (define-public rust-unicase-2 (package (name "rust-unicase") @@ -38631,14 +39400,14 @@ or XID_Continue properties according to Unicode Standard Annex #31.") (define-public rust-unindent-0.1 (package (name "rust-unindent") - (version "0.1.6") + (version "0.1.7") (source (origin (method url-fetch) (uri (crate-uri "unindent" version)) - (file-name (string-append name "-" version ".crate")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "0hl9l4w9mhv5qacx7cirm6rarrphw35b5syw2plx13vz884dfhdg")))) + (base32 "1is1gmx1l89z426rn3xsi0mii4vhy2imhqmhx8x2pd8mji6y0kpi")))) (build-system cargo-build-system) (home-page "https://github.com/dtolnay/indoc") (synopsis "Remove a column of leading whitespace from a string") @@ -39523,7 +40292,7 @@ specified across Unix and Windows platforms.") #:cargo-inputs (("rust-winapi-util" ,rust-winapi-util-0.1) ("rust-winapi" ,rust-winapi-0.3) - ("rust-same-file" ,rust-same-file-1.0)))) + ("rust-same-file" ,rust-same-file-1)))) (home-page "https://github.com/BurntSushi/walkdir") (synopsis "Recursively walk a directory") (description "Recursively walk a directory.") @@ -40334,7 +41103,7 @@ using @code{bindgen}.") installed executable in cross platforms.") (license license:expat))) -(define-public rust-which-2.0 +(define-public rust-which-2 (package (name "rust-which") (version "2.0.1") @@ -40364,7 +41133,7 @@ Locate installed executable in cross platforms.") (define-public rust-which-1.0 (package - (inherit rust-which-2.0) + (inherit rust-which-2) (name "rust-which") (version "1.0.5") (source @@ -40879,7 +41648,7 @@ extended attributes.") "This package provides Rust bindings and wrappers for XCB.") (license license:expat))) -(define-public rust-xdg-2.2 +(define-public rust-xdg-2 (package (name "rust-xdg") (version "2.2.0") @@ -41017,25 +41786,24 @@ Read/Write streams as well as low-level in-memory encoding and decoding.") (define-public rust-yaml-rust-0.4 (package (name "rust-yaml-rust") - (version "0.4.4") + (version "0.4.5") (source (origin (method url-fetch) (uri (crate-uri "yaml-rust" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "038byay0dxsz6isckviz4qshfpyjqmyvda7pq96i6d53y4ickw1r")))) + (base32 "118wbqrr4n6wgk5rjjnlrdlahawlxc1bdsx146mwk8f79in97han")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-linked-hash-map" ,rust-linked-hash-map-0.5)) #:cargo-development-inputs (("rust-quickcheck" ,rust-quickcheck-0.9)))) - (home-page "https://chyh1990.github.io/yaml-rust/") - (synopsis "The missing YAML 1.2 parser for rust") - (description - "The missing YAML 1.2 parser for rust.") - (license (list license:asl2.0 license:expat)))) + (home-page "http://chyh1990.github.io/yaml-rust/") + (synopsis "YAML 1.2 parser for Rust") + (description "This package is a YAML 1.2 parser for Rust.") + (license (list license:expat license:asl2.0)))) (define-public rust-yaml-rust-0.3 (package diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index c8ca5db1a0..51efee5157 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -1,11 +1,11 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2019, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017–2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. @@ -47,6 +47,7 @@ #:use-module (gnu packages qt) #:use-module (gnu packages scanner) #:use-module (gnu packages tls) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (guix download) @@ -57,6 +58,73 @@ #:use-module (srfi srfi-1) #:use-module (ice-9 match)) +(define-public brlaser + (let ((commit "9d7ddda8383bfc4d205b5e1b49de2b8bcd9137f1") + (revision "1")) + (package + (name "brlaser") + (version (git-version "6" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pdewacht/brlaser") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1drh0nk7amn9a8wykki4l9maqa4vy7vwminypfy1712alwj31nd4")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list (string-append "-DCUPS_DATA_DIR=" + (assoc-ref %outputs "out") + "/share/cups") + (string-append "-DCUPS_SERVER_BIN=" + (assoc-ref %outputs "out") + "/lib/cups")))) + (inputs + `(("ghostscript" ,ghostscript) + ("cups" ,cups) + ("zlib" ,zlib))) + (home-page "https://github.com/pdewacht/brlaser") + (synopsis "Brother laser printer driver") + (description "Brlaser is a CUPS driver for Brother laser printers. This +driver is known to work with these printers: + +@enumerate +@item Brother DCP-1510 series +@item Brother DCP-1600 series +@item Brother DCP-7030 +@item Brother DCP-7040 +@item Brother DCP-7055 +@item Brother DCP-7055W +@item Brother DCP-7060D +@item Brother DCP-7065DN +@item Brother DCP-7080 +@item Brother DCP-L2500D series +@item Brother DCP-L2520D series +@item Brother DCP-L2540DW series +@item Brother HL-1110 series +@item Brother HL-1200 series +@item Brother HL-2030 series +@item Brother HL-2140 series +@item Brother HL-2220 series +@item Brother HL-2270DW series +@item Brother HL-5030 series +@item Brother HL-L2300D series +@item Brother HL-L2320D series +@item Brother HL-L2340D series +@item Brother HL-L2360D series +@item Brother MFC-1910W +@item Brother MFC-7240 +@item Brother MFC-7360N +@item Brother MFC-7365DN +@item Brother MFC-7840W +@item Brother MFC-L2710DW series +@item Lenovo M7605D +@end enumerate") + (license license:gpl2+)))) + (define-public cups-filters (package (name "cups-filters") diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 1d12ae6b8e..e24eb20608 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -23,7 +23,7 @@ ;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org> ;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com> ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> -;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2017, 2018 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> @@ -46,6 +46,7 @@ ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> +;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -85,15 +86,16 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) - #:use-module (gnu packages guile) - #:use-module (gnu packages time) #:use-module (gnu packages golang) + #:use-module (gnu packages guile) #:use-module (gnu packages icu4c) #:use-module (gnu packages jemalloc) #:use-module (gnu packages language) #:use-module (gnu packages libedit) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) + #:use-module (gnu packages lisp) + #:use-module (gnu packages lisp-xyz) #:use-module (gnu packages logging) #:use-module (gnu packages man) #:use-module (gnu packages maths) @@ -110,8 +112,8 @@ #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages python-crypto) - #:use-module (gnu packages python-web) #:use-module (gnu packages python-science) + #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages rdf) #:use-module (gnu packages readline) @@ -124,6 +126,7 @@ #:use-module (gnu packages tcl) #:use-module (gnu packages terminals) #:use-module (gnu packages textutils) + #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages valgrind) #:use-module (gnu packages web) @@ -1278,6 +1281,89 @@ pictures, sounds, or video.") (define-public postgresql postgresql-13) +(define-public pgloader + (package + (name "pgloader") + (version "3.6.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dimitri/pgloader") + (commit (string-append "v" version)))) + (sha256 + (base32 "06i1jd2za3ih5caj2b4vzlzags5j65vv8dfdbz0ggdrp40wfd5lh")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (arguments + ;; NOTE: (Sharlatan-20210119T211511+0000) Tests are disabled due to being + ;; dependent on Quicklisp, main build target is `pgloader-standalone' which + ;; does not require Quicklisp workarounds. There is no `install' target + ;; configured in Makefile. + `(#:tests? #f + #:strip-binaries? #f + #:make-flags + (list "pgloader-standalone" "BUILDAPP_SBCL=buildapp") + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'set-home + (lambda _ + (setenv "HOME" "/tmp") + #t)) + (add-after 'unpack 'patch-Makefile + (lambda _ + (substitute* "Makefile" + (("--sbcl.*") "--sbcl $(CL) --asdf-path . \\\n")) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (mkdir-p bin) + (install-file "build/bin/pgloader" bin)) + #t))))) + (native-inputs + `(("buildapp" ,buildapp) + ("sbcl" ,sbcl))) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cl-abnf" ,sbcl-cl-abnf) + ("cl-base64" ,sbcl-cl-base64) + ("cl-csv" ,sbcl-cl-csv) + ("cl-fad" ,sbcl-cl-fad) + ("cl-log" ,sbcl-cl-log) + ("cl-markdown" ,sbcl-cl-markdown) + ("cl-mustache" ,sbcl-cl-mustache) + ("cl-ppcre" ,sbcl-cl-ppcre) + ("cl-sqlite" ,sbcl-cl-sqlite) + ("closer-mop" ,sbcl-closer-mop) + ("command-line-arguments" ,sbcl-command-line-arguments) + ("db3" ,sbcl-db3) + ("drakma" ,sbcl-drakma) + ("esrap" ,sbcl-esrap) + ("flexi-streams" ,sbcl-flexi-streams) + ("ixf" ,sbcl-ixf) + ("local-time" ,sbcl-local-time) + ("lparallel" ,sbcl-lparallel) + ("metabang-bind" ,sbcl-metabang-bind) + ("mssql" ,sbcl-mssql) + ("postmodern" ,sbcl-postmodern) + ("py-configparser" ,sbcl-py-configparser) + ("qmynd" ,sbcl-qmynd) + ("quri" ,sbcl-quri) + ("split-sequence" ,sbcl-split-sequence) + ("trivial-backtrace" ,sbcl-trivial-backtrace) + ("usocket" ,sbcl-usocket) + ("uuid" ,sbcl-uuid) + ("yason" ,sbcl-yason) + ("zs3" ,sbcl-zs3))) + (home-page "https://pgloader.io/") + (synopsis "Tool to migrate data to PostgreSQL") + (description + "@code{pgloader} is a program that can load data or migrate databases from +CSV, DB3, iXF, SQLite, MS-SQL or MySQL to PostgreSQL.") + (license (license:x11-style "file://LICENSE")))) + (define-public python-pymysql (package (name "python-pymysql") @@ -2163,14 +2249,14 @@ similar to BerkeleyDB, LevelDB, etc.") (define-public redis (package (name "redis") - (version "6.0.9") + (version "6.0.10") (source (origin (method url-fetch) (uri (string-append "http://download.redis.io/releases/redis-" version".tar.gz")) (sha256 (base32 - "1pc6gyiylrcazlc559dp5mxqj733pk9qabnirw4ry3k23kwdqayw")) + "1gc529nfh8frk4pynyjlnmzvwa0j9r5cmqwyd7537sywz6abifvr")) (modules '((guix build utils))) (snippet ;; Delete bundled jemalloc, as the package will use the libc one @@ -2215,14 +2301,14 @@ sets, bitmaps and hyperloglogs.") (define-public kyotocabinet (package (name "kyotocabinet") - (version "1.2.78") + (version "1.2.79") (source (origin (method url-fetch) (uri (string-append "https://fallabs.com/kyotocabinet/pkg/" "kyotocabinet-" version ".tar.gz")) (sha256 (base32 - "1bxkf9kmcavq9rqridb8mvmrk3hj4447ffi24m2admsbm61n6k29")))) + "079ymsahlrijswgwfr2la9yw5h57l752cprhp5dz31iamsj1vyv7")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -3986,3 +4072,26 @@ The drivers officially supported by @code{libdbi} are: PostreSQL, SQLite, ODBC and MySQL.") (home-page "http://soci.sourceforge.net/") (license license:boost1.0))) + +(define-public freetds + (package + (name "freetds") + (version "1.2.18") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.freetds.org/files/stable/" + "freetds-" version ".tar.gz")) + (sha256 + (base32 "1hspvwxwdd1apadsy2b40dpjik8kfwcvdamvhpg3lnm15n02fb50")))) + (build-system gnu-build-system) + (arguments + ;; NOTE: (Sharlatan-20210110213908+0000) some tests require DB connection, + ;; disabled for now. + `(#:tests? #f)) + (home-page "https://www.freetds.org/") + (synopsis "Client libraries for MS SQL and Sybase servers") + (description + "FreeTDS is an implementation of the Tabular DataStream protocol, used for +connecting to MS SQL and Sybase servers over TCP/IP.") + (license license:lgpl2.0+))) diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index df29704acf..53cdbd8d84 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -72,7 +72,7 @@ (define-public diffoscope (package (name "diffoscope") - (version "162") + (version "164") (source (origin (method git-fetch) (uri (git-reference @@ -81,7 +81,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "02wjjbmdbyqpyizw384j50bc2ar4g5m40amz9q102gqbw6sflwbf")))) + "0vjxhz8p0k4y19sl1msrl8x4z3v205rlwj52k5hijv2gn9sqh795")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 3cc9601d21..3139063298 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -304,14 +304,14 @@ tables, and it understands a variety of different formats.") (define-public gptfdisk (package (name "gptfdisk") - (version "1.0.5") + (version "1.0.6") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gptfdisk/gptfdisk/" version "/gptfdisk-" version ".tar.gz")) (sha256 - (base32 "0bybgp30pqxb6x5krxazkq4drca0gz4inxj89fpyr204rn3kjz8f")))) + (base32 "1a4c2ss6n2s6x8v11h79jykh96y46apd6i838ka0ngx58gb53ifx")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) @@ -860,7 +860,7 @@ to create devices with respective mappings for the ATARAID sets discovered.") (define-public libblockdev (package (name "libblockdev") - (version "2.24") + (version "2.25") (source (origin (method url-fetch) (uri (string-append "https://github.com/storaged-project/" @@ -868,7 +868,7 @@ to create devices with respective mappings for the ATARAID sets discovered.") version "-1/libblockdev-" version ".tar.gz")) (sha256 (base32 - "0wq7624pnprvfzrf39bq1cybd9lqwawbdg5bm0cchlpgvdq7q86w")))) + "0s0nazkpzpn4an00qghjkk9n7gdm5a8dqfr5hfnlk5mk5lma8njm")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 5bb725ae92..5e65eed7ed 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; Copyright © 2016 Nikita <nikita@n0.is> -;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net> @@ -13,7 +13,7 @@ ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com> -;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2020 Leo Famulari <leo@famulari.name> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> @@ -277,7 +277,7 @@ prompt the user with the option to go with insecure DNS only.") (define-public dnsmasq (package (name "dnsmasq") - (version "2.82") + (version "2.83") (source (origin (method url-fetch) (uri (string-append @@ -285,7 +285,7 @@ prompt the user with the option to go with insecure DNS only.") version ".tar.xz")) (sha256 (base32 - "0cn1xd1s6xs78jmrmwjnh9m6w3q38pk6dyqy2phvasqiyd33cll4")))) + "1sjamz1v588qf35m8z6wcqkjk5w12bqhj7d7p48dj8jyn3lgghgz")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -317,7 +317,7 @@ and BOOTP/TFTP for network booting of diskless machines.") (package (name "bind") ;; When updating, check whether isc-dhcp's bundled copy should be as well. - (version "9.16.10") + (version "9.16.11") (source (origin (method url-fetch) (uri (string-append @@ -325,7 +325,7 @@ and BOOTP/TFTP for network booting of diskless machines.") "/bind-" version ".tar.xz")) (sha256 (base32 - "1cv26gzbyk3ahidr1fip0pgj28s7l52cafdqpykfc1b2kh0zqixw")))) + "1hcr0q6i2mk83yi12zxjs5q21y3gx7683q99l77ibxfqsx6zc481")))) (build-system gnu-build-system) (outputs `("out" "utils")) (inputs diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm index 236c7e2819..889bb96010 100644 --- a/gnu/packages/docbook.scm +++ b/gnu/packages/docbook.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020 Marius Bakke <marius@gnu.org> +;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -214,6 +215,168 @@ by no means limited to these applications.) This package provides XML DTDs.") "This package provides XSL style sheets for DocBook.") (license (x11-style "" "See 'COPYING' file.")))) +(define-public docbook-dsssl + (package + (name "docbook-dsssl") + (version "1.79") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/docbook/" + name "/" version "/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "1g72y2yyc2k89kzs0lvrb9n7hjayw1hdskfpplpz97pf1c99wcig")))) + (build-system trivial-build-system) + (outputs '("out" "doc")) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((source (assoc-ref %build-inputs "source")) + (dtd (string-append (assoc-ref %outputs "out") + "/sgml/dtd/docbook")) + (docbook-dsssl-doc (assoc-ref %build-inputs "docbook-dsssl-doc")) + (doc (assoc-ref %outputs "doc")) + (tar (assoc-ref %build-inputs "tar")) + (bzip2 (assoc-ref %build-inputs "bzip2"))) + (setenv "PATH" (string-append tar "/bin" ":" bzip2 "/bin")) + (mkdir-p dtd) + (invoke "tar" "-xf" source "-C" dtd) + ;; The doc output contains 1.4 MiB of HTML documentation. + (symlink docbook-dsssl-doc doc))))) + (inputs + `(("docbook-dsssl-doc" ,docbook-dsssl-doc))) + (native-inputs + `(("bzip2", bzip2) + ("tar" ,tar))) + (home-page "https://docbook.org/") + (synopsis "DSSSL style sheets for DocBook") + (description "This package provides DSSSL style sheets for DocBook.") + (license (non-copyleft "file://README")))) + +;;; Private variable, used as the 'doc' output of the docbook-dsssl package. +(define docbook-dsssl-doc + (package + (name "docbook-dsssl-doc") + (version "1.79") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/docbook/" + name "/" version "/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "1plp5ngc96pbna4rwglp9glcadnirbm3hlcjb4gjvq1f8biic9lz")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((source (assoc-ref %build-inputs "source")) + (docdir (string-append (assoc-ref %outputs "out") + "/share/doc/" "docbook-dsssl-" ,version)) + (tar (assoc-ref %build-inputs "tar")) + (bzip2 (assoc-ref %build-inputs "bzip2"))) + (setenv "PATH" (string-append tar "/bin" ":" bzip2 "/bin")) + (mkdir-p docdir) + ;; Extract the "doc" subdirectory. + (invoke "tar" "-xf" source "--strip-components=2" + "--no-same-owner" "-C" docdir + (string-append "docbook-dsssl-" ,version "/doc")))))) + (native-inputs + `(("bzip2", bzip2) + ("tar" ,tar))) + (home-page "https://docbook.org/") + (synopsis "DocBook DSSSL style sheets documentation") + (description "Documentation for the DocBook DSSSL style sheets.") + (license (non-copyleft "file://doc/LEGALNOTICE.htm")))) + +(define-public docbook-sgml + (package + (name "docbook-sgml") + (version "4.1") + (source (origin + (method url-fetch) + (uri (string-append "https://www.oasis-open.org/docbook/sgml/" + version "/docbk41.zip")) + (sha256 + (base32 + "04b3gp4zkh9c5g9kvnywdkdfkcqx3kjc04j4mpkr4xk7lgqgrany")))) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((source (assoc-ref %build-inputs "source")) + (iso-entities-dir (string-append + (assoc-ref %build-inputs "iso-8879-entities"))) + (unzip (string-append (assoc-ref %build-inputs "unzip") + "/bin/unzip")) + (dtd (string-append (assoc-ref %outputs "out") + "/sgml/dtd/docbook"))) + ;; Extract the sources. + (mkdir-p dtd) + (chdir dtd) + (invoke unzip source) + ;; Reference the ISO 8879 character entities. + ;; e.g. "iso-lat1.gml" --> "<iso-entities-dir>/ISOlat1" + (substitute* "docbook.cat" + (("(.*ISO 8879.*)\"iso-(.*)\\.gml\"" _ head name) + (string-append head "\"" iso-entities-dir "/ISO" name "\""))))))) + (native-inputs + `(("unzip" ,unzip))) + (inputs + `(("iso-8879-entities" ,iso-8879-entities))) + (home-page "https://docbook.org") + (synopsis "DocBook SGML style sheets for document authoring") + (description "This package provides SGML style sheets for DocBook.") + (license (x11-style "" "See file headers.")))) + +(define-public docbook-sgml-3.1 + (package + (inherit docbook-sgml) + (version "3.1") + (source (origin + (method url-fetch) + (uri (string-append "https://www.oasis-open.org/docbook/sgml/" + version "/docbk31.zip")) + (sha256 + (base32 + "0f25ch7bywwhdxb1qa0hl28mgq1blqdap3rxzamm585rf4kis9i0")))))) + +;;; Private package referenced by docbook-sgml. +(define iso-8879-entities + (package + (name "iso-8879-entities") + (version "0.0") ;no proper version + (source (origin + (method url-fetch) + (uri "http://www.oasis-open.org/cover/ISOEnts.zip") + (sha256 + (base32 + "1clrkaqnvc1ja4lj8blr0rdlphngkcda3snm7b9jzvcn76d3br6w")))) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((source (assoc-ref %build-inputs "source")) + (unzip (string-append (assoc-ref %build-inputs "unzip") + "/bin/unzip")) + (out (string-append (assoc-ref %outputs "out")))) + (invoke unzip source "-d" out))))) + (native-inputs `(("unzip" ,unzip))) + (home-page "https://www.oasis-open.org/") + (synopsis "ISO 8879 character entities") + (description "ISO 8879 character entities that are typically used in +the in DocBook SGML DTDs.") + (license (x11-style "" "See file headers.")))) + (define-public dblatex (package (name "dblatex") diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index 07862291a7..13372489f5 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -2,8 +2,8 @@ ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> -;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net> ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org> @@ -230,8 +230,11 @@ Currently available boards include: (sha256 (base32 "0d387b404j88gsv6kv0rb7wxr23v5g5vl6s5l7602x8pxf7slbbx")) + ;; Apply patches in the order determined by Debian (patches (search-patches "tipp10-fix-compiling.patch" - "tipp10-remove-license-code.patch")))) + "tipp10-remove-license-code.patch" + "tipp10-disable-downloader.patch" + "tipp10-qt5.patch")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; packages has no tests @@ -256,8 +259,8 @@ Currently available boards include: ;; Recreate Makefile (invoke "qmake"))))))) (inputs - `(("qt4" ,qt-4) - ("sqlite" ,sqlite))) + `(("qtbase" ,qtbase) + ("qtmultimedia" ,qtmultimedia))) (home-page "https://www.tipp10.com/") (synopsis "Touch typing tutor") (description "Tipp10 is a touch typing tutor. The ingenious thing about @@ -677,15 +680,14 @@ language and very flexible regarding to new or unknown keyboard layouts.") (define-public ktouch (package (name "ktouch") - (version "20.12.0") + (version "20.12.1") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/ktouch-" version ".tar.xz")) (sha256 - (base32 - "1s8pcwakx94aygfyjmyps5b43j4kv6dmfw7n12japcka2yfp9bi2")))) + (base32 "10lm2p8w26c9n6lhvw3301myfss0dq7hl7rawzb3hsy1lqvmvdib")))) (build-system qt-build-system) (arguments `(#:phases diff --git a/gnu/packages/efi.scm b/gnu/packages/efi.scm index 12cadd6036..11cfe586ac 100644 --- a/gnu/packages/efi.scm +++ b/gnu/packages/efi.scm @@ -1,7 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -61,6 +62,44 @@ environment presented by Intel's EFI.") ;; Distribution is allowed only when accepting all those licenses. (license (list license:bsd-2 license:bsd-3 license:bsd-4 license:expat)))) +(define-public efi-analyzer + (let ((commit "77c9e3a67cd7c2fca48a4292dad25a5429872f95") + (revision "0")) + (package + (name "efi-analyzer") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xypron/efi_analyzer") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1izdkzybqyvzpzqz6kx4j7y47j6aa2dsdrychzgs65466x1a4br1")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags + (list (string-append "prefix=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'support-cross-compilation + (lambda _ + (substitute* "Makefile" + (("gcc") ,(cc-for-target))) + #t)) + (delete 'configure)))) ; no configure script + (home-page "https://github.com/xypron/efi_analyzer") + (synopsis "Analyze EFI binaries") + (description + "The EFI Analyzer checks EFI binaries and prints out header and section +information.") + (license license:bsd-2)))) + +(define-public efi_analyzer + ;; For a short while the package name contained an underscore. + (deprecated-package "efi_analyzer" efi-analyzer)) + (define-public sbsigntools (package (name "sbsigntools") diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index e5ce481fa8..2e21cab48d 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -122,14 +122,14 @@ object or archive file), @command{eu-strip} (for discarding symbols), (package (name "libabigail") (home-page "https://sourceware.org/libabigail/") - (version "1.7") + (version "1.8") (source (origin (method url-fetch) (uri (string-append "https://sourceware.org/pub/libabigail/" "libabigail-" version ".tar.gz")) (sha256 (base32 - "0bf8w01l6wm7mm4clfg5rqi30m1ws11qqa4bp2vxghfwgi9ai8i7")))) + "0p363mkgypcklgf8iylxpbdnfgqc086a6fv7n9hzrjjci45jdgqw")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-static" diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 8a2b6b302c..389b2bb29c 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2017 nee <nee.git@cock.li> ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Nikita <nikita@n0.is> +;;; Copyright © 2021 Oskar Köök <oskar@maatriks.ee> ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,7 +34,7 @@ (define-public elixir (package (name "elixir") - (version "1.10.4") + (version "1.11.3") (source (origin (method git-fetch) @@ -42,7 +43,7 @@ (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "16j4rmm3ix088fvxhvyjqf1hnfg7wiwa87gml3b2mrwirdycbinv")) + (base32 "0ivah4117z75pinvb3gr22d05ihfwcdgw5zvvpv7kbgiqaj8ma8f")) (patches (search-patches "elixir-path-length.patch")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 81ae90ea31..9e276d9d26 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -31,7 +31,7 @@ ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com> ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org> -;;; Copyright © 2017, 2018, 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2017, 2018, 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com> ;;; Copyright © 2018, 2019 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2018, 2019, 2020, 2021 Pierre Neidhardt <mail@ambrevar.xyz> @@ -41,7 +41,7 @@ ;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com> ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de> ;;; Copyright © 2018, 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com> -;;; Copyright © 2018, 2019, 2020 Brett Gilio <brettg@gnu.org> +;;; Copyright © 2018, 2019, 2020, 2021 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2019, 2020 Dimakakos Dimos <bendersteed@teknik.io> ;;; Copyright © 2019, 2020 Brian Leung <bkleung89@gmail.com> ;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com> @@ -88,7 +88,8 @@ ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2020 André A. Gomes <andremegafone@gmail.com> ;;; Copyright © 2020 Jonathan Rostran <rostranjj@gmail.com> -;;; Copyright © 2020 Noah Evans <noah@nevans.me> +;;; Copyright © 2020, 2021 Noah Evans <noah@nevans.me> +;;; Copyright © 2020 Brit Butler <brit@kingcons.io> ;;; ;;; This file is part of GNU Guix. ;;; @@ -130,6 +131,7 @@ #:use-module (gnu packages databases) #:use-module (gnu packages dictionaries) #:use-module (gnu packages djvu) + #:use-module (gnu packages ebook) #:use-module (gnu packages emacs) #:use-module (gnu packages guile) #:use-module (gnu packages gtk) @@ -1844,6 +1846,34 @@ like. It can be linked with various Emacs mail clients (Message and Mail mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.") (license license:gpl3+))) +(define-public emacs-counsel-bbdb + (package + (name "emacs-counsel-bbdb") + (version "20181128.1320") + (source + (origin + (method url-fetch) + (uri (string-append "https://melpa.org/packages/counsel-bbdb-" + version ".el")) + (sha256 + (base32 + "03g3lk8hz9a17vf5r16x054bhyk8xsbnfq0div8ig13fmhqi159q")))) + (build-system emacs-build-system) + (propagated-inputs `(("emacs-ivy" ,emacs-ivy))) + (home-page "https://github.com/redguard/counsel-bbdb") + (synopsis "Ivy interface for BBDB") + (description "This Ivy extension enables the use of @code{ivy-mode} to input +email addresses from BBDB efficiently. The main functions are: +@table @code +@item counsel-bbdb-complete-mail to input email addresses; +@item counsel-bbdb-reload' to reload contacts from BBDB database; +@item counsel-bbdb-expand-mail-alias to expand mail alias. +@end table +Since @code{counsel-bbdb} is based on @code{ivy-mode}, all Ivy key bindings +are supported. For example, after @samp{C-u M-x counsel-bbdb-complete-mail}, +you can press @samp{C-M-n} to input multiple email addresses.") + (license license:gpl3+))) + (define-public emacs-bluetooth (package (name "emacs-bluetooth") @@ -2071,14 +2101,14 @@ as a library for other Emacs packages.") (define-public emacs-auctex (package (name "emacs-auctex") - (version "13.0.3") + (version "13.0.4") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "auctex-" version ".tar")) (sha256 - (base32 "1ljpkr0z15fyh907jbgky238dvci5vqi3xhvslyhblhp8sg9cbsi")))) + (base32 "1362dqb8mcaddda9849gqsj6rzlfq18xprddb74j02884xl7hq65")))) (build-system emacs-build-system) ;; We use 'emacs' because AUCTeX requires dbus at compile time ;; ('emacs-minimal' does not provide dbus). @@ -2253,7 +2283,7 @@ Lock key.") (define-public emacs-chronometrist (package (name "emacs-chronometrist") - (version "0.5.6") + (version "0.6.3") (source (origin (method git-fetch) @@ -2262,7 +2292,7 @@ Lock key.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0g54pxvid1hlynlnfx99sl027q2mr2f4axsvnf0vb3v48zm0n5cw")))) + (base32 "0ql72qh0bshv62nksv6awz5nqfhmgs8hkyvm7wvzfq64yrwghw50")))) (build-system emacs-build-system) (arguments `(#:phases @@ -4664,18 +4694,19 @@ for Flow files.") (define-public emacs-flycheck-grammalecte (package (name "emacs-flycheck-grammalecte") - (version "1.2") + (version "1.3") (source (origin - (method url-fetch) - (uri (string-append "https://git.deparis.io/" - "flycheck-grammalecte/snapshot/" - "flycheck-grammalecte-" version ".tar.xz")) + (method git-fetch) + (uri (git-reference + (url "https://git.umaneti.net/flycheck-grammalecte/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "1mzmzyik843r4j0ibpwqrxmb0g4xmirrf3lxr010bddkmmxf749a")))) + (base32 "1f1gapvs9j89qr474103dqgsiyb96phlnsmq5hiv4ba242blg9lb")))) (build-system emacs-build-system) (arguments - `(#:include '("\\.(el|py)$") + `(#:include (cons "\\.py$" %default-include) #:exclude '("^test-profile.el$") #:emacs ,emacs ;need libxml support #:phases @@ -4690,28 +4721,22 @@ for Flow files.") (substitute* '("conjugueur.py" "flycheck-grammalecte.py") (("/usr/bin/env python3?") python3)) #t))) - (add-before 'build 'link-to-grammalecte - ;; XXX: The Python part of the package requires grammalecte, but - ;; the library is not specified in PYTHONPATH, since we're not - ;; using Python build system. As a workaround, we symlink - ;; grammalecte libraries here. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (grammalecte (assoc-ref inputs "grammalecte")) - (version ,(version-major+minor (package-version python)))) - (with-directory-excursion - (string-append out "/share/emacs/site-lisp") - (symlink (string-append grammalecte "/lib/" - "python" version "/site-packages/" - "grammalecte") - "grammalecte")) - #t)))))) + (add-after 'unpack 'specify-grammalecte-location + (lambda* (#:key inputs #:allow-other-keys) + (make-file-writable "flycheck-grammalecte.el") + (emacs-substitute-variables "flycheck-grammalecte.el" + ("flycheck-grammalecte--grammalecte-directory" + (string-append (assoc-ref inputs "grammalecte") + "/lib/python" + ,(version-major+minor (package-version python)) + "/site-packages/grammalecte"))) + #t))))) (inputs `(("grammalecte" ,grammalecte) ("python" ,python))) (propagated-inputs `(("emacs-flycheck" ,emacs-flycheck))) - (home-page "https://git.deparis.io/flycheck-grammalecte/") + (home-page "https://git.umaneti.net/flycheck-grammalecte/") (synopsis "Integrate Grammalecte with Flycheck") (description "Integrate the French grammar and typography checker Grammalecte with @@ -6344,6 +6369,57 @@ drill sessions to aid in memorization. In these sessions you are shown flash cards created in Org mode.") (license license:gpl3+))) +(define-public emacs-anki-editor + ;; Last release was in 2018. + (let ((commit "546774a453ef4617b1bcb0d1626e415c67cc88df") + (revision "0") + (version "0.3.3")) + (package + (name "emacs-anki-editor") + (version (git-version version revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/louietan/anki-editor") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1if610hq5j8rbjh1caw5bwbgnsn231awwxqbpwvrh966kdxzl4qf")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-request" ,emacs-request))) + (home-page "https://github.com/louietan/anki-editor") + (synopsis "Minor mode for making Anki cards with Org mode") + (description + "This package is for people who use Anki as a spaced repetition system +(SRS) but would like to make cards in Org mode.") + (license license:gpl3+)))) + +(define-public emacs-org-mime + (package + (name "emacs-org-mime") + (version "0.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/org-mime/org-mime") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0vchyd80ybvr6317dwm50nxcgxfrpc0bz6259vnrh24p5sb8shbj")))) + (build-system emacs-build-system) + (home-page "http://github.com/org-mime/org-mime") + (synopsis "Send HTML email using Org mode HTML export") + (description + "This program sends HTML email using Org-mode HTML export. +This approximates a WYSiWYG HTML mail editor from within Emacs, and can be +useful for sending tables, fontified source code, and inline images in +email.") + (license license:gpl3+))) + (define-public emacs-org-superstar (package (name "emacs-org-superstar") @@ -6983,6 +7059,60 @@ any one of several ways: literally, as a regexp, as an initialism, in the flex style, or as multiple word prefixes.") (license license:gpl3+))) +(define-public emacs-consult + ;; There are no tagged releases upstream on GitHub, instead we are using the + ;; most recent commit. + (let ((commit "ef6bb73a4a46e686826968fa25169e2d59b9a087") + (revision "0")) + (package + (name "emacs-consult") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minad/consult") + (commit commit))) + (sha256 + (base32 "00cnwg2knd820wwx6zg71rr0whpdhqm64gm3qx1mgklk79g7daih")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs `(("emacs-flycheck" ,emacs-flycheck) + ("emacs-selectrum" ,emacs-selectrum))) + (home-page "https://github.com/minad/consult") + (synopsis "Consulting completing-read") + (description "This package provides various handy commands based on the +Emacs completion function completing-read, which allows to quickly select from a +list of candidates.") + (license license:gpl3+)))) + +(define-public emacs-marginalia + ;; There are no tagged releases upstream on GitHub, instead we are using the + ;; most recent commit. + (let ((commit "401993562dbf636054dd64988e44d19b5030867f") + (revision "0")) + (package + (name "emacs-marginalia") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minad/marginalia") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1j0k9ija5paidj7yvbagkkayz9bjwhia9yhmd2q4490ginbbxshs")))) + (build-system emacs-build-system) + (home-page "https://github.com/minad/marginalia") + (synopsis "Marginalia in the minibuffer") + (description + "This package provides Marginalia mode which adds marginalia to the +minibuffer completions. Marginalia are marks or annotations placed at the +margin of the page of a book or in this case helpful colorful annotations +placed at the margin of the minibuffer for your completion candidates.") + (license license:gpl3+)))) + (define-public emacs-smartparens (package (name "emacs-smartparens") @@ -9923,8 +10053,8 @@ extensions.") (license license:gpl3+))) (define-public emacs-evil-collection - (let ((commit "8c256263ad100fecd6246c6c55cbb19dab717c39") - (revision "18")) + (let ((commit "323bb7d85848a6a142ae14f39c3a073ce6423e20") + (revision "19")) (package (name "emacs-evil-collection") (version (git-version "0.0.3" revision commit)) @@ -9936,7 +10066,7 @@ extensions.") (file-name (git-file-name name version)) (sha256 (base32 - "0hz1yfv5g016dm99bwnibbmyhbi21qlc39ckd7p3s82az89hgf2n")))) + "1pf51kj93i1k2ivkjgwcvgxj8shrl8h7rkg578jl4k4awargf0nz")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-evil" ,emacs-evil) @@ -9976,9 +10106,9 @@ being deleted, changed, yanked, or pasted when using evil commands") (license license:gpl3+)))) (define-public emacs-goto-chg - (let ((commit "1829a13026c597e358f716d2c7793202458120b5") + (let ((commit "2af612153bc9f5bed135d25abe62f46ddaa9027f") (version "1.7.3") - (revision "1")) + (revision "2")) (package (name "emacs-goto-chg") (version (git-version version revision commit)) @@ -9991,10 +10121,8 @@ being deleted, changed, yanked, or pasted when using evil commands") (file-name (git-file-name name version)) (sha256 (base32 - "1y603maw9xwdj3qiarmf1bp13461f9f5ackzicsbynl0i9la3qki")))) + "1awmvihqgw6kspx192bcp9xp56xqbma90wlhxfxmidx3bvxghwpv")))) (build-system emacs-build-system) - (propagated-inputs - `(("emacs-undo-tree" ,emacs-undo-tree))) (home-page "https://github.com/emacs-evil/goto-chg") (synopsis "Go to the last change in the Emacs buffer") (description @@ -11575,14 +11703,14 @@ information via a consistent and well-integrated user interface.") (define-public emacs-adaptive-wrap (package (name "emacs-adaptive-wrap") - (version "0.7") + (version "0.8") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "adaptive-wrap-" version ".el")) (sha256 - (base32 "10fb8gzvkbnrgzv28n1rczs03dvapr7rvi0kd73j6yf1zg2iz6qp")))) + (base32 "1gs1pqzywvvw4prj63vpj8abh8h14pjky11xfl23pgpk9l3ldrb0")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html") (synopsis "Smart line-wrapping with wrap-prefix") @@ -12031,14 +12159,14 @@ and cangjie.") (define-public emacs-posframe (package (name "emacs-posframe") - (version "0.8.3") + (version "0.8.4") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" - "posframe-" version ".el")) + "posframe-" version ".tar")) (sha256 - (base32 "05m56aw2yxik0pgcvyr5c92j2mwfksxgq1syzvik6161gy8hdd0g")))) + (base32 "1sn35ibp5y4y80l1xm4b8i94ld953a9gbkk99zqd9mrq9bwjyhdp")))) (build-system emacs-build-system) ;; emacs-minimal does not include the function font-info. (arguments @@ -12766,6 +12894,29 @@ JSONRPC is a generic Remote Procedure Call protocol designed around JSON objects.") (license license:gpl3+))) +(define-public emacs-jsonnet-mode + (package + (name "emacs-jsonnet-mode") + (version "0.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tminor/jsonnet-mode") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0vi7415n90d1z2ww1hld0gdp6v7z4rd6f70h476dp2x4hydk293i")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash))) + (home-page "https://github.com/mgyucht/jsonnet-mode") + (synopsis "Major mode for editing jsonnet files") + (description "This package provides syntax highlighting, indenting, +formatting, and utility methods for jsonnet files.") + (license license:gpl3+))) + (define-public emacs-restclient (let ((commit "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3") (version "0") @@ -12879,8 +13030,8 @@ the actual transformations.") (license license:gpl2+)))) (define-public emacs-dired-hacks - (let ((commit "886befe113fae397407c804f72c45613d1d43535") - (revision "2")) + (let ((commit "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388") + (revision "3")) (package (name "emacs-dired-hacks") (version (git-version "0.0.1" revision commit)) @@ -12892,7 +13043,7 @@ the actual transformations.") (file-name (git-file-name name version)) (sha256 (base32 - "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl")))) + "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash) @@ -13512,14 +13663,14 @@ database of references on life sciences.") (define-public emacs-websocket (package (name "emacs-websocket") - (version "1.13") + (version "1.13.1") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "websocket-" version ".tar")) (sha256 - (base32 "0jnarx53csmx5fivzp5vhvvj3m8s03zwc6hjl0spz5zb6icqclsa")))) + (base32 "1x664zswas0fpml7zaj59zy97avrm49zb80zd69rlkqzz1m45psc")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/websocket.html") (synopsis "Emacs WebSocket client and server") @@ -13667,6 +13818,36 @@ through them using @key{C-c C-SPC}.") messaging service.") (license license:gpl3+)))) +(define-public emacs-helm-slack + (let ((commit "465f6220f3f5bee4d95492991fca1290c89534eb") + (revision "1")) + (package + (name "emacs-helm-slack") + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/yuya373/helm-slack") + (commit commit))) + (file-name (git-file-name name commit)) + (sha256 + (base32 + "0p1s1kl8v68qjprqkf034cz911qzbqxbscqgpn0c3mbm3yfx81f7")))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; HOME needs to exist for source compilation. + (add-before 'build 'set-HOME + (lambda _ (setenv "HOME" "/tmp") #t))))) + (propagated-inputs `(("emacs-slack", emacs-slack))) + (home-page "https://github.com/yuya373/helm-slack") + (synopsis "Helm extension for emacs-slack") + (description "This package provides an helm extension for emacs-slack +Slack client.") + (license license:gpl3+)))) + + (define-public emacs-bash-completion (package (name "emacs-bash-completion") @@ -13949,7 +14130,7 @@ Features: (define-public emacs-evil-matchit (package (name "emacs-evil-matchit") - (version "2.3.9") + (version "2.3.10") (source (origin (method git-fetch) @@ -13958,7 +14139,7 @@ Features: (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1jk5qkqz3c4fnh6d2y889k5ycz8ipbkmzk4i8bl86xv9rhis1pv9")))) + (base32 "14nrc46290q54y7wv25251f2kqc0z8i9byl09xkgjijqldl9vdxa")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-evil" ,emacs-evil))) @@ -16073,6 +16254,32 @@ dumb text search, @code{elisp-refs} actually parses the code, so it's never confused by comments or @code{foo-bar} matching @code{foo}.") (license license:gpl3+))) +(define-public emacs-crdt + (let ((commit "44068ae505adf2c3a7bdbf6723a25fc45d6d1666") + (revision "0")) + (package + (name "emacs-crdt") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://code.librehq.com/qhong/crdt.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "130fkhvi757pfnbz70g6nw2n71k89cwwx7yzvsd5v177228c8w7w")))) + (build-system emacs-build-system) + (home-page "https://code.librehq.com/qhong/crdt.el") + (synopsis "Real-time collaborative editing environment") + (description + "@code{crdt.el} is a real-time collaborative editing environment for +Emacs using Conflict-free Replicated Data Types. With it, you can share +multiple buffer in one session, and see other users’ cursor and region. It +also synchronizes Org mode folding status. It should work with all of Org +mode.") + (license license:gpl3+)))) + (define-public emacs-crux (let ((commit "308f17d914e2cd79cbc809de66d02b03ceb82859") (revision "2")) @@ -18134,16 +18341,16 @@ appropriate directory if no @code{eshell} session is active.") (define-public emacs-eshell-syntax-highlighting (package (name "emacs-eshell-syntax-highlighting") - (version "0.2") + (version "0.3") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/akreisher/eshell-syntax-highlighting") - (commit version))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0id27874wsb5y169030x8g1ldpa1mnskv1s2j3ygqiyh5fvpfash")))) + (base32 "1fb9aa85a3hx1rcmv71j6sc3y278452p1y4dabpwy07avb6apd0p")))) (build-system emacs-build-system) (home-page "https://github.com/akreisher/eshell-syntax-highlighting") (synopsis "Add syntax highlighting to Eshell") @@ -20083,7 +20290,7 @@ correctly.") (define-public emacs-helm-sly (package (name "emacs-helm-sly") - (version "0.5.1") + (version "0.7.0") (source (origin (method git-fetch) (uri (git-reference @@ -20092,7 +20299,7 @@ correctly.") (file-name (git-file-name name version)) (sha256 (base32 - "13s2dj09mcdwlibjlahyyq2dxjkjlpxs88dbdyvcd64249jmahsx")))) + "090vq8c4scf9byn8xic71b02n4c8frhz1y1x1brxn6iar44dmzm5")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-helm" ,emacs-helm) @@ -20957,6 +21164,25 @@ with emacs. It displays the output of the @code{repo status} command in a buffer and launches Magit from the status buffer for the project at point.") (license license:gpl3+))) +(define-public emacs-repology + (package + (name "emacs-repology") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/" + "repology-" version ".tar")) + (sha256 + (base32 "0y12496wafx95izah8vvv1x86k1m8kysm5mlhvshkp0zbpvmb5iq")))) + (build-system emacs-build-system) + (home-page "https://elpa.gnu.org/packages/repology.html") + (synopsis "Repology API access via Elisp") + (description + "This package provides tools to query Repology API (see +@url{https://repology.org/api}), process results, and display them.") + (license license:gpl3+))) + (define-public emacs-alect-themes (package (name "emacs-alect-themes") @@ -22583,6 +22809,21 @@ through Dash docsets.") (sha256 (base32 "19gc05k2p1l8wlkrqij9cw6d61hzknd6a9n64kzlpi87cpbav3lv")))) (build-system emacs-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (let ((calibre (assoc-ref inputs "calibre"))) + (make-file-writable "calibredb-core.el") + (emacs-substitute-variables "calibredb-core.el" + ("calibredb-program" + (string-append calibre "/bin/calibredb")) + ("calibredb-fetch-metadata-program" + (string-append calibre "/bin/fetch-ebook-metadata")))) + #t))))) + (inputs + `(("calibre" ,calibre))) (propagated-inputs `(("emacs-dash" ,emacs-dash) ("emacs-s" ,emacs-s) @@ -24902,7 +25143,7 @@ pattern guessed from thing under current cursor position. (define-public emacs-helm-selector (package (name "emacs-helm-selector") - (version "0.5") + (version "0.6.1") (home-page "https://github.com/emacs-helm/helm-selector") (source (origin @@ -24913,7 +25154,7 @@ pattern guessed from thing under current cursor position. (file-name (git-file-name name version)) (sha256 (base32 - "1cv659sqmrvk316fp7mjc58vvbcg1j6s2q4rwgqrpbyszrxl3i63")))) + "01lh1df0bnas1p7xlqc4i1jd67f8lxgq0q2zsvx10z8828i76j3v")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-helm" ,emacs-helm))) @@ -25761,7 +26002,7 @@ comments or emails.") (define-public emacs-trashed (package (name "emacs-trashed") - (version "1.9.0") + (version "2.1.2") (source (origin (method git-fetch) @@ -25770,7 +26011,7 @@ comments or emails.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "13grdi12iwlw4fiphdfmvclfpbr6ajlgfbfyi7v41z8k3rxz4ypz")))) + (base32 "0lfza55nbb62nmr27cwpcz2ad1vm95piq4nfd8zvkwqbn6klwmm6")))) (build-system emacs-build-system) (home-page "https://github.com/shingo256/trashed/") (synopsis "View and edit system trash can in Emacs") diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 5166a4635c..baddaf1737 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -15,11 +15,11 @@ ;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com> ;;; Copyright © 2019 John Soo <jsoo1@asu.edu> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> -;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> +;;; Copyright © 2020,2021 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech> ;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com> -;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> +;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com> ;;; ;;; This file is part of GNU Guix. @@ -1214,14 +1214,14 @@ use on a given system.") (define-public libredwg (package (name "libredwg") - (version "0.11.1") + (version "0.12") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libredwg/libredwg-" version ".tar.xz")) (sha256 - (base32 "1xx6y6ckm4mzqln8y8lqf5frcn2b32ypc0d0h9dzpz6363zh7pdn")))) + (base32 "0z5algzi3alq166885y0qyj2gnc7gc6vhnz7nw0kwc0d236p6md8")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-bindings"))) @@ -1524,7 +1524,7 @@ bindings for Python, Java, OCaml and more.") (define-public radare2 (package (name "radare2") - (version "4.4.0") + (version "5.0.0") (source (origin (method git-fetch) (uri (git-reference @@ -1532,7 +1532,7 @@ bindings for Python, Java, OCaml and more.") (commit version))) (sha256 (base32 - "0gwdnrnk7wdgkajp2qwg4fyplh7nsbmf01bzx07px6xmiscd9z2s")) + "0aa7c27kd0l55fy5qfvxqmakp4pz6240v3hn84095qmqkzcbs420")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments @@ -2367,7 +2367,7 @@ simulation.") (define-public cutter (package (name "cutter") - (version "1.10.3") + (version "1.12.0") (source (origin (method git-fetch) @@ -2376,7 +2376,7 @@ simulation.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0qj8jyij02nif4jpirl09ygwnv8a9zi3vkb5sf5s8mg7qwlpnvyk")))) + (base32 "0ljj3j3apbbw628n2nyrxpbnclixx20bqjxm0xwggqzz9vywsar0")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 99309dd4a0..d2769a4d76 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -198,7 +198,7 @@ removable devices or support for multimedia.") (define-public terminology (package (name "terminology") - (version "1.8.1") + (version "1.9.0") (source (origin (method url-fetch) (uri @@ -206,7 +206,7 @@ removable devices or support for multimedia.") "terminology/terminology-" version ".tar.xz")) (sha256 (base32 - "1fxqjf7g30ix4qxi6366rrax27s3maxq43z2vakwnhz4mp49m9h4")) + "0v74858yvrrfy0l2pq7yn6izvqhpkb9gw2jpd3a3khjwv8kw6frz")) (modules '((guix build utils))) ;; Remove the bundled fonts. (snippet @@ -217,10 +217,11 @@ removable devices or support for multimedia.") #t)))) (build-system meson-build-system) (arguments - `(#:configure-flags (list "-Dtests=true" - (string-append "-Dedje-cc=" - (assoc-ref %build-inputs "efl") - "/bin/edje_cc")) + `(#:configure-flags + (let ((efl (assoc-ref %build-inputs "efl"))) + (list "-Dtests=true" + (string-append "-Dedje-cc=" efl "/bin/edje_cc") + (string-append "-Deet=" efl "/bin/eet"))) #:phases (modify-phases %standard-phases (add-after 'unpack 'set-home-directory diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 93569f3560..7b5dc70b5d 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Nikita <nikita@n0.is> +;;; Copyright © 2021 Oskar Köök <oskar@maatriks.ee> ;;; ;;; This file is part of GNU Guix. ;;; @@ -40,7 +41,7 @@ (define-public erlang (package (name "erlang") - (version "21.3.8.13") + (version "23.2.1") (source (origin (method git-fetch) ;; The tarball from http://erlang.org/download contains many @@ -52,7 +53,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "1dj37vk712dx76y25g13na24wbpn7a5ddmlpf4n51gm10sib54wj")) + "1p3lw4bcm2dph3pf1h4i0d9pzrcfr83r0iadqanxkwbmm1bl11pm")) (patches (search-patches "erlang-man-path.patch")))) (build-system gnu-build-system) (native-inputs @@ -68,7 +69,7 @@ (version-major+minor version) ".tar.gz")) (sha256 (base32 - "0wm1dg1psv1n3gpiwyms06yhsryrnr28p455fp0l1ak8hdf4nipm")))))) + "0rq0rw68f02vckgdiwmvx8bvyv00l81s27cq59i3h79j9prfal2n")))))) (inputs `(("ncurses" ,ncurses) ("openssl" ,openssl) @@ -180,6 +181,14 @@ (lambda _ (invoke "./otp_build" "autoconf") #t)) + (add-after 'autoconf 'patch-configure-script-shell + (lambda _ + (substitute* "configure" + (("cmd_str=\"./configure") + (string-append "cmd_str=\"" + (which "sh") + " ./configure"))) + #t)) (add-after 'install 'patch-erl ;; This only works after install. (lambda* (#:key outputs #:allow-other-keys) diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 2c5ad95d63..e6ee645be0 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com> ;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Leo Famulari <leo@famulari.name> -;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> ;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com> ;;; Copyright © 2021 raid5atemyhoemwork <raid5atemyhomework@protonmail.com> @@ -847,7 +847,7 @@ APFS.") (define-public zfs (package (name "zfs") - (version "0.8.5") + (version "2.0.1") (outputs '("out" "module" "src")) (source (origin @@ -856,7 +856,7 @@ APFS.") "/download/zfs-" version "/zfs-" version ".tar.gz")) (sha256 - (base32 "0gfdnynmsxbhi97q73smrgmcw1k8zmlr1hgljfn38sk0kimivd6v")))) + (base32 "0y3992l4nzr67q18lz1kizw0za1shvqbpmsjz9shv4frh5ihllbi")))) (build-system linux-module-build-system) (arguments `(;; The ZFS kernel module should not be downloaded since the license @@ -885,19 +885,33 @@ APFS.") (let ((out (assoc-ref outputs "out")) (src (assoc-ref outputs "src")) (util-linux (assoc-ref inputs "util-linux")) - (nfs-utils (assoc-ref inputs "nfs-utils"))) + (nfs-utils (assoc-ref inputs "nfs-utils")) + (kmod (assoc-ref inputs "kmod-runtime"))) + (substitute* "etc/Makefile.in" + ;; This just contains an example configuration file for + ;; configuring ZFS on traditional init systems, skip it + ;; since we cannot use it anyway; the install target becomes + ;; misdirected. + (("= default ") "= ")) + (substitute* "lib/libzfs/os/linux/libzfs_util_os.c" + ;; Use path to /gnu/store/*-kmod in actual path that is exec'ed. + (("\"/sbin/modprobe\"") + (string-append "\"" kmod "/bin/modprobe" "\"")) + ;; Just use 'modprobe' in message to user, since Guix + ;; does not have a traditional /sbin/ + (("'/sbin/modprobe ") "'modprobe ")) (substitute* "contrib/Makefile.in" ;; This is not configurable nor is its hard-coded /usr prefix. ((" initramfs") "")) - (substitute* "module/zfs/zfs_ctldir.c" + (substitute* "module/os/linux/zfs/zfs_ctldir.c" (("/usr/bin/env\", \"umount") (string-append util-linux "/bin/umount\", \"-n")) (("/usr/bin/env\", \"mount") (string-append util-linux "/bin/mount\", \"-n"))) - (substitute* "lib/libzfs/libzfs_mount.c" + (substitute* "lib/libzfs/os/linux/libzfs_mount_os.c" (("/bin/mount") (string-append util-linux "/bin/mount")) (("/bin/umount") (string-append util-linux "/bin/umount"))) - (substitute* "lib/libshare/nfs.c" + (substitute* "lib/libshare/os/linux/nfs.c" (("/usr/sbin/exportfs") (string-append nfs-utils "/sbin/exportfs"))) (substitute* "config/zfs-build.m4" @@ -915,7 +929,9 @@ APFS.") (substitute* "contrib/pyzfs/Makefile.in" ((".*install-lib.*") "")) (substitute* '("Makefile.am" "Makefile.in") - (("\\$\\(prefix)/src") (string-append src "/src")))) + (("\\$\\(prefix)/src") (string-append src "/src"))) + (substitute* (find-files "udev/rules.d/" ".rules.in$") + (("/sbin/modprobe") (string-append kmod "/bin/modprobe")))) #t)) (replace 'build (lambda _ (invoke "make"))) @@ -939,6 +955,7 @@ APFS.") ("pkg-config" ,pkg-config))) (inputs `(("eudev" ,eudev) + ("kmod-runtime" ,kmod) ("libaio" ,libaio) ("libtirpc" ,libtirpc) ("nfs-utils" ,nfs-utils) @@ -1086,14 +1103,14 @@ Dropbox API v2.") (define-public dbxfs (package (name "dbxfs") - (version "1.0.48") + (version "1.0.50") (source (origin (method url-fetch) (uri (pypi-uri "dbxfs" version)) (sha256 (base32 - "07q7dgqaqqyapjl9r4lqydflrgx4dh84c1qsb0jvfmqj3i8887ak")) + "01zvk862ybz12270q0r2l1i7kdj30ib2gxrlxmwvi19b2fkf39na")) (patches (search-patches "dbxfs-remove-sentry-sdk.patch")))) (build-system python-build-system) (arguments diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index e7d58bbcc0..8ead37beb3 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -1380,56 +1380,6 @@ following three utilities are included with the library: @end enumerate") (license license:gpl2+))) -(define-public opensp - (package - (name "opensp") - (version "1.5.2") - (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/openjade/opensp/" - version "/OpenSP-" version ".tar.gz")) - (sha256 - (base32 - "1khpasr6l0a8nfz6kcf3s81vgdab8fm2dj291n5r2s53k228kx2p")))) - (build-system gnu-build-system) - (native-inputs - `(("gettext" ,gettext-minimal))) - (inputs - `(("docbook-xml" ,docbook-xml-4.1.2) - ("docbook-xsl" ,docbook-xsl) - ("xmlto" ,xmlto))) - (arguments - `(;; TODO: Fix and enable tests. - #:tests? #f - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-docbook-paths - (lambda* (#:key inputs #:allow-other-keys) - (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml") - "/xml/dtd/docbook")) - (xsldoc (string-append (assoc-ref inputs "docbook-xsl") - "/xml/xsl/docbook-xsl-" - ,(package-version docbook-xsl)))) - (substitute* (find-files "docsrc" "\\.xml$") - (("/usr/share/sgml/docbook/xml-dtd-4.1.2") xmldoc) - (("http://.*/docbookx\\.dtd") - (string-append xmldoc "/docbookx.dtd"))) - ;; Directly pass the path to the stylesheet to xmlto. - (substitute* "docsrc/Makefile.in" - (("\\$\\(XMLTO\\)") - (string-append "$(XMLTO) -x " xsldoc - "/manpages/docbook.xsl"))) - #t)))))) - (home-page "http://openjade.sourceforge.net/") - (synopsis "Suite of SGML/XML processing tools") - (description "OpenSP is an object-oriented toolkit for SGML parsing and -entity management.") - (license - ;; expat license with added clause regarding advertising - (license:non-copyleft - "file://COPYING" - "See COPYING in the distribution.")))) - (define-public bitcoin-unlimited (package (name "bitcoin-unlimited") diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index d53583168e..be7a3cc181 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013 John Darrington <jmd@gnu.org> ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2014, 2016 David Thompson <dthompson2@worcester.edu> -;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net> +;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com> ;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net> ;;; Copyright © 2014, 2015, 2018, 2019 Ludovic Courtès <ludo@gnu.org> @@ -30,7 +30,7 @@ ;;; Copyright © 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org> -;;; Copyright © 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2017, 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2018 okapi <okapi@firemail.cc> ;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de> ;;; Copyright © 2018 Madalin Ionel-Patrascu <madalinionel.patrascu@mdc-berlin.de> @@ -1360,7 +1360,7 @@ does not include game data.") (package (inherit julius) (name "augustus") - (version "1.4.1a") + (version "2.0.1") (source (origin (method git-fetch) @@ -1369,7 +1369,7 @@ does not include game data.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1xqv8j8jh3f13fjhyf7hk1anrn799cwwsvsd75kpl9n5yh5s1j5y")) + (base32 "0czazw8mc3fbvdazs2nzvgxd1dpzjc8z5fwiv89vv4nd7laz3jkj")) ;; Remove unused bundled libraries. (modules '((guix build utils))) (snippet @@ -2237,6 +2237,100 @@ and defeat them with your bubbles!") ;; GPL2+ is for code, CC0 is for art. (license (list license:gpl2+ license:cc0)))) +(define-public solarus + (package + (name "solarus") + ;; XXX: When updating this package, please also update hash in + ;; `solarus-quest-editor' below. + (version "1.6.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/solarus-games/solarus") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1n6l91yyqjx0pz4w1lp3yybpq0fs2yjswfcm8c1wjfkxwiznbdxi")))) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-failing-tests + ;; The following tests fail reporting a missing "/dev/dri" + ;; file. + (lambda _ + (substitute* "tests/cmake/AddTestMaps.cmake" + ((".*1200_create_shader_from_source.*" all) + (string-append "#" all)) + ((".*1210_shader_scaling_factor.*" all) + (string-append "#" all))) + #t)) + (add-before 'check 'set-home + ;; Tests fail without setting the following environment + ;; variables. + (lambda _ + (setenv "HOME" (getcwd)) + (setenv "XDG_RUNTIME_DIR" (getcwd)) + #t))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("qttools" ,qttools))) + (inputs + `(("glm" ,glm) + ("libmodplug" ,libmodplug) + ("libogg" ,libogg) + ("libvorbis" ,libvorbis) + ("luajit" ,luajit) + ("openal" ,openal) + ("physfs" ,physfs) + ("qtbase" ,qtbase) + ("sdl2" ,(sdl-union (list sdl2 sdl2-image sdl2-ttf))))) + (home-page "https://www.solarus-games.org/") + (synopsis "Lightweight game engine for Action-RPGs") + (description + "Solarus is a 2D game engine written in C++, that can run games +scripted in Lua. It has been designed with 16-bit classic Action-RPGs +in mind.") + ;; The source code is licensed under the terms of GPL-3.0. + ;; Resources are licensed under the terms of CC-BY-SA-3.0 and + ;; CC-BY-SA 4.0. + (license (list license:gpl3 license:cc-by-sa3.0 license:cc-by-sa4.0)))) + +(define-public solarus-quest-editor + (package + (inherit solarus) + (name "solarus-quest-editor") + (version (package-version solarus)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/solarus-games/solarus-quest-editor") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1qbc2j9kalk7xqk9j27s7wnm5zawiyjs47xqkqphw683idmzmjzn")))) + (arguments + `(#:tests? #false ;no test + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-qt-build + ;; XXX: Fix build with Qt 5.15. It has been applied upstream as + ;; 81d5c7f1 and can be removed at next upgrade. + (lambda _ + (substitute* "src/entities/jumper.cpp" + (("#include <QPainter>" all) + (string-append all "\n" "#include <QPainterPath>\n"))) + #t))))) + (inputs + `(("solarus" ,solarus) + ,@(package-inputs solarus))) + (synopsis "Create and modify quests for the Solarus engine") + (description + "Solarus Quest Editor is a graphical user interface to create and +modify quests for the Solarus engine."))) + (define-public superstarfighter (package (name "superstarfighter") @@ -2365,6 +2459,93 @@ available, as well as a single-player mode with AI-controlled ships.") "$(call ZIP) -X")) #t)))) +(define-public trigger-rally + (package + (name "trigger-rally") + (version "0.6.6.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/trigger-rally/" + "trigger-" version "/" + "trigger-rally-" version ".tar.gz")) + (sha256 + (base32 + "016bc2hczqscfmngacim870hjcsmwl8r3aq8x03vpf22s49nw23z")))) + (build-system gnu-build-system) + (inputs + `(("freealut" ,freealut) + ("glew" ,glew) + ("glu" ,glu) + ("mesa" ,mesa) + ("openal" ,openal) + ("physfs" ,physfs) + ("sdl" ,(sdl-union (list sdl2 sdl2-image))) + ("tinyxml2" ,tinyxml2))) + (arguments + `(#:make-flags (list (string-append "prefix=" %output) + "bindir=$(prefix)/bin" + "datadir=$(datarootdir)" + "OPTIMS=-Ofast") + #:tests? #f ; No tests present + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'cd-src + (lambda _ (chdir "src"))) + (add-before 'build 'remove-timestamps + (lambda _ + (substitute* (list "Trigger/menu.cpp" + "PEngine/app.cpp") + ((".*__DATE__.*") "")))) + (add-before 'build 'make-verbose + (lambda _ + (substitute* "GNUmakefile" + (("@\\$\\(CXX\\)") "$(CXX)")))) + (add-after 'build 'set-data-path + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "../bin/trigger-rally.config.defs" + (("<data path=\"C:[^\"]*\"") + (string-append "<data path=\"" out "/share/trigger-rally\"")))))) + (add-after 'install 'create-desktop-entry + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (apps (string-append out "/share/applications"))) + (mkdir-p apps) + (with-output-to-file + (string-append apps "/trigger-rally.desktop") + (lambda () + (format #t ; Borrowed from Debian package + "[Desktop Entry]~@ + Name=Trigger Rally~@ + Icon=trigger-rally~@ + Comment=3D rally racing car game~@ + Comment[de]=3D Rally-Autorennen~@ + Comment[fr_FR]=un jeu de rally en 3D~@ + Comment[ro_RO]=Un joc în 3D cu curse de raliu~@ + Exec=~a/bin/trigger-rally~@ + Terminal=false~@ + StartupNotify=false~@ + Type=Application~@ + TryExec=~:*~a/bin/trigger-rally~@ + Categories=Game;ArcadeGame;~@ + Keywords=racing;tracks;~@ + Keywords[de]=Rennstrecke;~%" + out))))))))) + (home-page "http://trigger-rally.sourceforge.net") + (synopsis "Fast-paced single-player racing game") + (description "Trigger-rally is a 3D rally simulation with great physics +for drifting on over 200 maps. Different terrain materials like dirt, +asphalt, sand, ice, etc. and various weather, light, and fog conditions give +this rally simulation the edge over many other games. You need to make it +through the maps in often tight time limits and can further improve by beating +the recorded high scores. All attached single races must be finished in time +in order to win an event, unlocking additional events and cars. Most maps are +equipped with spoken co-driver notes and co-driver icons.") + (license (list license:cc0 ;textures and audio in data.zip + license:gpl2+)))) + (define-public ufo2map (package (name "ufo2map") @@ -6196,31 +6377,15 @@ fish. The whole game is accompanied by quiet, comforting music.") (define-public crawl (package (name "crawl") - (version "0.25.0") + (version "0.26.0") (source (origin (method url-fetch) - (uri (list - ;; Older releases get moved into a versioned directory - (string-append "http://crawl.develz.org/release/" - (version-major+minor version) "/stone_soup-" - version "-nodeps.tar.xz") - ;; Only the latest release is in this directory - (string-append "http://crawl.develz.org/release/stone_soup-" - version "-nodeps.tar.xz"))) + (uri (string-append "https://github.com/crawl/crawl/releases/download/" + version "/stone_soup-" version "-nodeps.tar.xz")) (sha256 - (base32 "0rn1wjxdqw33caiwisfypm1j8cid3c9pz01ahicl17144zs29z3d")) - (patches (search-patches "crawl-upgrade-saves.patch")) - ;; The 0.25.0 -nodeps.tar.xz was built from an OSX machine; normally - ;; apparently it's built from a Debian machine before the Debian - ;; packages are made. These ._* files are binary and have the string - ;; "Mac OS X" in them... removing these seems to result in compilation - ;; again. - (modules '((guix build utils))) - (snippet - '(begin - (for-each delete-file (find-files "." "^\\._")) - #t)))) + (base32 "1m81x1sp6p2ka5w2nib3pcw5w5iv58z41c8aqn0dayi1lb3yslfb")) + (patches (search-patches "crawl-upgrade-saves.patch")))) (build-system gnu-build-system) (inputs `(("lua51" ,lua-5.1) diff --git a/gnu/packages/genimage.scm b/gnu/packages/genimage.scm index c9ed6258a0..bd77e4dc33 100644 --- a/gnu/packages/genimage.scm +++ b/gnu/packages/genimage.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org> +;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -47,7 +48,7 @@ (uri (git-reference (url "https://github.com/pengutronix/genimage") (commit (string-append "v" version)))) - (file-name (string-append name "-" version "-checkout")) + (file-name (git-file-name name version)) (sha256 (base32 "15jmh17lvm3jw9c92bjarly7iwhmnfl322d91mprfv10ppb9ip54")) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 2612347913..e378474147 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -770,7 +770,7 @@ OpenGL.") (define-public glfw (package (name "glfw") - (version "3.2.1") + (version "3.3.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/glfw/glfw" @@ -778,7 +778,7 @@ OpenGL.") "/glfw-" version ".zip")) (sha256 (base32 - "09kk5yc1zhss9add8ryqrngrr16hdmc94rszgng135bhw09mxmdp")))) + "1izgc4r0ypxwwklfzj98ab4xqsjpb1wbsfdbivvxpmr95x8km8q8")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no test target @@ -792,6 +792,7 @@ OpenGL.") ;; These are in 'Requires.private' of 'glfw3.pc'. ("libx11" ,libx11) ("libxrandr" ,libxrandr) + ("libxi" ,libxi) ("libxinerama" ,libxinerama) ("libxcursor" ,libxcursor) ("libxxf86vm" ,libxxf86vm))) diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm index 1204dcee90..eb99fda78e 100644 --- a/gnu/packages/gnome-xyz.scm +++ b/gnu/packages/gnome-xyz.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019, 2020, 2021 Leo Prikler <leo.prikler@student.tugraz.at> -;;; Copyright © 2019 Alexandros Theodotou <alex@zrythm.org> +;;; Copyright © 2019, 2021 Alexandros Theodotou <alex@zrythm.org> ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2020 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us> @@ -779,6 +779,55 @@ dark elements. It supports GNOME, Unity, Xfce, and Openbox.") (define-public numix-theme (deprecated-package "numix-theme" numix-gtk-theme)) +(define-public markets + (package + (name "markets") + (version "0.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bitstower/markets") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jzv74l2jkdiqy1hp0ww5yla50dmrvjw7fgkmb26ynblr1nb3rrb")))) + (build-system meson-build-system) + (arguments + `(#:glib-or-gtk? #t + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'skip-gtk-update-icon-cache + ;; Don't create 'icon-theme.cache'. + (lambda _ + (substitute* "build-aux/meson/postinstall.py" + (("gtk-update-icon-cache") "true")) + #t)) + (add-after 'unpack 'skip-update-desktop-database + ;; Don't update desktop file database. + (lambda _ + (substitute* "build-aux/meson/postinstall.py" + (("update-desktop-database") "true")) + #t))))) + (inputs + `(("gtk3" ,gtk+) + ("gettext" ,gettext-minimal) + ("libgee" ,libgee) + ("libhandy0" ,libhandy-0.0) + ("libsoup" ,libsoup) + ("json-glib" ,json-glib) + ("vala" ,vala))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("glib" ,glib "bin"))) ; for 'glib-compile-resources' + (home-page "https://github.com/bitstower/markets") + (synopsis "Stock, currency and cryptocurrency tracker") + (description + "Markets is a GTK application that displays financial data, helping users +track stocks, currencies and cryptocurrencies.") + (license license:gpl3))) + (define-public vala-language-server (package (name "vala-language-server") diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 3399b5ae7d..fd7a82da69 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -51,7 +51,7 @@ ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net> ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com> -;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> +;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> @@ -2252,6 +2252,16 @@ and keep up to date translations of documentation.") (lambda _ (substitute* "meson-postinstall.sh" (("update-desktop-database") (which "true"))) + #t)) + (add-after 'install 'patch-thumbnailer + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* + (string-append + out + "/share/thumbnailers/gnome-font-viewer.thumbnailer") + (("gnome-thumbnail-font") + (string-append out "/bin/gnome-thumbnail-font")))) #t))))) (native-inputs `(("gettext" ,gettext-minimal) @@ -2841,7 +2851,7 @@ database is translated at Transifex.") (define-public system-config-printer (package (name "system-config-printer") - (version "1.5.14") + (version "1.5.15") (source (origin (method url-fetch) @@ -2850,7 +2860,7 @@ database is translated at Transifex.") "download/v" version "/system-config-printer-" version ".tar.xz")) (sha256 - (base32 "1l79lj44kl079sk308m42x3py1yvcxk5x5bs2vqfmqv26zm8qyqf")))) + (base32 "12d6xx51vizc476zfnsga9q09nflp51ipn6y7lhi9w2v4772dlpv")))) (build-system glib-or-gtk-build-system) (arguments `(#:imported-modules ((guix build python-build-system) @@ -6514,14 +6524,14 @@ almost all of them.") (define-public eolie (package (name "eolie") - (version "0.9.100") + (version "0.9.101") (source (origin (method url-fetch) (uri (string-append "https://adishatz.org/eolie/eolie-" version ".tar.xz")) (sha256 (base32 - "1vzhfp8j1z3jvd5ndqfyn7nqrx3zdvx9mv1byjl36nnd9g63ji62")))) + "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t @@ -10799,13 +10809,13 @@ advanced image management tool") (synopsis "Store and run multiple GNOME terminals in one window") (description "Terminator allows you to run multiple GNOME terminals in a grid and -+tabs, and it supports drag and drop re-ordering of terminals.") +tabs, and it supports drag and drop re-ordering of terminals.") (license license:gpl2))) (define-public libhandy (package (name "libhandy") - (version "1.0.2") + (version "1.0.3") (source (origin (method git-fetch) @@ -10814,7 +10824,7 @@ advanced image management tool") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1bmmkahshvlvpsnb7zp8bddv7i1h5k4p967n6kxh71g1vnj8x20m")))) + (base32 "0flgwlm921801i3ns0dwqpnxl89f3rzn4y9h723i13bmflch3in7")))) (build-system meson-build-system) (arguments `(#:configure-flags @@ -11398,7 +11408,7 @@ and toolbars.") (define-public setzer (package (name "setzer") - (version "0.3.8") + (version "0.3.9") (source (origin (method git-fetch) @@ -11407,7 +11417,7 @@ and toolbars.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1f5qmkz4hzn54sh56z3hw8zrvg93xlz62ggzlzyg7vgsr83kpns9")))) + (base32 "1qmy2bxl8x6pijjaaj91v6rqdipha6iyy0b6b9y1lk3r2p3azd42")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t @@ -11832,7 +11842,7 @@ integrated profiler via Sysprof, debugging support, and more.") (define-public komikku (package (name "komikku") - (version "0.24.0") + (version "0.25.1") (source (origin (method git-fetch) @@ -11842,7 +11852,7 @@ integrated profiler via Sysprof, debugging support, and more.") (file-name (git-file-name name version)) (sha256 (base32 - "010p32zrim245y0l784yp0rasqcqlyr3lrxwl3r1876x83qhs6q3")))) + "03skci66y9qqiv4bqbbc0w6d6agilwmx95cw7sribj06zcykm7m3")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 3620efea3a..a2da166bb4 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -13,10 +13,11 @@ ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com> ;;; Copyright © 2017, 2020 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Petter <petter@mykolab.ch> -;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2020 Fredrik Salomonsson <plattfot@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -67,6 +68,7 @@ #:use-module (gnu packages tor) #:use-module (gnu packages web) #:use-module (gnu packages xorg) + #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) #:use-module (guix packages) #:use-module (guix download) @@ -355,13 +357,13 @@ libskba (working with X.509 certificates and CMS data).") (define-public gpgme (package (name "gpgme") - (version "1.15.0") + (version "1.15.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gpgme/gpgme-" version ".tar.bz2")) (sha256 - (base32 "0nqfipv5s4npfidsm1rs3kpq0r0av9bfqfd5r035jibx5k0jniqb")))) + (base32 "1bg13l5s8x9p1v0jyv29n84bay27pflindpzjsc9gj7i4wdkrg7f")))) (build-system gnu-build-system) (native-inputs `(("gnupg" ,gnupg))) @@ -892,6 +894,77 @@ passphrase when @code{gpg} is run and needs it."))) @dfn{Enlightenment Foundation Libraries} (EFL) that allows users to enter a passphrase when @code{gpg} is run and needs it."))) +(define-public pinentry-rofi + (package + (name "pinentry-rofi") + (version "2.0.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/plattfot/pinentry-rofi/") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "044bnldz7k74s873jwsjgff176l1jsvpbaka7d1wcj8b5pwqv2av")))) + (build-system gnu-build-system) + (arguments + `(#:modules + ((ice-9 match) + (ice-9 ftw) + ,@%gnu-build-system-modules) + #:phases + (modify-phases + %standard-phases + (add-after 'install 'hall-wrap-binaries + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((compiled-dir + (lambda (out version) + (string-append out "/lib/guile/" version "/site-ccache"))) + (uncompiled-dir + (lambda (out version) + (string-append + out + "/share/guile/site" + (if (string-null? version) "" "/") + version))) + (dep-path + (lambda (env path) + (list env ":" 'prefix (list path)))) + (out (assoc-ref outputs "out")) + (bin (string-append out "/bin/")) + (site (uncompiled-dir out ""))) + (match (scandir site) + (("." ".." version) + (for-each + (lambda (file) + (wrap-program + (string-append bin file) + (dep-path + "PATH" + (string-append (assoc-ref inputs "rofi") "/bin")) + (dep-path + "GUILE_LOAD_PATH" + (uncompiled-dir out version)) + (dep-path + "GUILE_LOAD_COMPILED_PATH" + (compiled-dir out version)))) + ,''("pinentry-rofi")) + #t)))))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config) + ("texinfo" ,texinfo))) + (inputs `(("guile" ,guile-3.0) + ("rofi" ,rofi))) + (synopsis "Rofi GUI for GnuPG's passphrase input") + (description "Pinentry-rofi is a simple graphical user interface for +passphrase or PIN when required by @code{gpg} or other software. It is using +the Rofi application launcher as the user interface. Which makes it combined +with @code{rofi-pass} a good front end for @code{password-store}.") + (home-page "https://github.com/plattfot/pinentry-rofi/") + (license license:gpl3+))) + (define-public pinentry (package (inherit pinentry-gtk2) (name "pinentry"))) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index cead17b204..85b27dd503 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -1305,11 +1305,11 @@ standards of the IceCat project.") (cpe-version . ,(first (string-split version #\-))))))) ;; Update this together with icecat! -(define %icedove-build-id "20201215000000") ;must be of the form YYYYMMDDhhmmss +(define %icedove-build-id "20210111000000") ;must be of the form YYYYMMDDhhmmss (define-public icedove (package (name "icedove") - (version "78.6.0") + (version "78.6.1") (source icecat-source) (properties `((cpe-name . "thunderbird_esr"))) @@ -1589,7 +1589,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 "18be92a3f0388fe1b69941a50cdbadbf2c95b885")) + ,(let ((changeset "f99e82f3f3cae6af48006c39fceb3beeabccd6f6")) (origin (method hg-fetch) (uri (hg-reference @@ -1598,7 +1598,7 @@ standards of the IceCat project.") (file-name (string-append "thunderbird-" version "-checkout")) (sha256 (base32 - "1w21g19l93bcna20260cgxjsh17pznd3kdfvyrn23wjkslgpbyi3"))))) + "0mrar1qsvvlcggzz54nxi70jzk19mq42585905kb5n90ikr9q2q7"))))) ("autoconf" ,autoconf-2.13) ("cargo" ,rust-1.41 "cargo") ("clang" ,clang) diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm index 4fa3bcef19..ca53ac3b73 100644 --- a/gnu/packages/gps.scm +++ b/gnu/packages/gps.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net> @@ -149,7 +149,7 @@ between two other data points.") (define-public gama (package (name "gama") - (version "2.12") + (version "2.13") (source (origin (method url-fetch) @@ -157,7 +157,7 @@ between two other data points.") version ".tar.gz")) (sha256 (base32 - "0zfilasalsy29b7viw0iwgnl9bkvp0l87gpxl1hx7379l8agwqyj")) + "041cprbj4lfs42i7sd1c2zlx3r16g6c5shz3qls79gxb7kqflkgb")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 9879130e20..411d89fcc2 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -23,6 +23,7 @@ ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com> +;;; Copyright © 2021 Antoine Côté <antoine.cote@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -428,17 +429,47 @@ with the @command{autotrace} utility or as a C library, @code{libautotrace}.") (license (list license:gpl2+ ;for the utility itself license:lgpl2.1+))))) ;for use as a library +(define-public embree + (package + (name "embree") + (version "3.12.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/embree/embree") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0aznd16n7h8g3f6jcahzfp1dq4r7wayqvn03wsaskiq2dvsi4srd")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; no tests (apparently) + #:configure-flags + (list + "-DEMBREE_ISPC_SUPPORT=OFF"))) + (inputs + `(("tbb" ,tbb) + ("glfw" ,glfw))) + (home-page "https://www.embree.org/") + (synopsis "High performance ray tracing kernels") + (description + "Embree is a collection of high-performance ray tracing kernels. +Embree is meant to increase performance of photo-realistic rendering +applications.") + (license license:asl2.0))) + (define-public blender (package (name "blender") - (version "2.83.9") + (version "2.91.0") (source (origin (method url-fetch) (uri (string-append "https://download.blender.org/source/" "blender-" version ".tar.xz")) (sha256 (base32 - "106w9vi6z0gi2nbr73g8pm40w3wn7dkjcibzvvzbc786yrnzvkhb")))) + "0x396lgmk0dq9115yrc36s8zwxzmjr490sr5n2y6w27y17yllyjm")))) (build-system cmake-build-system) (arguments (let ((python-version (version-major+minor (package-version python)))) @@ -510,7 +541,8 @@ with the @command{autotrace} utility or as a C library, @code{libautotrace}.") ("python" ,python) ("python-numpy" ,python-numpy) ("tbb" ,tbb) - ("zlib" ,zlib))) + ("zlib" ,zlib) + ("embree" ,embree))) (home-page "https://blender.org/") (synopsis "3D graphics creation suite") (description @@ -588,6 +620,7 @@ application can be customized via its API for Python scripting.") `(("boost" ,boost) ("jemalloc" ,jemalloc) ("libx11" ,libx11) + ("opencolorio" ,opencolorio) ("openimageio" ,openimageio) ("openexr" ,openexr) ("ilmbase" ,ilmbase) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index c5eaa8a2ca..c2d853f006 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -82,6 +82,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages man) #:use-module (gnu packages maths) + #:use-module (gnu packages mes) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) @@ -101,6 +102,7 @@ #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) + #:use-module (gnu packages web) #:use-module (gnu packages webkit) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg) @@ -2570,8 +2572,8 @@ format is also supported.") (deprecated-package "guile3.0-mcron" mcron)) (define-public guile-picture-language - (let ((commit "7e5982a2788bd79a45ad6f02db46f061f97b6e14") - (revision "3")) + (let ((commit "291a746a1d3b4784d38b05239bdd7b8e796ce761") + (revision "4")) (package (name "guile-picture-language") (version (git-version "0.0.1" revision commit)) @@ -2583,12 +2585,13 @@ format is also supported.") (file-name (git-file-name name version)) (sha256 (base32 - "1y5f14cll4jx33hr43dpgrpd0yy6g0g7lim365kmgb0h0cvja80p")))) + "0rnhf13ds92sbdicshy4sy4kl2kc431fy9vzm1divw974p7v57sd")))) (build-system gnu-build-system) (inputs `(("guile" ,guile-3.0))) (propagated-inputs - `(("guile-rsvg" ,guile-rsvg))) + `(("guile-cairo" ,guile-cairo) + ("guile-rsvg" ,guile-rsvg))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -4429,6 +4432,74 @@ including parsing and code generation.") "Guile Shapefile is a Guile library for reading shapefiles.") (license license:expat))) +(define-public guile-libyaml + (let ((commit "f5d33a6880e96571d3cb079ed7755ffc156cac46") + (revision "1")) + (package + (name "guile-libyaml") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mwette/guile-libyaml") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "12x91983fh1j39zy7kbk19acc1rqdh8515ddx1mh7l26j04k9wgq")))) + (build-system gnu-build-system) + (arguments + `(#:modules (((guix build guile-build-system) + #:prefix guile:) + ,@%gnu-build-system-modules) + #:imported-modules ((guix build guile-build-system) + ,@%gnu-build-system-modules) + #:tests? #false ; there are none + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'remove-unused-files + (lambda* (#:key inputs #:allow-other-keys) + (for-each delete-file + '("guix.scm" "demo1.yml" "demo1.scm" + "yaml/libyaml.scm" + ;; This file is mismatched with the generated FFI code. + "yaml/ffi-help-rt.scm")) + (copy-file (string-append (assoc-ref inputs "nyacc") + "/share/guile/site/3.0/system/ffi-help-rt.scm") + "yaml/ffi-help-rt.scm") + (substitute* "yaml/ffi-help-rt.scm" + (("system ffi-help-rt") "yaml ffi-help-rt")) + #true)) + (add-before 'build 'build-ffi + (lambda* (#:key inputs #:allow-other-keys) + (invoke "guild" "compile-ffi" + "--no-exec" ; allow us to patch the generated file + "yaml/libyaml.ffi") + (substitute* "yaml/libyaml.scm" + (("system ffi-help-rt") "yaml ffi-help-rt") + (("dynamic-link \"libyaml\"") + (format #false "dynamic-link \"~a/lib/libyaml\"" + (assoc-ref inputs "libyaml")))) + #true)) + (replace 'build + (assoc-ref guile:%standard-phases 'build)) + (delete 'install)))) + (inputs + `(("guile" ,guile-3.0) + ("libyaml" ,libyaml))) + (propagated-inputs + `(("guile-bytestructures" ,guile-bytestructures))) + (native-inputs + `(("nyacc" ,nyacc))) + (home-page "https://github.com/mwette/guile-libyaml") + (synopsis "Guile wrapper for libyaml") + (description + "This package provides a simple yaml module for Guile using the +ffi-helper from nyacc.") + (license license:lgpl3+)))) + (define-public schmutz (let ((commit "add24588c59552537b8f1316df99a0cdd62c221e") (revision "1")) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 1c983e50eb..0d6f13c97f 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -310,16 +310,19 @@ without requiring the source code to be rewritten.") (define-public guile-3.0-latest ;; TODO: Make this 'guile-3.0' on the next rebuild cycle. - (package - (inherit guile-3.0) - (version "3.0.5") - (source (origin - (inherit (package-source guile-3.0)) - (uri (string-append "mirror://gnu/guile/guile-" - version ".tar.xz")) - (sha256 - (base32 - "1wah6fq1h8vmbpdadjych1mq8hyqkd7p015cbxm14ri37l1gnxid")))))) + (package-with-extra-patches + (package + (inherit guile-3.0) + (version "3.0.5") + (source (origin + (inherit (package-source guile-3.0)) + (uri (string-append "mirror://gnu/guile/guile-" + version ".tar.xz")) + (sha256 + (base32 + "1wah6fq1h8vmbpdadjych1mq8hyqkd7p015cbxm14ri37l1gnxid"))))) + ;; Remove on the next rebuild cycle. + (search-patches "guile-2.2-skip-so-test.patch"))) (define-public guile-next (deprecated-package "guile-next" guile-3.0)) @@ -578,14 +581,14 @@ specification. These are the main features: (package (inherit guile-json-3) (name "guile-json") - (version "4.4.1") + (version "4.5.1") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/guile-json/guile-json-" version ".tar.gz")) (sha256 (base32 - "1xq4f59rdk28xy4sdn6amy07aa19ikrk48iily3kfhwpkbg6v9jj")))))) + "0iigada80cg7dl10z6ligiykci0cv9b88zmncz47nsz5g9gacdpc")))))) (define-public guile2.2-json (package-for-guile-2.2 guile-json-4)) diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm index 1982d7cf07..ca2772b904 100644 --- a/gnu/packages/idris.scm +++ b/gnu/packages/idris.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> ;;; Copyright © 2016, 2017 David Craven <david@craven.ch> ;;; Copyright © 2018 Alex ter Weele <alex.ter.weele@gmail.com> -;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2019, 2021 Eric Bavier <bavier@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,7 +38,7 @@ (define-public idris (package (name "idris") - (version "1.3.2") + (version "1.3.3") (source (origin (method url-fetch) (uri (string-append @@ -46,10 +46,12 @@ "idris-" version "/idris-" version ".tar.gz")) (sha256 (base32 - "0wychzkg0yghd2pp8fqz78vp1ayzks191knfpl7mhh8igsmb6bc7")))) + "1pachwc6msw3n1mz2z1r1w6h518w9gbhdvbaa5vi1qp3cn3wm6q4")) + (patches (search-patches "idris-disable-test.patch")))) (build-system haskell-build-system) (native-inputs ;For tests `(("perl" ,perl) + ("ghc-cheapskate" ,ghc-cheapskate) ("ghc-tasty" ,ghc-tasty) ("ghc-tasty-golden" ,ghc-tasty-golden) ("ghc-tasty-rerun" ,ghc-tasty-rerun))) @@ -98,7 +100,8 @@ (add-after 'unpack 'update-constraints (lambda _ (substitute* "idris.cabal" - (("ansi-terminal < 0\\.9") "ansi-terminal < 0.10")) + (("ansi-terminal < 0\\.9") "ansi-terminal < 0.10") + (("cheapskate >= 0\\.1\\.1\\.2 && < 0\\.2") "cheapskate >= 0.1.1.1 && < 0.2")) #t)) (add-before 'configure 'set-cc-command (lambda _ @@ -118,6 +121,7 @@ (add-after 'install 'check (lambda* (#:key outputs #:allow-other-keys #:rest args) (let ((out (assoc-ref outputs "out"))) + (chmod "test/scripts/timeout" #o755) ;must be executable (setenv "TASTY_NUM_THREADS" (number->string (parallel-job-count))) (setenv "IDRIS_CC" "gcc") ;Needed for creating executables (setenv "PATH" (string-append out "/bin:" (getenv "PATH"))) diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index dfe29d413e..fda9e4cb7b 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -296,7 +296,7 @@ your images. Among its features are: (define-public catimg (package (name "catimg") - (version "2.6.0") + (version "2.7.0") (source (origin (method git-fetch) @@ -305,7 +305,7 @@ your images. Among its features are: (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0g9ywbgy162wiam9hc3yqpq5q4gyxa8fj4jskr3fdz8z8jjaabzz")))) + (base32 "0a2dswbv4xddb2l2d55hc43lzvjwrjs5z9am7v6i0p0mi2fmc89s")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; no tests diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 86e30f991f..339bd7dcf2 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -1218,7 +1218,9 @@ processing and analysis library that puts its main emphasis on customizable algorithms and data structures. It is particularly strong for multi-dimensional image processing.") (license license:expat) - (home-page "https://ukoethe.github.io/vigra/"))) + (home-page "https://ukoethe.github.io/vigra/") + (properties '((max-silent-time . 7200))))) ;2 hours, to avoid timing out + (define-public vigra-c (let* ((commit "66ff4fa5a7d4a77415caa676a45c2c6ea16562e7") diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm index 56375f0759..075f901b2d 100644 --- a/gnu/packages/inkscape.scm +++ b/gnu/packages/inkscape.scm @@ -120,7 +120,7 @@ as the native format.") (define-public inkscape-1.0 (package (name "inkscape") - (version "1.0.1") + (version "1.0.2") (source (origin (method url-fetch) @@ -129,7 +129,7 @@ as the native format.") "inkscape-" version ".tar.xz")) (sha256 (base32 - "1hjp5nnyx2m3miji6q4lcb6zgbi498v641dc7apkqqvayknrb4ng")) + "12krl97a00gdcxxibsb7g2lgx5458mhx2437x0hvz350242j6gns")) (modules '((guix build utils) (ice-9 format))) (snippet diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 758f8f1859..d6afb2e9d3 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -13120,7 +13121,7 @@ network protocols, and core version control algorithms.") (define-public abcl (package (name "abcl") - (version "1.6.0") + (version "1.8.0") (source (origin (method url-fetch) @@ -13128,7 +13129,7 @@ network protocols, and core version control algorithms.") version "/abcl-src-" version ".tar.gz")) (sha256 (base32 - "0hvbcsffr8n2xwdixc8wyw1bfl9fxn2gyy0c4nma7j9zbn0wwgw9")) + "0zr5mmqyj484vza089l8vc88d07g0m8ymxzglvar3ydwyvi1x1qx")) (patches (search-patches "abcl-fix-build-xml.patch")))) diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index 5482400f02..70cf346ecd 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2016, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016-2019 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> @@ -1047,13 +1047,12 @@ integration with a custom editor as well as a ready-to-use ("wayland" ,wayland) ("wayland-protocols" ,wayland-protocols))) (arguments - `(#:tests? #f ; FIXME tests require weston to run - ; weston requires wayland flags in mesa - #:phases + `(#:phases (modify-phases %standard-phases (add-before 'check 'check-setup (lambda _ (setenv "XDG_RUNTIME_DIR" "/tmp") + (setenv "QT_QPA_PLATFORM" "offscreen") #t))))) (home-page "https://community.kde.org/Frameworks") (synopsis "Qt-style API to interact with the wayland client and server") diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 0cc47e6337..73a2289f04 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017, 2018 Mark Meyer <mark@ofosos.org> @@ -714,6 +714,7 @@ different notification systems.") ("qtmultimedia" ,qtmultimedia) ("qtquickcontrols" ,qtquickcontrols) ("qtquickcontrols2" ,qtquickcontrols2) + ("qtwayland" ,qtwayland) ("qtx11extras" ,qtx11extras))) (home-page "https://community.kde.org/KDEConnect") (synopsis "Enable your devices to communicate with each other") @@ -758,6 +759,40 @@ communicate with each other. Here's a few things KDE Connect can do: charts.") (license license:lgpl2.1+))) +(define-public kdf + (package + (name "kdf") + (version "20.12.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/release-service/" + version "/src/kdf-" version ".tar.xz")) + (sha256 + (base32 + "0ba67hs4vlb3qyvdzhnpmf8p62df12s8aqw4hzf9vnxff3qix5k1")))) + (build-system qt-build-system) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules) + ("kdoctools" ,kdoctools))) + (inputs + `(("kcmutils" ,kcmutils) + ("kconfigwidgets" ,kconfigwidgets) + ("kcoreaddons" ,kcoreaddons) + ("ki18n" ,ki18n) + ("kiconthemes" ,kiconthemes) + ("kio" ,kio) + ("knotifications" ,knotifications) + ("kwidgetsaddons" ,kwidgetsaddons) + ("kxmlgui" ,kxmlgui) + ("qtbase" ,qtbase))) + (home-page "https://kde.org/applications/system/kdk") + (synopsis "View Disk Usage") + (description "KDiskFree displays the available file devices (hard drive +partitions, floppy and CD drives, etc.) along with information on their +capacity, free space, type and mount point. It also allows you to mount and +unmount drives and view them in a file manager.") + (license license:gpl2+))) + (define-public kcachegrind (package (name "kcachegrind") @@ -913,6 +948,33 @@ Python, PHP, and Perl.") a variety of formats, including PDF, PostScript, DejaVu, and EPub.") (license license:gpl2+))) +(define-public poxml + (package + (name "poxml") + (version "20.12.1") + (source (origin + (method url-fetch) + (uri + (string-append "mirror://kde/stable/release-service/" version + "/src/poxml-" version ".tar.xz")) + (sha256 + (base32 + "1smjvblx0jcv3afs2sr4qcmvhqd44iw24hvr9fppa3nxhrmjwmlk")))) + (build-system cmake-build-system) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules) + ("kdoctools" ,kdoctools))) + (inputs + `(("gettext" ,gettext-minimal) + ("qtbase" ,qtbase))) + (home-page "https://kde.org/applications/development") + (synopsis "Tools for translating DocBook XML files with Gettext") + (description "This is a collection of tools that facilitate translating +DocBook XML files using Gettext message files (PO files). Also included are +several command-line utilities for manipulating DocBook XML files, PO files and +PO template files.") + (license license:gpl2+))) + (define-public kdegraphics-mobipocket (package (name "kdegraphics-mobipocket") diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 714072e84b..99382c991b 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 John Darrington <jmd@gnu.org> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2016, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> @@ -1085,7 +1085,7 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.") (define-public libreoffice (package (name "libreoffice") - (version "6.4.6.2") + (version "6.4.7.2") (source (origin (method url-fetch) @@ -1094,7 +1094,7 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.") "https://download.documentfoundation.org/libreoffice/src/" (version-prefix version 3) "/libreoffice-" version ".tar.xz")) (sha256 - (base32 "0k5aq1pfw2rpq28nkx6syrgwqbbdn6my9bnlqi3fn8qf572q30mb")))) + (base32 "0i3654rmzs8aazj8j3dmxamilslfrki0y4sksg3n1zygc2ddfk83")))) (build-system glib-or-gtk-build-system) (native-inputs `(("bison" ,bison) diff --git a/gnu/packages/libunwind.scm b/gnu/packages/libunwind.scm index 588b5dd314..9eaf26fca8 100644 --- a/gnu/packages/libunwind.scm +++ b/gnu/packages/libunwind.scm @@ -28,14 +28,14 @@ (define-public libunwind (package (name "libunwind") - (version "1.3.1") + (version "1.5.0") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/libunwind/libunwind-" version ".tar.gz")) (sha256 (base32 - "1y0l08k6ak1mqbfj6accf9s5686kljwgsl4vcqpxzk5n74wpm6a3")))) + "05qhzcg1xag3l5m3c805np6k342gc0f3g087b7g16jidv59pccwh")))) (build-system gnu-build-system) (arguments ;; FIXME: As of glibc 2.25, we get 1 out of 34 test failures (2 are diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index c403181c77..cb0d45ce86 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -53,7 +53,7 @@ (define-public libusb (package (name "libusb") - (version "1.0.23") + (version "1.0.24") (source (origin (method url-fetch) @@ -61,7 +61,7 @@ "releases/download/v" version "/libusb-" version ".tar.bz2")) (sha256 - (base32 "13dd2a9x290d1q8nb1lqiaf36grcvns5ripk5k2xm0lajmpc04fv")))) + (base32 "0amilbi5qncdnrds3ji21vbiz1wvdm1fwp5qrxnk49xkyy2jdzby")))) (build-system gnu-build-system) ;; XXX: Enabling udev is now recommended, but eudev indirectly depends on diff --git a/gnu/packages/license.scm b/gnu/packages/license.scm index 975608c79b..369426768b 100644 --- a/gnu/packages/license.scm +++ b/gnu/packages/license.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -169,13 +169,13 @@ belonging to various licenses.") (define-public reuse (package (name "reuse") - (version "0.11.1") + (version "0.12.1") (source (origin (method url-fetch) (uri (pypi-uri "reuse" version)) (sha256 - (base32 "09qjb4f49vr0a7zrszab8g719ilg2p6b942mr0bgyvplrjikkid5")))) + (base32 "11i1xjbwbqjipzpbrbnp110zx1m49khn6dl5z3mjkjaz9kr6bl2f")))) (build-system python-build-system) (native-inputs `(("python-pytest" ,python-pytest) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 477dd05b11..85afac2611 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -353,7 +353,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.10-version "5.10.6") +(define-public linux-libre-5.10-version "5.10.10") (define deblob-scripts-5.10 (linux-libre-deblob-scripts linux-libre-5.10-version @@ -361,7 +361,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0hh27ccqimagr3aij7ygwikxw66y63sqwd0xlf49bhpjd090r9a7"))) (define-public linux-libre-5.10-pristine-source (let ((version linux-libre-5.10-version) - (hash (base32 "02v91afra3pcwfws74wxdsm8pfc57vws659b7j6jmsxm3hnd0rvp"))) + (hash (base32 "06fvgkrn9127xw9kly6l4ws3yv80q8xfqdzaam92lljim5pqdvb0"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.10))) @@ -369,7 +369,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.4-version "5.4.88") +(define-public linux-libre-5.4-version "5.4.92") (define deblob-scripts-5.4 (linux-libre-deblob-scripts linux-libre-5.4-version @@ -377,12 +377,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1xghbbnaisjd0k1klbyn1p7r6r4x5a1bpmkm56a3gh2zvw4s7mj8"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "1ci432xanm7glgg05012kh43pfi4k771kzih0816y5674v0hg02b"))) + (hash (base32 "1zcl4dadyfrgmx6rh0ncy403rsqb1qs092m6zr6b3i14i3wpz4y0"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.166") +(define-public linux-libre-4.19-version "4.19.170") (define deblob-scripts-4.19 (linux-libre-deblob-scripts linux-libre-4.19-version @@ -390,12 +390,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "03l86ykdjs5wa0n4wknpgy9dv2r6l92qfsyak373jkhs684z53mr"))) + (hash (base32 "0jjvwbxpfvmzj4z6gkd2mh3kz9vh8hsgsm0013866hzgz1j043fx"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.214") +(define-public linux-libre-4.14-version "4.14.217") (define deblob-scripts-4.14 (linux-libre-deblob-scripts linux-libre-4.14-version @@ -403,12 +403,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky"))) (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "07ir4yw7s5c6yb3gjbgjvcqqdgpbsjxrvapgh6zs22ffd8hrchpm"))) + (hash (base32 "04adj8x7p1has4mh8ygxhqgwb1i08fz9izqw1y6xj5hh8cjnm8v2"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.250") +(define-public linux-libre-4.9-version "4.9.253") (define deblob-scripts-4.9 (linux-libre-deblob-scripts linux-libre-4.9-version @@ -416,12 +416,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2"))) (define-public linux-libre-4.9-pristine-source (let ((version linux-libre-4.9-version) - (hash (base32 "15vizxd2i2311skjank406ny3bc30c5rz2p9jvh5xz1yv12vzgcy"))) + (hash (base32 "065w35vb0qp4fvnwmcx7f92inmx64f9r04zzwcwbs0826nl52nws"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) -(define-public linux-libre-4.4-version "4.4.250") +(define-public linux-libre-4.4-version "4.4.253") (define deblob-scripts-4.4 (linux-libre-deblob-scripts linux-libre-4.4-version @@ -429,7 +429,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf"))) (define-public linux-libre-4.4-pristine-source (let ((version linux-libre-4.4-version) - (hash (base32 "12m14j8654rawj2znkyhvcnwnf53x10zlghxd0mpl8dfzwvn2f5b"))) + (hash (base32 "0nlqnfhrkaj2s582kc0wxqi0881hgp6l9z85qx4ckflc8jwrh7k6"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.4))) @@ -641,6 +641,8 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." ("CONFIG_MEMCG_KMEM" . #t) ("CONFIG_CPUSETS" . #t) ("CONFIG_PROC_PID_CPUSET" . #t) + ;; Allow disk encryption by default + ("CONFIG_DM_CRYPT" . m) ;; Modules required for initrd: ("CONFIG_NET_9P" . m) ("CONFIG_NET_9P_VIRTIO" . m) @@ -850,7 +852,8 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." (description "GNU Linux-Libre is a free (as in freedom) variant of the Linux kernel. It has been modified to remove all non-free binary blobs.") - (license license:gpl2))) + (license license:gpl2) + (properties '((max-silent-time . 3600))))) ;don't timeout on blob scan. ;;; @@ -2215,7 +2218,7 @@ external rate conversion.") (define-public iptables (package (name "iptables") - (version "1.8.6") + (version "1.8.7") (source (origin (method url-fetch) @@ -2224,7 +2227,7 @@ external rate conversion.") (string-append "https://www.netfilter.org/projects/iptables/" "files/iptables-" version ".tar.bz2"))) (sha256 - (base32 "0rvp0k8a72h2snrdx48cfn75bfa0ycrd2xl3kjysbymq7q6gxx50")))) + (base32 "1w6qx3sxzkv80shk21f63rq41c84irpx68k62m2cv629n1mwj2f1")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -5631,7 +5634,7 @@ The collection contains a set of bandwidth and latency benchmark such as: (package (name "rng-tools") (home-page "https://github.com/nhorman/rng-tools") - (version "6.10") + (version "6.11") (source (origin (method git-fetch) (uri (git-reference (url home-page) @@ -5639,7 +5642,7 @@ The collection contains a set of bandwidth and latency benchmark such as: (file-name (git-file-name name version)) (sha256 (base32 - "0hbml37yxs0fs69g7f2x4ixq61z0029swy99rn7ykma9mi6b7ni9")))) + "0wwvi8a8k2ahhmwln4w970b8gd3in3g13jkbsapkpnspwmlqj5xa")))) (build-system gnu-build-system) (arguments `(;; Disable support for various hardware entropy sources as they need @@ -5916,29 +5919,29 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.") (define-public mcelog (package (name "mcelog") - (version "173") - (source (origin - (method url-fetch) - (uri (string-append "https://git.kernel.org/cgit/utils/cpu/mce/" - "mcelog.git/snapshot/v" version ".tar.gz")) - (sha256 - (base32 - "1a1j4lsvql3aiqbkdn10hhpvmhavhlr9qkh2scxcv1kn7rvvclih")) - (file-name (string-append name "-" version ".tar.gz")) - (modules '((guix build utils))) - (snippet - `(begin - ;; The snapshots lack a .git directory, - ;; breaking ‘git describe’. - (substitute* "Makefile" - (("\"unknown\"") (string-append "\"v" ,version "\""))) - #t)))) + (version "175") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0vvrnjkh1jp7f6295syydg7lplqmcm8msdls3xyk8xfiz69xqdjz")) + (modules '((guix build utils))) + (snippet + `(begin + ;; The checkout lack a .git directory, breaking ‘git describe’. + (substitute* "Makefile" + (("\"unknown\"") (string-append "\"v" ,version "\""))) + #t)))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases (delete 'configure)) ; no configure script #:make-flags (let ((out (assoc-ref %outputs "out"))) - (list "CC=gcc" + (list (string-append "CC=" ,(cc-for-target)) (string-append "prefix=" out) (string-append "DOCDIR=" out "/share/doc/" ,name "-" ,version) @@ -6439,14 +6442,14 @@ re-use code and to avoid re-inventing the wheel.") (define-public libnftnl (package (name "libnftnl") - (version "1.1.8") + (version "1.1.9") (source (origin (method url-fetch) (uri (string-append "mirror://netfilter.org/libnftnl/" "libnftnl-" version ".tar.bz2")) (sha256 - (base32 "04dp797llg3cqzivwrql30wg9mfr0ngnp0v5gs7jcdmp11dzm8q4")))) + (base32 "16jbp4fs5dz2yf4c3bl1sb48x9x9wi1chv39zwmfgya1k9pimcp9")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -6463,7 +6466,7 @@ used by nftables.") (define-public nftables (package (name "nftables") - (version "0.9.7") + (version "0.9.8") (source (origin (method url-fetch) @@ -6472,7 +6475,7 @@ used by nftables.") (string-append "https://www.nftables.org/projects/nftables" "/files/nftables-" version ".tar.bz2"))) (sha256 - (base32 "1c1c2475nifncv0ng8z77h2dpanlsx0bhqm15k00jb3a6a68lszy")))) + (base32 "1r4g22grhd4s1918wws9vggb8821sv4kkj8197ygxr6sar301z30")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-man-doc"))) ; FIXME: Needs docbook2x. @@ -7862,7 +7865,7 @@ kernel side implementation.") (define-public erofs-utils (package (name "erofs-utils") - (version "1.2") + (version "1.2.1") (source (origin (method git-fetch) @@ -7871,7 +7874,7 @@ kernel side implementation.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "07hvijq2hsn3gg1kb8abrfk23n83j57yx8kyv4wqgwhhvd30myjc")))) + (base32 "1vb4mxsb59g29x7l22cffsqa8x743sra4j5zbmx89hjwpwm9vvcg")))) (build-system gnu-build-system) (inputs `(("lz4" ,lz4) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index f0881bdfb7..3fefccf1e8 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -19,8 +19,10 @@ ;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net> ;;; Copyright © 2020 Dimakis Dimakakos <me@bendersteed.tech> ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> -;;; Copyright © 2020 Adam Kandur <rndd@tuta.io> +;;; Copyright © 2020, 2021 Adam Kandur <rndd@tuta.io> ;;; Copyright © 2020, 2021 Sharlatan Hellseher <sharlatanus@gmail.com> +;;; Copyright © 2021 Aurora <rind38@disroot.org> +;;; Copyright © 2021 Matthew Kraai <kraai@ftbfs.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -52,10 +54,12 @@ #:use-module (guix utils) #:use-module (guix build-system asdf) #:use-module (guix build-system trivial) + #:use-module (gnu packages base) #:use-module (gnu packages c) #:use-module (gnu packages compression) #:use-module (gnu packages databases) #:use-module (gnu packages enchant) + #:use-module (gnu packages file) #:use-module (gnu packages fonts) #:use-module (gnu packages fontutils) #:use-module (gnu packages glib) @@ -456,33 +460,33 @@ compatible with ANSI-compliant Common Lisp implementations.") (sbcl-package->ecl-package sbcl-cl-ppcre)) (define-public sbcl-uax-15 - (let ((commit "e7439a91b72f533fcf736643e3ff0677b56c2e7d") - (revision "1")) - (package - (name "sbcl-uax-15") - (version (git-version "0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/sabracrolleton/uax-15") - (commit commit))) - (file-name (git-file-name "uax-15" version)) - (sha256 - (base32 "1vf8a2aikgx0l5bsq0z9s0dw3sgx1887xhagdlf66fwffa5jskg6")))) - (build-system asdf-build-system/sbcl) - (native-inputs - `(("fiveam" ,sbcl-fiveam))) - (inputs - `(("cl-ppcre" ,sbcl-cl-ppcre) - ("split-sequence" ,sbcl-split-sequence))) - (arguments - `(#:asd-systems '("uax-15"))) - (home-page "https://github.com/sabracrolleton/uax-15") - (synopsis "Common Lisp implementation of unicode normalization functions") - (description "This package provides supports for unicode normalization, -RFC8264 and RFC7564.") - (license license:expat)))) + (package + (name "sbcl-uax-15") + (version "0.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sabracrolleton/uax-15") + (commit (string-append "v" version)))) + (file-name (git-file-name "uax-15" version)) + (sha256 + (base32 "0p2ckw7mzxhwa9vbwj2q2dzayz9dl94d9yqd2ynp0pc5v8i0n2fr")))) + (build-system asdf-build-system/sbcl) + (arguments + `(#:asd-systems + '("uax-15"))) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (inputs + `(("cl-ppcre" ,sbcl-cl-ppcre) + ("split-sequence" ,sbcl-split-sequence))) + (home-page "https://github.com/sabracrolleton/uax-15") + (synopsis "Common Lisp implementation of unicode normalization functions") + (description + "This package provides supports for unicode normalization, RFC8264 and +RFC7564.") + (license license:expat))) (define-public cl-uax-15 (sbcl-package->cl-source-package sbcl-uax-15)) @@ -1939,6 +1943,51 @@ pretty, documentation is code.") ;; TODO: Find why the tests fail on ECL. ((#:tests? _ #f) #f)))))) +(define-public sbcl-mssql + (let ((commit "045602a19a32254108f2b75871049293f49731eb") + (revision "1")) + (package + (name "sbcl-mssql") + (version (git-version "0.0.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/archimag/cl-mssql") + (commit commit))) + (file-name (git-file-name "cl-mssql" version)) + (sha256 + (base32 "09i50adppgc1ybm3ka9vbindhwa2x29f9n3n0jkrryymdhb8zknm")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("cffi" ,sbcl-cffi) + ("freetds" ,freetds) + ("garbage-pools" ,sbcl-garbage-pools) + ("iterate" ,sbcl-iterate) + ("parse-number" ,sbcl-parse-number))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/mssql.lisp" + (("libsybdb" all) + (string-append (assoc-ref inputs "freetds") "/lib/" all))) + #t))))) + (home-page "https://github.com/archimag/cl-mssql") + (synopsis "Common Lisp library to interact with MS SQL Server databases") + (description + "@code{cl-mssql} provides an interface to connect to Microsoft SQL +server. It uses the @code{libsybdb} foreign library provided by the FreeTDS +project.") + (license license:llgpl)))) + +(define-public ecl-mssql + (sbcl-package->ecl-package sbcl-mssql)) + +(define-public cl-mssql + (sbcl-package->cl-source-package sbcl-mssql)) + (define-public sbcl-lisp-unit (let ((commit "89653a232626b67400bf9a941f9b367da38d3815")) (package @@ -2465,7 +2514,7 @@ non-consing thread safe queues and fibonacci priority queues.") (define-public sbcl-cffi (package (name "sbcl-cffi") - (version "0.21.0") + (version "0.23.0") (source (origin (method git-fetch) @@ -2474,7 +2523,7 @@ non-consing thread safe queues and fibonacci priority queues.") (commit (string-append "v" version)))) (file-name (git-file-name "cffi-bootstrap" version)) (sha256 - (base32 "1qalargz9bhp850qv60ffwpdqi4xirzar4l3g6qcg8yc6xqf2cjk")))) + (base32 "03s98imc5niwnpj3hhrafl7dmxq45g74h96sm68976k7ahi3vl5b")))) (build-system asdf-build-system/sbcl) (inputs `(("alexandria" ,sbcl-alexandria) @@ -4343,8 +4392,8 @@ Long Painful History of Time\".") (sbcl-package->ecl-package sbcl-local-time)) (define-public sbcl-trivial-mimes - (let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab") - (revision "1")) + (let ((commit "a741fc2f567a4f86b853fd4677d75e62c03e51d9") + (revision "2")) (package (name "sbcl-trivial-mimes") (version (git-version "1.1.0" revision commit)) @@ -4356,7 +4405,7 @@ Long Painful History of Time\".") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m")))) + (base32 "00kcm17q5plpzdj1qwg83ldhxksilgpcdkf3m9azxcdr968xs9di")))) (build-system asdf-build-system/sbcl) (native-inputs `(("stefil" ,sbcl-hu.dwim.stefil))) @@ -4367,7 +4416,7 @@ Long Painful History of Time\".") (description "This is a teensy library that provides some functions to determine the mime-type of a file.") - (license license:artistic2.0)))) + (license license:zlib)))) (define-public cl-trivial-mimes (sbcl-package->cl-source-package sbcl-trivial-mimes)) @@ -6032,8 +6081,8 @@ programming style and the efficiency of an iterative programming style.") (sbcl-package->ecl-package sbcl-series)) (define-public sbcl-periods - (let ((commit "983d4a57325db3c8def942f163133cec5391ec28") - (revision "1")) + (let ((commit "60383dcef88a1ac11f82804ae7a33c361dcd2949") + (revision "2")) (package (name "sbcl-periods") (version (git-version "0.0.2" revision commit)) @@ -6046,7 +6095,7 @@ programming style and the efficiency of an iterative programming style.") (file-name (git-file-name name version)) (sha256 (base32 - "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga")))) + "1ym2j4an9ig2hl210jg91gpf7xfnp6mlhkw3n9kkdnwiji3ipqlk")))) (build-system asdf-build-system/sbcl) (inputs `(("local-time" ,sbcl-local-time) @@ -6453,8 +6502,8 @@ ability to store all Common Lisp data types into streams.") (sbcl-package->ecl-package sbcl-cl-store)) (define-public sbcl-cl-gobject-introspection - (let ((commit "7b703e2384945ea0ac39d9b766de434a08d81560") - (revision "0")) + (let ((commit "d0136c8d9ade2560123af1fc55bbf70d2e3db539") + (revision "1")) (package (name "sbcl-cl-gobject-introspection") (version (git-version "0.3" revision commit)) @@ -6468,7 +6517,7 @@ ability to store all Common Lisp data types into streams.") (file-name (git-file-name name version)) (sha256 (base32 - "1zcqd2qj14f6b38vys8gr89s6cijsp9r8j43xa8lynilwva7bwyh")))) + "0dz0r73pq7yhz2iq2jnkq977awx2zws2qfxdcy33329sys1ii32p")))) (build-system asdf-build-system/sbcl) (inputs `(("alexandria" ,sbcl-alexandria) @@ -6480,12 +6529,9 @@ ability to store all Common Lisp data types into streams.") (native-inputs `(("fiveam" ,sbcl-fiveam))) (arguments - ;; TODO: Tests fail, see - ;; https://github.com/andy128k/cl-gobject-introspection/issues/70. - '(#:tests? #f - #:phases + '(#:phases (modify-phases %standard-phases - (add-after (quote unpack) (quote fix-paths) + (add-after 'unpack 'fix-paths (lambda* (#:key inputs #:allow-other-keys) (substitute* "src/init.lisp" (("libgobject-2\\.0\\.so") @@ -9124,40 +9170,56 @@ approach to templating.") (sbcl-package->ecl-package sbcl-cl-mysql)) (define-public sbcl-postmodern - (let ((commit "74469b25bbda990ec9b77e0d0eccdba0cd7e721a") - (revision "1")) - (package - (name "sbcl-postmodern") - (version (git-version "1.19" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/marijnh/Postmodern") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0im7ymnyxjhn2w74jfg76k5gpr0gl33n31akx33hl28722ljd0hd")))) - (build-system asdf-build-system/sbcl) - (native-inputs - `(("fiveam" ,sbcl-fiveam))) - (inputs - `(("alexandria" ,sbcl-alexandria) - ("bordeaux-threads" ,sbcl-bordeaux-threads) - ("closer-mop" ,sbcl-closer-mop) - ("global-vars" ,sbcl-global-vars) - ("md5" ,sbcl-md5) - ("split-sequence" ,sbcl-split-sequence) - ("usocket" ,sbcl-usocket))) - (arguments - ;; TODO: Fix missing dependency errors for simple-date/postgres-glue, - ;; cl-postgres/tests and s-sql/tests. - `(#:tests? #f - #:asd-systems '("postmodern" - "simple-date/postgres-glue"))) - (synopsis "Common Lisp library for interacting with PostgreSQL") - (description - "@code{postmodern} is a Common Lisp library for interacting with + (package + (name "sbcl-postmodern") + (version "1.32.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/marijnh/Postmodern") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0vr5inbr8dldf6dsl0qj3h2yrnnsayzfwxfzwkn1pk7xbns2l78q")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("bordeaux-threads" ,sbcl-bordeaux-threads) + ("cl-base64" ,sbcl-cl-base64) + ("cl-unicode" ,sbcl-cl-unicode) + ("closer-mop" ,sbcl-closer-mop) + ("global-vars" ,sbcl-global-vars) + ("ironclad" ,sbcl-ironclad) + ("local-time" ,sbcl-local-time) + ("md5" ,sbcl-md5) + ("split-sequence" ,sbcl-split-sequence) + ("uax-15" ,sbcl-uax-15) + ("usocket" ,sbcl-usocket))) + (arguments + ;; TODO: (Sharlatan-20210114T171037+0000) tests still failing but on other + ;; step, some functionality in `local-time' prevents passing tests. + ;; Error: + ;; + ;; Can't create directory + ;; /gnu/store + ;; /4f47agf1kyiz057ppy6x5p98i7mcbfsv-sbcl-local-time-1.0.6-2.a177eb9 + ;; /lib/common-lisp/sbcl/local-time/src/integration/ + ;; + ;; NOTE: (Sharlatan-20210124T191940+0000): When set env HOME to /tmp above + ;; issue is resolved but it required live test database to connect to now. + ;; Keep tests switched off. + `(#:tests? #f + #:asd-systems '("cl-postgres" + "s-sql" + "postmodern" + "simple-date" + "simple-date/postgres-glue"))) + (synopsis "Common Lisp library for interacting with PostgreSQL") + (description + "@code{postmodern} is a Common Lisp library for interacting with PostgreSQL databases. It provides the following features: @itemize @@ -9167,9 +9229,27 @@ foreign libraries. @item A syntax for mixing SQL and Lisp code. @item Convenient support for prepared statements and stored procedures. @item A metaclass for simple database-access objects. -@end itemize\n") - (home-page "https://marijnhaverbeke.nl/postmodern/") - (license license:zlib)))) +@end itemize\n + +This package produces 4 systems: postmodern, cl-postgres, s-sql, simple-date + +@code{SIMPLE-DATE} is a very basic implementation of date and time objects, used +to support storing and retrieving time-related SQL types. It is not loaded by +default and you can use local-time (which has support for timezones) instead. + +@code{S-SQL} is used to compile s-expressions to strings of SQL code, escaping +any Lisp values inside, and doing as much as possible of the work at compile +time. + +@code{CL-POSTGRES} is the low-level library used for interfacing with a PostgreSQL +server over a socket. + +@code{POSTMODERN} itself is a wrapper around these packages and provides higher +level functions, a very simple data access object that can be mapped directly to +database tables and some convient utilities. It then tries to put all these +things together into a convenient programming interface") + (home-page "https://marijnhaverbeke.nl/postmodern/") + (license license:zlib))) (define-public cl-postmodern (sbcl-package->cl-source-package sbcl-postmodern)) @@ -9179,15 +9259,18 @@ foreign libraries. (inherit (sbcl-package->ecl-package sbcl-postmodern)) (arguments `(#:tests? #f - #:asd-systems '("postmodern" + #:asd-systems '("cl-postgres" + "s-sql" + "postmodern" + "simple-date" "simple-date/postgres-glue") #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-build (lambda _ (substitute* "cl-postgres.asd" - (("\\) \"usocket\"") - " :ecl) \"usocket\"")) + ((":or :sbcl :allegro :ccl :clisp" all) + (string-append all " :ecl"))) #t))))))) (define-public sbcl-db3 @@ -12113,6 +12196,77 @@ package.") (define-public ecl-claw-support (sbcl-package->ecl-package sbcl-claw-support)) +(define-public sbcl-claw + (let ((revision "0") + (commit "3cd4a96fca95eb9e8d5d069426694669f81b2250")) + (package + (name "sbcl-claw") + (version (git-version "1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/borodust/claw") + (commit commit))) + (file-name (git-file-name "claw" version)) + (sha256 + (base32 "146yv0hc4hmk72562ssj2d41143pp84dcbd1h7f4nx1c7hf2bb0d")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cffi" ,sbcl-cffi) + ("cl-json" ,sbcl-cl-json) + ("cl-ppcre" ,sbcl-cl-ppcre) + ("claw-support" ,sbcl-claw-support) + ("local-time" ,sbcl-local-time) + ("trivial-features" ,sbcl-trivial-features))) + (home-page "https://github.com/borodust/claw") + (synopsis "Autowrapper for Common Lisp") + (description + "This is a Common Lisp autowrapping facility for quickly creating clean +and lean bindings to C libraries.") + (license license:bsd-2)))) + +(define-public cl-claw + (sbcl-package->cl-source-package sbcl-claw)) + +(define-public ecl-claw + (sbcl-package->ecl-package sbcl-claw)) + +(define-public sbcl-claw-utils + (let ((revision "0") + (commit "efe25016501973dc369f067a64c7d225802bc56f")) + (package + (name "sbcl-claw-utils") + ;; version is not specified + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/borodust/claw-utils") + (commit commit))) + (file-name (git-file-name "claw-utils" version)) + (sha256 + (base32 "01df3kyf2qs3czi332dnz2s35x2j0fq46vgmsw7wjrrvnqc22mk5")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cffi" ,sbcl-cffi) + ("claw" ,sbcl-claw))) + (home-page "https://github.com/borodust/claw-utils") + (synopsis "Utilities for easier autowrapping") + (description + "This Common Lisp library contains various handy utilties to help +autowrapping with @code{claw}.") + (license license:expat)))) + +(define-public cl-claw-utils + (sbcl-package->cl-source-package sbcl-claw-utils)) + +(define-public ecl-claw-utils + (sbcl-package->ecl-package sbcl-claw-utils)) + (define-public sbcl-array-operations (let ((commit "75cbc3b1adb2e3ce2109489753d0f290b071e81b") (revision "0")) @@ -12967,3 +13121,531 @@ bringing dynamism to class definition.") (define-public cl-markdown (sbcl-package->cl-source-package sbcl-cl-markdown)) + +(define-public sbcl-magicffi + (let ((commit "d88f2f280c31f639e4e05be75215d8a8dce6aef2")) + (package + (name "sbcl-magicffi") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dochang/magicffi/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0p6ysa92fk34bhxpw7bycbfgw150fv11z9x8jr9xb4lh8cm2hvp6")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("alexandria" ,sbcl-alexandria))) + (inputs + `(("cffi" ,sbcl-cffi) + ("ppcre" ,sbcl-cl-ppcre) + ("libmagic" ,file))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (let ((magic (assoc-ref inputs "libmagic"))) + (substitute* "grovel.lisp" + (("/usr/include/magic.h") + (string-append magic "/include/magic.h"))) + (substitute* "api.lisp" + ((":default \"libmagic\"" all) + (string-append ":default \"" magic "/lib/libmagic\""))))))))) + (home-page "https://common-lisp.net/project/magicffi/") + (synopsis "Common Lisp interface to libmagic based on CFFI") + (description + "MAGICFFI is a Common Lisp CFFI interface to libmagic(3), the file type +determination library using @emph{magic} numbers.") + (license license:bsd-2)))) + +(define-public ecl-magicffi + (sbcl-package->ecl-package sbcl-magicffi)) + +(define-public cl-magicffi + (sbcl-package->cl-source-package sbcl-magicffi)) + +(define-public sbcl-shlex + (let ((commit "c5616dffca0d4d8ddbc1cd6f37a96d88477b2740")) + (package + (name "sbcl-shlex") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ruricolist/cl-shlex") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1nas024n4wv319bf40aal96g72bgi9nkapj2chywj2cc6r8hzkfg")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("serapeum" ,sbcl-serapeum) + ("ppcre" ,sbcl-cl-ppcre) + ("unicode" ,sbcl-cl-unicode))) + (home-page "https://github.com/ruricolist/cl-shlex") + (synopsis "Common Lisp lexical analyzer for shell-like syntaxes") + (description + "This library contains a lexer for syntaxes that use shell-like rules +for quoting and commenting. It is a port of the @code{shlex} module from Python’s +standard library.") + (license license:expat)))) + +(define-public ecl-shlex + (sbcl-package->ecl-package sbcl-shlex)) + +(define-public cl-shlex + (sbcl-package->cl-source-package sbcl-shlex)) + +(define-public sbcl-cmd + (let ((commit "e6a54dbf660bf229c80abc124fa47e7bb6d20c93")) + (package + (name "sbcl-cmd") + (version (git-version "0.0.1" "2" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ruricolist/cmd/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1i0l8ci4cnkx84q4afmpkq51nxah24fqpi6k9kgjbxz6li3zp8hy")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("coreutils" ,coreutils) + ("serapeum" ,sbcl-serapeum) + ("shlex" ,sbcl-shlex) + ("trivia" ,sbcl-trivia))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref inputs "coreutils") "/bin"))) + (substitute* "cmd.lisp" + (("\"env\"") (format #f "\"~a/env\"" bin)) + (("\"pwd\"") (format #f "\"~a/pwd\"" bin))))))))) + (home-page "https://github.com/ruricolist/cmd") + (synopsis "Conveniently run external programs from Common Lisp") + (description + "A utility for running external programs, built on UIOP. +Cmd is designed to be natural to use, protect against shell interpolation and +be usable from multi-threaded programs.") + (license license:expat)))) + +(define-public ecl-cmd + (sbcl-package->ecl-package sbcl-cmd)) + +(define-public cl-cmd + (sbcl-package->cl-source-package sbcl-cmd)) + +(define-public sbcl-ppath + (let ((commit "eb1a8173b4d1d691ea9a7699412123462f58c3ce")) + (package + (name "sbcl-ppath") + (version (git-version "0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fourier/ppath/") + (commit commit))) + (file-name (git-file-name name commit)) + (sha256 + (base32 "1c46q9lmzqv14z80d3fwdawgn3pn4922x31fyqvsvbcjm4hd16fb")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cffi" ,sbcl-cffi) + ("osicat" ,sbcl-osicat) + ("ppcre" ,sbcl-cl-ppcre) + ("split-sequence" ,sbcl-split-sequence) + ("trivial-features" ,sbcl-trivial-features))) + (native-inputs + `(("cl-fad" ,sbcl-cl-fad) + ("prove" ,sbcl-prove))) + (home-page "https://github.com/fourier/ppath") + (synopsis "Common Lisp's implementation of the Python's os.path module") + (description + "This library is a path strings manipulation library inspired by +Python's @code{os.path}. All functionality from @code{os.path} is supported on +major operation systems. + +The philosophy behind is to use simple strings and \"dumb\" string +manipulation functions to handle paths and filenames. Where possible the +corresponding OS system functions are called.") + (license license:bsd-2)))) + +(define-public ecl-ppath + (sbcl-package->ecl-package sbcl-ppath)) + +(define-public cl-ppath + (sbcl-package->cl-source-package sbcl-ppath)) + +(define-public sbcl-trivial-escapes + (let ((commit "1eca78da2078495d09893be58c28b3aa7b8cc4d1")) + (package + (name "sbcl-trivial-escapes") + (version (git-version "1.2.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/williamyaoh/trivial-escapes") + (commit commit))) + (file-name (git-file-name name commit)) + (sha256 + (base32 "0v6h8lk17iqv1qkxgqjyzn8gi6v0hvq2vmfbb01md3zjvjqxn6lr")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("named-readtables" ,sbcl-named-readtables))) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (home-page "https://github.com/williamyaoh/trivial-escapes") + (synopsis "C-style escape directives for Common Lisp") + (description + "This Common Lisp library interprets escape characters the same way that +most other programming language do. +It provides four readtables. The default one lets you write strings like this: +@code{#\"This string has\na newline in it!\"}.") + (license license:public-domain)))) + +(define-public ecl-trivial-escapes + (sbcl-package->ecl-package sbcl-trivial-escapes)) + +(define-public cl-trivial-escapes + (sbcl-package->cl-source-package sbcl-trivial-escapes)) + +(define-public sbcl-cl-indentify + (let ((commit "eb770f434defa4cd41d84bca822428dfd0dbac53")) + (package + (name "sbcl-cl-indentify") + (version (git-version "0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/yitzchak/cl-indentify") + (commit commit))) + (file-name (git-file-name name commit)) + (sha256 + (base32 "0ha36bhg474vr76vfhr13szc8cfdj1ickg92k1icz791bqaqg67p")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("command-line-arguments" ,sbcl-command-line-arguments) + ("trivial-gray-streams" ,sbcl-trivial-gray-streams))) + (native-inputs + `(("trivial-escapes" ,sbcl-trivial-escapes) + ("rove" ,sbcl-rove))) + (home-page "https://github.com/yitzchak/cl-indentify") + (synopsis "Code beautifier for Common Lisp") + (description + "A library and command line utility to automatically indent Common Lisp +source files.") + (license license:expat)))) + +(define-public ecl-cl-indentify + (sbcl-package->ecl-package sbcl-cl-indentify)) + +(define-public cl-indentify + (sbcl-package->cl-source-package sbcl-cl-indentify)) + +(define-public sbcl-concrete-syntax-tree + (let ((commit "abd242a59dadc5452aa9dbc1d313c83ec2c11f46")) + (package + (name "sbcl-concrete-syntax-tree") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/s-expressionists/Concrete-Syntax-Tree") + (commit commit))) + (file-name (git-file-name name commit)) + (sha256 + (base32 "1lyrglc3h1if44gxd9cwv90wa90nrdjvb7fry39b1xn8ywdfa7di")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("acclimation" ,sbcl-acclimation))) + (home-page "https://github.com/s-expressionists/Concrete-Syntax-Tree") + (synopsis "Parse Common Lisp code into a concrete syntax tree") + (description + "This library is intended to solve the problem of source tracking for +Common Lisp code. + +By \"source tracking\", it is meant that code elements that have a known +origin in the form of a position in a file or in an editor buffer are +associated with some kind of information about this origin. + +Since the exact nature of such origin information depends on the Common Lisp +implementation and the purpose of wanting to track that origin, the library +does not impose a particular structure of this information. Instead, it +provides utilities for manipulating source code in the form of what is called +concrete syntax trees (CSTs for short) that preserve this information about +the origin.") + (license license:bsd-2)))) + +(define-public ecl-concrete-syntax-tree + (sbcl-package->ecl-package sbcl-concrete-syntax-tree)) + +(define-public cl-concrete-syntax-tree + (sbcl-package->cl-source-package sbcl-concrete-syntax-tree)) + +(define-public sbcl-eclector + (package + (name "sbcl-eclector") + (version "0.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/s-expressionists/Eclector") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0bwkla0jdp5bg0q1zca5wg22b0nbdmglgax345nrhsf8bdrh47wm")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("acclimation" ,sbcl-acclimation) + ("alexandria" ,sbcl-alexandria) + ("closer-mop" ,sbcl-closer-mop) + ("concrete-syntax-tree" ,sbcl-concrete-syntax-tree))) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (arguments + '(#:asd-systems '("eclector" + "eclector-concrete-syntax-tree"))) + (home-page "https://s-expressionists.github.io/Eclector/") + (synopsis "Highly customizable, portable Common Lisp reader") + (description + "Eclector is a portable Common Lisp reader that is highly customizable, +can recover from errors and can return concrete syntax trees. + +In contrast to many other reader implementations, eclector can recover from +most errors in the input supplied to it and continue reading. This capability +is realized as a restart. + +It can also produce instances of the concrete syntax tree classes provided by +the concrete syntax tree library.") + (license license:bsd-2))) + +(define-public ecl-eclector + (sbcl-package->ecl-package sbcl-eclector)) + +(define-public cl-eclector + (sbcl-package->cl-source-package sbcl-eclector)) + +(define-public sbcl-jsown + (let ((commit "744c4407bef58dfa876d9da0b5c0205d869e7977")) + (package + (name "sbcl-jsown") + (version (git-version "1.0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/madnificent/jsown") + (commit commit))) + (file-name (git-file-name name commit)) + (sha256 + (base32 "0gadvmf1d9bq35s61z76psrsnzwwk12svi66jigf491hv48wigw7")))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/madnificent/jsown") + (synopsis "Fast JSON reader / writer library for Common Lisp") + (description + "@code{jsown} is a high performance Common Lisp JSON parser. Its aim +is to allow for the fast parsing of JSON objects in Common Lisp. Recently, +functions and macros have been added to ease the burden of writing and editing +@code{jsown} objects. + +@code{jsown} allows you to parse JSON objects quickly to a modifiable Lisp +list and write them back. If you only need partial retrieval of objects, +@code{jsown} allows you to select the keys which you would like to see parsed. +@code{jsown} also has a JSON writer and some helper methods to alter the JSON +objects themselves.") + (license license:expat)))) + +(define-public ecl-jsown + (sbcl-package->ecl-package sbcl-jsown)) + +(define-public cl-jsown + (sbcl-package->cl-source-package sbcl-jsown)) + +(define-public sbcl-system-locale + (let ((commit "4b334bc2fa45651bcaa28ae7d9331095d6bf0a17")) + (package + (name "sbcl-system-locale") + (version (git-version "1.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shinmera/system-locale/") + (commit commit))) + (file-name (git-file-name name commit)) + (sha256 + (base32 "00p5c053kmgq4ks6l9mxsqz6g3bjcybvkvj0bh3r90qgpkaawm1p")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("documentation-utils" ,sbcl-documentation-utils))) + (home-page "https://shinmera.github.io/system-locale/") + (synopsis "Get the system's locale and language settings in Common Lisp") + (description + "This library retrieves locale information configured on the +system. This is helpful if you want to write applications and libraries that +display messages in the user's native language.") + (license license:zlib)))) + +(define-public ecl-system-locale + (sbcl-package->ecl-package sbcl-system-locale)) + +(define-public cl-system-locale + (sbcl-package->cl-source-package sbcl-system-locale)) + +(define-public sbcl-language-codes + (let ((commit "e7aa0e37cb97a3d37d6bc7316b479d01bff8f42e")) + (package + (name "sbcl-language-codes") + (version (git-version "1.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shinmera/language-codes") + (commit commit))) + (file-name (git-file-name name commit)) + (sha256 + (base32 "0py176ibmsc01n5r0q1bs1ykqf5jwdbh8kx0j1a814l9y51241v0")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("documentation-utils" ,sbcl-documentation-utils))) + (home-page "https://shinmera.github.io/language-codes/") + (synopsis "Map ISO language codes to language names in Common Lisp") + (description + "This is a small library providing the ISO-639 language code to +language name mapping.") + (license license:zlib)))) + +(define-public ecl-language-codes + (sbcl-package->ecl-package sbcl-language-codes)) + +(define-public cl-language-codes + (sbcl-package->cl-source-package sbcl-language-codes)) + +(define-public sbcl-multilang-documentation + (let ((commit "59e798a07e949e8957a20927f52aca425d84e4a0")) + (package + (name "sbcl-multilang-documentation") + (version (git-version "1.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shinmera/multilang-documentation") + (commit commit))) + (file-name (git-file-name name commit)) + (sha256 + (base32 "13y5jskx8n2b7kimpfarr8v777w3b7zj5swg1b99nj3hk0843ixw")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("documentation-utils" ,sbcl-documentation-utils) + ("language-codes" ,sbcl-language-codes) + ("system-locale" ,sbcl-system-locale))) + (home-page "https://shinmera.github.io/multilang-documentation/") + (synopsis "Add multiple languages support to Common Lisp documentation") + (description + "This library provides a drop-in replacement function for +cl:documentation that supports multiple docstrings per-language, allowing you +to write documentation that can be internationalised.") + (license license:zlib)))) + +(define-public ecl-multilang-documentation + (sbcl-package->ecl-package sbcl-multilang-documentation)) + +(define-public cl-multilang-documentation + (sbcl-package->cl-source-package sbcl-multilang-documentation)) + +(define-public sbcl-trivial-do + (let ((commit "03a1729f1e71bad3ebcf6cf098a0cce52dfa1163")) + (package + (name "sbcl-trivial-do") + (version (git-version "0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/yitzchak/trivial-do") + (commit commit))) + (file-name (git-file-name name commit)) + (sha256 + (base32 "1ffva79nkicc7wc8c2ic5nayis3b2rk5sxzj74yjkymkjgbpcrgd")))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/yitzchak/trivial-do") + (synopsis "Additional dolist style macros for Common Lisp") + (description + "Additional dolist style macros for Common Lisp, such as +@code{doalist}, @code{dohash}, @code{dolist*}, @code{doplist}, @code{doseq} +and @code{doseq*}.") + (license license:zlib)))) + +(define-public ecl-trivial-do + (sbcl-package->ecl-package sbcl-trivial-do)) + +(define-public cl-trivial-do + (sbcl-package->cl-source-package sbcl-trivial-do)) + +(define-public sbcl-common-lisp-jupyter + (let ((commit "61a9a8e7a18e2abd7af7c697ba5146fd19bd9d62")) + (package + (name "sbcl-common-lisp-jupyter") + (version (git-version "0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/yitzchak/common-lisp-jupyter") + (commit commit))) + (file-name (git-file-name name commit)) + (sha256 + (base32 "0zyzl55l45w9z65ygi5pcwda5w5p1j1bb0p2zg2n5cpv8344dkh2")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("babel" ,sbcl-babel) + ("bordeaux-threads" ,sbcl-bordeaux-threads) + ("cl-base64" ,sbcl-cl-base64) + ("cl-indentify" ,sbcl-cl-indentify) + ("closer-mop" ,sbcl-closer-mop) + ("eclector" ,sbcl-eclector) + ("ironclad" ,sbcl-ironclad) + ("iterate" ,sbcl-iterate) + ("jsown" ,sbcl-jsown) + ("multilang-documentation" ,sbcl-multilang-documentation) + ("pzmq" ,sbcl-pzmq) + ("puri" ,sbcl-puri) + ("static-vectors" ,sbcl-static-vectors) + ("trivial-do" ,sbcl-trivial-do) + ("trivial-garbage" ,sbcl-trivial-garbage) + ("trivial-gray-streams" ,sbcl-trivial-gray-streams) + ("trivial-mimes" ,sbcl-trivial-mimes))) + (home-page "https://yitzchak.github.io/common-lisp-jupyter/") + (synopsis "Common Lisp kernel for Jupyter") + (description + "This is a Common Lisp kernel for Jupyter along with a library for +building Jupyter kernels, based on Maxima-Jupyter which was based on +@code{cl-jupyter}.") + (license license:zlib)))) + +(define-public ecl-common-lisp-jupyter + (sbcl-package->ecl-package sbcl-common-lisp-jupyter)) + +(define-public cl-common-lisp-jupyter + (sbcl-package->cl-source-package sbcl-common-lisp-jupyter)) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 9ef37d706b..3c09b0af8a 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com> +;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1083,7 +1084,7 @@ assembler, PEG) is less than 1MB.") (define-public lisp-repl-core-dumper (package (name "lisp-repl-core-dumper") - (version "0.3.0") + (version "0.5.0") (source (origin (method git-fetch) @@ -1092,7 +1093,7 @@ assembler, PEG) is less than 1MB.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1w7x7d7bnrdj0bd04vnjy7d7sngvcx1yjr4iw429hdd9lzlg8rbg")))) + (base32 "1hrilm9lxy7zdidn4wac4yfqryg3hfw0371nanhd7g9bcfjx7n1q")))) (build-system copy-build-system) (arguments '(#:install-plan @@ -1102,12 +1103,14 @@ assembler, PEG) is less than 1MB.") (add-before 'install 'fix-utils-path (lambda* (#:key inputs #:allow-other-keys) (let* ((coreutils (string-append (assoc-ref inputs "coreutils") "/bin/")) + (cat (string-append coreutils "cat")) (paste (string-append coreutils "paste")) (sort (string-append coreutils "sort")) (basename (string-append coreutils "basename")) (sed (string-append (assoc-ref inputs "sed") "/bin/sed"))) (substitute* "lisp-repl-core-dumper" (("\\$\\(basename") (string-append "$(" basename)) + (("\\<cat\\>") cat) (("\\<paste\\>") paste) (("\\<sed\\>") sed) (("\\<sort\\>") sort)))))))) @@ -1126,3 +1129,43 @@ and make for REPLs that start blazing fast. @item It allows you to include arbitrary libraries. @end itemize\n") (license license:gpl3+))) + +(define-public buildapp + (package + (name "buildapp") + (version "1.5.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xach/buildapp") + (commit (string-append "release-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "020ipjfqa3l8skd97cj5kq837wgpj28ygfxnkv64cnjrlbnzh161")))) + (build-system gnu-build-system) + (native-inputs + `(("sbcl" ,sbcl))) + (arguments + `(#:tests? #f + #:make-flags + (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))) + #:strip-binaries? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'set-home + (lambda _ + (setenv "HOME" "/tmp") + #t)) + (add-before 'install 'create-target-directory + (lambda* (#:key outputs #:allow-other-keys) + (let* ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (mkdir-p bin) + #t)))))) + (home-page "https://www.xach.com/lisp/buildapp/") + (synopsis "Makes easy to build application executables with SBCL") + (description + "Buildapp is an application for SBCL or CCL that configures and saves an +executable Common Lisp image. It is similar to cl-launch and hu.dwim.build. ") + (license license:bsd-2))) diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index 950090afcb..b029400cb2 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 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2020, 2021 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> @@ -1066,7 +1066,7 @@ shell command executions.") (define-public fennel (package (name "fennel") - (version "0.7.0") + (version "0.8.0") (source (origin (method git-fetch) (uri (git-reference @@ -1075,7 +1075,7 @@ shell command executions.") (file-name (git-file-name name version)) (sha256 (base32 - "17pdcwhfw754fblppw46qphnsvxrn3b7066cz54lv8c0c12iryim")) + "1jng33vmnk6mi37l3x2z0plng940jpj7kz1s493ki80z3mkaxjfg")) (modules '((guix build utils))) (snippet '(begin @@ -1083,18 +1083,36 @@ shell command executions.") (build-system gnu-build-system) (arguments '(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:tests? #t ; even on cross-build #:test-target "test" #:phases (modify-phases %standard-phases (delete 'configure) + (add-before 'build 'patch-lua-calls + (lambda* (#:key inputs #:allow-other-keys) + (let ((lua (string-append (assoc-ref inputs "lua") "/bin/lua"))) + (setenv "LUA" lua) + (substitute* "old/launcher.lua" + (("/usr/bin/env lua") lua)) + #t))) (add-after 'build 'patch-fennel - (lambda _ + (lambda* (#:key inputs #:allow-other-keys) (substitute* "fennel" - (("/usr/bin/env lua") (which "lua"))) + (("/usr/bin/env .*lua") + (string-append (assoc-ref inputs "lua") "/bin/lua"))) + #t)) + (delete 'check) + (add-after 'install 'check + (assoc-ref %standard-phases 'check)) + (add-after 'install 'install-manpage + (lambda* (#:key outputs #:allow-other-keys) + (install-file "fennel.1" + (string-append (assoc-ref outputs "out") + "/share/man/man1")) #t))))) (inputs `(("lua" ,lua))) (home-page "https://fennel-lang.org/") - (synopsis "A Lisp that compiles to Lua") + (synopsis "Lisp that compiles to Lua") (description "Fennel is a programming language that brings together the speed, simplicity, and reach of Lua with the flexibility of a Lisp syntax and macro diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 043f5c5fec..ab3a19578e 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -456,7 +456,8 @@ aliasing facilities to work just as they would on normal mail.") (sha256 (base32 "1m4ig69qw4g3lhm4351snmy5i0ch65fqc9vqqdybr6jy21w7w225")) - (patches (search-patches "mutt-store-references.patch")))) + (patches (search-patches "mutt-store-references.patch" + "mutt-CVE-2021-3181.patch")))) (build-system gnu-build-system) (inputs `(("cyrus-sasl" ,cyrus-sasl) @@ -2631,7 +2632,7 @@ converts them to maildir format directories.") (define-public mblaze (package (name "mblaze") - (version "1.0") + (version "1.1") (source (origin (method git-fetch) @@ -2640,7 +2641,7 @@ converts them to maildir format directories.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0hxy3mjjv4hg856sl1r15fdmqaw4s9c26b3lidsd5x0kpqy601ai")))) + (base32 "1bir977vnqs76g8jgv1yivqw0wk2kn56l3l5r4w2ipix3fir138y")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 7866bcc6eb..eff1480e62 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -104,6 +104,7 @@ #:use-module (gnu packages less) #:use-module (gnu packages lisp) #:use-module (gnu packages linux) + #:use-module (gnu packages llvm) #:use-module (gnu packages logging) #:use-module (gnu packages lua) #:use-module (gnu packages gnome) @@ -919,14 +920,14 @@ singular value problems.") (define-public gnuplot (package (name "gnuplot") - (version "5.2.7") + (version "5.4.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gnuplot/gnuplot/" version "/gnuplot-" version ".tar.gz")) (sha256 - (base32 "1vglp4la40f5dpj0zdj63zprrkyjgzy068p35bz5dqxjyczm1zlp")))) + (base32 "03jrqs5lvxmbbz2c4g17dn2hrxqwd3hfadk9q8wbkbkyas2h8sbb")))) (build-system gnu-build-system) (inputs `(("readline" ,readline) ("cairo" ,cairo) @@ -938,7 +939,9 @@ singular value problems.") ("texlive" ,texlive-tiny))) (arguments `(#:configure-flags (list (string-append "--with-texdir=" %output - "/texmf-local/tex/latex/gnuplot")))) + "/texmf-local/tex/latex/gnuplot")) + ;; Plot on a dumb terminal during tests. + #:make-flags '("GNUTERM=dumb"))) (home-page "http://www.gnuplot.info") (synopsis "Command-line driven graphing utility") (description "Gnuplot is a portable command-line driven graphing @@ -3502,7 +3505,7 @@ point numbers.") (define-public wxmaxima (package (name "wxmaxima") - (version "20.06.6") + (version "20.12.2") (source (origin (method git-fetch) @@ -3511,22 +3514,20 @@ point numbers.") (commit (string-append "Version-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "054f7n5kx75ng5j20rd5q27n9xxk03mrd7sbxyym1lsswzimqh4w")))) + (base32 "1rxnxk7yanb9ac5pxbii6k7gg3b09pbp9rmwvsvgpbrk17mg79r9")))) (build-system cmake-build-system) (native-inputs - `(("gettext" ,gettext-minimal) - ("xorg-server" ,xorg-server-for-tests))) - ;; TODO: Add libomp for multithreading support. - ;; As of right now, enabling libomp causes the imageCells.wxm test to fail. + `(("gettext" ,gettext-minimal))) (inputs - `(("wxwidgets" ,wxwidgets) + `(("libomp" ,libomp) + ("wxwidgets" ,wxwidgets) ("maxima" ,maxima) ;; Runtime support. ("adwaita-icon-theme" ,adwaita-icon-theme) ("gtk+" ,gtk+) ("shared-mime-info" ,shared-mime-info))) (arguments - `(#:test-target "test" + `(#:tests? #f ; tests fail non-deterministically #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-doc-path @@ -3537,13 +3538,6 @@ point numbers.") (substitute* "src/Dirstructure.cpp" (("/doc/wxmaxima-\\%s") "/doc/wxmaxima")) #t)) - (add-before 'check 'pre-check - (lambda _ - ;; Tests require a running X server. - (system "Xvfb :1 &") - (setenv "DISPLAY" ":1") - (setenv "HOME" (getcwd)) - #t)) (add-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) (wrap-program (string-append (assoc-ref outputs "out") diff --git a/gnu/packages/matrix.scm b/gnu/packages/matrix.scm index 426f26d1e1..8a3a1283fa 100644 --- a/gnu/packages/matrix.scm +++ b/gnu/packages/matrix.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Alex ter Weele <alex.ter.weele@gmail.com> ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -61,13 +61,13 @@ an LDAP server.") (define-public synapse (package (name "synapse") - (version "1.24.0") + (version "1.25.0") (source (origin (method url-fetch) (uri (pypi-uri "matrix-synapse" version)) (sha256 (base32 - "0pmn8aqc7jj2xdrwljjz2vwg58hlyxp9axac471pcmg2vqais5yb")))) + "0382qcsmgvg24p0xvb37kn3y1kd3bn363kblgwg58iy92df0pga4")))) (build-system python-build-system) ;; TODO Run tests with ‘PYTHONPATH=. trial3 tests’. (propagated-inputs diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index c585326124..1820a146d1 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -24,7 +24,7 @@ ;;; Copyright © 2020 Reza Alizadeh Majd <r.majd@pantherx.org> ;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;;; Copyright © 2020 Mason Hock <chaosmonk@riseup.net> -;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> ;;; Copyright © 2020 Robert Karszniewicz <avoidr@posteo.de> ;;; @@ -1998,7 +1998,7 @@ is also scriptable and extensible via Guile.") (define-public libmesode (package (name "libmesode") - (version "0.9.3") + (version "0.10.1") (source (origin (method git-fetch) (uri (git-reference @@ -2007,7 +2007,7 @@ is also scriptable and extensible via Guile.") (file-name (git-file-name name version)) (sha256 (base32 - "0xzfg1xx88cn36352nnjlb1p7xyw32yqkhjzq10px88iaaqz1vv0")))) + "1bxnkhrypgv41qyy1n545kcggmlw1hvxnhwihijhhcf2pxd2s654")))) (build-system gnu-build-system) (inputs `(("expat" ,expat) @@ -2058,7 +2058,7 @@ are both supported).") (define-public profanity (package (name "profanity") - (version "0.9.5") + (version "0.10.0") (source (origin (method url-fetch) @@ -2067,7 +2067,7 @@ are both supported).") version ".tar.gz")) (sha256 (base32 - "00j9l9v62rz9hprgiy1vrz8v3v59ph18h8kskqxr31fgqvjv5xr3")))) + "137z77514fgj2dk13d12g4jrn6gs5k85nwrk1r1kiv7rj0jy61aa")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags @@ -2354,7 +2354,7 @@ There is support for: (define-public quaternion (package (name "quaternion") - (version "0.0.9.4e") + (version "0.0.9.4f") (outputs '("out" "debug")) (source (origin @@ -2364,7 +2364,7 @@ There is support for: (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0hqhg7l6wpkdbzrdjvrbqymmahziri07ba0hvbii7dd2p0h248fv")))) + (base32 "1q9ddz4rs02a0w3lwrsjnh59khv38cq9f0kv09vnwvazvayn87ck")))) (build-system qt-build-system) (inputs `(("libqmatrixclient" ,libqmatrixclient) @@ -2375,7 +2375,7 @@ There is support for: ("qtquickcontrols2" ,qtquickcontrols2) ("qtsvg" ,qtsvg) ("qttools" ,qttools) - ("xdg-utils", xdg-utils))) + ("xdg-utils" ,xdg-utils))) (arguments `(#:tests? #f)) ; no tests (home-page "https://matrix.org/docs/projects/client/quaternion.html") diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index c32b3cba11..34390d3696 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -82,6 +82,10 @@ ;; remove option that is not supported by gcc any more (substitute* "configure" ((" -fforce-mem") "")) #t)) + ;; Normally one should not add a pkg-config file if one is not provided + ;; by upstream developers, but Audacity expects a pkg-config file for + ;; this package, and other major GNU/Linux distributions already provide + ;; such a file. (add-after 'install 'install-pkg-config (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -127,6 +131,10 @@ This package contains the library.") (arguments `(#:phases (modify-phases %standard-phases + ;; Normally one should not add a pkg-config file if one is not provided + ;; by upstream developers, but Audacity expects a pkg-config file for + ;; this package, and other major GNU/Linux distributions already provide + ;; such a file. (add-after 'install 'install-pkg-config (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index 6066913f16..4138f4d2f6 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020 Lars-Dominik Braun <lars@6xq.net> ;;; Copyright © 2020 Simon Streit <simon@netpanic.org> +;;; Copyright © 2021 Noah Evans <noah@nevans.me> ;;; ;;; This file is part of GNU Guix. ;;; @@ -104,7 +105,7 @@ interfacing MPD in the C, C++ & Objective C languages.") (define-public mpd (package (name "mpd") - (version "0.22.3") + (version "0.22.4") (source (origin (method url-fetch) (uri @@ -113,7 +114,7 @@ interfacing MPD in the C, C++ & Objective C languages.") "/mpd-" version ".tar.xz")) (sha256 (base32 - "1kvcarqijyw07bdqszjsn62plmncaid5az0q542p6rsygc1i501k")))) + "1l4x2jrv04hp4q9gyfg79g78bk68lrd6wd3hysl6y91rln9sj7l9")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Ddocumentation=enabled"))) @@ -228,7 +229,7 @@ terminal using ncurses.") (define-public ncmpcpp (package (name "ncmpcpp") - (version "0.9.1") + (version "0.9.2") (source (origin (method url-fetch) (uri @@ -236,7 +237,7 @@ terminal using ncurses.") version ".tar.bz2")) (sha256 (base32 - "0x35nd4v31sma8fliqdbn1nxpjyi8hv472318sfb3xbmr4wlm0fb")))) + "06rs734n120jp51hr0fkkhxrm7zscbhpdwls0m5b5cccghazdazs")))) (build-system gnu-build-system) (inputs `(("libmpdclient" ,libmpdclient) ("boost" ,boost) @@ -284,20 +285,22 @@ information about tracks being played to a scrobbler, such as Libre.FM.") (define-public python-mpd2 (package (name "python-mpd2") - (version "0.5.5") + (version "3.0.1") (source (origin (method url-fetch) (uri (pypi-uri "python-mpd2" version)) (sha256 (base32 - "0laypd7h1j14b4vrmiayqlzdsh2j5hc3zv4l0fqvbrbw9y6763ii")))) + "0fxssbmnv44m03shjyvbqslc69b0160702j2s0flgvdxjggrnbjj")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases (replace 'check - (lambda _ (invoke "python" "mpd_test.py")))))) - (native-inputs `(("python-mock" ,python-mock))) + (lambda _ (invoke "python" "-m" "pytest" "mpd/tests.py")))))) + (native-inputs + `(("python-mock" ,python-mock) + ("python-pytest" ,python-pytest))) (home-page "https://github.com/Mic92/python-mpd2") (synopsis "Python MPD client library") (description "Python-mpd2 is a Python library which provides a client @@ -310,7 +313,7 @@ interface for the Music Player Daemon.") (define-public sonata (package (name "sonata") - (version "1.7b1") + (version "1.7.0") (source (origin (method git-fetch) (uri (git-reference @@ -319,7 +322,7 @@ interface for the Music Player Daemon.") (file-name (git-file-name name version)) (sha256 (base32 - "1npbxlrg6k154qybfd250nq2p96kxdsdkj9wwnp93gljnii3g8wh")))) + "0rl8w7s2asff626clzfvyz987l2k4ml5dg417mqp9v8a962q0v2x")))) (build-system python-build-system) (arguments `(#:modules ((guix build gnu-build-system) @@ -460,3 +463,56 @@ of the music library will be created to provide a hierarchy of albums and artists along with albumart.") (home-page "https://github.com/cdrummond/cantata") (license license:gpl3+))) + +(define-public mcg + (package + (name "mcg") + (version "2.1.2") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://gitlab.com/coderkun/mcg") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "01iqxydssxyi4s644dwl64vm7xhn0szd99hdpywbipvb7kwp5196")))) + (build-system python-build-system) + (native-inputs + `(("glib:bin" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config))) + (inputs + `(("avahi" ,avahi) + ("dconf" ,dconf) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("gtk+" ,gtk+) + ("python-pygobject" ,python-pygobject))) + (arguments + `(#:imported-modules ((guix build glib-or-gtk-build-system) + ,@%python-build-system-modules) + #:modules ((guix build python-build-system) + ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:) + (guix build utils)) + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-program + (lambda* (#:key outputs #:allow-other-keys) + (let ((prog (string-append (assoc-ref outputs "out") + "/bin/mcg"))) + (wrap-program prog + `("PYTHONPATH" = (,(getenv "PYTHONPATH"))) + `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))) + #t))) + (add-after 'wrap-program 'glib-or-gtk-wrap + (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) + (synopsis "Covergrid for the MPD") + (description + "mcg (CoverGrid) is a client for the Music Player Daemon (MPD), focusing +on albums instead of single tracks. It is not intended to be a replacement +for your favorite MPD client but an addition to get a better +album-experience.") + (home-page "https://gitlab.com/coderkun/mcg") + (license license:gpl3+))) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index fc6c29855d..5902cf56ba 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -2296,7 +2296,7 @@ export.") (define-public pd (package (name "pd") - (version "0.51-3") + (version "0.51-4") (source (origin (method url-fetch) (uri @@ -2304,7 +2304,7 @@ export.") version ".src.tar.gz")) (sha256 (base32 - "10cqg387xdpiirak5v9y1lpvcds9bpqz61znx6d1m1hb45n513aw")))) + "1hgw1ciwr59f4f9s0h7c2l36wcsn3jsddhr1r9qj97vf64c1ynaj")))) (build-system gnu-build-system) (arguments (let ((wish (string-append "wish" (version-major+minor @@ -3481,8 +3481,8 @@ websites such as Libre.fm.") (synopsis "Bandcamp plugin for beets") (description "This plugin for beets automatically obtains tag data from @uref{Bandcamp, - https://bandcamp.com/}. It's also capable of getting song lyrics and album art - using the beets FetchArt plugin.") +https://bandcamp.com/}. It's also capable of getting song lyrics and album art +using the beets FetchArt plugin.") (license license:gpl2))) (define-public milkytracker @@ -4434,7 +4434,7 @@ standalone JACK client and an LV2 plugin is also available.") (define-public musescore (package (name "musescore") - (version "3.5.2") + (version "3.6") (source (origin (method git-fetch) @@ -4443,7 +4443,7 @@ standalone JACK client and an LV2 plugin is also available.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0yzps5xxa50cr2i5iv2ycjdywd0mcrdd6hx93l4p8lfljag3w3al")) + (base32 "0c9yf8irkism3ffzzpkx636wa6b1r1lgpsb2x63pr0gbi5ss5kyh")) (modules '((guix build utils))) (snippet ;; Remove unused libraries. diff --git a/gnu/packages/musl.scm b/gnu/packages/musl.scm index 466e472deb..e8c51036d7 100644 --- a/gnu/packages/musl.scm +++ b/gnu/packages/musl.scm @@ -28,14 +28,14 @@ (define-public musl (package (name "musl") - (version "1.2.1") + (version "1.2.2") (source (origin (method url-fetch) (uri (string-append "https://www.musl-libc.org/releases/" "musl-" version ".tar.gz")) (sha256 (base32 - "0jz8fzwgvfyjgxjbpw35ixdglp2apqjvp8m386f6yr4zacc6xbv8")))) + "1p8r6bac64y98ln0wzmnixysckq3crca69ys7p16sy9d04i975lv")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; musl has no tests diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index 0caa918267..5729448e18 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org> -;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,13 +30,13 @@ (define-public nano (package (name "nano") - (version "5.4") + (version "5.5") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/nano/nano-" version ".tar.xz")) (sha256 - (base32 "1sc6xl9935k9s9clkv83hapijka4qknfnj6f15c3b1i2n84396gy")))) + (base32 "0jkyd3yzcidnvnj1k9bmplzlbd303x6xxblpp5np7zs1kfzq22rr")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index fad917a7c0..4e8d91256d 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -913,14 +913,14 @@ transparently check connection attempts against an access control list.") (define-public zeromq (package (name "zeromq") - (version "4.3.3") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/zeromq/libzmq/releases" - "/download/v" version "/zeromq-" version ".tar.gz")) - (sha256 - (base32 - "18km71p77jm1w7wly2a5mxvphjb0f2l6s08cg382x55f6zdqb4lx")))) + (version "4.3.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/zeromq/libzmq/releases" + "/download/v" version "/zeromq-" version ".tar.gz")) + (sha256 + (base32 "1rf3jmi36ms8jh2g5cvi253h43l6xdfq0r7mvp95va7mi4d014y5")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-static"))) (home-page "https://zeromq.org") @@ -1664,7 +1664,7 @@ reusing frequently-requested web pages.") (define-public bwm-ng (package (name "bwm-ng") - (version "0.6.2") + (version "0.6.3") (source (origin (method git-fetch) @@ -1673,7 +1673,7 @@ reusing frequently-requested web pages.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0k906wb4pw3dcqpcwnni78lahzi3bva483f8c17sjykic7as4y5n")))) + (base32 "1gpp2l3w479h1w5skjra5xy0gxd24kvmk6i4psbkafnv2399la4k")))) (build-system gnu-build-system) (arguments `(#:phases @@ -3756,14 +3756,14 @@ thousands of connections is clearly realistic with today's hardware.") (define-public lldpd (package (name "lldpd") - (version "1.0.7") + (version "1.0.8") (source (origin (method url-fetch) (uri (string-append "https://media.luffy.cx/files/lldpd/lldpd-" version ".tar.gz")) (sha256 - (base32 "1qc7k83zpcq27hpjv1lmgrj4la2zy1gspwk5jas43j49siwr3xqx")) + (base32 "1vrxr8lgkw7q6ixaaili6ac7i0j0326194s498n2dxihdvkh1llq")) (modules '((guix build utils))) (snippet '(begin @@ -3849,15 +3849,14 @@ stamps.") (define-public nbd (package (name "nbd") - (version "3.20") + (version "3.21") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/nbd/nbd/3.20/nbd-" version - ".tar.xz")) + (uri (string-append "mirror://sourceforge/nbd/nbd/" version + "/nbd-" version ".tar.xz")) (sha256 - (base32 - "1kfnyx52nna2mnw264njk1dl2zc8m78sz031yp65mbmpi99v7qg0")))) + (base32 "1ydylvvayi4w2d08flji9q03sl7y8hn0c26vsay3nwwikprqls77")))) (build-system gnu-build-system) (inputs `(("glib" ,glib))) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 1ecf76b62a..77c47ec71f 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -220,4 +221,5 @@ devices.") `(cons* "--shared" "--without-npm" ,flags)) ((#:phases phases '%standard-phases) `(modify-phases ,phases - (delete 'patch-npm-shebang))))))) + (delete 'patch-npm-shebang) + (delete 'patch-node-shebang))))))) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 2df16e7cd2..8a91a79c36 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com> ;;; Copyright © 2020 divoplade <d@divoplade.fr> ;;; Copyright © 2020 pukkamustard <pukkamustard@posteo.net> +;;; Copyright © 2021 aecepoglu <aecepoglu@fastmail.fm> ;;; ;;; This file is part of GNU Guix. ;;; @@ -390,6 +391,69 @@ repository-wide uninstallability checks.") ;; with static-linking exception (license license:lgpl2.1+))) +(define-public ocaml-down + (package + (name "ocaml-down") + (version "0.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://erratique.ch/software/down/releases/down-" + version ".tbz")) + (sha256 + (base32 + "1nz2f5j17frgr2vrslcz9klmi6w9sm2vqwwwpi33ngcm3rgmsrlg")))) + (build-system ocaml-build-system) + (arguments + `(#:tests? #f ;no tests + #:phases + (modify-phases %standard-phases + (delete 'configure)) + #:build-flags + (list "build" "--lib-dir" + (string-append (assoc-ref %outputs "out") "/lib/ocaml/site-lib")))) + (native-inputs + `(("ocaml-findlib" ,ocaml-findlib) + ("ocamlbuild" ,ocamlbuild) + ("ocaml-topkg" ,ocaml-topkg) + ("opam" ,opam))) + (home-page "https://erratique.ch/software/down") + (synopsis "OCaml toplevel (REPL) upgrade") + (description "Down is an unintrusive user experience upgrade for the +@command{ocaml} toplevel (REPL). + +Simply load the zero dependency @code{down} library in the @command{ocaml} +toplevel and you get line edition, history, session support and identifier +completion and documentation with @command{ocp-index}. + +Add this to your @file{~/.ocamlinit}: + +@example +#use \"down.top\" +@end example + +You may also need to add this to your @file{~/.ocamlinit} and declare +the environment variable @code{OCAML_TOPLEVEL_PATH}: + +@example +let () = + try Topdirs.dir_directory (Sys.getenv \"OCAML_TOPLEVEL_PATH\") + with Not_found -> () +@end example + +OR + +@example +let () = String.split_on_char ':' (Sys.getenv \"OCAMLPATH\") + |> List.filter (fun x -> Filename.check_suffix x \"/site-lib\") + |> List.map (fun x -> x ^ \"/toplevel\") + (* remove the line below if you don't want to see the text + every time you start the toplevel *) + |> List.map (fun x -> Printf.printf \"adding directory %s\\n\" x; x) + |> List.iter Topdirs.dir_directory;; +@end example") + (license license:isc))) + (define-public ocaml-opam-file-format (package (name "ocaml-opam-file-format") @@ -2362,6 +2426,77 @@ string values and to directly encode characters in OCaml Buffer.t values.") the JSON data format. It can process JSON text without blocking on IO and without a complete in-memory representation of the data.") (license license:isc))) + +(define-public ocaml-ocp-indent + (package + (name "ocaml-ocp-indent") + (version "1.8.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OCamlPro/ocp-indent") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1dvcl108ir9nqkk4mjm9xhhj4p9dx9bmg8bnms54fizs1x3x8ar3")))) + (build-system dune-build-system) + (arguments + `(#:test-target "tests" + #:build-flags (list "--profile=release"))) + (propagated-inputs + `(("ocaml-cmdliner" ,ocaml-cmdliner))) + (home-page "https://www.typerex.org/ocp-indent.html") + (synopsis "Tool to indent OCaml programs") + (description + "Ocp-indent is based on an approximate, tolerant OCaml parser +and a simple stack machine. Presets and configuration options are available, +with the possibility to set them project-wide. It supports the most common +syntax extensions, and it is extensible for others. + +This package includes: + +@itemize +@item An indentor program, callable from the command-line or from within editors, +@item Bindings for popular editors, +@item A library that can be directly used by editor writers, or just for + fault-tolerant and approximate parsing. +@end itemize") + (license license:lgpl2.1))) + +(define-public ocaml-ocp-index + (package + (name "ocaml-ocp-index") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OCamlPro/ocp-index") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "08r7mxdnxmhff37fw4hmrpjgckgi5kaiiiirwp4rmdl594z0h9c8")))) + (build-system dune-build-system) + (arguments + `(#:package "ocp-index")) + (propagated-inputs + `(("ocaml-ocp-indent" ,ocaml-ocp-indent) + ("ocaml-re" ,ocaml-re) + ("ocaml-cmdliner" ,ocaml-cmdliner))) + (native-inputs + `(("ocaml-cppo" ,ocaml-cppo))) + (home-page "https://www.typerex.org/ocp-index.html") + (synopsis "Lightweight completion and documentation browsing for OCaml libraries") + (description "This package includes only the @code{ocp-index} library +and command-line tool.") + ;; All files in libs/ are GNU lgpl2.1 + ;; For static linking, clause 6 of LGPL is lifted + ;; All other files under GNU gpl3 + (license (list license:gpl3+ + license:lgpl2.1+)))) (define-public ocaml-ocurl (package diff --git a/gnu/packages/onc-rpc.scm b/gnu/packages/onc-rpc.scm index e4b03b7858..14ff13c038 100644 --- a/gnu/packages/onc-rpc.scm +++ b/gnu/packages/onc-rpc.scm @@ -92,7 +92,7 @@ IPv4 and IPv6. ONC RPC is notably used by the network file system (NFS).") (define-public rpcbind (package (name "rpcbind") - (version "0.2.4") + (version "1.2.5") (source (origin (method url-fetch) @@ -102,7 +102,7 @@ IPv4 and IPv6. ONC RPC is notably used by the network file system (NFS).") (patches (search-patches "rpcbind-CVE-2017-8779.patch")) (sha256 (base32 - "0rjc867mdacag4yqvs827wqhkh27135rp9asj06ixhf71m9rljh7")))) + "0ynszy5hpc7wbz8xngqwyhgbi9cay73y43izqhcmrcv375l61qrc")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index a6863dc12f..669f69e755 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2017, 2020 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com> ;;; Copyright © 2017, 2018 Oleg Pykhalov <go.wigust@gmail.com> @@ -9,7 +9,7 @@ ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org> ;;; Copyright © 2018, 2019 Eric Bavier <bavier@member.fsf.org> -;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> @@ -132,8 +132,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "1.2.0") - (commit "db42ee65bd657bae9b1a598cbdbe86079dc85f81") - (revision 9)) + (commit "d4a562ba7ac4549cc2d57eff7f440026a2045f45") + (revision 11)) (package (name "guix") @@ -149,7 +149,7 @@ (commit commit))) (sha256 (base32 - "1kizkw6cxh6mhc8kal2fglnhyp1i668b4ilqbxq72slbmf9jr9jl")) + "05gkymzfl0fdb2zjyvvn7w15arfnn7fgpbn3bch9r5yc7ldxg868")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -301,6 +301,7 @@ $(prefix)/etc/init.d\n"))) (sqlite (assoc-ref inputs "guile-sqlite3")) (zlib (assoc-ref inputs "guile-zlib")) (lzlib (assoc-ref inputs "guile-lzlib")) + (zstd (assoc-ref inputs "guile-zstd")) (git (assoc-ref inputs "guile-git")) (bs (assoc-ref inputs "guile-bytestructures")) @@ -308,7 +309,7 @@ $(prefix)/etc/init.d\n"))) (gnutls (assoc-ref inputs "gnutls")) (locales (assoc-ref inputs "glibc-utf8-locales")) (deps (list gcrypt json sqlite gnutls git - bs ssh zlib lzlib)) + bs ssh zlib lzlib zstd)) (deps* ,@(if (%current-target-system) '(deps) '((cons avahi deps)))) @@ -362,6 +363,7 @@ $(prefix)/etc/init.d\n"))) ("guile-sqlite3" ,guile-sqlite3) ("guile-zlib" ,guile-zlib) ("guile-lzlib" ,guile-lzlib) + ("guile-zstd" ,guile-zstd) ("guile-ssh" ,guile-ssh) ("guile-git" ,guile-git) @@ -417,11 +419,19 @@ $(prefix)/etc/init.d\n"))) ("guile-ssh" ,guile-ssh) ("guile-git" ,guile-git) ("guile-zlib" ,guile-zlib) - ("guile-lzlib" ,guile-lzlib))) + ("guile-lzlib" ,guile-lzlib) + ("guile-zstd" ,guile-zstd))) (native-search-paths (list (search-path-specification (variable "GUIX_EXTENSIONS_PATH") - (files '("share/guix/extensions"))))) + (files '("share/guix/extensions"))) + + ;; (guix git) and (guix build download) honor this variable whose + ;; name comes from OpenSSL. + (search-path-specification + (variable "SSL_CERT_DIR") + (separator #f) ;single entry + (files '("etc/ssl/certs"))))) (home-page "https://www.gnu.org/software/guix/") (synopsis "Functional package manager for installed software packages and versions") @@ -1130,7 +1140,7 @@ outputs of those builds.") (define-public guix-jupyter (package (name "guix-jupyter") - (version "0.1.0") + (version "0.2.1") (home-page "https://gitlab.inria.fr/guix-hpc/guix-kernel") (source (origin (method git-fetch) @@ -1138,24 +1148,7 @@ outputs of those builds.") (commit (string-append "v" version)))) (sha256 (base32 - "01z7jjkc7r7lj6637rcgpz40v8xqqyfp6871h94yvcnwm7zy9h1n")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Allow builds with Guile 3.0. - (substitute* "configure.ac" - (("^GUILE_PKG.*") - "GUILE_PKG([3.0 2.2])\n")) - - ;; Avoid name clash and build failure now that - ;; 'define-json-mapping' is also provided by Guile-JSON, as - ;; of version 4.3. - (substitute* (find-files "." "\\.scm$") - (("define-json-mapping") - "define-json-mapping*") - (("<=>") - "<->")) - #t)) + "1kqwfp5h95s6mirq5nbydsbmlhsinn32grz1ld5mbxvhl6sn2i0j")) (file-name (string-append "guix-jupyter-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -1348,14 +1341,14 @@ the boot loader configuration.") (define-public flatpak (package (name "flatpak") - (version "1.8.2") + (version "1.10.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/flatpak/flatpak/releases/download/" version "/flatpak-" version ".tar.xz")) (sha256 - (base32 "1c45a0k7wx685n5b3ihv7dk0mm2kmwbw7cx8w5g2la62yxfn49kr")))) + (base32 "1dywvfpmszvp2wy5hvpzy8z6gz2gzmi9p302njp52p9vpx14ydf1")))) ;; Wrap 'flatpak' so that GIO_EXTRA_MODULES is set, thereby allowing GIO to ;; find the TLS backend in glib-networking. diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index bd411f59d0..2053457375 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2016, 2019, 2020 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org> -;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org> ;;; Copyright © 2017, 2019 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> @@ -123,7 +123,7 @@ human.") (define-public keepassxc (package (name "keepassxc") - (version "2.6.2") + (version "2.6.3") (source (origin (method url-fetch) @@ -131,7 +131,7 @@ human.") "/releases/download/" version "/keepassxc-" version "-src.tar.xz")) (sha256 - (base32 "0f3ygnjzjijqmmrvrslwsbnz208jgxp5bwy4p336w3bn1bggl6qh")))) + (base32 "1lgp20597dzj8qn8a71x3a6b549rvqybqx4haywwb09qiznvdq77")))) (build-system cmake-build-system) (arguments '(#:configure-flags '("-DWITH_XC_ALL=YES" diff --git a/gnu/packages/patches/freebayes-devendor-deps.patch b/gnu/packages/patches/freebayes-devendor-deps.patch new file mode 100644 index 0000000000..7e84666b85 --- /dev/null +++ b/gnu/packages/patches/freebayes-devendor-deps.patch @@ -0,0 +1,152 @@ +This patch is original to Guix, ongoing work to upstream bits as possible. + +From 9acc56db5e7469f5976be38b52ba4993de98ee38 Mon Sep 17 00:00:00 2001 +From: Efraim Flashner <efraim@flashner.co.il> +Date: Sun, 17 Jan 2021 13:27:17 +0200 +Subject: [PATCH] devendor-dependants + +--- + meson.build | 84 +++++++++++++++++++++++++++++++++++++++++------------ + 1 file changed, 66 insertions(+), 18 deletions(-) + +diff --git a/meson.build b/meson.build +index f6bf242..bded4af 100644 +--- a/meson.build ++++ b/meson.build +@@ -9,8 +9,13 @@ project('freebayes', ['cpp', 'c'], + + zlib_dep = dependency('zlib') + lzma_dep = dependency('liblzma') ++simde_dep = dependency('simde') + bzip2_dep = dependency('bz2lib', required: false) + htslib_dep = dependency('htslib', required : false) ++tabixpp_dep = dependency('tabixpp', required : false) ++fastahack_dep = dependency('fastahack', required : false) ++smithwaterman_dep = dependency('smithwaterman', required : false) ++vcflib_dep = dependency('libvcflib', required: false) + thread_dep = dependency('threads') + + if htslib_dep.found() +@@ -59,6 +64,56 @@ else + ] + endif + ++if tabixpp_dep.found() ++ tabixpp_includes = '' ++ tabixpp_src = [] ++else ++ tabixpp_includes = [ ++ 'vcflib/tabixpp', ++ ] ++ tabixpp_src = [ ++ 'vcflib/tabixpp/tabix.cpp', ++ ] ++endif ++ ++if vcflib_dep.found() ++ vcflib_includes = '' ++ vcflib_src = [] ++else ++ vcflib_includes = [ ++ 'vcflib/src', ++ 'vcflib/multichoose', ++ 'vcflib/filevercmp', ++ ] ++ vcflib_src = [ ++ 'vcflib/src/Variant.cpp', ++ ] ++endif ++ ++if fastahack_dep.found() ++ fastahack_src = [] ++else ++ fastahack_src = [ ++ 'vcflib/fastahack/Fasta.cpp', ++ 'vcflib/src/split.cpp', ++ ] ++endif ++ ++if smithwaterman_dep.found() ++ smithwaterman_includes = '' ++ smithwaterman_src = [] ++else ++ smithwaterman_includes = [ ++ 'vcflib/smithwaterman', ++ ] ++ smithwaterman_src = [ ++ 'vcflib/smithwaterman/SmithWatermanGotoh.cpp', ++ 'vcflib/smithwaterman/disorder.cpp', ++ 'vcflib/smithwaterman/Repeats.cpp', ++ 'vcflib/smithwaterman/LeftAlign.cpp', ++ 'vcflib/smithwaterman/IndelAllele.cpp', ++ ] ++endif + + + # +@@ -105,23 +160,18 @@ seqlib_src = [ + ] + + vcflib_src = [ +- 'vcflib/tabixpp/tabix.cpp', +- 'vcflib/src/Variant.cpp', +- 'vcflib/smithwaterman/SmithWatermanGotoh.cpp', +- 'vcflib/smithwaterman/disorder.cpp', +- 'vcflib/smithwaterman/Repeats.cpp', +- 'vcflib/smithwaterman/LeftAlign.cpp', +- 'vcflib/smithwaterman/IndelAllele.cpp', ++ vcflib_src, ++ tabixpp_src, ++ smithwaterman_src, + ] + + bamleftalign_src = [ + 'src/bamleftalign.cpp', + 'src/IndelAllele.cpp', + 'contrib/SeqLib/src/BamWriter.cpp', +- 'vcflib/fastahack/Fasta.cpp', +- 'vcflib/smithwaterman/LeftAlign.cpp', +- 'vcflib/smithwaterman/IndelAllele.cpp', +- 'vcflib/src/split.cpp', ++ fastahack_src, ++ smithwaterman_src, ++ vcflib_src, + 'src/LeftAlign.cpp', + ] + +@@ -134,11 +184,9 @@ incdir = include_directories( + 'ttmath', + 'contrib', + 'contrib/SeqLib', +- 'vcflib/src', +- 'vcflib/tabixpp', +- 'vcflib/smithwaterman', +- 'vcflib/multichoose', +- 'vcflib/filevercmp') ++ tabixpp_includes, ++ smithwaterman_includes, ++ vcflib_includes) + + c_args = ['-fpermissive','-w'] + cpp_args = ['-fpermissive','-w','-Wc++14-compat'] +@@ -152,7 +200,7 @@ executable('freebayes', + include_directories : incdir, + cpp_args : cpp_args, + c_args : c_args, +- dependencies: [zlib_dep, lzma_dep, htslib_dep, thread_dep], ++ dependencies: [zlib_dep, lzma_dep, simde_dep, htslib_dep, tabixpp_dep, smithwaterman_dep, vcflib_dep, thread_dep], + install: true + ) + +@@ -165,7 +213,7 @@ executable('bamleftalign', + include_directories : incdir, + cpp_args : cpp_args, + c_args : c_args, +- dependencies: [zlib_dep, lzma_dep, htslib_dep, thread_dep], ++ dependencies: [zlib_dep, lzma_dep, simde_dep, htslib_dep, tabixpp_dep, fastahack_dep, smithwaterman_dep, vcflib_dep, thread_dep], + install: true + ) + +-- +2.30.0 + diff --git a/gnu/packages/patches/guile-2.2-skip-so-test.patch b/gnu/packages/patches/guile-2.2-skip-so-test.patch new file mode 100644 index 0000000000..e7c2594e91 --- /dev/null +++ b/gnu/packages/patches/guile-2.2-skip-so-test.patch @@ -0,0 +1,23 @@ +Skip 'test-stack-overflow' that crashes when using QEMU transparent emulation. + +--- a/test-suite/standalone/Makefile.in 1970-01-01 01:00:01.000000000 +0100 ++++ b/test-suite/standalone/Makefile.in 2021-01-11 10:59:31.606269449 +0100 +@@ -102,8 +102,7 @@ + test-scm-to-latin1-string$(EXEEXT) test-scm-values$(EXEEXT) \ + test-scm-c-bind-keyword-arguments$(EXEEXT) \ + test-srfi-4$(EXEEXT) $(am__append_6) $(am__EXEEXT_1) \ +- test-smob-mark$(EXEEXT) test-smob-mark-race$(EXEEXT) \ +- test-stack-overflow ++ test-smob-mark$(EXEEXT) test-smob-mark-race$(EXEEXT) + check_PROGRAMS = test-num2integral$(EXEEXT) test-round$(EXEEXT) \ + test-foreign-object-c$(EXEEXT) test-list$(EXEEXT) \ + test-unwind$(EXEEXT) test-conversion$(EXEEXT) \ +@@ -1938,7 +1937,7 @@ + test-command-line-encoding test-command-line-encoding2 \ + test-language test-guild-compile $(am__append_3) \ + test-foreign-object-scm test-fast-slot-ref test-mb-regexp \ +- test-use-srfi $(am__append_5) test-stack-overflow ++ test-use-srfi $(am__append_5) + BUILT_SOURCES = $(am__append_2) + EXTRA_DIST = test-import-order-a.scm test-import-order-b.scm \ + test-import-order-c.scm test-import-order-d.scm \ diff --git a/gnu/packages/patches/idris-disable-test.patch b/gnu/packages/patches/idris-disable-test.patch new file mode 100644 index 0000000000..ec8c7c8451 --- /dev/null +++ b/gnu/packages/patches/idris-disable-test.patch @@ -0,0 +1,19 @@ +The "pkg010" test output depends on the version of optparse-applicative being +used. The expected output requires optparse-applicative >= 0.15.1.0. Skip +the test for now. + +--- idris-1.3.3/test/TestData.hs 2021-01-19 23:05:24.238958262 -0600 ++++ idris-1.3.3/test/TestData.hs 2021-01-19 23:10:33.314390997 -0600 +@@ -212,8 +212,10 @@ + ( 5, ANY ), + ( 6, ANY ), + ( 7, ANY ), +- ( 8, ANY ), +- ( 10, ANY )]), ++ ( 8, ANY )]), ++-- FIXME: Expected output depends on optparse-applicative version. ++-- See https://github.com/idris-lang/Idris-dev/issues/4896 ++-- ( 10, ANY )]), + ("prelude", "Prelude", + [ ( 1, ANY )]), + ("primitives", "Primitive types", diff --git a/gnu/packages/patches/ipxe-reproducible-geniso.patch b/gnu/packages/patches/ipxe-reproducible-geniso.patch new file mode 100644 index 0000000000..ff6aa1da94 --- /dev/null +++ b/gnu/packages/patches/ipxe-reproducible-geniso.patch @@ -0,0 +1,77 @@ +From 052d24d8217c51c572c2f6cbb4a687be2e8ba52d Mon Sep 17 00:00:00 2001 +From: Brice Waegeneire <brice@waegenei.re> +Date: Fri, 5 Jun 2020 14:38:43 +0200 +Subject: [PATCH] [geniso] Make it reproducible + +Some timestamps get embedded in the generated ISO, making it +unreproducible so we overwrite those timestamps to be at the UNIX epoch. +--- + src/util/geniso | 24 +++++++++++++++++++++--- + 1 file changed, 21 insertions(+), 3 deletions(-) + +diff --git a/src/util/geniso b/src/util/geniso +index ff090d4a..e032ffb0 100755 +--- a/src/util/geniso ++++ b/src/util/geniso +@@ -11,6 +11,13 @@ function help() { + echo " -o FILE save iso image to file" + } + ++function reset_timestamp() { ++ for f in "$1"/*; do ++ touch -t 197001010100 "$f" ++ done ++ touch -t 197001010100 "$1" ++} ++ + LEGACY=0 + FIRST="" + +@@ -37,8 +44,9 @@ if [ -z "${OUT}" ]; then + exit 1 + fi + +-# There should either be mkisofs or the compatible genisoimage program +-for command in genisoimage mkisofs; do ++# There should either be mkisofs, xorriso or the compatible genisoimage ++# program ++for command in xorriso genisoimage mkisofs; do + if ${command} --version >/dev/null 2>/dev/null; then + mkisofs=(${command}) + break +@@ -46,8 +54,10 @@ for command in genisoimage mkisofs; do + done + + if [ -z "${mkisofs}" ]; then +- echo "${0}: mkisofs or genisoimage not found, please install or set PATH" >&2 ++ echo "${0}: mkisofs, xorriso or genisoimage not found, please install or set PATH" >&2 + exit 1 ++elif [ "$mkisofs" = "xorriso" ]; then ++ mkisofs+=(-as mkisofs) + fi + + dir=$(mktemp -d bin/iso.dir.XXXXXX) +@@ -115,6 +125,8 @@ case "${LEGACY}" in + exit 1 + fi + ++ reset_timestamp "$dir" ++ + # generate the iso image + "${mkisofs[@]}" -b boot.img -output ${OUT} ${dir} + ;; +@@ -127,6 +139,12 @@ case "${LEGACY}" in + cp ${LDLINUX_C32} ${dir} + fi + ++ reset_timestamp "$dir" ++ ++ if [ "${mkisofs[0]}" = "xorriso" ]; then ++ mkisofs+=(-isohybrid-mbr "$SYSLINUX_MBR_DISK_PATH") ++ fi ++ + # generate the iso image + "${mkisofs[@]}" -b isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -output ${OUT} ${dir} + +-- +2.26.2 diff --git a/gnu/packages/patches/mutt-CVE-2021-3181.patch b/gnu/packages/patches/mutt-CVE-2021-3181.patch new file mode 100644 index 0000000000..df5214b052 --- /dev/null +++ b/gnu/packages/patches/mutt-CVE-2021-3181.patch @@ -0,0 +1,45 @@ +Fix CVE-2021-3181: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3181 + +Patch copied from upstream source repository: + +https://gitlab.com/muttmua/mutt/-/commit/c059e20ea4c7cb3ee9ffd3500ffe313ae84b2545 + +From c059e20ea4c7cb3ee9ffd3500ffe313ae84b2545 Mon Sep 17 00:00:00 2001 +From: Kevin McCarthy <kevin@8t8.us> +Date: Sun, 17 Jan 2021 10:40:37 -0800 +Subject: [PATCH] Fix memory leak parsing group address. + +When there was a group address terminator with no previous addresses, +an address would be allocated but not attached to the address list. + +Change this to only allocate when last exists. + +It would be more correct to not allocate at all unless we are inside a +group list, but I will address that in a separate commit to master. +--- + rfc822.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/rfc822.c b/rfc822.c +index 7ff4eaa3..ced619f2 100644 +--- a/rfc822.c ++++ b/rfc822.c +@@ -587,11 +587,10 @@ ADDRESS *rfc822_parse_adrlist (ADDRESS *top, const char *s) + #endif + + /* add group terminator */ +- cur = rfc822_new_address (); + if (last) + { +- last->next = cur; +- last = cur; ++ last->next = rfc822_new_address (); ++ last = last->next; + } + + phraselen = 0; +-- +GitLab + diff --git a/gnu/packages/patches/podofo-cmake-3.12.patch b/gnu/packages/patches/podofo-cmake-3.12.patch deleted file mode 100644 index 0a3c19b21a..0000000000 --- a/gnu/packages/patches/podofo-cmake-3.12.patch +++ /dev/null @@ -1,19 +0,0 @@ -The build fails with cmake 3.12.0. This patch will be obsolete with the next -release. - -https://sourceforge.net/p/podofo/tickets/24/attachment/podofo-cmake-3.12.patch - - ---- a/test/TokenizerTest/CMakeLists.txt 2018-07-20 18:26:02.921494293 +0200 -+++ b/test/TokenizerTest/CMakeLists.txt 2018-07-20 18:34:53.727136443 +0200 -@@ -2,10 +2,3 @@ - TARGET_LINK_LIBRARIES(TokenizerTest ${PODOFO_LIB} ${PODOFO_LIB_DEPENDS}) - SET_TARGET_PROPERTIES(TokenizerTest PROPERTIES COMPILE_FLAGS "${PODOFO_CFLAGS}") - ADD_DEPENDENCIES(TokenizerTest ${PODOFO_DEPEND_TARGET}) -- --# Copy the test samples over to the build tree --ADD_CUSTOM_COMMAND( -- TARGET TokenizerTest -- POST_BUILD -- COMMAND "${CMAKE_COMMAND}" -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/objects" "${CMAKE_CURRENT_BINARY_DIR}/objects" -- ) diff --git a/gnu/packages/patches/r-httpuv-1.5.4-unvendor-libuv.patch b/gnu/packages/patches/r-httpuv-1.5.5-unvendor-libuv.patch index 0947718059..0947718059 100644 --- a/gnu/packages/patches/r-httpuv-1.5.4-unvendor-libuv.patch +++ b/gnu/packages/patches/r-httpuv-1.5.5-unvendor-libuv.patch diff --git a/gnu/packages/patches/tipp10-disable-downloader.patch b/gnu/packages/patches/tipp10-disable-downloader.patch new file mode 100644 index 0000000000..4917a927f9 --- /dev/null +++ b/gnu/packages/patches/tipp10-disable-downloader.patch @@ -0,0 +1,165 @@ +https://salsa.debian.org/debian/tipp10/-/raw/debian/2.1.0-5/debian/patches/disable_downloaders.patch + +Author: Reiner Herrmann <reiner@reiner-h.de> +Description: Disable downloaders + This makes porting to Qt5 much easier, as QHttp is no longer available. + But the functionality was not enabled anyway or is no longer useful. + . + - checkversion.h/.cpp: + At startup (while loading settings), Tipp10 "phones home" to do an + update check (www.tipp10.com/update/version.tipp10v210). + For a packaged software and one that is no longer being developed, + this does not make much sense. + - updatedialog.h/.cpp: + Can download newer sqlite database (www.tipp10.com/update/sql.tipp10v210.utf), + but this file is no longer available on the server (404). + The update action has also not been enabled in the menu, so the update + functionality was currently not active: + widget/mainwindow.cpp:143: //fileMenu->addAction(updateAction); + - downloaddialog.h/.cpp: + Allows downloading lessons from user-specified location. + But the action (widget/startwidget.cpp -> lessonDownload) has not been part + of any menu, so it was also not in use. + +--- a/tipp10.pro ++++ b/tipp10.pro +@@ -15,7 +15,6 @@ + INCLUDEPATH += . + CONFIG += qt + QT += sql +-QT += network + RC_FILE += tipp10.rc + RESOURCES += tipp10.qrc + HEADERS += def/defines.h \ +@@ -36,15 +35,12 @@ + widget/settingspages.h \ + widget/lessondialog.h \ + widget/regexpdialog.h \ +- widget/downloaddialog.h \ + widget/lessonprintdialog.h \ + widget/lessonresult.h \ +- widget/updatedialog.h \ + widget/helpbrowser.h \ + widget/companylogo.h \ + widget/errormessage.h \ + widget/txtmessagedialog.h \ +- widget/checkversion.h \ + sql/connection.h \ + sql/lessontablesql.h \ + sql/chartablesql.h \ +@@ -70,15 +66,12 @@ + widget/settingspages.cpp \ + widget/lessondialog.cpp \ + widget/regexpdialog.cpp \ +- widget/downloaddialog.cpp \ + widget/lessonprintdialog.cpp \ + widget/lessonresult.cpp \ +- widget/updatedialog.cpp \ + widget/helpbrowser.cpp \ + widget/companylogo.cpp \ + widget/errormessage.cpp \ + widget/txtmessagedialog.cpp \ +- widget/checkversion.cpp \ + sql/lessontablesql.cpp \ + sql/chartablesql.cpp \ + sql/trainingsql.cpp \ +--- a/widget/mainwindow.cpp ++++ b/widget/mainwindow.cpp +@@ -41,11 +41,9 @@ + + #include "mainwindow.h" + #include "settingsdialog.h" +-#include "updatedialog.h" + #include "def/defines.h" + #include "def/errordefines.h" + #include "errormessage.h" +-#include "checkversion.h" + + MainWindow::MainWindow() { + trainingStarted = false; +@@ -214,8 +212,8 @@ + } + + void MainWindow::showUpdate() { +- UpdateDialog updateDialog(this); +- updateDialog.exec(); ++ //UpdateDialog updateDialog(this); ++ //updateDialog.exec(); + // Fill lesson list after online update + startWidget->fillLessonList(false); + } +@@ -486,6 +484,7 @@ + settings.endGroup(); + + settings.beginGroup("general"); ++#if 0 + if (settings.value("check_new_version", true).toBool()) { + + QDate lastVersionCheck = settings.value("last_version_check").toDate(); +@@ -499,6 +498,7 @@ + } + settings.setValue("last_version_check", today); + } ++#endif + settings.endGroup(); + } + +--- a/widget/settingspages.cpp ++++ b/widget/settingspages.cpp +@@ -581,7 +581,7 @@ + + // Layout of group box vertical + QVBoxLayout *layout = new QVBoxLayout; +- layout->addWidget(checkNewVersion); ++ //layout->addWidget(checkNewVersion); + layout->addSpacing(1); + layout->addWidget(checkNativeStyle); + layout->setMargin(16); +@@ -610,7 +610,6 @@ + checkIntelligence->setChecked(settings.value("check_toggle_intelligence", true).toBool()); + checkLimitLesson->setChecked(settings.value("check_limit_lesson", true).toBool()); + checkLessonPublish->setChecked(settings.value("check_lesson_publish", true).toBool()); +- checkNewVersion->setChecked(settings.value("check_new_version", true).toBool()); + checkNativeStyle->setChecked(settings.value("check_native_style", false).toBool()); + settings.endGroup(); + } +@@ -636,7 +635,6 @@ + settings.setValue("check_limit_lesson", checkLimitLesson->isChecked()); + settings.setValue("check_lesson_publish", checkLessonPublish->isChecked()); + settings.setValue("check_native_style", checkNativeStyle->isChecked()); +- settings.setValue("check_new_version", checkNewVersion->isChecked()); + settings.endGroup(); + + return requireRestart; +--- a/widget/startwidget.cpp ++++ b/widget/startwidget.cpp +@@ -43,12 +43,10 @@ + + #include "startwidget.h" + #include "sql/startsql.h" +-#include "updatedialog.h" + #include "def/defines.h" + #include "def/errordefines.h" + #include "errormessage.h" + #include "lessondialog.h" +-#include "downloaddialog.h" + #include "illustrationdialog.h" + #include "txtmessagedialog.h" + +@@ -1048,7 +1046,7 @@ + } + + void StartWidget::clickDownloadLesson() { +- ++#if 0 + QStringList lessonData; + + DownloadDialog downloadDialog(&lessonData, this); +@@ -1083,6 +1081,7 @@ + } + } + } ++#endif + } + + void StartWidget::clickEditLesson() { diff --git a/gnu/packages/patches/tipp10-qt5.patch b/gnu/packages/patches/tipp10-qt5.patch new file mode 100644 index 0000000000..34ad5cd708 --- /dev/null +++ b/gnu/packages/patches/tipp10-qt5.patch @@ -0,0 +1,69 @@ +https://salsa.debian.org/debian/tipp10/-/raw/debian/2.1.0-5/debian/patches/qt5.patch + +Author: Reiner Herrmann <reiner@reiner-h.de> +Description: Port to Qt5 +Bug-Debian: https://bugs.debian.org/875207 + +--- a/tipp10.pro ++++ b/tipp10.pro +@@ -14,6 +14,7 @@ + DEPENDPATH += . + INCLUDEPATH += . + CONFIG += qt ++QT += widgets multimedia printsupport + QT += sql + RC_FILE += tipp10.rc + RESOURCES += tipp10.qrc +--- a/main.cpp ++++ b/main.cpp +@@ -24,7 +24,6 @@ + ****************************************************************/ + + #include <QApplication> +-#include <QPlastiqueStyle> + #include <QString> + #include <QSettings> + #include <QCoreApplication> +@@ -212,7 +211,7 @@ + + // Set windows style + if (!useNativeStyle) { +- app.setStyle("plastique"); ++ app.setStyle("fusion"); + } + + // Translation +--- a/games/abcrainwidget.cpp ++++ b/games/abcrainwidget.cpp +@@ -235,8 +235,7 @@ + charballs.last()->wind = (qrand() % 8) + 2; + charballs.last()->rad = 0; + +- chartext.append(new QGraphicsTextItem(QString(characterTemp), +- charballs.last(), scene)); ++ chartext.append(new QGraphicsTextItem(QString(characterTemp), charballs.last())); + chartext.last()->setFont(QFont("Courier", 16, 100)); + chartext.last()->setPos(-(chartext.last()->boundingRect().width() / 2), -(chartext.last()->boundingRect().height() / 2)); + +--- a/sql/chartablesql.cpp ++++ b/sql/chartablesql.cpp +@@ -137,7 +137,7 @@ + sortColumn(4); + + headerview->setStretchLastSection(true); +- headerview->setResizeMode(QHeaderView::Interactive); ++ headerview->setSectionResizeMode(QHeaderView::Interactive); + headerview->setSortIndicatorShown(true); + + // Resize the columns +--- a/sql/lessontablesql.cpp ++++ b/sql/lessontablesql.cpp +@@ -202,7 +202,7 @@ + sortColumn(-1); + + headerview->setStretchLastSection(true); +- headerview->setResizeMode(QHeaderView::Interactive); ++ headerview->setSectionResizeMode(QHeaderView::Interactive); + headerview->setSortIndicatorShown(true); + + // Resize the columns diff --git a/gnu/packages/patches/vcflib-use-shared-libraries.patch b/gnu/packages/patches/vcflib-use-shared-libraries.patch deleted file mode 100644 index e198ec663c..0000000000 --- a/gnu/packages/patches/vcflib-use-shared-libraries.patch +++ /dev/null @@ -1,135 +0,0 @@ -This patch is a combination of many of the patches from Debian: -https://sources.debian.org/src/libvcflib/1.0.1+dfsg-3/debian/patches/ - ---- - Makefile | 63 +++++++++++--------------------------------------------- - 1 file changed, 12 insertions(+), 51 deletions(-) - -diff --git a/Makefile b/Makefile -index 6b13350..be85f22 100644 ---- a/Makefile -+++ b/Makefile -@@ -114,43 +114,25 @@ BIN_SOURCES = src/vcfecho.cpp \ - src/vcfnull2ref.cpp \ - src/vcfinfosummarize.cpp - --# when we can figure out how to build on mac --# src/vcfsom.cpp -- - #BINS = $(BIN_SOURCES:.cpp=) - BINS = $(addprefix $(BIN_DIR)/,$(notdir $(BIN_SOURCES:.cpp=))) - SHORTBINS = $(notdir $(BIN_SOURCES:.cpp=)) - --TABIX = tabixpp/tabix.o --FASTAHACK = fastahack/Fasta.o --SMITHWATERMAN = smithwaterman/SmithWatermanGotoh.o --REPEATS = smithwaterman/Repeats.o --INDELALLELE = smithwaterman/IndelAllele.o --DISORDER = smithwaterman/disorder.o --LEFTALIGN = smithwaterman/LeftAlign.o --FSOM = fsom/fsom.o - FILEVERCMP = filevercmp/filevercmp.o - --# Work out how to find htslib --# Use the one we ship in tabixpp unless told otherwise by the environment --HTS_LIB ?= $(VCF_LIB_LOCAL)/tabixpp/htslib/libhts.a --HTS_INCLUDES ?= -I$(VCF_LIB_LOCAL)/tabixpp/htslib --HTS_LDFLAGS ?= -L$(VCF_LIB_LOCAL)/tabixpp/htslib -lhts -lbz2 -lm -lz -llzma -pthread -- -- --INCLUDES = $(HTS_INCLUDES) -I$(INC_DIR) --LDFLAGS = -L$(LIB_DIR) -lvcflib $(HTS_LDFLAGS) -lpthread -lz -lm -llzma -lbz2 -+INCLUDES = -I$(INC_DIR) $(shell pkg-config --cflags htslib fastahack smithwaterman tabixpp) -+LDFLAGS = -L$(LIB_DIR) -lvcflib -lpthread -lz -lstdc++ -lm -llzma -lbz2 $(shell pkg-config --libs htslib fastahack smithwaterman tabixpp) - - - --all: $(OBJECTS) $(BINS) scriptToBin -+all: $(OBJECTS) $(BINS) scriptToBin libvcflib.a - - scriptToBin: $(BINS) - $(CP) scripts/* $(BIN_DIR) - - GIT_VERSION += $(shell git describe --abbrev=4 --dirty --always) - --CXXFLAGS = -Ofast -D_FILE_OFFSET_BITS=64 -std=c++0x -+CXXFLAGS = -Ofast -D_FILE_OFFSET_BITS=64 -std=c++0x -fPIC - #CXXFLAGS = -O2 - #CXXFLAGS = -pedantic -Wall -Wshadow -Wpointer-arith -Wcast-qual - -@@ -168,7 +150,7 @@ profiling: - gprof: - $(MAKE) CXXFLAGS="$(CXXFLAGS) -pg" all - --$(OBJECTS): $(SOURCES) $(HEADERS) $(TABIX) multichoose pre $(SMITHWATERMAN) $(FILEVERCMP) $(FASTAHACK) -+$(OBJECTS): $(SOURCES) $(HEADERS) multichoose pre $(FILEVERCMP) - $(CXX) -c -o $@ src/$(*F).cpp $(INCLUDES) $(LDFLAGS) $(CXXFLAGS) && $(CP) src/*.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/ - - multichoose: pre -@@ -177,39 +159,22 @@ multichoose: pre - intervaltree: pre - cd intervaltree && $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/ - --$(TABIX): pre -- cd tabixpp && INCLUDES="$(HTS_INCLUDES)" LIBPATH="-L. $(HTS_LDFLAGS)" HTSLIB="$(HTS_LIB)" $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/ -- --$(SMITHWATERMAN): pre -- cd smithwaterman && $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/ && $(CP) *.o $(VCF_LIB_LOCAL)/$(OBJ_DIR)/ -- --$(DISORDER): $(SMITHWATERMAN) -- --$(REPEATS): $(SMITHWATERMAN) -- --$(LEFTALIGN): $(SMITHWATERMAN) -- --$(INDELALLELE): $(SMITHWATERMAN) -- --$(FASTAHACK): pre -- cd fastahack && $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/ && $(CP) Fasta.o $(VCF_LIB_LOCAL)/$(OBJ_DIR)/ -- --#$(FSOM): --# cd fsom && $(CXX) $(CXXFLAGS) -c fsom.c -lm -- - $(FILEVERCMP): pre - cd filevercmp && make && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/ && $(CP) *.o $(VCF_LIB_LOCAL)/$(INC_DIR)/ - - $(SHORTBINS): pre - $(MAKE) $(BIN_DIR)/$@ - --$(BINS): $(BIN_SOURCES) libvcflib.a $(OBJECTS) $(SMITHWATERMAN) $(FASTAHACK) $(DISORDER) $(LEFTALIGN) $(INDELALLELE) $(SSW) $(FILEVERCMP) pre intervaltree -+$(BINS): $(BIN_SOURCES) libvcflib.so $(OBJECTS) $(SSW) $(FILEVERCMP) pre intervaltree - $(CXX) src/$(notdir $@).cpp -o $@ $(INCLUDES) $(LDFLAGS) $(CXXFLAGS) -DVERSION=\"$(GIT_VERSION)\" - --libvcflib.a: $(OBJECTS) $(SMITHWATERMAN) $(REPEATS) $(FASTAHACK) $(DISORDER) $(LEFTALIGN) $(INDELALLELE) $(SSW) $(FILEVERCMP) $(TABIX) pre -- ar rs libvcflib.a $(OBJECTS) smithwaterman/sw.o $(FASTAHACK) $(SSW) $(FILEVERCMP) $(TABIX) -+libvcflib.a: $(OBJECTS) $(SSW) $(FILEVERCMP) pre -+ ar rs libvcflib.a $(OBJECTS) $(SSW) $(FILEVERCMP) - $(CP) libvcflib.a $(LIB_DIR) - -+libvcflib.so: $(OBJECTS) $(SSW) $(FILEVERCMP) pre -+ $(CXX) -shared -o libvcflib.so $(OBJECTS) $(SSW) $(FILEVERCMP) -+ $(CP) libvcflib.so $(LIB_DIR) - - test: $(BINS) - @prove -Itests/lib -w tests/*.t -@@ -230,16 +195,12 @@ clean: - $(RM) $(BINS) $(OBJECTS) - $(RM) ssw_cpp.o ssw.o - $(RM) libvcflib.a -+ $(RM) libvcflib.so - $(RM) -r $(BIN_DIR) - $(RM) -r $(LIB_DIR) - $(RM) -r $(INC_DIR) - $(RM) -r $(OBJ_DIR) -- $(MAKE) clean -C tabixpp -- $(MAKE) clean -C smithwaterman -- $(MAKE) clean -C fastahack - $(MAKE) clean -C multichoose -- $(MAKE) clean -C fsom -- $(MAKE) clean -C libVCFH - $(MAKE) clean -C test - $(MAKE) clean -C filevercmp - $(MAKE) clean -C intervaltree --- -2.28.0 - diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 224bd792bd..d03379c113 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -13,7 +13,7 @@ ;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2017, 2018 Rene Saavedra <pacoon@protonmail.com> -;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2019 Ben Sturmfels <ben@sturm.com.au> ;;; Copyright © 2019,2020 Hartmut Goebel <h.goebel@crazy-compilers.com> @@ -648,15 +648,14 @@ interaction.") (define-public podofo (package (name "podofo") - (version "0.9.6") + (version "0.9.7") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/podofo/podofo/" version "/podofo-" version ".tar.gz")) (sha256 (base32 - "0wj0y4zcmj4q79wrn3vv3xq4bb0vhhxs8yifafwy9f2sjm83c5p9")) - (patches (search-patches "podofo-cmake-3.12.patch")))) + "1f0yvkx6nf99fp741w2y706d8bs9824x1z2gqm3rdy5fv8bfgwkw")))) (build-system cmake-build-system) (native-inputs `(("cppunit" ,cppunit) @@ -671,8 +670,8 @@ interaction.") ("openssl" ,openssl) ("zlib" ,zlib))) (arguments - `(#:configure-flags '("-DPODOFO_BUILD_SHARED=ON" - "-DPODOFO_BUILD_STATIC=ON") + `(#:configure-flags + (list "-DPODOFO_BUILD_SHARED=ON") #:phases (modify-phases %standard-phases (add-before 'configure 'patch diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 896a474bba..da05f7a95b 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -11141,6 +11141,39 @@ package takes some liberties with the SDL API, and attempts to adhere to the spirit of both the SDL and Perl.") (license license:lgpl2.1))) +(define-public perl-sgmls + (package + (name "perl-sgmls") + (version "1.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/R/RA/RAAB/SGMLSpm-" + version ".tar.gz")) + (sha256 + (base32 + "1gdjf3mcz2bxir0l9iljxiz6qqqg3a9gg23y5wjg538w552r432m")))) + (build-system perl-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'install 'wrap-script + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (site (string-append out "/lib/perl5/site_perl"))) + (with-directory-excursion out + (rename-file "bin/sgmlspl.pl" "bin/sgmlspl") + (wrap-program "bin/sgmlspl" + `("PERL5LIB" suffix (,site)))) + #t)))))) + (native-inputs + `(("perl-module-build" ,perl-module-build))) + (home-page "https://metacpan.org/release/RAAB/SGMLSpm-1.1") + (synopsis "Perl module for processing SGML parser output") + (description "This package contains @code{SGMLS.pm}, a perl5 class library +for parsing the output from an SGML parser such as OpenSP. It also includes +the @command{sgmlspl} command, an Perl script showcasing how the library can +be used.") + (license license:gpl2+))) + (define-public perl-shell-command (package (name "perl-shell-command") diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm index e03582c47b..9ab9da37fb 100644 --- a/gnu/packages/printers.scm +++ b/gnu/packages/printers.scm @@ -1,7 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2019, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,13 +20,9 @@ (define-module (gnu packages printers) #:use-module (guix packages) #:use-module (guix git-download) - #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module ((guix licenses) #:prefix license:) - #:use-module (gnu packages compression) - #:use-module (gnu packages cups) #:use-module (gnu packages libusb) - #:use-module (gnu packages ghostscript) #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt)) @@ -73,70 +68,3 @@ with Graphtec and Sihouette plotting cutters using an SVG file as its input.") (home-page "http://robocut.org") (license license:gpl3+))) - -(define-public brlaser - (let ((commit "9d7ddda8383bfc4d205b5e1b49de2b8bcd9137f1") - (revision "1")) - (package - (name "brlaser") - (version (git-version "6" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pdewacht/brlaser") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1drh0nk7amn9a8wykki4l9maqa4vy7vwminypfy1712alwj31nd4")))) - (build-system cmake-build-system) - (arguments - `(#:configure-flags - (list (string-append "-DCUPS_DATA_DIR=" - (assoc-ref %outputs "out") - "/share/cups") - (string-append "-DCUPS_SERVER_BIN=" - (assoc-ref %outputs "out") - "/lib/cups")))) - (inputs - `(("ghostscript" ,ghostscript) - ("cups" ,cups) - ("zlib" ,zlib))) - (home-page "https://github.com/pdewacht/brlaser") - (synopsis "Brother laser printer driver") - (description "Brlaser is a CUPS driver for Brother laser printers. This -driver is known to work with these printers: - -@enumerate -@item Brother DCP-1510 series -@item Brother DCP-1600 series -@item Brother DCP-7030 -@item Brother DCP-7040 -@item Brother DCP-7055 -@item Brother DCP-7055W -@item Brother DCP-7060D -@item Brother DCP-7065DN -@item Brother DCP-7080 -@item Brother DCP-L2500D series -@item Brother DCP-L2520D series -@item Brother DCP-L2540DW series -@item Brother HL-1110 series -@item Brother HL-1200 series -@item Brother HL-2030 series -@item Brother HL-2140 series -@item Brother HL-2220 series -@item Brother HL-2270DW series -@item Brother HL-5030 series -@item Brother HL-L2300D series -@item Brother HL-L2320D series -@item Brother HL-L2340D series -@item Brother HL-L2360D series -@item Brother MFC-1910W -@item Brother MFC-7240 -@item Brother MFC-7360N -@item Brother MFC-7365DN -@item Brother MFC-7840W -@item Brother MFC-L2710DW series -@item Lenovo M7605D -@end enumerate") - (license license:gpl2+)))) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 2c471fba58..9f5e3ba559 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -8260,14 +8260,14 @@ PEP 8.") (define-public python-pep517 (package (name "python-pep517") - (version "0.8.2") + (version "0.9.1") (source (origin (method url-fetch) (uri (pypi-uri "pep517" version)) (sha256 (base32 - "17m2bcabx3sr5wjalgzppfx5xahqrwm12zq58h68mm482b7rjqcf")))) + "0zqidxah03qpnp6zkg3zd1kmd5f79hhdsfmlc0cldaniy80qddxf")))) (build-system python-build-system) (arguments '(#:phases @@ -18762,14 +18762,14 @@ implemented using @code{ctypes}.") (define-public python-userspacefs (package (name "python-userspacefs") - (version "2.0.2") + (version "2.0.3") (source (origin (method url-fetch) (uri (pypi-uri "userspacefs" version)) (sha256 (base32 - "0ayfcz9pjwq7h3ws0qas71842s1wm7dxlmg8dccxl2j6yavpv83f")))) + "1v6saf62ml3j63adalvlkj4iavxjbsbapl20b21mn73p7kvn4ayf")))) (build-system python-build-system) (propagated-inputs `(("python-fusepyng" ,python-fusepyng))) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 526054c896..012f9a106f 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> -;;; Copyright © 2015, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is> ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be> @@ -343,16 +343,31 @@ developers using C++ or QML, a CSS & JavaScript like language.") ;; Qt 5: assembler error; see <http://hydra.gnu.org/build/112526>. (supported-systems (delete "mips64el-linux" %supported-systems)))) +(define (qt5-urls component version) + "Return a list of URLs for VERSION of the Qt5 COMPONENT." + ;; We can't use a mirror:// scheme because these URLs are not exact copies: + ;; the layout differs between them. + (list (string-append "https://download.qt.io/official_releases/qt/" + (version-major+minor version) "/" version + "/submodules/" component "-everywhere-src-" + version ".tar.xz") + (string-append "https://download.qt.io/archive/qt/" + (version-major+minor version) "/" version + "/submodules/" component "-everywhere-src-" + version ".tar.xz") + (let ((directory (string-append "qt5" (string-drop component 2)))) + (string-append "http://sources.buildroot.net/" directory "/" + component "-everywhere-src-" version ".tar.xz")) + (string-append "https://distfiles.macports.org/qt5/" + component "-everywhere-src-" version ".tar.xz"))) + (define-public qtbase (package (name "qtbase") (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "1y70libf2x52lpbqvhz10lpk7nyl1ajjwzjxly9pjdpfj4jsv7wh")) @@ -610,10 +625,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "0pjqrdmd1991x9h4rl8sf81pkd89hfd5h1a2gp3fjw96pk0w5hwb")))) @@ -685,10 +697,7 @@ HostData=lib/qt5 (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "1msk8a0z8rr16hkp2fnv668vf6wayiydqgc2mcklaa04rv3qb0mz")) @@ -726,10 +735,7 @@ support for MNG, TGA, TIFF and WBMP image formats."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "0gkfzj195v9flwljnqpdz3a532618yn4h2577nlsai56x4p7053h")))) @@ -750,10 +756,7 @@ from within Qt 5."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "1ypj5jpa31rlx8yfw3y9jia212lfnxvnqkvygs6ihjf3lxi23skn")))) @@ -781,10 +784,7 @@ xmlpatternsvalidator."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "0lancdn7y0lrlmyn5cbdm0izd5yprvd5n77nhkb7a3wl2sbx0066")))) @@ -825,10 +825,7 @@ with JavaScript and C++."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "185zci61ip1wpjrygcw2m6v55lvninc0b8y2p3jh6qgpf5w35003")))) @@ -849,10 +846,7 @@ with Bluetooth and NFC."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "0gr399fn5n8j3m9d3vv01vcbr1cb7pw043j04cnnxzrlvn2jvd50")))) @@ -876,10 +870,7 @@ consume data received from the server, or both."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "0fa81r7bn1mf9ynwsx524a55dx1q0jb4vda6j48ssb4lx7wi201z")))) @@ -909,10 +900,7 @@ recognition API for devices."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "1xbd6kc7i0iablqdkvfrajpi32cbq7j6ajbfyyyalcai1s0mhdqc")) @@ -960,10 +948,7 @@ set of plugins for interacting with pulseaudio and GStreamer."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "1ddfx4nak16xx0zh1kl836zxvpbixmmjyplsmfmg65pqkwi34dqr")))) @@ -1015,10 +1000,7 @@ compositor libraries."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "17gp5qzg4wdg8qlxk2p3mh8x1vk33rf33wic3fy0cws193bmkiar")))) @@ -1049,10 +1031,7 @@ interacting with serial ports from within Qt."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "125x6756fjpldqy6wbw6cg7ngjh2016aiq92bchh719z1mf7xsxf")))) @@ -1084,10 +1063,7 @@ and others."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "1h9y634phvvk557mhmf9z4lmxr41rl8x9mqy2lzp31mk8ffffzqj")))) @@ -1108,10 +1084,7 @@ popular web engines, Qt WebKit 2 and Qt WebEngine."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "0ihlnhv8ldkqz82v3j7j22lrhk17b6ghra8sx85y2agd2ysq5rw1")))) @@ -1144,10 +1117,7 @@ OpenGL ES 2.0 and can be used in HTML5 canvas elements"))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "1rw1wibmbxlj6xc86qs3y8h42al1vczqiksyxzaylxs9gqb4d7xy")))) @@ -1197,10 +1167,7 @@ positioning and geolocation plugins."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "1k618f7v6jaj0ygy8d7jvgb8zjr47sn55kiskbdkkizp3z7d12f1")))) @@ -1225,10 +1192,7 @@ that helps in Qt development."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "0gk74hk488k9ldacxbxcranr3arf8ifqg8kz9nm1rgdgd59p36d2")) @@ -1249,10 +1213,7 @@ ECMAScript and Qt."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "1dczakl868mg0lnwpf082jjc5976ycn879li1vqlgw5ihirzp4y3")))) @@ -1273,10 +1234,7 @@ can be used to build complete interfaces in Qt Quick."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "06c9vrwvbjmzapmfa25y34lgjkzg57xxbm92nr6wkv5qykjnq6v7")))) @@ -1298,10 +1256,7 @@ not available."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "1r6zfc0qga2ax155js7c8y5rx6vgayf582s921j09mb797v6g3gc")))) @@ -1325,10 +1280,7 @@ coloring, and many more."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "0p07bg93fdfn4gr2kv38qgnws5znhswajrxdfs8xc9l3i7vi2xn7")))) @@ -1355,10 +1307,7 @@ and mobile applications targeting TV-like form factors."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "1p5771b9hnpchfcdgy0zkhwg09a6xq88934aggp0rij1k85mkfb0")) @@ -1386,10 +1335,7 @@ also contains functionality to support data models and executable content."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "09rjx53519dfk4qj2gbn3vlxyriasyb747wpg1p11y7jkwqhs4l7")))) @@ -1406,10 +1352,7 @@ purchasing goods and services."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "049x7z8zcp9jixmdv2fjscy2ggpd6za9hkdbb2bqp2mxjm0hwxg0")))) @@ -1433,10 +1376,7 @@ selecting one of the charts themes.") (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "1zdn3vm0nfy9ny7c783aabp3mhlnqhi9fw2rljn7ibbksmsnasi2")))) @@ -1460,10 +1400,7 @@ customized by using themes or by adding custom items and labels to them.") (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "11fdgacv4syr8bff2vdw7rb0dg1gcqpdf37hm3pn31d6z91frhpw")))) @@ -1489,10 +1426,7 @@ implementation of OAuth and OAuth2 authenticathon methods for Qt."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "1hngbp0vkr35rpsrac7b9vx6f360v8v2g0fffzm590l8j2ybd0b7")))) @@ -1526,10 +1460,7 @@ processes or computers."))) (version "5.15.2") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "1xc3x3ghnhgchsg1kgj156yg69wn4rwjx8r28i1jd05hxjggn468")))) @@ -1591,10 +1522,7 @@ using the Enchant spell-checking library.") (source (origin (method url-fetch) - (uri (string-append "https://download.qt.io/official_releases/qt/" - (version-major+minor version) "/" version - "/submodules/" name "-everywhere-src-" - version ".tar.xz")) + (uri (qt5-urls name version)) (sha256 (base32 "1q4idxdm81sx102xc12ixj0xpfx52d6vwvs3jpapnkyq8c7cmby8")) diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index 0a4b623360..95e86e560a 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2017, 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2019, 2020 Christopher Howard <christopher@librehacker.com> ;;; Copyright © 2019, 2020 Evan Straw <evan.straw99@gmail.com> -;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2020 Charlie Ritter <chewzerita@posteo.net> ;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr> @@ -538,7 +538,7 @@ to the fix block above. (define-public gqrx (package (name "gqrx") - (version "2.13.5") + (version "2.14.4") (source (origin (method git-fetch) @@ -547,7 +547,7 @@ to the fix block above. (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "168wjad5g0ka555hwsciwbj7fqx1c89q59hq1yxj8aiyp5kfcahx")))) + (base32 "0m4ncydihz4n4i80c252vk3c5v672yab1jv85n6ndn7a92xv3ilq")))) (build-system qt-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -1057,7 +1057,7 @@ their position, altitude, speed, etc.") (define-public rtl-433 (package (name "rtl-433") - (version "20.02") + (version "20.11") (source (origin (method git-fetch) @@ -1066,7 +1066,7 @@ their position, altitude, speed, etc.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "11991xky9gawkragdyg27qsf7kw5bhlg7ygvf3fn7ng00x4xbh1z")))) + (base32 "093bxjxkg7yf78wqj5gpijbfa2p05ny09qqsj84kzi1svnzsa369")))) (build-system cmake-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -1117,3 +1117,33 @@ modes: @item X10 @end itemize") (license license:gpl2+))) + +(define-public nanovna-saver + (package + (name "nanovna-saver") + (version "0.3.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/NanoVNA-Saver/nanovna-saver") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0z83rwpnbbs1n74mx8dgh1d1crp90mannj9vfy161dmy4wzc5kpv")))) + (build-system python-build-system) + (native-inputs + `(("python-cython" ,python-cython))) + (inputs + `(("python-numpy" ,python-numpy) + ("python-pyqt" ,python-pyqt) + ("python-pyserial" ,python-pyserial) + ("python-scipy" ,python-scipy))) + (arguments + '(#:tests? #f)) + (home-page "https://github.com/NanoVNA-Saver/nanovna-saver") + (synopsis "GUI for NanoVNA devices") + (description + "NanoVNA-Saver is a tool for reading, displaying and saving data from the +NanoVNA vector network analyzers.") + (license license:gpl3+))) diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm index be426e102a..0841c1fd8d 100644 --- a/gnu/packages/rdf.scm +++ b/gnu/packages/rdf.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015, 2016, 2018 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org> ;;; Copyright © 2020 Pjotr Prins <pjotr.guix@thebird.nl> @@ -268,14 +268,14 @@ and triple stores.") (define-public serd (package (name "serd") - (version "0.30.6") + (version "0.30.8") (source (origin (method url-fetch) (uri (string-append "https://download.drobilla.net/serd-" version ".tar.bz2")) (sha256 (base32 - "1vrprliknw9s0mz99dk7qf8i8xx38dd173q6b60332wxcm6cg8pm")))) + "11zs53yx40mv62vxsl15mvdh7s17y5v6lgcgahdvzxgnan7w8bk7")))) (build-system waf-build-system) (arguments `(#:tests? #f ; no check target @@ -302,14 +302,14 @@ ideal (e.g. in LV2 implementations or embedded applications).") (define-public sord (package (name "sord") - (version "0.16.6") + (version "0.16.8") (source (origin (method url-fetch) (uri (string-append "https://download.drobilla.net/sord-" version ".tar.bz2")) (sha256 (base32 - "0i4x49ckdi1d24kwp6rmnf2mz78sncdpq22xhv9kclq8frxg4yk6")))) + "052y7zllrg0bzyky2rmrrwnnf16p6bk7q40rq9mgm0mzm8p9sa3w")))) (build-system waf-build-system) (arguments `(#:tests? #f ; no check target diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index c5b1af79d3..b811cbd2c4 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -5020,10 +5020,16 @@ both CSS3 selector and XPath 1.0 support.") "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp")))) (build-system ruby-build-system) (arguments - `(#:test-target "spec")) + `(#:test-target "spec" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-git-ls-files + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "Rakefile" + (("git ls-files") "find . -type f")) + #t))))) (native-inputs - `(("ruby-rspec" ,ruby-rspec) - ("git" ,git))) + `(("ruby-rspec" ,ruby-rspec))) (synopsis "Retrieve the source code for Ruby methods") (description "Method_source retrieves the source code for Ruby methods. Additionally, it can extract source code from Proc and Lambda objects or just diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm index 3745a8377c..e7a0c4fab2 100644 --- a/gnu/packages/rust-apps.scm +++ b/gnu/packages/rust-apps.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com> ;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.ccom> ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,6 +34,8 @@ #:use-module (gnu packages crates-io) #:use-module (gnu packages crates-graphics) #:use-module (gnu packages documentation) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages gtk) #:use-module (gnu packages jemalloc) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) @@ -90,6 +93,47 @@ highlighting for a large number of languages, git integration, and automatic paging.") (license (list license:expat license:asl2.0)))) +(define-public drill + (package + (name "drill") + (version "0.7.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "drill" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1m73d7rzi0p5c1hn0081d2235kcyapdza7h0vqf5jhnirpnjn793")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-async-trait" ,rust-async-trait-0.1) + ("rust-clap" ,rust-clap-2) + ("rust-colored" ,rust-colored-1) + ("rust-csv" ,rust-csv-1) + ("rust-futures" ,rust-futures-0.3) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-linked-hash-map" ,rust-linked-hash-map-0.5) + ("rust-num-cpus" ,rust-num-cpus-1) + ("rust-rand" ,rust-rand-0.7) + ("rust-regex" ,rust-regex-1) + ("rust-reqwest" ,rust-reqwest-0.10) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-tokio" ,rust-tokio-0.2) + ("rust-url" ,rust-url-2) + ("rust-yaml-rust" ,rust-yaml-rust-0.4)))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("openssl" ,openssl))) + (home-page "https://github.com/fcsonline/drill") + (synopsis "HTTP load testing application") + (description + "Drill is a HTTP load testing application written in Rust inspired by +Ansible syntax. Benchmark files can be written in YAML.") + (license license:gpl3))) + (define-public exa (package (name "exa") @@ -458,46 +502,117 @@ gitignore rules.") (base32 "13jzbmjz1bmmfr0i80hw6ar484mgabx3hbpb2ynhk0ddqi0yr58m")))))) +(define-public tectonic + (package + (name "tectonic") + (version "0.4.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "tectonic" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "16fm2bfvfizrydmirzf0bhr1fidb5slcbvr6150and8yqr8jc4lf")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-app-dirs2" ,rust-app-dirs2-2) + ("rust-atty" ,rust-atty-0.2) + ("rust-byte-unit" ,rust-byte-unit-4) + ("rust-cbindgen" ,rust-cbindgen-0.16) + ("rust-cc" ,rust-cc-1) + ("rust-cfg-if" ,rust-cfg-if-1) + ("rust-error-chain" ,rust-error-chain-0.12) + ("rust-flate2" ,rust-flate2-1) + ("rust-fs2" ,rust-fs2-0.4) + ("rust-headers" ,rust-headers-0.2) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-md-5" ,rust-md-5-0.9) + ("rust-pkg-config" ,rust-pkg-config-0.3) + ("rust-regex" ,rust-regex-1) + ("rust-reqwest" ,rust-reqwest-0.9) + ("rust-serde" ,rust-serde-1) + ("rust-sha2" ,rust-sha2-0.9) + ("rust-structopt" ,rust-structopt-0.3) + ("rust-tectonic-cfg-support" ,rust-tectonic-cfg-support-0.1) + ("rust-tectonic-xdv" ,rust-tectonic-xdv-0.1) + ("rust-tempfile" ,rust-tempfile-3) + ("rust-termcolor" ,rust-termcolor-1) + ("rust-toml" ,rust-toml-0.5) + ("rust-vcpkg" ,rust-vcpkg-0.2) + ("rust-zip" ,rust-zip-0.5)) + #:cargo-development-inputs + (("rust-filetime" ,rust-filetime-0.2) + ("rust-futures" ,rust-futures-0.1) + ("rust-headers" ,rust-headers-0.2) + ("rust-hyper" ,rust-hyper-0.12) + ("rust-tempfile" ,rust-tempfile-3) + ("rust-tokio" ,rust-tokio-0.1)) + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/" ,name "-" ,version))) + (copy-recursively "docs/src" doc) + #t)))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("fontconfig" ,fontconfig) + ("harfbuzz" ,harfbuzz) + ("openssl" ,openssl) + ("zlib" ,zlib))) + (home-page "https://tectonic-typesetting.github.io/") + (synopsis "Complete, embeddable TeX/LaTeX engine") + (description + "This package provides a modernized, complete, embeddable +TeX/LaTeX engine. Tectonic is forked from the XeTeX extension to the +classic Web2C implementation of TeX and uses the TeXLive distribution +of support files.") + (license license:expat))) + (define-public tokei (package (name "tokei") - (version "10.1.1") + (version "12.1.2") (source - (origin - (method url-fetch) - (uri (crate-uri "tokei" version)) - (file-name - (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "07f5laqw2k9l3k8wrg9h8p2m5d9hkfxngyacwrn3vs7mlnw8l81m")))) + (origin + (method url-fetch) + (uri (crate-uri "tokei" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "000w549v1bpw7r57xw656p40ywf1gimvxxx5cjnri2js0xg927x4")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs - (("rust-clap" ,rust-clap-2) - ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.4) - ("rust-dirs" ,rust-dirs-2.0) + (("rust-aho-corasick" ,rust-aho-corasick-0.7) + ("rust-clap" ,rust-clap-2) + ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5) + ("rust-dashmap" ,rust-dashmap-4) + ("rust-dirs" ,rust-dirs-3) ("rust-encoding-rs-io" ,rust-encoding-rs-io-0.1) - ("rust-env-logger" ,rust-env-logger-0.7) + ("rust-env-logger" ,rust-env-logger-0.8) ("rust-grep-searcher" ,rust-grep-searcher-0.1) ("rust-hex" ,rust-hex-0.4) ("rust-ignore" ,rust-ignore-0.4) ("rust-log" ,rust-log-0.4) + ("rust-num-format" ,rust-num-format-0.4) + ("rust-once-cell" ,rust-once-cell-1) + ("rust-parking-lot" ,rust-parking-lot-0.11) ("rust-rayon" ,rust-rayon-1) + ("rust-regex" ,rust-regex-1) ("rust-serde" ,rust-serde-1) - ("rust-serde-cbor" ,rust-serde-cbor-0.10) - ("rust-serde-derive" ,rust-serde-derive-1) + ("rust-serde-cbor" ,rust-serde-cbor-0.11) ("rust-serde-json" ,rust-serde-json-1) ("rust-serde-yaml" ,rust-serde-yaml-0.8) + ("rust-tera" ,rust-tera-1) ("rust-term-size" ,rust-term-size-0.3) ("rust-toml" ,rust-toml-0.5)) #:cargo-development-inputs - (("rust-git2" ,rust-git2-0.11) - ("rust-handlebars" ,rust-handlebars-2.0) - ("rust-ignore" ,rust-ignore-0.4) - ("rust-lazy-static" ,rust-lazy-static-1) + (("rust-git2" ,rust-git2-0.13) ("rust-regex" ,rust-regex-1) - ("rust-serde-json" ,rust-serde-json-1) ("rust-tempfile" ,rust-tempfile-3)))) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index 679e2ab869..13e03d7ac7 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -443,51 +443,48 @@ key-value pair databases and a real LDAP database.") (license lgpl3+))) (define-public ppp - ;; This git commit contains unreleased fixes for CVE-2020-8597. - (let ((revision "1") - (commit "8d45443bb5c9372b4c6a362ba2f443d41c5636af")) - (package - (name "ppp") - (version (git-version "2.4.8" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/paulusmack/ppp") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "06cf8fb84l3h2zy5da4j7k2j1qjv2gfqn986sf43xgj75605aks2")))) - (build-system gnu-build-system) - (arguments - '(#:tests? #f ; no check target - #:make-flags '("CC=gcc") - #:phases - (modify-phases %standard-phases - (add-before 'configure 'patch-Makefile - (lambda* (#:key inputs #:allow-other-keys) - (let ((libc (assoc-ref inputs "libc")) - (openssl (assoc-ref inputs "openssl")) - (libpcap (assoc-ref inputs "libpcap"))) - (substitute* "pppd/Makefile.linux" - (("/usr/include/crypt\\.h") - (string-append libc "/include/crypt.h")) - (("/usr/include/openssl") - (string-append openssl "/include/openssl")) - (("/usr/include/pcap-bpf.h") - (string-append libpcap "/include/pcap-bpf.h"))) - #t)))))) - (inputs - `(("libpcap" ,libpcap) - ("openssl" ,(@ (gnu packages tls) openssl)))) - (synopsis "Implementation of the Point-to-Point Protocol") - (home-page "https://ppp.samba.org/") - (description - "The Point-to-Point Protocol (PPP) provides a standard way to establish + (package + (name "ppp") + (version "2.4.9") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/paulusmack/ppp") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1bhhksdclsnkw54a517ndrw55q5zljjbh9pcqz1z4a2z2flxpsgk")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no check target + #:make-flags '("CC=gcc") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-Makefile + (lambda* (#:key inputs #:allow-other-keys) + (let ((libc (assoc-ref inputs "libc")) + (openssl (assoc-ref inputs "openssl")) + (libpcap (assoc-ref inputs "libpcap"))) + (substitute* "pppd/Makefile.linux" + (("/usr/include/crypt\\.h") + (string-append libc "/include/crypt.h")) + (("/usr/include/openssl") + (string-append openssl "/include/openssl")) + (("/usr/include/pcap-bpf.h") + (string-append libpcap "/include/pcap-bpf.h"))) + #t)))))) + (inputs + `(("libpcap" ,libpcap) + ("openssl" ,(@ (gnu packages tls) openssl)))) + (synopsis "Implementation of the Point-to-Point Protocol") + (home-page "https://ppp.samba.org/") + (description + "The Point-to-Point Protocol (PPP) provides a standard way to establish a network connection over a serial link. At present, this package supports IP and IPV6 and the protocols layered above them, such as TCP and UDP.") - ;; pppd, pppstats and pppdump are under BSD-style notices. - ;; some of the pppd plugins are GPL'd. - ;; chat is public domain. - (license (list bsd-3 bsd-4 gpl2+ public-domain))))) + ;; pppd, pppstats and pppdump are under BSD-style notices. + ;; some of the pppd plugins are GPL'd. + ;; chat is public domain. + (license (list bsd-3 bsd-4 gpl2+ public-domain)))) diff --git a/gnu/packages/scribus.scm b/gnu/packages/scribus.scm index f699824a05..9a6b75333b 100644 --- a/gnu/packages/scribus.scm +++ b/gnu/packages/scribus.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com> -;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,6 +46,26 @@ #:use-module (gnu packages tls) #:use-module (gnu packages xml)) +(define podofo-for-scribus + (package + (inherit podofo) + (version "0.9.6") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/podofo/podofo/" version + "/podofo-" version ".tar.gz")) + (sha256 + (base32 "0wj0y4zcmj4q79wrn3vv3xq4bb0vhhxs8yifafwy9f2sjm83c5p9")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Fix the build with CMake 3.12.0. + (substitute* "test/TokenizerTest/CMakeLists.txt" + (("\\$\\{CMAKE_COMMAND\\}") + "true")) + #t)))))) + (define-public scribus (package (name "scribus") @@ -96,7 +116,9 @@ ("libxml2" ,libxml2) ("libzmf" ,libzmf) ("openssl" ,openssl) - ("podofo" ,podofo) + ;; Scribus 1.5.6.1 does not build with later versions, see + ;; <https://bugs.scribus.net/view.php?id=16427>. + ("podofo" ,podofo-for-scribus) ("poppler" ,poppler) ("python" ,python) ; need Python library ("qtbase" ,qtbase) diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm index 8293d562b3..e261e64a7f 100644 --- a/gnu/packages/search.scm +++ b/gnu/packages/search.scm @@ -49,14 +49,14 @@ (define-public xapian (package (name "xapian") - (version "1.4.17") + (version "1.4.18") ;; Note: When updating Xapian, remember to update xapian-bindings below. (source (origin (method url-fetch) (uri (string-append "https://oligarchy.co.uk/xapian/" version "/xapian-core-" version ".tar.xz")) (sha256 - (base32 "0bjpaavdckl4viznr8gbq476fvg648sj4rks2vacmc51vrb8bsxm")))) + (base32 "0xsb4ihf3p767f0zx9p4janwni6r9sg5j6lry0002i8hmnsdnv8r")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib) ("util-linux" ,util-linux "lib"))) @@ -94,7 +94,7 @@ rich set of boolean query operators.") "/xapian-bindings-" version ".tar.xz")) (sha256 (base32 - "1lzb739hjfy9ih2c0ircra50h4jr48wxq1fal7sai963w28mv9j8")))) + "13ziql8027glgihgvnbsa75vkcn82g83mbihj60zf0njj170clpy")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-python3") diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 0b4edbe452..5ee7add8b1 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -814,14 +814,14 @@ Shell (pdksh).") (define-public oil (package (name "oil") - (version "0.8.5") + (version "0.8.6") (source (origin (method url-fetch) (uri (string-append "https://www.oilshell.org/download/oil-" version ".tar.gz")) (sha256 - (base32 "02pw7x76jzfmk8fqs1k0pz7vwnkal458p93j4if0w0hg36xyx1j2")))) + (base32 "1g7ij3va9rlapfyl3zd08g2iffcr6b0n8b0zrp0bnxwvvnysl95h")))) (build-system gnu-build-system) (arguments `(#:strip-binaries? #f ; strip breaks the binary diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm index 1fd7d91eb9..51be1a30e8 100644 --- a/gnu/packages/skarnet.scm +++ b/gnu/packages/skarnet.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2015 Claes Wallin <claes.wallin@greatsinodevelopment.com> ;;; Copyright © 2016 Eric Le Bihan <eric.le.bihan.dev@free.fr> ;;; Copyright © 2017 Z. Ren <zren@dlut.edu.cn> -;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -30,14 +30,14 @@ (define-public skalibs (package (name "skalibs") - (version "2.9.3.0") + (version "2.10.0.0") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/skalibs/skalibs-" version ".tar.gz")) (sha256 - (base32 "0i1vg3bh0w3bpj7cv0kzs6q9v2dd8wa2by8h8j39fh1qkl20f6ph")))) + (base32 "122xipbxh6awsfdfj37mjc8f3g8ndmmmps4gw5s43mya8wgzib61")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests exist @@ -62,14 +62,14 @@ and file system operations. It is used by all skarnet.org software.") (define-public execline (package (name "execline") - (version "2.6.1.1") + (version "2.7.0.0") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/execline/execline-" version ".tar.gz")) (sha256 - (base32 "0mmsnai3bkyhng0cxdz6bf7d6b7kbsxs4p39m63215lz6kq0hhrr")))) + (base32 "0kl74yix60msgw8k3shhp9ymm80n91yxxqckixj5qbbhmylpnpqd")))) (build-system gnu-build-system) (inputs `(("skalibs" ,skalibs))) (arguments @@ -104,14 +104,14 @@ complexity."))) (define-public s6 (package (name "s6") - (version "2.9.2.0") + (version "2.10.0.0") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/s6/s6-" version ".tar.gz")) (sha256 - (base32 "1pfxx50shncg2s47ic4kp02jh1cxfjq75j3mnxjagyzzz0mbfg9n")))) + (base32 "0xzqrd0m3wjklmw1w3gjw5dcdxnhgvxv2r5wd6m2ismw2jprr9k0")))) (build-system gnu-build-system) (inputs `(("skalibs" ,skalibs) ("execline" ,execline))) @@ -150,14 +150,14 @@ functionality with a very small amount of code."))) (define-public s6-dns (package (name "s6-dns") - (version "2.3.3.0") + (version "2.3.4.0") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/s6-dns/s6-dns-" version ".tar.gz")) (sha256 - (base32 "05l74ciflaahlgjpvy1g0slydwqclxgybxrkpvdddd2yzwc5kira")))) + (base32 "03s94bc1y2yf0i3v3gh27xz3l2ycf246nb29mrf1zm4v9kdff5fn")))) (build-system gnu-build-system) (inputs `(("skalibs" ,skalibs))) (arguments @@ -179,14 +179,14 @@ as an alternative to the BIND, djbdns or other DNS clients."))) (define-public s6-networking (package (name "s6-networking") - (version "2.3.2.0") + (version "2.4.0.0") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/s6-networking/s6-networking-" version ".tar.gz")) (sha256 - (base32 "04kxj579pm4n5ifc3gfmrqj74vqqfqc82d69avzkn3yrc226mqxv")))) + (base32 "1yqykwfl5jnkxgr6skfj5kzd896pknij0hi5m7lj0r18jpfs5zgq")))) (build-system gnu-build-system) (inputs `(("skalibs" ,skalibs) ("execline" ,execline) @@ -222,14 +222,14 @@ clock synchronization."))) (define-public s6-rc (package (name "s6-rc") - (version "0.5.1.4") + (version "0.5.2.1") (source (origin (method url-fetch) (uri (string-append "https://skarnet.org/software/s6-rc/s6-rc-" version ".tar.gz")) (sha256 - (base32 "07q0ixpwsmj1v08l6vd7qywdg33zzn8vhm21kvp179bapdzs8sdg")))) + (base32 "02pszbi440wagx2qp8aqj9mv5wm2qisw9lkq7mbnbnxxw9azlhi8")))) (build-system gnu-build-system) (inputs `(("skalibs" ,skalibs) ("execline" ,execline) @@ -263,7 +263,7 @@ environment."))) (define-public s6-portable-utils (package (name "s6-portable-utils") - (version "2.2.3.0") + (version "2.2.3.1") (source (origin (method url-fetch) @@ -271,7 +271,7 @@ environment."))) "https://skarnet.org/software/s6-portable-utils/s6-portable-utils-" version ".tar.gz")) (sha256 - (base32 "063zwifigg2b3wsixdcz4h9yvr6fkqssvx0iyfsprjfmm1yapfi9")))) + (base32 "1ks1ch5v3p2z8y8wp5fmzzgjrqn2l5sj1sgfp8vv6wy8psd8mrj3")))) (build-system gnu-build-system) (inputs `(("skalibs" ,skalibs))) (arguments @@ -295,7 +295,7 @@ systems and other constrained environments, but they work everywhere."))) (define-public s6-linux-init (package (name "s6-linux-init") - (version "1.0.5.1") + (version "1.0.6.0") (source (origin (method url-fetch) @@ -303,7 +303,7 @@ systems and other constrained environments, but they work everywhere."))) "https://skarnet.org/software/s6-linux-init/s6-linux-init-" version ".tar.gz")) (sha256 - (base32 "1gkbjldf4f7i3vmv251f9hw7ma09nh8zkwjmqi2gplpkf7z3i34p")))) + (base32 "0kzif3dqhm7h4h7c6npzdbcy7w756222g8ysw116fgb8j385dr6w")))) (build-system gnu-build-system) (inputs `(("execline" ,execline) @@ -341,7 +341,7 @@ all the details."))) (define-public s6-linux-utils (package (name "s6-linux-utils") - (version "2.5.1.3") + (version "2.5.1.4") (source (origin (method url-fetch) @@ -349,7 +349,7 @@ all the details."))) "https://skarnet.org/software/s6-linux-utils/s6-linux-utils-" version ".tar.gz")) (sha256 - (base32 "0wbv02zxaami88xbj2zg63kspz05bbplswg0c6ncb5g9khf52wa4")))) + (base32 "02gxzc9igid2kf2rvm3v6kc9806mpjmdq7cpanv4cml0ip68vbfq")))) (build-system gnu-build-system) (inputs `(("skalibs" ,skalibs))) (arguments diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index c45544f52e..77cd629882 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Vicente Vera Parra <vicentemvp@gmail.com> ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> @@ -160,14 +160,14 @@ simulation not wholly unlike BUGS. JAGS was written with three aims in mind: (define-public libxls (package (name "libxls") - (version "1.5.3") + (version "1.6.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/libxls/libxls/releases/download/" "v" version "/libxls-" version ".tar.gz")) (sha256 - (base32 "0rl513wpq5qh7wkmdk4g9c68rzffv3mcbz48p4xyg4969zrx8lnm")))) + (base32 "0wg3ymr43aa1j3scyl9x83b2xgg7wilzpil0dj91a8dzji6w7b2x")))) (build-system gnu-build-system) (home-page "https://github.com/libxls/libxls") (synopsis "Read binary (.xls) Excel spreadsheet files") @@ -522,14 +522,14 @@ code for possible problems.") (define-public r-foreign (package (name "r-foreign") - (version "0.8-80") + (version "0.8-81") (source (origin (method url-fetch) (uri (cran-uri "foreign" version)) (sha256 (base32 - "0wjdi3qn9famsxmpdyyahidaid0yhxlpx4ad9k8vrxhxd6xspasp")))) + "0b4rca1bl8xxna05057hchbwfmgjgx0n140szabpc0raizqzks0s")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/foreign") (synopsis "Read data stored by other statistics software") @@ -586,14 +586,14 @@ also flexible enough to handle most nonstandard requirements.") (define-public r-matrix (package (name "r-matrix") - (version "1.2-18") + (version "1.3-2") (source (origin (method url-fetch) (uri (cran-uri "Matrix" version)) (sha256 (base32 - "06b1rc1vq65b271f2wpzhqkvhng8hwwnvjflzxkng50i52603zzp")))) + "0ccmmfd0lbvrhzjzr28k4yfawiywa1m4ics34zyi3rqq23csa2wm")))) (properties `((upstream-name . "Matrix"))) (build-system r-build-system) (propagated-inputs @@ -608,13 +608,13 @@ and operations on them using LAPACK and SuiteSparse.") (define-public r-nlme (package (name "r-nlme") - (version "3.1-150") + (version "3.1-151") (source (origin (method url-fetch) (uri (cran-uri "nlme" version)) (sha256 - (base32 "18qmbzrmrham8hbdlzsca7w46c5iqighx1ymzggll5s86c4s7kvr")))) + (base32 "1jl6x0glpyszy6bkbcggm3f10jl4kldhs5q561k85xcbssx2dim2")))) (build-system r-build-system) (propagated-inputs `(("r-lattice" ,r-lattice))) @@ -1112,13 +1112,13 @@ using just two functions: melt and dcast (or acast).") (define-public r-ggplot2 (package (name "r-ggplot2") - (version "3.3.2") + (version "3.3.3") (source (origin (method url-fetch) (uri (cran-uri "ggplot2" version)) (sha256 - (base32 "0wsib5qpzn4d0w1ss3x158xmrawkms8vvsfvr3mh40pvd8g2ibad")))) + (base32 "1k136k1sr6dq1xvx6gs6gzji6hbnnwnsb5qivsxrblfv90irxhj5")))) (build-system r-build-system) (propagated-inputs `(("r-digest" ,r-digest) @@ -1175,14 +1175,14 @@ agnes cluster diagrams.") (define-public r-gdtools (package (name "r-gdtools") - (version "0.2.2") + (version "0.2.3") (source (origin (method url-fetch) (uri (cran-uri "gdtools" version)) (sha256 (base32 - "08njzin0c6biw62j5w30r9j85vr1m2cg4hmv5d76nym860yrlqjf")))) + "1p3ip0qwpg8f63jfx0b8vbac6l20ddid8xvxzkfi6i858pybnawp")))) (build-system r-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -1268,14 +1268,16 @@ evaluation (NSE) in R.") (define-public r-dbi (package (name "r-dbi") - (version "1.1.0") + (version "1.1.1") (source (origin (method url-fetch) (uri (cran-uri "DBI" version)) (sha256 (base32 - "1r03j9rdcxb9bhxk40dkmy10ikz4yzsxhy3f9k9ix3x577xbfvd9")))) + "0i0kfyg43nryyka2bjlgz4x75w965224qp36wz1hl7a2lswb6ajp")))) (build-system r-build-system) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://github.com/rstats-db/DBI") (synopsis "R database interface") (description @@ -1288,13 +1290,13 @@ R/DBMS implementations.") (define-public r-bh (package (name "r-bh") - (version "1.72.0-3") + (version "1.75.0-0") (source (origin (method url-fetch) (uri (cran-uri "BH" version)) (sha256 (base32 - "1ay8vb6i730lipg8b8g3893vqglhw2kqpc29lwdrxdkb66iw33l8")))) + "0nkgvl5qjs2a7jv0ncsrl4fqaw2pdaj7a1pncdv6kp874sci0k5f")))) (build-system r-build-system) (home-page "https://github.com/eddelbuettel/bh") (synopsis "R package providing subset of Boost headers") @@ -1583,13 +1585,13 @@ R packages that praise their users.") (define-public r-testthat (package (name "r-testthat") - (version "3.0.0") + (version "3.0.1") (source (origin (method url-fetch) (uri (cran-uri "testthat" version)) (sha256 (base32 - "069ixg03r1s85my9dbc9c1261i4gz8fc1mv67whi2l6kpbp4cjzh")))) + "1l1s4jgmgbsf711ma5i58ssgkz98an7hijcxvwfz314nf5fc8zr9")))) (build-system r-build-system) (propagated-inputs `(("r-brio" ,r-brio) @@ -1645,13 +1647,13 @@ defined in different packages.") (define-public r-rlang (package (name "r-rlang") - (version "0.4.9") + (version "0.4.10") (source (origin (method url-fetch) (uri (cran-uri "rlang" version)) (sha256 (base32 - "0qix6jigz3qqjx151fpv1k5hq2miqyakvm3jql2qqsyr9d1028yr")))) + "0ximv89f6zymnwms121k1jfvvflrdm3pmmf5xyvz56f1qiq04lq7")))) (build-system r-build-system) (home-page "http://rlang.tidyverse.org") (synopsis "Functions for base types, core R and Tidyverse features") @@ -1663,14 +1665,14 @@ like tidy evaluation.") (define-public r-tibble (package (name "r-tibble") - (version "3.0.4") + (version "3.0.5") (source (origin (method url-fetch) (uri (cran-uri "tibble" version)) (sha256 (base32 - "189yyl27mnswk1z51xw6gj3lyxgy6m332jq8xyvwskff57w2w692")))) + "142i34h53b8w8jkh3l8y3xsqfvvgp7ybfbv830bjky7cymxjvj8w")))) (build-system r-build-system) (propagated-inputs `(("r-cli" ,r-cli) @@ -1695,13 +1697,13 @@ and printing capabilities than traditional data frames.") (define-public r-dplyr (package (name "r-dplyr") - (version "1.0.2") + (version "1.0.3") (source (origin (method url-fetch) (uri (cran-uri "dplyr" version)) (sha256 (base32 - "0jnw18nw20gw3jvq3kvkf9mqn6b7mvgmys8g6350k5jwpygk5cbw")))) + "0hc4wnx70mrsb3s0k5ywffhnky3hznlrvvs22m6ls5crgvcak898")))) (build-system r-build-system) (propagated-inputs `(("r-ellipsis" ,r-ellipsis) @@ -1850,13 +1852,13 @@ times.") (define-public r-data-table (package (name "r-data-table") - (version "1.13.4") + (version "1.13.6") (source (origin (method url-fetch) (uri (cran-uri "data.table" version)) (sha256 (base32 - "0jrvl5b8qbzmiymhjgbj4l2nai87ijvv33aw24xvzjx0rkys9dv1")))) + "16ryrpzl86krww5nx7a97i09y5xqld4lw4d9pa1vzjl99x6ds36m")))) (build-system r-build-system) (inputs `(("zlib" ,zlib))) @@ -2125,14 +2127,14 @@ limited to R.") (define-public r-backports (package (name "r-backports") - (version "1.2.0") + (version "1.2.1") (source (origin (method url-fetch) (uri (cran-uri "backports" version)) (sha256 (base32 - "1xgp4i6yxkh2viia96hlf004hn47yrhfivwf8wv63xdldqa8yj9v")))) + "1mf2nz78l97lbxyagv55bcxrny51ds8g28h307cfa1g3ayylp0x2")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/backports") (synopsis "Reimplementations of functions introduced since R 3.0.0") @@ -2409,13 +2411,13 @@ functions make it easy to control additional request components.") (define-public r-git2r (package (name "r-git2r") - (version "0.27.1") + (version "0.28.0") (source (origin (method url-fetch) (uri (cran-uri "git2r" version)) (sha256 (base32 - "1h1vfzym6hi1fqs9p5z5v0f4xldggr425frw8k6dsidah3qhg4h9")))) + "1wjmbs9cmm16pm3g0rmqp7cxxyh95m5lgx4fx5bpgj6j466i8vff")))) (build-system r-build-system) (inputs `(("libgit2" ,libgit2) @@ -2494,13 +2496,13 @@ tools to simplify the devolpment of R packages.") (define-public r-withr (package (name "r-withr") - (version "2.3.0") + (version "2.4.0") (source (origin (method url-fetch) (uri (cran-uri "withr" version)) (sha256 (base32 - "1837vjp35npjrnis1im5xrwj1swpgnms00gkjiz7296l8yckrh1c")))) + "1y0l6zbpg0wix60r58yk452aqvx4rd0bk7zw9b90lzniwk3wvr7d")))) (build-system r-build-system) (native-inputs `(("r-knitr" ,r-knitr))) @@ -2515,18 +2517,20 @@ were originally a part of the r-devtools package.") (define-public r-hms (package (name "r-hms") - (version "0.5.3") + (version "1.0.0") (source (origin (method url-fetch) (uri (cran-uri "hms" version)) (sha256 (base32 - "1baki0qw5ijgiflvsdvqj3apg4yanf12vx14kwbqdzk5rz46fasf")))) + "0qn9lvpkqrpxck88nf0zbff43vd7d6s1ibg58qfr3w14sw1yj14p")))) (build-system r-build-system) (propagated-inputs - `(("r-rlang" ,r-rlang) + `(("r-ellipsis" ,r-ellipsis) + ("r-lifecycle" ,r-lifecycle) ("r-pkgconfig" ,r-pkgconfig) + ("r-rlang" ,r-rlang) ("r-vctrs" ,r-vctrs))) (home-page "https://github.com/rstats-db/hms") (synopsis "Pretty time of day") @@ -2630,13 +2634,13 @@ well as additional utilities such as panel and axis annotation functions.") (define-public r-rcpparmadillo (package (name "r-rcpparmadillo") - (version "0.10.1.2.0") + (version "0.10.1.2.2") (source (origin (method url-fetch) (uri (cran-uri "RcppArmadillo" version)) (sha256 (base32 - "0nzi6plhdijx3khavmywzw9wbch0hj8kygphw35wdlslm4cnqcj1")))) + "0sfhk4mh39ab1y7pmlnijg4w65yz7pfsyjlqy931zdpjzh1kfciq")))) (properties `((upstream-name . "RcppArmadillo"))) (build-system r-build-system) (propagated-inputs @@ -2676,13 +2680,13 @@ vectors.") (define-public r-catools (package (name "r-catools") - (version "1.18.0") + (version "1.18.1") (source (origin (method url-fetch) (uri (cran-uri "caTools" version)) (sha256 (base32 - "0y1kgyiy322yhb0phzwvf2zgjz9awp13lhzhk9v1ddg88656jhq3")))) + "1yf98x2gaf84y9m32xrg84g384zlfwsdw7wvywdljpgdpvzs9szz")))) (properties `((upstream-name . "caTools"))) (build-system r-build-system) (propagated-inputs @@ -2722,13 +2726,13 @@ certain criterion, e.g., it contains a certain regular file.") (define-public r-rmarkdown (package (name "r-rmarkdown") - (version "2.5") + (version "2.6") (source (origin (method url-fetch) (uri (cran-uri "rmarkdown" version)) (sha256 - (base32 "0vmd1kykd4p1nwqbvra34sld5brac0wxb1zmav4wxj05shy67bd5")))) + (base32 "1c7nrpnv2v43msv7nia90rjh6s5x9m5wlb3mpiwy04fyfb29krz6")))) (properties `((upstream-name . "rmarkdown"))) (build-system r-build-system) (propagated-inputs @@ -2837,13 +2841,13 @@ a column in data frame.") (define-public r-rsqlite (package (name "r-rsqlite") - (version "2.2.1") + (version "2.2.2") (source (origin (method url-fetch) (uri (cran-uri "RSQLite" version)) (sha256 (base32 - "0lynli9144dzb9vhxssba20v7z5h2nirawpvvy8ykv4n3ir7qlsl")))) + "0wx8awxfd4q4mb5dk261rf7zd7y2lcm121fplay0vxl697yym719")))) (properties `((upstream-name . "RSQLite"))) (build-system r-build-system) (propagated-inputs @@ -3034,14 +3038,14 @@ statements.") (define-public r-segmented (package (name "r-segmented") - (version "1.3-0") + (version "1.3-1") (source (origin (method url-fetch) (uri (cran-uri "segmented" version)) (sha256 (base32 - "1a9nnlf8j8j4ik34z19x187s8ki7pv1aayr344jrpn3h6m8fk3x5")))) + "0g8l1i31zfqamvwc5j537k3ld6dr5z81p84grdlqq41gywmyidmr")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/segmented") (synopsis "Regression models with breakpoints estimation") @@ -3194,13 +3198,13 @@ using the multicore functionality of the parallel package.") (define-public r-dt (package (name "r-dt") - (version "0.16") + (version "0.17") (source (origin (method url-fetch) (uri (cran-uri "DT" version)) (sha256 (base32 - "0in4d34nxb4pk2jygj0a21cqf0k0m4dhm4rjv68bnkp5kmmz6kbk")))) + "0mpvyfmi2viyhdqx11hznd7dl0q6kxrdmppjsmm2pk0x8a904hz3")))) (properties `((upstream-name . "DT"))) (build-system r-build-system) @@ -3273,13 +3277,13 @@ analysis of large sparse or dense matrices.") (define-public r-glmnet (package (name "r-glmnet") - (version "4.0-2") + (version "4.1") (source (origin (method url-fetch) (uri (cran-uri "glmnet" version)) (sha256 - (base32 "0qdswxvdwjcnw0by15p9yfzw8laq4f2j0ivpma6q8c5zywldpxxc")))) + (base32 "1js01qnznm20h4pslaw1ragxhrzk0w4nw7r6ryg7i27l344za2lg")))) (build-system r-build-system) (native-inputs `(("gfortran" ,gfortran) @@ -3779,14 +3783,14 @@ and tidyr provides no margins or aggregation.") (define-public r-hexbin (package (name "r-hexbin") - (version "1.28.1") + (version "1.28.2") (source (origin (method url-fetch) (uri (cran-uri "hexbin" version)) (sha256 (base32 - "1ry6jm3lqz3mj0s5rzbs6mpkz2hxpnvbw8c1vwc4pj7b173r5l22")))) + "0bbhs5pwxh474w62sq6gqvih7habancxng9wd4f2rgn6lv9zhhb2")))) (build-system r-build-system) (propagated-inputs `(("r-lattice" ,r-lattice))) @@ -3827,13 +3831,13 @@ features present in other programming languages.") (define-public r-plotly (package (name "r-plotly") - (version "4.9.2.1") + (version "4.9.3") (source (origin (method url-fetch) (uri (cran-uri "plotly" version)) (sha256 (base32 - "1f0x83a2s7200iqi6gpngijks06fcvcbm6701d5r5rxpb8rawppl")))) + "0801i2q7sw62x734d58h9p2fwpi1hirqj73gsg18pqkdv4b1lkfl")))) (build-system r-build-system) (propagated-inputs `(("r-base64enc" ,r-base64enc) @@ -3842,7 +3846,6 @@ features present in other programming languages.") ("r-data-table" ,r-data-table) ("r-dplyr" ,r-dplyr) ("r-ggplot2" ,r-ggplot2) - ("r-hexbin" ,r-hexbin) ("r-htmltools" ,r-htmltools) ("r-htmlwidgets" ,r-htmlwidgets) ("r-httr" ,r-httr) @@ -3856,6 +3859,7 @@ features present in other programming languages.") ("r-scales" ,r-scales) ("r-tibble" ,r-tibble) ("r-tidyr" ,r-tidyr) + ("r-vctrs" ,r-vctrs) ("r-viridislite" ,r-viridislite))) (home-page "https://plot.ly/r") (synopsis "Create interactive web graphics") @@ -4137,14 +4141,14 @@ existing packages provide.") (define-public r-sfsmisc (package (name "r-sfsmisc") - (version "1.1-7") + (version "1.1-8") (source (origin (method url-fetch) (uri (cran-uri "sfsmisc" version)) (sha256 (base32 - "12g6m8sf17q3qmm133nm4fa296w5n5d9ly3fvb2nvc0w4llkif3l")))) + "198zpkz1gvw954ym8669svrk81yb49j6fyk5i6a7dw07z3snlmdn")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/sfsmisc") (synopsis "Utilities from \"Seminar fuer Statistik\" ETH Zurich") @@ -4532,14 +4536,14 @@ Farebrother's algorithm or Liu et al.'s algorithm.") (define-public r-cowplot (package (name "r-cowplot") - (version "1.1.0") + (version "1.1.1") (source (origin (method url-fetch) (uri (cran-uri "cowplot" version)) (sha256 (base32 - "04d5pg4xi9nhgcbam71b5mp3q1g804ng864v90add1kddfyl3f9h")))) + "0j7d5vhzdxn1blrsfafx5z8lhq122rp8230hp9czrpsnnhjydp67")))) (build-system r-build-system) (propagated-inputs `(("r-ggplot2" ,r-ggplot2) @@ -4789,14 +4793,14 @@ can be efficiently implemented directly in the R language.") (define-public r-robustbase (package (name "r-robustbase") - (version "0.93-6") + (version "0.93-7") (source (origin (method url-fetch) (uri (cran-uri "robustbase" version)) (sha256 (base32 - "1cr478xi4n9jwsdpbq182a7ig47rpb413q28dz6d1am08sk6657a")))) + "0mh9d114p3jdrjf8yn4dx5ff41niz5wn411y0ckjcpnazp8d44c9")))) (build-system r-build-system) (native-inputs `(("gfortran" ,gfortran))) @@ -4969,13 +4973,13 @@ groupings.") (define-public r-vgam (package (name "r-vgam") - (version "1.1-4") + (version "1.1-5") (source (origin (method url-fetch) (uri (cran-uri "VGAM" version)) (sha256 - (base32 "1iwrpyhz3khgw904zxz3pn7d61zvkd5m22gimzk57f8jjplxh1zm")))) + (base32 "1fx123h4x5awzshv0m4jqbbllrdjfpslb2i8gl9phm1y1wahn69h")))) (properties `((upstream-name . "VGAM"))) (build-system r-build-system) (native-inputs @@ -5036,14 +5040,14 @@ based on an interface to Fortran implementations by M. J. D. Powell.") (define-public r-rcppeigen (package (name "r-rcppeigen") - (version "0.3.3.7.0") + (version "0.3.3.9.1") (source (origin (method url-fetch) (uri (cran-uri "RcppEigen" version)) (sha256 (base32 - "1b78qcjim0n9klgkr82n794d6bj9r9f33g0kcsszsns2hir65sk2")))) + "0qp9gypar280lm84pc8w0fxw4jgwqygwi3qnl5sl52kpkcj8c14a")))) (properties `((upstream-name . "RcppEigen"))) (build-system r-build-system) (propagated-inputs @@ -5106,13 +5110,13 @@ using modular prediction and response module classes.") (define-public r-quantreg (package (name "r-quantreg") - (version "5.75") + (version "5.82") (source (origin (method url-fetch) (uri (cran-uri "quantreg" version)) (sha256 - (base32 "05mb1qmwah5sdgg2z7m36lqkh479phvb1cx4sjnv1ykvmi9alxv5")))) + (base32 "01wcai04asr0wcfm001whihwbbx3b3r1m65ngknj82nh6hg4xhza")))) (build-system r-build-system) (native-inputs `(("gfortran" ,gfortran))) @@ -5196,20 +5200,25 @@ C++ library for numerical linear algebra and RcppEigen glue.") (define-public r-pbkrtest (package (name "r-pbkrtest") - (version "0.4-8.6") + (version "0.5-0.1") (source (origin (method url-fetch) (uri (cran-uri "pbkrtest" version)) (sha256 (base32 - "0s5xhhrhv5i9680lw6af9lj2x4jc3fygmzzk0jjpxnb8g4b3p1jz")))) + "0sgl8r74cknmp8lnq5jvc1w181274ylgk6w4pxf4mzkfii42argm")))) (build-system r-build-system) (propagated-inputs - `(("r-lme4" ,r-lme4) + `(("r-broom" ,r-broom) + ("r-dplyr" ,r-dplyr) + ("r-lme4" ,r-lme4) ("r-magrittr" ,r-magrittr) ("r-mass" ,r-mass) - ("r-matrix" ,r-matrix))) + ("r-matrix" ,r-matrix) + ("r-numderiv" ,r-numderiv))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "http://people.math.aau.dk/~sorenh/software/pbkrtest/") (synopsis "Methods for linear mixed model comparison") (description @@ -5526,14 +5535,14 @@ easy and fun.") (define-public r-fdrtool (package (name "r-fdrtool") - (version "1.2.15") + (version "1.2.16") (source (origin (method url-fetch) (uri (cran-uri "fdrtool" version)) (sha256 (base32 - "1h46frlk7d9f4qx0bg6p55nrm9wwwz2sv6d1nz7061wdfsm69yb5")))) + "1aap4k1l3a9m43374xq688mqnzkgqx8l021li262r3h1xr4adpp7")))) (build-system r-build-system) (home-page "http://strimmerlab.org/software/fdrtool/") (synopsis "Estimation of false discovery rates and higher criticism") diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm index efe231c92f..54fa221fa6 100644 --- a/gnu/packages/syndication.scm +++ b/gnu/packages/syndication.scm @@ -56,7 +56,7 @@ (define-public newsboat (package (name "newsboat") - (version "2.22") + (version "2.22.1") (source (origin (method url-fetch) @@ -64,7 +64,7 @@ "/newsboat-" version ".tar.xz")) (sha256 (base32 - "146p3j46hna1m8zlacb9q1ljnldwv6xrjbaplm94f2x0v4azi1jj")))) + "1476fmfw2hkrjwyr3f7k9316lzwnn2b1dbc51rybcxipqlfg8849")))) (build-system cargo-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -191,6 +191,7 @@ file system, and many more features.") (uri (git-reference (url "https://github.com/lwindolf/liferea/") (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 "1g9463bvswsm899j6dfhslcg6np70m5wq143mjicr24zy8d17bm7")))) (build-system glib-or-gtk-build-system) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 74e1937bbc..e6a7d6b16d 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -21,7 +21,7 @@ ;;; Copyright © 2020 Valentin Ignatev <valentignatev@gmail.com> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Marius Bakke <marius@gnu.org> -;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2020 Leo Famulari <leo@famulari.name> ;;; ;;; This file is part of GNU Guix. @@ -1242,7 +1242,7 @@ made by suckless.") ("rust-unicode-width" ,rust-unicode-width-0.1) ("rust-parking-lot" ,rust-parking-lot-0.9) ("rust-urlocator" ,rust-urlocator-0.1) - ("rust-xdg" ,rust-xdg-2.2) + ("rust-xdg" ,rust-xdg-2) ("rust-image" ,rust-image-0.22) ("rust-dirs" ,rust-dirs-2.0) ("rust-x11-dl" ,rust-x11-dl-2) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 3c5f08196e..bdf881f643 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2018, 2020 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com> +;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -824,6 +825,33 @@ originals.") (define-public texlive-fonts-cm-super (deprecated-package "texlive-fonts-cm-super" texlive-cm-super)) +(define-public texlive-courier + (package + (inherit (simple-texlive-package + "texlive-courier" + (list "/dvips/courier/" + "/fonts/afm/adobe/courier/" + "/fonts/afm/urw/courier/" + "/fonts/map/dvips/courier/" + "/fonts/tfm/adobe/courier/" + "/fonts/tfm/urw35vf/courier/" + "/fonts/type1/adobe/courier/" + "/fonts/type1/urw/courier/" + "/fonts/vf/adobe/courier/" + "/fonts/vf/urw35vf/courier/" + "/tex/latex/courier/" + "/tex4ht/ht-fonts/alias/adobe/courier/" + "/tex4ht/ht-fonts/unicode/adobe/courier/") + (base32 + "1hfgisdi7mjf5156ax6d6zsbiq42zkmp1x5lg17rgzf61k6d6z1y") + #:trivial? #t)) + (home-page "https://ctan.org/pkg/urw-base35") + (synopsis "URW Base 35 font pack for LaTeX") + (description "This package provides a drop-in replacements for the Courier +font from Adobe's basic set.") + ;; No license version specified. + (license license:gpl3+))) + (define-public texlive-lm (package (inherit (simple-texlive-package @@ -1291,6 +1319,32 @@ described in the TeXbook, together with various supporting files (some also discussed in the book).") (license license:knuth))) +(define-public texlive-helvetic + (package + (inherit (simple-texlive-package + "texlive-helvetic" + (list "/dvips/helvetic/" + "/fonts/afm/adobe/helvetic/" + "/fonts/afm/urw/helvetic/" + "/fonts/map/dvips/helvetic/" + "/fonts/tfm/adobe/helvetic/" + "/fonts/tfm/monotype/helvetic/" + "/fonts/tfm/urw35vf/helvetic/" + "/fonts/type1/urw/helvetic/" + "/fonts/vf/adobe/helvetic/" + "/fonts/vf/monotype/helvetic/" + "/fonts/vf/urw35vf/helvetic/" + "/tex/latex/helvetic/") + (base32 + "0c3f1ly7y6404z0akbfbbfql13sz717v0n0g69qjpr69hi4n0nsl") + #:trivial? #t)) + (home-page "https://ctan.org/pkg/urw-base35") + (synopsis "URW Base 35 font pack for LaTeX") + (description "This package provides a drop-in replacements for the Helvetica +font from Adobe's basic set.") + ;; No license version specified. + (license license:gpl3+))) + (define-public texlive-hyphen-afrikaans (package (inherit (texlive-hyphen-package @@ -3535,6 +3589,29 @@ distribution.") (description "This is a very limited subset of the TeX Live distribution. It includes little more than the required set of LaTeX packages."))) +(define-public texlive-tipa + (package + (inherit (simple-texlive-package + "texlive-tipa" + (list "/tex4ht/ht-fonts/alias/tipa/" + "/doc/fonts/tipa/" + "/fonts/map/dvips/tipa/" + "/fonts/source/public/tipa/" + "/fonts/tfm/public/tipa/" + "/fonts/type1/public/tipa/" + "/tex/latex/tipa/") + (base32 + "1h53dscv8z6fsa0ax5dys3x11b2f1g60l22hpdf7c88cvdhcs8sn") + #:trivial? #t)) + (home-page "https://www.ctan.org/pkg/tipa") + (synopsis "Fonts and macros for IPA phonetics characters") + (description "These fonts are considered the \"ultimate answer\" to IPA +typesetting. The encoding of these 8-bit fonts has been registered as LaTeX +standard encoding T3, and the set of addendum symbols as encoding +TS3. \"Times-like\" Adobe Type 1 versions are provided for both the T3 and the +TS3 fonts.") + (license license:lppl))) + (define-public texlive-latex-amsrefs (package (name "texlive-latex-amsrefs") @@ -5353,6 +5430,56 @@ alternative version of the Kurier fonts. The difference lies in the absence of ink traps which typify the Kurier font.") (license license:gfl1.0))) +(define-public texlive-jknappen + (package + (inherit (simple-texlive-package + "texlive-jknappen" + (list "/fonts/source/jknappen/" + "/fonts/tfm/jknappen/" + "/fonts/source/jknappen/" + "/fonts/tfm/jknappen/" + "/tex4ht/ht-fonts/alias/jknappen/" + "/tex4ht/ht-fonts/unicode/jknappen/") + (base32 + "1v5wk5il41bddzr81h5636h3cjz0w1qann5g9garsb7qfch9fhws") + #:trivial? #t)) + (home-page "https://www.ctan.org/pkg/jknappen") + (synopsis "Miscellaneous packages by Jörg Knappen") + (description + "This package contains a collection of macros by Jörg Knappen: +@table @code +@item greekctr +New counterstyles @code{\\greek} and @code{\\Greek}. +@item holtpolt +Non-commutative fractions +@item latin1jk +@itemx latin2jk +@itemx latin3jk +Inputenc definition files that allow verbatim input in the respective ISO +Latin codes. +@item mathbol +Blackboard bold fonts for use in maths. +@item mathrsfs +Mathematical script letters, as traditionally used in physics for Lagrangian, +Hamiltonian, path integral measures, etc. +@item parboxx +New alignment options for parboxen at top and bottom of the box. +@item sans +Interchanges the roles of sans serif and roman fonts throughout the document. +@item semtrans +Support for special latin letters and diacritics used in transliteration of +semitic languages +@item smartmn +Intelligent hyphen/minus, which guesses whether to render as hyphen or minus. +@item sgmlcmpt +Commands replacing the characters <, >, and &. +@item tccompat +A compatibility package for users of the older versions of the textcomp package. +@item young +Simple Young tableaux. +@end table") + (license license:gpl2))) ;per the 00readme_txt file. + (define-public texlive-libertine (package (inherit (simple-texlive-package @@ -5504,6 +5631,32 @@ CM-Super family of fonts. The package also offers its own LaTeX support for OT2 encoded fonts, CM bright shaped fonts and Concrete shaped fonts.") (license license:lppl))) +(define-public texlive-marvosym + (package + (inherit (simple-texlive-package + "texlive-marvosym" + (list "/doc/fonts/marvosym/" + "/fonts/afm/public/marvosym/" + "/fonts/map/dvips/marvosym/" + "/fonts/tfm/public/marvosym/" + "/fonts/truetype/public/marvosym/" + "/fonts/type1/public/marvosym/" + "/tex/latex/marvosym/") + (base32 + "0m3bbg06cia8ni86fjhvb7x4a5qcxgnpqcvicfms91w2px9ysc46") + #:trivial? #t)) + (home-page "https://martinvogel.de/blog/index.php?\ +/archives/131-Marvosym.ttf.html") + (synopsis "Martin Vogel's Symbols (marvosym) font") + (description "The Martin Vogel’s Symbols fonts (marvosym) contains the +Euro currency symbol as defined by the European commission, along with symbols +for structural engineering, symbols for steel cross-sections, astronomy +signs (sun, moon, planets), the 12 signs of the zodiac, scissor symbols, CE +sign and others. This package contains both the original TrueType font and +the derived Type 1 font, together with support files for TeX (LaTeX).") + (license (list license:lppl ;for TeX support files + license:silofl1.1)))) ;for fonts + (define-public texlive-metapost (package (name "texlive-metapost") @@ -5592,6 +5745,24 @@ Association for Computing Machinery (ACM).") get a narrower “natural” width.") (license license:lppl))) +(define-public texlive-wasy + (package + (inherit (simple-texlive-package + "texlive-wasy" + (list "/fonts/source/public/wasy/" + "/fonts/tfm/public/wasy/" + "/tex/plain/wasy/" + "/doc/fonts/wasy/") + (base32 + "10dxbqgv42niybj65hj6y47x8lsl83m48rgw2v2s50k05wbghwbm") + #:trivial? #t)) + (home-page "https://www.ctan.org/pkg/wasy") + (synopsis "Waldi symbol fonts") + (description "This package provides the @code{wasy} (Waldi symbol) fonts, +in the Metafont and Adobe Type 1 formats. Support under LaTeX is provided by +the @code{wasysym} package.") + (license license:public-domain))) + (define-public texlive-latex-wasysym (package (name "texlive-latex-wasysym") @@ -5606,12 +5777,12 @@ get a narrower “natural” width.") (build-system texlive-build-system) (arguments '(#:tex-directory "latex/wasysym")) (home-page "https://www.ctan.org/pkg/wasysym") - (synopsis "LaTeX support file to use the WASY2 fonts") + (synopsis "LaTeX support file to use the @code{wasy} fonts") (description - "The wasy2WASY2 (Waldi Symbol) font by Roland Waldi provides many glyphs -like male and female symbols and astronomical symbols, as well as the complete -lasy font set and other odds and ends. The wasysym package implements an easy -to use interface for these symbols.") + "The @code{wasy} (Waldi Symbol) font by Roland Waldi provides many glyphs like +male and female symbols and astronomical symbols, as well as the complete +@code{lasy} font set and other odds and ends. The @code{wasysym} package +implements an easy to use interface for these symbols.") (license license:lppl))) (define-public texlive-latex-wrapfig diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 81915ca52b..052dfa1236 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2017 Feng Shu <tumashu@163.com> ;;; Copyright © 2017 Nikita <nikita@n0.is> ;;; Copyright © 2014 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.org> -;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> @@ -230,7 +230,7 @@ bindings and many of the powerful features of GNU Emacs.") (define-public jucipp (package (name "jucipp") - (version "1.6.1") + (version "1.6.2") (home-page "https://gitlab.com/cppit/jucipp") (source (origin (method git-fetch) @@ -242,7 +242,7 @@ bindings and many of the powerful features of GNU Emacs.") (recursive? #t))) (file-name (git-file-name name version)) (sha256 - (base32 "0lb477acqrm3fy3j6i7j9l68j48cnkrzi80588npwwjssqicy4g6")))) + (base32 "10idv2kyw2dg45wfcnh7nybs8qys7kfvif90sjrff3541k97pm5y")))) (build-system cmake-build-system) (arguments `(#:configure-flags '("-DBUILD_TESTING=ON" diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 5eaaf2681e..f53ca9b11b 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -6,12 +6,12 @@ ;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2016, 2019 Eric Bavier <bavier@member.fsf.org> -;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2018, 2020 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2015, 2017, 2018, 2020 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2017, 2018 Nikita <nikita@n0.is> -;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017, 2020 EuAndreh <eu@euandre.org> @@ -1683,14 +1683,14 @@ history. It implements the changeset evolution concept for Mercurial.") (define-public neon (package (name "neon") - (version "0.30.2") + (version "0.31.2") (source (origin (method url-fetch) - (uri (string-append "http://www.webdav.org/neon/neon-" + (uri (string-append "https://notroj.github.io/neon/neon-" version ".tar.gz")) (sha256 (base32 - "1jpvczcx658vimqm7c8my2q41fnmjaf1j03g7bsli6rjxk6xh2yv")))) + "0y46dbhiblcvg8k41bdydr3fivghwk73z040ki5825d24ynf67ng")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl) @@ -1704,11 +1704,12 @@ history. It implements the changeset evolution concept for Mercurial.") ;; https://sourceware.org/bugzilla/show_bug.cgi?id=16475 #:tests? #f #:configure-flags '("--enable-shared" + "--disable-static" ;; requires libgnutils-config, deprecated ;; in gnutls 2.8. ; "--with-ssl=gnutls"))) "--with-ssl=openssl"))) - (home-page "http://www.webdav.org/neon/") + (home-page "https://notroj.github.io/neon/") (synopsis "HTTP and WebDAV client library") (description "Neon is an HTTP and WebDAV client library, with a C interface and the @@ -1937,7 +1938,7 @@ standards-compliant ChangeLog entries based on the changes that it detects.") (define-public diffstat (package (name "diffstat") - (version "1.63") + (version "1.64") (source (origin (method url-fetch) (uri @@ -1948,7 +1949,7 @@ standards-compliant ChangeLog entries based on the changes that it detects.") "diffstat-" version ".tgz"))) (sha256 (base32 - "0vyw200s5dv1257pmrh6c6fdkmw3slyz5szpqfx916xr04sdbpby")))) + "1z7pwcv48fjnhxrjcsjdy83x8b9ckl582mbbds90a79fkn6y7bmq")))) (build-system gnu-build-system) (home-page "https://invisible-island.net/diffstat/") (synopsis "Make histograms from the output of @command{diff}") diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 824ea62273..cebb70d28e 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -41,7 +41,7 @@ ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2020 Alex McGrath <amk@amk.ie> -;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro> @@ -885,14 +885,14 @@ H.264 (MPEG-4 AVC) video streams.") (define-public mkvtoolnix (package (name "mkvtoolnix") - (version "51.0.0") + (version "52.0.0") (source (origin (method url-fetch) (uri (string-append "https://mkvtoolnix.download/sources/" "mkvtoolnix-" version ".tar.xz")) (sha256 - (base32 "0w2crz6wnfw18m9m4zrij1yplcq5drzhz8n58w9kp51wl48a0yn1")) + (base32 "15y7ahlifsclnkl70wn5w34dil8nwcwcjnw3k2ydqc6dz4vb0j5s")) (modules '((guix build utils))) (snippet '(begin ;; Delete bundled libraries. @@ -914,6 +914,7 @@ H.264 (MPEG-4 AVC) video streams.") ("file" ,file) ("flac" ,flac) ("fmt" ,fmt) + ("libdvdread" ,libdvdread) ("libmatroska" ,libmatroska) ("libogg" ,libogg) ("libvorbis" ,libvorbis) @@ -1765,7 +1766,7 @@ videoformats depend on the configuration flags of ffmpeg.") (define-public vlc (package (name "vlc") - (version "3.0.11.1") + (version "3.0.12") (source (origin (method url-fetch) (uri (string-append @@ -1775,7 +1776,7 @@ videoformats depend on the configuration flags of ffmpeg.") (patches (search-patches "vlc-qt-5.15.patch")) (sha256 (base32 - "1f46h0hv7fk35zg4iczlp7ib7h2jmh8m4r5klw3g2558ib9134qq")))) + "0ygqihw2c5vvzv8950dlf7rdwz1cpz1668jgyja604ljibrmix7g")))) (build-system gnu-build-system) (native-inputs `(("flex" ,flex) @@ -2193,14 +2194,14 @@ To load this plugin, specify the following option when starting mpv: (define-public youtube-dl (package (name "youtube-dl") - (version "2021.01.08") + (version "2021.01.16") (source (origin (method url-fetch) (uri (string-append "https://youtube-dl.org/downloads/latest/" "youtube-dl-" version ".tar.gz")) (sha256 (base32 - "1k870v9xc7g16nvixa272sdjnmc7pl49ymmnn6rdz0mcj2548h3k")) + "1q8pvw5j45k8nvr3d9rvnhi6xaj1mdqlkrg7q7qq6zciq5r54fhi")) (snippet '(begin ;; Delete the pre-generated files, except for the man page @@ -3074,7 +3075,7 @@ be used for realtime video capture via Linux-specific APIs.") (define-public obs (package (name "obs") - (version "26.1.1") + (version "26.1.2") (source (origin (method git-fetch) (uri (git-reference @@ -3083,7 +3084,7 @@ be used for realtime video capture via Linux-specific APIs.") (file-name (git-file-name name version)) (sha256 (base32 - "18b40ayww5isjqnjz63l05fi5xwzrcc64jvwxwq8nqsydn0b14ng")))) + "1k1asqiqw757v59ayx0w029ril947hs0lcp8n91knzjl891fr4nc")))) (build-system cmake-build-system) (arguments `(#:configure-flags @@ -4156,7 +4157,7 @@ It counts more than 100 plugins.") (define-public motion (package (name "motion") - (version "4.2.2") + (version "4.3.2") (home-page "https://motion-project.github.io/") (source (origin (method git-fetch) @@ -4165,7 +4166,7 @@ It counts more than 100 plugins.") (commit (string-append "release-" version)))) (sha256 (base32 - "05c1gx75xy2hw49x6vkydvwxbr80kipsc3nr906k3hq8735svx6f")) + "09xs815jsivcilpmnrx2jkcxirj4lg5kp99fkr0p2sdxw03myi95")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (native-inputs @@ -4182,7 +4183,7 @@ It counts more than 100 plugins.") '(#:phases (modify-phases %standard-phases (replace 'bootstrap (lambda _ - (patch-shebang "version.sh") + (patch-shebang "scripts/version.sh") (invoke "autoreconf" "-vfi")))) #:configure-flags '("--sysconfdir=/etc") #:make-flags (list (string-append "sysconfdir=" diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 10eae8ea7d..2262aa6197 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -137,13 +137,28 @@ (method url-fetch) (uri (string-append "https://download.qemu.org/qemu-" version ".tar.xz")) - (sha256 - (base32 - "1rd41wwlvp0vpialjp2czs6i3lsc338xc72l3zkbb7ixjfslw5y9")) - (patches (search-patches "qemu-build-info-manual.patch")))) - (outputs '("out" "doc")) ;4.7 MiB of HTML docs - (build-system gnu-build-system) - (arguments + (sha256 + (base32 + "1rd41wwlvp0vpialjp2czs6i3lsc338xc72l3zkbb7ixjfslw5y9")) + (patches (search-patches "qemu-build-info-manual.patch")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Fix a bug in the do_ioctl_ifconf() function of qemu to + ;; make ioctl(…, SIOCGIFCONF, …) work for emulated 64 bit + ;; architectures. The size of struct ifreq is handled + ;; incorrectly. + ;; https://lists.nongnu.org/archive/html/qemu-devel/2021-01/msg01545.html + (substitute* '("linux-user/syscall.c") + (("^([[:blank:]]*)const argtype ifreq_arg_type.*$" line indent) + (string-append line indent + "const argtype ifreq_max_type[] = { MK_STRUCT(STRUCT_ifmap_ifreq) };\n")) + (("^([[:blank:]]*)target_ifreq_size[[:blank:]]=.*$" _ indent) + (string-append indent "target_ifreq_size = thunk_type_size(ifreq_max_type, 0);"))) + #t)))) + (outputs '("out" "doc")) ;4.7 MiB of HTML docs + (build-system gnu-build-system) + (arguments `(;; FIXME: Disable tests on i686 to work around ;; <https://bugs.gnu.org/40527>. #:tests? ,(or (%current-target-system) @@ -952,7 +967,7 @@ all common programming languages. Vala bindings are also provided.") (define-public lxc (package (name "lxc") - (version "4.0.5") + (version "4.0.6") (source (origin (method url-fetch) (uri (string-append @@ -960,7 +975,7 @@ all common programming languages. Vala bindings are also provided.") version ".tar.gz")) (sha256 (base32 - "1976l9308rx1ria1gazasypk5rmmf5jiqdh54dfrws5bslbdcb5g")))) + "0qz4l7mlhq7hx53q606qgvkyzyr01glsw290v8ppzvxn1fydlrci")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -1604,7 +1619,7 @@ Open Container Initiative (OCI) image layout and its tagged images.") (define-public skopeo (package (name "skopeo") - (version "1.2.0") + (version "1.2.1") (source (origin (method git-fetch) (uri (git-reference @@ -1613,7 +1628,7 @@ Open Container Initiative (OCI) image layout and its tagged images.") (file-name (git-file-name name version)) (sha256 (base32 - "1v7k3ki10i6082r7zswblyirx6zck674y6bw3plssw4p1l2611rd")))) + "1y9pmijazbgxzriymrm7zrifmkd1x1wad9b3zjcj7zwr6c999dhg")))) (build-system go-build-system) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 632a925c64..a42913250c 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -45,7 +45,7 @@ ;;; Copyright © 2018, 2019, 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; Copyright © 2020, 2021 Paul Garlick <pgarlick@tourbillion-technology.com> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> -;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com> +;;; Copyright © 2020, 2021 Ryan Prior <rprior@protonmail.com> ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro> ;;; ;;; This file is part of GNU Guix. @@ -1478,7 +1478,7 @@ used to validate and fix HTML data.") (define-public esbuild (package (name "esbuild") - (version "0.8.29") + (version "0.8.32") (source (origin (method git-fetch) @@ -1487,7 +1487,7 @@ used to validate and fix HTML data.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "142gc21aaqmx0d01vmqsg7zi85pjgi3higr4ba0m52qf3mvxd6as")) + (base32 "17aa269dq0gsm4nlhh1q2mj6k8mw6v8ig3nygwk3s07l2xl5gqvn")) (modules '((guix build utils))) (snippet '(begin @@ -3995,7 +3995,7 @@ is limited to http and https.") (define-public perl-net-http (package (name "perl-net-http") - (version "6.19") + (version "6.20") (source (origin (method url-fetch) (uri (string-append @@ -4003,7 +4003,7 @@ is limited to http and https.") "Net-HTTP-" version ".tar.gz")) (sha256 (base32 - "1i1gbcwdzx74whn5vn6xbr2cp7frldfz2rfrcjp2qljr770nxdsj")))) + "07lzfycza7qqxli18xgsnqwiwxapl0b64z33wfw62aai4hm7nllj")))) (build-system perl-build-system) (propagated-inputs `(("perl-io-socket-ssl" ,perl-io-socket-ssl) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index e1359c8539..084822f2c7 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -15,7 +15,7 @@ ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com> ;;; Copyright © 2017, 2019, 2020 Marius Bakke <marius@gnu.org> ;;; Copyright © 2017, 2020 Oleg Pykhalov <go.wigust@gmail.com> -;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr> ;;; Copyright © 2018, 2019 Meiyo Peng <meiyo@riseup.net> ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com> @@ -1301,14 +1301,14 @@ its size (define-public polybar (package (name "polybar") - (version "3.5.3") + (version "3.5.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/polybar/polybar/releases/" "download/" version "/polybar-" version ".tar.gz")) (sha256 - (base32 "1016g4b981c4hl2pr0m09b4wy0ln1zf3mfp09wrxs73zgfdbngyj")))) + (base32 "0awwjp3l0y9yhmrl914710ipawp2xr43jxrvmnanahlznblg8fhk")))) (build-system cmake-build-system) (arguments ;; Test is disabled because it requires downloading googletest from the diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 1c91068b25..79ba61b344 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -2265,7 +2265,7 @@ Xwrits hides itself until you should take another break.") (define-public xsettingsd (package (name "xsettingsd") - (version "1.0.0") + (version "1.0.2") (source (origin (method git-fetch) @@ -2274,8 +2274,7 @@ Xwrits hides itself until you should take another break.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "05m4jlw0mgwp24cvyklncpziq1prr2lg0cq9c055sh4n9d93d07v")))) + (base32 "14gnkz18dipsa2v24f4nm9syxaa7g21iqjm7y65jn849ka2jr1h8")))) (build-system scons-build-system) (inputs `(("libx11" ,libx11))) diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 2192f61dc7..c8dd66b2e0 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -7,13 +7,13 @@ ;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Petter <petter@mykolab.ch> ;;; Copyright © 2017 Nikita <nikita@n0.is> -;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com> ;;; Copyright © 2019 L p R n d n <guix@lprndn.info> ;;; Copyright © 2019 Ingo Ruhnke <grumbel@gmail.com> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de> -;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -54,6 +54,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages polkit) #:use-module (gnu packages popt) + #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages search) @@ -100,7 +101,7 @@ (define-public libxfce4util (package (name "libxfce4util") - (version "4.14.0") + (version "4.16.0") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -108,7 +109,7 @@ "/" name "-" version ".tar.bz2")) (sha256 (base32 - "093338faqqsrlc8dkmzr7qv411ysxczg1wlg7s3gvhrfk6vpkb9j")))) + "10svnpc8ggasym1pfgh24bfr0ndqs6lc7v1wmpsizj0zbms8snb0")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -126,7 +127,7 @@ Xfce Desktop Environment.") (define-public xfconf (package (name "xfconf") - (version "4.14.4") + (version "4.16.0") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -134,12 +135,17 @@ Xfce Desktop Environment.") "xfconf-" version ".tar.bz2")) (sha256 (base32 - "0wszp93z64112jq5wm4133s64in2ndvnzbgsbn8dh7p5xhp64dyc")))) + "09al5bkq89b8pb3xyxnw0cnz6crxj8678ymwq2k9nzf60y812ak5")))) (build-system gnu-build-system) (arguments '(#:phases ;; Run check after install phase to test dbus activation. (modify-phases %standard-phases + ;; tests-end seems to hang forever + (add-before 'configure 'patchout-tests-end + (lambda _ + (substitute* "tests/Makefile.in" + (("tests-end") "")))) (add-after 'install 'custom-check (lambda _ (setenv "HOME" (getenv "TMPDIR")) ; xfconfd requires a writable HOME @@ -147,8 +153,15 @@ Xfce Desktop Environment.") (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service (string-append %output "/share")) ;; For the missing '/etc/machine-id'. - (setenv "DBUS_FATAL_WARNINGS" "0"); + (setenv "DBUS_FATAL_WARNINGS" "0") (invoke "dbus-launch" "make" "check"))) + (add-after 'custom-check 'install-shell-completions + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (etc (string-append out "/etc"))) + (with-directory-excursion "completions" + (install-file "xfconf-query" + (string-append etc "/bash_completion.d")))))) (delete 'check)))) (native-inputs `(("pkg-config" ,pkg-config) @@ -172,7 +185,7 @@ storage system.") (define-public libxfce4ui (package (name "libxfce4ui") - (version "4.14.1") + (version "4.16.0") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -180,7 +193,7 @@ storage system.") name "-" version ".tar.bz2")) (sha256 (base32 - "1npjhznmnckhnylsv3l7p1zvhckhmp9d7vifs8w12kdfmrg0fjf4")))) + "1anfj3n28abv9kbcpybs7q3k5g3c3d0r4xf4hyfqms2b9zlwj1lb")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -191,14 +204,11 @@ storage system.") ("gobject-introspection" ,gobject-introspection))) (propagated-inputs `(("gtk+-3" ,gtk+) ; required by libxfce4ui-2.pc - ;; libxfce4kbd-private-2.pc refers to all these. + ;; libxfce4kbd-private-3.pc refers to all these. ("libxfce4util" ,libxfce4util) ("xfconf" ,xfconf))) (inputs `(("libsm" ,libsm) ("libice" ,libice) - ;; FIXME: required by libxfce4ui-1.pc, so should be propagated, - ;; but will lead to a conflict with gtk+. - ("gtk+-2" ,gtk+-2) ("startup-notification" ,startup-notification))) (home-page "https://www.xfce.org/") (synopsis "Widgets library for Xfce") @@ -268,7 +278,7 @@ it to your needs by using several command line options.") (define-public elementary-xfce-icon-theme (package (name "elementary-xfce-icon-theme") - (version "0.15.1") + (version "0.15.2") (source (origin (method git-fetch) (uri @@ -278,7 +288,7 @@ it to your needs by using several command line options.") (file-name (git-file-name name version)) (sha256 (base32 - "1rl15kh9c7qxw4pvwmw44fb4v3vwh6zin4wpx55bnvm5j76y6p3f")))) + "1g6vndqvp11c2kl5vkpzb1wxvr2pfb3hvqxjjdgx6qzq9x8zmiqk")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no check target @@ -303,7 +313,7 @@ upstream occasionally.") (define-public exo (package (name "exo") - (version "0.12.11") + (version "4.16.0") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -311,21 +321,8 @@ upstream occasionally.") "exo-" version ".tar.bz2")) (sha256 (base32 - "1dp5s64g6572h9zvx9js7qc72s728qsd9y7hl7hg6rwaq0cjb2gc")))) + "1k5sfm9cmg8k5zzzv0wb2cciqwwklnpfzcpak7wa32lsxl7b0x8r")))) (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - ;; exo won't find URI::Escape otherwise - (add-after 'install 'wrap-exo-compose-mail - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (perl5lib (getenv "PERL5LIB"))) - (wrap-program (string-append out "/lib/xfce4/exo/exo-compose-mail") - `("PERL5LIB" ":" prefix - (,(string-append perl5lib ":" out - "/lib/perl5/site_perl"))))) - #t))))) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool))) @@ -334,10 +331,7 @@ upstream occasionally.") `(("gtk+-3" ,gtk+) ("libxfce4util" ,libxfce4util))) (inputs - `(;; FIXME Referred to in exo-1.pc but conflict with gtk+-3. - ("gtk+-2" ,gtk+-2) - ("libxfce4ui" ,libxfce4ui) - ("perl-uri" ,perl-uri))) + `(("libxfce4ui" ,libxfce4ui))) (home-page "https://www.xfce.org/") (synopsis "Extension library for Xfce") (description @@ -350,7 +344,7 @@ development.") (define-public garcon (package (name "garcon") - (version "0.7.0") + (version "4.16.1") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -358,14 +352,13 @@ development.") "garcon-" version ".tar.bz2")) (sha256 (base32 - "08r4dfvdvl178cjajm7ww16lwb7jsfqh3yz614mn84c0a0dvdhw2")))) + "07fjsgdjqxbcm84ga3cl495782k381k6mwksyrks3zf1l8klk4c4")))) (build-system gnu-build-system) (native-inputs - `(("pkg-config" ,pkg-config) + `(("glib:bin" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) ("intltool" ,intltool) - ("glib:bin" ,glib "bin"))) - (inputs - `(("gtk+-2" ,gtk+-2))) ; required by garcon-gtk2-1.pc + ("pkg-config" ,pkg-config))) (propagated-inputs `(("gtk+-3" ,gtk+) ; required by garcon-gtk3-1.pc ("libxfce4ui" ,libxfce4ui))) ; required by garcon-gtk3-1.pc @@ -381,7 +374,7 @@ merging features essential for loading menus modified with menu editors.") (define-public tumbler (package (name "tumbler") - (version "0.2.9") + (version "4.16.0") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -389,7 +382,7 @@ merging features essential for loading menus modified with menu editors.") "tumbler-" version ".tar.bz2")) (sha256 (base32 - "1dh7h0jcbf8brvv9vwq4amnk6zgldl2ipdq3clzsx9p50dpr0235")))) + "0rmga1l7da0pjrs6jlyq1nfn513r543v7cchshrif1341knpy2wv")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -420,7 +413,7 @@ management D-Bus specification.") (define-public xfce4-panel (package (name "xfce4-panel") - (version "4.14.0") + (version "4.16.0") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -428,7 +421,7 @@ management D-Bus specification.") name "-" version ".tar.bz2")) (sha256 (base32 - "1x3flv86jh9vqah7mr5mmfx2991mc6icsqjygsc3j88lgsyz7y6m")) + "0gf57hgx6v44bc2hj570inkafbi291scc6wbhmr6sc3xngp9m5sy")) (patches (search-patches "xfce4-panel-plugins.patch")))) (build-system gnu-build-system) (arguments @@ -577,7 +570,7 @@ keys for controlling the audio volume.") (define-public xfce4-whiskermenu-plugin (package (name "xfce4-whiskermenu-plugin") - (version "2.5.1") + (version "2.5.2") (source (origin (method url-fetch) @@ -585,7 +578,7 @@ keys for controlling the audio volume.") "xfce4-whiskermenu-plugin/" (version-major+minor version) "/" "xfce4-whiskermenu-plugin-" version ".tar.bz2")) (sha256 - (base32 "09b9i68pf5ghq6dj55s4h3fj07jd5zpn1fghjwnnwxmakj54y1xj")))) + (base32 "05f53ycbszvw23g76pbdszfnqfk4f8w4imwfgljj140wzl50gxx6")))) (build-system cmake-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -659,15 +652,16 @@ per window.") (define-public xfce4-appfinder (package (name "xfce4-appfinder") - (version "4.14.0") + (version "4.16.1") (source (origin (method url-fetch) - (uri (string-append "http://archive.xfce.org/xfce/" + (uri (string-append "https://archive.xfce.org/src/xfce/" + name "/" (version-major+minor version) - "/src/" name "-" version ".tar.bz2")) + "/" name "-" version ".tar.bz2")) (sha256 (base32 - "162dibl6ipp72x0s35yhk7kkzxd4qimagg5zdkkv5kjgjpa7bhby")))) + "1v77h5634n49idci2jiw0k7jjk0vzpsvgyx2fkp18l39jayykqxz")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -686,7 +680,7 @@ your system in categories, so you can quickly find and launch them.") (define-public xfce4-session (package (name "xfce4-session") - (version "4.14.2") + (version "4.16.0") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -694,7 +688,7 @@ your system in categories, so you can quickly find and launch them.") "xfce4-session-" version ".tar.bz2")) (sha256 (base32 - "1bwpylcn7x9i301yz45wvkzah9bncv9b44nf4hh9ln4i1jka9qzv")) + "1dqpgnq1hy9z170aapjglyp6jpyq1iqn5331nph727a82br77wi2")) (modules '((guix build utils))) (snippet '(begin @@ -731,7 +725,7 @@ allows you to shut down the computer from Xfce.") (define-public xfce4-settings (package (name "xfce4-settings") - (version "4.14.0") + (version "4.16.0") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -739,7 +733,7 @@ allows you to shut down the computer from Xfce.") name "-" version ".tar.bz2")) (sha256 (base32 - "0g0ipkg2fyg8r1z95ynx0xjr78bp49c2dwh4mli05nmb4gb40c70")) + "1hnx88a8xmi38mdf5gxdvx7n8yax1vzah8hy8g37bijlqx7l18b7")) (patches (search-patches "xfce4-settings-defaults.patch")))) (build-system gnu-build-system) (arguments @@ -758,7 +752,8 @@ allows you to shut down the computer from Xfce.") ("libxklavier" ,libxklavier) ("libxrandr" ,libxrandr) ("libxfce4ui" ,libxfce4ui) - ("upower" ,upower) + ("upower" ,upower) ;; TODO needs upower-glib + ("python" ,python) ;; for xfce4-compose-mail ("xf86-input-libinput" ,xf86-input-libinput))) (home-page "https://www.xfce.org/") (synopsis "Xfce settings manager") @@ -770,7 +765,7 @@ like appearance, display, keyboard and mouse settings.") (define-public thunar (package (name "thunar") - (version "1.8.16") + (version "4.16.2") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -778,13 +773,14 @@ like appearance, display, keyboard and mouse settings.") "thunar-" version ".tar.bz2")) (sha256 (base32 - "0k1w2zwa8z6sc8vi3frva74npks79x79n7q9p7ibwk7irfqkh4r2")))) + "1pbspa31q4kgydjzmssahq3k0wcy10ma466dlsd2y69nqjc0pab7")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool))) (inputs `(("exo" ,exo) + ("gobject-introspection" ,gobject-introspection) ("libexif" ,libexif) ("libgudev" ,libgudev) ("libnotify" ,libnotify) @@ -802,7 +798,7 @@ fast.") (define-public thunar-volman (package (name "thunar-volman") - (version "0.9.5") + (version "4.16.0") (source (origin (method url-fetch) @@ -810,7 +806,7 @@ fast.") (version-major+minor version) "/" "thunar-volman-" version ".tar.bz2")) (sha256 - (base32 "0dqqkbhn43hhmhqyx1fnmawpvysdjzw6ln4ryf629wil6dlwd9vy")))) + (base32 "0zaliahfz9ci2md7g6w9mb7z5azi5n56gihbnwyzvds2n8cygh6j")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -833,7 +829,7 @@ and import the new pictures from your camera.") (define-public xfwm4 (package (name "xfwm4") - (version "4.14.3") + (version "4.16.1") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -841,7 +837,7 @@ and import the new pictures from your camera.") "xfwm4-" version ".tar.bz2")) (sha256 (base32 - "1gw3fbiwraylarl1bqbvfh7nxlss5w8w0im5ahfg3a9mkrdfr6w2")))) + "133ip28v6j3x4l413d81ixsisf32sa0xzd54n0nn8g6p9fh4rcmm")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -863,7 +859,7 @@ on the screen.") (define-public xfdesktop (package (name "xfdesktop") - (version "4.14.3") + (version "4.16.0") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -871,7 +867,7 @@ on the screen.") "xfdesktop-" version ".tar.bz2")) (sha256 (base32 - "14sp5a4n21prwmh2l5mjq5fjaq7r2pbjxddfx4wzaix8867x1mq6")) + "1bjv2mpkv7zmpzssbvvzh0x4pn8cqm8dvhgsv5i1xwngzspsajwk")) (modules '((guix build utils))) (snippet #~(begin @@ -1007,7 +1003,7 @@ system resources, while still being visually appealing and user friendly.") (define-public xfce4-power-manager (package (name "xfce4-power-manager") - (version "1.7.1") + (version "4.16.0") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -1015,7 +1011,7 @@ system resources, while still being visually appealing and user friendly.") "xfce4-power-manager-" version ".tar.bz2")) (sha256 (base32 - "1ki088iyr266cfyq9bmmhhd27wrsrmbhsblyf4yqby03hlvqif3k")))) + "1wrvqiifaxsgcn1kh4vm2hwxi9lgm6mw4zrfld2zl0mm05y5i77b")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -1285,7 +1281,7 @@ A plugin for the Xfce panel is also available.") (define-public xfce4-screensaver (package (name "xfce4-screensaver") - (version "0.1.11") + (version "4.16.0") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/apps/" @@ -1295,7 +1291,7 @@ A plugin for the Xfce panel is also available.") version ".tar.bz2")) (sha256 (base32 - "0xxcvvcch8bqd35ksq8l88a46xnidp59iq4ssyygki0a2vd20h41")))) + "13962rkc7nn3yigv1km8w0z7g41kj2bxmrrwx2f6gnv27qz18kbd")))) (build-system gnu-build-system) (arguments `(#:phases @@ -1505,7 +1501,7 @@ precedence rules, and the following functions and common constants.") (define-public xfce4-cpufreq-plugin (package (name "xfce4-cpufreq-plugin") - (version "1.2.2") + (version "1.2.3") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/panel-plugins/" @@ -1514,7 +1510,7 @@ precedence rules, and the following functions and common constants.") "/xfce4-cpufreq-plugin-" version ".tar.bz2")) (sha256 (base32 - "16748wxy8aa5cxga0dbfrq7kv40alg5yx967r2l6vjapv2w083sh")))) + "1g07rpbq61dbdz0zvvb0xz6ipympxadwknn5y5q3v85k0nr9qfbx")))) (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) @@ -1922,7 +1918,7 @@ freedesktop.org specification.") (define-public xfce4-stopwatch-plugin (package (name "xfce4-stopwatch-plugin") - (version "0.4.0") + (version "0.5.0") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/panel-plugins/" @@ -1931,7 +1927,7 @@ freedesktop.org specification.") "/xfce4-stopwatch-plugin-" version ".tar.bz2")) (sha256 (base32 - "0jfr0ykn97hfngh0hd2wrs9rxswzxaxjv93g6csdp8hnij649nm3")))) + "1q840298jzdqlhc9lw49q32xzdhnbzcgvv69qq5slkc704s5w6vw")))) (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 3648aeed03..472dfedbb8 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -26,6 +26,8 @@ ;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com> ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2021 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -51,6 +53,7 @@ #:use-module (gnu packages curl) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) + #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) @@ -139,14 +142,14 @@ things the parser might find in the XML document (like start tags).") (define-public libebml (package (name "libebml") - (version "1.4.0") + (version "1.4.1") (source (origin (method url-fetch) (uri (string-append "https://dl.matroska.org/downloads/libebml/" "libebml-" version ".tar.xz")) (sha256 - (base32 "1cy4hbk8qbxn4c6pwvlsvr1rp8vhfach9rwfg4c50qa94nlckaw0")))) + (base32 "0ckhf7wcfwik1c8ilwipdr9p7b58pvqvj8x54l6slqah81lwd53f")))) (build-system cmake-build-system) (arguments `(#:configure-flags @@ -358,6 +361,86 @@ It uses libxml2 to access the XML files.") based on libxml for XML parsing, tree manipulation and XPath support.") (license license:x11))) +(define-public openjade + (package + (name "openjade") + (version "1.3.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/openjade/openjade/" + version "/" name "-" version ".tar.gz")) + (sha256 + (base32 + "1l92sfvx1f0wmkbvzv1385y1gb3hh010xksi1iyviyclrjb7jb8x")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list (string-append "--enable-spincludedir=" + (assoc-ref %build-inputs "opensp") + "/include/OpenSP") + (string-append "--enable-splibdir=" + (assoc-ref %build-inputs "opensp") "/lib") + ;; Workaround segfaults in OpenJade (see: + ;; https://bugs.launchpad.net/ubuntu/+source/openjade/+bug/1869734). + "CXXFLAGS=-O0") + #:parallel-build? #f ;build fails otherwise + ;; The test suite fails with diff errors between the actual and + ;; expected results, like: (char<? #\a #\A) returning #t rather than + ;; #f (see: https://sourceforge.net/p/openjade/bugs/150/). + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'replace-deprecated-getopt + ;; See: https://sourceforge.net/p/openjade/bugs/140/. + (lambda _ + (substitute* "msggen.pl" + (("use POSIX;") "use POSIX;\nuse Getopt::Std;") + (("do 'getopts.pl';") "") + (("&Getopts") "getopts")) + #t)) + (add-after 'replace-deprecated-getopt 'fix-locale-lookup + ;; See: https://sourceforge.net/p/openjade/bugs/149/. + (lambda _ + (substitute* "testsuite/expr-lang.dsl" + (("\\(language \"EN\" \"US\"\\)") + "(language \"EN\" \"US.UTF-8\")")) + #t)) + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + ;; TODO: Generate the manpage from source, with + ;; openjade-bootstrap and jadetex. See the file docsrc/Makefile. + (let* ((out (assoc-ref outputs "out")) + (man1 (string-append out "/share/man/man1"))) + (install-file "docsrc/openjade.1" man1) + #t))) + (add-after 'install-doc 'install-dtds + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (dtd (string-append out "/sgml/dtd"))) + (mkdir-p dtd) + (copy-recursively "dsssl" dtd) + #t))) + (delete 'check) + (add-after 'install 'check + (lambda* (#:key tests? out #:allow-other-keys) + (if tests? + (with-directory-excursion "testsuite" + (invoke "make")) + (format #t "test suite not run~%")) + #t))))) + (inputs + `(("opensp" ,opensp))) + (native-inputs + `(("perl" ,perl))) + (home-page "http://openjade.sourceforge.net/") + (synopsis "ISO/IEC 10179:1996 standard DSSSL language implementation") + (description "OpenJade is an implementation of Document Style Semantics +and Specification Language (DSSSL), a style language to format SGML or XML +documents. It contains backends for various formats such as RTF, HTML, TeX, +MIF, SGML2SGML, and FOT.") + (license (license:non-copyleft "file://COPYING" + "See COPYING in the distribution.")))) + (define-public perl-graph-readwrite (package (name "perl-graph-readwrite") @@ -2210,6 +2293,95 @@ server using HTTP, and gets back the response as XML. This library provides a modular implementation of XML-RPC for C and C++.") (license (list license:psfl license:expat)))) +(define-public opensp + (package + (name "opensp") + (version "1.5.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/openjade/opensp/" + version "/OpenSP-" version ".tar.gz")) + (sha256 + (base32 + "1khpasr6l0a8nfz6kcf3s81vgdab8fm2dj291n5r2s53k228kx2p")))) + (outputs '("out" "doc")) + (build-system gnu-build-system) + (native-inputs + `(("docbook-xml" ,docbook-xml-4.1.2) + ("docbook-xsl" ,docbook-xsl) + ("libxml2" ,libxml2) ;for XML_CATALOG_DIR + ("xmlto" ,xmlto) + ;; Dependencies to regenerate the 'configure' script. + ("autoconf" ,autoconf) + ("automake" ,automake) + ("gettext" ,gettext-minimal) + ("libtool" ,libtool))) + (arguments + `( ;; Note: we cannot use '--enable-full-doc-build' as this would require + ;; Openjade, which in turn requires this package. + + ;; Skip the tests that are known to fail (see: + ;; https://sourceforge.net/p/openjade/mailman/message/6182316/) + #:make-flags '("TESTS_THAT_FAIL=") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-docbook-paths + (lambda* (#:key inputs #:allow-other-keys) + (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml") + "/xml/dtd/docbook")) + (xsldoc (string-append (assoc-ref inputs "docbook-xsl") + "/xml/xsl/docbook-xsl-" + ,(package-version docbook-xsl)))) + (substitute* (find-files "docsrc" "\\.xml$") + (("/usr/share/sgml/docbook/xml-dtd-4.1.2") xmldoc) + (("http://.*/docbookx\\.dtd") + (string-append xmldoc "/docbookx.dtd"))) + #t))) + (add-after 'patch-docbook-paths 'delete-configure + ;; The configure script in the release was made with an older + ;; Autoconf and lacks support for the `--docdir' option. + (lambda _ + (delete-file "configure") + #t)) + (add-after 'delete-configure 'honor-docdir + ;; docdir is not honored due to being hardcoded in the various + ;; Makefile.am (see: https://sourceforge.net/p/openjade/bugs/147/). + (lambda _ + (substitute* '("Makefile.am" "doc/Makefile.am" "docsrc/Makefile.am") + (("^docdir = .*") "docdir = @docdir@\n")) + #t)) + (add-after 'delete-configure 'fix-tests-makefile.am + ;; Remove the trailing $(SHELL) from the TESTS_ENVIRONMENT variable + ;; definition. Otherwise, when targets are built using + ;; "$(am__check_pre) $(LOG_DRIVER) [...]", there would be two + ;; $(SHELL) expansion which fails the build. + (lambda _ + (substitute* "tests/Makefile.am" + (("^\tOSGMLNORM=`echo osgmlnorm\\|sed '\\$\\(transform\\)'`\\\\") + "\tOSGMLNORM=`echo osgmlnorm|sed '$(transform)'`") + (("^\t\\$\\(SHELL\\)\n") "")) + #t))))) + ;; $SGML_CATALOG_FILES lists 'catalog' or 'CATALOG' or '*.cat' files found + ;; under the 'sgml' sub-directory of any given package. + (native-search-paths (list (search-path-specification + (variable "SGML_CATALOG_FILES") + (separator ":") + (files '("sgml")) + (file-pattern "^catalog$|^CATALOG$|^.*\\.cat$") + (file-type 'regular)))) + (home-page "http://openjade.sourceforge.net/") + (synopsis "Suite of SGML/XML processing tools") + (description "OpenSP is an object-oriented toolkit for SGML parsing and +entity management. It is a fork of James Clark's SP suite. The tools it +contains can be used to parse, validate, and normalize SGML and XML files. +The central program included in this package is @code{onsgmls}, which replaces +@code{sgmls}, @code{ospam}, @code{ospent}, @code{osgmlnorm}, and @code{osx}.") + (license + ;; expat license with added clause regarding advertising + (license:non-copyleft + "file://COPYING" + "See COPYING in the distribution.")))) + (define-public python-elementpath (package (name "python-elementpath") diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 91bd915f71..ed98d1acd3 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -23,7 +23,7 @@ ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at> ;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de> -;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Jean-Baptiste Note <jean-baptiste.note@m4x.org> ;;; @@ -6252,14 +6252,14 @@ basic eye-candy effects.") (define-public xpra (package (name "xpra") - (version "4.0.5") + (version "4.0.6") (source (origin (method url-fetch) (uri (string-append "https://www.xpra.org/src/xpra-" version ".tar.xz")) (sha256 - (base32 "11ml66z8vbc0fa567kkmp2j20l5l60aflnkrz5ay8arw3w92nmnz")) + (base32 "1s49y2s75a8a70vj0micnmpic5zv1n32yjxy8fkxsqa6j5njyrww")) (patches (search-patches "xpra-4.0.1-systemd-run.patch")))) (build-system python-build-system) ;; see also http://xpra.org/trac/wiki/Dependencies @@ -6286,6 +6286,9 @@ basic eye-candy effects.") ("xf86-input-keyboard" ,xf86-input-keyboard) ("python-pillow" ,python-pillow) ;; Optional dependencies. + ("libx264" ,libx264) + ("x265" ,x265) + ("libvpx" ,libvpx) ("python-rencode" ,python-rencode) ; For speed. ("python-numpy" ,python-numpy) ("python-pyopengl" ,python-pyopengl) ; Drawing acceleration. diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 945b546607..f6a490f712 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015, 2016, 2020 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> @@ -279,7 +279,9 @@ system objects."))) (define root-file-system-service-type (shepherd-service-type 'root-file-system - (const %root-file-system-shepherd-service))) + (const %root-file-system-shepherd-service) + (description "Take care of syncing the root file +system and of remounting it read-only when the system shuts down."))) (define (root-file-system-service) "Return a service whose sole purpose is to re-mount read-only the root file @@ -570,7 +572,9 @@ down."))) (requirement '(udev)) (provision '(trng)) (start #~(make-forkexec-constructor '#$rngd-command)) - (stop #~(make-kill-destructor)))))) + (stop #~(make-kill-destructor)))) + (description "Run the @command{rngd} random number generation daemon to +supply entropy to the kernel's pool."))) (define* (rngd-service #:key (rng-tools rng-tools) @@ -597,7 +601,8 @@ to add @var{device} to the kernel's entropy pool. The service will fail if (provision '(host-name)) (start #~(lambda _ (sethostname #$name))) - (one-shot? #t))))) + (one-shot? #t))) + (description "Initialize the machine's host name."))) (define (host-name-service name) "Return a service that sets the host name to @var{name}." @@ -626,7 +631,8 @@ to add @var{device} to the kernel's entropy pool. The service will fail if (display 1 port)))) #t)) (stop #~(const #f))))) - #t)) ;default to UTF-8 + #t ;default to UTF-8 + (description "Ensure the Linux virtual terminals run in UTF-8 mode."))) (define console-keymap-service-type (shepherd-service-type @@ -638,7 +644,10 @@ to add @var{device} to the kernel's entropy pool. The service will fail if (start #~(lambda _ (zero? (system* #$(file-append kbd "/bin/loadkeys") #$@files)))) - (respawn? #f))))) + (respawn? #f))) + (description "@emph{This service is deprecated in favor of the +@code{keyboard-layout} field of @code{operating-system}.} Load the given list +of console keymaps with @command{loadkeys}."))) (define-deprecated (console-keymap-service #:rest files) #f @@ -1341,7 +1350,9 @@ Service Switch}, for an example." (pid (spawn))) (umask mask) pid)))) - (stop #~(make-kill-destructor)))))) + (stop #~(make-kill-destructor)))) + (description "Run the syslog daemon, @command{syslogd}, which is +responsible for logging system messages."))) ;; Snippet adapted from the GNU inetutils manual. (define %default-syslog.conf @@ -2207,7 +2218,8 @@ instance." (when device (restart-on-EINTR (swapoff device))) #f))) - (respawn? #f)))))) + (respawn? #f)))) + (description "Turn on the virtual memory swap area."))) (define (swap-service device) "Return a service that uses @var{device} as a swap device." @@ -2321,7 +2333,9 @@ This service is not part of @var{%base-services}." (requirement '(user-processes udev dbus-system)) (provision (list (symbol-append 'term- (string->symbol virtual-terminal)))) (start #~(make-forkexec-constructor #$kmscon-command)) - (stop #~(make-kill-destructor))))))) + (stop #~(make-kill-destructor))))) + (description "Start the @command{kmscon} virtual terminal emulator for the +Linux @dfn{kernel mode setting} (KMS)."))) (define-record-type* <static-networking> static-networking make-static-networking diff --git a/gnu/services/cups.scm b/gnu/services/cups.scm index e8957c6859..17ed04e58b 100644 --- a/gnu/services/cups.scm +++ b/gnu/services/cups.scm @@ -32,7 +32,7 @@ #:use-module (guix records) #:use-module (guix gexp) #:use-module (ice-9 match) - #:use-module ((srfi srfi-1) #:select (append-map)) + #:use-module ((srfi srfi-1) #:select (append-map find)) #:export (cups-service-type cups-configuration opaque-cups-configuration @@ -50,7 +50,13 @@ ;;; Code: (define %cups-accounts - (list (user-group (name "lp") (system? #t)) + (list (or + ;; The "lp" group should already exist; try to reuse it. + (find (lambda (group) + (and (user-group? group) + (string=? (user-group-name group) "lp"))) + %base-groups) + (user-group (name "lp") (system? #t))) (user-group (name "lpadmin") (system? #t)) (user-account (name "lp") @@ -482,7 +488,7 @@ programs.") (package cups) "The CUPS package.") (extensions - (package-list (list cups-filters epson-inkjet-printer-escpr + (package-list (list brlaser cups-filters epson-inkjet-printer-escpr foomatic-filters hplip-minimal splix)) "Drivers and other extensions to the CUPS package.") (files-configuration diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 9ec0f6a9ca..a4d4ac0646 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016, 2018, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 John Darrington <jmd@gnu.org> @@ -14,6 +14,7 @@ ;;; Copyright © 2019 Sou Bunnbu <iyzsong@member.fsf.org> ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> +;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -42,6 +43,7 @@ #:use-module (gnu packages admin) #:use-module (gnu packages base) #:use-module (gnu packages bash) + #:use-module (gnu packages cluster) #:use-module (gnu packages connman) #:use-module (gnu packages freedesktop) #:use-module (gnu packages linux) @@ -192,7 +194,11 @@ yggdrasil-configuration-log-level yggdrasil-configuration-log-to yggdrasil-configuration-json-config - yggdrasil-configuration-package)) + yggdrasil-configuration-package + + keepalived-configuration + keepalived-configuration? + keepalived-service-type)) ;;; Commentary: ;;; @@ -277,7 +283,9 @@ fe80::1%lo0 apps.facebook.com\n") (and (zero? (cdr (waitpid pid))) (read-pid-file #$pid-file))))) (stop #~(make-kill-destructor)))) - isc-dhcp)) + isc-dhcp + (description "Run @command{dhcp}, a Dynamic Host Configuration +Protocol (DHCP) client, on all the non-loopback network interfaces."))) (define-deprecated (dhcp-client-service #:key (dhcp isc-dhcp)) dhcp-client-service-type @@ -552,9 +560,7 @@ make an initial adjustment of more than 1,000 seconds." (constraint-from openntpd-constraint-from (default '())) (constraints-from openntpd-constraints-from - (default '())) - (allow-large-adjustment? openntpd-allow-large-adjustment? - (default #f))) ; upstream default + (default '()))) (define (openntpd-configuration->string config) @@ -586,8 +592,7 @@ make an initial adjustment of more than 1,000 seconds." "\n"))) ;add a trailing newline (define (openntpd-shepherd-service config) - (let ((openntpd (openntpd-configuration-openntpd config)) - (allow-large-adjustment? (openntpd-allow-large-adjustment? config))) + (let ((openntpd (openntpd-configuration-openntpd config))) (define ntpd.conf (plain-file "ntpd.conf" (openntpd-configuration->string config))) @@ -599,10 +604,7 @@ make an initial adjustment of more than 1,000 seconds." (start #~(make-forkexec-constructor (list (string-append #$openntpd "/sbin/ntpd") "-f" #$ntpd.conf - "-d" ;; don't daemonize - #$@(if allow-large-adjustment? - '("-s") - '())) + "-d") ;; don't daemonize ;; When ntpd is daemonized it repeatedly tries to respawn ;; while running, leading shepherd to disable it. To ;; prevent spamming stderr, redirect output to logfile. @@ -1865,4 +1867,43 @@ See yggdrasil -genconf for config options.") (service-extension profile-service-type (compose list yggdrasil-configuration-package)))))) + +;;; +;;; Keepalived +;;; + +(define-record-type* <keepalived-configuration> + keepalived-configuration make-keepalived-configuration + keepalived-configuration? + (keepalived keepalived-configuration-keepalived ;<package> + (default keepalived)) + (config-file keepalived-configuration-config-file ;file-like + (default #f))) + +(define keepalived-shepherd-service + (match-lambda + (($ <keepalived-configuration> keepalived config-file) + (list + (shepherd-service + (provision '(keepalived)) + (documentation "Run keepalived.") + (requirement '(loopback)) + (start #~(make-forkexec-constructor + (list (string-append #$keepalived "/sbin/keepalived") + "--dont-fork" "--log-console" "--log-detail" + "--pid=/var/run/keepalived.pid" + (string-append "--use-file=" #$config-file)) + #:pid-file "/var/run/keepalived.pid" + #:log-file "/var/log/keepalived.log")) + (respawn? #f) + (stop #~(make-kill-destructor))))))) + +(define keepalived-service-type + (service-type (name 'keepalived) + (extensions (list (service-extension shepherd-root-service-type + keepalived-shepherd-service))) + (description + "Run @uref{https://www.keepalived.org/, Keepalived} +routing software."))) + ;;; networking.scm ends here diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm index 1faeb350df..d2f9776288 100644 --- a/gnu/services/shepherd.scm +++ b/gnu/services/shepherd.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018 Carlo Zancanaro <carlo@zancanaro.id.au> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> @@ -119,23 +119,25 @@ ensuring they are started and stopped in the right order."))) (service shepherd-root-service-type '())) (define-syntax shepherd-service-type - (syntax-rules () + (syntax-rules (description) "Return a <service-type> denoting a simple shepherd service--i.e., the type for a service that extends SHEPHERD-ROOT-SERVICE-TYPE and nothing else. When DEFAULT is given, use it as the service's default value." - ((_ service-name proc default) + ((_ service-name proc default (description text)) (service-type (name service-name) (extensions (list (service-extension shepherd-root-service-type (compose list proc)))) - (default-value default))) - ((_ service-name proc) + (default-value default) + (description text))) + ((_ service-name proc (description text)) (service-type (name service-name) (extensions (list (service-extension shepherd-root-service-type - (compose list proc)))))))) + (compose list proc)))) + (description text))))) (define %default-imported-modules ;; Default set of modules imported for a service's consumption. diff --git a/gnu/services/syncthing.scm b/gnu/services/syncthing.scm new file mode 100644 index 0000000000..12ebe7c107 --- /dev/null +++ b/gnu/services/syncthing.scm @@ -0,0 +1,89 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu services syncthing) + #:use-module (gnu packages syncthing) + #:use-module (gnu services) + #:use-module (gnu services shepherd) + #:use-module (guix gexp) + #:use-module (guix records) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:export (syncthing-configuration + syncthing-configuration? + syncthing-service-type)) + +;;; Commentary: +;;; +;;; This module provides a service definition for the syncthing service. +;;; +;;; Code: + +(define-record-type* <syncthing-configuration> + syncthing-configuration make-syncthing-configuration + syncthing-configuration? + (syncthing syncthing-configuration-syncthing ;<package> + (default syncthing)) + (arguments syncthing-configuration-arguments ;list of strings + (default '())) + (logflags syncthing-configuration-logflags ;number + (default 0)) + (user syncthing-configuration-user ;string + (default #f)) + (group syncthing-configuration-group ;string + (default "users")) + (home syncthing-configuration-home ;string + (default #f))) + +(define syncthing-shepherd-service + (match-lambda + (($ <syncthing-configuration> syncthing arguments logflags user group home) + (list + (shepherd-service + (provision (list (string->symbol (string-append "syncthing-" user)))) + (documentation "Run syncthing.") + (requirement '(loopback)) + (start #~(make-forkexec-constructor + (append (list (string-append #$syncthing "/bin/syncthing") + "-no-browser" + "-no-restart" + (string-append "-logflags=" (number->string #$logflags))) + '#$arguments) + #:user #$user + #:group #$group + #:environment-variables + (append (list (string-append "HOME=" (or #$home (passwd:dir (getpw #$user)))) + "SSL_CERT_DIR=/etc/ssl/certs" + "SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt") + (remove (lambda (str) + (or (string-prefix? "HOME=" str) + (string-prefix? "SSL_CERT_DIR=" str) + (string-prefix? "SSL_CERT_FILE=" str))) + (environ))))) + (respawn? #f) + (stop #~(make-kill-destructor))))))) + +(define syncthing-service-type + (service-type (name 'syncthing) + (extensions (list (service-extension shepherd-root-service-type + syncthing-shepherd-service))) + (description + "Run @uref{https://github.com/syncthing/syncthing, Syncthing} +decentralized continuous file system synchronization."))) + +;;; syncthing.scm ends here diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm index f435630faf..a45da14a80 100644 --- a/gnu/services/virtualization.scm +++ b/gnu/services/virtualization.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ryan Moe <ryan.moe@gmail.com> ;;; Copyright © 2018, 2020 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2020,2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -717,7 +717,7 @@ potential infinite waits blocking libvirt.")) (platforms qemu-binfmt-configuration-platforms (default '())) ;safest default (guix-support? qemu-binfmt-configuration-guix-support? - (default #f))) + (default #t))) (define (qemu-platform->binfmt qemu platform) "Return a gexp that evaluates to a binfmt string for PLATFORM, using the @@ -917,7 +917,9 @@ is added to the OS specified in CONFIG." (disk-size (hurd-vm-configuration-disk-size config)) (type (lookup-image-type-by-name 'hurd-qcow2)) (os->image (image-type-constructor type))) - (system-image (os->image os)))) + (system-image + (image (inherit (os->image os)) + (size disk-size))))) (define (hurd-vm-port config base) "Return the forwarded vm port for this childhurd config." diff --git a/gnu/services/web.scm b/gnu/services/web.scm index 855f4e649b..ff7b262b6a 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -922,19 +922,20 @@ of index files." (define php-fpm-accounts (match-lambda (($ <php-fpm-configuration> php socket user group socket-user socket-group _ _ _ _ _ _) - (list - (user-group (name "php-fpm") (system? #t)) - (user-group - (name group) - (system? #t)) - (user-account - (name user) - (group group) - (supplementary-groups '("php-fpm")) - (system? #t) - (comment "php-fpm daemon user") - (home-directory "/var/empty") - (shell (file-append shadow "/sbin/nologin"))))))) + `(,@(if (equal? group "php-fpm") + '() + (list (user-group (name "php-fpm") (system? #t)))) + ,(user-group + (name group) + (system? #t)) + ,(user-account + (name user) + (group group) + (supplementary-groups '("php-fpm")) + (system? #t) + (comment "php-fpm daemon user") + (home-directory "/var/empty") + (shell (file-append shadow "/sbin/nologin"))))))) (define (default-php-fpm-config socket user group socket-user socket-group pid-file log-file pm display-errors timezone workers-log-file) diff --git a/gnu/system.scm b/gnu/system.scm index c284a18379..90ad368664 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> @@ -858,8 +858,8 @@ syntactically correct." (copy-file #$file #$output))))) (define* (operating-system-etc-service os) - "Return a <service> that builds containing the static part of the /etc -directory." + "Return a <service> that builds a directory containing the static part of +the /etc directory." (let* ((login.defs (plain-file "login.defs" (string-append diff --git a/gnu/system/examples/bare-hurd.tmpl b/gnu/system/examples/bare-hurd.tmpl index e4b795ff27..135ed23cb6 100644 --- a/gnu/system/examples/bare-hurd.tmpl +++ b/gnu/system/examples/bare-hurd.tmpl @@ -5,7 +5,7 @@ ;; To build a disk image for a virtual machine, do ;; -;; ./pre-inst-env guix system disk-image --target=i586-pc-gnu \ +;; ./pre-inst-env guix system image --target=i586-pc-gnu \ ;; gnu/system/examples/bare-hurd.tmpl ;; ;; You may run it like so diff --git a/gnu/system/image.scm b/gnu/system/image.scm index 67930750d5..1012fa6158 100644 --- a/gnu/system/image.scm +++ b/gnu/system/image.scm @@ -70,7 +70,7 @@ arm64-disk-image image-with-os - raw-image-type + efi-raw-image-type qcow2-image-type iso-image-type uncompressed-iso-image-type @@ -128,21 +128,21 @@ (label "GUIX_IMAGE") (flags '(boot))))))) -(define arm32-disk-image +(define* (arm32-disk-image #:optional (offset root-offset)) (image (format 'disk-image) (target "arm-linux-gnueabihf") (partitions (list (partition (inherit root-partition) - (offset root-offset)))) + (offset offset)))) ;; FIXME: Deleting and creating "/var/run" and "/tmp" on the overlayfs ;; fails. (volatile-root? #f))) -(define arm64-disk-image +(define* (arm64-disk-image #:optional (offset root-offset)) (image - (inherit arm32-disk-image) + (inherit (arm32-disk-image offset)) (target "aarch64-linux-gnu"))) @@ -157,9 +157,9 @@ set to the given OS." (inherit base-image) (operating-system os))) -(define raw-image-type +(define efi-raw-image-type (image-type - (name 'raw) + (name 'efi-raw) (constructor (cut image-with-os efi-disk-image <>)))) (define qcow2-image-type @@ -189,12 +189,12 @@ set to the given OS." (define arm32-image-type (image-type (name 'arm32-raw) - (constructor (cut image-with-os arm32-disk-image <>)))) + (constructor (cut image-with-os (arm32-disk-image) <>)))) (define arm64-image-type (image-type (name 'arm64-raw) - (constructor (cut image-with-os arm64-disk-image <>)))) + (constructor (cut image-with-os (arm64-disk-image) <>)))) ;; diff --git a/gnu/system/images/novena.scm b/gnu/system/images/novena.scm index c4d25e850e..dfaf2c60ee 100644 --- a/gnu/system/images/novena.scm +++ b/gnu/system/images/novena.scm @@ -52,7 +52,7 @@ (define novena-image-type (image-type (name 'novena-raw) - (constructor (cut image-with-os arm32-disk-image <>)))) + (constructor (cut image-with-os (arm32-disk-image) <>)))) (define novena-barebones-raw-image (image diff --git a/gnu/system/images/pine64.scm b/gnu/system/images/pine64.scm index f0b0c3f50d..63b31399a5 100644 --- a/gnu/system/images/pine64.scm +++ b/gnu/system/images/pine64.scm @@ -57,7 +57,7 @@ (define pine64-image-type (image-type (name 'pine64-raw) - (constructor (cut image-with-os arm64-disk-image <>)))) + (constructor (cut image-with-os (arm64-disk-image) <>)))) (define pine64-barebones-raw-image (image diff --git a/gnu/system/images/pinebook-pro.scm b/gnu/system/images/pinebook-pro.scm index b038e262cb..22997fd742 100644 --- a/gnu/system/images/pinebook-pro.scm +++ b/gnu/system/images/pinebook-pro.scm @@ -51,13 +51,15 @@ (extra-options '("-L")) ; no carrier detect (baud-rate "115200") (term "vt100") - (tty "ttyS0"))) + (tty "ttyS2"))) %base-services)))) (define pinebook-pro-image-type (image-type (name 'pinebook-pro-raw) - (constructor (cut image-with-os arm64-disk-image <>)))) + (constructor (cut image-with-os + (arm64-disk-image (* 9 (expt 2 20))) ;9MiB + <>)))) (define pinebook-pro-barebones-raw-image (image diff --git a/gnu/system/install.scm b/gnu/system/install.scm index e753463473..7fa5c15324 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> @@ -212,7 +212,9 @@ the given target.") ;; 'user-processes' doesn't depend on us. The 'user-file-systems' ;; service will unmount TARGET eventually. (delete-file-recursively - (string-append target #$%backing-directory)))))))) + (string-append target #$%backing-directory)))))) + (description "Make the store copy-on-write, with writes going to \ +the given target."))) (define (cow-store-service) "Return a service that makes the store copy-on-write, such that writes go to diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm index 4a9cd0efe2..e6fd0f1315 100644 --- a/gnu/system/linux-container.scm +++ b/gnu/system/linux-container.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson <davet@gnu.org> -;;; Copyright © 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2017, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020 Google LLC @@ -76,7 +76,10 @@ from OS that are needed on the bare metal and not in a container." doing anything.") (provision '(loopback networking)) (start #~(const #t)))) - #f)) + #f + (description "Provide loopback and networking without actually doing +anything. This service is used by guest systems running in containers, where +networking support is provided by the host."))) (define %nscd-container-caches ;; Similar to %nscd-default-caches but with smaller cache sizes. This allows diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm index 559c27bb28..518dbc4fe8 100644 --- a/gnu/system/mapped-devices.scm +++ b/gnu/system/mapped-devices.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; @@ -130,7 +130,8 @@ specifications to 'targets'." (documentation "Map a device node using Linux's device mapper.") (start #~(lambda () #$(open source targets))) (stop #~(lambda _ (not #$(close source targets)))) - (respawn? #f)))))) + (respawn? #f)))) + (description "Map a device node using Linux's device mapper."))) (define (device-mapping-service mapped-device) "Return a service that sets up @var{mapped-device}." diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm index a69339bc07..7c57222716 100644 --- a/gnu/system/shadow.scm +++ b/gnu/system/shadow.scm @@ -20,6 +20,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu system shadow) + #:use-module ((guix diagnostics) #:select (formatted-message)) #:use-module (guix records) #:use-module (guix gexp) #:use-module (guix store) @@ -34,6 +35,7 @@ #:use-module ((gnu packages admin) #:select (shadow)) #:use-module (gnu packages bash) + #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) @@ -222,6 +224,44 @@ for a colorful Guile experience.\\n\\n\"))))\n")) (rename-file ".nanorc" ".config/nano/nanorc")) #t)))) +(define (find-duplicates list) + "Find duplicate entries in @var{list}. +Two entries are considered duplicates, if they are @code{equal?} to each other. +This implementation is made asymptotically faster than @code{delete-duplicates} +through the internal use of hash tables." + (let loop ((list list) + ;; We actually modify table in-place, but still allocate it here + ;; so that we only need one level of indentation. + (table (make-hash-table))) + (match list + (() + (hash-fold (lambda (key value seed) + (if (> value 1) + (cons key seed) + seed)) + '() + table)) + ((first . rest) + (hash-set! table first + (1+ (hash-ref table first 0))) + (loop rest table))))) + +(define (assert-unique-account-names users) + (match (find-duplicates (map user-account-name users)) + (() *unspecified*) + (duplicates + (warning + (G_ "the following accounts appear more than once:~{ ~a~}~%") + duplicates)))) + +(define (assert-unique-group-names groups) + (match (find-duplicates (map user-group-name groups)) + (() *unspecified*) + (duplicates + (warning + (G_ "the following groups appear more than once:~{ ~a~}~%") + duplicates)))) + (define (assert-valid-users/groups users groups) "Raise an error if USERS refer to groups not listed in GROUPS." (let ((groups (list->set (map user-group-name groups)))) @@ -281,17 +321,19 @@ of user '~a' is undeclared") <user-group> objects. Raise an error if a user account refers to a undefined group." (define accounts - (filter user-account? accounts+groups)) + (delete-duplicates (filter user-account? accounts+groups) eq?)) (define user-specs (map user-account->gexp accounts)) (define groups - (filter user-group? accounts+groups)) + (delete-duplicates (filter user-group? accounts+groups) eq?)) (define group-specs (map user-group->gexp groups)) + (assert-unique-account-names accounts) + (assert-unique-group-names groups) (assert-valid-users/groups accounts groups) ;; Add users and user groups. diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm index bf94e97c2a..9dbe63f1e4 100644 --- a/gnu/tests/install.scm +++ b/gnu/tests/install.scm @@ -222,7 +222,7 @@ reboot\n") #:imported-modules '((gnu services herd) (gnu installer tests) (guix combinators)))) - (installation-image-type 'raw) + (installation-image-type 'efi-raw) (install-size 'guess) (target-size (* 2200 MiB))) "Run SCRIPT (a shell script following the system installation procedure) in @@ -272,7 +272,7 @@ packages defined in installation-os." "-no-reboot" "-m" "1200" #$@(cond - ((eq? 'raw installation-image-type) + ((eq? 'efi-raw installation-image-type) #~("-drive" ,(string-append "file=" #$image ",if=virtio,readonly"))) diff --git a/guix/cache.scm b/guix/cache.scm index feff131068..0401a9d428 100644 --- a/guix/cache.scm +++ b/guix/cache.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -47,13 +47,14 @@ (unless (= ENOENT (system-error-errno args)) (apply throw args))))) -(define (file-expiration-time ttl) +(define* (file-expiration-time ttl #:optional (timestamp stat:atime)) "Return a procedure that, when passed a file, returns its \"expiration -time\" computed as its last-access time + TTL seconds." +time\" computed as its timestamp + TTL seconds. Call TIMESTAMP to obtain the +relevant timestamp from the result of 'stat'." (lambda (file) (match (stat file #f) (#f 0) ;FILE may have been deleted in the meantime - (st (+ (stat:atime st) ttl))))) + (st (+ (timestamp st) ttl))))) (define* (remove-expired-cache-entries entries #:key diff --git a/guix/git.scm b/guix/git.scm index ca77b9f54b..a5103547d3 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com> -;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,8 +23,10 @@ #:use-module (git submodule) #:use-module (guix i18n) #:use-module (guix base32) + #:use-module (guix cache) #:use-module (gcrypt hash) - #:use-module ((guix build utils) #:select (mkdir-p)) + #:use-module ((guix build utils) + #:select (mkdir-p delete-file-recursively)) #:use-module (guix store) #:use-module (guix utils) #:use-module (guix records) @@ -35,6 +37,7 @@ #:use-module (rnrs bytevectors) #:use-module (ice-9 format) #:use-module (ice-9 match) + #:use-module (ice-9 ftw) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-34) @@ -318,6 +321,24 @@ definitely available in REPOSITORY, false otherwise." (_ #f))) +(define cached-checkout-expiration + ;; Return the expiration time procedure for a cached checkout. + ;; TODO: Honor $GUIX_GIT_CACHE_EXPIRATION. + + ;; Use the mtime rather than the atime to cope with file systems mounted + ;; with 'noatime'. + (file-expiration-time (* 90 24 3600) stat:mtime)) + +(define %checkout-cache-cleanup-period + ;; Period for the removal of expired cached checkouts. + (* 5 24 3600)) + +(define (delete-checkout directory) + "Delete DIRECTORY recursively, in an atomic fashion." + (let ((trashed (string-append directory ".trashed"))) + (rename-file directory trashed) + (delete-file-recursively trashed))) + (define* (update-cached-checkout url #:key (ref '(branch . "master")) @@ -341,6 +362,14 @@ When RECURSIVE? is true, check out submodules as well, if any. When CHECK-OUT? is true, reset the cached working tree to REF; otherwise leave it unchanged." + (define (cache-entries directory) + (filter-map (match-lambda + ((or "." "..") + #f) + (file + (string-append directory "/" file))) + (or (scandir directory) '()))) + (define canonical-ref ;; We used to require callers to specify "origin/" for each branch, which ;; made little sense since the cache should be transparent to them. So @@ -387,6 +416,17 @@ it unchanged." ;; REPOSITORY as soon as possible. (repository-close! repository) + ;; When CACHE-DIRECTORY is a sub-directory of the default cache + ;; directory, remove expired checkouts that are next to it. + (let ((parent (dirname cache-directory))) + (when (string=? parent (%repository-cache-directory)) + (maybe-remove-expired-cache-entries parent cache-entries + #:entry-expiration + cached-checkout-expiration + #:delete-entry delete-checkout + #:cleanup-period + %checkout-cache-cleanup-period))) + (values cache-directory (oid->string oid) relation))))) (define* (latest-repository-commit store url diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm index 514417f781..87abe9c2f1 100644 --- a/guix/import/cpan.scm +++ b/guix/import/cpan.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -109,6 +109,7 @@ (home-page cpan-release-home-page "resources" (match-lambda (#f #f) + ((? unspecified?) #f) ((lst ...) (assoc-ref lst "homepage")))) (dependencies cpan-release-dependencies "dependency" (lambda (vector) diff --git a/guix/import/cran.scm b/guix/import/cran.scm index fd44d80915..e8caf080fd 100644 --- a/guix/import/cran.scm +++ b/guix/import/cran.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> @@ -341,7 +341,11 @@ empty list when the FIELD cannot be found." ;; The field for system dependencies is often abused to specify non-package ;; dependencies (such as c++11). This list is used to ignore them. (define invalid-packages - (list "c++11")) + (list "c++11" + "c++14" + "linux" + "getopt::long" + "xquartz")) (define cran-guix-name (cut guix-name "r-" <>)) diff --git a/guix/import/gem.scm b/guix/import/gem.scm index 1f6f94532e..418d716be6 100644 --- a/guix/import/gem.scm +++ b/guix/import/gem.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> -;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> ;;; ;;; This file is part of GNU Guix. @@ -49,6 +49,7 @@ ;; This is sometimes #nil (the JSON 'null' value). Arrange ;; to always return a list. (cond ((not licenses) '()) + ((unspecified? licenses) '()) ((vector? licenses) (vector->list licenses)) (else '())))) (info gem-info) @@ -69,7 +70,7 @@ json->gem-dependency-list)) (define (json->gem-dependency-list vector) - (if vector + (if (and vector (not (unspecified? vector))) (map json->gem-dependency (vector->list vector)) '())) diff --git a/guix/import/texlive.scm b/guix/import/texlive.scm index a84683ef6f..18d8b95ee0 100644 --- a/guix/import/texlive.scm +++ b/guix/import/texlive.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,8 @@ #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) #:use-module (web uri) + #:use-module (guix diagnostics) + #:use-module (guix i18n) #:use-module (guix http-client) #:use-module (gcrypt hash) #:use-module (guix memoization) @@ -149,19 +152,24 @@ expression describing it." (home-page (string-append "http://www.ctan.org/pkg/" id)) (ref (texlive-ref component id)) (checkout (download-svn-to-store store ref))) + (unless checkout + (warning (G_ "Could not determine source location. \ +Please manually specify the source field.~%"))) `(package (name ,(guix-name component id)) (version ,version) - (source (origin - (method svn-fetch) - (uri (texlive-ref ,component ,id)) - (sha256 - (base32 - ,(bytevector->nix-base32-string - (let-values (((port get-hash) (open-sha256-port))) - (write-file checkout port) - (force-output port) - (get-hash))))))) + (source ,(if checkout + `(origin + (method svn-fetch) + (uri (texlive-ref ,component ,id)) + (sha256 + (base32 + ,(bytevector->nix-base32-string + (let-values (((port get-hash) (open-sha256-port))) + (write-file checkout port) + (force-output port) + (get-hash)))))) + #f)) (build-system texlive-build-system) (arguments ,`(,'quote (#:tex-directory ,(string-join (list component id) "/")))) (home-page ,home-page) diff --git a/guix/licenses.scm b/guix/licenses.scm index 255b755e6c..63010a7231 100644 --- a/guix/licenses.scm +++ b/guix/licenses.scm @@ -78,7 +78,7 @@ mpl1.0 mpl1.1 mpl2.0 ms-pl ncsa - npsl + nmap ogl-psi1.0 openldap2.8 openssl perl-license @@ -531,10 +531,10 @@ at URI, which may be a file:// URI pointing the package's tree." "http://directory.fsf.org/wiki/License:IllinoisNCSA" "https://www.gnu.org/licenses/license-list#NCSA")) -(define npsl - (license "Nmap Public Source License" - "https://svn.nmap.org/nmap/LICENSE" - "https://nmap.org/npsl/")) +(define nmap + (license "Nmap license" + "https://svn.nmap.org/nmap/COPYING" + "https://fedoraproject.org/wiki/Licensing/Nmap")) (define ogl-psi1.0 (license "Open Government Licence for Public Sector Information" diff --git a/guix/modules.scm b/guix/modules.scm index 1a6fafe35b..61bc8e1978 100644 --- a/guix/modules.scm +++ b/guix/modules.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -77,7 +77,7 @@ CLAUSES." ((#:autoload module _ rest ...) (loop rest (cons module result))) (((or #:export #:re-export #:export-syntax #:re-export-syntax - #:replace #:version) + #:re-export-and-replace #:replace #:version) _ rest ...) (loop rest result)) (((or #:pure #:no-backtrace) rest ...) diff --git a/guix/narinfo.scm b/guix/narinfo.scm new file mode 100644 index 0000000000..241090ec98 --- /dev/null +++ b/guix/narinfo.scm @@ -0,0 +1,326 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014 Nikita Karetnikov <nikita@karetnikov.org> +;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (guix narinfo) + #:use-module (guix pki) + #:use-module (guix i18n) + #:use-module (guix base32) + #:use-module (guix base64) + #:use-module (guix records) + #:use-module (guix diagnostics) + #:use-module (guix scripts substitute) + #:use-module (gcrypt hash) + #:use-module (gcrypt pk-crypto) + #:use-module (rnrs bytevectors) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) + #:use-module (srfi srfi-26) + #:use-module (ice-9 match) + #:use-module (ice-9 binary-ports) + #:use-module (web uri) + #:export (narinfo-signature->canonical-sexp + + narinfo? + narinfo-path + narinfo-uris + narinfo-uri-base + narinfo-compressions + narinfo-file-hashes + narinfo-file-sizes + narinfo-hash + narinfo-size + narinfo-references + narinfo-deriver + narinfo-system + narinfo-signature + + narinfo-hash-algorithm+value + + narinfo-hash->sha256 + narinfo-best-uri + + valid-narinfo? + + read-narinfo + write-narinfo + + string->narinfo + narinfo->string + + equivalent-narinfo?)) + +(define-record-type <narinfo> + (%make-narinfo path uri-base uris compressions file-sizes file-hashes + nar-hash nar-size references deriver system + signature contents) + narinfo? + (path narinfo-path) + (uri-base narinfo-uri-base) ;URI of the cache it originates from + (uris narinfo-uris) ;list of strings + (compressions narinfo-compressions) ;list of strings + (file-sizes narinfo-file-sizes) ;list of (integers | #f) + (file-hashes narinfo-file-hashes) + (nar-hash narinfo-hash) + (nar-size narinfo-size) + (references narinfo-references) + (deriver narinfo-deriver) + (system narinfo-system) + (signature narinfo-signature) ; canonical sexp + ;; The original contents of a narinfo file. This field is needed because we + ;; want to preserve the exact textual representation for verification purposes. + ;; See <https://lists.gnu.org/archive/html/guix-devel/2014-02/msg00340.html> + ;; for more information. + (contents narinfo-contents)) + +(define (narinfo-hash-algorithm+value narinfo) + "Return two values: the hash algorithm used by NARINFO and its value as a +bytevector." + (match (string-tokenize (narinfo-hash narinfo) + (char-set-complement (char-set #\:))) + ((algorithm base32) + (values (lookup-hash-algorithm (string->symbol algorithm)) + (nix-base32-string->bytevector base32))) + (_ + (raise (formatted-message + (G_ "invalid narinfo hash: ~s") (narinfo-hash narinfo)))))) + +(define (narinfo-hash->sha256 hash) + "If the string HASH denotes a sha256 hash, return it as a bytevector. +Otherwise return #f." + (and (string-prefix? "sha256:" hash) + (nix-base32-string->bytevector (string-drop hash 7)))) + +(define (narinfo-signature->canonical-sexp str) + "Return the value of a narinfo's 'Signature' field as a canonical sexp." + (match (string-split str #\;) + ((version host-name sig) + (let ((maybe-number (string->number version))) + (cond ((not (number? maybe-number)) + (leave (G_ "signature version must be a number: ~s~%") + version)) + ;; Currently, there are no other versions. + ((not (= 1 maybe-number)) + (leave (G_ "unsupported signature version: ~a~%") + maybe-number)) + (else + (let ((signature (utf8->string (base64-decode sig)))) + (catch 'gcry-error + (lambda () + (string->canonical-sexp signature)) + (lambda (key proc err) + (leave (G_ "signature is not a valid \ +s-expression: ~s~%") + signature)))))))) + (x + (leave (G_ "invalid format of the signature field: ~a~%") x)))) + +(define (narinfo-maker str cache-url) + "Return a narinfo constructor for narinfos originating from CACHE-URL. STR +must contain the original contents of a narinfo file." + (lambda (path urls compressions file-hashes file-sizes + nar-hash nar-size references deriver system + signature) + "Return a new <narinfo> object." + (define len (length urls)) + (%make-narinfo path cache-url + ;; Handle the case where URL is a relative URL. + (map (lambda (url) + (or (string->uri url) + (string->uri + (string-append cache-url "/" url)))) + urls) + compressions + (match file-sizes + (() (make-list len #f)) + ((lst ...) (map string->number lst))) + (match file-hashes + (() (make-list len #f)) + ((lst ...) (map string->number lst))) + nar-hash + (and=> nar-size string->number) + (string-tokenize references) + (match deriver + ((or #f "") #f) + (_ deriver)) + system + (false-if-exception + (and=> signature narinfo-signature->canonical-sexp)) + str))) + +(define fields->alist + ;; The narinfo format is really just like recutils. + recutils->alist) + +(define* (read-narinfo port #:optional url + #:key size) + "Read a narinfo from PORT. If URL is true, it must be a string used to +build full URIs from relative URIs found while reading PORT. When SIZE is +true, read at most SIZE bytes from PORT; otherwise, read as much as possible. + +No authentication and authorization checks are performed here!" + (let ((str (utf8->string (if size + (get-bytevector-n port size) + (get-bytevector-all port))))) + (alist->record (call-with-input-string str fields->alist) + (narinfo-maker str url) + '("StorePath" "URL" "Compression" + "FileHash" "FileSize" "NarHash" "NarSize" + "References" "Deriver" "System" + "Signature") + '("URL" "Compression" "FileSize" "FileHash")))) + +(define (narinfo-sha256 narinfo) + "Return the sha256 hash of NARINFO as a bytevector, or #f if NARINFO lacks a +'Signature' field." + (define %mandatory-fields + ;; List of fields that must be signed. If they are not signed, the + ;; narinfo is considered unsigned. + '("StorePath" "NarHash" "References")) + + (let ((contents (narinfo-contents narinfo))) + (match (string-contains contents "Signature:") + (#f #f) + (index + (let* ((above-signature (string-take contents index)) + (signed-fields (match (call-with-input-string above-signature + fields->alist) + (((fields . values) ...) fields)))) + (and (every (cut member <> signed-fields) %mandatory-fields) + (sha256 (string->utf8 above-signature)))))))) + +(define* (valid-narinfo? narinfo #:optional (acl (current-acl)) + #:key verbose?) + "Return #t if NARINFO's signature is not valid." + (let ((hash (narinfo-sha256 narinfo)) + (signature (narinfo-signature narinfo)) + (uri (uri->string (first (narinfo-uris narinfo))))) + (and hash signature + (signature-case (signature hash acl) + (valid-signature #t) + (invalid-signature + (when verbose? + (format (current-error-port) + "invalid signature for substitute at '~a'~%" + uri)) + #f) + (hash-mismatch + (when verbose? + (format (current-error-port) + "hash mismatch for substitute at '~a'~%" + uri)) + #f) + (unauthorized-key + (when verbose? + (format (current-error-port) + "substitute at '~a' is signed by an \ +unauthorized party~%" + uri)) + #f) + (corrupt-signature + (when verbose? + (format (current-error-port) + "corrupt signature for substitute at '~a'~%" + uri)) + #f))))) + +(define (write-narinfo narinfo port) + "Write NARINFO to PORT." + (put-bytevector port (string->utf8 (narinfo-contents narinfo)))) + +(define (narinfo->string narinfo) + "Return the external representation of NARINFO." + (call-with-output-string (cut write-narinfo narinfo <>))) + +(define (string->narinfo str cache-uri) + "Return the narinfo represented by STR. Assume CACHE-URI as the base URI of +the cache STR originates form." + (call-with-input-string str (cut read-narinfo <> cache-uri))) + +(define (equivalent-narinfo? narinfo1 narinfo2) + "Return true if NARINFO1 and NARINFO2 are equivalent--i.e., if they describe +the same store item. This ignores unnecessary metadata such as the Nar URL." + (and (string=? (narinfo-hash narinfo1) + (narinfo-hash narinfo2)) + + ;; The following is not needed if all we want is to download a valid + ;; nar, but it's necessary if we want valid narinfo. + (string=? (narinfo-path narinfo1) + (narinfo-path narinfo2)) + (equal? (narinfo-references narinfo1) + (narinfo-references narinfo2)) + + (= (narinfo-size narinfo1) + (narinfo-size narinfo2)))) + +(define %compression-methods + ;; Known compression methods and a thunk to determine whether they're + ;; supported. See 'decompressed-port' in (guix utils). + `(("gzip" . ,(const #t)) + ("lzip" . ,(const #t)) + ("zstd" . ,(lambda () + (resolve-module '(zstd) #t #f #:ensure #f))) + ("xz" . ,(const #t)) + ("bzip2" . ,(const #t)) + ("none" . ,(const #t)))) + +(define (supported-compression? compression) + "Return true if COMPRESSION, a string, denotes a supported compression +method." + (match (assoc-ref %compression-methods compression) + (#f #f) + (supported? (supported?)))) + +(define (compresses-better? compression1 compression2) + "Return true if COMPRESSION1 generally compresses better than COMPRESSION2; +this is a rough approximation." + (match compression1 + ("none" #f) + ("gzip" (string=? compression2 "none")) + ("lzip" #t) + (_ (or (string=? compression2 "none") + (string=? compression2 "gzip"))))) + +(define (narinfo-best-uri narinfo) + "Select the \"best\" URI to download NARINFO's nar, and return three values: +the URI, its compression method (a string), and the compressed file size." + (define choices + (filter (match-lambda + ((uri compression file-size) + (supported-compression? compression))) + (zip (narinfo-uris narinfo) + (narinfo-compressions narinfo) + (narinfo-file-sizes narinfo)))) + + (define (file-size<? c1 c2) + (match c1 + ((uri1 compression1 (? integer? file-size1)) + (match c2 + ((uri2 compression2 (? integer? file-size2)) + (< file-size1 file-size2)) + (_ #t))) + ((uri compression1 #f) + (match c2 + ((uri2 compression2 _) + (compresses-better? compression1 compression2)))) + (_ #f))) ;we can't tell + + (match (sort choices file-size<?) + (((uri compression file-size) _ ...) + (values uri compression file-size)))) diff --git a/guix/packages.scm b/guix/packages.scm index 6fa761f569..9305dabcec 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -167,6 +167,25 @@ ;;; ;;; Code: +(define-syntax-rule (define-compile-time-decoder name string->bytevector) + "Define NAME as a macro that runs STRING->BYTEVECTOR at macro expansion time +if possible." + (define-syntax name + (lambda (s) + "Return the bytevector corresponding to the given textual +representation." + (syntax-case s () + ((_ str) + (string? (syntax->datum #'str)) + ;; A literal string: do the conversion at expansion time. + (with-syntax ((bv (string->bytevector (syntax->datum #'str)))) + #''bv)) + ((_ str) + #'(string->bytevector str)))))) + +(define-compile-time-decoder base32 nix-base32-string->bytevector) +(define-compile-time-decoder base64 base64-decode) + ;; Crytographic content hash. (define-immutable-record-type <content-hash> (%content-hash algorithm value) @@ -302,25 +321,6 @@ specifications to 'hash'." (set-record-type-printer! <origin> print-origin) -(define-syntax-rule (define-compile-time-decoder name string->bytevector) - "Define NAME as a macro that runs STRING->BYTEVECTOR at macro expansion time -if possible." - (define-syntax name - (lambda (s) - "Return the bytevector corresponding to the given textual -representation." - (syntax-case s () - ((_ str) - (string? (syntax->datum #'str)) - ;; A literal string: do the conversion at expansion time. - (with-syntax ((bv (string->bytevector (syntax->datum #'str)))) - #''bv)) - ((_ str) - #'(string->bytevector str)))))) - -(define-compile-time-decoder base32 nix-base32-string->bytevector) -(define-compile-time-decoder base64 base64-decode) - (define (origin-actual-file-name origin) "Return the file name of ORIGIN, either its 'file-name' field or the file name of its URI." diff --git a/guix/repl.scm b/guix/repl.scm index 0ace5976cf..94d85815ef 100644 --- a/guix/repl.scm +++ b/guix/repl.scm @@ -78,8 +78,14 @@ output port. VERSION is the client's protocol version we are targeting." (let ((stack (if (repl-prompt) (make-stack #t handle-exception (repl-prompt)) (make-stack #t)))) + ;; Note: 'make-stack' returns #f if there's no 'handle-exception' + ;; stack frame, which is the case when this file is being + ;; interpreted as with 'primitive-load'. `(exception (arguments ,key ,@(map value->sexp args)) - (stack ,@(map frame->sexp (stack->frames stack)))))) + (stack ,@(map frame->sexp + (if stack + (stack->frames stack) + '())))))) (_ ;; Protocol (0 0). `(exception ,key ,@(map value->sexp args))))) diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm index 1f73fff711..91be1b02e1 100644 --- a/guix/scripts/archive.scm +++ b/guix/scripts/archive.scm @@ -318,8 +318,8 @@ the input port." (warning (G_ "replacing symbolic link ~a with a regular file~%") %acl-file) (when (string-prefix? (%store-prefix) (readlink %acl-file)) - (display-hint (G_ "On Guix System, add public keys to the -@code{authorized-keys} field of your @code{operating-system} instead."))))) + (display-hint (G_ "On Guix System, add all @code{authorized-keys} to the +@code{guix-service-type} service of your @code{operating-system} instead."))))) (let ((key (read-key)) (acl (current-acl))) diff --git a/guix/scripts/challenge.scm b/guix/scripts/challenge.scm index d0a456ac1d..cc9cbe6f27 100644 --- a/guix/scripts/challenge.scm +++ b/guix/scripts/challenge.scm @@ -28,6 +28,7 @@ #:use-module ((guix progress) #:hide (dump-port*)) #:use-module (guix serialization) #:use-module (guix scripts substitute) + #:use-module (guix narinfo) #:use-module (rnrs bytevectors) #:autoload (guix http-client) (http-fetch) #:use-module ((guix build syscalls) #:select (terminal-columns)) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index fbc202c658..f4d12f89bf 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -675,7 +675,7 @@ message if any test fails." (let* ((root (if (string-prefix? "/" root) root (string-append (canonicalize-path (dirname root)) - "/" root)))) + "/" (basename root))))) (catch 'system-error (lambda () (symlink target root) diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index 5a865c838d..fa85088ed0 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -56,6 +56,8 @@ #:use-module (zlib) #:autoload (lzlib) (call-with-lzip-output-port make-lzip-output-port) + #:autoload (zstd) (call-with-zstd-output-port + make-zstd-output-port) #:use-module (guix cache) #:use-module (guix ui) #:use-module (guix scripts) @@ -588,23 +590,22 @@ requested using POOL." (define nar (nar-cache-file cache item #:compression compression)) + (define (write-compressed-file call-with-compressed-output-port) + ;; Note: the file port gets closed along with the compressed port. + (call-with-compressed-output-port (open-output-file (string-append nar ".tmp")) + (lambda (port) + (write-file item port)) + #:level (compression-level compression)) + (rename-file (string-append nar ".tmp") nar)) + (mkdir-p (dirname nar)) (match (compression-type compression) ('gzip - ;; Note: the file port gets closed along with the gzip port. - (call-with-gzip-output-port (open-output-file (string-append nar ".tmp")) - (lambda (port) - (write-file item port)) - #:level (compression-level compression) - #:buffer-size %default-buffer-size) - (rename-file (string-append nar ".tmp") nar)) + (write-compressed-file call-with-gzip-output-port)) ('lzip - ;; Note: the file port gets closed along with the lzip port. - (call-with-lzip-output-port (open-output-file (string-append nar ".tmp")) - (lambda (port) - (write-file item port)) - #:level (compression-level compression)) - (rename-file (string-append nar ".tmp") nar)) + (write-compressed-file call-with-lzip-output-port)) + ('zstd + (write-compressed-file call-with-zstd-output-port)) ('none ;; Cache nars even when compression is disabled so that we can ;; guarantee the TTL (see <https://bugs.gnu.org/28664>.) @@ -871,6 +872,9 @@ example: \"/foo/bar\" yields '(\"foo\" \"bar\")." (($ <compression> 'lzip level) (make-lzip-output-port (response-port response) #:level level)) + (($ <compression> 'zstd level) + (make-zstd-output-port (response-port response) + #:level level)) (($ <compression> 'none) (response-port response)) (#f @@ -953,6 +957,7 @@ blocking." (match string ("gzip" 'gzip) ("lzip" 'lzip) + ("zstd" 'zstd) (_ #f))) (define (effective-compression requested-type compressions) diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index e53de8c304..f9bcead045 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com> +;;; Copyright © 2020 Christopher Baines <mail@cbaines.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +22,7 @@ (define-module (guix scripts substitute) #:use-module (guix ui) #:use-module (guix scripts) + #:use-module (guix narinfo) #:use-module (guix store) #:use-module (guix utils) #:use-module (guix combinators) @@ -67,29 +69,8 @@ #:use-module (web request) #:use-module (web response) #:use-module (guix http-client) - #:export (narinfo-signature->canonical-sexp - - narinfo? - narinfo-path - narinfo-uris - narinfo-uri-base - narinfo-compressions - narinfo-file-hashes - narinfo-file-sizes - narinfo-hash - narinfo-size - narinfo-references - narinfo-deriver - narinfo-system - narinfo-signature - - narinfo-hash->sha256 - narinfo-best-uri - - lookup-narinfos + #:export (lookup-narinfos lookup-narinfos/diverse - read-narinfo - write-narinfo %allow-unauthenticated-substitutes? %error-to-file-descriptor-4? @@ -149,10 +130,6 @@ disabled!~%")) ;; How often we want to remove files corresponding to expired cache entries. (* 7 24 3600)) -(define fields->alist - ;; The narinfo format is really just like recutils. - recutils->alist) - (define %fetch-timeout ;; Number of seconds after which networking is considered "slow". 5) @@ -236,191 +213,6 @@ connection (typically PORT) is kept open once data has been fetched from URI." (leave (G_ "unsupported substitute URI scheme: ~a~%") (uri->string uri))))) - -(define-record-type <narinfo> - (%make-narinfo path uri-base uris compressions file-sizes file-hashes - nar-hash nar-size references deriver system - signature contents) - narinfo? - (path narinfo-path) - (uri-base narinfo-uri-base) ;URI of the cache it originates from - (uris narinfo-uris) ;list of strings - (compressions narinfo-compressions) ;list of strings - (file-sizes narinfo-file-sizes) ;list of (integers | #f) - (file-hashes narinfo-file-hashes) - (nar-hash narinfo-hash) - (nar-size narinfo-size) - (references narinfo-references) - (deriver narinfo-deriver) - (system narinfo-system) - (signature narinfo-signature) ; canonical sexp - ;; The original contents of a narinfo file. This field is needed because we - ;; want to preserve the exact textual representation for verification purposes. - ;; See <https://lists.gnu.org/archive/html/guix-devel/2014-02/msg00340.html> - ;; for more information. - (contents narinfo-contents)) - -(define (narinfo-hash-algorithm+value narinfo) - "Return two values: the hash algorithm used by NARINFO and its value as a -bytevector." - (match (string-tokenize (narinfo-hash narinfo) - (char-set-complement (char-set #\:))) - ((algorithm base32) - (values (lookup-hash-algorithm (string->symbol algorithm)) - (nix-base32-string->bytevector base32))) - (_ - (raise (formatted-message - (G_ "invalid narinfo hash: ~s") (narinfo-hash narinfo)))))) - -(define (narinfo-hash->sha256 hash) - "If the string HASH denotes a sha256 hash, return it as a bytevector. -Otherwise return #f." - (and (string-prefix? "sha256:" hash) - (nix-base32-string->bytevector (string-drop hash 7)))) - -(define (narinfo-signature->canonical-sexp str) - "Return the value of a narinfo's 'Signature' field as a canonical sexp." - (match (string-split str #\;) - ((version host-name sig) - (let ((maybe-number (string->number version))) - (cond ((not (number? maybe-number)) - (leave (G_ "signature version must be a number: ~s~%") - version)) - ;; Currently, there are no other versions. - ((not (= 1 maybe-number)) - (leave (G_ "unsupported signature version: ~a~%") - maybe-number)) - (else - (let ((signature (utf8->string (base64-decode sig)))) - (catch 'gcry-error - (lambda () - (string->canonical-sexp signature)) - (lambda (key proc err) - (leave (G_ "signature is not a valid \ -s-expression: ~s~%") - signature)))))))) - (x - (leave (G_ "invalid format of the signature field: ~a~%") x)))) - -(define (narinfo-maker str cache-url) - "Return a narinfo constructor for narinfos originating from CACHE-URL. STR -must contain the original contents of a narinfo file." - (lambda (path urls compressions file-hashes file-sizes - nar-hash nar-size references deriver system - signature) - "Return a new <narinfo> object." - (define len (length urls)) - (%make-narinfo path cache-url - ;; Handle the case where URL is a relative URL. - (map (lambda (url) - (or (string->uri url) - (string->uri - (string-append cache-url "/" url)))) - urls) - compressions - (match file-sizes - (() (make-list len #f)) - ((lst ...) (map string->number lst))) - (match file-hashes - (() (make-list len #f)) - ((lst ...) (map string->number lst))) - nar-hash - (and=> nar-size string->number) - (string-tokenize references) - (match deriver - ((or #f "") #f) - (_ deriver)) - system - (false-if-exception - (and=> signature narinfo-signature->canonical-sexp)) - str))) - -(define* (read-narinfo port #:optional url - #:key size) - "Read a narinfo from PORT. If URL is true, it must be a string used to -build full URIs from relative URIs found while reading PORT. When SIZE is -true, read at most SIZE bytes from PORT; otherwise, read as much as possible. - -No authentication and authorization checks are performed here!" - (let ((str (utf8->string (if size - (get-bytevector-n port size) - (get-bytevector-all port))))) - (alist->record (call-with-input-string str fields->alist) - (narinfo-maker str url) - '("StorePath" "URL" "Compression" - "FileHash" "FileSize" "NarHash" "NarSize" - "References" "Deriver" "System" - "Signature") - '("URL" "Compression" "FileSize" "FileHash")))) - -(define (narinfo-sha256 narinfo) - "Return the sha256 hash of NARINFO as a bytevector, or #f if NARINFO lacks a -'Signature' field." - (define %mandatory-fields - ;; List of fields that must be signed. If they are not signed, the - ;; narinfo is considered unsigned. - '("StorePath" "NarHash" "References")) - - (let ((contents (narinfo-contents narinfo))) - (match (string-contains contents "Signature:") - (#f #f) - (index - (let* ((above-signature (string-take contents index)) - (signed-fields (match (call-with-input-string above-signature - fields->alist) - (((fields . values) ...) fields)))) - (and (every (cut member <> signed-fields) %mandatory-fields) - (sha256 (string->utf8 above-signature)))))))) - -(define* (valid-narinfo? narinfo #:optional (acl (current-acl)) - #:key verbose?) - "Return #t if NARINFO's signature is not valid." - (or (%allow-unauthenticated-substitutes?) - (let ((hash (narinfo-sha256 narinfo)) - (signature (narinfo-signature narinfo)) - (uri (uri->string (first (narinfo-uris narinfo))))) - (and hash signature - (signature-case (signature hash acl) - (valid-signature #t) - (invalid-signature - (when verbose? - (format (current-error-port) - "invalid signature for substitute at '~a'~%" - uri)) - #f) - (hash-mismatch - (when verbose? - (format (current-error-port) - "hash mismatch for substitute at '~a'~%" - uri)) - #f) - (unauthorized-key - (when verbose? - (format (current-error-port) - "substitute at '~a' is signed by an \ -unauthorized party~%" - uri)) - #f) - (corrupt-signature - (when verbose? - (format (current-error-port) - "corrupt signature for substitute at '~a'~%" - uri)) - #f)))))) - -(define (write-narinfo narinfo port) - "Write NARINFO to PORT." - (put-bytevector port (string->utf8 (narinfo-contents narinfo)))) - -(define (narinfo->string narinfo) - "Return the external representation of NARINFO." - (call-with-output-string (cut write-narinfo narinfo <>))) - -(define (string->narinfo str cache-uri) - "Return the narinfo represented by STR. Assume CACHE-URI as the base URI of -the cache STR originates form." - (call-with-input-string str (cut read-narinfo <> cache-uri))) - (define (narinfo-cache-file cache-url path) "Return the name of the local file that contains an entry for PATH. The entry is stored in a sub-directory specific to CACHE-URL." @@ -742,22 +534,6 @@ information is available locally." (let ((missing (fetch-narinfos cache missing))) (append cached (or missing '())))))) -(define (equivalent-narinfo? narinfo1 narinfo2) - "Return true if NARINFO1 and NARINFO2 are equivalent--i.e., if they describe -the same store item. This ignores unnecessary metadata such as the Nar URL." - (and (string=? (narinfo-hash narinfo1) - (narinfo-hash narinfo2)) - - ;; The following is not needed if all we want is to download a valid - ;; nar, but it's necessary if we want valid narinfo. - (string=? (narinfo-path narinfo1) - (narinfo-path narinfo2)) - (equal? (narinfo-references narinfo1) - (narinfo-references narinfo2)) - - (= (narinfo-size narinfo1) - (narinfo-size narinfo2)))) - (define (lookup-narinfos/diverse caches paths authorized?) "Look up narinfos for PATHS on all of CACHES, a list of URLS, in that order. That is, when a cache lacks an AUTHORIZED? narinfo, look it up in the next @@ -918,11 +694,14 @@ expected by the daemon." "Reply to COMMAND, a query as written by the daemon to this process's standard input. Use ACL as the access-control list against which to check authorized substitutes." - (define (valid? obj) - (valid-narinfo? obj acl)) + (define valid? + (if (%allow-unauthenticated-substitutes?) + (begin + (warn-about-missing-authentication) - (when (%allow-unauthenticated-substitutes?) - (warn-about-missing-authentication)) + (const #t)) + (lambda (obj) + (valid-narinfo? obj acl)))) (match (string-tokenize command) (("have" paths ..1) @@ -940,59 +719,6 @@ authorized substitutes." (wtf (error "unknown `--query' command" wtf)))) -(define %compression-methods - ;; Known compression methods and a thunk to determine whether they're - ;; supported. See 'decompressed-port' in (guix utils). - `(("gzip" . ,(const #t)) - ("lzip" . ,(const #t)) - ("xz" . ,(const #t)) - ("bzip2" . ,(const #t)) - ("none" . ,(const #t)))) - -(define (supported-compression? compression) - "Return true if COMPRESSION, a string, denotes a supported compression -method." - (match (assoc-ref %compression-methods compression) - (#f #f) - (supported? (supported?)))) - -(define (compresses-better? compression1 compression2) - "Return true if COMPRESSION1 generally compresses better than COMPRESSION2; -this is a rough approximation." - (match compression1 - ("none" #f) - ("gzip" (string=? compression2 "none")) - (_ (or (string=? compression2 "none") - (string=? compression2 "gzip"))))) - -(define (narinfo-best-uri narinfo) - "Select the \"best\" URI to download NARINFO's nar, and return three values: -the URI, its compression method (a string), and the compressed file size." - (define choices - (filter (match-lambda - ((uri compression file-size) - (supported-compression? compression))) - (zip (narinfo-uris narinfo) - (narinfo-compressions narinfo) - (narinfo-file-sizes narinfo)))) - - (define (file-size<? c1 c2) - (match c1 - ((uri1 compression1 (? integer? file-size1)) - (match c2 - ((uri2 compression2 (? integer? file-size2)) - (< file-size1 file-size2)) - (_ #t))) - ((uri compression1 #f) - (match c2 - ((uri2 compression2 _) - (compresses-better? compression1 compression2)))) - (_ #f))) ;we can't tell - - (match (sort choices file-size<?) - (((uri compression file-size) _ ...) - (values uri compression file-size)))) - (define %max-cached-connections ;; Maximum number of connections kept in cache by ;; 'open-connection-for-uri/cached'. @@ -1079,7 +805,9 @@ DESTINATION is in the store, deduplicate its files. Print a status line on the current output port." (define narinfo (lookup-narinfo cache-urls store-item - (cut valid-narinfo? <> acl))) + (if (%allow-unauthenticated-substitutes?) + (const #t) + (cut valid-narinfo? <> acl)))) (define destination-in-store? (string-prefix? (string-append (%store-prefix) "/") diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 51c8cf2f76..66225bff35 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -705,9 +705,11 @@ checking this by themselves in their 'check' procedure." image-size (* 70 (expt 2 20))) #:mappings mappings)) - ((disk-image) + ((image disk-image) (let* ((base-image (os->image os #:type image-type)) (base-target (image-target base-image))) + (when (eq? action 'disk-image) + (warning (G_ "'disk-image' is deprecated: use 'image' instead~%"))) (lower-object (system-image (image @@ -779,7 +781,7 @@ and TARGET arguments." "Perform ACTION for OS. INSTALL-BOOTLOADER? specifies whether to install bootloader; BOOTLOADER-TAGET is the target for the bootloader; TARGET is the target root directory; IMAGE-SIZE is the size of the image to be built, for -the 'vm-image' and 'disk-image' actions. IMAGE-TYPE is the type of image to +the 'vm-image' and 'image' actions. IMAGE-TYPE is the type of image to be built. When VOLATILE-ROOT? is #t, the root file system is mounted volatile. @@ -968,7 +970,7 @@ Some ACTIONS support additional ARGS.\n")) (display (G_ "\ vm-image build a freestanding virtual machine image\n")) (display (G_ "\ - disk-image build a disk image, suitable for a USB stick\n")) + image build a Guix System image\n")) (display (G_ "\ docker-image build a Docker image\n")) (display (G_ "\ @@ -994,15 +996,15 @@ Some ACTIONS support additional ARGS.\n")) (display (G_ " --list-image-types list available image types")) (display (G_ " - -t, --image-type=TYPE for 'disk-image', produce an image of TYPE")) + -t, --image-type=TYPE for 'image', produce an image of TYPE")) (display (G_ " --image-size=SIZE for 'vm-image', produce an image of SIZE")) (display (G_ " --no-bootloader for 'init', do not install a bootloader")) (display (G_ " - --volatile for 'disk-image', make the root file system volatile")) + --volatile for 'image', make the root file system volatile")) (display (G_ " - --label=LABEL for 'disk-image', label disk image with LABEL")) + --label=LABEL for 'image', label disk image with LABEL")) (display (G_ " --save-provenance save provenance information")) (display (G_ " @@ -1014,7 +1016,7 @@ Some ACTIONS support additional ARGS.\n")) (display (G_ " -N, --network for 'container', allow containers to access the network")) (display (G_ " - -r, --root=FILE for 'vm', 'vm-image', 'disk-image', 'container', + -r, --root=FILE for 'vm', 'vm-image', 'image', 'container', and 'build', make FILE a symlink to the result, and register it as a garbage collector root")) (display (G_ " @@ -1143,7 +1145,7 @@ Some ACTIONS support additional ARGS.\n")) (debug . 0) (verbosity . #f) ;default (validate-reconfigure . ,ensure-forward-reconfigure) - (image-type . raw) + (image-type . efi-raw) (image-size . guess) (install-bootloader? . #t) (label . #f) @@ -1335,7 +1337,7 @@ argument list and OPTS is the option alist." (alist-cons 'argument arg result) (let ((action (string->symbol arg))) (case action - ((build container vm vm-image disk-image reconfigure init + ((build container vm vm-image image disk-image reconfigure init extension-graph shepherd-graph list-generations describe delete-generations roll-back @@ -1368,7 +1370,8 @@ argument list and OPTS is the option alist." (exit 1)) (case action - ((build container vm vm-image disk-image docker-image reconfigure) + ((build container vm vm-image image disk-image docker-image + reconfigure) (unless (or (= count 1) (and expr (= count 0))) (fail))) diff --git a/guix/scripts/weather.scm b/guix/scripts/weather.scm index f28070ddc4..97e4a73802 100644 --- a/guix/scripts/weather.scm +++ b/guix/scripts/weather.scm @@ -33,6 +33,7 @@ #:use-module ((guix build syscalls) #:select (terminal-columns)) #:use-module ((guix build utils) #:select (every*)) #:use-module (guix scripts substitute) + #:use-module (guix narinfo) #:use-module (guix http-client) #:use-module (guix ci) #:use-module (guix sets) diff --git a/guix/self.scm b/guix/self.scm index e2e3198057..15c8ad4eb9 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -59,6 +59,7 @@ ("guile-sqlite3" (ref '(gnu packages guile) 'guile-sqlite3)) ("guile-zlib" (ref '(gnu packages guile) 'guile-zlib)) ("guile-lzlib" (ref '(gnu packages guile) 'guile-lzlib)) + ("guile-zstd" (ref '(gnu packages guile) 'guile-zstd)) ("guile-gcrypt" (ref '(gnu packages gnupg) 'guile-gcrypt)) ("gnutls" (ref '(gnu packages tls) 'gnutls)) ("gzip" (ref '(gnu packages compression) 'gzip)) @@ -823,6 +824,9 @@ itself." (define guile-lzlib (specification->package "guile-lzlib")) + (define guile-zstd + (specification->package "guile-zstd")) + (define guile-gcrypt (specification->package "guile-gcrypt")) @@ -836,7 +840,7 @@ itself." (append-map transitive-package-dependencies (list guile-gcrypt gnutls guile-git guile-avahi guile-json guile-semver guile-ssh guile-sqlite3 - guile-zlib guile-lzlib))) + guile-zlib guile-lzlib guile-zstd))) (define *core-modules* (scheme-node "guix-core" diff --git a/guix/serialization.scm b/guix/serialization.scm index 59cd93fb18..9d0739f6c5 100644 --- a/guix/serialization.scm +++ b/guix/serialization.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,7 +34,7 @@ write-bytevector write-string read-string read-latin1-string read-maybe-utf8-string write-string-list read-string-list - write-string-pairs + write-string-pairs read-string-pairs write-store-path read-store-path write-store-path-list read-store-path-list (dump . dump-port*) @@ -166,6 +166,14 @@ substitute invalid byte sequences with question marks. This is a (write-int (length l) p) (for-each (cut write-string <> p) l)) +(define (read-string-list p) + (let ((len (read-int p))) + (unfold (cut >= <> len) + (lambda (i) + (read-string p)) + 1+ + 0))) + (define (write-string-pairs l p) (write-int (length l) p) (for-each (match-lambda @@ -174,11 +182,11 @@ substitute invalid byte sequences with question marks. This is a (write-string second p))) l)) -(define (read-string-list p) +(define (read-string-pairs p) (let ((len (read-int p))) (unfold (cut >= <> len) (lambda (i) - (read-string p)) + (cons (read-string p) (read-string p))) 1+ 0))) diff --git a/guix/store.scm b/guix/store.scm index 4da39971b5..e0b15abce3 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de> @@ -114,6 +114,7 @@ query-failed-paths clear-failed-paths ensure-path + find-roots add-temp-root add-indirect-root add-permanent-root @@ -340,7 +341,8 @@ (write-string (bytevector->base16-string arg) p)))) (define-syntax read-arg - (syntax-rules (integer boolean string store-path store-path-list string-list + (syntax-rules (integer boolean string store-path + store-path-list string-list string-pairs substitutable-path-list path-info base16) ((_ integer p) (read-int p)) @@ -354,6 +356,8 @@ (read-store-path-list p)) ((_ string-list p) (read-string-list p)) + ((_ string-pairs p) + (read-string-pairs p)) ((_ substitutable-path-list p) (read-substitutable-path-list p)) ((_ path-info p) @@ -1404,6 +1408,15 @@ running a substitute. As a GC root is not created by the daemon, you may want to call ADD-TEMP-ROOT on that store path." boolean) +(define-operation (find-roots) + "Return a list of root/target pairs: for each pair, the first element is the +GC root file name and the second element is its target in the store. + +When talking to a local daemon, this operation is equivalent to the 'gc-roots' +procedure in (guix store roots), except that the 'find-roots' excludes +potential roots that do not point to store items." + string-pairs) + (define-operation (add-temp-root (store-path path)) "Make PATH a temporary root for the duration of the current session. Return #t." diff --git a/guix/swh.scm b/guix/swh.scm index 0b765cc743..f11b7ea2d5 100644 --- a/guix/swh.scm +++ b/guix/swh.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; ;;; This file is part of GNU Guix. @@ -348,6 +348,7 @@ FALSE-IF-404? is true, return #f upon 404 responses." (checksums directory-entry-checksums "checksums" (match-lambda (#f #f) + ((? unspecified?) #f) (lst (json->checksums lst)))) (id directory-entry-id "dir_id") (length directory-entry-length) diff --git a/guix/transformations.scm b/guix/transformations.scm index 2385d3231e..4e9260350c 100644 --- a/guix/transformations.scm +++ b/guix/transformations.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +25,9 @@ #:autoload (guix download) (download-to-store) #:autoload (guix git-download) (git-reference? git-reference-url) #:autoload (guix git) (git-checkout git-checkout? git-checkout-url) + #:autoload (guix upstream) (package-latest-release* + upstream-source-version + upstream-source-signature-urls) #:use-module (guix utils) #:use-module (guix memoization) #:use-module (guix gexp) @@ -511,6 +514,42 @@ additional patches." (rewrite obj) obj))) +(define (transform-package-latest specs) + "Return a procedure that rewrites package graphs such that those in SPECS +are replaced by their latest upstream version." + (define (package-with-latest-upstream p) + (let ((source (package-latest-release* p))) + (cond ((not source) + (warning + (G_ "could not determine latest upstream release of '~a'~%") + (package-name p)) + p) + ((string=? (upstream-source-version source) + (package-version p)) + p) + (else + (unless (pair? (upstream-source-signature-urls source)) + (warning (G_ "cannot authenticate source of '~a', version ~a~%") + (package-name p) + (upstream-source-version source))) + + ;; TODO: Take 'upstream-source-input-changes' into account. + (package + (inherit p) + (version (upstream-source-version source)) + (source source)))))) + + (define rewrite + (package-input-rewriting/spec + (map (lambda (spec) + (cons spec package-with-latest-upstream)) + specs))) + + (lambda (obj) + (if (package? obj) + (rewrite obj) + obj))) + (define %transformations ;; Transformations that can be applied to things to build. The car is the ;; key used in the option alist, and the cdr is the transformation @@ -525,7 +564,8 @@ additional patches." (with-c-toolchain . ,transform-package-toolchain) (with-debug-info . ,transform-package-with-debug-info) (without-tests . ,transform-package-tests) - (with-patch . ,transform-package-patches))) + (with-patch . ,transform-package-patches) + (with-latest . ,transform-package-latest))) (define (transformation-procedure key) "Return the transformation procedure associated with KEY, a symbol such as @@ -567,6 +607,8 @@ additional patches." (parser 'without-tests)) (option '("with-patch") #t #f (parser 'with-patch)) + (option '("with-latest") #t #f + (parser 'with-latest)) (option '("help-transform") #f #f (lambda _ @@ -599,6 +641,9 @@ additional patches." --with-patch=PACKAGE=FILE add FILE to the list of patches of PACKAGE")) (display (G_ " + --with-latest=PACKAGE + use the latest upstream release of PACKAGE")) + (display (G_ " --with-c-toolchain=PACKAGE=TOOLCHAIN build PACKAGE and its dependents with TOOLCHAIN")) (display (G_ " diff --git a/guix/upstream.scm b/guix/upstream.scm index a8ed1d81cd..accd8967d8 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm @@ -31,8 +31,8 @@ #:use-module (guix base32) #:use-module (guix gexp) #:use-module (guix store) - #:use-module ((guix derivations) - #:select (built-derivations derivation->output-path)) + #:use-module ((guix derivations) #:select (built-derivations derivation->output-path)) + #:autoload (gcrypt hash) (port-sha256) #:use-module (guix monads) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) @@ -248,6 +248,9 @@ correspond to the same version." '() (importer-modules)))) +;; Tests need to mock this variable so mark it as "non-declarative". +(set! %updaters %updaters) + (define* (lookup-updater package #:optional (updaters (force %updaters))) "Return an updater among UPDATERS that matches PACKAGE, or #f if none of @@ -351,6 +354,27 @@ values: 'interactive' (default), 'always', and 'never'." data url) #f))))))) +(define-gexp-compiler (upstream-source-compiler (source <upstream-source>) + system target) + "Download SOURCE from its first URL and lower it as a fixed-output +derivation that would fetch it." + (mlet* %store-monad ((url -> (first (upstream-source-urls source))) + (signature + -> (and=> (upstream-source-signature-urls source) + first)) + (tarball ((store-lift download-tarball) url signature))) + (unless tarball + (raise (formatted-message (G_ "failed to fetch source from '~a'") + url))) + + ;; Instead of returning TARBALL, return a fixed-output derivation that + ;; would be able to re-download it. In practice, since TARBALL is already + ;; in the store, no extra download will happen, but having the derivation + ;; in store improves provenance tracking. + (let ((hash (call-with-input-file tarball port-sha256))) + (url-fetch url 'sha256 hash (store-path-package-name tarball) + #:system system)))) + (define (find2 pred lst1 lst2) "Like 'find', but operate on items from both LST1 and LST2. Return two values: the item from LST1 and the item from LST2 that match PRED." diff --git a/guix/utils.scm b/guix/utils.scm index 0df46f1062..f8b05e7e80 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -110,7 +110,6 @@ edit-expression filtered-port - compressed-port decompressed-port call-with-decompressed-port compressed-output-port @@ -211,7 +210,13 @@ buffered data is lost." "Return the lzip port produced by calling PROC (a symbol) on PORT and ARGS. Raise an error if lzlib support is missing." (let ((make-port (module-ref (resolve-interface '(lzlib)) proc))) - (values (make-port port) '()))) + (make-port port))) + +(define (zstd-port proc port . args) + "Return the zstd port produced by calling PROC (a symbol) on PORT and ARGS. +Raise an error if zstd support is missing." + (let ((make-port (module-ref (resolve-interface '(zstd)) proc))) + (make-port port))) (define (decompressed-port compression input) "Return an input port where INPUT is decompressed according to COMPRESSION, @@ -223,17 +228,7 @@ a symbol such as 'xz." ('gzip (filtered-port `(,%gzip "-dc") input)) ('lzip (values (lzip-port 'make-lzip-input-port input) '())) - (_ (error "unsupported compression scheme" compression)))) - -(define (compressed-port compression input) - "Return an input port where INPUT is compressed according to COMPRESSION, -a symbol such as 'xz." - (match compression - ((or #f 'none) (values input '())) - ('bzip2 (filtered-port `(,%bzip2 "-c") input)) - ('xz (filtered-port `(,%xz "-c") input)) - ('gzip (filtered-port `(,%gzip "-c") input)) - ('lzip (values (lzip-port 'make-lzip-input-port/compressed input) + ('zstd (values (zstd-port 'make-zstd-input-port input) '())) (_ (error "unsupported compression scheme" compression)))) @@ -294,6 +289,8 @@ program--e.g., '(\"--fast\")." ('gzip (filtered-output-port `(,%gzip "-c" ,@options) output)) ('lzip (values (lzip-port 'make-lzip-output-port output) '())) + ('zstd (values (zstd-port 'make-zstd-output-port output) + '())) (_ (error "unsupported compression scheme" compression)))) (define* (call-with-compressed-output-port compression port proc diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index 1aec3bef3c..666e630adf 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -87,6 +87,7 @@ guix/ui.scm guix/status.scm guix/http-client.scm guix/nar.scm +guix/narinfo.scm guix/channels.scm guix/profiles.scm guix/git.scm diff --git a/tests/challenge.scm b/tests/challenge.scm index 9c6d6e0d58..fdd5fd238e 100644 --- a/tests/challenge.scm +++ b/tests/challenge.scm @@ -27,8 +27,8 @@ #:use-module (guix packages) #:use-module (guix gexp) #:use-module (guix base32) + #:use-module (guix narinfo) #:use-module (guix scripts challenge) - #:use-module (guix scripts substitute) #:use-module ((guix build utils) #:select (find-files)) #:use-module (gnu packages bootstrap) #:use-module (srfi srfi-1) diff --git a/tests/crate.scm b/tests/crate.scm index bb7032c344..b6c3a7ee2e 100644 --- a/tests/crate.scm +++ b/tests/crate.scm @@ -148,7 +148,7 @@ \"crate_id\": \"intermediate-b\", \"kind\": \"normal\", \"req\": \"^1.0.0\" - } + }, { \"crate_id\": \"leaf-alice\", \"kind\": \"normal\", diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh index f8be48f0c0..afadcbe195 100644 --- a/tests/guix-environment.sh +++ b/tests/guix-environment.sh @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> +# Copyright © 2015, 2016, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org> # # This file is part of GNU Guix. # @@ -121,6 +121,12 @@ guix environment --bootstrap -r "$gcroot" --ad-hoc guile-bootstrap \ test `readlink "$gcroot"` = "$expected" rm "$gcroot" +# Try '-r' with a relative file name. +(cd "$tmpdir"; mkdir "gc-root"; + guix environment --bootstrap -r "gc-root/r" --ad-hoc guile-bootstrap \ + -- guile -c 1; + rm "gc-root/r"; rmdir "gc-root") + # Same with an absolute file name. guix environment --bootstrap -r "$PWD/$gcroot" --ad-hoc guile-bootstrap \ -- guile -c 1 diff --git a/tests/guix-system.sh b/tests/guix-system.sh index f14c92ca75..f5ddd1dda3 100644 --- a/tests/guix-system.sh +++ b/tests/guix-system.sh @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +# Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> # Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> # Copyright © 2018 Chris Marusich <cmmarusich@gmail.com> # @@ -204,7 +204,8 @@ cat > "$tmpfile" <<EOF (shepherd-service (provision '(buggy!)) (requirement '(does-not-exist)) - (start #t))))) + (start #t))) + (description "Buggy."))) (operating-system $OS_BASE @@ -261,8 +262,8 @@ guix system vm "$tmpfile" -d | grep '\.drv$' drv1="`guix system vm "$tmpfile" -d`" drv2="`guix system vm "$tmpfile" -d`" test "$drv1" = "$drv2" -drv1="`guix system disk-image -t iso9660 "$tmpfile" -d`" -drv2="`guix system disk-image -t iso9660 "$tmpfile" -d`" +drv1="`guix system image -t iso9660 "$tmpfile" -d`" +drv2="`guix system image -t iso9660 "$tmpfile" -d`" test "$drv1" = "$drv2" make_user_config "group-that-does-not-exist" "users" diff --git a/tests/inferior.scm b/tests/inferior.scm index 5fddb1fd13..7c3d730d0c 100644 --- a/tests/inferior.scm +++ b/tests/inferior.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -75,6 +75,18 @@ (inferior-eval '(throw 'a 'b 'c 'd) inferior) 'badness))) +(test-equal "&inferior-exception, legacy mode" + '(a b c d) + ;; Omit #:command to open an inferior in "legacy" mode, where Guile runs + ;; directly. + (let ((inferior (open-inferior %top-builddir))) + (guard (c ((inferior-exception? c) + (close-inferior inferior) + (and (eq? inferior (inferior-exception-inferior c)) + (inferior-exception-arguments c)))) + (inferior-eval '(throw 'a 'b 'c 'd) inferior) + 'badness))) + (test-equal "inferior-packages" (take (sort (fold-packages (lambda (package lst) (cons (list (package-name package) @@ -213,6 +225,26 @@ "uh uh"))) #f))) +(test-equal "inferior-eval-with-store, exception" + '(the-answer = 42) + (let ((inferior (open-inferior %top-builddir + #:command "scripts/guix"))) + (guard (c ((inferior-exception? c) + (close-inferior inferior) + (inferior-exception-arguments c))) + (inferior-eval-with-store inferior %store + '(lambda (store) + (throw 'the-answer '= 42)))))) + +(test-equal "inferior-eval-with-store, not a procedure" + 'wrong-type-arg + (let ((inferior (open-inferior %top-builddir + #:command "scripts/guix"))) + (guard (c ((inferior-exception? c) + (close-inferior inferior) + (car (inferior-exception-arguments c)))) + (inferior-eval-with-store inferior %store '(+ 1 2))))) + (test-equal "inferior-package-derivation" (map derivation-file-name (list (package-derivation %store %bootstrap-guile "x86_64-linux") diff --git a/tests/networking.scm b/tests/networking.scm index c494a48067..f2421370d2 100644 --- a/tests/networking.scm +++ b/tests/networking.scm @@ -68,8 +68,7 @@ (listen-on '("127.0.0.1" "::1")) (sensor '("udcf0 correction 70000")) (constraint-from '("www.gnu.org")) - (constraints-from '("https://www.google.com/")) - (allow-large-adjustment? #t))) + (constraints-from '("https://www.google.com/")))) (test-assert "openntpd configuration generation sanity check" diff --git a/tests/publish.scm b/tests/publish.scm index cafd0f13a2..52101876b5 100644 --- a/tests/publish.scm +++ b/tests/publish.scm @@ -38,6 +38,7 @@ #:use-module ((guix pki) #:select (%public-key-file %private-key-file)) #:use-module (zlib) #:use-module (lzlib) + #:autoload (zstd) (call-with-zstd-input-port) #:use-module (web uri) #:use-module (web client) #:use-module (web response) @@ -54,6 +55,9 @@ (define %store (open-connection-for-tests)) +(define (zstd-supported?) + (resolve-module '(zstd) #t #f #:ensure #f)) + (define %reference (add-text-to-store %store "ref" "foo")) (define %item (add-text-to-store %store "item" "bar" (list %reference))) @@ -237,6 +241,18 @@ References: ~%" (cut restore-file <> temp))) (call-with-input-file temp read-string)))) +(unless (zstd-supported?) (test-skip 1)) +(test-equal "/nar/zstd/*" + "bar" + (call-with-temporary-output-file + (lambda (temp port) + (let ((nar (http-get-port + (publish-uri + (string-append "/nar/zstd/" (basename %item)))))) + (call-with-zstd-input-port nar + (cut restore-file <> temp))) + (call-with-input-file temp read-string)))) + (test-equal "/*.narinfo with compression" `(("StorePath" . ,%item) ("URL" . ,(string-append "nar/gzip/" (basename %item))) diff --git a/tests/store.scm b/tests/store.scm index c9a08ac690..cda0e0302f 100644 --- a/tests/store.scm +++ b/tests/store.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -201,6 +201,17 @@ ;; (valid-path? %store p1) ;; (member (pk p2) (live-paths %store))))) +(test-assert "add-indirect-root and find-roots" + (call-with-temporary-directory + (lambda (directory) + (let* ((item (add-text-to-store %store "something" (random-text))) + (root (string-append directory "/gc-root"))) + (symlink item root) + (add-indirect-root %store root) + (let ((result (member (cons root item) (find-roots %store)))) + (delete-file root) + result))))) + (test-assert "permanent root" (let* ((p (with-store store (let ((p (add-text-to-store store "random-text" diff --git a/tests/substitute.scm b/tests/substitute.scm index 542aaf603f..697abc4684 100644 --- a/tests/substitute.scm +++ b/tests/substitute.scm @@ -19,6 +19,7 @@ (define-module (test-substitute) #:use-module (guix scripts substitute) + #:use-module (guix narinfo) #:use-module (guix base64) #:use-module (gcrypt hash) #:use-module (guix serialization) diff --git a/tests/swh.scm b/tests/swh.scm index 06984b2a80..a36f951241 100644 --- a/tests/swh.scm +++ b/tests/swh.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,15 +20,32 @@ #:use-module (guix swh) #:use-module (guix tests http) #:use-module (web response) - #:use-module (srfi srfi-64)) + #:use-module (srfi srfi-19) + #:use-module (srfi srfi-64) + #:use-module (ice-9 match)) ;; Test the JSON mapping machinery used in (guix swh). (define %origin - "{ \"visits_url\": \"/visits/42\", + "{ \"origin_visits_url\": \"/visits/42\", \"type\": \"git\", \"url\": \"http://example.org/guix.git\" }") +(define %visits + ;; A single visit where 'snapshot_url' is null. + ;; See <https://bugs.gnu.org/45615>. + "[ { + \"origin\": \"https://github.com/Genivia/ugrep\", + \"visit\": 1, + \"date\": \"2020-05-17T21:43:45.422977+00:00\", + \"status\": \"ongoing\", + \"snapshot\": null, + \"metadata\": {}, + \"type\": \"git\", + \"origin_visit_url\": \"https://archive.softwareheritage.org/api/1/origin/https://github.com/Genivia/ugrep/visit/1/\", + \"snapshot_url\": null + } ]") + (define %directory-entries "[ { \"name\": \"one\", \"type\": \"regular\", @@ -59,6 +76,20 @@ (parameterize ((%swh-base-url (%local-url))) (lookup-origin "http://example.org/whatever")))) +(test-equal "origin-visit, no snapshots" + '("https://github.com/Genivia/ugrep" + "2020-05-17T21:43:45Z" + #f) ;see <https://bugs.gnu.org/45615> + (with-http-server `((200 ,%origin) + (200 ,%visits)) + (parameterize ((%swh-base-url (%local-url))) + (let ((origin (lookup-origin "http://example.org/whatever"))) + (match (origin-visits origin) + ((visit) + (list (visit-origin visit) + (date->string (visit-date visit) "~4") + (visit-snapshot-url visit)))))))) + (test-equal "lookup-directory" '(("one" 123) ("two" 456)) (with-json-result %directory-entries diff --git a/tests/transformations.scm b/tests/transformations.scm index 9053deba41..7877029486 100644 --- a/tests/transformations.scm +++ b/tests/transformations.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2017, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,6 +30,7 @@ #:use-module (guix ui) #:use-module (guix utils) #:use-module (guix git) + #:use-module (guix upstream) #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages busybox) @@ -396,6 +397,22 @@ (map local-file-file (origin-patches (package-source dep))))))))) +(test-equal "options->transformation, with-latest" + "42.0" + (mock ((guix upstream) %updaters + (delay (list (upstream-updater + (name 'dummy) + (pred (const #t)) + (description "") + (latest (const (upstream-source + (package "foo") + (version "42.0") + (urls '("http://example.org"))))))))) + (let* ((p (dummy-package "foo" (version "1.0"))) + (t (options->transformation + `((with-latest . "foo"))))) + (package-version (t p))))) + (test-end) ;;; Local Variables: diff --git a/tests/utils.scm b/tests/utils.scm index 009e2121ab..9bce446d98 100644 --- a/tests/utils.scm +++ b/tests/utils.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> ;;; @@ -182,19 +182,34 @@ skip these tests." method) (let ((data (call-with-input-file (search-path %load-path "guix.scm") get-bytevector-all))) - (let*-values (((compressed pids1) - (compressed-port method (open-bytevector-input-port data))) - ((decompressed pids2) - (decompressed-port method compressed))) - (and (every (compose zero? cdr waitpid) - (pk 'pids method (append pids1 pids2))) - (let ((result (get-bytevector-all decompressed))) - (pk 'len method - (if (bytevector? result) - (bytevector-length result) - result) - (bytevector-length data)) - (equal? result data)))))) + (call-with-temporary-output-file + (lambda (output port) + (close-port port) + (let*-values (((compressed pids) + ;; Note: 'compressed-output-port' only supports file + ;; ports. + (compressed-output-port method + (open-file output "w0")))) + (put-bytevector compressed data) + (close-port compressed) + (and (every (compose zero? cdr waitpid) + (pk 'pids method pids)) + (let*-values (((decompressed pids) + (decompressed-port method + (open-bytevector-input-port + (call-with-input-file output + get-bytevector-all)))) + ((result) + (get-bytevector-all decompressed))) + (close-port decompressed) + (pk 'len method + (if (bytevector? result) + (bytevector-length result) + result) + (bytevector-length data)) + (and (every (compose zero? cdr waitpid) + (pk 'pids method pids)) + (equal? result data))))))))) (false-if-exception (delete-file temp-file)) (unless (run?) (test-skip 1)) @@ -213,8 +228,10 @@ skip these tests." get-bytevector-all))))) (for-each test-compression/decompression - '(gzip xz lzip) - (list (const #t) (const #t) (const #t))) + `(gzip xz lzip zstd) + (list (const #t) (const #t) (const #t) + (lambda () + (resolve-module '(zstd) #t #f #:ensure #f)))) ;; This is actually in (guix store). (test-equal "store-path-package-name" |