Merge branch 'master' into staging

This commit is contained in:
Marius Bakke 2023-01-10 00:24:11 +01:00
commit d9bcd1a8d6
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
41 changed files with 2702 additions and 19772 deletions

View File

@ -428,8 +428,6 @@ AUX_FILES = \
gnu/packages/aux-files/linux-libre/4.14-arm.conf \
gnu/packages/aux-files/linux-libre/4.14-i686.conf \
gnu/packages/aux-files/linux-libre/4.14-x86_64.conf \
gnu/packages/aux-files/linux-libre/4.9-i686.conf \
gnu/packages/aux-files/linux-libre/4.9-x86_64.conf \
gnu/packages/aux-files/pack-audit.c \
gnu/packages/aux-files/python/sanity-check.py \
gnu/packages/aux-files/python/sanity-check-next.py \

View File

@ -21,7 +21,8 @@ Copyright @copyright{} 2020 Brice Waegeneire@*
Copyright @copyright{} 2020 André Batista@*
Copyright @copyright{} 2020 Christine Lemmer-Webber@*
Copyright @copyright{} 2021 Joshua Branson@*
Copyright @copyright{} 2022 Maxim Cournoyer*
Copyright @copyright{} 2022 Maxim Cournoyer@*
Copyright @copyright{} 2023 Ludovic Courtès
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@ -73,8 +74,9 @@ Weblate} (@pxref{Translating Guix,,, guix, GNU Guix reference manual}).
* Packaging:: Packaging tutorials
* System Configuration:: Customizing the GNU System
* Containers:: Isolated environments and nested systems
* Advanced package management:: Power to the users!
* Advanced package management:: Power to the users!
* Environment management:: Control environment
* Installing Guix on a Cluster:: High-performance computing.
* Acknowledgments:: Thanks!
* GNU Free Documentation License:: The license of this document.
@ -83,28 +85,45 @@ Weblate} (@pxref{Translating Guix,,, guix, GNU Guix reference manual}).
@detailmenu
--- The Detailed Node Listing ---
Scheme tutorials
* A Scheme Crash Course:: Learn the basics of Scheme
Packaging
* Packaging Tutorial:: Let's add a package to Guix!
* Packaging Tutorial:: A tutorial on how to add packages to Guix.
System Configuration
* Auto-Login to a Specific TTY:: Automatically Login a User to a Specific TTY
* Customizing the Kernel:: Creating and using a custom Linux kernel on Guix System.
* Guix System Image API:: Customizing images to target specific platforms.
* Using security keys:: How to use security keys with Guix System.
* 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. Running Guix on a Linode Server
* Setting up a bind mount:: Setting up a bind mount in the file-systems definition.
* Getting substitutes from Tor:: Configuring Guix daemon to get substitutes through Tor.
* Setting up NGINX with Lua:: Configuring NGINX web-server to load Lua modules.
* Auto-Login to a Specific TTY:: Automatically Login a User to a Specific TTY
* Customizing the Kernel:: Creating and using a custom Linux kernel on Guix System.
* Guix System Image API:: Customizing images to target specific platforms.
* Using security keys:: How to use security keys with Guix System.
* 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
* Setting up a bind mount:: Setting up a bind mount in the file-systems definition.
* Getting substitutes from Tor:: Configuring Guix daemon to get substitutes through Tor.
* Setting up NGINX with Lua:: Configuring NGINX web-server to load Lua modules.
* Music Server with Bluetooth Audio:: Headless music player with Bluetooth output.
Containers
* Guix Containers:: Perfectly isolated environments
* Guix System Containers:: A system inside your system
Advanced package management
* Guix Profiles in Practice:: Strategies for multiple profiles and manifests.
Environment management
* Guix environment via direnv:: Setup Guix environment with direnv
Installing Guix on a Cluster
* Setting Up a Head Node:: The node that runs the daemon.
* Setting Up Compute Nodes:: Client nodes.
* Cluster Network Access:: Dealing with network access restrictions.
* Cluster Disk Usage:: Disk usage considerations.
* Cluster Security Considerations:: Keeping the cluster secure.
@end detailmenu
@end menu
@ -3635,6 +3654,380 @@ will have predefined environment variables and procedures.
Run @command{direnv allow} to setup the environment for the first time.
@c *********************************************************************
@node Installing Guix on a Cluster
@chapter Installing Guix on a Cluster
@cindex cluster installation
@cindex high-performance computing, HPC
@cindex HPC, high-performance computing
Guix is appealing to scientists and @acronym{HPC, high-performance
computing} practitioners: it makes it easy to deploy potentially complex
software stacks, and it lets you do so in a reproducible fashion---you
can redeploy the exact same software on different machines and at
different points in time.
In this chapter we look at how a cluster sysadmin can install Guix for
system-wide use, such that it can be used on all the cluster nodes, and
discuss the various tradeoffs@footnote{This chapter is adapted from a
@uref{https://hpc.guix.info/blog/2017/11/installing-guix-on-a-cluster/,
blog post published on the Guix-HPC web site in 2017}.}.
@quotation Note
Here we assume that the cluster is running a GNU/Linux distro other than
Guix System and that we are going to install Guix on top of it.
@end quotation
@menu
* Setting Up a Head Node:: The node that runs the daemon.
* Setting Up Compute Nodes:: Client nodes.
* Cluster Network Access:: Dealing with network access restrictions.
* Cluster Disk Usage:: Disk usage considerations.
* Cluster Security Considerations:: Keeping the cluster secure.
@end menu
@node Setting Up a Head Node
@section Setting Up a Head Node
The recommended approach is to set up one @emph{head node} running
@command{guix-daemon} and exporting @file{/gnu/store} over NFS to
compute nodes.
Remember that @command{guix-daemon} is responsible for spawning build
processes and downloads on behalf of clients (@pxref{Invoking
guix-daemon,,, guix, GNU Guix Reference Manual}), and more generally
accessing @file{/gnu/store}, which contains all the package binaries
built by all the users (@pxref{The Store,,, guix, GNU Guix Reference
Manual}). ``Client'' here refers to all the Guix commands that users
see, such as @code{guix install}. On a cluster, these commands may be
running on the compute nodes and we'll want them to talk to the head
node's @code{guix-daemon} instance.
To begin with, the head node can be installed following the usual binary
installation instructions (@pxref{Binary Installation,,, guix, GNU Guix
Reference Manual}). Thanks to the installation script, this should be
quick. Once installation is complete, we need to make some adjustments.
Since we want @code{guix-daemon} to be reachable not just from the head
node but also from the compute nodes, we need to arrange so that it
listens for connections over TCP/IP. To do that, we'll edit the systemd
startup file for @command{guix-daemon},
@file{/etc/systemd/system/guix-daemon.service}, and add a
@code{--listen} argument to the @code{ExecStart} line so that it looks
something like this:
@example
ExecStart=/var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild --listen=/var/guix/daemon-socket/socket --listen=0.0.0.0
@end example
For these changes to take effect, the service needs to be restarted:
@example
systemctl daemon-reload
systemctl restart guix-daemon
@end example
@quotation Note
The @code{--listen=0.0.0.0} bit means that @code{guix-daemon} will
process @emph{all} incoming TCP connections on port 44146
(@pxref{Invoking guix-daemon,,, guix, GNU Guix Reference Manual}). This
is usually fine in a cluster setup where the head node is reachable
exclusively from the cluster's local area network---you don't want that
to be exposed to the Internet!
@end quotation
The next step is to define our NFS exports in
@uref{https://linux.die.net/man/5/exports,@file{/etc/exports}} by adding
something along these lines:
@example
/gnu/store *(ro)
/var/guix *(rw, async)
/var/log/guix *(ro)
@end example
The @file{/gnu/store} directory can be exported read-only since only
@command{guix-daemon} on the master node will ever modify it.
@file{/var/guix} contains @emph{user profiles} as managed by @code{guix
package}; thus, to allow users to install packages with @code{guix
package}, this must be read-write.
Users can create as many profiles as they like in addition to the
default profile, @file{~/.guix-profile}. For instance, @code{guix
package -p ~/dev/python-dev -i python} installs Python in a profile
reachable from the @code{~/dev/python-dev} symlink. To make sure that
this profile is protected from garbage collection---i.e., that Python
will not be removed from @file{/gnu/store} while this profile exists---,
@emph{home directories should be mounted on the head node} as well so
that @code{guix-daemon} knows about these non-standard profiles and
avoids collecting software they refer to.
It may be a good idea to periodically remove unused bits from
@file{/gnu/store} by running @command{guix gc} (@pxref{Invoking guix
gc,,, guix, GNU Guix Reference Manual}). This can be done by adding a
crontab entry on the head node:
@example
root@@master# crontab -e
@end example
@noindent
... with something like this:
@example
# Every day at 5AM, run the garbage collector to make sure
# at least 10 GB are free on /gnu/store.
0 5 * * 1 /usr/local/bin/guix gc -F10G
@end example
We're done with the head node! Let's look at compute nodes now.
@node Setting Up Compute Nodes
@section Setting Up Compute Nodes
First of all, we need compute nodes to mount those NFS directories that
the head node exports. This can be done by adding the following lines
to @uref{https://linux.die.net/man/5/fstab,@file{/etc/fstab}}:
@example
@var{head-node}:/gnu/store /gnu/store nfs defaults,_netdev,vers=3 0 0
@var{head-node}:/var/guix /var/guix nfs defaults,_netdev,vers=3 0 0
@var{head-node}:/var/log/guix /var/log/guix nfs defaults,_netdev,vers=3 0 0
@end example
@noindent
... where @var{head-node} is the name or IP address of your head node.
From there on, assuming the mount points exist, you should be able to
mount each of these on the compute nodes.
Next, we need to provide a default @command{guix} command that users can
run when they first connect to the cluster (eventually they will invoke
@command{guix pull}, which will provide them with their ``own''
@command{guix} command). Similar to what the binary installation script
did on the head node, we'll store that in @file{/usr/local/bin}:
@example
mkdir -p /usr/local/bin
ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix \
/usr/local/bin/guix
@end example
We then need to tell @code{guix} to talk to the daemon running on our
master node, by adding these lines to @code{/etc/profile}:
@example
GUIX_DAEMON_SOCKET="guix://@var{head-node}"
export GUIX_DAEMON_SOCKET
@end example
To avoid warnings and make sure @code{guix} uses the right locale, we
need to tell it to use locale data provided by Guix (@pxref{Application
Setup,,, guix, GNU Guix Reference Manual}):
@example
GUIX_LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale
export GUIX_LOCPATH
# Here we must use a valid locale name. Try "ls $GUIX_LOCPATH/*"
# to see what names can be used.
LC_ALL=fr_FR.utf8
export LC_ALL
@end example
For convenience, @code{guix package} automatically generates
@file{~/.guix-profile/etc/profile}, which defines all the environment
variables necessary to use the packages---@code{PATH},
@code{C_INCLUDE_PATH}, @code{PYTHONPATH}, etc. Thus it's a good idea to
source it from @code{/etc/profile}:
@example
GUIX_PROFILE="$HOME/.guix-profile"
if [ -f "$GUIX_PROFILE/etc/profile" ]; then
. "$GUIX_PROFILE/etc/profile"
fi
@end example
Last but not least, Guix provides command-line completion notably for
Bash and zsh. In @code{/etc/bashrc}, consider adding this line:
@verbatim
. /var/guix/profiles/per-user/root/current-guix/etc/bash_completion.d/guix
@end verbatim
Voilà!
You can check that everything's in place by logging in on a compute node
and running:
@example
guix install hello
@end example
The daemon on the head node should download pre-built binaries on your
behalf and unpack them in @file{/gnu/store}, and @command{guix install}
should create @file{~/.guix-profile} containing the
@file{~/.guix-profile/bin/hello} command.
@node Cluster Network Access
@section Network Access
Guix requires network access to download source code and pre-built
binaries. The good news is that only the head node needs that since
compute nodes simply delegate to it.
It is customary for cluster nodes to have access at best to a
@emph{white list} of hosts. Our head node needs at least
@code{ci.guix.gnu.org} in this white list since this is where it gets
pre-built binaries from by default, for all the packages that are in
Guix proper.
Incidentally, @code{ci.guix.gnu.org} also serves as a
@emph{content-addressed mirror} of the source code of those packages.
Consequently, it is sufficient to have @emph{only}
@code{ci.guix.gnu.org} in that white list.
Software packages maintained in a separate repository such as one of the
various @uref{https://hpc.guix.info/channels, HPC channels} are of
course unavailable from @code{ci.guix.gnu.org}. For these packages, you
may want to extend the white list such that source and pre-built
binaries (assuming this-party servers provide binaries for these
packages) can be downloaded. As a last resort, users can always
download source on their workstation and add it to the cluster's
@file{/gnu/store}, like this:
@verbatim
GUIX_DAEMON_SOCKET=ssh://compute-node.example.org \
guix download http://starpu.gforge.inria.fr/files/starpu-1.2.3/starpu-1.2.3.tar.gz
@end verbatim
The above command downloads @code{starpu-1.2.3.tar.gz} @emph{and} sends
it to the cluster's @code{guix-daemon} instance over SSH.
Air-gapped clusters require more work. At the moment, our suggestion
would be to download all the necessary source code on a workstation
running Guix. For instance, using the @option{--sources} option of
@command{guix build} (@pxref{Invoking guix build,,, guix, GNU Guix
Reference Manual}), the example below downloads all the source code the
@code{openmpi} package depends on:
@example
$ guix build --sources=transitive openmpi
@dots{}
/gnu/store/xc17sm60fb8nxadc4qy0c7rqph499z8s-openmpi-1.10.7.tar.bz2
/gnu/store/s67jx92lpipy2nfj5cz818xv430n4b7w-gcc-5.4.0.tar.xz
/gnu/store/npw9qh8a46lrxiwh9xwk0wpi3jlzmjnh-gmp-6.0.0a.tar.xz
/gnu/store/hcz0f4wkdbsvsdky3c0vdvcawhdkyldb-mpfr-3.1.5.tar.xz
/gnu/store/y9akh452n3p4w2v631nj0injx7y0d68x-mpc-1.0.3.tar.gz
/gnu/store/6g5c35q8avfnzs3v14dzl54cmrvddjm2-glibc-2.25.tar.xz
/gnu/store/p9k48dk3dvvk7gads7fk30xc2pxsd66z-hwloc-1.11.8.tar.bz2
/gnu/store/cry9lqidwfrfmgl0x389cs3syr15p13q-gcc-5.4.0.tar.xz
/gnu/store/7ak0v3rzpqm2c5q1mp3v7cj0rxz0qakf-libfabric-1.4.1.tar.bz2
/gnu/store/vh8syjrsilnbfcf582qhmvpg1v3rampf-rdma-core-14.tar.gz
@end example
(In case you're wondering, that's more than 320@ MiB of
@emph{compressed} source code.)
We can then make a big archive containing all of this (@pxref{Invoking
guix archive,,, guix, GNU Guix Reference Manual}):
@verbatim
$ guix archive --export \
`guix build --sources=transitive openmpi` \
> openmpi-source-code.nar
@end verbatim
@dots{} and we can eventually transfer that archive to the cluster on
removable storage and unpack it there:
@verbatim
$ guix archive --import < openmpi-source-code.nar
@end verbatim
This process has to be repeated every time new source code needs to be
brought to the cluster.
As we write this, the research institutes involved in Guix-HPC do not
have air-gapped clusters though. If you have experience with such
setups, we would like to hear feedback and suggestions.
@node Cluster Disk Usage
@section Disk Usage
@cindex disk usage, on a cluster
A common concern of sysadmins' is whether this is all going to eat a lot
of disk space. If anything, if something is going to exhaust disk
space, it's going to be scientific data sets rather than compiled
software---that's our experience with almost ten years of Guix usage on
HPC clusters. Nevertheless, it's worth taking a look at how Guix
contributes to disk usage.
First, having several versions or variants of a given package in
@file{/gnu/store} does not necessarily cost much, because
@command{guix-daemon} implements deduplication of identical files, and
package variants are likely to have a number of common files.
As mentioned above, we recommend having a cron job to run @code{guix gc}
periodically, which removes @emph{unused} software from
@file{/gnu/store}. However, there's always a possibility that users will
keep lots of software in their profiles, or lots of old generations of
their profiles, which is ``live'' and cannot be deleted from the
viewpoint of @command{guix gc}.
The solution to this is for users to regularly remove old generations of
their profile. For instance, the following command removes generations
that are more than two-month old:
@example
guix package --delete-generations=2m
@end example
Likewise, it's a good idea to invite users to regularly upgrade their
profile, which can reduce the number of variants of a given piece of
software stored in @file{/gnu/store}:
@example
guix pull
guix upgrade
@end example
As a last resort, it is always possible for sysadmins to do some of this
on behalf of their users. Nevertheless, one of the strengths of Guix is
the freedom and control users get on their software environment, so we
strongly recommend leaving users in control.
@node Cluster Security Considerations
@section Security Considerations
@cindex security, on a cluster
On an HPC cluster, Guix is typically used to manage scientific software.
Security-critical software such as the operating system kernel and
system services such as @code{sshd} and the batch scheduler remain under
control of sysadmins.
The Guix project has a good track record delivering security updates in
a timely fashion (@pxref{Security Updates,,, guix, GNU Guix Reference
Manual}). To get security updates, users have to run @code{guix pull &&
guix upgrade}.
Because Guix uniquely identifies software variants, it is easy to see if
a vulnerable piece of software is in use. For instance, to check whether
the glibc@ 2.25 variant without the mitigation patch against
``@uref{https://www.qualys.com/2017/06/19/stack-clash/stack-clash.txt,Stack
Clash}'', one can check whether user profiles refer to it at all:
@example
guix gc --referrers /gnu/store/…-glibc-2.25
@end example
This will report whether profiles exist that refer to this specific
glibc variant.
@c *********************************************************************
@node Acknowledgments
@chapter Acknowledgments
@ -3656,8 +4049,10 @@ information on these fine people. The @file{THANKS} file lists people
who have helped by reporting bugs, taking care of the infrastructure,
providing artwork and themes, making suggestions, and more---thank you!
This document includes adapted sections from articles that have previously
been published on the Guix blog at @uref{https://guix.gnu.org/blog}.
This document includes adapted sections from articles that have
previously been published on the Guix blog at
@uref{https://guix.gnu.org/blog} and on the Guix-HPC blog at
@uref{https://hpc.guix.info/blog}.
@c *********************************************************************

View File

@ -18482,6 +18482,10 @@ herd set-http-proxy guix-daemon
@item @code{tmpdir} (default: @code{#f})
A directory path where the @command{guix-daemon} will perform builds.
@item @code{environment} (default: @code{'()})
Environment variables to be set before starting the daemon, as a list of
@code{key=value} strings.
@end table
@end deftp

View File

@ -5,7 +5,7 @@
;; Copyright © 2019, 2020 Miguel Ángel Arruga Vivas <rosen644835@gmail.com>
;; Copyright © 2019, 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
;; Copyright © 2019, 2020, 2021 Julien Lepiller <julien@lepiller.eu>
;; Copyright © 20192022 Florian Pelz <pelzflorian@pelzflorian.de>
;; Copyright © 20192023 Florian Pelz <pelzflorian@pelzflorian.de>
;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
;; Copyright © 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com>
;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@ -26,6 +26,18 @@
(channel-news
(version 0)
(entry (commit "064c5b7e450f9f6d55cfcd0ec2bc9e96ee0b2958")
(title
(en "Linux-libre 4.9 removed due to end of upstream support")
(de "Linux-libre 4.9 wurde entfernt"))
(body
(en "The linux-libre 4.9 kernel series has reach the end of its life,
and is no longer supported upstream. For this reason, it has been removed from
GNU Guix.")
(de "Vom Kernel @code{linux-libre} wird die 4.9-Versionsreihe keine
Unterstützung von dessen Anbieter mehr erfahren (end of life). Daher ist es
aus GNU Guix entfernt worden.")))
(entry (commit "dfc6957a5af7d179d4618eb19d4f555c519bc6f2")
(title
(en "New @code{customize-linux} procedure")

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2021-2023 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2022-2023 Ludovic Courtès <ludo@gnu.org>
;;;
@ -192,7 +192,7 @@ ensures variable values are properly quoted."
(list->string (string-fold-right
(lambda (chr lst)
(if (memq chr quoted-chars)
(append (list chr #\\) lst)
(append (list #\\ chr) lst)
(cons chr lst)))
'()
value))))
@ -212,7 +212,9 @@ ensures variable values are properly quoted."
"")
((key . #t)
#~(string-append "export " #$key "\n"))
((key . (? string? value))
((key . (or (? string? value)
(? file-like? value)
(? gexp? value)))
#~(string-append "export " #$key "="
(shell-double-quote #$value)
"\n"))

View File

@ -338,9 +338,11 @@ GNU_SYSTEM_MODULES = \
%D%/packages/iso-codes.scm \
%D%/packages/jami.scm \
%D%/packages/java.scm \
%D%/packages/java-bootstrap.scm \
%D%/packages/java-compression.scm \
%D%/packages/java-graphics.scm \
%D%/packages/java-maths.scm \
%D%/packages/java-xml.scm \
%D%/packages/javascript.scm \
%D%/packages/jemalloc.scm \
%D%/packages/jrnl.scm \
@ -1713,6 +1715,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-3-fix-tests.patch \
%D%/packages/patches/python-3-hurd-configure.patch \
%D%/packages/patches/python-3-no-static-lib.patch \
%D%/packages/patches/python-afdko-suppress-copyright-test.patch \
%D%/packages/patches/python-aionotify-0.2.0-py3.8.patch \
%D%/packages/patches/python-argcomplete-1.11.1-fish31.patch \
%D%/packages/patches/python-cross-compile.patch \

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -33,11 +33,11 @@
#:use-module (gnu packages flashing-tools)
#:use-module (gnu packages java)
#:use-module (gnu packages java-graphics)
#:use-module (gnu packages java-xml)
#:use-module (gnu packages libusb)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages textutils)
#:use-module (gnu packages version-control)
#:use-module (gnu packages xml))
#:use-module (gnu packages version-control))
;; XXX The patch does not apply to libusb 1.0.24.
;; See https://github.com/axoloti/axoloti/issues/464

View File

@ -27,8 +27,8 @@
#:use-module (gnu packages)
#:use-module (gnu packages compression)
#:use-module (gnu packages java)
#:use-module (gnu packages textutils)
#:use-module (gnu packages xml))
#:use-module (gnu packages java-xml)
#:use-module (gnu packages textutils))
(define-public java-w3c-smil-3.0
(package

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015-2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018, 2020, 2021 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
@ -4997,13 +4997,13 @@ only one command.")
(define-public r-biocparallel
(package
(name "r-biocparallel")
(version "1.32.4")
(version "1.32.5")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "BiocParallel" version))
(sha256
(base32
"1m4i27zx3ajwygwp38lrxf36rs575dkaxxc6jawpj1kzn7whi5ym"))))
"1yd6ln9cl3dcvfziar52fkvqi2lzm31l7j21r1rwl1mpkz0xapir"))))
(properties
`((upstream-name . "BiocParallel")))
(build-system r-build-system)
@ -5118,13 +5118,13 @@ effort and encourages consistency.")
(define-public r-bsgenome
(package
(name "r-bsgenome")
(version "1.66.1")
(version "1.66.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "BSgenome" version))
(sha256
(base32
"1gzpvajw5n3qmym3312qaks450sq3w456kj4gqwaabgpjxbq7frm"))))
"0p75c52sw464bdqz7dyda9h8k2wsxdpdxxhya5awh977xaly90pf"))))
(properties
`((upstream-name . "BSgenome")))
(build-system r-build-system)
@ -5811,13 +5811,13 @@ genomic intervals. In addition, it can use BAM or BigWig files as input.")
(define-public r-genomeinfodb
(package
(name "r-genomeinfodb")
(version "1.34.4")
(version "1.34.6")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GenomeInfoDb" version))
(sha256
(base32
"1nskqmlar85zg96c1fbacl7dqg6r0gl814rc7yh482y4wgmwyg0r"))))
"123kp69fmy5pbqh0j6qxdkvkm4g9pdwzms01i8qnix3m1b9j597w"))))
(properties
`((upstream-name . "GenomeInfoDb")))
(build-system r-build-system)
@ -6483,14 +6483,14 @@ in SNV base substitution data.")
(define-public r-msnbase
(package
(name "r-msnbase")
(version "2.24.0")
(version "2.24.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "MSnbase" version))
(sha256
(base32
"16apm4qn7sbv06pk2i8k5z7qgkv0yq0h8ri32vikdplqxxh7h0cz"))))
"0jdq41rhn9qyhxfihvrgim76fzdrycc02wjsjdrff42gmray49w7"))))
(properties `((upstream-name . "MSnbase")))
(build-system r-build-system)
(propagated-inputs
@ -9916,14 +9916,14 @@ multiplication and calculation of row/column sums or means.")
(define-public r-batchelor
(package
(name "r-batchelor")
(version "1.14.0")
(version "1.14.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "batchelor" version))
(sha256
(base32
"1cdpq8zfn718qmsqjp79siddh3kzag4a90p276v261xbjvrxavjv"))))
"1yj84ba6px14hbqg8526527vfcxmzvmly34f7hba4vybdm1jscfm"))))
(properties `((upstream-name . "batchelor")))
(build-system r-build-system)
(propagated-inputs
@ -13629,38 +13629,31 @@ for other R packages to compile and link against.")
(define-public r-flowworkspace
(package
(name "r-flowworkspace")
(version "4.10.0")
(version "4.10.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "flowWorkspace" version))
(sha256
(base32
"07w2pnnzmivfc621c8pvndqrn1k245cwjrb0nnk2i85i3si4j9c3"))))
"0jmbfclkfm0n2mshk94906kivii7awlskf7l7ydn8ki8wrpzxqg4"))))
(properties `((upstream-name . "flowWorkspace")))
(build-system r-build-system)
(propagated-inputs
(list r-aws-s3
r-aws-signature
r-bh
(list r-bh
r-biobase
r-biocgenerics
r-cpp11
r-cytolib
r-data-table
r-delayedarray
r-digest
r-dplyr
r-flowcore
r-ggplot2
r-graph
r-lattice
r-latticeextra
r-matrixstats
r-ncdfflow
r-rbgl
r-rcpp
r-rcpparmadillo
r-rcppparallel
r-rgraphviz
r-rhdf5lib
r-rprotobuflib
@ -14646,14 +14639,14 @@ arrays based on fast wavelet-based functional models.")
(define-public r-variancepartition
(package
(name "r-variancepartition")
(version "1.28.0")
(version "1.28.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "variancePartition" version))
(sha256
(base32
"1mn91r0yrhz08m3vs2h3i35rcbxyc7sdfknmk6vcw1z75znjsnpl"))))
"0ypw3ckaf4qll83rl2bjzfc7g2m4v0n2mq645ppyfga8wv8kwssy"))))
(properties
`((upstream-name . "variancePartition")))
(build-system r-build-system)
@ -14674,6 +14667,7 @@ arrays based on fast wavelet-based functional models.")
r-pbkrtest
r-progress
r-rdpack
r-remacor
r-reshape2
r-rhpcblasctl
r-rlang
@ -15614,13 +15608,13 @@ functionality.")
(define-public r-biocviews
(package
(name "r-biocviews")
(version "1.66.1")
(version "1.66.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "biocViews" version))
(sha256
(base32
"1xplkzm29v6aysfhb6kf2nnmvc37jmcvv6vsgbx8z8qccn96jk02"))))
"0fdxlixwf4d3p1prq37cgfvaiym44h2yd4bym6wp4dl8h648v99y"))))
(properties
`((upstream-name . "biocViews")))
(build-system r-build-system)
@ -15860,14 +15854,14 @@ analytics on packages.")
(define-public r-biocset
(package
(name "r-biocset")
(version "1.12.0")
(version "1.12.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "BiocSet" version))
(sha256
(base32
"197cy5gdlvac7jqwb4dm4dbqfms2nvc3paqs75nsg9mpp1h5z8l8"))))
"1cqp5m6yic5vsp8k05r50sx2cmi9cwzxfmlswcjw28nascq3gpv0"))))
(properties `((upstream-name . "BiocSet")))
(build-system r-build-system)
(propagated-inputs

View File

@ -110,6 +110,7 @@
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages java)
#:use-module (gnu packages java-compression)
#:use-module (gnu packages java-xml)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages jupyter)
#:use-module (gnu packages libffi)
@ -7688,6 +7689,38 @@ sequence.")
(supported-systems '("i686-linux" "x86_64-linux"))
(license license:bsd-3)))
(define-public r-gg3d
(let ((commit "ffdd837d30c1671cd0895db94bdd7b1594dbfcb0")
(revision "1"))
(package
(name "r-gg3d")
(version (git-version "0.0.0.9000" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/AckerDWM/gg3D")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0vz5laj5vz9m1jzb7h7q9f37zjmxwhylhaidlsg61r57wpxvjr3p"))))
(properties `((upstream-name . "gg3D")))
(build-system r-build-system)
(propagated-inputs
(list r-dplyr
r-ggplot2
r-magrittr
r-plot3d
r-plyr
r-scales))
(native-inputs (list r-knitr))
(home-page "https://github.com/AckerDWM/gg3D")
(synopsis "3D perspective plots for ggplot2")
(description
"This package adds 3D perspective plotting of points, paths, and line,
3D perspective axes, 3D perspective annotations, and wireframe plots.")
(license license:gpl3+))))
(define-public r-gutils
(let ((commit "10e36c7b580aacb2d952140a3fdd82418aaddea6")
(revision "1"))

View File

@ -12,7 +12,7 @@
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2019 Hartmut Goebel <h.goebel@goebel-consult.de>
;;; Copyright © 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020, 2021, 2023 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2021 lu hui <luhuins@163.com>
;;; Copyright © 2021, 2022 Foo Chuan Wei <chuanwei.foo@hotmail.com>
@ -58,6 +58,7 @@
#:use-module (gnu packages emacs)
#:use-module (gnu packages flex)
#:use-module (gnu packages gcc)
#:use-module (gnu packages golang)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages llvm)
#:use-module (gnu packages linux)
@ -80,6 +81,44 @@
;;; Tools to deal with source code: metrics, cross-references, etc.
(define-public automatic-component-toolkit
(package
(name "automatic-component-toolkit")
(version "1.6.0")
(home-page "https://github.com/Autodesk/AutomaticComponentToolkit")
(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
"1r0sbw82cf9dbcj3vgnbd4sc1lklzvijic2z5wgkvs21azcm0yzh"))))
(build-system gnu-build-system)
(arguments
(list #:tests? #false ;no tests
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(replace 'build
(lambda _
(setenv "HOME" "/tmp")
(invoke "bash" "Build/build.sh")))
(replace 'install
(lambda _
(let ((bin (string-append #$output "/bin")))
(mkdir-p bin)
(copy-file "act.linux"
(string-append #$output "/bin/act"))))))))
(native-inputs (list go))
(synopsis "Automatically generate software components")
(description
"The Automatic Component Toolkit (@dfn{ACT}) is a code generator that
takes an instance of an Interface Description Language (@dfn{IDL}) file and
generates a thin C89-API, implementation stubs, and language bindings of your
desired software component.")
(license license:bsd-2)))
(define-public cflow
(package
(name "cflow")

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015-2023 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>
@ -259,13 +259,13 @@ automatically pruning objects to maintain the constraints.")
(define-public r-collections
(package
(name "r-collections")
(version "0.3.6")
(version "0.3.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "collections" version))
(sha256
(base32 "19y7nds67700zy6354s1i0aglgjylzv65psccz5x3ih8f48sakr3"))))
(base32 "003zlp5s2ilq3pq0imlp7p46jkfihwzg1hkkgk7378ikcbwnz17z"))))
(properties `((upstream-name . "collections")))
(build-system r-build-system)
(home-page "https://github.com/randy3k/collections")
@ -2802,6 +2802,38 @@ particularly easy to create complete web applications using httpuv alone.")
;; obtained here: https://github.com/rstudio/httpuv/blob/master/LICENSE
(license license:gpl3+)))
(define-public r-httr2
(package
(name "r-httr2")
(version "0.2.2")
(source (origin
(method url-fetch)
(uri (cran-uri "httr2" version))
(sha256
(base32
"1gzjsw3w7c3rsp3gb9rdbfmmnmd2sq09s3wza49730gp84jvc6jx"))))
(properties `((upstream-name . "httr2")))
(build-system r-build-system)
(propagated-inputs
(list r-cli
r-curl
r-glue
r-magrittr
r-openssl
r-r6
r-rappdirs
r-rlang
r-withr))
(native-inputs (list r-knitr))
(home-page "https://httr2.r-lib.org")
(synopsis "Perform HTTP requests and process the responses")
(description
"This package provides tools for creating and modifying HTTP requests,
then performing them and processing the results. @code{httr2} is a
re-imagining of @code{httr} that uses a pipe-based interface and solves more
of the problems that API wrapping packages face.")
(license license:expat)))
(define-public r-jsonlite
(package
(name "r-jsonlite")
@ -2894,13 +2926,13 @@ a list of p-values.")
(define-public r-htmlwidgets
(package
(name "r-htmlwidgets")
(version "1.6.0")
(version "1.6.1")
(source (origin
(method url-fetch)
(uri (cran-uri "htmlwidgets" version))
(sha256
(base32
"06prjx6ic2bddaw50ksz6l7hsidkzwb69m85vzc0apxvwaygz0gh"))))
"0hqfjvfs3mcpqwim79vac1738k19ipr10zvdqrw5kzpwpsy3qls2"))))
(build-system r-build-system)
(propagated-inputs
(list r-htmltools r-jsonlite
@ -3081,14 +3113,14 @@ rules and utility functions for adaptive GH quadrature.")
(define-public r-rstpm2
(package
(name "r-rstpm2")
(version "1.5.8")
(version "1.5.9")
(source
(origin
(method url-fetch)
(uri (cran-uri "rstpm2" version))
(sha256
(base32
"038qq5kar9f5ygd18aicwfqrr7fl37p0r9shgpc6wf2vmj564crn"))))
"1zl7z1l19s960mrhlzvpga07kzqfrhhq7qlkgln4wj0gcmhicyc6"))))
(properties `((upstream-name . "rstpm2")))
(build-system r-build-system)
(propagated-inputs
@ -6046,14 +6078,14 @@ these progress updates.")
(define-public r-lava
(package
(name "r-lava")
(version "1.7.0")
(version "1.7.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "lava" version))
(sha256
(base32
"092y5v5mp9a9mqia47fqh22br31crp8w5b4ks2y15242ydlxly1h"))))
"0r7panw0pb9xi10navih9796r08yc5l6j914pfn8wzlm4mfwr7bs"))))
(build-system r-build-system)
(propagated-inputs
(list r-future-apply r-numderiv r-progressr r-squarem r-survival))
@ -6163,14 +6195,14 @@ included in this package.")
(define-public r-timedate
(package
(name "r-timedate")
(version "4021.107")
(version "4022.108")
(source
(origin
(method url-fetch)
(uri (cran-uri "timeDate" version))
(sha256
(base32
"1i54a425r5hi08yl9rb2qh1nynh29ppv9b4h46cxyzn1ybqlr9sg"))))
"1vyfpz2ac43c0s6a4j4d0xfc430mwgw3syf03xszzggnw97rp555"))))
(properties `((upstream-name . "timeDate")))
(build-system r-build-system)
(home-page "https://www.rmetrics.org")
@ -6900,14 +6932,14 @@ clustered data.")
(define-public r-mitml
(package
(name "r-mitml")
(version "0.4-3")
(version "0.4-4")
(source
(origin
(method url-fetch)
(uri (cran-uri "mitml" version))
(sha256
(base32
"00i18nnvrdrg91crgcp2a431xs71cawaip3xkqk2myv0iav3xga9"))))
"12mgjvifpprzlpjbcybd08fkps0kdxim45saan4cng4lc4klh880"))))
(build-system r-build-system)
(propagated-inputs
(list r-haven r-jomo r-pan))
@ -7715,14 +7747,14 @@ Markdown documents.")
(define-public r-seriation
(package
(name "r-seriation")
(version "1.4.0")
(version "1.4.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "seriation" version))
(sha256
(base32
"1bcd559wsjjdmpc1892vsf8wrkh4ijgn1y71h3y3v5clmd21ycmx"))))
"1b8z7alav4d0i90251crzrq3yp3f11w0zlalh1f3b7si5yl2dkmr"))))
(build-system r-build-system)
(propagated-inputs
(list r-ca
@ -7813,13 +7845,13 @@ to variables on the left-hand side of the assignment.")
(define-public r-zlog
(package
(name "r-zlog")
(version "1.0.0")
(version "1.0.2")
(source (origin
(method url-fetch)
(uri (cran-uri "zlog" version))
(sha256
(base32
"1d5j31p0h3rrn230087h3ngpvwknlisjv0f1qdbicdj9m177spci"))))
"0fi9aqrmikdg5ibwhn82kslj4lxih03vm27jmi14m73h09yy4in5"))))
(properties `((upstream-name . "zlog")))
(build-system r-build-system)
(native-inputs (list r-knitr))
@ -8798,14 +8830,14 @@ sample Robust Rank-Order Distributional Test.")
(define-public r-expm
(package
(name "r-expm")
(version "0.999-6")
(version "0.999-7")
(source
(origin
(method url-fetch)
(uri (cran-uri "expm" version))
(sha256
(base32
"1p5dapwv8ycxaysgi6imnby04i4kh1c5a2czqa4wygz0s8pr2y9c"))))
"1wd03dcqxyi7kyznfq7107ix1bsp7rwzqqv6w7p37pdq2jwlkwi8"))))
(build-system r-build-system)
(propagated-inputs (list r-matrix))
(native-inputs (list gfortran))
@ -8977,14 +9009,14 @@ powerful and convenient features.")
(define-public r-heatmaply
(package
(name "r-heatmaply")
(version "1.4.0")
(version "1.4.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "heatmaply" version))
(sha256
(base32
"0q1vkf55a5r0ssybdbi2fyhn13p29kw04yp46c34n7apm0k2ymgi"))))
"0zgaqmbc1nha38c8kx5xdjdjbwmykrf2acq8ydki8dqixv6b34la"))))
(build-system r-build-system)
(propagated-inputs
(list r-assertthat
@ -10219,14 +10251,14 @@ Python's @url{https://github.com/ActiveState/appdirs,Appdirs} to R.")
(define-public r-rastervis
(package
(name "r-rastervis")
(version "0.51.4")
(version "0.51.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "rasterVis" version))
(sha256
(base32
"1z4vwjmx8n01jc2ypqs1pmx70rc3pjaz3ahk8j8zcif40v0qgy6i"))))
"18bsrw629p4pkyhrpjmiyhq73w882bhgpwmkih0gjnw3ywwgx7rs"))))
(properties `((upstream-name . "rasterVis")))
(build-system r-build-system)
(propagated-inputs
@ -10399,14 +10431,14 @@ always locate the files relative to your project root.")
(define-public r-reticulate
(package
(name "r-reticulate")
(version "1.26")
(version "1.27")
(source
(origin
(method url-fetch)
(uri (cran-uri "reticulate" version))
(sha256
(base32
"1ibliic3qp597nskak2bfa6iyl721ssgcavwvfaf1c71plilimrz"))))
"19k96g43ll9zp72g9kmf9gg7k9cwwpyxzf2nd6fvx5jal5bq8mlx"))))
(build-system r-build-system)
(arguments
(list
@ -10459,13 +10491,13 @@ file.")
(define-public r-billboarder
(package
(name "r-billboarder")
(version "0.3.1")
(version "0.4.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "billboarder" version))
(sha256
(base32 "189ngvg84rcwhrivxskmjv3srhadvzr4p1v8pf11axyv2qn01b0x"))
(base32 "1llac7fyyfax6q8n9b8lccyl9c8vxqvkfp341sz59mrw8yhwb2hr"))
(snippet
'(delete-file "inst/htmlwidgets/lib/billboard/billboard.pkgd.min.js"))))
(properties `((upstream-name . "billboarder")))
@ -10501,10 +10533,10 @@ file.")
("js-billboard"
,(origin
(method url-fetch)
(uri "https://unpkg.com/billboard.js@3.2.0/dist/billboard.js")
(uri "https://unpkg.com/billboard.js@3.6.3/dist/billboard.js")
(sha256
(base32
"1kx5rqmn87pgal2cwmcij2rrnwa0fgcsw6y99m4i0l2sdm0qffv2"))))))
"1lyj4yl95qgh06iygb2y2mdg1zxijzxi5h85z7kp8ngm825z6rpi"))))))
(home-page "https://github.com/dreamRs/billboarder")
(synopsis "Create interactive charts with the JavaScript Billboard library")
(description
@ -11057,17 +11089,17 @@ references and Rd files.")
(define-public r-officer
(package
(name "r-officer")
(version "0.5.0")
(version "0.5.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "officer" version))
(sha256
(base32
"19kms5pjgb5mjqyqzgnpykd5divbkrs5apz8z27ivgw78iizsqh6"))))
"1r885h8ma2py3idxkki2bnsbcimrw36qd6km2bhyhlav79n7bh4w"))))
(build-system r-build-system)
(propagated-inputs
(list r-r6 r-uuid r-xml2 r-zip))
(list r-openssl r-r6 r-uuid r-xml2 r-zip))
(home-page "https://davidgohel.github.io/officer")
(synopsis "Manipulation of Word and PowerPoint documents")
(description
@ -11464,14 +11496,14 @@ documents.")
(define-public r-writexl
(package
(name "r-writexl")
(version "1.4.1")
(version "1.4.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "writexl" version))
(sha256
(base32
"1qhf7p14mijdyl5i40gfpzgvdflcs6s8xnwrabsnjxpa17xbamkn"))))
"09whcadnwqcshicbhv1vnvdai087yimmnz9lvc3rld5nn8z66xcg"))))
(build-system r-build-system)
(inputs (list zlib))
(home-page "https://github.com/ropensci/writexl")
@ -12045,14 +12077,14 @@ visualization and candidate genes around SNPs.")
(define-public r-precrec
(package
(name "r-precrec")
(version "0.12.9")
(version "0.14.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "precrec" version))
(sha256
(base32
"1dfz2rqx2ww2l5r40ahg0qdj3rjrwiwh427mw7j5ynhpcj21j2qm"))))
"04pyqwc4p3bzwfcf7a74nkh7b2001053jagzvz9ghpyj380f66x8"))))
(properties `((upstream-name . "precrec")))
(build-system r-build-system)
(propagated-inputs
@ -12061,6 +12093,7 @@ visualization and candidate genes around SNPs.")
r-ggplot2
r-gridextra
r-rcpp
r-rlang
r-withr))
(native-inputs (list r-knitr))
(home-page "https://evalclass.github.io/precrec/")
@ -12073,14 +12106,14 @@ of precision-recall and ROC (Receiver Operator Characteristics) curves.")
(define-public r-netrep
(package
(name "r-netrep")
(version "1.2.4")
(version "1.2.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "NetRep" version))
(sha256
(base32
"1swlb2k9bc7whvslxbklz864j9ynvna73hvq5rhv61cv5vy05ksd"))))
"0hyj91fr4y9csj2dy4z9cpr92hh8gk3xnjr6zpk9n0wk37sx44h6"))))
(properties `((upstream-name . "NetRep")))
(build-system r-build-system)
(propagated-inputs
@ -12373,14 +12406,14 @@ a library of prediction algorithms to be used in the super learner.")
(define-public r-drtmle
(package
(name "r-drtmle")
(version "1.1.1")
(version "1.1.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "drtmle" version))
(sha256
(base32
"12vplpz9bg5444jy29mbdr70hqby073vb3iw76v2csrwy3ws3f21"))))
"0qvdxzvpi7a66gx61v6fj31zy4y5cid18g4qgv5lir7qc74rbbx0"))))
(properties `((upstream-name . "drtmle")))
(build-system r-build-system)
(propagated-inputs
@ -12593,14 +12626,14 @@ used to teach mathematics, statistics, computation and modeling.")
(define-public r-raster
(package
(name "r-raster")
(version "3.6-11")
(version "3.6-13")
(source
(origin
(method url-fetch)
(uri (cran-uri "raster" version))
(sha256
(base32
"1arvmhf3ijzh3aanw8n6mdnwk4h26axsxpszvr5g43l7g5vfmggf"))))
"035hb1063lrlcs3l5aiccminax228ji0363hijmnxkvl7fsydxp1"))))
(build-system r-build-system)
(propagated-inputs
(list r-rcpp r-sp r-terra))
@ -14579,6 +14612,31 @@ vector giving the index of the cluster each observation belongs to.")
algorithms, clusterings, and individual clusters.")
(license license:expat)))
(define-public r-clustergeneration
(package
(name "r-clustergeneration")
(version "1.3.7")
(source (origin
(method url-fetch)
(uri (cran-uri "clusterGeneration" version))
(sha256
(base32
"0p1dwl08bf20h7pnspnsycrp3v48nm2miwcnlklyc4gdyzc2jksk"))))
(properties `((upstream-name . "clusterGeneration")))
(build-system r-build-system)
(propagated-inputs (list r-mass))
(home-page "https://cran.r-project.org/package=clusterGeneration")
(synopsis "Random cluster generation (with specified degree of separation)")
(description
"The clusterGeneration package provides functions for generating random
clusters, generating random covariance/correlation matrices, calculating a
separation index (data and population version) for pairs of clusters or
cluster distributions, and 1-D and 2-D projection plots to visualize clusters.
The package also contains a function to generate random clusters based on
factorial designs with factors such as degree of separation, number of
clusters, number of variables, number of noisy variables.")
(license license:gpl2+)))
(define-public r-tweedie
(package
(name "r-tweedie")
@ -14651,14 +14709,14 @@ analysing multivariate abundance data in community ecology.")
(define-public r-afex
(package
(name "r-afex")
(version "1.2-0")
(version "1.2-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "afex" version))
(sha256
(base32
"1hii6mx4qbmv4m1hy44sp19xf0r7mc68p767bwc58qrgpawgymwb"))))
"1jxahp2nq2clmi7wqi0n0b23xyvsjckvz9bmj81j35fv8v6wxa73"))))
(build-system r-build-system)
;; This is needed for the vignette builder
(arguments
@ -14959,14 +15017,14 @@ other values.")
(define-public r-ncdf4
(package
(name "r-ncdf4")
(version "1.20")
(version "1.21")
(source
(origin
(method url-fetch)
(uri (cran-uri "ncdf4" version))
(sha256
(base32
"1kpi5xygx1nj8ybxrn9z0jxi3lbcibdvc7mjgyvm6f9plwjlxjvq"))))
"03dk47xz6qlpky9kkpkkxc472czq542yml3fdg39bic2yggffnig"))))
(build-system r-build-system)
(inputs
(list netcdf zlib))
@ -15006,14 +15064,14 @@ Bioconductor packages.")
(define-public r-rgl
(package
(name "r-rgl")
(version "0.110.2")
(version "0.111.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "rgl" version))
(sha256
(base32
"0v9lrsdmhw0wqfbrrjirgppd40cn00ignq3rg2jn3q8ak70ih4fs"))))
"1h6nbcnbl0knmc91923wfhghs58yjc84mhnmk2byd474lrgzxynd"))))
(build-system r-build-system)
(native-inputs
(list pkg-config
@ -15300,14 +15358,14 @@ al. (2010) <DOI:10.1016/j.neuroimage.2010.04.241>, Tabelow and Polzehl (2011)
(define-public r-fmsb
(package
(name "r-fmsb")
(version "0.7.4")
(version "0.7.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "fmsb" version))
(sha256
(base32
"1rmmvx38rmamiw0ajqhlksgxj6fgm8ymq903yxqq2bzxx8fhj5n2"))))
"082qj08kzyzwvjacwq0sl3xxdx6iz5hgx6q24jv1mnvx7z5xn5ry"))))
(build-system r-build-system)
(home-page "http://minato.sip21c.org/msb/")
(synopsis "Functions for medical statistics book with demographic data")
@ -16132,13 +16190,13 @@ Touzet and Varre (2007).")
(define-public r-rncl
(package
(name "r-rncl")
(version "0.8.6")
(version "0.8.7")
(source (origin
(method url-fetch)
(uri (cran-uri "rncl" version))
(sha256
(base32
"1ywgwqn82z8h6zpcxxq4hgngdpfa6dj0lr7bfq4cwfml9z075jgw"))))
"0flrqz7pansy11ds23qv06bcmh6vxqljq0517v6292ibbx7nx1qx"))))
(build-system r-build-system)
(propagated-inputs
(list r-progress r-rcpp))
@ -18619,14 +18677,14 @@ probabilities from a standard bivariate normal CDF.")
(define-public r-lavaan
(package
(name "r-lavaan")
(version "0.6-12")
(version "0.6-13")
(source
(origin
(method url-fetch)
(uri (cran-uri "lavaan" version))
(sha256
(base32
"17h79pnww1mihvlp6ap0r6d8wnly9bwszj13l5dkby0284z2fj40"))))
"0glcam1g8zx3xvvp8nsbsj5vi8hba0sm20akyf4rivbr6s745y1a"))))
(build-system r-build-system)
(propagated-inputs
(list r-mass r-mnormt r-numderiv r-pbivnorm))
@ -18927,6 +18985,36 @@ can also be used to join clusters obtained from affinity propagation. Various
plotting functions are available for analyzing clustering results.")
(license license:gpl2+)))
(define-public r-remacor
(package
(name "r-remacor")
(version "0.0.11")
(source (origin
(method url-fetch)
(uri (cran-uri "remaCor" version))
(sha256
(base32
"0hhk1zrjz6sxg219h9ca7jya0vc8dmrvwaddajkcdns6bv3rj1km"))))
(properties `((upstream-name . "remaCor")))
(build-system r-build-system)
(propagated-inputs
(list r-clustergeneration
r-ggplot2
r-mvtnorm
r-rdpack
r-reshape2
r-runit))
(native-inputs (list r-knitr))
(home-page "https://diseaseneurogenomics.github.io/remaCor/")
(synopsis "Random effects meta-analysis for correlated test statistics")
(description
"Meta-analysis is widely used to summarize estimated effects sizes across
multiple statistical tests. Standard fixed and random effect meta-analysis
methods assume that the estimated of the effect sizes are statistically
independent. Here we relax this assumption and enable meta-analysis when the
correlation matrix between effect size estimates is known.")
(license license:artistic2.0)))
(define-public r-rematch2
(package
(name "r-rematch2")
@ -20816,14 +20904,14 @@ layer by layer.")
(define-public r-gkmsvm
(package
(name "r-gkmsvm")
(version "0.81.0")
(version "0.82.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "gkmSVM" version))
(sha256
(base32
"119g5rhc7ffyviz04r04aj5z1g6abnj3ddd01g7db505sdr6lapj"))))
"1m2cq4b0srghaj04p5ffbc21zv1rg7avi8pn765bybjhvrn567bm"))))
(properties `((upstream-name . "gkmSVM")))
(build-system r-build-system)
(propagated-inputs
@ -26295,13 +26383,13 @@ finding peaks in spectra, converting humidity measures.")
(define-public r-qqconf
(package
(name "r-qqconf")
(version "1.3.0")
(version "1.3.1")
(source (origin
(method url-fetch)
(uri (cran-uri "qqconf" version))
(sha256
(base32
"11sh0q5bwmqdygqd1gspx7xc5mysj18whz11afnz6s1m820snhhw"))))
"1vvw79l8nqpqvmfpff5khgdjbs1s2q5ylg72lvkihd2qfk0d8cf5"))))
(properties `((upstream-name . "qqconf")))
(build-system r-build-system)
(inputs (list fftw))
@ -26828,14 +26916,14 @@ Raftery, Appl.Statistics, 1989); it includes inference and basic methods.")
(define-public r-forecast
(package
(name "r-forecast")
(version "8.19")
(version "8.20")
(source
(origin
(method url-fetch)
(uri (cran-uri "forecast" version))
(sha256
(base32
"1l3mdldghsf319fh8gx81w8f5i5mnrcn70rjjylzk4j8n7gicpih"))))
"03ll4v4r2l4kk4lbwnrvmd24003qm6j81lzr06qlns311zf4dv9v"))))
(properties `((upstream-name . "forecast")))
(build-system r-build-system)
(propagated-inputs
@ -31533,14 +31621,14 @@ vignettes in all common formats.")
(define-public r-tidytext
(package
(name "r-tidytext")
(version "0.4.0")
(version "0.4.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "tidytext" version))
(sha256
(base32
"1ywx4zhx1a0r1lyd11w3cbz33silpx5m1sk9rd3kvj21wvfdramk"))))
"05f8209qx1rvddnkl0h05yig09xahs8lqgq9w5dvdiwarji50rsj"))))
(properties `((upstream-name . "tidytext")))
(build-system r-build-system)
(propagated-inputs
@ -31912,14 +32000,14 @@ covariate (usually group indicator) and the scores.")
(define-public r-qtl
(package
(name "r-qtl")
(version "1.54")
(version "1.58")
(source
(origin
(method url-fetch)
(uri (cran-uri "qtl" version))
(sha256
(base32
"1rzkxkmcgd6drxbgqp6w6jab5bs7vla2x2ndv3l4nlbcwzi41jw0"))))
"15wxn3sdvmgjgmfxl0qsxhkr7b7kn1hz2962cd6k0qmffz0mmjkf"))))
(build-system r-build-system)
(home-page "https://rqtl.org/")
(synopsis "R package for analyzing QTL experiments in genetics")
@ -32678,13 +32766,13 @@ computational operations, add-on packages provide additional functionality.")
(define-public r-mlr3learners
(package
(name "r-mlr3learners")
(version "0.5.5")
(version "0.5.6")
(source (origin
(method url-fetch)
(uri (cran-uri "mlr3learners" version))
(sha256
(base32
"0m5s7jfqfh48gxllvi93wb5w2pzhzx8rcx5bz87lkmv1cnj65q84"))))
"1m0psjqcl2pfy73wmc29vyz122v0kqmws6d0dgl7wsy1csfjsjm2"))))
(build-system r-build-system)
(propagated-inputs
(list r-checkmate
@ -33827,20 +33915,21 @@ supply the workflow to create thematic maps. This package also facilitates
(define-public r-rtweet
(package
(name "r-rtweet")
(version "1.0.2")
(version "1.1.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "rtweet" version))
(sha256
(base32
"1dhdq2c2zl88h29caqpm7zh2i5970q7rfg98zf2xb7x4zak7bq9x"))))
"0dq6ckf2mp6wm6y8xzjby21s356760fmck1m8nsnv5gz8lhy6dhg"))))
(properties `((upstream-name . "rtweet")))
(build-system r-build-system)
(propagated-inputs
(list r-bit64
r-curl
r-httr
r-httr2
r-jsonlite
r-lifecycle
r-progress
@ -36028,13 +36117,13 @@ options for aggregating multi-layer rasters.")
(define-public r-bien
(package
(name "r-bien")
(version "1.2.5")
(version "1.2.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "BIEN" version))
(sha256
(base32 "0s98n6zbf48vssd3h63k6kashcxv1kawcb026n0ngsfpc5dv6i48"))))
(base32 "17zrj5ckxaz4mdbgywxi8kf51ssbf2md1d2azf30dh96kzc2ayps"))))
(properties `((upstream-name . "BIEN")))
(build-system r-build-system)
(native-inputs
@ -36046,11 +36135,9 @@ options for aggregating multi-layer rasters.")
r-fasterize
r-foreach
r-raster
r-rgdal
r-rgeos
r-rpostgresql
r-sf
r-sp))
r-terra))
(home-page "https://cran.r-project.org/package=BIEN")
(synopsis "Tools for accessing the BIEN database")
(description

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
;;; Copyright © 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2019-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 20192021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
@ -70,6 +70,7 @@
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages linux)
@ -58289,19 +58290,22 @@ Rust bindings.")
(define-public rust-tectonic-bridge-graphite2-0.2
(package
(name "rust-tectonic-bridge-graphite2")
(version "0.2.0")
(version "0.2.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "tectonic_bridge_graphite2" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1qsq337y4p3z832kmn2xcaj6xh3z6ngr0izn4jgdjrymnsq1ac81"))))
(base32 "1lkpqxz0y7m2ib1g0k850g2d7g6z8062niaw7vgvql33f2n94xkr"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
`(#:cargo-inputs
(("rust-tectonic-dep-support" ,rust-tectonic-dep-support-0.1))))
(native-inputs
(list pkg-config))
(inputs
(list graphite2))
(home-page "https://tectonic-typesetting.github.io/")
(synopsis "Expose the graphite2 library to Rust/Cargo")
(description
@ -58361,28 +58365,31 @@ bindings.")
bindings.")
(license license:expat)))
(define-public rust-tectonic-bundles-0.2
(define-public rust-tectonic-bundles-0.3
(package
(name "rust-tectonic-bundles")
(version "0.2.0")
(version "0.3.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "tectonic_bundles" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "17wwgfcl5nzvgzil7ayi42ljjkx9ffv4c35v6ywcmzdhk9zhki2f"))))
(base32 "1ccykccvddvx31h1dfkzdxsnqhgyls21ks2qbvad09m1jzqzl5nj"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
`(#:cargo-inputs
(("rust-flate2" ,rust-flate2-1)
("rust-fs2" ,rust-fs2-0.4)
("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
("rust-tectonic-geturl" ,rust-tectonic-geturl-0.3)
("rust-tectonic-io-base" ,rust-tectonic-io-base-0.3)
("rust-tectonic-io-base" ,rust-tectonic-io-base-0.4)
("rust-tectonic-status-base" ,rust-tectonic-status-base-0.2)
("rust-zip" ,rust-zip-0.5))))
(native-inputs
(list pkg-config))
(inputs
(list openssl zlib))
(home-page "https://tectonic-typesetting.github.io/")
(synopsis "Tectonic ``bundle'' (support file collection) implementations")
(description
@ -58441,21 +58448,20 @@ providing whatever fiddly features are needed to enable the Tectonic build
process.")
(license license:expat)))
(define-public rust-tectonic-docmodel-0.1
(define-public rust-tectonic-docmodel-0.2
(package
(name "rust-tectonic-docmodel")
(version "0.1.2")
(version "0.2.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "tectonic_docmodel" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1b5vdqcnjbbda6am0mb7qyxyc6pn8v0pqz0w10xia87ycyyfflxw"))))
(base32 "1z3yhw7h11a5xggi3bjip3kz1931mjl5gi53vx2zwd89rg99373y"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
`(#:cargo-inputs
(("rust-serde" ,rust-serde-1)
("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
("rust-toml" ,rust-toml-0.5))))
@ -58524,21 +58530,20 @@ document model, including the @file{Tectonic.toml} file.")
output to HTML.")
(license license:expat)))
(define-public rust-tectonic-engine-xetex-0.2
(define-public rust-tectonic-engine-xetex-0.4
(package
(name "rust-tectonic-engine-xetex")
(version "0.2.0")
(version "0.4.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "tectonic_engine_xetex" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1kn9gxkgf3jbwif14n1kmp869s4b69khhc7iwm78qqpmy79lrhkw"))))
(base32 "1ckx9sg1nwyghg7142zk5x75g32f4s19psk6c50y0n0ikf5xq9sd"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
`(#:cargo-inputs
(("rust-cc" ,rust-cc-1)
("rust-libc" ,rust-libc-0.2)
("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.3)
@ -58547,8 +58552,16 @@ output to HTML.")
("rust-tectonic-bridge-harfbuzz" ,rust-tectonic-bridge-harfbuzz-0.2)
("rust-tectonic-cfg-support" ,rust-tectonic-cfg-support-0.1)
("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
("rust-tectonic-pdf-io" ,rust-tectonic-pdf-io-0.1)
("rust-tectonic-xetex-layout" ,rust-tectonic-xetex-layout-0.1))))
("rust-tectonic-pdf-io" ,rust-tectonic-pdf-io-0.4)
("rust-tectonic-xetex-layout" ,rust-tectonic-xetex-layout-0.2))))
(native-inputs
(list pkg-config))
(inputs
(list fontconfig
freetype
graphite2
icu4c
zlib))
(home-page "https://tectonic-typesetting.github.io/")
(synopsis "XeTeX engine as a reusable crate")
(description
@ -58556,27 +58569,29 @@ output to HTML.")
engine as a reusable crate.")
(license license:expat)))
(define-public rust-tectonic-engine-xdvipdfmx-0.1
(define-public rust-tectonic-engine-xdvipdfmx-0.4
(package
(name "rust-tectonic-engine-xdvipdfmx")
(version "0.1.0")
(version "0.4.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "tectonic_engine_xdvipdfmx" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "00kjsxzlzlc8lmh8mhb5v6iw1lb7rq09ski2mjzlyw604dcq1k3p"))))
(base32 "0ajmb9pcq5pak28z4bhsnxfgfy9hpr1mm02bp6ph16nvdn8m2ir1"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
(("rust-cbindgen" ,rust-cbindgen-0.16)
("rust-cc" ,rust-cc-1)
`(#:cargo-inputs
(("rust-cc" ,rust-cc-1)
("rust-libc" ,rust-libc-0.2)
("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.1)
("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.3)
("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
("rust-tectonic-pdf-io" ,rust-tectonic-pdf-io-0.1))))
("rust-tectonic-pdf-io" ,rust-tectonic-pdf-io-0.4))))
(native-inputs
(list pkg-config))
(inputs
(list libpng zlib))
(home-page "https://tectonic-typesetting.github.io/")
(synopsis "@code{xdvipdfmx} program as a reusable crate")
(description
@ -58729,23 +58744,22 @@ streams.")
("rust-tectonic-status-base" ,rust-tectonic-status-base-0.1)
("rust-thiserror" ,rust-thiserror-1))))))
(define-public rust-tectonic-pdf-io-0.1
(define-public rust-tectonic-pdf-io-0.4
(package
(name "rust-tectonic-pdf-io")
(version "0.1.0")
(version "0.4.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "tectonic_pdf_io" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0ry5g6vh54i8ih8rjlz3ci7b8gi4irsllg34pv57mcwrhwcikg6x"))))
(base32 "0rmk31n96r299k5j2ydyqryzywn2dbfbnl1rwh0lx86zaqac9qcn"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
`(#:cargo-inputs
(("rust-cc" ,rust-cc-1)
("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.1)
("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.3)
("rust-tectonic-bridge-flate" ,rust-tectonic-bridge-flate-0.1)
("rust-tectonic-cfg-support" ,rust-tectonic-cfg-support-0.1)
("rust-tectonic-dep-support" ,rust-tectonic-dep-support-0.1))))
@ -58824,29 +58838,36 @@ types for reporting status messages to a user.")
used by XeTeX and Tectonic.")
(license license:expat)))
(define-public rust-tectonic-xetex-layout-0.1
(define-public rust-tectonic-xetex-layout-0.2
(package
(name "rust-tectonic-xetex-layout")
(version "0.1.0")
(version "0.2.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "tectonic_xetex_layout" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "063fq6bhhqac30bg6vmcfpd9zikn0p6rd189avz0f34ka4mir0yi"))))
(base32 "102z52hhazz2b2qsbr93dn2y4q0103s548ixzws40il7imzg99ly"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
`(#:cargo-inputs
(("rust-cc" ,rust-cc-1)
("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.1)
("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.3)
("rust-tectonic-bridge-freetype2" ,rust-tectonic-bridge-freetype2-0.2)
("rust-tectonic-bridge-graphite2" ,rust-tectonic-bridge-graphite2-0.2)
("rust-tectonic-bridge-harfbuzz" ,rust-tectonic-bridge-harfbuzz-0.2)
("rust-tectonic-bridge-icu" ,rust-tectonic-bridge-icu-0.2)
("rust-tectonic-cfg-support" ,rust-tectonic-cfg-support-0.1)
("rust-tectonic-dep-support" ,rust-tectonic-dep-support-0.1))))
(native-inputs
(list pkg-config))
(inputs
(list fontconfig
freetype
graphite2
icu4c
zlib))
(home-page "https://tectonic-typesetting.github.io/")
(synopsis "XeTeX's font loading and layout interface encapsulation")
(description

View File

@ -16,7 +16,7 @@
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020,2021 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020, 2023 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020, 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net>
@ -81,6 +81,7 @@
#:use-module (gnu packages c)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages code)
#:use-module (gnu packages commencement)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
@ -2290,7 +2291,7 @@ engineers for reverse engineers.")
(define-public lib3mf
(package
(name "lib3mf")
(version "2.1.1")
(version "2.2.0")
(source
(origin
(method git-fetch)
@ -2299,20 +2300,48 @@ engineers for reverse engineers.")
(file-name (git-file-name name version))
(sha256
(base32
"1417xlxc1y5jnipixhbjfrrjgkrprbbraj8647sff9051m3hpxc3"))))
"05zqvnzmi7j8rhp2mrskvxf1bxl7kb4c72dfx4y86219i1hx7i2q"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete pre-compiled ACT.
(delete-file-recursively "AutomaticComponentToolkit/bin")
;; Remove bundled software. Preserve cpp-base64 as it has been
;; modified and cannot easily be unbundled.
(for-each delete-file-recursively
'("Include/Libraries/libzip"
"Include/Libraries/zlib"
"Source/Libraries/libzip"
"Source/Libraries/zlib"))
;; Adjust header includes such that system headers are found.
(substitute* '("Include/Common/OPC/NMR_OpcPackageReader.h"
"Include/Common/Platform/NMR_ImportStream_ZIP.h"
"Include/Common/Platform/NMR_ExportStream_ZIP.h"
"Include/Common/Platform/NMR_ImportStream_Compressed.h"
"Include/Common/Platform/NMR_ExportStream_Compressed.h"
"Source/Common/Platform/NMR_PortableZIPWriterEntry.cpp")
(("Libraries/libzip/") "")
(("Libraries/zlib/") ""))))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DUSE_INCLUDED_ZLIB=0"
"-DUSE_INCLUDED_LIBZIP=0"
"-DUSE_INCLUDED_GTEST=0"
"-DUSE_INCLUDED_SSL=0")))
"-DUSE_INCLUDED_SSL=0")
#:phases (modify-phases %standard-phases
(add-after 'unpack 'provide-act
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(let ((act (search-input-file (or native-inputs inputs)
"bin/act"))
(dir "AutomaticComponentToolkit/bin"))
(mkdir-p dir)
(symlink act (string-append dir "/act.linux"))))))))
(native-inputs
(list googletest pkg-config))
(list automatic-component-toolkit googletest pkg-config))
(inputs
`(("libuuid" ,util-linux "lib")
("libzip" ,libzip)
("libressl" ,libressl)
("zlib" ,zlib)))
(list `(,util-linux "lib") libzip libressl zlib))
(synopsis "Implementation of the 3D Manufacturing Format (3MF) file standard")
(description
"Lib3MF is a C++ implementation of the 3D Manufacturing Format (3MF) file

View File

@ -146,6 +146,7 @@ them as it goes.")
(uri (pypi-uri "afdko" version))
(sha256
(base32 "0k1204vykgx32saa495s1lgmz1dixcp8bjiv486imx77killvm02"))
(patches (search-patches "python-afdko-suppress-copyright-test.patch"))
(modules '((guix build utils)))
(snippet
#~(begin

View File

@ -26,6 +26,7 @@
#:use-module (guix build-system ant)
#:use-module (gnu packages)
#:use-module (gnu packages java)
#:use-module (gnu packages java-xml)
#:use-module (gnu packages xml))
(define java-groovy-bootstrap

View File

@ -18,6 +18,7 @@
;;; Copyright © 2021 EuAndreh <eu@euandre.org>
;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
;;; Copyright © 2022 David Thompson <dthompson2@worcester.edu>
;;;
;;; This file is part of GNU Guix.
;;;
@ -42,6 +43,7 @@
#:use-module (guix build-system haskell)
#:use-module (gnu packages)
#:use-module (gnu packages curl)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gl)
#:use-module (gnu packages haskell)
#:use-module (gnu packages haskell-check)
@ -327,6 +329,13 @@ to @code{cabal repl}).")
(copy-file "Utility/Shell.hs" "/tmp/Shell.hs")
(substitute* "Utility/Shell.hs"
(("/bin/sh") (which "sh")))))
(add-before 'configure 'patch-webapp
(lambda _
;; Replace loose references to xdg-open so that 'git annex
;; webapp' runs without making the user also install xdg-utils.
(substitute* '("Assistant/WebApp/DashBoard.hs"
"Utility/WebApp.hs")
(("xdg-open") (which "xdg-open")))))
(add-before 'configure 'factor-setup
(lambda _
;; Factor out necessary build logic from the provided
@ -471,7 +480,8 @@ to @code{cabal repl}).")
ghc-yesod-core
ghc-yesod-form
ghc-yesod-static
rsync))
rsync
xdg-utils))
(propagated-inputs
(list git))
(native-inputs

View File

@ -0,0 +1,724 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2019 Andrius Štikonas <andrius@stikonas.eu>
;;; Copyright © 2020 Simon South <simon@simonsouth.net>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages java-bootstrap)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix gexp)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages gettext)
#:use-module (gnu packages guile)
#:use-module (gnu packages libffi)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages texinfo)
#:export (classpath-devel
ecj4-javac-wrapper
jamvm-with-ecj4
ant-bootstrap))
;;;
;;; Java bootstrap toolchain.
;;;
;; The Java bootstrap begins with Jikes, a Java compiler written in C++. We
;; use it to build a simple version of GNU Classpath, the Java standard
;; library. We chose version 0.93 because it is the last version that can be
;; built with Jikes. With Jikes and this version of GNU Classpath we can
;; build JamVM, a Java Virtual Machine. We build version 1.5.1 because it is
;; the last version of JamVM that works with a version of GNU classpath that
;; does not require ECJ. These three packages make up the bootstrap JDK.
;; This is sufficient to build an older version of Ant, which is needed to
;; build an older version of ECJ, an incremental Java compiler, both of which
;; are written in Java.
;;
;; ECJ is needed to build the latest release (0.99) and the development
;; version of GNU Classpath. The development version of GNU Classpath has
;; much more support for Java 1.6 than the latest release, but we need to
;; build 0.99 first to get a working version of javah. ECJ, the development
;; version of GNU Classpath, and the latest version of JamVM make up the
;; second stage JDK with which we can build the OpenJDK with the Icedtea 2.x
;; build framework. We then build the more recent JDK Icedtea 3.x, and all
;; other versions of OpenJDK.
(define jikes
(package
(name "jikes")
(version "1.22")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/jikes/Jikes/"
version "/jikes-" version ".tar.bz2"))
(sha256
(base32
"1qqldrp74pzpy5ly421srqn30qppmm9cvjiqdngk8hf47dv2rc0c"))))
(build-system gnu-build-system)
(home-page "http://jikes.sourceforge.net/")
(synopsis "Compiler for the Java language")
(description "Jikes is a compiler that translates Java source files as
defined in The Java Language Specification into the bytecoded instruction set
and binary format defined in The Java Virtual Machine Specification.")
(license license:ibmpl1.0)))
;; This is the last version of GNU Classpath that can be built without ECJ.
(define classpath-bootstrap
(package
(name "classpath")
(version "0.93")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/classpath/classpath-"
version ".tar.gz"))
(sha256
(base32
"0i99wf9xd3hw1sj2sazychb9prx8nadxh2clgvk3zlmb28v0jbfz"))
(patches (search-patches "classpath-aarch64-support.patch"
"classpath-miscompilation.patch"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list (string-append "JAVAC="
(search-input-file %build-inputs "/bin/jikes"))
"--disable-Werror"
"--disable-gmp"
"--disable-gtk-peer"
"--disable-gconf-peer"
"--disable-plugin"
"--disable-dssi"
"--disable-alsa"
"--disable-gjdoc")
#:phases
(modify-phases %standard-phases
(add-after 'install 'install-data
(lambda _ (invoke "make" "install-data"))))))
(native-inputs
(list jikes fastjar libltdl pkg-config))
(home-page "https://www.gnu.org/software/classpath/")
(synopsis "Essential libraries for Java")
(description "GNU Classpath is a project to create core class libraries
for use with runtimes, compilers and tools for the Java programming
language.")
;; GPLv2 or later, with special linking exception.
(license license:gpl2+)))
;; This is the last version of JamVM that works with a version of GNU
;; classpath that does not require ECJ.
(define jamvm-1-bootstrap
(package
(name "jamvm")
(version "1.5.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/jamvm/jamvm/"
"JamVM%20" version "/jamvm-"
version ".tar.gz"))
(patches (search-patches "jamvm-1.5.1-aarch64-support.patch"
"jamvm-1.5.1-armv7-support.patch"))
(sha256
(base32
"06lhi03l3b0h48pc7x58bk9my2nrcf1flpmglvys3wyad6yraf36"))
;; Remove precompiled software.
(snippet
'(delete-file "lib/classes.zip"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list (string-append "--with-classpath-install-dir="
(assoc-ref %build-inputs "classpath"))
"--disable-int-caching"
"--enable-runtime-reloc-checks"
"--enable-ffi")
#:phases
,(if (string-prefix? "aarch64" (or (%current-system)
(%current-target-system)))
;; Makefiles and the configure script need to be regenerated to
;; incorporate support for AArch64.
'(modify-phases %standard-phases
(replace 'bootstrap
(lambda _ (invoke "autoreconf" "-vif"))))
'%standard-phases)))
(inputs
(list classpath-bootstrap jikes libffi
zip zlib))
(native-inputs
(if (string-prefix? "aarch64" (or (%current-system)
(%current-target-system)))
;; Additional packages needed for autoreconf.
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool))
'()))
(home-page "http://jamvm.sourceforge.net/")
(synopsis "Small Java Virtual Machine")
(description "JamVM is a Java Virtual Machine conforming to the JVM
specification edition 2 (blue book). It is extremely small. However, unlike
other small VMs it supports the full spec, including object finalisation and
JNI.")
(license license:gpl2+)))
(define ant-bootstrap
(package
(name "ant-bootstrap")
;; The 1.10.x series requires Java 8. 1.9.0 and later use generics, which
;; are not supported. The 1.8.x series is the last to use only features
;; supported by Jikes.
(version "1.8.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/"
"ant/source/apache-ant-"
version "-src.tar.bz2"))
(sha256
(base32
"1cg0lga887qz5iizh6mlkxp01lciymrhmp7wzxpl6zpnldxmzrjx"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((srfi srfi-1)
(guix build gnu-build-system)
(guix build utils))
#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
(delete 'bootstrap)
(delete 'configure)
(add-before 'build 'define-java-environment-variables
(lambda* (#:key inputs #:allow-other-keys)
;; First, set environment variables (eases debugging on -K).
(setenv "JAVA_HOME" (assoc-ref inputs "jamvm"))
(setenv "JAVACMD" (search-input-file inputs "/bin/jamvm"))
(setenv "JAVAC" (search-input-file inputs "/bin/jikes"))
(setenv "CLASSPATH" (search-input-file inputs "/lib/rt.jar"))))
(replace 'build
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Ant complains if this file doesn't exist.
(setenv "HOME" "/tmp")
(with-output-to-file "/tmp/.ant.properties"
(lambda _ (display "")))
;; Use jikes instead of javac for <javac ...> tags in build.xml
(setenv "ANT_OPTS" "-Dbuild.compiler=jikes")
;; jikes produces lots of warnings, but they are not very
;; interesting, so we silence them.
(setenv "$BOOTJAVAC_OPTS" "-nowarn")
;; Without these JamVM options the build may freeze.
(substitute* "bootstrap.sh"
(("^\"\\$\\{JAVACMD\\}\" " m)
,@(if (string-prefix? "armhf" (or (%current-system)
(%current-target-system)))
`((string-append m "-Xnocompact "))
`((string-append m "-Xnocompact -Xnoinlining ")))))
;; Disable tests because we are bootstrapping and thus don't have
;; any of the dependencies required to build and run the tests.
(substitute* "build.xml"
(("depends=\"jars,test-jar\"") "depends=\"jars\""))
(invoke "bash" "bootstrap.sh"
(string-append "-Ddist.dir="
(assoc-ref outputs "out")))))
(add-after 'build 'strip-jar-timestamps ;based on ant-build-system
(lambda* (#:key outputs #:allow-other-keys)
(define (repack-archive jar)
(let* ((dir (mkdtemp "jar-contents.XXXXXX"))
(manifest (string-append dir "/META-INF/MANIFESTS.MF")))
(with-directory-excursion dir
(invoke "unzip" jar))
(delete-file jar)
;; XXX: copied from (gnu build install)
(for-each (lambda (file)
(let ((s (lstat file)))
(unless (eq? (stat:type s) 'symlink)
(utime file 0 0 0 0))))
(find-files dir #:directories? #t))
;; It is important that the manifest appears first.
(with-directory-excursion dir
(let* ((files (find-files "." ".*" #:directories? #t))
;; To ensure that the reference scanner can
;; detect all store references in the jars
;; we disable compression with the "-0" option.
(command (if (file-exists? manifest)
`("zip" "-0" "-X" ,jar ,manifest
,@files)
`("zip" "-0" "-X" ,jar ,@files))))
(apply invoke command)))))
(for-each repack-archive
(find-files
(string-append (assoc-ref %outputs "out") "/lib")
"\\.jar$"))))
(delete 'install))))
(native-inputs
(list jikes jamvm-1-bootstrap unzip zip))
(home-page "https://ant.apache.org")
(synopsis "Build tool for Java")
(description
"Ant is a platform-independent build tool for Java. It is similar to
make but is implemented using the Java language, requires the Java platform,
and is best suited to building Java projects. Ant uses XML to describe the
build process and its dependencies, whereas Make uses Makefile format.")
(license license:asl2.0)))
;; Version 3.2.2 is the last version without a dependency on a full-fledged
;; compiler for Java 1.5.
(define ecj-bootstrap
(package
(name "ecj-bootstrap")
(version "3.2.2")
(source (origin
(method url-fetch)
(uri (string-append "http://archive.eclipse.org/eclipse/"
"downloads/drops/R-" version
"-200702121330/ecjsrc.zip"))
(sha256
(base32
"05hj82kxd23qaglsjkaqcj944riisjha7acf7h3ljhrjyljx8307"))))
;; It would be so much easier if we could use the ant-build-system, but we
;; cannot as we don't have ant at this point. We use ecj for
;; bootstrapping the JDK.
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; there are no tests
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CLASSPATH"
(string-join
(cons (search-input-file inputs "/lib/rt.jar")
(find-files (string-append
(assoc-ref inputs "ant-bootstrap")
"/lib")
"\\.jar$"))
":"))))
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
;; The unpack phase enters the "org" directory by mistake.
(chdir "..")
;; Create a simple manifest to make ecj executable.
(with-output-to-file "manifest"
(lambda _
(display "Manifest-Version: 1.0
Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n")))
;; Compile it all!
(and (apply invoke "jikes"
(find-files "." "\\.java$"))
(invoke "fastjar" "cvfm"
"ecj-bootstrap.jar" "manifest" "."))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((share (string-append (assoc-ref outputs "out")
"/share/java/")))
(mkdir-p share)
(install-file "ecj-bootstrap.jar" share)))))))
(native-inputs
(list ant-bootstrap
unzip
jikes
jamvm-1-bootstrap
fastjar))
(home-page "https://eclipse.org")
(synopsis "Eclipse Java development tools core batch compiler")
(description "This package provides the Eclipse Java core batch compiler
for bootstrapping purposes. The @dfn{Eclipse compiler for Java} (ecj) is a
requirement for all GNU Classpath releases after version 0.93.")
(license license:epl1.0)))
(define ecj-javac-wrapper
(package (inherit ecj-bootstrap)
(name "ecj-javac-wrapper")
(source #f)
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
,#~(begin
(use-modules (guix build utils))
(let* ((bin (string-append #$output "/bin"))
(target (string-append bin "/javac"))
(guile (string-append (assoc-ref %build-inputs "guile")
"/bin/guile"))
(ecj (string-append #$(this-package-native-input "ecj-bootstrap")
"/share/java/ecj-bootstrap.jar"))
(java (string-append #$(this-package-native-input "jamvm")
"/bin/jamvm"))
(bootcp (let ((jvmlib (string-append
#$(this-package-native-input "classpath")
"/share/classpath")))
(string-append jvmlib "/glibj.zip:"
jvmlib "/tools.zip"))))
(mkdir-p bin)
(with-output-to-file target
(lambda _
(format #t "#!~a --no-auto-compile\n!#\n" guile)
(write
`(begin (use-modules (ice-9 match)
(ice-9 receive)
(ice-9 hash-table)
(srfi srfi-1)
(srfi srfi-26))
(define defaults
'(("-bootclasspath" ,bootcp)
("-source" "1.5")
("-target" "1.5")
("-cp" ".")))
(define (main args)
(let ((classpath (getenv "CLASSPATH")))
(setenv "CLASSPATH"
(string-join (list ,ecj (or classpath ""))
":")))
(receive (vm-args other-args)
;; Separate VM arguments from arguments to ECJ.
(partition (cut string-prefix? "-J" <>)
(fold (lambda (default acc)
(if (member (first default) acc)
acc (append default acc)))
args defaults))
(apply system* ,java
(append
;; Remove "-J" prefix
(map (cut string-drop <> 2) vm-args)
'("org.eclipse.jdt.internal.compiler.batch.Main")
(cons "-nowarn" other-args)))))
;; Entry point
(let ((args (cdr (command-line))))
(if (null? args)
(format (current-error-port) "javac: no arguments given!\n")
(main args)))))))
(chmod target #o755)))))
(native-inputs
(list guile-3.0 ecj-bootstrap jamvm-1-bootstrap classpath-bootstrap))
(description "This package provides a wrapper around the @dfn{Eclipse
compiler for Java} (ecj) with a command line interface that is compatible with
the standard javac executable.")))
;; The classpath-bootstrap was built without a virtual machine, so it does not
;; provide a wrapper for javah. We cannot build the development version of
;; Classpath without javah.
(define classpath-0.99
(package (inherit classpath-bootstrap)
(version "0.99")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/classpath/classpath-"
version ".tar.gz"))
(sha256
(base32
"1j7cby4k66f1nvckm48xcmh352b1d1b33qk7l6hi7dp9i9zjjagr"))
(patches (search-patches "classpath-aarch64-support.patch"))))
(arguments
`(#:configure-flags
(list (string-append "--with-ecj-jar="
(assoc-ref %build-inputs "ecj-bootstrap")
"/share/java/ecj-bootstrap.jar")
(string-append "JAVAC="
(assoc-ref %build-inputs "ecj-javac-wrapper")
"/bin/javac")
(string-append "JAVA="
(assoc-ref %build-inputs "jamvm")
"/bin/jamvm")
"GCJ_JAVAC_TRUE=no"
"ac_cv_prog_java_works=yes" ; trust me
"--disable-Werror"
"--disable-gmp"
"--disable-gtk-peer"
"--disable-gconf-peer"
"--disable-plugin"
"--disable-dssi"
"--disable-alsa"
"--disable-gjdoc")
#:phases
(modify-phases %standard-phases
(add-after 'install 'install-data
(lambda _ (invoke "make" "install-data"))))))
(native-inputs
(list classpath-bootstrap
ecj-bootstrap ecj-javac-wrapper
fastjar jamvm-1-bootstrap
libltdl pkg-config))))
;; We need this because classpath-bootstrap does not provide all of the tools
;; we need to build classpath-devel.
(define classpath-jamvm-wrappers
(package (inherit classpath-0.99)
(name "classpath-jamvm-wrappers")
(source #f)
(build-system trivial-build-system)
(arguments
(list
#:modules '((guix build utils))
#:builder
#~(begin
(use-modules (guix build utils))
(let ((bash #$(this-package-native-input "bash-minimal"))
(jamvm #$(this-package-native-input "jamvm"))
(classpath #$(this-package-native-input "classpath"))
(bin (string-append #$output "/bin/")))
(mkdir-p bin)
(for-each (lambda (tool)
(with-output-to-file (string-append bin tool)
(lambda _
#$@(if (string-prefix? "armhf" (or (%current-system)
(%current-target-system)))
`((format #t "#!~a/bin/sh
~a/bin/jamvm -Xnocompact -classpath ~a/share/classpath/tools.zip \
gnu.classpath.tools.~a.~a $@"
bash jamvm classpath tool
(if (string=? "native2ascii" tool)
"Native2ASCII" "Main")))
`((format #t "#!~a/bin/sh
~a/bin/jamvm -Xnocompact -Xnoinlining -classpath ~a/share/classpath/tools.zip \
gnu.classpath.tools.~a.~a $@"
bash jamvm classpath tool
(if (string=? "native2ascii" tool)
"Native2ASCII" "Main"))))))
(chmod (string-append bin tool) #o755))
(list "javah"
"rmic"
"rmid"
"orbd"
"rmiregistry"
"native2ascii"))))))
(native-inputs
(list bash-minimal jamvm-1-bootstrap classpath-0.99))
(inputs '())
(synopsis "Executables from GNU Classpath")
(description "This package provides wrappers around the tools provided by
the GNU Classpath library. They are executed by the JamVM virtual
machine.")))
;; The last release of GNU Classpath is 0.99 and it happened in 2012. Since
;; then Classpath has gained much more support for Java 1.6.
(define classpath-devel
(let ((commit "e7c13ee0cf2005206fbec0eca677f8cf66d5a103")
(revision "1"))
(package (inherit classpath-bootstrap)
(version (string-append "0.99-" revision "." (string-take commit 9)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.savannah.gnu.org/git/classpath.git")
(commit commit)))
(file-name (string-append "classpath-" version "-checkout"))
(sha256
(base32
"1v2rww76ww322mpg3s12a1kkc6gkp31bm9gcxs532h0wq285fiw4"))
(patches (search-patches "classpath-aarch64-support.patch"))))
(arguments
`(#:make-flags
;; Ensure that the initial heap size is smaller than the maximum
;; size. By default only Xmx is set, which can lead to invalid
;; memory settings on some machines with a lot of memory.
'("JAVAC_MEM_OPT=-J-Xms512M -J-Xmx768M")
#:configure-flags
(list (string-append "--with-ecj-jar="
(assoc-ref %build-inputs "ecj-bootstrap")
"/share/java/ecj-bootstrap.jar")
(string-append "--with-javac="
(assoc-ref %build-inputs "ecj-javac-wrapper")
"/bin/javac")
(string-append "JAVA="
(assoc-ref %build-inputs "jamvm")
"/bin/jamvm")
"GCJ_JAVAC_TRUE=no"
"ac_cv_prog_java_works=yes" ; trust me
"--disable-Werror"
"--disable-gmp"
"--disable-gtk-peer"
"--disable-gconf-peer"
"--disable-plugin"
"--disable-dssi"
"--disable-alsa"
"--disable-gjdoc")
#:phases
(modify-phases %standard-phases
;; XXX The bootstrap phase executes autogen.sh, which fails after
;; complaining about the lack of gettext.
(replace 'bootstrap
(lambda _ (invoke "autoreconf" "-vif")))
(add-after 'unpack 'remove-unsupported-annotations
(lambda _
(substitute* (find-files "java" "\\.java$")
(("@Override") ""))))
(add-after 'install 'install-data
(lambda _ (invoke "make" "install-data"))))))
(native-inputs
(list autoconf automake libltdl libtool gettext-minimal texinfo
pkg-config
classpath-jamvm-wrappers ;for javah
ecj-bootstrap ecj-javac-wrapper fastjar
jamvm-1-bootstrap)))))
(define jamvm
(package (inherit jamvm-1-bootstrap)
(version "2.0.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/jamvm/jamvm/"
"JamVM%20" version "/jamvm-"
version ".tar.gz"))
(sha256
(base32
"1nl0zxz8y5x8gwsrm7n32bry4dx8x70p8z3s9jbdvs8avyb8whkn"))
(patches
(search-patches "jamvm-2.0.0-disable-branch-patching.patch"
"jamvm-2.0.0-opcode-guard.patch"
"jamvm-2.0.0-aarch64-support.patch"))
;; Remove precompiled software.
(snippet
'(delete-file "src/classlib/gnuclasspath/lib/classes.zip"))))
(build-system gnu-build-system)
(arguments
(substitute-keyword-arguments (package-arguments jamvm-1-bootstrap)
((#:configure-flags _)
'(list (string-append "--with-classpath-install-dir="
(assoc-ref %build-inputs "classpath"))))))
(inputs
`(("classpath" ,classpath-devel)
("ecj-javac-wrapper" ,ecj-javac-wrapper)
("zip" ,zip)
("zlib" ,zlib)))))
(define ecj-javac-wrapper-final
(package (inherit ecj-javac-wrapper)
(native-inputs
(list guile-3.0 ecj-bootstrap jamvm classpath-devel))))
;; We jump ahead by patching the sources of ECJ 4.2.1 so that our bootstrap
;; JDK can build it. ECJ 4 allows us to skip the build of the first version
;; of icedtea and build icedtea 2.x directly.
(define ecj4-bootstrap
(package
(name "ecj-bootstrap")
(version "4.2.1")
(source (origin
(method url-fetch)
(uri (string-append "http://archive.eclipse.org/eclipse/"
"downloads/drops4/R-" version
"-201209141800/ecjsrc-" version ".jar"))
(sha256
(base32
"1x281p87m14zylvinkiz6gc23ss7pzlx419qjbql11jriwav4qfj"))))
;; It would be so much easier if we could use the ant-build-system, but we
;; cannot as we don't have ant at this point. We use ecj for
;; bootstrapping the JDK.
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; there are no tests
#:phases
(modify-phases %standard-phases
(replace 'unpack
(lambda* (#:key source #:allow-other-keys)
(mkdir "src")
(with-directory-excursion "src"
(invoke "gjar" "-xf" source))
(chdir "src")))
(replace 'configure
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CLASSPATH"
(string-join
(cons (search-input-file inputs "/lib/rt.jar")
(find-files (string-append
(assoc-ref inputs "ant-bootstrap")
"/lib")
"\\.jar$"))
":"))
;; This directive is not supported by our simple bootstrap JDK.
(substitute* (find-files "." "\\.java$")
(("@Override") ""))))
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
;; We can't compile these yet, but we don't need them at this
;; point anyway.
(delete-file "org/eclipse/jdt/core/JDTCompilerAdapter.java")
(delete-file-recursively "org/eclipse/jdt/internal/antadapter")
;; Create a simple manifest to make ecj executable.
(mkdir-p "META-INF")
(with-output-to-file "META-INF/MANIFESTS.MF"
(lambda _
(display "Manifest-Version: 1.0
Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n")))
;; Compile it all!
(apply invoke "javac"
(find-files "." "\\.java$"))
;; Pack it all up! We don't use "jar" here, because
;; it doesn't produce reproducible zip archives.
;; XXX: copied from (gnu build install)
(for-each (lambda (file)
(let ((s (lstat file)))
(unless (eq? (stat:type s) 'symlink)
(utime file 0 0 0 0))))
(find-files "." #:directories? #t))
;; It is important that the manifest appears first.
(apply invoke "zip" "-0" "-X" "ecj-bootstrap.jar"
"META-INF/MANIFESTS.MF"
(delete "./META-INF/MANIFESTS.MF"
(find-files "." ".*" #:directories? #t)))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((share (string-append (assoc-ref outputs "out")
"/share/java/")))
(mkdir-p share)
(install-file "ecj-bootstrap.jar" share)))))))
(native-inputs
(list ant-bootstrap classpath-devel ecj-javac-wrapper-final jamvm
unzip zip))
(home-page "https://eclipse.org")
(synopsis "Eclipse Java development tools core batch compiler")
(description "This package provides the Eclipse Java core batch compiler
for bootstrapping purposes. The @dfn{Eclipse compiler for Java} (ecj) is a
requirement for all GNU Classpath releases after version 0.93. This version
supports sufficient parts of Java 7 to build Icedtea 2.x.")
(license license:epl1.0)))
(define ecj4-javac-wrapper
(package
(inherit ecj-javac-wrapper)
(native-inputs
(list guile-3.0 ecj4-bootstrap jamvm classpath-devel))))
(define jamvm-with-ecj4
(package
(inherit jamvm)
(inputs
(modify-inputs (package-inputs jamvm)
(replace "ecj-javac-wrapper" ecj4-javac-wrapper)))))

688
gnu/packages/java-xml.scm Normal file
View File

@ -0,0 +1,688 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2021, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2018, 2021 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Léo Le Bouter <lle-bout@zaclys.net>
;;; Copyright © 2022 Christopher Baines <mail@cbaines.net>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages java-xml)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages gtk)
#:use-module (gnu packages java)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system ant)
#:use-module (guix utils))
(define-public java-simple-xml
(package
(name "java-simple-xml")
(version "2.7.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/simple/simple-xml-"
version ".zip"))
(sha256
(base32
"0w19k1awslmihpwsxwjbg89hv0vjhk4k3i0vrfchy3mqknd988y5"))
(patches (search-patches "java-simple-xml-fix-tests.patch"))))
(build-system ant-build-system)
(arguments
`(#:build-target "build"
#:test-target "test"
#:phases
(modify-phases %standard-phases
(replace 'install (install-jars "jar"))
(add-before 'check 'disable-failing-test
(lambda _
;; This test sometimes fails with an out of memory exception
(delete-file
"test/src/org/simpleframework/xml/core/NoAnnotationsRequiredTest.java"))))))
(native-inputs
(list unzip))
(home-page "http://simple.sourceforge.net/")
(synopsis "XML serialization framework for Java")
(description "Simple is a high performance XML serialization and
configuration framework for Java. Its goal is to provide an XML framework
that enables rapid development of XML configuration and communication systems.
This framework aids the development of XML systems with minimal effort and
reduced errors. It offers full object serialization and deserialization,
maintaining each reference encountered.")
(license license:asl2.0)))
;; TODO: Debian builds several jars out of this: jaxp-1.4.jar,
;; xml-apis.jar and xml-apis-1.4.01.jar.
(define-public java-jaxp
(package
(name "java-jaxp")
(version "1.4.01")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://apache/xerces/xml-commons/source/"
"xml-commons-external-" version "-src.tar.gz"))
(sha256
(base32 "0rhq32a7dl9yik7zx9h0naz2iz068qgcdiayak91wp4wr26xhjyk"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "jaxp.jar"
#:jdk ,icedtea-8
#:source-dir ".."
#:tests? #f)); no tests
(home-page "http://xerces.apache.org/xml-commons/")
(synopsis "Java XML parser and transformer APIs (DOM, SAX, JAXP, TrAX)")
(description "Jaxp from the Apache XML Commons project is used by
the Xerces-J XML parser and Xalan-J XSLT processor and specifies these APIs:
@itemize
@item Document Object Model (DOM)
@item Simple API for XML (SAX)
@item Java APIs for XML Processing (JAXP)
@item Transformation API for XML (TrAX)
@item Document Object Model (DOM) Load and Save
@item JSR 206 Java API for XML Processing
@end itemize")
(license (list license:asl2.0
license:w3c ;; Files under org.w3c
license:public-domain)))) ;; org.xml.sax
(define-public java-apache-xml-commons-resolver
(package
(name "java-apache-xml-commons-resolver")
(version "1.2")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://apache/xerces/xml-commons/"
"xml-commons-resolver-" version ".tar.gz"))
(sha256
(base32 "1zhy4anc3fg9f8y348bj88vmab15aavrg6nf419ifb25asyygnsm"))
(modules '((guix build utils)))
(snippet
'(begin
(for-each delete-file (find-files "." ".*\\.(jar|zip)"))
#t))))
(build-system ant-build-system)
(arguments
`(#:jar-name (string-append "xml-resolver.jar")
#:tests? #f)); no tests
(inputs
(list java-junit))
(home-page "http://xerces.apache.org/xml-commons/")
(synopsis "Catalog-based entity and URI resolution")
(description "The resolver class implements the full semantics of OASIS Technical
Resolution 9401:1997 (Amendment 2 to TR 9401) catalogs and the 06 Aug
2001 Committee Specification of OASIS XML Catalogs.
It also includes a framework of classes designed to read catalog files
in a number of formats:
@itemize
@item The plain-text flavor described by TR9401.
@item The XCatalog XML format defined by John Cowan
@item The XML Catalog format defined by the OASIS Entity Resolution
Technical Committee.
@end itemize")
(license license:asl2.0)))
;; Jaxen requires java-dom4j and java-xom that in turn require jaxen.
;; This package is a bootstrap version without dependencies on dom4j and xom.
(define java-jaxen-bootstrap
(package
(name "java-jaxen-bootstrap")
(version "1.1.6")
(source (origin
(method url-fetch)
;; No release on github
(uri (string-append "https://repo1.maven.org/maven2/jaxen/jaxen/"
version "/jaxen-" version "-sources.jar"))
(sha256
(base32
"18pa8mks3gfhazmkyil8wsp6j1g1x7rggqxfv4k2mnixkrj5x1kx"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "jaxen.jar"
#:source-dir "src"
#:tests? #f; no tests
#:phases
(modify-phases %standard-phases
(add-before 'build 'remove-dom4j
(lambda _
(delete-file-recursively "src/org/jaxen/dom4j")
(delete-file-recursively "src/org/jaxen/xom")
#t)))))
(inputs
`(("java-jdom" ,java-jdom)))
(home-page "https://github.com/jaxen-xpath/jaxen")
(synopsis "XPath library")
(description "Jaxen is an XPath library written in Java. It is adaptable
to many different object models, including DOM, XOM, dom4j, and JDOM. It is
also possible to write adapters that treat non-XML trees such as compiled
Java byte code or Java beans as XML, thus enabling you to query these trees
with XPath too.")
(license license:bsd-3)))
(define-public java-jaxen
(package
(inherit java-jaxen-bootstrap)
(name "java-jaxen")
(inputs
(list java-jdom java-xom java-dom4j))))
(define-public java-xom
(package
(name "java-xom")
(version "127")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/elharo/xom")
(commit (string-append "XOM_" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1jh6y03g5zzdhsb5jm6ms1xnamr460qmn96y3w6aw0ikfwqlg0bq"))
(modules '((guix build utils)))
(snippet
'(begin
(for-each delete-file
(find-files "." "\\.jar$"))
#t))))
(build-system ant-build-system)
(arguments
`(#:jar-name "xom.jar"
#:jdk ,icedtea-8
#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
(lambda _
(for-each make-file-writable (find-files "."))
#t))
(add-before 'configure 'fix-tagsoup-dep
(lambda _
;; FIXME: Where is tagsoup source?
(delete-file "src/nu/xom/tools/XHTMLJavaDoc.java")
#t)))))
(inputs
(list java-jdom java-junit java-classpathx-servletapi
java-jaxen-bootstrap java-xerces))
(home-page "https://xom.nu/")
(synopsis "XML Object Model")
(description "XOM is a new XML Object Model for processing XML with Java
that strives for correctness and simplicity.")
;; 2.1 only
(license license:lgpl2.1)))
(define-public java-xsdlib
(package
(name "java-xsdlib")
(version "2013.2")
(source (origin
(method url-fetch)
(uri (string-append "https://repo1.maven.org/maven2/com/sun/msv/"
"datatype/xsd/xsdlib/" version "/xsdlib-"
version "-sources.jar"))
(sha256
(base32
"185i48p1xp09wbq03i9zgfl701qa262rq46yf4cajzmk3336kqim"))))
(build-system ant-build-system)
(arguments
`(#:tests? #f; no tests
#:jar-name "xsdlib.jar"
#:jdk ,icedtea-8))
(inputs
(list java-xerces))
(home-page (string-append "https://web.archive.org/web/20161127144537/"
"https://msv.java.net//"))
(synopsis "Sun Multi-Schema Validator")
(description "Xsdlib contains an implementation of sun.com.msv, an XML
validator.")
(license license:bsd-2)))
(define-public java-xpp3
(package
(name "java-xpp3")
(version "1.1.4")
(source (origin
(method url-fetch)
(uri (string-append
"https://ci.guix.gnu.org/file/"
"xpp3-1.1.4_src.tgz"
"/sha256/"
"1b99zrhyij5qwyhilyjdl1ykxvhk902vsvflh6gx4fir8hfvdl5p"))
(file-name (string-append name "-" version "_src.tgz"))
(sha256
(base32
"1b99zrhyij5qwyhilyjdl1ykxvhk902vsvflh6gx4fir8hfvdl5p"))
(modules '((guix build utils)))
(snippet
'(begin ;; Delete bundled jar archives.
(for-each delete-file (find-files "." ".*\\.jar"))
#t))))
(build-system ant-build-system)
(arguments
`(#:tests? #f; no tests
#:build-target "jar"
#:phases
(modify-phases %standard-phases
(replace 'install (install-jars "build")))))
(home-page "http://www.extreme.indiana.edu/xgws/xsoap/xpp/")
(synopsis "Streaming pull XML parser")
(description "Xml Pull Parser (in short XPP) is a streaming pull XML
parser and should be used when there is a need to process quickly and
efficiently all input elements (for example in SOAP processors). This
package is a stable XmlPull parsing engine that is based on ideas from XPP
and in particular XPP2 but completely revised and rewritten to take the best
advantage of JIT JVMs.")
(license (license:non-copyleft "file://LICENSE.txt"))))
(define-public java-xmlpull2
(package
(name "java-xmlpull2")
(version "2.1.10")
(source (origin
(method url-fetch)
;; Unfortunately, archive.org does not have a copy of this file.
(uri (string-append "https://ftp.fau.de/gentoo/distfiles/"
"PullParser" version ".tgz"))
(sha256
(base32
"1kw9nhyqb7bzhn2zjbwlpi5vp5rzj89amzi3hadw2acyh2dmd0md"))
(modules '((guix build utils)))
(snippet
'(begin ;; Delete bundled jar archives.
(for-each delete-file (find-files "." ".*\\.jar"))
#t))))
(build-system ant-build-system)
(arguments
`(#:tests? #f; no tests
#:build-target "impl"
#:phases
(modify-phases %standard-phases
(replace 'install (install-jars "build/lib")))))
(home-page (string-append "https://web.archive.org/web/20210225153105/"
"https://www.extreme.indiana.edu/"))
(synopsis "Streaming pull XML parser")
(description "Xml Pull Parser (in short XPP) is a streaming pull XML
parser and should be used when there is a need to process quickly and
efficiently all input elements (for example in SOAP processors). This
package is in maintenance mode.")
(license (license:non-copyleft "file:///LICENSE.txt"))))
(define-public java-xmlpull-api-v1
(package
(name "java-xmlpull-api-v1")
(version "1.1.3.4b")
(source (origin
;; The package is originally from Extreme! Lab, but the website
;; is now gone. This repositories contains the sources of the
;; latest version.
(method git-fetch)
(uri (git-reference
(url "https://github.com/aslom/xmlpull-api-v1")
;; No releases, this is the latest commit
(commit "abeaa4aa87b2625af70c32f658f44e11355fe568")))
(file-name (git-file-name name version))
(sha256
(base32
"15bdqxfncnakskna4m9gsh4f9iczxy83qxn2anqiqd15z406a5ih"))
(modules '((guix build utils)))
(snippet
`(begin
(delete-file-recursively "lib")
(mkdir-p "lib")
;; prevents a failure in "dist_lite"
(substitute* "build.xml"
(("README.html") "README.md"))))))
(build-system ant-build-system)
(arguments
`(#:test-target "junit"
#:build-target "dist"
#:phases
(modify-phases %standard-phases
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/" ,name "-" ,version))
(java (string-append out "/share/java"))
(project (string-append
"xmlpull_"
,(string-join (string-split version #\.) "_"))))
(mkdir-p doc)
(copy-recursively (string-append "build/dist/" project "/doc/")
doc)
(mkdir-p java)
(copy-file (string-append "build/dist/" project "/" project ".jar")
(string-append java "/" project ".jar")))
)))))
(home-page "https://github.com/aslom/xmlpull-api-v1")
(synopsis "XML pull parsing API")
(description "XmlPull v1 API is a simple to use XML pull parsing API. XML
pull parsing allows incremental (sometimes called streaming) parsing of XML
where application is in control - the parsing can be interrupted at any given
moment and resumed when application is ready to consume more input.")
(license license:public-domain)))
(define-public java-dom4j
(package
(name "java-dom4j")
(version "2.1.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dom4j/dom4j")
(commit (string-append "version-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0q907srj9v4hwicpcrn4slyld5npf2jv7hzchsgrg29q2xmbwkdl"))
(modules '((guix build utils)))
(snippet
'(begin ;; Delete bundled jar archives.
(for-each delete-file (find-files "." ".*\\.jar"))
#t))))
(build-system ant-build-system)
(arguments
`(#:jar-name "dom4j.jar"
#:jdk ,icedtea-8
#:source-dir "src/main/java"
;; FIXME: Requires xalan, but xalan depends on java-cup which has a
;; dependency on itself through jflex.
#:tests? #f
#:phases
(modify-phases %standard-phases
(add-before 'build 'copy-jaxen-sources
;; java-jaxen-bootstrap is not enough. These files have a circular
;; dependency and there is no subset of dom4j that would allow
;; breaking the circle.
(lambda* (#:key inputs #:allow-other-keys)
(mkdir-p "jaxen-sources")
(with-directory-excursion "jaxen-sources"
(system* "jar" "xf" (assoc-ref inputs "java-jaxen-sources")))
(mkdir-p "src/main/java/org/jaxen/dom4j")
(copy-file "jaxen-sources/org/jaxen/dom4j/DocumentNavigator.java"
"src/main/java/org/jaxen/dom4j/DocumentNavigator.java")
(copy-file "jaxen-sources/org/jaxen/dom4j/Dom4jXPath.java"
"src/main/java/org/jaxen/dom4j/Dom4jXPath.java")
#t))
(add-before 'build 'fix-old-xpp2
(lambda _
;; This package normally depends on xpp2 2.0, but version 2.1.10
;; is the only version whose source code is published.
(substitute* "src/main/java/org/dom4j/xpp/ProxyXmlStartTag.java"
(("public void resetStartTag")
"public boolean removeAttributeByRawName(String name) {\n
return false;\n
}\n
public boolean removeAttributeByName(String name, String name2) {\n
return false;\n
}\n\npublic void resetStartTag")
(("Atttribute") "Attribute"))
#t)))))
(inputs
`(("java-jaxen-bootstrap" ,java-jaxen-bootstrap)
("java-jaxen-sources" ,(package-source java-jaxen-bootstrap))
("java-xmlpull2" ,java-xmlpull2)
("java-xpp3" ,java-xpp3)
("java-xsdlib" ,java-xsdlib)))
(native-inputs
(list java-testng java-xerces))
(home-page "https://dom4j.github.io/")
(synopsis "Flexible XML framework for Java")
(description "Dom4j is a flexible XML framework for Java. DOM4J works
with DOM, SAX, XPath, and XSLT. It can parse large XML documents with very
low memory footprint.")
;; some BSD-like 5-clause license
(license (license:non-copyleft "file://LICENSE"))))
(define-public java-kxml2
(package
(name "java-kxml2")
(version "2.4.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/stefanhaustein/kxml2")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0g6d8c9r9sh3x04sf4wdpgwvhkqvk11k3kq9skx91i60h4vn01hg"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "kxml2.jar"
#:source-dir "src/main/java"
#:test-include (list "TestWb.java")
;; Test failure: it was expected to get an XML entity but got the
;; equivalent Unicode character instead.
#:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
(lambda _
(for-each make-file-writable (find-files "."))
#t))
(add-before 'build 'copy-resources
(lambda _
(copy-recursively "src/main/resources" "build/classes")
#t)))))
(inputs
(list java-xpp3))
(native-inputs
(list java-junit))
(home-page "http://kxml.org")
(synopsis "XML pull parser")
(description "kXML is a small XML pull parser, specially designed for
constrained environments such as Applets, Personal Java or devices compliant
with the Mobile Information Device Profile (MIDP).")
(license license:expat)))
(define-public java-stax
(package
(name "java-stax")
(version "1.2.0")
(source (origin
(method url-fetch)
(uri (string-append "https://repo1.maven.org/maven2/stax/stax/"
version "/stax-" version "-sources.jar"))
(sha256
(base32
"04ba4qvbrps45j8bldbakxq31k7gjlsay9pppa9yn13fr00q586z"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "stax.jar"
#:tests? #f; no tests
#:phases
(modify-phases %standard-phases
(add-before 'configure 'fix-utf8
(lambda _
;; This file is ISO-8859-1 but java expects UTF-8.
;; Remove special characters in comments.
(with-fluids ((%default-port-encoding "ISO-8859-1"))
(substitute* "src/com/wutka/dtd/Scanner.java"
(("//.*") "\n")))
#t)))))
(home-page "https://repo1.maven.org/maven2/stax/stax/")
(synopsis "Streaming API for XML")
(description "This package provides the reference implementation of the
@dfn{Streaming API for XML} (StAX). It is used for streaming XML data to
and from a Java application. It provides a standard pull parser interface.")
(license license:asl2.0)))
(define-public java-jettison
(package
(name "java-jettison")
(version "1.3.7")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/codehaus/jettison")
(commit (string-append "jettison-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"15sydmi5chdh4126qc7v8bsrp7fp4ldaya8a05iby4pq2324q0qw"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "jettison.jar"
#:source-dir "src/main/java"
#:test-exclude (list "**/Abstract*.java"
;; Abstract classes
"**/DOMTest.java"
"**/BadgerFishDOMTest.java"
"**/MappedDOMTest.java")))
(native-inputs
(list java-junit))
(home-page "https://github.com/codehaus/jettison")
(synopsis "StAX implementation for JSON")
(description "Jettison is a Java library for converting XML to JSON and
vice-versa with the help of the @dfn{Streaming API for XML} (StAX). It
implements @code{XMLStreamWriter} and @code{XMLStreamReader} and supports
@code{Mapped} and @code{BadgerFish} conventions.")
(license license:asl2.0)))
(define-public java-jdom2
(package
(name "java-jdom")
(version "2.0.6.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hunterhacker/jdom")
(commit (string-append "JDOM-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1r4pwl0z7hm45v9l2wbq3fjmqi13zmwzbrggyqizrwv31kghhx56"))))
(build-system ant-build-system)
(arguments
`(#:build-target "package"
#:tests? #f ; tests are run as part of the build process
#:phases
(modify-phases %standard-phases
(replace 'install
(install-jars "build")))))
(home-page "http://jdom.org/")
(synopsis "Access, manipulate, and output XML data")
(description "Jdom is a Java-based solution for accessing, manipulating, and
outputting XML data from Java code.")
(license license:bsd-4)))
(define-public java-xstream
(package
(name "java-xstream")
(version "1.4.16")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/x-stream/xstream")
(commit (string-append
"XSTREAM_"
(string-map (lambda (x) (if (eq? x #\.) #\_ x))
version)))))
(file-name (git-file-name name version))
(sha256
(base32 "16k2mc63h2fw7lxv74qmhg4p8q9hfrw114daa6nxwnpv08cnq755"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "xstream.jar"
;; FIXME: Tests are not in a java subdirectory as assumed by ant-build-system.
#:tests? #f
#:jdk ,icedtea-8
#:source-dir "xstream/src/java"))
(inputs
`(("java-jdom" ,java-jdom)
("java-jdom2" ,java-jdom2)
("java-cglib" ,java-cglib)
("java-joda-time" ,java-joda-time)
("java-jettison" ,java-jettison)
("java-xom" ,java-xom)
("java-mxparser" ,java-mxparser)
("java-xpp3" ,java-xpp3)
("java-dom4j" ,java-dom4j)
("java-stax2-api" ,java-stax2-api)
("java-woodstox-core" ,java-woodstox-core)
("java-kxml2" ,java-kxml2)
("java-stax" ,java-stax)))
(home-page "https://x-stream.github.io")
(synopsis "XML serialization library")
(description "XStream is a simple library to serialize Java objects to XML
and back again.")
(license license:bsd-3)))
(define-public java-mxparser
(package
(name "java-mxparser")
(version "1.2.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/x-stream/mxparser")
(commit (string-append "v-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0i3jrjbz4hgf62fm1ix7nlcmhi4kcv4flqsfvh7a3l2v7nsp5ryb"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "mxparser.jar"
#:source-dir "src/main/java"
#:test-dir "src/test"
#:phases
(modify-phases %standard-phases
(add-before 'build 'copy-resources
(lambda _
(copy-recursively "src/main/resources" "build/classes")
#t)))))
(propagated-inputs
(list java-xmlpull-api-v1))
(native-inputs
(list java-junit))
(home-page "https://github.com/x-stream/mxparser")
(synopsis "Streaming pull XML parser forked from @code{java-xpp3}")
(description "Xml Pull Parser (in short XPP) is a streaming pull XML
parser and should be used when there is a need to process quickly and
efficiently all input elements (for example in SOAP processors). This
package is a stable XmlPull parsing engine that is based on ideas from XPP
and in particular XPP2 but completely revised and rewritten to take the best
advantage of JIT JVMs.
MXParser is a fork of xpp3_min 1.1.7 containing only the parser with merged
changes of the Plexus fork. It is an implementation of the XMLPULL V1 API
(parser only).")
(license (license:non-copyleft "file://LICENSE.txt"))))

File diff suppressed because it is too large Load Diff

View File

@ -15,7 +15,7 @@
;;; Copyright © 2016, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2016-2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2016-2023 Marius Bakke <marius@gnu.org>
;;; Copyright © 2016, 2018 Rene Saavedra <pacoon@protonmail.com>
;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
@ -588,21 +588,6 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(%upstream-linux-source version hash)
deblob-scripts-4.14)))
(define-public linux-libre-4.9-version "4.9.337")
(define-public linux-libre-4.9-gnu-revision "gnu1")
(define deblob-scripts-4.9
(linux-libre-deblob-scripts
linux-libre-4.9-version
linux-libre-4.9-gnu-revision
(base32 "0nai5m4rbh37qaj1xf2qj7656l2gacfh0847q5d07y22b048fq5n")
(base32 "0bib3641dbcqdkx3anna3caxnsg3nw9cnmhcklq0s93g3m57041h")))
(define-public linux-libre-4.9-pristine-source
(let ((version linux-libre-4.9-version)
(hash (base32 "1imkn3dbxsr35br79sp9s2r9hy1xqvsm652icbsf6rn7apnam1ak")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.9)))
(define %boot-logo-patch
;; Linux-Libre boot logo featuring Freedo and a gnu.
(origin
@ -671,10 +656,6 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(source-with-patches linux-libre-4.14-pristine-source
(list %boot-logo-patch)))
(define-public linux-libre-4.9-source
(source-with-patches linux-libre-4.9-pristine-source
(list %boot-logo-patch)))
;;;
;;; Kernel headers.
@ -787,11 +768,6 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
linux-libre-4.14-gnu-revision
linux-libre-4.14-source))
(define-public linux-libre-headers-4.9
(make-linux-libre-headers* linux-libre-4.9-version
linux-libre-4.9-gnu-revision
linux-libre-4.9-source))
;; The following package is used in the early bootstrap, and thus must be kept
;; stable and with minimal build requirements.
(define-public linux-libre-headers-5.10.35
@ -1159,13 +1135,6 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
"powerpc64le-linux")
#:configuration-file kernel-config))
(define-public linux-libre-4.9
(make-linux-libre* linux-libre-4.9-version
linux-libre-4.9-gnu-revision
linux-libre-4.9-source
'("x86_64-linux" "i686-linux" "powerpc64le-linux")
#:configuration-file kernel-config))
;; Linux-Libre-LTS points to the *newest* released long-term support version of
;; Linux-Libre.
;; Reference: https://jxself.org/linux-libre/
@ -6594,30 +6563,20 @@ The following service daemons are also provided:
(define-public perftest
(package
(name "perftest")
(version "4.4-0.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/linux-rdma/perftest/releases/download/v"
version "/perftest-" version ".g0927198.tar.gz"))
(sha256
(base32 "11ix4h0rrmqqyi84y55a9xnkvwsmwq0sywr46hvxzm4rqz4ma8vq"))))
(version "4.5-0.20")
(home-page "https://github.com/linux-rdma/perftest")
(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
"1hrpzmkz1kq4jwpy6b5fl8073iy7dllcq2hfzdw6waaf5920vd64"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-header-paths
(lambda _
(substitute* '("src/raw_ethernet_fs_rate.c"
"src/raw_ethernet_resources.c"
"src/raw_ethernet_resources.h"
"src/raw_ethernet_send_burst_lat.c"
"src/raw_ethernet_send_bw.c"
"src/raw_ethernet_send_lat.c")
(("/usr/include/netinet/ip.h") "netinet/ip.h"))
#t)))))
(inputs (list rdma-core))
(home-page "https://github.com/linux-rdma/perftest/")
(native-inputs
(list autoconf automake libtool))
(inputs (list pciutils rdma-core))
(synopsis "Open Fabrics Enterprise Distribution (OFED) Performance Tests")
(description "This is a collection of tests written over uverbs intended for
use as a performance micro-benchmark. The tests may be used for hardware or

View File

@ -562,11 +562,11 @@ output), and Binutils.")
(define %llvm-monorepo-hashes
'(("14.0.6" . "14f8nlvnmdkp9a9a79wv67jbmafvabczhah8rwnqrgd5g3hfxxxx")
("15.0.5" . "1z2szqlanksdmj91590wnxqav5z437mpasg00ghb610xkam2v34m")))
("15.0.6" . "13vj0q6if5095a3awq8d97l17qdsc7fks6avkai9k80kl0kzxpv6")))
(define %llvm-patches
'(("14.0.6" . ("clang-14.0-libc-search-path.patch"))
("15.0.5" . ("clang-15.0-libc-search-path.patch"))))
("15.0.6" . ("clang-15.0-libc-search-path.patch"))))
(define (llvm-monorepo version)
(origin
@ -582,7 +582,7 @@ output), and Binutils.")
(define-public llvm-15
(package
(name "llvm")
(version "15.0.5")
(version "15.0.6")
(source (llvm-monorepo version))
(build-system cmake-build-system)
(outputs '("out" "opt-viewer"))
@ -739,7 +739,7 @@ of programming tools as well as libraries with equivalent functionality.")
(package-version llvm-15)))
(sha256
(base32
"0sa6si9v7ddsa9vmg6s3918xx969rvck2v1a0g7hb0fp9jk9j4r1")))))
"099v2yqg11h0h8qqddzkny6b77pafcr7vy5ksc33kqggji173ccj")))))
(define-public clang-14
(clang-from-llvm

View File

@ -32,9 +32,9 @@
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages java)
#:use-module (gnu packages java-xml)
#:use-module (gnu packages maven-parent-pom)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (ice-9 match))
(define-public maven-resolver-api

View File

@ -472,6 +472,31 @@ bunnies, chickens, cows, kittens, rats, sheep, warthogs, penguins and pandas.")
(license (list license:cc0 license:expat))
(properties `((upstream-name . "TenPlus1/mobs_animal")))))
(define-public minetest-mobs-monster
(package
(name "minetest-mobs-monster")
;; Upstream does not use version numbers, so use the release title
;; from ContentDB instead;
(version "2022-12-10")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://notabug.org/TenPlus1/mobs_monster")
(commit "1b197f9ae136179a764ef45824464b667ade52e6")))
(sha256
(base32 "15g8acrzvsiccxchfmgjhyf2lmkbrpdjqv3v7hmqz7xqypi8wm3h"))
(file-name (git-file-name name version))))
(build-system minetest-mod-build-system)
(propagated-inputs (list minetest-mobs))
(home-page "https://notabug.org/TenPlus1/mobs_monster")
(synopsis "Add monsters with Mobs Redo on minetest")
(description
"This Minetest mod adds many types of monsters to Minetest, that live on the
surface or deep underground.")
(license license:expat)
(properties `((upstream-name . "TenPlus1/mobs_monster")))))
(define-public minetest-pipeworks
(package
(name "minetest-pipeworks")
@ -769,3 +794,25 @@ build your island in the sky. Every 30 seconds you will receive a random
block or item from the oneblock to expand the island!")
(license license:gpl3+)
(properties `((upstream-name . "NO11/oneblock")))))
(define-public minetest-wielded-light
(package
(name "minetest-wielded-light")
(version "2022-06-24")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/minetest-mods/wielded_light")
(commit "b5236562af9772dff8522fe2bda5b5f738e81b88")))
(sha256
(base32
"0m5rf8wkc9iq04xppjfva9d83qmhlnx8fibdbi2d3pkwwl6p2y5c"))
(file-name (git-file-name name version))))
(build-system minetest-mod-build-system)
(home-page (minetest-topic 19378))
(synopsis "Adds shining for wielded and dropped items")
(description
"With this Minetest extension, all bright nodes lighten the player
environment if wielded.")
(license license:gpl3+)
(properties `((upstream-name . "bell07/wielded_light")))))

View File

@ -0,0 +1,20 @@
Supress copyright check in tests which can differ based on current year.
https://github.com/adobe-type-tools/afdko/issues/1589
Adapted from upstream:
https://github.com/adobe-type-tools/afdko/commit/feebd77d9b6507a0b32f837535511be3c94d9c6f
diff --git a/tests/tx_test.py b/tests/tx_test.py
--- a/tests/tx_test.py
+++ b/tests/tx_test.py
@@ -1246,7 +1246,7 @@ def test_ufo_fontinfo_parsing(file, msg, ret_code):
if (ret_code == 0):
expected_path = generate_ps_dump(expected_path)
output_path = generate_ps_dump(output_path)
- assert differ([expected_path, output_path])
+ assert differ([expected_path, output_path, '-s'] + PFA_SKIP)
else:
arg = [TOOL, '-t1', '-f', ufo_input_path]
assert subprocess.call(arg) == 6

View File

@ -6,7 +6,7 @@
;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
;;; Copyright © 2020 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com>
;;; Copyright © 2020-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.ccom>
@ -1314,14 +1314,14 @@ of the project is to be runnable on untrusted networks without crashing.")
(define-public tectonic
(package
(name "tectonic")
(version "0.8.2")
(version "0.12.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "tectonic" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "041v887a3aybrkn5fnrjwy95wxfk4npl6lj8ar8dnidjmfh92bka"))))
(base32 "1q4mz2c32gfypx33zlzgd1q9h4322jrk13fzvsf8h676ylclqzpc"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-build-flags '("--release" "--features" "external-harfbuzz")
@ -1341,18 +1341,17 @@ of the project is to be runnable on untrusted networks without crashing.")
("rust-sha2" ,rust-sha2-0.9)
("rust-structopt" ,rust-structopt-0.3)
("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.3)
("rust-tectonic-bundles" ,rust-tectonic-bundles-0.2)
("rust-tectonic-docmodel" ,rust-tectonic-docmodel-0.1)
("rust-tectonic-bundles" ,rust-tectonic-bundles-0.3)
("rust-tectonic-docmodel" ,rust-tectonic-docmodel-0.2)
("rust-tectonic-engine-bibtex" ,rust-tectonic-engine-bibtex-0.1)
("rust-tectonic-engine-spx2html" ,rust-tectonic-engine-spx2html-0.1)
("rust-tectonic-engine-xdvipdfmx" ,rust-tectonic-engine-xdvipdfmx-0.1)
("rust-tectonic-engine-xetex" ,rust-tectonic-engine-xetex-0.2)
("rust-tectonic-engine-xdvipdfmx" ,rust-tectonic-engine-xdvipdfmx-0.4)
("rust-tectonic-engine-xetex" ,rust-tectonic-engine-xetex-0.4)
("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
("rust-tectonic-geturl" ,rust-tectonic-geturl-0.3)
("rust-tectonic-io-base" ,rust-tectonic-io-base-0.4)
("rust-tectonic-status-base" ,rust-tectonic-status-base-0.2)
("rust-tectonic-xdv" ,rust-tectonic-xdv-0.2)
("rust-tectonic-xetex-layout" ,rust-tectonic-xetex-layout-0.1)
("rust-tempfile" ,rust-tempfile-3)
("rust-termcolor" ,rust-termcolor-1)
("rust-toml" ,rust-toml-0.5)

View File

@ -1138,14 +1138,14 @@ designed by Cynthia Brewer as described at http://colorbrewer2.org")
(define-public r-sendmailr
(package
(name "r-sendmailr")
(version "1.3-1")
(version "1.3-2")
(source
(origin
(method url-fetch)
(uri (cran-uri "sendmailR" version))
(sha256
(base32
"1vxs9pdz1qbm7gzzigmvn5ybglakj4fska8dfj94azdvpkijs6hx"))))
"0yyxxzhm88xipk68vzqxcckcpjgl9lajnqyxxbkp1i29jcpfgdfa"))))
(properties `((upstream-name . "sendmailR")))
(build-system r-build-system)
(propagated-inputs
@ -5038,13 +5038,13 @@ Wall Street Journal, among others. This package also provides
(define-public r-statmod
(package
(name "r-statmod")
(version "1.4.37")
(version "1.5.0")
(source (origin
(method url-fetch)
(uri (cran-uri "statmod" version))
(sha256
(base32
"04v9nynv3lakhnd7b17v5syrlnscrxml71jnd3r93chckskwillh"))))
"1jbf07h0mnncn2qp4wcw5bnbvsw3lizpd3cg0cpb8mcxn3wkw76n"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/statmod")
(native-inputs
@ -5521,14 +5521,14 @@ of the points.")
(define-public r-fpc
(package
(name "r-fpc")
(version "2.2-9")
(version "2.2-10")
(source
(origin
(method url-fetch)
(uri (cran-uri "fpc" version))
(sha256
(base32
"0f7sfmpcycr9y7cy5gasyjm2ardxa62kglqms92mcr68jrp01c19"))))
"1lj7j74yx747iic1hcngzbym0sqxppja8bxw64m0j6na5s7m9d4r"))))
(build-system r-build-system)
(propagated-inputs
(list r-class

View File

@ -19,7 +19,7 @@
;;; Copyright © 20162022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017, 2018, 2020, 2021, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2017-2018, 2020-2023 Marius Bakke <marius@gnu.org>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Petter <petter@mykolab.ch>
;;; Copyright © 2017, 2021 Pierre Langlois <pierre.langlois@gmx.com>
@ -5230,28 +5230,34 @@ NetSurf project.")
(find-files bin))
#t))))))
(native-inputs
`(("which" ,which)
("gettext" ,gettext-minimal)
("subversion" ,subversion)
("git" ,git)
("bazaar" ,bazaar)
("cvs" ,cvs)
("mercurial" ,mercurial)))
(list which
gettext-minimal
subversion
git
bazaar
cvs
mercurial))
(inputs
`(("python" ,python-wrapper)
("perl-authen-passphrase" ,perl-authen-passphrase)
("perl-cgi-simple" ,perl-cgi-simple)
("perl-db-file" ,perl-db-file)
("perl-file-mimeinfo" ,perl-file-mimeinfo)
("perl-html-tagset" ,perl-html-tagset)
("perl-image-magick" ,perl-image-magick)
("perl-ipc-run" ,perl-ipc-run)
("perl-lwpx-paranoidagent" ,perl-lwpx-paranoidagent)
("perl-xml-feed" ,perl-xml-feed)
("perl-xml-sax" ,perl-xml-sax)
("perl-xml-twig" ,perl-xml-twig)
("perl-yaml-tiny" ,perl-yaml-tiny)
("po4a" ,po4a)))
(list python-wrapper
perl-authen-passphrase
perl-cgi-simple
perl-db-file
perl-file-mimeinfo
perl-html-tagset
perl-image-magick
perl-ipc-run
perl-lwpx-paranoidagent
perl-xml-feed
perl-xml-sax
perl-xml-twig
perl-yaml-tiny
;; Ikiwiki loads po4a as a library, and thus needs the po4a dependencies
;; available. Duplicate them here.
;; XXX: It would be ideal to hard code these in po4a somehow.
perl-syntax-keyword-try
perl-xs-parse-keyword
po4a))
(propagated-inputs
(list perl-cgi-formbuilder
perl-cgi-session

View File

@ -64,7 +64,6 @@
#:use-module (gnu packages gnupg)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages java)
#:use-module (gnu packages nss)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
@ -76,7 +75,6 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system ant)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
@ -1544,42 +1542,6 @@ Excel(TM) since version 2007.")
(home-page "https://github.com/brechtsanders/xlsxio")
(license license:expat)))
(define-public java-simple-xml
(package
(name "java-simple-xml")
(version "2.7.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/simple/simple-xml-"
version ".zip"))
(sha256
(base32
"0w19k1awslmihpwsxwjbg89hv0vjhk4k3i0vrfchy3mqknd988y5"))
(patches (search-patches "java-simple-xml-fix-tests.patch"))))
(build-system ant-build-system)
(arguments
`(#:build-target "build"
#:test-target "test"
#:phases
(modify-phases %standard-phases
(replace 'install (install-jars "jar"))
(add-before 'check 'disable-failing-test
(lambda _
;; This test sometimes fails with an out of memory exception
(delete-file
"test/src/org/simpleframework/xml/core/NoAnnotationsRequiredTest.java"))))))
(native-inputs
(list unzip))
(home-page "http://simple.sourceforge.net/")
(synopsis "XML serialization framework for Java")
(description "Simple is a high performance XML serialization and
configuration framework for Java. Its goal is to provide an XML framework
that enables rapid development of XML configuration and communication systems.
This framework aids the development of XML systems with minimal effort and
reduced errors. It offers full object serialization and deserialization,
maintaining each reference encountered.")
(license license:asl2.0)))
(define-public perl-xml-xpathengine
(package
(name "perl-xml-xpathengine")
@ -1735,610 +1697,6 @@ XML), full XPath support (unless you use @code{XML::Twig::XPath}), nor DOM
support.")
(license license:perl-license)))
;; TODO: Debian builds several jars out of this: jaxp-1.4.jar,
;; xml-apis.jar and xml-apis-1.4.01.jar.
(define-public java-jaxp
(package
(name "java-jaxp")
(version "1.4.01")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://apache/xerces/xml-commons/source/"
"xml-commons-external-" version "-src.tar.gz"))
(sha256
(base32 "0rhq32a7dl9yik7zx9h0naz2iz068qgcdiayak91wp4wr26xhjyk"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "jaxp.jar"
#:jdk ,icedtea-8
#:source-dir ".."
#:tests? #f)); no tests
(home-page "http://xerces.apache.org/xml-commons/")
(synopsis "Java XML parser and transformer APIs (DOM, SAX, JAXP, TrAX)")
(description "Jaxp from the Apache XML Commons project is used by
the Xerces-J XML parser and Xalan-J XSLT processor and specifies these APIs:
@itemize
@item Document Object Model (DOM)
@item Simple API for XML (SAX)
@item Java APIs for XML Processing (JAXP)
@item Transformation API for XML (TrAX)
@item Document Object Model (DOM) Load and Save
@item JSR 206 Java API for XML Processing
@end itemize")
(license (list license:asl2.0
license:w3c ;; Files under org.w3c
license:public-domain)))) ;; org.xml.sax
(define-public java-apache-xml-commons-resolver
(package
(name "java-apache-xml-commons-resolver")
(version "1.2")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://apache/xerces/xml-commons/"
"xml-commons-resolver-" version ".tar.gz"))
(sha256
(base32 "1zhy4anc3fg9f8y348bj88vmab15aavrg6nf419ifb25asyygnsm"))
(modules '((guix build utils)))
(snippet
'(begin
(for-each delete-file (find-files "." ".*\\.(jar|zip)"))
#t))))
(build-system ant-build-system)
(arguments
`(#:jar-name (string-append "xml-resolver.jar")
#:tests? #f)); no tests
(inputs
(list java-junit))
(home-page "http://xerces.apache.org/xml-commons/")
(synopsis "Catalog-based entity and URI resolution")
(description "The resolver class implements the full semantics of OASIS Technical
Resolution 9401:1997 (Amendment 2 to TR 9401) catalogs and the 06 Aug
2001 Committee Specification of OASIS XML Catalogs.
It also includes a framework of classes designed to read catalog files
in a number of formats:
@itemize
@item The plain-text flavor described by TR9401.
@item The XCatalog XML format defined by John Cowan
@item The XML Catalog format defined by the OASIS Entity Resolution
Technical Committee.
@end itemize")
(license license:asl2.0)))
;; Jaxen requires java-dom4j and java-xom that in turn require jaxen.
;; This package is a bootstrap version without dependencies on dom4j and xom.
(define java-jaxen-bootstrap
(package
(name "java-jaxen-bootstrap")
(version "1.1.6")
(source (origin
(method url-fetch)
;; No release on github
(uri (string-append "https://repo1.maven.org/maven2/jaxen/jaxen/"
version "/jaxen-" version "-sources.jar"))
(sha256
(base32
"18pa8mks3gfhazmkyil8wsp6j1g1x7rggqxfv4k2mnixkrj5x1kx"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "jaxen.jar"
#:source-dir "src"
#:tests? #f; no tests
#:phases
(modify-phases %standard-phases
(add-before 'build 'remove-dom4j
(lambda _
(delete-file-recursively "src/org/jaxen/dom4j")
(delete-file-recursively "src/org/jaxen/xom")
#t)))))
(inputs
`(("java-jdom" ,java-jdom)))
(home-page "https://github.com/jaxen-xpath/jaxen")
(synopsis "XPath library")
(description "Jaxen is an XPath library written in Java. It is adaptable
to many different object models, including DOM, XOM, dom4j, and JDOM. It is
also possible to write adapters that treat non-XML trees such as compiled
Java byte code or Java beans as XML, thus enabling you to query these trees
with XPath too.")
(license license:bsd-3)))
(define-public java-jaxen
(package
(inherit java-jaxen-bootstrap)
(name "java-jaxen")
(inputs
(list java-jdom java-xom java-dom4j))))
(define-public java-xom
(package
(name "java-xom")
(version "127")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/elharo/xom")
(commit (string-append "XOM_" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1jh6y03g5zzdhsb5jm6ms1xnamr460qmn96y3w6aw0ikfwqlg0bq"))
(modules '((guix build utils)))
(snippet
'(begin
(for-each delete-file
(find-files "." "\\.jar$"))
#t))))
(build-system ant-build-system)
(arguments
`(#:jar-name "xom.jar"
#:jdk ,icedtea-8
#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
(lambda _
(for-each make-file-writable (find-files "."))
#t))
(add-before 'configure 'fix-tagsoup-dep
(lambda _
;; FIXME: Where is tagsoup source?
(delete-file "src/nu/xom/tools/XHTMLJavaDoc.java")
#t)))))
(inputs
(list java-jdom java-junit java-classpathx-servletapi
java-jaxen-bootstrap java-xerces))
(home-page "https://xom.nu/")
(synopsis "XML Object Model")
(description "XOM is a new XML Object Model for processing XML with Java
that strives for correctness and simplicity.")
;; 2.1 only
(license license:lgpl2.1)))
(define-public java-xsdlib
(package
(name "java-xsdlib")
(version "2013.2")
(source (origin
(method url-fetch)
(uri (string-append "https://repo1.maven.org/maven2/com/sun/msv/"
"datatype/xsd/xsdlib/" version "/xsdlib-"
version "-sources.jar"))
(sha256
(base32
"185i48p1xp09wbq03i9zgfl701qa262rq46yf4cajzmk3336kqim"))))
(build-system ant-build-system)
(arguments
`(#:tests? #f; no tests
#:jar-name "xsdlib.jar"
#:jdk ,icedtea-8))
(inputs
(list java-xerces))
(home-page (string-append "https://web.archive.org/web/20161127144537/"
"https://msv.java.net//"))
(synopsis "Sun Multi-Schema Validator")
(description "Xsdlib contains an implementation of sun.com.msv, an XML
validator.")
(license license:bsd-2)))
(define-public java-xpp3
(package
(name "java-xpp3")
(version "1.1.4")
(source (origin
(method url-fetch)
(uri (string-append
"https://ci.guix.gnu.org/file/"
"xpp3-1.1.4_src.tgz"
"/sha256/"
"1b99zrhyij5qwyhilyjdl1ykxvhk902vsvflh6gx4fir8hfvdl5p"))
(file-name (string-append name "-" version "_src.tgz"))
(sha256
(base32
"1b99zrhyij5qwyhilyjdl1ykxvhk902vsvflh6gx4fir8hfvdl5p"))
(modules '((guix build utils)))
(snippet
'(begin ;; Delete bundled jar archives.
(for-each delete-file (find-files "." ".*\\.jar"))
#t))))
(build-system ant-build-system)
(arguments
`(#:tests? #f; no tests
#:build-target "jar"
#:phases
(modify-phases %standard-phases
(replace 'install (install-jars "build")))))
(home-page "http://www.extreme.indiana.edu/xgws/xsoap/xpp/")
(synopsis "Streaming pull XML parser")
(description "Xml Pull Parser (in short XPP) is a streaming pull XML
parser and should be used when there is a need to process quickly and
efficiently all input elements (for example in SOAP processors). This
package is a stable XmlPull parsing engine that is based on ideas from XPP
and in particular XPP2 but completely revised and rewritten to take the best
advantage of JIT JVMs.")
(license (license:non-copyleft "file://LICENSE.txt"))))
(define-public java-xmlpull2
(package
(name "java-xmlpull2")
(version "2.1.10")
(source (origin
(method url-fetch)
;; Unfortunately, archive.org does not have a copy of this file.
(uri (string-append "https://ftp.fau.de/gentoo/distfiles/"
"PullParser" version ".tgz"))
(sha256
(base32
"1kw9nhyqb7bzhn2zjbwlpi5vp5rzj89amzi3hadw2acyh2dmd0md"))
(modules '((guix build utils)))
(snippet
'(begin ;; Delete bundled jar archives.
(for-each delete-file (find-files "." ".*\\.jar"))
#t))))
(build-system ant-build-system)
(arguments
`(#:tests? #f; no tests
#:build-target "impl"
#:phases
(modify-phases %standard-phases
(replace 'install (install-jars "build/lib")))))
(home-page (string-append "https://web.archive.org/web/20210225153105/"
"https://www.extreme.indiana.edu/"))
(synopsis "Streaming pull XML parser")
(description "Xml Pull Parser (in short XPP) is a streaming pull XML
parser and should be used when there is a need to process quickly and
efficiently all input elements (for example in SOAP processors). This
package is in maintenance mode.")
(license (license:non-copyleft "file:///LICENSE.txt"))))
(define-public java-xmlpull-api-v1
(package
(name "java-xmlpull-api-v1")
(version "1.1.3.4b")
(source (origin
;; The package is originally from Extreme! Lab, but the website
;; is now gone. This repositories contains the sources of the
;; latest version.
(method git-fetch)
(uri (git-reference
(url "https://github.com/aslom/xmlpull-api-v1")
;; No releases, this is the latest commit
(commit "abeaa4aa87b2625af70c32f658f44e11355fe568")))
(file-name (git-file-name name version))
(sha256
(base32
"15bdqxfncnakskna4m9gsh4f9iczxy83qxn2anqiqd15z406a5ih"))
(modules '((guix build utils)))
(snippet
`(begin
(delete-file-recursively "lib")
(mkdir-p "lib")
;; prevents a failure in "dist_lite"
(substitute* "build.xml"
(("README.html") "README.md"))))))
(build-system ant-build-system)
(arguments
`(#:test-target "junit"
#:build-target "dist"
#:phases
(modify-phases %standard-phases
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/" ,name "-" ,version))
(java (string-append out "/share/java"))
(project (string-append
"xmlpull_"
,(string-join (string-split version #\.) "_"))))
(mkdir-p doc)
(copy-recursively (string-append "build/dist/" project "/doc/")
doc)
(mkdir-p java)
(copy-file (string-append "build/dist/" project "/" project ".jar")
(string-append java "/" project ".jar")))
)))))
(home-page "https://github.com/aslom/xmlpull-api-v1")
(synopsis "XML pull parsing API")
(description "XmlPull v1 API is a simple to use XML pull parsing API. XML
pull parsing allows incremental (sometimes called streaming) parsing of XML
where application is in control - the parsing can be interrupted at any given
moment and resumed when application is ready to consume more input.")
(license license:public-domain)))
(define-public java-dom4j
(package
(name "java-dom4j")
(version "2.1.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dom4j/dom4j")
(commit (string-append "version-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0q907srj9v4hwicpcrn4slyld5npf2jv7hzchsgrg29q2xmbwkdl"))
(modules '((guix build utils)))
(snippet
'(begin ;; Delete bundled jar archives.
(for-each delete-file (find-files "." ".*\\.jar"))
#t))))
(build-system ant-build-system)
(arguments
`(#:jar-name "dom4j.jar"
#:jdk ,icedtea-8
#:source-dir "src/main/java"
;; FIXME: Requires xalan, but xalan depends on java-cup which has a
;; dependency on itself through jflex.
#:tests? #f
#:phases
(modify-phases %standard-phases
(add-before 'build 'copy-jaxen-sources
;; java-jaxen-bootstrap is not enough. These files have a circular
;; dependency and there is no subset of dom4j that would allow
;; breaking the circle.
(lambda* (#:key inputs #:allow-other-keys)
(mkdir-p "jaxen-sources")
(with-directory-excursion "jaxen-sources"
(system* "jar" "xf" (assoc-ref inputs "java-jaxen-sources")))
(mkdir-p "src/main/java/org/jaxen/dom4j")
(copy-file "jaxen-sources/org/jaxen/dom4j/DocumentNavigator.java"
"src/main/java/org/jaxen/dom4j/DocumentNavigator.java")
(copy-file "jaxen-sources/org/jaxen/dom4j/Dom4jXPath.java"
"src/main/java/org/jaxen/dom4j/Dom4jXPath.java")
#t))
(add-before 'build 'fix-old-xpp2
(lambda _
;; This package normally depends on xpp2 2.0, but version 2.1.10
;; is the only version whose source code is published.
(substitute* "src/main/java/org/dom4j/xpp/ProxyXmlStartTag.java"
(("public void resetStartTag")
"public boolean removeAttributeByRawName(String name) {\n
return false;\n
}\n
public boolean removeAttributeByName(String name, String name2) {\n
return false;\n
}\n\npublic void resetStartTag")
(("Atttribute") "Attribute"))
#t)))))
(inputs
`(("java-jaxen-bootstrap" ,java-jaxen-bootstrap)
("java-jaxen-sources" ,(package-source java-jaxen-bootstrap))
("java-xmlpull2" ,java-xmlpull2)
("java-xpp3" ,java-xpp3)
("java-xsdlib" ,java-xsdlib)))
(native-inputs
(list java-testng java-xerces))
(home-page "https://dom4j.github.io/")
(synopsis "Flexible XML framework for Java")
(description "Dom4j is a flexible XML framework for Java. DOM4J works
with DOM, SAX, XPath, and XSLT. It can parse large XML documents with very
low memory footprint.")
;; some BSD-like 5-clause license
(license (license:non-copyleft "file://LICENSE"))))
(define-public java-kxml2
(package
(name "java-kxml2")
(version "2.4.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/stefanhaustein/kxml2")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0g6d8c9r9sh3x04sf4wdpgwvhkqvk11k3kq9skx91i60h4vn01hg"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "kxml2.jar"
#:source-dir "src/main/java"
#:test-include (list "TestWb.java")
;; Test failure: it was expected to get an XML entity but got the
;; equivalent Unicode character instead.
#:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
(lambda _
(for-each make-file-writable (find-files "."))
#t))
(add-before 'build 'copy-resources
(lambda _
(copy-recursively "src/main/resources" "build/classes")
#t)))))
(inputs
(list java-xpp3))
(native-inputs
(list java-junit))
(home-page "http://kxml.org")
(synopsis "XML pull parser")
(description "kXML is a small XML pull parser, specially designed for
constrained environments such as Applets, Personal Java or devices compliant
with the Mobile Information Device Profile (MIDP).")
(license license:expat)))
(define-public java-stax
(package
(name "java-stax")
(version "1.2.0")
(source (origin
(method url-fetch)
(uri (string-append "https://repo1.maven.org/maven2/stax/stax/"
version "/stax-" version "-sources.jar"))
(sha256
(base32
"04ba4qvbrps45j8bldbakxq31k7gjlsay9pppa9yn13fr00q586z"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "stax.jar"
#:tests? #f; no tests
#:phases
(modify-phases %standard-phases
(add-before 'configure 'fix-utf8
(lambda _
;; This file is ISO-8859-1 but java expects UTF-8.
;; Remove special characters in comments.
(with-fluids ((%default-port-encoding "ISO-8859-1"))
(substitute* "src/com/wutka/dtd/Scanner.java"
(("//.*") "\n")))
#t)))))
(home-page "https://repo1.maven.org/maven2/stax/stax/")
(synopsis "Streaming API for XML")
(description "This package provides the reference implementation of the
@dfn{Streaming API for XML} (StAX). It is used for streaming XML data to
and from a Java application. It provides a standard pull parser interface.")
(license license:asl2.0)))
(define-public java-jettison
(package
(name "java-jettison")
(version "1.3.7")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/codehaus/jettison")
(commit (string-append "jettison-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"15sydmi5chdh4126qc7v8bsrp7fp4ldaya8a05iby4pq2324q0qw"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "jettison.jar"
#:source-dir "src/main/java"
#:test-exclude (list "**/Abstract*.java"
;; Abstract classes
"**/DOMTest.java"
"**/BadgerFishDOMTest.java"
"**/MappedDOMTest.java")))
(native-inputs
(list java-junit))
(home-page "https://github.com/codehaus/jettison")
(synopsis "StAX implementation for JSON")
(description "Jettison is a Java library for converting XML to JSON and
vice-versa with the help of the @dfn{Streaming API for XML} (StAX). It
implements @code{XMLStreamWriter} and @code{XMLStreamReader} and supports
@code{Mapped} and @code{BadgerFish} conventions.")
(license license:asl2.0)))
(define-public java-jdom2
(package
(name "java-jdom")
(version "2.0.6.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hunterhacker/jdom")
(commit (string-append "JDOM-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1r4pwl0z7hm45v9l2wbq3fjmqi13zmwzbrggyqizrwv31kghhx56"))))
(build-system ant-build-system)
(arguments
`(#:build-target "package"
#:tests? #f ; tests are run as part of the build process
#:phases
(modify-phases %standard-phases
(replace 'install
(install-jars "build")))))
(home-page "http://jdom.org/")
(synopsis "Access, manipulate, and output XML data")
(description "Jdom is a Java-based solution for accessing, manipulating, and
outputting XML data from Java code.")
(license license:bsd-4)))
(define-public java-xstream
(package
(name "java-xstream")
(version "1.4.16")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/x-stream/xstream")
(commit (string-append
"XSTREAM_"
(string-map (lambda (x) (if (eq? x #\.) #\_ x))
version)))))
(file-name (git-file-name name version))
(sha256
(base32 "16k2mc63h2fw7lxv74qmhg4p8q9hfrw114daa6nxwnpv08cnq755"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "xstream.jar"
;; FIXME: Tests are not in a java subdirectory as assumed by ant-build-system.
#:tests? #f
#:jdk ,icedtea-8
#:source-dir "xstream/src/java"))
(inputs
`(("java-jdom" ,java-jdom)
("java-jdom2" ,java-jdom2)
("java-cglib" ,java-cglib)
("java-joda-time" ,java-joda-time)
("java-jettison" ,java-jettison)
("java-xom" ,java-xom)
("java-mxparser" ,java-mxparser)
("java-xpp3" ,java-xpp3)
("java-dom4j" ,java-dom4j)
("java-stax2-api" ,java-stax2-api)
("java-woodstox-core" ,java-woodstox-core)
("java-kxml2" ,java-kxml2)
("java-stax" ,java-stax)))
(home-page "https://x-stream.github.io")
(synopsis "XML serialization library")
(description "XStream is a simple library to serialize Java objects to XML
and back again.")
(license license:bsd-3)))
(define-public java-mxparser
(package
(name "java-mxparser")
(version "1.2.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/x-stream/mxparser")
(commit (string-append "v-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0i3jrjbz4hgf62fm1ix7nlcmhi4kcv4flqsfvh7a3l2v7nsp5ryb"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "mxparser.jar"
#:source-dir "src/main/java"
#:test-dir "src/test"
#:phases
(modify-phases %standard-phases
(add-before 'build 'copy-resources
(lambda _
(copy-recursively "src/main/resources" "build/classes")
#t)))))
(propagated-inputs
(list java-xmlpull-api-v1))
(native-inputs
(list java-junit))
(home-page "https://github.com/x-stream/mxparser")
(synopsis "Streaming pull XML parser forked from @code{java-xpp3}")
(description "Xml Pull Parser (in short XPP) is a streaming pull XML
parser and should be used when there is a need to process quickly and
efficiently all input elements (for example in SOAP processors). This
package is a stable XmlPull parsing engine that is based on ideas from XPP
and in particular XPP2 but completely revised and rewritten to take the best
advantage of JIT JVMs.
MXParser is a fork of xpp3_min 1.1.7 containing only the parser with merged
changes of the Plexus fork. It is an implementation of the XMLPULL V1 API
(parser only).")
(license (license:non-copyleft "file://LICENSE.txt"))))
(define-public xmlrpc-c
(package
(name "xmlrpc-c")

View File

@ -198,6 +198,7 @@
guix-configuration-generate-substitute-key?
guix-configuration-extra-options
guix-configuration-log-file
guix-configuration-environment
guix-extension
guix-extension?
@ -1654,7 +1655,9 @@ archive' public keys, with GUIX."
(http-proxy guix-http-proxy ;string | #f
(default #f))
(tmpdir guix-tmpdir ;string | #f
(default #f)))
(default #f))
(environment guix-configuration-environment ;list of strings
(default '())))
(define %default-guix-configuration
(guix-configuration))
@ -1710,7 +1713,7 @@ proxy of 'guix-daemon'...~%")
(guix build-group build-accounts authorize-key? authorized-keys
use-substitutes? substitute-urls max-silent-time timeout
log-compression discover? extra-options log-file
http-proxy tmpdir chroot-directories)
http-proxy tmpdir chroot-directories environment)
(list (shepherd-service
(documentation "Run the Guix daemon.")
(provision '(guix-daemon))
@ -1799,7 +1802,8 @@ proxy of 'guix-daemon'...~%")
(if proxy
(list (string-append "http_proxy=" proxy)
(string-append "https_proxy=" proxy))
'()))
'())
'#$environment)
#:log-file #$log-file))))
(stop #~(make-kill-destructor))))))

View File

@ -57,7 +57,6 @@
%test-linux-libre-5.4
%test-linux-libre-4.19
%test-linux-libre-4.14
%test-linux-libre-4.9
%test-halt
%test-root-unmount
%test-cleanup
@ -584,9 +583,6 @@ functionality tests, using the given KERNEL.")
(define %test-linux-libre-4.14
(test-basic-os linux-libre-4.14))
(define %test-linux-libre-4.9
(test-basic-os linux-libre-4.9))
;;;
;;; Halt.

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012-2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2021, 2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 Mathieu Lirzin <mthl@gnu.org>
;;;
;;; This file is part of GNU Guix.
@ -484,17 +484,21 @@ things as appropriate and is thus more efficient."
(fold-right (lambda (output result)
(match output
((name path "" "")
;; Regular derivation.
(alist-cons name
(make-derivation-output path #f #f #f)
result))
((name path hash-algo hash)
;; fixed-output
;; Fixed-output, unless HASH is the empty string (in that
;; case, HASH-ALGO must be preserved despite being
;; unused).
(let* ((rec? (string-prefix? "r:" hash-algo))
(algo (string->symbol
(if rec?
(string-drop hash-algo 2)
hash-algo)))
(hash (base16-string->bytevector hash)))
(hash (and (not (string-null? hash))
(base16-string->bytevector hash))))
(alist-cons name
(make-derivation-output path algo
hash rec?)

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
@ -732,12 +732,12 @@ s-expression corresponding to that package, or #f on failure."
(define latest-version
(latest-bioconductor-package-version upstream-name))
(and version
(and latest-version
;; Bioconductor does not provide signatures.
(upstream-source
(package (package-name pkg))
(version latest-version)
(urls (bioconductor-uri upstream-name version))
(urls (bioconductor-uri upstream-name latest-version))
(input-changes
(changed-inputs
pkg

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021-2023 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -488,6 +488,19 @@ each line except the first one (they're assumed to be already there)."
(8 "#o"))
(number->string integer base)))
(define %special-non-extended-symbols
;; Special symbols that can be written without the #{...}# notation for
;; extended symbols: 1+, 1-, 123/, etc.
(make-regexp "^[0-9]+[[:graph:]]+$" regexp/icase))
(define (symbol->display-string symbol context)
"Return the most appropriate representation of SYMBOL, resorting to extended
symbol notation only when strictly necessary."
(let ((str (symbol->string symbol)))
(if (regexp-exec %special-non-extended-symbols str)
str ;no need for the #{...}# notation
(object->string symbol))))
(define* (pretty-print-with-comments port obj
#:key
(format-comment
@ -561,7 +574,8 @@ FORMAT-VERTICAL-SPACE; a useful value of 'canonicalize-vertical-space'."
((? string? str)
(>= (+ (string-width str) 2 indent) max-width))
((? symbol? symbol)
(>= (+ (string-width (symbol->string symbol)) indent)
(>= (+ (string-width (symbol->display-string symbol context))
indent)
max-width))
((? boolean?)
(>= (+ 2 indent) max-width))
@ -647,7 +661,7 @@ FORMAT-VERTICAL-SPACE; a useful value of 'canonicalize-vertical-space'."
;; and following arguments are less indented.
(let* ((lead (special-form-lead head context))
(context (cons head context))
(head (symbol->string head))
(head (symbol->display-string head (cdr context)))
(total (length arguments)))
(unless delimited? (display " " port))
(display "(" port)
@ -727,6 +741,8 @@ FORMAT-VERTICAL-SPACE; a useful value of 'canonicalize-vertical-space'."
(printed-string obj context))
((integer? obj)
(integer->string obj context))
((symbol? obj)
(symbol->display-string obj context))
(else
(object->string obj))))
(len (string-width str)))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013-2023 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>
@ -706,10 +706,12 @@ substitutes may be unavailable\n")))))
(string-drop option=value (+ 1 equal-sign))))))
(string-tokenize newline-separated %not-newline)))))
(define (find-daemon-option option)
"Return the value of build daemon option OPTION, or #f if it could not be
(define find-daemon-option
(let ((options (delay (daemon-options))))
(lambda (option)
"Return the value of build daemon option OPTION, or #f if it could not be
found."
(assoc-ref (daemon-options) option))
(assoc-ref (force options) option))))
(define %default-substitute-urls
(match (and=> (or (find-daemon-option "untrusted-substitute-urls") ;client

View File

@ -76,8 +76,11 @@ string printHash(const Hash & hash)
Hash parseHash(HashType ht, const string & s)
{
Hash hash(ht);
if (s.length() != hash.hashSize * 2)
throw Error(format("invalid hash `%1%'") % s);
if (s.length() != hash.hashSize * 2) {
string algo = gcry_md_algo_name(ht);
throw Error(format("invalid %1% hash '%2%' (%3% bytes but expected %4%)")
% algo % s % (s.length() / 2) % hash.hashSize);
}
for (unsigned int i = 0; i < hash.hashSize; i++) {
string s2(s, i * 2, 2);
if (!isxdigit(s2[0]) || !isxdigit(s2[1]))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -256,6 +256,21 @@
(build-derivations %store (list drv))
#f)))
(test-assert "'download' built-in builder, no fixed-output hash"
;; 'guix perform-download' should bail out with a message saying "not a
;; fixed-output derivation".
(with-http-server '((200 "This should not be downloaded."))
(let* ((drv (derivation %store "download-without-hash"
"builtin:download" '()
#:env-vars `(("url"
. ,(object->string (%local-url))))
#:hash-algo 'sha256
#:hash #f)))
(guard (c ((store-protocol-error? c)
(string-contains (store-protocol-error-message c) "failed")))
(build-derivations %store (list drv))
#f))))
(test-assert "'download' built-in builder, check mode"
;; Make sure rebuilding the 'builtin:download' derivation in check mode
;; works. See <http://bugs.gnu.org/25089>.
@ -316,6 +331,13 @@
#:hash hash #:hash-algo 'sha256)))
(fixed-output-derivation? drv)))
(test-assert "fixed-output-derivation?, no hash"
;; A derivation that has #:hash-algo and #:hash #f is *not* fixed-output.
(let* ((drv (derivation %store "not-quite-fixed"
"builtin:download" '()
#:hash #f #:hash-algo 'sha256)))
(not (fixed-output-derivation? drv))))
(test-equal "fixed-output derivation"
'(sha1 sha256 sha512)
(map (lambda (hash-algorithm)
@ -374,6 +396,18 @@
(call-with-input-file p get-bytevector-all))
(bytevector? (query-path-hash %store p)))))))
(test-assert "fixed-output derivation, invalid hash size"
(guard (c ((store-protocol-error? c)
(string-contains-ci (store-protocol-error-message c)
"invalid SHA512 hash")))
(derivation %store "download-with-invalid-hash"
"builtin:download" '()
#:env-vars `(("url"
. ,(object->string "http://example.org")))
#:hash-algo 'sha512
#:hash #vu8(1 2 3))
#f))
(test-assert "derivation with a fixed-output input"
;; A derivation D using a fixed-output derivation F doesn't has the same
;; output path when passed F or F', as long as F and F' have the same output
@ -543,6 +577,22 @@
read-derivation)))
(equal? drv* drv)))
(test-assert "read-derivation with hash = #f"
;; Passing #:hash-algo together with #:hash #f is accepted and #:hash-algo
;; is preserved. However it is not a fixed-output derivation. It used to
;; be that 'read-derivation' would incorrectly return #vu8() instead of #f
;; for the hash in this case:
;; <https://lists.gnu.org/archive/html/guix-devel/2023-01/msg00040.html>.
(let* ((drv1 (derivation %store "almost-fixed-output"
"builtin:download" '()
#:env-vars `(("url" . "http://example.org"))
#:hash-algo 'sha256
#:hash #f))
(drv2 (call-with-input-file (derivation-file-name drv1)
read-derivation)))
(and (not (eq? drv1 drv2)) ;ensure memoization doesn't kick in
(equal? drv1 drv2))))
(test-assert "multiple-output derivation, derivation-path->output-path"
(let* ((builder (add-text-to-store %store "builder.sh"
"echo one > $out ; echo two > $second"

View File

@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2021 Andrew Tropin <andrew@trop.in>
# Copyright © 2021-2023 Andrew Tropin <andrew@trop.in>
# Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com>
# Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
#
@ -62,6 +62,7 @@ trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT
(gnu home)
(gnu home services)
(gnu home services shells)
(gnu packages bash)
(gnu services))
(home-environment
@ -82,6 +83,10 @@ trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT
(simple-service 'add-environment-variable
home-environment-variables-service-type
`(("TODAY" . "26 messidor")
("SHELL" . ,(file-append bash "/bin/bash"))
("BUILDHOST_TIME" . ,#~(strftime "%c"
(localtime (current-time))))
("STRING_WITH_ESCAPES" . "chars: \" /\\")
("LITERAL" . ,(literal-string "${abc}"))))
(simple-service 'home-bash-service-extension-test
@ -149,8 +154,13 @@ EOF
# the content of bashrc-test-config.sh"
grep -q "the content of ~/.config/test.conf" "${HOME}/.config/test.conf"
grep '^export PS1="\$GUIX_ENVIRONMENT λ "$' "${HOME}/.bash_profile"
( . "${HOME}/.guix-home/setup-environment"; test "$TODAY" = "26 messidor" )
( . "${HOME}/.guix-home/setup-environment"; test "$LITERAL" = '${abc}' )
( . "${HOME}/.guix-home/setup-environment";
test "$STRING_WITH_ESCAPES" = "chars: \" /\\")
( . "${HOME}/.guix-home/setup-environment";
echo "$SHELL" | grep "/gnu/store/.*/bin/bash" )
# This one should still be here.
grep "stay around" "$HOME/.config/random-file"

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021-2023 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -142,6 +142,11 @@ expressions."
(+ x y))"
#:max-width 11)
(test-pretty-print "\
(begin
1+ 1- 123/ 456*
(1+ 41))")
(test-pretty-print "\
(lambda (x y)
;; This is a procedure.