summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am1
-rw-r--r--doc/contributing.texi15
-rw-r--r--doc/guix-cookbook.texi242
-rw-r--r--doc/guix.texi40
-rw-r--r--etc/completion/bash/guix30
-rwxr-xr-xetc/guix-install.sh2
-rw-r--r--gnu/bootloader/grub.scm10
-rw-r--r--gnu/build/file-systems.scm3
-rw-r--r--gnu/build/linux-boot.scm5
-rw-r--r--gnu/build/linux-container.scm4
-rw-r--r--gnu/installer/final.scm19
-rw-r--r--gnu/local.mk5
-rw-r--r--gnu/machine/ssh.scm2
-rw-r--r--gnu/packages/admin.scm8
-rw-r--r--gnu/packages/android.scm35
-rw-r--r--gnu/packages/assembly.scm4
-rw-r--r--gnu/packages/astronomy.scm4
-rw-r--r--gnu/packages/audio.scm40
-rw-r--r--gnu/packages/backup.scm4
-rw-r--r--gnu/packages/bioconductor.scm88
-rw-r--r--gnu/packages/bioinformatics.scm254
-rw-r--r--gnu/packages/bittorrent.scm66
-rw-r--r--gnu/packages/ci.scm6
-rw-r--r--gnu/packages/commencement.scm6
-rw-r--r--gnu/packages/coq.scm22
-rw-r--r--gnu/packages/cpp.scm35
-rw-r--r--gnu/packages/cran.scm1428
-rw-r--r--gnu/packages/ebook.scm23
-rw-r--r--gnu/packages/education.scm4
-rw-r--r--gnu/packages/emacs-xyz.scm112
-rw-r--r--gnu/packages/embedded.scm49
-rw-r--r--gnu/packages/engineering.scm45
-rw-r--r--gnu/packages/enlightenment.scm6
-rw-r--r--gnu/packages/fonts.scm16
-rw-r--r--gnu/packages/freeipmi.scm6
-rw-r--r--gnu/packages/game-development.scm43
-rw-r--r--gnu/packages/games.scm33
-rw-r--r--gnu/packages/genimage.scm5
-rw-r--r--gnu/packages/gnome.scm8
-rw-r--r--gnu/packages/gnupg.scm10
-rw-r--r--gnu/packages/golang.scm29
-rw-r--r--gnu/packages/graph.scm57
-rw-r--r--gnu/packages/guile-xyz.scm349
-rw-r--r--gnu/packages/haskell-apps.scm17
-rw-r--r--gnu/packages/haskell-web.scm36
-rw-r--r--gnu/packages/haskell-xyz.scm26
-rw-r--r--gnu/packages/kde-frameworks.scm59
-rw-r--r--gnu/packages/kde-multimedia.scm5
-rw-r--r--gnu/packages/language.scm47
-rw-r--r--gnu/packages/libreoffice.scm4
-rw-r--r--gnu/packages/linux.scm119
-rw-r--r--gnu/packages/lisp-xyz.scm5589
-rw-r--r--gnu/packages/lisp.scm58
-rw-r--r--gnu/packages/loko.scm86
-rw-r--r--gnu/packages/lxqt.scm13
-rw-r--r--gnu/packages/machine-learning.scm36
-rw-r--r--gnu/packages/mail.scm22
-rw-r--r--gnu/packages/maths.scm4
-rw-r--r--gnu/packages/messaging.scm97
-rw-r--r--gnu/packages/moreutils.scm7
-rw-r--r--gnu/packages/mp3.scm15
-rw-r--r--gnu/packages/music.scm227
-rw-r--r--gnu/packages/networking.scm54
-rw-r--r--gnu/packages/node.scm25
-rw-r--r--gnu/packages/package-management.scm18
-rw-r--r--gnu/packages/password-utils.scm4
-rw-r--r--gnu/packages/patches/genimage-signedness.patch24
-rw-r--r--gnu/packages/patches/sbcl-graph-asdf-definitions.patch70
-rw-r--r--gnu/packages/pdf.scm8
-rw-r--r--gnu/packages/phabricator.scm66
-rw-r--r--gnu/packages/piet.scm70
-rw-r--r--gnu/packages/pretty-print.scm4
-rw-r--r--gnu/packages/python-check.scm43
-rw-r--r--gnu/packages/python-crypto.scm24
-rw-r--r--gnu/packages/python-web.scm301
-rw-r--r--gnu/packages/python-xyz.scm193
-rw-r--r--gnu/packages/rust-apps.scm45
-rw-r--r--gnu/packages/rust.scm4
-rw-r--r--gnu/packages/shells.scm4
-rw-r--r--gnu/packages/statistics.scm4
-rw-r--r--gnu/packages/syndication.scm10
-rw-r--r--gnu/packages/tex.scm39
-rw-r--r--gnu/packages/version-control.scm76
-rw-r--r--gnu/packages/video.scm24
-rw-r--r--gnu/packages/vpn.scm8
-rw-r--r--gnu/packages/web-browsers.scm72
-rw-r--r--gnu/packages/web.scm15
-rw-r--r--gnu/packages/wm.scm29
-rw-r--r--gnu/services/mail.scm122
-rw-r--r--gnu/services/web.scm10
-rw-r--r--gnu/system.scm12
-rw-r--r--gnu/tests/base.scm11
-rw-r--r--gnu/tests/install.scm5
-rw-r--r--gnu/tests/nfs.scm152
-rw-r--r--guix/android-repo-download.scm5
-rw-r--r--guix/build-system/asdf.scm31
-rw-r--r--guix/build/asdf-build-system.scm177
-rw-r--r--guix/build/lisp-utils.scm245
-rw-r--r--guix/ci.scm1
-rw-r--r--guix/cve.scm1
-rw-r--r--guix/git-download.scm4
-rw-r--r--guix/git.scm1
-rw-r--r--guix/import/cpan.scm1
-rw-r--r--guix/import/crate.scm1
-rw-r--r--guix/import/gem.scm2
-rw-r--r--guix/import/pypi.scm2
-rw-r--r--guix/json.scm83
-rw-r--r--guix/nar.scm15
-rw-r--r--guix/scripts.scm62
-rw-r--r--guix/scripts/archive.scm5
-rw-r--r--guix/scripts/authenticate.scm62
-rw-r--r--guix/scripts/build.scm5
-rw-r--r--guix/scripts/challenge.scm5
-rw-r--r--guix/scripts/container.scm6
-rw-r--r--guix/scripts/copy.scm5
-rw-r--r--guix/scripts/deploy.scm3
-rw-r--r--guix/scripts/describe.scm3
-rw-r--r--guix/scripts/download.scm5
-rw-r--r--guix/scripts/edit.scm7
-rw-r--r--guix/scripts/environment.scm5
-rw-r--r--guix/scripts/gc.scm4
-rw-r--r--guix/scripts/git.scm6
-rw-r--r--guix/scripts/graph.scm5
-rw-r--r--guix/scripts/hash.scm5
-rw-r--r--guix/scripts/import.scm8
-rw-r--r--guix/scripts/install.scm6
-rw-r--r--guix/scripts/lint.scm5
-rw-r--r--guix/scripts/offload.scm6
-rw-r--r--guix/scripts/pack.scm5
-rw-r--r--guix/scripts/package.scm4
-rw-r--r--guix/scripts/perform-download.scm18
-rw-r--r--guix/scripts/processes.scm4
-rw-r--r--guix/scripts/publish.scm5
-rw-r--r--guix/scripts/pull.scm4
-rw-r--r--guix/scripts/refresh.scm7
-rw-r--r--guix/scripts/remove.scm6
-rw-r--r--guix/scripts/repl.scm5
-rw-r--r--guix/scripts/search.scm6
-rw-r--r--guix/scripts/show.scm4
-rw-r--r--guix/scripts/size.scm7
-rwxr-xr-xguix/scripts/substitute.scm7
-rw-r--r--guix/scripts/system.scm11
-rw-r--r--guix/scripts/time-machine.scm4
-rw-r--r--guix/scripts/upgrade.scm6
-rw-r--r--guix/scripts/weather.scm4
-rw-r--r--guix/self.scm2
-rw-r--r--guix/swh.scm1
-rw-r--r--guix/ui.scm131
-rw-r--r--m4/guix.m419
-rw-r--r--nix/libstore/local-store.cc19
-rw-r--r--tests/guix-authenticate.sh54
-rw-r--r--tests/store.scm72
152 files changed, 6251 insertions, 6127 deletions
diff --git a/Makefile.am b/Makefile.am
index 49fe57a095..8e91e1e558 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -68,7 +68,6 @@ MODULES = \
guix/cpio.scm \
guix/deprecation.scm \
guix/docker.scm \
- guix/json.scm \
guix/records.scm \
guix/openpgp.scm \
guix/pki.scm \
diff --git a/doc/contributing.texi b/doc/contributing.texi
index aedcb334c4..b18ffa1e57 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -369,6 +369,7 @@ needed is to review and apply the patch.
* Package Naming:: What's in a name?
* Version Numbers:: When the name is not enough.
* Synopses and Descriptions:: Helping users find the right package.
+* Snippets versus Phases:: Whether to use a snippet, or a build phase.
* Python Modules:: A touch of British comedy.
* Perl Modules:: Little pearls.
* Java Packages:: Coffee break.
@@ -599,6 +600,20 @@ Gettext}):
for the X11 resize-and-rotate (RandR) extension. @dots{}")
@end example
+@node Snippets versus Phases
+@subsection Snippets versus Phases
+
+@cindex snippets, when to use
+The boundary between using an origin snippet versus a build phase to
+modify the sources of a package can be elusive. Origin snippets are
+typically used to remove unwanted files such as bundled libraries,
+nonfree sources, or to apply simple substitutions. The source derived
+from an origin should produce a source that can be used to build the
+package on any system that the upstream package supports (i.e., act as
+the corresponding source). In particular, origin snippets must not
+embed store items in the sources; such patching should rather be done
+using build phases. Refer to the @code{origin} record documentation for
+more information (@pxref{origin Reference}).
@node Python Modules
@subsection Python Modules
diff --git a/doc/guix-cookbook.texi b/doc/guix-cookbook.texi
index 8a9d075a3d..a783c0ae4c 100644
--- a/doc/guix-cookbook.texi
+++ b/doc/guix-cookbook.texi
@@ -16,6 +16,7 @@ Copyright @copyright{} 2020 Matthew Brooks@*
Copyright @copyright{} 2020 Marcin Karpezo@*
Copyright @copyright{} 2020 Brice Waegeneire@*
Copyright @copyright{} 2020 André Batista@*
+Copyright @copyright{} 2020 Christopher Lemmer Webber
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -1348,6 +1349,7 @@ reference.
* Customizing the Kernel:: Creating and using a custom Linux kernel on 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.
@end menu
@@ -1760,6 +1762,246 @@ your screen but not suspend it, it's a good idea to notify xss-lock about this s
confusion occurs. This can be done by executing @code{xset s activate} immediately
before you execute slock.
+@node Running Guix on a Linode Server
+@section Running Guix on a Linode Server
+@cindex linode, Linode
+
+To run Guix on a server hosted by @uref{https://www.linode.com, Linode},
+start with a recommended Debian server. We recommend using the default
+distro as a way to bootstrap Guix. Create your SSH keys.
+
+@example
+ssh-keygen
+@end example
+
+Be sure to add your SSH key for easy login to the remote server.
+This is trivially done via Linode's graphical interface for adding
+SSH keys. Go to your profile and click add SSH Key.
+Copy into it the output of:
+
+@example
+cat ~/.ssh/<username>_rsa.pub
+@end example
+
+Power the Linode down. In the Linode's Disks/Configurations tab, resize
+the Debian disk to be smaller. 30 GB is recommended.
+
+In the Linode settings, "Add a disk", with the following:
+@itemize @bullet
+@item
+Label: "Guix"
+
+@item
+Filesystem: ext4
+
+@item
+Set it to the remaining size
+@end itemize
+
+On the "configuration" field that comes with the default image, press
+"..." and select "Edit", then on that menu add to @file{/dev/sdc} the "Guix"
+label.
+
+Now "Add a Configuration", with the following:
+@itemize @bullet
+@item
+Label: Guix
+
+@item
+Kernel:GRUB 2 (it's at the bottom! This step is @b{IMPORTANT!})
+
+@item
+Block device assignment:
+
+@item
+@file{/dev/sda}: Guix
+
+@item
+@file{/dev/sdb}: swap
+
+@item
+Root device: @file{/dev/sda}
+
+@item
+Turn off all the filesystem/boot helpers
+@end itemize
+
+Now power it back up, picking the Debian configuration. Once it's
+booted up, ssh in your server via @code{ssh
+root@@@var{<your-server-IP-here>}}. (You can find your server IP address in
+your Linode Summary section.) Now you can run the "install guix from
+@pxref{Binary Installation,,, guix, GNU Guix}" steps:
+
+@example
+sudo apt-get install gpg
+wget https://sv.gnu.org/people/viewgpg.php?user_id=15145 -qO - | gpg --import -
+wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
+chmod +x guix-install.sh
+./guix-install.sh
+guix pull
+@end example
+
+Now it's time to write out a config for the server. The key information
+is below. Save the resulting file as @file{guix-config.scm}.
+
+@lisp
+(use-modules (gnu)
+ (guix modules))
+(use-service-modules networking
+ ssh)
+(use-package-modules admin
+ certs
+ package-management
+ ssh
+ tls)
+
+(operating-system
+ (host-name "my-server")
+ (timezone "America/New_York")
+ (locale "en_US.UTF-8")
+ ;; This goofy code will generate the grub.cfg
+ ;; without installing the grub bootloader on disk.
+ (bootloader (bootloader-configuration
+ (bootloader
+ (bootloader
+ (inherit grub-bootloader)
+ (installer #~(const #t))))))
+ (file-systems (cons (file-system
+ (device "/dev/sda")
+ (mount-point "/")
+ (type "ext4"))
+ %base-file-systems))
+
+
+ (swap-devices (list "/dev/sdb"))
+
+
+ (initrd-modules (cons "virtio_scsi" ; Needed to find the disk
+ %base-initrd-modules))
+
+ (users (cons (user-account
+ (name "janedoe")
+ (group "users")
+ ;; Adding the account to the "wheel" group
+ ;; makes it a sudoer.
+ (supplementary-groups '("wheel"))
+ (home-directory "/home/janedoe"))
+ %base-user-accounts))
+
+ (packages (cons* nss-certs ;for HTTPS access
+ openssh-sans-x
+ %base-packages))
+
+ (services (cons*
+ (service dhcp-client-service-type)
+ (service openssh-service-type
+ (openssh-configuration
+ (openssh openssh-sans-x)
+ (password-authentication? #f)
+ (authorized-keys
+ `(("janedoe" ,(local-file "janedoe_rsa.pub"))
+ ("root" ,(local-file "janedoe_rsa.pub"))))))
+ %base-services)))
+@end lisp
+
+Replace the following fields in the above configuration:
+@lisp
+(host-name "my-server") ; replace with your server name
+; if you chose a linode server outside the U.S., then
+; use tzselect to find a correct timezone string
+(timezone "America/New_York") ; if needed replace timezone
+(name "janedoe") ; replace with your username
+("janedoe" ,(local-file "janedoe_rsa.pub")) ; replace with your ssh key
+("root" ,(local-file "janedoe_rsa.pub")) ; replace with your ssh key
+@end lisp
+
+The last line in the above example lets you log into the server as root
+and set the initial root password. After you have done this, you may
+delete that line from your configuration and reconfigure to prevent root
+login.
+
+Save your ssh public key (eg: @file{~/.ssh/id_rsa.pub}) as
+@file{@var{<your-username-here>}_rsa.pub} and your
+@file{guix-config.scm} in the same directory. In a new terminal run
+these commands.
+
+@example
+sftp root@@<remote server ip address>
+put /home/<username>/ssh/id_rsa.pub .
+put /path/to/linode/guix-config.scm .
+@end example
+
+In your first terminal, mount the guix drive:
+
+@example
+mkdir /mnt/guix
+mount /dev/sdc /mnt/guix
+@end example
+
+Due to the way we set things up above, we do not install GRUB
+completely. Instead we install only our grub configuration file. So we
+need to copy over some of the other GRUB stuff that is already there:
+
+@example
+mkdir -p /mnt/guix/boot/grub
+cp -r /boot/grub/* /mnt/guix/boot/grub/
+@end example
+
+Now initialize the Guix installation:
+
+@example
+guix system init guix-config.scm /mnt/guix
+@end example
+
+Ok, power it down!
+Now from the Linode console, select boot and select "Guix".
+
+Once it boots, you should be able to log in via SSH! (The server config
+will have changed though.) You may encounter an error like:
+
+@example
+$ ssh root@@<server ip address>
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
+Someone could be eavesdropping on you right now (man-in-the-middle attack)!
+It is also possible that a host key has just been changed.
+The fingerprint for the ECDSA key sent by the remote host is
+SHA256:0B+wp33w57AnKQuHCvQP0+ZdKaqYrI/kyU7CfVbS7R4.
+Please contact your system administrator.
+Add correct host key in /home/joshua/.ssh/known_hosts to get rid of this message.
+Offending ECDSA key in /home/joshua/.ssh/known_hosts:3
+ECDSA host key for 198.58.98.76 has changed and you have requested strict checking.
+Host key verification failed.
+@end example
+
+Either delete @file{~/.ssh/known_hosts} file, or delete the offending line
+starting with your server IP address.
+
+Be sure to set your password and root's password.
+
+@example
+ssh root@@<remote ip address>
+passwd ; for the root password
+passwd <username> ; for the user password
+@end example
+
+You may not be able to run the above commands at this point. If you
+have issues remotely logging into your linode box via SSH, then you may
+still need to set your root and user password initially by clicking on
+the ``Launch Console'' option in your linode. Choose the ``Glish''
+instead of ``Weblish''. Now you should be able to ssh into the machine.
+
+Horray! At this point you can shut down the server, delete the
+Debian disk, and resize the Guix to the rest of the size.
+Congratulations!
+
+By the way, if you save it as a disk image right at this point, you'll
+have an easy time spinning up new Guix images! You may need to
+down-size the Guix image to 6144MB, to save it as an image. Then you
+can resize it again to the max size.
+
@node Setting up a bind mount
@section Setting up a bind mount
diff --git a/doc/guix.texi b/doc/guix.texi
index f224e356bc..a6e14ea177 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -790,7 +790,8 @@ or later;
@c FIXME: Specify a version number once a release has been made.
@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August
2017 or later;
-@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON} 3.x;
+@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}
+4.3.0 or later;
@item @url{https://www.gnu.org/software/make/, GNU Make}.
@end itemize
@@ -4989,7 +4990,13 @@ what you should use in this case (@pxref{Invoking guix copy}).
@cindex nar, archive format
@cindex normalized archive (nar)
-Archives are stored in the ``normalized archive'' or ``nar'' format, which is
+@cindex nar bundle, archive format
+Each store item is written in the @dfn{normalized archive} or @dfn{nar}
+format (described below), and the output of @command{guix archive
+--export} (and input of @command{guix archive --import}) is a @dfn{nar
+bundle}.
+
+The nar format is
comparable in spirit to `tar', but with differences
that make it more appropriate for our purposes. First, rather than
recording all Unix metadata for each file, the nar format only mentions
@@ -4999,6 +5006,10 @@ entries are stored always follows the order of file names according to
the C locale collation order. This makes archive production fully
deterministic.
+That nar bundle format is essentially the concatenation of zero or more
+nars along with metadata for each store item it contains: its file name,
+references, corresponding derivation, and a digital signature.
+
When exporting, the daemon digitally signs the contents of the archive,
and that digital signature is appended. When importing, the daemon
verifies the signature and rejects the import in case of an invalid
@@ -22189,6 +22200,31 @@ Can be set to @code{#f} to disable logging.
@item @code{file} (default @code{#f})
An optional override of the whole configuration.
You can use the @code{mixed-text-file} function or an absolute filepath for it.
+@item @code{php-ini-file} (default @code{#f})
+An optional override of the default php settings.
+It may be any ``file-like'' object (@pxref{G-Expressions, file-like objects}).
+You can use the @code{mixed-text-file} function or an absolute filepath for it.
+
+For local development it is useful to set a higher timeout and memory
+limit for spawned php processes. This be accomplished with the
+following operating system configuration snippet:
+@lisp
+(define %local-php-ini
+ (plain-file "php.ini"
+ "memory_limit = 2G
+max_execution_time = 1800"))
+
+(operating-system
+ ;; @dots{}
+ (services (cons (service php-fpm-service-type
+ (php-fpm-configuration
+ (php-ini-file %local-php-ini)))
+ %base-services)))
+@end lisp
+
+Consult the @url{https://www.php.net/manual/en/ini.core.php,core php.ini
+directives} for comprehensive documentation on the acceptable
+@file{php.ini} directives.
@end table
@end deftp
diff --git a/etc/completion/bash/guix b/etc/completion/bash/guix
index 5aebd074e9..98d20484f7 100644
--- a/etc/completion/bash/guix
+++ b/etc/completion/bash/guix
@@ -19,6 +19,19 @@
# Bash completion for Guix commands.
declare _guix_available_packages
+declare _guix_commands
+
+_guix_complete_command ()
+{
+ local word_at_point="${COMP_WORDS[$COMP_CWORD]}"
+ if [ -z "$_guix_commands" ]
+ then
+ # Cache the list of commands to speed things up.
+ _guix_commands="$(guix --help 2> /dev/null \
+ | grep '^ ' | cut -c 2-)"
+ fi
+ COMPREPLY=($(compgen -W "$_guix_commands" -- "$word_at_point"))
+}
_guix_complete_subcommand ()
{
@@ -146,19 +159,6 @@ _guix_complete_pid ()
COMPREPLY=($(compgen -W "$pids" -- "$1"))
}
-declare _guix_subcommands
-
-_guix_complete_subcommand ()
-{
- if [ -z "$_guix_subcommands" ]
- then
- # Cache the list of subcommands to speed things up.
- _guix_subcommands="$(guix --help 2> /dev/null \
- | grep '^ ' | cut -c 2-)"
- fi
- COMPREPLY=($(compgen -W "$_guix_subcommands" -- "$word_at_point"))
-}
-
_guix_complete ()
{
local word_count=${#COMP_WORDS[*]}
@@ -176,7 +176,7 @@ _guix_complete ()
case $COMP_CWORD in
1)
- _guix_complete_subcommand
+ _guix_complete_command
;;
*)
if _guix_is_command "package"
@@ -251,7 +251,7 @@ _guix_complete ()
then
_guix_complete_file
else
- _guix_complete_subcommand
+ _guix_complete_command
fi
elif _guix_is_command "container"
then
diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index 72dc3839e8..aa77d42615 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -111,7 +111,7 @@ chk_gpg_keyring()
# systems where gpg has never been used, causing errors and confusion.
gpg --dry-run --list-keys ${OPENPGP_SIGNING_KEY_ID} >/dev/null 2>&1 || (
_err "${ERR}Missing OpenPGP public key. Fetch it with this command:"
- echo " wget https://sv.gnu.org/people/viewgpg.php?user_id=15145 -qO - | sudo -i gpg --import -"
+ echo " wget 'https://sv.gnu.org/people/viewgpg.php?user_id=15145' -qO - | sudo -i gpg --import -"
exit 1
)
}
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index b905ae360c..e3febeefd0 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -506,6 +506,10 @@ fi~%"))))
;;;
;;; Bootloader definitions.
;;;
+;;; For all these grub-bootloader variables the path to /boot/grub/grub.cfg
+;;; is fixed. Inheriting and overwriting the field 'configuration-file' will
+;;; break 'guix system delete-generations', 'guix system switch-generation',
+;;; and 'guix system roll-back'.
(define grub-bootloader
(bootloader
@@ -516,12 +520,12 @@ fi~%"))))
(configuration-file "/boot/grub/grub.cfg")
(configuration-file-generator grub-configuration-file)))
-(define* grub-minimal-bootloader
+(define grub-minimal-bootloader
(bootloader
(inherit grub-bootloader)
(package grub-minimal)))
-(define* grub-efi-bootloader
+(define grub-efi-bootloader
(bootloader
(inherit grub-bootloader)
(installer install-grub-efi)
@@ -529,7 +533,7 @@ fi~%"))))
(name 'grub-efi)
(package grub-efi)))
-(define* grub-mkrescue-bootloader
+(define grub-mkrescue-bootloader
(bootloader
(inherit grub-efi-bootloader)
(package grub-hybrid)))
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index 4ba1503b9f..734d648575 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -675,7 +675,8 @@ were found."
(define (canonicalize-device-spec spec)
"Return the device name corresponding to SPEC, which can be a <uuid>, a
-<file-system-label>, or a string (typically a /dev file name)."
+<file-system-label>, or a string (typically a /dev file name or an nfs-root
+containing ':/')."
(define max-trials
;; Number of times we retry partition label resolution, 1 second per
;; trial. Note: somebody reported a delay of 16 seconds (!) before their
diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm
index 80fe0cfb9d..32e3536039 100644
--- a/gnu/build/linux-boot.scm
+++ b/gnu/build/linux-boot.scm
@@ -469,9 +469,10 @@ upon error."
(define (device-string->file-system-device device-string)
;; The "--root=SPEC" kernel command-line option always provides a
- ;; string, but the string can represent a device, a UUID, or a
- ;; label. So check for all three.
+ ;; string, but the string can represent a device, an nfs-root, a UUID, or a
+ ;; label. So check for all four.
(cond ((string-prefix? "/" device-string) device-string)
+ ((string-contains device-string ":/") device-string) ; nfs-root
((uuid device-string) => identity)
(else (file-system-label device-string))))
diff --git a/gnu/build/linux-container.scm b/gnu/build/linux-container.scm
index 21292b8d2f..2d4de788df 100644
--- a/gnu/build/linux-container.scm
+++ b/gnu/build/linux-container.scm
@@ -243,8 +243,8 @@ that host UIDs (respectively GIDs) map to in the namespace."
(match (read child)
('ready
(purify-environment)
- (when (and (not (null? mounts))
- (memq 'mnt namespaces))
+ (when (and (memq 'mnt namespaces)
+ (not (string=? root "/")))
(catch #t
(lambda ()
(mount-file-systems root mounts
diff --git a/gnu/installer/final.scm b/gnu/installer/final.scm
index 11143b2adb..fc0b7803fa 100644
--- a/gnu/installer/final.scm
+++ b/gnu/installer/final.scm
@@ -135,6 +135,20 @@ USERS."
(_ #f))))))
pids)))
+(define (call-with-mnt-container thunk)
+ "This is a variant of call-with-container. Run THUNK in a new container
+process, within a separate MNT namespace. The container is not jailed so that
+it can interact with the rest of the system."
+ (let ((pid (run-container "/" '() '(mnt) 1 thunk)))
+ ;; Catch SIGINT and kill the container process.
+ (sigaction SIGINT
+ (lambda (signum)
+ (false-if-exception
+ (kill pid SIGKILL))))
+
+ (match (waitpid pid)
+ ((_ . status) status))))
+
(define* (install-system locale #:key (users '()))
"Create /etc/shadow and /etc/passwd on the installation target for USERS.
Start COW-STORE service on target directory and launch guix install command in
@@ -181,7 +195,7 @@ or #f. Return #t on success and #f on failure."
;; To avoid this situation, mount the store overlay inside a container,
;; and run the installation from within that container.
(zero?
- (call-with-container '()
+ (call-with-mnt-container
(lambda ()
(dynamic-wind
(lambda ()
@@ -218,5 +232,4 @@ or #f. Return #t on success and #f on failure."
;; Finally umount the cow-store and exit the container.
(unmount-cow-store (%installer-target-dir) backing-directory)
- (assert-exit ret))))
- #:namespaces '(mnt)))))
+ (assert-exit ret))))))))
diff --git a/gnu/local.mk b/gnu/local.mk
index c9443a1b56..ba94adfe72 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -36,6 +36,7 @@
# Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
# Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
# Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
+# Copyright © 2020 Martin Becze <mjbecze@riseup.net>
#
# This file is part of GNU Guix.
#
@@ -342,6 +343,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/lout.scm \
%D%/packages/logging.scm \
%D%/packages/logo.scm \
+ %D%/packages/loko.scm \
%D%/packages/lolcode.scm \
%D%/packages/lsof.scm \
%D%/packages/lua.scm \
@@ -430,6 +432,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/photo.scm \
%D%/packages/phabricator.scm \
%D%/packages/php.scm \
+ %D%/packages/piet.scm \
%D%/packages/pkg-config.scm \
%D%/packages/plotutils.scm \
%D%/packages/poedit.scm \
@@ -1015,6 +1018,7 @@ dist_patch_DATA = \
%D%/packages/patches/gd-brect-bounds.patch \
%D%/packages/patches/gdb-hurd.patch \
%D%/packages/patches/gdm-default-session.patch \
+ %D%/packages/patches/genimage-signedness.patch \
%D%/packages/patches/geoclue-config.patch \
%D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \
%D%/packages/patches/ghc-testsuite-dlopen-pie.patch \
@@ -1552,7 +1556,6 @@ dist_patch_DATA = \
%D%/packages/patches/rust-reproducible-builds.patch \
%D%/packages/patches/rust-openssl-sys-no-vendor.patch \
%D%/packages/patches/rxvt-unicode-escape-sequences.patch \
- %D%/packages/patches/sbcl-graph-asdf-definitions.patch \
%D%/packages/patches/scalapack-blacs-mpi-deprecations.patch \
%D%/packages/patches/scheme48-tests.patch \
%D%/packages/patches/scotch-build-parallelism.patch \
diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm
index 4e31baa4b9..35b42add48 100644
--- a/gnu/machine/ssh.scm
+++ b/gnu/machine/ssh.scm
@@ -172,6 +172,8 @@ exist on the machine."
(and (file-system-mount? fs)
(not (member (file-system-type fs)
%pseudo-file-system-types))
+ ;; Don't try to validate network file systems.
+ (not (string-prefix? "nfs" (file-system-type fs)))
(not (memq 'bind-mount (file-system-flags fs)))))
(operating-system-file-systems (machine-operating-system machine))))
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 55f731c3cd..4e470abd8a 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -514,7 +514,7 @@ or via the @code{facter} Ruby library.")
(define-public htop
(package
(name "htop")
- (version "3.0.0")
+ (version "3.0.1")
(source
(origin
(method git-fetch)
@@ -522,7 +522,7 @@ or via the @code{facter} Ruby library.")
(url "https://github.com/htop-dev/htop")
(commit version)))
(sha256
- (base32 "096gdnpaszs5rfp7qj8npi2jkvdqpp8mznn89f97ykrg6pgagwq4"))
+ (base32 "0kjlphdvwwbj91kk91s4ksc954d3c2bznddzx2223jmb1bn9rcsa"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs
@@ -2081,7 +2081,7 @@ track changes in important system configuration files.")
(define-public libcap-ng
(package
(name "libcap-ng")
- (version "0.7.11")
+ (version "0.8")
(source (origin
(method url-fetch)
(uri (string-append
@@ -2089,7 +2089,7 @@ track changes in important system configuration files.")
version ".tar.gz"))
(sha256
(base32
- "1s8akhnnazk0b5c6z5i3x54rjb26p8pz2wdl1m21ml3231qmr0c5"))))
+ "08cy59iassiwbmfxa5v0kb374r80290vv32f5q1mnip11av26kgi"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index 2535c1238a..eb538f6540 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -10,6 +10,7 @@
;;; Copyright © 2019, 2020 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 Sergey Trofimov <sarg@sarg.org.ru>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -30,8 +31,9 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
- #:use-module (guix build-system gnu)
#:use-module (guix build-system android-ndk)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system go)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module ((guix licenses) #:prefix license:)
@@ -41,6 +43,7 @@
#:use-module (gnu packages docker)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gnupg)
+ #:use-module (gnu packages golang)
#:use-module (gnu packages java)
#:use-module (gnu packages linux)
#:use-module (gnu packages pcre)
@@ -972,6 +975,36 @@ publishing, or to assist in creating, testing and submitting metadata to the
main repository.")
(license license:agpl3+)))
+(define-public fdroidcl
+ (package
+ (name "fdroidcl")
+ (version "0.5.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mvdan/fdroidcl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1rxcdyy2j34z0ql9d62w7ivsch9xihjnpb1z9kgy9q46vl8zhhy0"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "mvdan.cc/fdroidcl"
+ #:tests? #f ; TODO: Inputs missing.
+ #:install-source? #f))
+ (inputs
+ `(("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
+ ;(native-inputs
+ ; `(("go-github-com-rogpeppe-go-internal-testscript"
+ ; ,go-github-com-rogpeppe-go-internal-testscript)))
+ (synopsis "F-Droid desktop client")
+ (description
+ "While the Android client integrates with the system with regular update
+checks and notifications, this is a simple command line client that talks to
+connected devices via ADB.")
+ (home-page "https://github.com/mvdan/fdroidcl")
+ (license license:bsd-3)))
+
(define-public enjarify
(package
(name "enjarify")
diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm
index 6587dc5aa2..12954c9c1f 100644
--- a/gnu/packages/assembly.scm
+++ b/gnu/packages/assembly.scm
@@ -151,14 +151,14 @@ to the clients.")
(define-public fasm
(package
(name "fasm")
- (version "1.73.24")
+ (version "1.73.25")
(source
(origin
(method url-fetch)
(uri (string-append "https://flatassembler.net/fasm-"
version ".tgz"))
(sha256
- (base32 "142vxhs8mh8isvlzq7ir0asmqda410phzxmk9gk9b43dldskkj7k"))))
+ (base32 "0k3h61mfwslyb34kf4dnapfwl8jxlmrp4dv666wc057hkj047knn"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests exist
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index f134f0800f..785d281887 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -128,7 +128,7 @@ header.")
(define-public gnuastro
(package
(name "gnuastro")
- (version "0.12")
+ (version "0.13")
(source
(origin
(method url-fetch)
@@ -136,7 +136,7 @@ header.")
version ".tar.lz"))
(sha256
(base32
- "0ypk1c72q778cixfa52vjxzbd5m4qc6hfjgnipy16sfa7mnspmyf"))))
+ "07di6zx2irc5q0zyymx2951ydzxdfjmzd3az5qnk67ncf3hknvj5"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-static")))
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 9447156e0e..0746f67b2e 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -108,6 +108,7 @@
#:use-module (gnu packages valgrind)
#:use-module (gnu packages video)
#:use-module (gnu packages vim) ;xxd
+ #:use-module (gnu packages web)
#:use-module (gnu packages webkit)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xiph)
@@ -1822,7 +1823,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
(define-public guitarix
(package
(name "guitarix")
- (version "0.38.1")
+ (version "0.41.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1830,28 +1831,14 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
version ".tar.xz"))
(sha256
(base32
- "0bw7xnrx062nwb1bfj9x660h7069ncmz77szcs8icpqxrvhs7z80"))))
+ "0qsfbyrrpb3bbdyq68k28mjql7kglxh8nqcw9jvja28x6x9ik5a0"))))
(build-system waf-build-system)
(arguments
`(#:tests? #f ; no "check" target
- #:python ,python-2
#:configure-flags
(list
;; Add the output lib directory to the RUNPATH.
- (string-append "--ldflags=-Wl,-rpath=" %output "/lib"))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-boost-includes
- (lambda _
- (substitute* "src/headers/gx_internal_plugins.h"
- (("namespace gx_jack" m)
- (string-append "#include <boost/noncopyable.hpp>\n" m)))
- (substitute* '("src/headers/gx_system.h"
- "src/headers/gx_parameter.h"
- "src/headers/gx_json.h")
- (("namespace gx_system" m)
- (string-append "#include <boost/noncopyable.hpp>\n" m)))
- #t)))))
+ (string-append "--ldflags=-Wl,-rpath=" %output "/lib"))))
(inputs
`(("libsndfile" ,libsndfile)
("boost" ,boost)
@@ -1862,8 +1849,8 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
("lilv" ,lilv)
("ladspa" ,ladspa)
("jack" ,jack-1)
- ("gtkmm" ,gtkmm-2)
- ("gtk+" ,gtk+-2)
+ ("gtkmm" ,gtkmm)
+ ("gtk+" ,gtk+)
("fftwf" ,fftwf)
("lrdf" ,lrdf)
("zita-resampler" ,zita-resampler)
@@ -1873,7 +1860,8 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
("faust" ,faust)
("intltool" ,intltool)
("gettext" ,gettext-minimal)
- ("pkg-config" ,pkg-config)))
+ ("pkg-config" ,pkg-config)
+ ("sassc" ,sassc)))
(native-search-paths
(list (search-path-specification
(variable "LV2_PATH")
@@ -4025,14 +4013,14 @@ on the ALSA software PCM plugin.")
(define-public snd
(package
(name "snd")
- (version "20.6")
+ (version "20.7")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
"snd-" version ".tar.gz"))
(sha256
(base32
- "1h4dsq5xcvwjbnayhn719cln0lg199w3xm59sl9d2jz8bq78gqgj"))))
+ "1kd422krz8ln4m8g3p14wfplcq8lgpzly9297rpbvyc94dc6sdwj"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:tests? #f ; no tests
@@ -4479,7 +4467,7 @@ supports both of ID3v1/v2 and APEv2 tags.")
(define-public redkite
(package
(name "redkite")
- (version "0.8.1")
+ (version "1.0.3")
(source
(origin
(method git-fetch)
@@ -4488,7 +4476,7 @@ supports both of ID3v1/v2 and APEv2 tags.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "17kv2jc4jvn3sdicz3sf8dnf25wbvv7ijzkr0mm0sbrrjz6vrwz0"))))
+ (base32 "1m2db7c791fi33snkjwnvlxapmf879g5r8azlkx7sr6vp2s0jq2k"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ;no tests included
@@ -4652,7 +4640,7 @@ libsamplerate for reading and resampling audio files, based on Robin Gareus'
(define-public lv2lint
(package
(name "lv2lint")
- (version "0.4.0")
+ (version "0.8.0")
(source
(origin
(method git-fetch)
@@ -4662,7 +4650,7 @@ libsamplerate for reading and resampling audio files, based on Robin Gareus'
(file-name (git-file-name name version))
(sha256
(base32
- "1pspwqpzl2dw1hd9ra9yr53arqbbqjn7d7j0f7p9g3iqa76vblpi"))))
+ "1jrka0hsn4n1clri7zfkcl3c2vi52144lkpjm81l51ff8rqy8ks1"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 5f3ff426e0..94516ef523 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -1072,7 +1072,7 @@ interractive mode.")
(define-public burp
(package
(name "burp")
- (version "2.3.32")
+ (version "2.3.34")
(source
(origin
(method git-fetch)
@@ -1080,7 +1080,7 @@ interractive mode.")
(url "https://github.com/grke/burp")
(commit version)))
(sha256
- (base32 "0cxxf9ni34c9662ffmr2qc8xmh4g9pmg3swqvhn49mqgr5ra6k2g"))
+ (base32 "0ri62xshcjrk5vgyx8s11vsllab132mk1pcy4xxl9kzijdsjhdpy"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 73d5fe37eb..db1fdcad17 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2016, 2017, 2018, 2020 Roel Janssen <roel@gnu.org>
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2020 Peter Lo <peterloleungyau@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1762,6 +1763,7 @@ expressed genes in DNA microarray experiments.")
fitting of some classes of graphical Markov models.")
(license license:gpl2+)))
+;; This is a CRAN package, but it depends on a Bioconductor package.
(define-public r-codedepends
(package
(name "r-codedepends")
@@ -8153,3 +8155,89 @@ user's input and automatically retrieving results from GREAT web server.")
simulation to eliminate overestimation of @code{K} and can reject the null
hypothesis @code{K=1}.")
(license license:agpl3+)))
+
+(define-public r-icens
+ (package
+ (name "r-icens")
+ (version "1.60.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "Icens" version))
+ (sha256
+ (base32
+ "0fh7wgkrw20f61p06i87nccnbig9wv4m0jcg7cx1rw7g2ndnabgp"))))
+ (properties `((upstream-name . "Icens")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-survival" ,r-survival)))
+ (home-page "https://bioconductor.org/packages/Icens")
+ (synopsis "NPMLE for censored and truncated data")
+ (description
+ "This package provides many functions for computing the
+@dfn{nonparametric maximum likelihood estimator} (NPMLE) for censored and
+truncated data.")
+ (license license:artistic2.0)))
+
+;; This is a CRAN package but it depends on r-icens, which is published on
+;; Bioconductor.
+(define-public r-interval
+ (package
+ (name "r-interval")
+ (version "1.1-0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "interval" version))
+ (sha256
+ (base32
+ "1lln9jkli28i4wivwzqrsxvv2n15560f7msjy5gssrm45vxrxms8"))))
+ (properties `((upstream-name . "interval")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-icens" ,r-icens)
+ ("r-mlecens" ,r-mlecens)
+ ("r-perm" ,r-perm)
+ ("r-survival" ,r-survival)))
+ (home-page "https://cran.r-project.org/web/packages/interval/")
+ (synopsis "Weighted Logrank tests and NPMLE for interval censored data")
+ (description
+ "This package provides functions to fit nonparametric survival curves,
+plot them, and perform logrank or Wilcoxon type tests.")
+ (license license:gpl2+)))
+
+;; This is a CRAN package, but it depends on r-interval, which depends on a
+;; Bioconductor package.
+(define-public r-fhtest
+ (package
+ (name "r-fhtest")
+ (version "1.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "FHtest" version))
+ (sha256
+ (base32
+ "1wsn0j9ydpp9nfswiqg21p09kgkvaq8fh0y0h8syqgizah7i8vs2"))))
+ (properties `((upstream-name . "FHtest")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-interval" ,r-interval)
+ ("r-kmsurv" ,r-kmsurv)
+ ("r-mass" ,r-mass)
+ ("r-perm" ,r-perm)
+ ("r-survival" ,r-survival)))
+ (home-page "https://cran.r-project.org/web/packages/FHtest/")
+ (synopsis "Tests for survival data based on the Fleming-Harrington class")
+ (description
+ "This package provides functions to compare two or more survival curves
+with:
+
+@itemize
+@item The Fleming-Harrington test for right-censored data based on
+ permutations and on counting processes.
+@item An extension of the Fleming-Harrington test for interval-censored data
+ based on a permutation distribution and on a score vector distribution.
+@end itemize
+")
+ (license license:gpl2+)))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 6f9580e9c3..b22deb4750 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -6357,14 +6357,14 @@ bioinformatics file formats, sequence alignment, and more.")
(define-public seqmagick
(package
(name "seqmagick")
- (version "0.7.0")
+ (version "0.8.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "seqmagick" version))
(sha256
(base32
- "12bfyp8nqi0hd36rmj450aygafp01qy3hkbvlwn3bk39pyjjkgg5"))))
+ "0pf98da7i59q47gwrbx0wjk6xlvbybiwphw80w7h4ydjj0579a2b"))))
(build-system python-build-system)
(inputs
`(("python-biopython" ,python-biopython)))
@@ -8510,57 +8510,6 @@ Stephens (1990).")
throughput genetic sequencing data sets using regression methods.")
(license license:artistic2.0)))
-(define-public r-qtl
- (package
- (name "r-qtl")
- (version "1.46-2")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://cran/src/contrib/qtl_"
- version ".tar.gz"))
- (sha256
- (base32
- "0rbwcnvyy96gq1dsgpxx03pv423qya26h6ws5y0blj3blfdmj83a"))))
- (build-system r-build-system)
- (home-page "https://rqtl.org/")
- (synopsis "R package for analyzing QTL experiments in genetics")
- (description "R/qtl is an extension library for the R statistics
-system. It is used to analyze experimental crosses for identifying
-genes contributing to variation in quantitative traits (so-called
-quantitative trait loci, QTLs).
-
-Using a hidden Markov model, R/qtl estimates genetic maps, to
-identify genotyping errors, and to perform single-QTL and two-QTL,
-two-dimensional genome scans.")
- (license license:gpl3)))
-
-(define-public r-qtl2
- (package
- (name "r-qtl2")
- (version "0.22-11")
- (source (origin
- (method url-fetch)
- (uri (cran-uri "qtl2" version))
- (sha256
- (base32 "0dfdzjylqzc92dcszawc8cyinxccjm3p36v9vcq9ma818pqcanmr"))))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-data-table" ,r-data-table)
- ("r-jsonlite" ,r-jsonlite)
- ("r-rcpp" ,r-rcpp)
- ("r-rcppeigen" ,r-rcppeigen)
- ("r-rsqlite" ,r-rsqlite)
- ("r-yaml" ,r-yaml)))
- (home-page "https://kbroman.org/qtl2/")
- (synopsis "Quantitative Trait Locus Mapping in Experimental Crosses")
- (description
- "This package provides a set of tools to perform @dfn{Quantitative Trait
-Locus} (QTL) analysis in experimental crosses. It is a reimplementation of the
-@code{R/qtl} package to better handle high-dimensional data and complex cross
-designs. Broman et al. (2018) <doi:10.1534/genetics.118.301595>.")
- (license license:gpl3)))
-
(define-public r-zlibbioc
(package
(name "r-zlibbioc")
@@ -9444,28 +9393,6 @@ imaging data that can be used in subsequent analyses to adjust for unknown,
unmodeled, or latent sources of noise.")
(license license:artistic2.0)))
-(define-public r-seqminer
- (package
- (name "r-seqminer")
- (version "8.0")
- (source
- (origin
- (method url-fetch)
- (uri (cran-uri "seqminer" version))
- (sha256
- (base32
- "00jzj8mwb0zaiwlifd41b26mrq9mzigj18nc29dydi0r42hxg16i"))))
- (build-system r-build-system)
- (inputs
- `(("zlib" ,zlib)))
- (home-page "http://seqminer.genomic.codes")
- (synopsis "Read nucleotide sequence data (VCF, BCF, and METAL formats)")
- (description
- "This package provides tools to integrate nucleotide sequencing
-data (variant call format, e.g. VCF or BCF) or meta-analysis results in R.")
- ;; Any version of the GPL is acceptable
- (license (list license:gpl2+ license:gpl3+))))
-
(define-public r-raremetals2
(package
(name "r-raremetals2")
@@ -9498,32 +9425,6 @@ for analyzing gene-level association tests in meta-analyses for binary
trait.")
(license license:gpl3)))
-(define-public r-maldiquant
- (package
- (name "r-maldiquant")
- (version "1.19.3")
- (source
- (origin
- (method url-fetch)
- (uri (cran-uri "MALDIquant" version))
- (sha256
- (base32
- "0b7kdz3x4sdq413h1q09l1qhcvdnnwv6fqsqwllks1cd3xy34c57"))))
- (properties `((upstream-name . "MALDIquant")))
- (build-system r-build-system)
- (home-page "https://cran.r-project.org/web/packages/MALDIquant")
- (synopsis "Quantitative analysis of mass spectrometry data")
- (description
- "This package provides a complete analysis pipeline for matrix-assisted
-laser desorption/ionization-time-of-flight (MALDI-TOF) and other
-two-dimensional mass spectrometry data. In addition to commonly used plotting
-and processing methods it includes distinctive features, namely baseline
-subtraction methods such as morphological filters (TopHat) or the
-statistics-sensitive non-linear iterative peak-clipping algorithm (SNIP), peak
-alignment using warping functions, handling of replicated measurements as well
-as allowing spectra with different resolutions.")
- (license license:gpl3+)))
-
(define-public r-protgenerics
(package
(name "r-protgenerics")
@@ -9834,71 +9735,6 @@ contains a number of utilities to explore the MS/MS results and assess missed
and irregular enzymatic cleavages, mass measurement accuracy, etc.")
(license license:artistic2.0)))
-(define-public r-seurat
- (package
- (name "r-seurat")
- (version "3.2.0")
- (source (origin
- (method url-fetch)
- (uri (cran-uri "Seurat" version))
- (sha256
- (base32
- "1vj3dlsqakgnn4x1jz9fkl2cy0jzc5s65h1c20fnamr7lk45pnf2"))))
- (properties `((upstream-name . "Seurat")))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-ape" ,r-ape)
- ("r-cluster" ,r-cluster)
- ("r-cowplot" ,r-cowplot)
- ("r-fitdistrplus" ,r-fitdistrplus)
- ("r-future" ,r-future)
- ("r-future-apply" ,r-future-apply)
- ("r-ggplot2" ,r-ggplot2)
- ("r-ggrepel" ,r-ggrepel)
- ("r-ggridges" ,r-ggridges)
- ("r-httr" ,r-httr)
- ("r-ica" ,r-ica)
- ("r-igraph" ,r-igraph)
- ("r-irlba" ,r-irlba)
- ("r-jsonlite" ,r-jsonlite)
- ("r-kernsmooth" ,r-kernsmooth)
- ("r-leiden" ,r-leiden)
- ("r-lmtest" ,r-lmtest)
- ("r-mass" ,r-mass)
- ("r-matrix" ,r-matrix)
- ("r-miniui" ,r-miniui)
- ("r-patchwork" ,r-patchwork)
- ("r-pbapply" ,r-pbapply)
- ("r-plotly" ,r-plotly)
- ("r-png" ,r-png)
- ("r-rann" ,r-rann)
- ("r-rcolorbrewer" ,r-rcolorbrewer)
- ("r-rcpp" ,r-rcpp)
- ("r-rcppannoy" ,r-rcppannoy)
- ("r-rcppeigen" ,r-rcppeigen)
- ("r-rcppprogress" ,r-rcppprogress)
- ("r-reticulate" ,r-reticulate)
- ("r-rlang" ,r-rlang)
- ("r-rocr" ,r-rocr)
- ("r-rsvd" ,r-rsvd)
- ("r-rtsne" ,r-rtsne)
- ("r-scales" ,r-scales)
- ("r-sctransform" ,r-sctransform)
- ("r-shiny" ,r-shiny)
- ("r-spatstat" ,r-spatstat)
- ("r-tibble" ,r-tibble)
- ("r-uwot" ,r-uwot)))
- (home-page "http://www.satijalab.org/seurat")
- (synopsis "Seurat is an R toolkit for single cell genomics")
- (description
- "This package is an R package designed for QC, analysis, and
-exploration of single cell RNA-seq data. It easily enables widely-used
-analytical techniques, including the identification of highly variable genes,
-dimensionality reduction; PCA, ICA, t-SNE, standard unsupervised clustering
-algorithms; density clustering, hierarchical clustering, k-means, and the
-discovery of differentially expressed genes and markers.")
- (license license:gpl3)))
-
(define-public r-aroma-light
(package
(name "r-aroma-light")
@@ -11100,34 +10936,6 @@ are optimized per data type and for subsetted calculations such that both
memory usage and processing time is minimized.")
(license license:expat)))
-(define-public r-phangorn
- (package
- (name "r-phangorn")
- (version "2.5.5")
- (source
- (origin
- (method url-fetch)
- (uri (cran-uri "phangorn" version))
- (sha256
- (base32
- "0ihkaykqjmf80d8wrk3saphxvnv58zma6pd13633bd3cwanc33f5"))))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-ape" ,r-ape)
- ("r-fastmatch" ,r-fastmatch)
- ("r-igraph" ,r-igraph)
- ("r-magrittr" ,r-magrittr)
- ("r-matrix" ,r-matrix)
- ("r-quadprog" ,r-quadprog)
- ("r-rcpp" ,r-rcpp)))
- (home-page "https://github.com/KlausVigo/phangorn")
- (synopsis "Phylogenetic analysis in R")
- (description
- "Phangorn is a package for phylogenetic analysis in R. It supports
-estimation of phylogenetic trees and networks using Maximum Likelihood,
-Maximum Parsimony, distance methods and Hadamard conjugation.")
- (license license:gpl2+)))
-
(define-public r-dropbead
(let ((commit "d746c6f3b32110428ea56d6a0001ce52a251c247")
(revision "2"))
@@ -13276,37 +13084,6 @@ analyses in addition to large-scale sequence-level searches.")
(supported-systems '("x86_64-linux"))
(license license:bsd-3))))
-(define-public r-diversitree
- (package
- (name "r-diversitree")
- (version "0.9-13")
- (source
- (origin
- (method url-fetch)
- (uri (cran-uri "diversitree" version))
- (sha256
- (base32
- "00vi4klywi35hd170ksjv3xja3hqqbkcidcnrrlpgv4179k0azix"))))
- (build-system r-build-system)
- (native-inputs
- `(("gfortran" ,gfortran)))
- (inputs `(("fftw" ,fftw) ("gsl" ,gsl)))
- (propagated-inputs
- `(("r-ape" ,r-ape)
- ("r-desolve" ,r-desolve)
- ("r-rcpp" ,r-rcpp)
- ("r-subplex" ,r-subplex)))
- (home-page "https://www.zoology.ubc.ca/prog/diversitree")
- (synopsis "Comparative 'phylogenetic' analyses of diversification")
- (description "This package contains a number of comparative \"phylogenetic\"
-methods, mostly focusing on analysing diversification and character evolution.
-Contains implementations of \"BiSSE\" (Binary State Speciation and Extinction)
-and its unresolved tree extensions, \"MuSSE\" (Multiple State Speciation and
-Extinction), \"QuaSSE\", \"GeoSSE\", and \"BiSSE-ness\" Other included methods
-include Markov models of discrete and continuous trait evolution and constant
-rate speciation and extinction.")
- (license license:gpl2+)))
-
(define-public sjcount
;; There is no tag for version 3.2, nor is there a release archive.
(let ((commit "292d3917cadb3f6834c81e509c30e61cd7ead6e5")
@@ -14306,33 +14083,6 @@ downstream analysis. Poretools operates directly on the native FAST5, a variant
of the Hierarchical Data Format (HDF5) standard.")
(license license:expat))))
-(define-public r-absfiltergsea
- (package
- (name "r-absfiltergsea")
- (version "1.5.1")
- (source
- (origin
- (method url-fetch)
- (uri (cran-uri "AbsFilterGSEA" version))
- (sha256
- (base32 "15srxkxsvn38kd5frdrwfdf0ad8gskrd0h01wmdf9hglq8fjrp7w"))))
- (properties `((upstream-name . "AbsFilterGSEA")))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-biobase" ,r-biobase)
- ("r-deseq" ,r-deseq)
- ("r-limma" ,r-limma)
- ("r-rcpp" ,r-rcpp)
- ("r-rcpparmadillo" ,r-rcpparmadillo)))
- (home-page "https://cran.r-project.org/web/packages/AbsFilterGSEA/")
- (synopsis "Improved false positive control of gene-permuting with absolute filtering")
- (description
- "This package provides a function that performs gene-permuting of a gene-set
-enrichment analysis (GSEA) calculation with or without the absolute filtering.
- Without filtering, users can perform (original) two-tailed or one-tailed
-absolute GSEA.")
- (license license:gpl2)))
-
(define-public jamm
(package
(name "jamm")
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index f54e568b55..2a4339fda0 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -34,6 +34,7 @@
#:use-module (guix build-system python)
#:use-module (guix build-system glib-or-gtk)
#:use-module ((guix licenses) #:prefix l:)
+ #:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages boost)
@@ -55,6 +56,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-crypto)
+ #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages sqlite)
@@ -465,29 +467,65 @@ features.")
(define-public deluge
(package
(name "deluge")
- (version "1.3.15")
+ (version "2.0.3")
(source
(origin
(method url-fetch)
(uri (string-append
- "http://download.deluge-torrent.org/source/deluge-"
- version ".tar.xz"))
+ "https://ftp.osuosl.org/pub/deluge/source/"
+ (version-major+minor version) "/deluge-" version ".tar.xz"))
(sha256
(base32
- "0b7rri4x0wrcj7rjghrnw1kfrsd5i7i6aq85dsg5dg1w1qa0ar59"))))
+ "14d8kn2pvr1qv8mwqrxmj85jycr73vwfqz12hzag0ararbkfhyky"))))
(build-system python-build-system)
- (inputs
- `(("libtorrent" ,libtorrent-rasterbar)
- ("python2-chardet" ,python2-chardet)
- ("python2-pygtk" ,python2-pygtk)
- ("python2-pyopenssl" ,python2-pyopenssl)
- ("python2-pyxdg" ,python2-pyxdg)
- ("python2-service-identity" ,python2-service-identity)
- ("python2-twisted" ,python2-twisted)))
+ (propagated-inputs
+ `(("gtk+" ,gtk+)
+ ("librsvg" ,librsvg)
+ ("libtorrent" ,libtorrent-rasterbar)
+ ("python-pycairo" ,python-pycairo)
+ ("python-chardet" ,python-chardet)
+ ("python-dbus" ,python-dbus)
+ ("python-mako" ,python-mako)
+ ("python-pygobject" ,python-pygobject)
+ ("python-pillow" ,python-pillow)
+ ("python-pyopenssl" ,python-pyopenssl)
+ ("python-pyxdg" ,python-pyxdg)
+ ("python-rencode" ,python-rencode)
+ ("python-service-identity" ,python-service-identity)
+ ("python-setproctitle" ,python-setproctitle)
+ ("python-six" ,python-six)
+ ("python-twisted" ,python-twisted)
+ ("python-zope-interface" ,python-zope-interface)))
(native-inputs
- `(("intltool" ,intltool)))
+ `(("intltool" ,intltool)
+ ("python-wheel" ,python-wheel)))
+ ;; TODO: Enable tests.
+ ;; After "pytest-twisted" is packaged, HOME is set, and an X server is
+ ;; started, some of the tests still fail. There are likely some tests
+ ;; that require a network connection.
(arguments
- `(#:python ,python-2))
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ ;; Remove this phase when upgrading to version 2.0.4 or beyond, as
+ ;; the issue is fixed upstream.
+ (add-after 'unpack 'fix-gettext-warning
+ (lambda _
+ (substitute* "deluge/i18n/util.py"
+ (("names='ngettext'") "names=['ngettext']"))
+ #t))
+ (add-after 'install 'wrap
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
+ (for-each
+ (lambda (program)
+ (wrap-program program
+ `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
+ (map (lambda (name)
+ (string-append out "/bin/" name))
+ '("deluge" "deluge-gtk"))))
+ #t)))))
(home-page "https://www.deluge-torrent.org/")
(synopsis "Fully-featured cross-platform ​BitTorrent client")
(description
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index 0eec48ab18..e0a0708847 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -47,8 +47,8 @@
#:use-module (guix build-system gnu))
(define-public cuirass
- (let ((commit "f2984c7230f69a6e50810edc5e9d36bd671801f9")
- (revision "43"))
+ (let ((commit "00c7b4bb4432ff3f5ba28dca3625479e1fa129d8")
+ (revision "44"))
(package
(name "cuirass")
(version (git-version "0.0.1" revision commit))
@@ -60,7 +60,7 @@
(file-name (git-file-name name version))
(sha256
(base32
- "1p9mlmhv4kz8wixgywh1ffm3140p4mkgz92n7ry3n5s9w5n7fpjl"))))
+ "0xjl2in9hg24liahrhfr637ddwib3904ax9rpggyphamnvcxygzr"))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build utils)
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index aa30e3fa18..cc86d06c65 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -3902,6 +3902,12 @@ binaries, plus debugging symbols in the @code{debug} output), and Binutils.")
(define-public gcc-toolchain-10
(make-gcc-toolchain gcc-10))
+(define-public gcc-toolchain-aka-gcc
+ ;; It's natural for users to try "guix install gcc". This package
+ ;; automatically "redirects" them to 'gcc-toolchain'.
+ (deprecated-package "gcc" gcc-toolchain-10))
+
+
(define-public gdc-toolchain-10
(package (inherit (make-gcc-toolchain gdc-10))
(synopsis "Complete GCC tool chain for D lang development")
diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm
index 166e66c09e..3573518763 100644
--- a/gnu/packages/coq.scm
+++ b/gnu/packages/coq.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
+;;; Copyright © 2020 raingloom <raingloom@riseup.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -96,11 +97,18 @@
(add-after 'install 'remove-duplicate
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin")))
+ (bin (string-append out "/bin"))
+ (coqtop (string-append bin "/coqtop"))
+ (coqidetop (string-append bin "/coqidetop"))
+ (coqtop.opt (string-append coqtop ".opt"))
+ (coqidetop.opt (string-append coqidetop ".opt")))
;; These files are exact copies without `.opt` extension.
;; Removing these saves 35 MiB in the resulting package.
- (delete-file (string-append bin "/coqtop.opt"))
- (delete-file (string-append bin "/coqidetop.opt")))
+ ;; Unfortunately, completely deleting them breaks coqide.
+ (delete-file coqtop.opt)
+ (delete-file coqidetop.opt)
+ (symlink coqtop coqtop.opt)
+ (symlink coqidetop coqidetop.opt))
#t))
(add-after 'install 'install-ide
(lambda* (#:key outputs #:allow-other-keys)
@@ -553,11 +561,11 @@ uses Ltac to synthesize the substitution operation.")
(method git-fetch)
(uri (git-reference
(url "https://github.com/mattam82/Coq-Equations")
- (commit (string-append "v" version "-8.10"))))
+ (commit (string-append "v" version "-8.10-2"))))
(file-name (git-file-name name version))
(sha256
(base32
- "023q5dww3drw35dm9bi9p9d0wrj9k7vax7hfdsprf8l340pb4s0k"))))
+ "0j3z4l5nrbyi9zbbyqkc6kassjanwld2188mwmrbqspaypm2ys68"))))
(build-system gnu-build-system)
(native-inputs
`(("ocaml" ,ocaml)
@@ -588,7 +596,7 @@ kernel.")
(define-public coq-stdpp
(package
(name "coq-stdpp")
- (version "1.2.1")
+ (version "1.4.0")
(synopsis "Alternative Coq standard library std++")
(source (origin
(method git-fetch)
@@ -598,7 +606,7 @@ kernel.")
(file-name (git-file-name name version))
(sha256
(base32
- "1lczybg1jq9drbi8nzrlb0k199x4n07aawjwfzrl3qqc0w8kmvdz"))))
+ "1m6c7ibwc99jd4cv14v3r327spnfvdf3x2mnq51f9rz99rffk68r"))))
(build-system gnu-build-system)
(inputs
`(("coq" ,coq)))
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 7d0ff3353c..003883e1a5 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -13,6 +13,7 @@
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -360,7 +361,7 @@ intuitive syntax and trivial integration.")
(define-public xtl
(package
(name "xtl")
- (version "0.6.17")
+ (version "0.6.18")
(source (origin
(method git-fetch)
(uri
@@ -369,7 +370,7 @@ intuitive syntax and trivial integration.")
(commit version)))
(sha256
(base32
- "136djmx4l34ff5z4fw1c866x52vp7k4f8zcnbs49whymxzhzwpw0"))
+ "0s9gnv1wq0cmpw878dmx0lnci86895hhdrwyc9x8lfbc1hr7ypnh"))
(file-name (git-file-name name version))))
(native-inputs
`(("googletest" ,googletest)
@@ -493,6 +494,36 @@ it's own version of the tool, this is a fork that aims to be more responsive
and make @code{cpplint} usable in wider contexts.")
(license license:bsd-3)))
+(define-public reproc
+ (package
+ (name "reproc")
+ (version "14.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/DaanDeMeyer/reproc")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1n71wb50qv2dmhjgw7azx5gigbrp19l2n3d41g9p05l5l0y1qg0q"))))
+ (build-system cmake-build-system)
+ (arguments
+ ;; No tests.
+ `(#:tests? #f
+ ;; Enable building of shared library.
+ #:configure-flags `("-DBUILD_SHARED_LIBS=1")))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (synopsis "Process IO library")
+ (description "reproc (Redirected Process) is a C/C++ library that
+simplifies starting, stopping and communicating with external programs. The
+main use case is executing command line applications directly from C or C++
+code and retrieving their output.")
+ (home-page "https://github.com/DaanDeMeyer/reproc")
+ (license license:expat)))
+
(define-public sobjectizer
(package
(name "sobjectizer")
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 2c202e8508..be66533b0b 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 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>
;;; Copyright © 2016, 2017, 2018, 2020 Roel Janssen <roel@gnu.org>
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -18,6 +19,7 @@
;;; Copyright © 2019 Nicolò Balzarotti <anothersms@gmail.com>
;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
;;; Copyright © 2019 Arne Babenhauserheide <arne_bab@web.de>
+;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Todor Kondić <tk.code@protonmail.com>
;;; Copyright © 2020 Danjela Lura <danielaluraa@gmail.com>
;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
@@ -25,6 +27,8 @@
;;; Copyright © 2020 Peter Lo <peterloleungyau@gmail.com>
;;; Copyright © 2020 Rafael Luque Leiva <rafael.luque@osoco.es>
;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Antoine Côté <antoine.cote@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -89,6 +93,7 @@
#:use-module (gnu packages tcl)
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
+ #:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
(define-public r-rticles
@@ -520,6 +525,35 @@ functions are simplified but can be faster or have other advantages.")
objects.")
(license license:gpl3)))
+(define-public r-mboost
+ (package
+ (name "r-mboost")
+ (version "2.9-3")
+ (source (origin
+ (method url-fetch)
+ (uri (cran-uri "mboost" version))
+ (sha256
+ (base32
+ "1qp5c43kc0939sss5w3hhn794lbi69wgfsa31sq4c8vzh35pjqmf"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-lattice" ,r-lattice)
+ ("r-matrix" ,r-matrix)
+ ("r-nnls" ,r-nnls)
+ ("r-partykit" ,r-partykit)
+ ("r-quadprog" ,r-quadprog)
+ ("r-stabs" ,r-stabs)
+ ("r-survival" ,r-survival)))
+ (home-page "https://github.com/boost-R/mboost")
+ (synopsis "Model-based boosting")
+ (description
+ "This package provides a functional gradient descent algorithm (boosting)
+for optimizing general risk functions utilizing component-wise (penalised)
+least squares estimates or regression trees as base-learners for fitting
+generalized linear, additive and interaction models to potentially
+high-dimensional data.")
+ (license license:gpl2)))
+
(define-public r-sys
(package
(name "r-sys")
@@ -1933,6 +1967,32 @@ of space-time series. The @code{pastecs} library is a PNEC-Art4 and IFREMER
initiative to bring PASSTEC 2000 functionalities to R.")
(license license:gpl2+)))
+(define-public r-partykit
+ (package
+ (name "r-partykit")
+ (version "1.2-9")
+ (source (origin
+ (method url-fetch)
+ (uri (cran-uri "partykit" version))
+ (sha256
+ (base32
+ "18nc6vvj1cy8ly2hqixg544sbg8vbpzwsr1cdlzrqfykd0pzgkvf"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-formula" ,r-formula)
+ ("r-inum" ,r-inum)
+ ("r-libcoin" ,r-libcoin)
+ ("r-mvtnorm" ,r-mvtnorm)
+ ("r-rpart" ,r-rpart)
+ ("r-survival" ,r-survival)))
+ (home-page "http://partykit.R-Forge.R-project.org/partykit")
+ (synopsis "Toolkit for recursive partytioning")
+ (description
+ "This package provides a toolkit with infrastructure for representing,
+summarizing, and visualizing tree-structured regression and classification
+models.")
+ (license license:gpl2+)))
+
(define-public r-plogr
(package
(name "r-plogr")
@@ -2128,6 +2188,31 @@ where the bound function accepts additional arguments.")
bindings that call a C++ function.")
(license license:expat)))
+(define-public r-bisquerna
+ (package
+ (name "r-bisquerna")
+ (version "1.0.4")
+ (source (origin
+ (method url-fetch)
+ (uri (cran-uri "BisqueRNA" version))
+ (sha256
+ (base32
+ "01g34n87ml7n3pck77497ddgbv3rr5p4153ac8ninpgjijlm3jw2"))))
+ (properties `((upstream-name . "BisqueRNA")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-biobase" ,r-biobase)
+ ("r-limsolve" ,r-limsolve)))
+ (home-page "https://www.biorxiv.org/content/10.1101/669911v1")
+ (synopsis "Decomposition of bulk expression with single-cell sequencing")
+ (description "This package provides tools to accurately estimate cell type
+abundances from heterogeneous bulk expression. A reference-based method
+utilizes single-cell information to generate a signature matrix and
+transformation of bulk expression for accurate regression based estimates.
+A marker-based method utilizes known cell-specific marker genes to measure
+relative abundances across samples.")
+ (license license:gpl3)))
+
(define-public r-auc
(package
(name "r-auc")
@@ -2562,6 +2647,25 @@ selection, as well as methods for retrieving coordinates, for subsetting,
print, summary, etc.")
(license license:gpl2+)))
+(define-public r-laplacesdemon
+ (package
+ (name "r-laplacesdemon")
+ (version "16.1.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "LaplacesDemon" version))
+ (sha256
+ (base32 "1nv1kx86cg8f2s8q15pzskc0lg94bb250p0fhybrx5sjqv1s2lj1"))))
+ (properties `((upstream-name . "LaplacesDemon")))
+ (build-system r-build-system)
+ (home-page "https://github.com/LaplacesDemonR/LaplacesDemon")
+ (synopsis "Complete environment for Bayesian inference")
+ (description
+ "This package provides a complete environment for Bayesian inference using
+a variety of different samplers.")
+ (license license:expat)))
+
(define-public r-rmtstat
(package
(name "r-rmtstat")
@@ -3669,6 +3773,36 @@ algorithm. The interface of @code{ucminf} is designed for easy interchange
with the package @code{optim}.")
(license license:gpl2+)))
+(define-public r-useful
+ (package
+ (name "r-useful")
+ (version "1.2.6")
+ (source (origin
+ (method url-fetch)
+ (uri (cran-uri "useful" version))
+ (sha256
+ (base32
+ "0n50v1q75k518sq23id14jphwla35q4sasahrnrnllwrachl67v1"))))
+ (properties `((upstream-name . "useful")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-assertthat" ,r-assertthat)
+ ("r-dplyr" ,r-dplyr)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-magrittr" ,r-magrittr)
+ ("r-matrix" ,r-matrix)
+ ("r-plyr" ,r-plyr)
+ ("r-purrr" ,r-purrr)
+ ("r-scales" ,r-scales)))
+ (home-page "https://github.com/jaredlander/useful")
+ (synopsis "Collection of handy, useful functions")
+ (description "This package provides a set of little functions that have been
+found useful to do little odds and ends such as plotting the results of K-means
+clustering, substituting special text characters, viewing parts of a
+@code{data.frame}, constructing formulas from text and building design and
+response matrices.")
+ (license license:bsd-3)))
+
(define-public r-ordinal
(package
(name "r-ordinal")
@@ -4615,6 +4749,30 @@ automatically.")
supports arbitrary vertex/edge/graph attributes.")
(license license:gpl2+)))
+(define-public r-stabs
+ (package
+ (name "r-stabs")
+ (version "0.6-3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "stabs" version))
+ (sha256
+ (base32
+ "17sa0sjxf6h7gx1ga1pxhv17yrz3qisaivbf5cbc3asvshhswqg9"))))
+ (build-system r-build-system)
+ (home-page "https://github.com/hofnerb/stabs")
+ (synopsis "Stability selection with error control")
+ (description
+ "This package provides resampling procedures to assess the stability of
+selected variables with additional finite sample error control for
+high-dimensional variable selection procedures such as Lasso or boosting.
+Both, standard stability selection (Meinshausen & Buhlmann, 2010) and
+complementary pairs stability selection with improved error bounds
+(Shah & Samworth, 2013) are implemented. The package can be combined with
+arbitrary user specified variable selection approaches.")
+ (license license:gpl2)))
+
(define-public r-statnet-common
(package
(name "r-statnet-common")
@@ -22507,6 +22665,39 @@ and clustering large sequence datasets using fast alignment-free k-mer
counting and recursive k-means partitioning.")
(license license:gpl3)))
+(define-public r-hardhat
+ (package
+ (name "r-hardhat")
+ (version "0.1.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "hardhat" version))
+ (sha256
+ (base32
+ "0gaj4hr4dj27jaasp7v0hzaivipplvq746ajsyz4yd1in03hfjvs"))))
+ (properties `((upstream-name . "hardhat")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-glue" ,r-glue)
+ ("r-rlang" ,r-rlang)
+ ("r-tibble" ,r-tibble)
+ ("r-vctrs" ,r-vctrs)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://github.com/tidymodels/hardhat")
+ (synopsis "Construct modeling packages")
+ (description
+ "Building modeling packages is hard. A large amount of effort generally
+goes into providing an implementation for a new method that is efficient,
+fast, and correct, but often less emphasis is put on the user interface. A
+good interface requires specialized knowledge about S3 methods and formulas,
+which the average package developer might not have. The goal of
+@code{hardhat} is to reduce the burden around building new modeling packages
+by providing functionality for preprocessing, predicting, and validating
+input.")
+ (license license:expat)))
+
(define-public r-shapforxgboost
(package
(name "r-shapforxgboost")
@@ -23153,3 +23344,1240 @@ designed as a drop-in replacement for the RANN function @code{nn2}. In
addition, objects which include the k-d tree search structure can be returned
to speed up repeated queries of the same set of target points.")
(license license:bsd-3)))
+
+(define-public r-muhaz
+ (package
+ (name "r-muhaz")
+ (version "1.2.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "muhaz" version))
+ (sha256
+ (base32
+ "08qh43zx6h3yby44q2vxphfvmfdmqxpgyp0734yn341sy9n8pkkk"))))
+ (properties `((upstream-name . "muhaz")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-survival" ,r-survival)))
+ (native-inputs
+ `(("gfortran" ,gfortran)))
+ (home-page "https://cran.r-project.org/web/packages/muhaz/")
+ (synopsis "Hazard function estimation in survival analysis")
+ (description
+ "This package produces a smooth estimate of the hazard function for
+censored data.")
+ ;; Any version of the GPL.
+ (license license:gpl3+)))
+
+(define-public r-flexsurv
+ (package
+ (name "r-flexsurv")
+ (version "1.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "flexsurv" version))
+ (sha256
+ (base32
+ "0x7p1rv51pplfyyzcg63ssb8z56mig7y0363hkr0219w3cvyq9nr"))))
+ (properties `((upstream-name . "flexsurv")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-desolve" ,r-desolve)
+ ("r-mstate" ,r-mstate)
+ ("r-muhaz" ,r-muhaz)
+ ("r-mvtnorm" ,r-mvtnorm)
+ ("r-quadprog" ,r-quadprog)
+ ("r-rcpp" ,r-rcpp)
+ ("r-survival" ,r-survival)
+ ("r-tibble" ,r-tibble)
+ ("r-tidyr" ,r-tidyr)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://github.com/chjackson/flexsurv-dev")
+ (synopsis "Flexible parametric survival and multi-state models")
+ (description
+ "This package provides flexible parametric models for time-to-event data,
+including the Royston-Parmar spline model, generalized gamma and generalized F
+distributions. Any user-defined parametric distribution can be fitted, given
+at least an R function defining the probability density or hazard. There are
+also tools for fitting and predicting from fully parametric multi-state
+models.")
+ (license license:gpl2+)))
+
+(define-public r-transphylo
+ (package
+ (name "r-transphylo")
+ (version "1.4.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "TransPhylo" version))
+ (sha256
+ (base32
+ "1506c97y8dnhd0c38rgvmg70q0l3xmmn07mjglhnw7hi5n5y9mv9"))))
+ (properties `((upstream-name . "TransPhylo")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-ape" ,r-ape)
+ ("r-rcpp" ,r-rcpp)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://cran.r-project.org/web/packages/TransPhylo/")
+ (synopsis "Inference of transmission tree from a dated phylogeny")
+ (description
+ "This is a package to infer transmission trees from a dated phylogeny.
+It includes methods to simulate and analyze outbreaks. The methodology is
+described in @url{https://doi.org/10.1093/molbev/msu121,Didelot et al. (2014)}
+and @url{https://doi.org/10.1093/molbev/msw275,Didelot et al. (2017)}.")
+ (license license:gpl2+)))
+
+(define-public r-km-ci
+ (package
+ (name "r-km-ci")
+ (version "0.5-2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "km.ci" version))
+ (sha256
+ (base32
+ "1l6kw8jppaa1802yc5pbfwwgac56nhwc9p076ivylhms4w7cdf8v"))))
+ (properties `((upstream-name . "km.ci")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-survival" ,r-survival)))
+ (home-page "https://cran.r-project.org/web/packages/km.ci/")
+ (synopsis "Confidence intervals for the Kaplan-Meier estimator")
+ (description
+ "This package computes various @dfn{confidence intervals} (CI) for the
+Kaplan-Meier estimator, namely: Petos CI, Rothman CI, CIs based on Greenwoods
+variance, Thomas and Grunkemeier CI and the simultaneous confidence bands by
+Nair and Hall and Wellner.")
+ (license license:gpl2+)))
+
+(define-public r-kmsurv
+ (package
+ (name "r-kmsurv")
+ (version "0.1-5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "KMsurv" version))
+ (sha256
+ (base32
+ "0hi5vvk584rl70gbrr75w9hc775xmbxnaig0dd6hlpi4071pnqjm"))))
+ (properties `((upstream-name . "KMsurv")))
+ (build-system r-build-system)
+ (home-page "https://cran.r-project.org/web/packages/KMsurv/")
+ (synopsis "Data sets from Klein and Moeschberger (1997), Survival Analysis")
+ (description
+ "This package provides data sets and functions for Klein and Moeschberger
+(1997), \"Survival Analysis, Techniques for Censored and Truncated Data\",
+Springer.")
+ (license license:gpl3+)))
+
+(define-public r-survmisc
+ (package
+ (name "r-survmisc")
+ (version "0.5.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "survMisc" version))
+ (sha256
+ (base32
+ "00nvvl8gz4477ab24rd0xvfksm8msv8h021b9ld5c9cizc41n2bm"))))
+ (properties `((upstream-name . "survMisc")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-data-table" ,r-data-table)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-gridextra" ,r-gridextra)
+ ("r-km-ci" ,r-km-ci)
+ ("r-kmsurv" ,r-kmsurv)
+ ("r-knitr" ,r-knitr)
+ ("r-survival" ,r-survival)
+ ("r-xtable" ,r-xtable)
+ ("r-zoo" ,r-zoo)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://cran.r-project.org/web/packages/survMisc/")
+ (synopsis "Miscellaneous functions for survival data")
+ (description
+ "This package provides a collection of functions to help in the analysis
+of right-censored survival data. These extend the methods available in
+the @code{survival} package.")
+ (license license:gpl2)))
+
+(define-public r-exactranktests
+ (package
+ (name "r-exactranktests")
+ (version "0.8-31")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "exactRankTests" version))
+ (sha256
+ (base32
+ "1154dkcid3njhamdp87qs9bnx7l8bdqkcjsds9q9f2xmizs9x8gw"))))
+ (properties
+ `((upstream-name . "exactRankTests")))
+ (build-system r-build-system)
+ (home-page "https://cran.r-project.org/web/packages/exactRankTests/")
+ (synopsis "Exact distributions for rank and permutation tests")
+ (description
+ "This package computes exact conditional p-values and quantiles using an
+implementation of the Shift-Algorithm by Streitberg & Roehmel.")
+ (license license:gpl2+)))
+
+(define-public r-maxstat
+ (package
+ (name "r-maxstat")
+ (version "0.7-25")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "maxstat" version))
+ (sha256
+ (base32
+ "114z1rwxwvk05ijjhdppzm148n1h192fp0w12ky10zkrhf6kphbg"))))
+ (properties `((upstream-name . "maxstat")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-exactranktests" ,r-exactranktests)
+ ("r-mvtnorm" ,r-mvtnorm)))
+ (home-page "https://cran.r-project.org/web/packages/maxstat/")
+ (synopsis "Maximally selected rank statistics")
+ (description
+ "This package provides maximally selected rank statistics with several
+p-value approximations.")
+ (license license:gpl2+)))
+
+(define-public r-survminer
+ (package
+ (name "r-survminer")
+ (version "0.4.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "survminer" version))
+ (sha256
+ (base32
+ "1niysd89mxb2a6ncvzm1s6xgfvq3psba65af0whh2p56r2hwrwff"))))
+ (properties `((upstream-name . "survminer")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-broom" ,r-broom)
+ ("r-dplyr" ,r-dplyr)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-ggpubr" ,r-ggpubr)
+ ("r-gridextra" ,r-gridextra)
+ ("r-magrittr" ,r-magrittr)
+ ("r-maxstat" ,r-maxstat)
+ ("r-purrr" ,r-purrr)
+ ("r-rlang" ,r-rlang)
+ ("r-scales" ,r-scales)
+ ("r-survival" ,r-survival)
+ ("r-survmisc" ,r-survmisc)
+ ("r-tibble" ,r-tibble)
+ ("r-tidyr" ,r-tidyr)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://rpkgs.datanovia.com/survminer/index.html")
+ (synopsis "Drawing survival curves using ggplot2")
+ (description
+ "This package contains the function @code{ggsurvplot()} for easily
+drawing beautiful and 'ready-to-publish' survival curves with the 'number at
+risk' table and 'censoring count plot'. Other functions are also available to
+plot adjusted curves for Cox model and to visually examine Cox model
+assumptions.")
+ (license license:gpl2)))
+
+(define-public r-forge
+ (package
+ (name "r-forge")
+ (version "0.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "forge" version))
+ (sha256
+ (base32
+ "0pjfzsc35agkh0zfw2czwajkbsyn6liys5irl5bhz5r1vim3jmwa"))))
+ (properties `((upstream-name . "forge")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-magrittr" ,r-magrittr)
+ ("r-rlang" ,r-rlang)))
+ (home-page "https://cran.r-project.org/web/packages/forge/")
+ (synopsis "Cast values into shape")
+ (description
+ "This package provides helper functions with a consistent interface to
+coerce and verify the types and shapes of values for input checking.")
+ (license license:asl2.0)))
+
+(define-public r-config
+ (package
+ (name "r-config")
+ (version "0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "config" version))
+ (sha256
+ (base32
+ "0l67nfpm42ssnk0bl4jmq6bibz8hawgfgh2s14s5c8mnimv6mpjs"))))
+ (properties `((upstream-name . "config")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-yaml" ,r-yaml)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://github.com/rstudio/config")
+ (synopsis "Manage environment specific configuration values")
+ (description
+ "This package lets you manage configuration values across multiple
+environments (e.g. development, test, production). It reads values using a
+function that determines the current environment and returns the appropriate
+value.")
+ (license license:gpl3)))
+
+(define-public r-adaptivesparsity
+ (package
+ (name "r-adaptivesparsity")
+ (version "1.6")
+ (source (origin
+ (method url-fetch)
+ (uri (cran-uri "AdaptiveSparsity" version))
+ (sha256
+ (base32
+ "0imr5m8mll9j6n4icsv6z9rl5kbnwsp9wvzrg7n90nnmcxq2cz91"))))
+ (properties
+ `((upstream-name . "AdaptiveSparsity")))
+ (build-system r-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'link-against-armadillo
+ (lambda _
+ (substitute* "src/Makevars"
+ (("PKG_LIBS=" prefix)
+ (string-append prefix "-larmadillo")))
+ #t)))))
+ (propagated-inputs
+ `(("r-mass" ,r-mass)
+ ("r-matrix" ,r-matrix)
+ ("r-rcpp" ,r-rcpp)
+ ("r-rcpparmadillo" ,r-rcpparmadillo)))
+ (inputs
+ `(("armadillo" ,armadillo)))
+ (home-page "https://cran.r-project.org/web/packages/AdaptiveSparsity")
+ (synopsis "Adaptive sparsity models")
+ (description
+ "This package implements the Figueiredo machine learning algorithm for
+adaptive sparsity and the Wong algorithm for adaptively sparse Gaussian
+geometric models.")
+ (license license:lgpl3+)))
+
+(define-public r-diffusionmap
+ (package
+ (name "r-diffusionmap")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "diffusionMap" version))
+ (sha256
+ (base32
+ "1rvk7069brlm1s9kqj4c31mwwr3mw4hmhay95cjjjfmw5xclff2j"))))
+ (properties `((upstream-name . "diffusionMap")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-igraph" ,r-igraph)
+ ("r-matrix" ,r-matrix)
+ ("r-scatterplot3d" ,r-scatterplot3d)))
+ (home-page "https://www.r-project.org")
+ (synopsis "Diffusion map")
+ (description "This package implements the diffusion map method of data
+parametrization, including creation and visualization of diffusion maps,
+clustering with diffusion K-means and regression using the adaptive regression
+model.")
+ (license license:gpl2)))
+
+(define-public r-igraph
+ (package
+ (name "r-igraph")
+ (version "1.2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "igraph" version))
+ (sha256
+ (base32
+ "126z1ygbmi3g7hk97snf22rnx680dyi30idssm5zacba5rdngp8c"))))
+ (build-system r-build-system)
+ (native-inputs
+ `(("gfortran" ,gfortran)))
+ (inputs
+ `(("gmp" ,gmp)
+ ("glpk" ,glpk)
+ ("libxml2" ,libxml2)
+ ("zlib" ,zlib)))
+ (propagated-inputs
+ `(("r-magrittr" ,r-magrittr)
+ ("r-matrix" ,r-matrix)
+ ("r-pkgconfig" ,r-pkgconfig)))
+ (home-page "https://igraph.org")
+ (synopsis "Network analysis and visualization")
+ (description
+ "This package provides routines for simple graphs and network analysis.
+It can handle large graphs very well and provides functions for generating
+random and regular graphs, graph visualization, centrality methods and much
+more.")
+ (license license:gpl2+)))
+
+(define-public r-workflows
+ (package
+ (name "r-workflows")
+ (version "0.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "workflows" version))
+ (sha256
+ (base32
+ "1d5njd1xdl8kghlbar4acgl9hxq83p6k7yks592cvakmcz7f853m"))))
+ (properties `((upstream-name . "workflows")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-cli" ,r-cli)
+ ("r-ellipsis" ,r-ellipsis)
+ ("r-generics" ,r-generics)
+ ("r-glue" ,r-glue)
+ ("r-hardhat" ,r-hardhat)
+ ("r-parsnip" ,r-parsnip)
+ ("r-rlang" ,r-rlang)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://github.com/tidymodels/workflows")
+ (synopsis "Modeling workflows")
+ (description
+ "A workflow is an object that can bundle together your pre-processing,
+modeling, and post-processing requests. For example, if you have a
+@code{recipe} and @code{parsnip} model, these can be combined into a
+workflow. The advantages are:
+
+@enumerate
+@item You don’t have to keep track of separate objects in your workspace.
+@item The recipe prepping and model fitting can be executed using a single
+ call to @code{fit()}.
+@item If you have custom tuning parameter settings, these can be defined using
+ a simpler interface when combined with @code{tune}.
+@item In the future, workflows will be able to add post-processing operations,
+ such as modifying the probability cutoff for two-class models.
+@end enumerate
+")
+ (license license:expat)))
+
+(define-public r-gpfit
+ (package
+ (name "r-gpfit")
+ (version "1.0-8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "GPfit" version))
+ (sha256
+ (base32
+ "05mpiyi2vxv0wqp422n1mnxa8msc4daq40cwpnpngbcwqhlgqkby"))))
+ (properties `((upstream-name . "GPfit")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-lattice" ,r-lattice)
+ ("r-lhs" ,r-lhs)))
+ (home-page "https://cran.r-project.org/web/packages/GPfit/")
+ (synopsis "Gaussian Processes modeling")
+ (description
+ "This package provides a computationally stable approach of fitting a
+@dfn{Gaussian Process} (GP) model to a deterministic simulator.")
+ (license license:gpl2)))
+
+(define-public r-yardstick
+ (package
+ (name "r-yardstick")
+ (version "0.0.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "yardstick" version))
+ (sha256
+ (base32
+ "1yrvlhn4gxyn9f20z5yv3xam0j0a8z362jwa32r33r0g0jk5z2fq"))))
+ (properties `((upstream-name . "yardstick")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-dplyr" ,r-dplyr)
+ ("r-generics" ,r-generics)
+ ("r-proc" ,r-proc)
+ ("r-rlang" ,r-rlang)
+ ("r-tidyselect" ,r-tidyselect)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://github.com/tidymodels/yardstick")
+ (synopsis "Tidy characterizations of model performance")
+ (description
+ "This package provides tidy tools for quantifying how well a model fits
+to a data set such as confusion matrices, class probability curve summaries,
+and regression metrics (e.g., RMSE).")
+ (license license:gpl2)))
+
+(define-public r-rsample
+ (package
+ (name "r-rsample")
+ (version "0.0.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "rsample" version))
+ (sha256
+ (base32
+ "0s6hgq0rcv3ianyidq3n9z34y5ww51gaggqkwmwns9yyxmwfjcm8"))))
+ (properties `((upstream-name . "rsample")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-dplyr" ,r-dplyr)
+ ("r-furrr" ,r-furrr)
+ ("r-generics" ,r-generics)
+ ("r-purrr" ,r-purrr)
+ ("r-rlang" ,r-rlang)
+ ("r-tibble" ,r-tibble)
+ ("r-tidyr" ,r-tidyr)
+ ("r-tidyselect" ,r-tidyselect)
+ ("r-vctrs" ,r-vctrs)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://rsample.tidymodels.org")
+ (synopsis "General resampling infrastructure")
+ (description
+ "This package provides classes and functions to create and summarize
+different types of resampling objects (e.g. bootstrap, cross-validation).")
+ (license license:gpl2)))
+
+(define-public r-dicedesign
+ (package
+ (name "r-dicedesign")
+ (version "1.8-1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "DiceDesign" version))
+ (sha256
+ (base32
+ "11s1m543kxd6gv4amh8z6pph1n67sj9sfwm6hjy83wfs65syf5vp"))))
+ (properties `((upstream-name . "DiceDesign")))
+ (build-system r-build-system)
+ (home-page "http://dice.emse.fr/")
+ (synopsis "Designs of computer experiments")
+ (description
+ "This package provides tools to create some specific @code{Space-Filling
+Design} (SFD) and to test their quality.")
+ (license license:gpl3)))
+
+(define-public r-dials
+ (package
+ (name "r-dials")
+ (version "0.0.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "dials" version))
+ (sha256
+ (base32
+ "0jxmlcy20y57chflx91fqz6c4pbdckzr7jirq4s72vp723avrr4p"))))
+ (properties `((upstream-name . "dials")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-dicedesign" ,r-dicedesign)
+ ("r-dplyr" ,r-dplyr)
+ ("r-glue" ,r-glue)
+ ("r-purrr" ,r-purrr)
+ ("r-rlang" ,r-rlang)
+ ("r-scales" ,r-scales)
+ ("r-tibble" ,r-tibble)
+ ("r-vctrs" ,r-vctrs)
+ ("r-withr" ,r-withr)))
+ (native-inputs `(("r-knitr" ,r-knitr)))
+ (home-page "https://dials.tidymodels.org/")
+ (synopsis "Tools for creating tuning parameter values")
+ (description
+ "Many models contain tuning parameters (i.e. parameters that cannot be
+directly estimated from the data). These tools can be used to define objects
+for creating, simulating, or validating values for such parameters.")
+ (license license:gpl2)))
+
+(define-public r-tune
+ (package
+ (name "r-tune")
+ (version "0.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "tune" version))
+ (sha256
+ (base32
+ "0293xkmv1nyvm72wxznnlm3qpf6475xzl2sf52mnrjxxr7i447p1"))))
+ (properties `((upstream-name . "tune")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-cli" ,r-cli)
+ ("r-crayon" ,r-crayon)
+ ("r-dials" ,r-dials)
+ ("r-dplyr" ,r-dplyr)
+ ("r-foreach" ,r-foreach)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-glue" ,r-glue)
+ ("r-gpfit" ,r-gpfit)
+ ("r-hardhat" ,r-hardhat)
+ ("r-lifecycle" ,r-lifecycle)
+ ("r-parsnip" ,r-parsnip)
+ ("r-purrr" ,r-purrr)
+ ("r-recipes" ,r-recipes)
+ ("r-rlang" ,r-rlang)
+ ("r-rsample" ,r-rsample)
+ ("r-tibble" ,r-tibble)
+ ("r-tidyr" ,r-tidyr)
+ ("r-vctrs" ,r-vctrs)
+ ("r-workflows" ,r-workflows)
+ ("r-yardstick" ,r-yardstick)))
+ (home-page "https://github.com/tidymodels/tune")
+ (synopsis "Tidy tuning tools")
+ (description
+ "The ability to tune models is important. @code{tune} contains functions
+and classes to be used in conjunction with other @code{tidymodels} packages
+for finding reasonable values of hyper-parameters in models, pre-processing
+methods, and post-processing steps.")
+ (license license:expat)))
+
+(define-public r-tidyposterior
+ (package
+ (name "r-tidyposterior")
+ (version "0.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "tidyposterior" version))
+ (sha256
+ (base32
+ "0wsv800w056ziqbnwal7ncmdy4li8cn5yrdx07w35b7j8kl4mwhg"))))
+ (properties `((upstream-name . "tidyposterior")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-dplyr" ,r-dplyr)
+ ("r-generics" ,r-generics)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-lifecycle" ,r-lifecycle)
+ ("r-purrr" ,r-purrr)
+ ("r-rlang" ,r-rlang)
+ ("r-rsample" ,r-rsample)
+ ("r-rstanarm" ,r-rstanarm)
+ ("r-tibble" ,r-tibble)
+ ("r-tidyr" ,r-tidyr)
+ ("r-vctrs" ,r-vctrs)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://tidyposterior.tidymodels.org")
+ (synopsis "Bayesian analysis to compare models using resampling statistics")
+ (description
+ "This package can be used to conduct post hoc analyses of resampling
+results generated by models. For example, if two models are evaluated with
+the @dfn{root mean squared error} (RMSE) using 10-fold cross-validation, there
+are 10 paired statistics. These can be used to make comparisons between
+models without involving a test set.")
+ (license license:gpl2)))
+
+(define-public r-tidypredict
+ (package
+ (name "r-tidypredict")
+ (version "0.4.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "tidypredict" version))
+ (sha256
+ (base32
+ "1fx1nr8fry3nwy2391g26zkqakdf8f3j7zyrihbc0qhscvbdskiy"))))
+ (properties `((upstream-name . "tidypredict")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-dplyr" ,r-dplyr)
+ ("r-generics" ,r-generics)
+ ("r-knitr" ,r-knitr)
+ ("r-purrr" ,r-purrr)
+ ("r-rlang" ,r-rlang)
+ ("r-tibble" ,r-tibble)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://tidypredict.tidymodels.org")
+ (synopsis "Run predictions inside the database")
+ (description
+ "This package parses a fitted R model object, and returns a formula in
+Tidy Eval code that calculates the predictions. It works with several
+database backends because it leverages @code{dplyr} and @code{dbplyr} for the
+final SQL translation of the algorithm. It currently supports @code{lm()},
+@code{glm()}, @code{randomForest()}, @code{ranger()}, @code{earth()},
+@code{xgb.Booster.complete()}, @code{cubist()}, and @code{ctree()} models.")
+ (license license:gpl3)))
+
+(define-public r-janeaustenr
+ (package
+ (name "r-janeaustenr")
+ (version "0.1.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "janeaustenr" version))
+ (sha256
+ (base32
+ "1wyn4qc28a3sval8shmyi2d7s4nl3jh96s8pzq871brxcmrncbwr"))))
+ (properties `((upstream-name . "janeaustenr")))
+ (build-system r-build-system)
+ (home-page "https://github.com/juliasilge/janeaustenr")
+ (synopsis "Jane Austen's complete novels")
+ (description
+ "This package provides the full texts for Jane Austen's six completed
+novels, ready for text analysis. These novels are \"Sense and Sensibility\",
+\"Pride and Prejudice\", \"Mansfield Park\", \"Emma\", \"Northanger Abbey\",
+and \"Persuasion\".")
+ (license license:expat)))
+
+(define-public r-tokenizers
+ (package
+ (name "r-tokenizers")
+ (version "0.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "tokenizers" version))
+ (sha256
+ (base32
+ "006xf1vdrmp9skhpss9ldhmk4cwqk512cjp1pxm2gxfybpf7qq98"))))
+ (properties `((upstream-name . "tokenizers")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-rcpp" ,r-rcpp)
+ ("r-snowballc" ,r-snowballc)
+ ("r-stringi" ,r-stringi)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://lincolnmullen.com/software/tokenizers/")
+ (synopsis "Fast, consistent tokenization of natural language text")
+ (description
+ "This is a package for converting natural language text into tokens.
+It includes tokenizers for shingled n-grams, skip n-grams, words, word stems,
+sentences, paragraphs, characters, shingled characters, lines, tweets, Penn
+Treebank, regular expressions, as well as functions for counting characters,
+words, and sentences, and a function for splitting longer texts into separate
+documents, each with the same number of words. The tokenizers have a
+consistent interface, and the package is built on the @code{stringi} and
+@code{Rcpp} packages for fast yet correct tokenization in UTF-8 encoding.")
+ (license license:expat)))
+
+(define-public r-hunspell
+ (package
+ (name "r-hunspell")
+ (version "3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "hunspell" version))
+ (sha256
+ (base32
+ "0mwqw5p0ph083plm2hr2hqr50bjg2dw862dpsfm4l2fgyy3rryq1"))))
+ (properties `((upstream-name . "hunspell")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-digest" ,r-digest)
+ ("r-rcpp" ,r-rcpp)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://github.com/ropensci/hunspell#readme")
+ (synopsis "High-performance stemmer, tokenizer, and spell checker")
+ (description
+ "This package provides a low-level spell checker and morphological
+analyzer based on the famous @code{hunspell} library. The package can analyze
+or check individual words as well as parse text, LaTeX, HTML or XML documents.
+For a more user-friendly interface use the @code{spelling} package which
+builds on this package to automate checking of files, documentation and
+vignettes in all common formats.")
+ ;; The hunspell library itself is available under one of GPL2, LGPL2.1, or
+ ;; MPL; in addition to these licenses the rest of the R wrapper is also
+ ;; available under the Expat license.
+ (license (list license:gpl2
+ license:lgpl2.1
+ license:mpl1.1
+ license:expat))))
+
+(define-public r-tidytext
+ (package
+ (name "r-tidytext")
+ (version "0.2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "tidytext" version))
+ (sha256
+ (base32
+ "0kwbpffdnqrb6hgrrmrfnx890imbzvp5bs6sj1k72if28qijarm5"))))
+ (properties `((upstream-name . "tidytext")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-dplyr" ,r-dplyr)
+ ("r-generics" ,r-generics)
+ ("r-hunspell" ,r-hunspell)
+ ("r-janeaustenr" ,r-janeaustenr)
+ ("r-matrix" ,r-matrix)
+ ("r-purrr" ,r-purrr)
+ ("r-rlang" ,r-rlang)
+ ("r-stringr" ,r-stringr)
+ ("r-tibble" ,r-tibble)
+ ("r-tokenizers" ,r-tokenizers)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://github.com/juliasilge/tidytext")
+ (synopsis "Text mining using dplyr, ggplot2, and other Tidy tools")
+ (description
+ "This is a package for text mining for word processing and sentiment
+analysis using @code{dplyr}, @code{ggplot2}, and other Tidy tools.")
+ (license license:expat)))
+
+(define-public r-parsnip
+ (package
+ (name "r-parsnip")
+ (version "0.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "parsnip" version))
+ (sha256
+ (base32
+ "12121qj1800i7g3km5kqzlb7hms55crmp6il575c2i475h5qx8d3"))))
+ (properties `((upstream-name . "parsnip")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-dplyr" ,r-dplyr)
+ ("r-generics" ,r-generics)
+ ("r-globals" ,r-globals)
+ ("r-glue" ,r-glue)
+ ("r-magrittr" ,r-magrittr)
+ ("r-prettyunits" ,r-prettyunits)
+ ("r-purrr" ,r-purrr)
+ ("r-rlang" ,r-rlang)
+ ("r-tibble" ,r-tibble)
+ ("r-tidyr" ,r-tidyr)
+ ("r-vctrs" ,r-vctrs)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://parsnip.tidymodels.org")
+ (synopsis "Common API to modeling and analysis functions")
+ (description
+ "This package provides a common interface to allow users to specify a
+model without having to remember the different argument names across different
+functions or computational engines (e.g. R, Spark, Stan, etc).")
+ (license license:gpl2)))
+
+(define-public r-infer
+ (package
+ (name "r-infer")
+ (version "0.5.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "infer" version))
+ (sha256
+ (base32
+ "1q0lnxnv8krv4n9z80sh4b442s89rvnbph5bddy34z83bkncwv2g"))))
+ (properties `((upstream-name . "infer")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-dplyr" ,r-dplyr)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-glue" ,r-glue)
+ ("r-magrittr" ,r-magrittr)
+ ("r-purrr" ,r-purrr)
+ ("r-rlang" ,r-rlang)
+ ("r-tibble" ,r-tibble)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page "https://github.com/tidymodels/infer")
+ (synopsis "Tidy statistical inference")
+ (description
+ "The objective of this package is to perform inference using an
+expressive statistical grammar that coheres with the Tidy design framework.")
+ (license license:cc0)))
+
+(define-public r-modeldata
+ (package
+ (name "r-modeldata")
+ (version "0.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "modeldata" version))
+ (sha256
+ (base32
+ "13q6hhbwqbwnjvg8bz6iwwfx96p1saqq3r34cjrbnpgzmr1nn11l"))))
+ (properties `((upstream-name . "modeldata")))
+ (build-system r-build-system)
+ (home-page "https://modeldata.tidymodels.org")
+ (synopsis "Data sets useful for modeling packages")
+ (description
+ "This package provides data sets used for demonstrating or testing
+model-related packages.")
+ (license license:expat)))
+
+(define-public r-tidymodels
+ (package
+ (name "r-tidymodels")
+ (version "0.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "tidymodels" version))
+ (sha256
+ (base32
+ "0w2xnr642klmqlflkw6rkvqcrgs01i8f34nk9wdax3fsl1yx2wi4"))))
+ (properties `((upstream-name . "tidymodels")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-broom" ,r-broom)
+ ("r-cli" ,r-cli)
+ ("r-crayon" ,r-crayon)
+ ("r-dials" ,r-dials)
+ ("r-dplyr" ,r-dplyr)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-infer" ,r-infer)
+ ("r-magrittr" ,r-magrittr)
+ ("r-modeldata" ,r-modeldata)
+ ("r-parsnip" ,r-parsnip)
+ ("r-purrr" ,r-purrr)
+ ("r-recipes" ,r-recipes)
+ ("r-rlang" ,r-rlang)
+ ("r-rsample" ,r-rsample)
+ ("r-rstudioapi" ,r-rstudioapi)
+ ("r-tibble" ,r-tibble)
+ ("r-tidyr" ,r-tidyr)
+ ("r-tune" ,r-tune)
+ ("r-workflows" ,r-workflows)
+ ("r-yardstick" ,r-yardstick)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)
+ ("r-rmarkdown" ,r-rmarkdown)
+ ("pandoc" ,pandoc)
+ ("pandoc-citeproc" ,pandoc-citeproc))) ; for vignettes
+ (home-page "https://github.com/tidymodels/tidymodels")
+ (synopsis "Tidy collection for modeling and statistical analysis")
+ (description
+ "The tidy modeling \"verse\" is a collection of packages for modeling and
+statistical analysis that share the underlying design philosophy, grammar, and
+data structures of the tidyverse.")
+ (license license:gpl3)))
+
+(define-public r-mlecens
+ (package
+ (name "r-mlecens")
+ (version "0.1-4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "MLEcens" version))
+ (sha256
+ (base32
+ "0zlmrcjraypscgs2v0w4s4hm7qccsmaz4hjsgqpn0058vx622945"))))
+ (properties `((upstream-name . "MLEcens")))
+ (build-system r-build-system)
+ (home-page "http://stat.ethz.ch/~maathuis/")
+ (synopsis "Computation of the MLE for bivariate (interval) censored data")
+ (description
+ "This package contains functions to compute the nonparametric
+@dfn{maximum likelihood estimator} (MLE) for the bivariate distribution of
+@code{(X,Y)}, when realizations of @code{(X,Y)} cannot be observed directly.
+To be more precise, we consider the situation where we observe a set of
+rectangles that are known to contain the unobservable realizations of (X,Y).
+We compute the MLE based on such a set of rectangles. The methods can also be
+used for univariate censored data (see data set @code{cosmesis}), and for
+censored data with competing risks (see data set @code{menopause}). The
+package also provides functions to visualize the observed data and the MLE.")
+ (license license:gpl2+)))
+
+(define-public r-perm
+ (package
+ (name "r-perm")
+ (version "1.0-0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "perm" version))
+ (sha256
+ (base32
+ "0075awl66ynv10vypg63fcxk33qzvxddrp8mi4w08ysvimcyxijk"))))
+ (properties `((upstream-name . "perm")))
+ (build-system r-build-system)
+ (home-page "https://cran.r-project.org/web/packages/perm/")
+ (synopsis "Exact or asymptotic permutation tests")
+ (description
+ "This package provides several methods for performing permutation tests.
+It has three main functions, to perform linear permutation tests. These tests
+are tests where the test statistic is the sum of the product of a
+covariate (usually group indicator) and the scores.")
+ ;; Any version of the GPL
+ (license license:gpl2+)))
+
+(define-public r-qtl
+ (package
+ (name "r-qtl")
+ (version "1.46-2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "qtl" version))
+ (sha256
+ (base32
+ "0rbwcnvyy96gq1dsgpxx03pv423qya26h6ws5y0blj3blfdmj83a"))))
+ (build-system r-build-system)
+ (home-page "https://rqtl.org/")
+ (synopsis "R package for analyzing QTL experiments in genetics")
+ (description "R/qtl is an extension library for the R statistics system.
+It is used to analyze experimental crosses for identifying genes contributing
+to variation in quantitative traits (so-called quantitative trait loci, QTLs).
+
+Using a hidden Markov model, R/qtl estimates genetic maps, to identify
+genotyping errors, and to perform single-QTL and two-QTL, two-dimensional
+genome scans.")
+ (license license:gpl3)))
+
+(define-public r-qtl2
+ (package
+ (name "r-qtl2")
+ (version "0.22-11")
+ (source (origin
+ (method url-fetch)
+ (uri (cran-uri "qtl2" version))
+ (sha256
+ (base32 "0dfdzjylqzc92dcszawc8cyinxccjm3p36v9vcq9ma818pqcanmr"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-data-table" ,r-data-table)
+ ("r-jsonlite" ,r-jsonlite)
+ ("r-rcpp" ,r-rcpp)
+ ("r-rcppeigen" ,r-rcppeigen)
+ ("r-rsqlite" ,r-rsqlite)
+ ("r-yaml" ,r-yaml)))
+ (home-page "https://kbroman.org/qtl2/")
+ (synopsis "Quantitative Trait Locus Mapping in Experimental Crosses")
+ (description
+ "This package provides a set of tools to perform @dfn{Quantitative Trait
+Locus} (QTL) analysis in experimental crosses. It is a reimplementation of the
+@code{R/qtl} package to better handle high-dimensional data and complex cross
+designs. Broman et al. (2018) <doi:10.1534/genetics.118.301595>.")
+ (license license:gpl3)))
+
+(define-public r-seqminer
+ (package
+ (name "r-seqminer")
+ (version "8.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "seqminer" version))
+ (sha256
+ (base32
+ "00jzj8mwb0zaiwlifd41b26mrq9mzigj18nc29dydi0r42hxg16i"))))
+ (build-system r-build-system)
+ (inputs
+ `(("zlib" ,zlib)))
+ (home-page "http://seqminer.genomic.codes")
+ (synopsis "Read nucleotide sequence data (VCF, BCF, and METAL formats)")
+ (description
+ "This package provides tools to integrate nucleotide sequencing
+data (variant call format, e.g. VCF or BCF) or meta-analysis results in R.")
+ ;; Any version of the GPL is acceptable
+ (license (list license:gpl2+ license:gpl3+))))
+
+(define-public r-maldiquant
+ (package
+ (name "r-maldiquant")
+ (version "1.19.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "MALDIquant" version))
+ (sha256
+ (base32
+ "0b7kdz3x4sdq413h1q09l1qhcvdnnwv6fqsqwllks1cd3xy34c57"))))
+ (properties `((upstream-name . "MALDIquant")))
+ (build-system r-build-system)
+ (home-page "https://cran.r-project.org/web/packages/MALDIquant")
+ (synopsis "Quantitative analysis of mass spectrometry data")
+ (description
+ "This package provides a complete analysis pipeline for matrix-assisted
+laser desorption/ionization-time-of-flight (MALDI-TOF) and other
+two-dimensional mass spectrometry data. In addition to commonly used plotting
+and processing methods it includes distinctive features, namely baseline
+subtraction methods such as morphological filters (TopHat) or the
+statistics-sensitive non-linear iterative peak-clipping algorithm (SNIP), peak
+alignment using warping functions, handling of replicated measurements as well
+as allowing spectra with different resolutions.")
+ (license license:gpl3+)))
+
+(define-public r-seurat
+ (package
+ (name "r-seurat")
+ (version "3.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (cran-uri "Seurat" version))
+ (sha256
+ (base32
+ "1vj3dlsqakgnn4x1jz9fkl2cy0jzc5s65h1c20fnamr7lk45pnf2"))))
+ (properties `((upstream-name . "Seurat")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-ape" ,r-ape)
+ ("r-cluster" ,r-cluster)
+ ("r-cowplot" ,r-cowplot)
+ ("r-fitdistrplus" ,r-fitdistrplus)
+ ("r-future" ,r-future)
+ ("r-future-apply" ,r-future-apply)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-ggrepel" ,r-ggrepel)
+ ("r-ggridges" ,r-ggridges)
+ ("r-httr" ,r-httr)
+ ("r-ica" ,r-ica)
+ ("r-igraph" ,r-igraph)
+ ("r-irlba" ,r-irlba)
+ ("r-jsonlite" ,r-jsonlite)
+ ("r-kernsmooth" ,r-kernsmooth)
+ ("r-leiden" ,r-leiden)
+ ("r-lmtest" ,r-lmtest)
+ ("r-mass" ,r-mass)
+ ("r-matrix" ,r-matrix)
+ ("r-miniui" ,r-miniui)
+ ("r-patchwork" ,r-patchwork)
+ ("r-pbapply" ,r-pbapply)
+ ("r-plotly" ,r-plotly)
+ ("r-png" ,r-png)
+ ("r-rann" ,r-rann)
+ ("r-rcolorbrewer" ,r-rcolorbrewer)
+ ("r-rcpp" ,r-rcpp)
+ ("r-rcppannoy" ,r-rcppannoy)
+ ("r-rcppeigen" ,r-rcppeigen)
+ ("r-rcppprogress" ,r-rcppprogress)
+ ("r-reticulate" ,r-reticulate)
+ ("r-rlang" ,r-rlang)
+ ("r-rocr" ,r-rocr)
+ ("r-rsvd" ,r-rsvd)
+ ("r-rtsne" ,r-rtsne)
+ ("r-scales" ,r-scales)
+ ("r-sctransform" ,r-sctransform)
+ ("r-shiny" ,r-shiny)
+ ("r-spatstat" ,r-spatstat)
+ ("r-tibble" ,r-tibble)
+ ("r-uwot" ,r-uwot)))
+ (home-page "http://www.satijalab.org/seurat")
+ (synopsis "Seurat is an R toolkit for single cell genomics")
+ (description
+ "This package is an R package designed for QC, analysis, and
+exploration of single cell RNA-seq data. It easily enables widely-used
+analytical techniques, including the identification of highly variable genes,
+dimensionality reduction; PCA, ICA, t-SNE, standard unsupervised clustering
+algorithms; density clustering, hierarchical clustering, k-means, and the
+discovery of differentially expressed genes and markers.")
+ (license license:gpl3)))
+
+(define-public r-phangorn
+ (package
+ (name "r-phangorn")
+ (version "2.5.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "phangorn" version))
+ (sha256
+ (base32
+ "0ihkaykqjmf80d8wrk3saphxvnv58zma6pd13633bd3cwanc33f5"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-ape" ,r-ape)
+ ("r-fastmatch" ,r-fastmatch)
+ ("r-igraph" ,r-igraph)
+ ("r-magrittr" ,r-magrittr)
+ ("r-matrix" ,r-matrix)
+ ("r-quadprog" ,r-quadprog)
+ ("r-rcpp" ,r-rcpp)))
+ (home-page "https://github.com/KlausVigo/phangorn")
+ (synopsis "Phylogenetic analysis in R")
+ (description
+ "Phangorn is a package for phylogenetic analysis in R. It supports
+estimation of phylogenetic trees and networks using Maximum Likelihood,
+Maximum Parsimony, distance methods and Hadamard conjugation.")
+ (license license:gpl2+)))
+
+(define-public r-diversitree
+ (package
+ (name "r-diversitree")
+ (version "0.9-13")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "diversitree" version))
+ (sha256
+ (base32
+ "00vi4klywi35hd170ksjv3xja3hqqbkcidcnrrlpgv4179k0azix"))))
+ (build-system r-build-system)
+ (native-inputs
+ `(("gfortran" ,gfortran)))
+ (inputs `(("fftw" ,fftw) ("gsl" ,gsl)))
+ (propagated-inputs
+ `(("r-ape" ,r-ape)
+ ("r-desolve" ,r-desolve)
+ ("r-rcpp" ,r-rcpp)
+ ("r-subplex" ,r-subplex)))
+ (home-page "https://www.zoology.ubc.ca/prog/diversitree")
+ (synopsis "Comparative 'phylogenetic' analyses of diversification")
+ (description "This package contains a number of comparative \"phylogenetic\"
+methods, mostly focusing on analysing diversification and character evolution.
+Contains implementations of \"BiSSE\" (Binary State Speciation and Extinction)
+and its unresolved tree extensions, \"MuSSE\" (Multiple State Speciation and
+Extinction), \"QuaSSE\", \"GeoSSE\", and \"BiSSE-ness\" Other included methods
+include Markov models of discrete and continuous trait evolution and constant
+rate speciation and extinction.")
+ (license license:gpl2+)))
+
+(define-public r-absfiltergsea
+ (package
+ (name "r-absfiltergsea")
+ (version "1.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "AbsFilterGSEA" version))
+ (sha256
+ (base32 "15srxkxsvn38kd5frdrwfdf0ad8gskrd0h01wmdf9hglq8fjrp7w"))))
+ (properties `((upstream-name . "AbsFilterGSEA")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-biobase" ,r-biobase)
+ ("r-deseq" ,r-deseq)
+ ("r-limma" ,r-limma)
+ ("r-rcpp" ,r-rcpp)
+ ("r-rcpparmadillo" ,r-rcpparmadillo)))
+ (home-page "https://cran.r-project.org/web/packages/AbsFilterGSEA/")
+ (synopsis "Improved false positive control of gene-permuting with absolute filtering")
+ (description
+ "This package provides a function that performs gene-permuting of a gene-set
+enrichment analysis (GSEA) calculation with or without the absolute filtering.
+ Without filtering, users can perform (original) two-tailed or one-tailed
+absolute GSEA.")
+ (license license:gpl2)))
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index aab4155d3d..b7c78b6a64 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -246,6 +246,29 @@
(assoc-ref inputs "js-mathjax")
"/share/javascript/mathjax"))
(invoke "python2" "setup.py" "rapydscript")))
+ (replace 'wrap
+ ;; Here we wrap PYTHONPATH exactly as it would be in
+ ;; python-build-system, plus the addition of
+ ;; QTWEBENGINEPROCESS_PATH, fixing a bug where Calibre would not
+ ;; find Qtwebengine.
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (python (assoc-ref inputs "python"))
+ (site-packages
+ (cons (string-append out "/lib/python"
+ (python-version python)
+ "/site-packages")
+ (search-path-as-string->list (getenv "PYTHONPATH"))))
+ (qtwebengineprocess
+ (string-append (assoc-ref inputs "qtwebengine")
+ "/lib/qt5/libexec/QtWebEngineProcess")))
+ (for-each (lambda (program)
+ (wrap-program program
+ `("QTWEBENGINEPROCESS_PATH" = (,qtwebengineprocess))
+ `("PYTHONPATH" prefix ,site-packages)))
+ (find-files bin ".")))
+ #t))
(add-after 'install 'install-man-pages
(lambda* (#:key outputs #:allow-other-keys)
(copy-recursively
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 9b6a5babeb..32807fa05f 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -613,14 +613,14 @@ Portuguese, Spanish and Italian.")
(define-public fet
(package
(name "fet")
- (version "5.46.0")
+ (version "5.46.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.lalescu.ro/liviu/fet/download/"
"fet-" version ".tar.bz2"))
(sha256
- (base32 "1vcsm12lqf84mz9ppw2knjyv5ss2ws0dblbp418hll91dry7m49a"))))
+ (base32 "1sakzizjsyjn6705zl283i81zxn1gxskg2i4jv7iq75vw3nzm6kv"))))
(build-system gnu-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index d9716ba91c..ff043463cc 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -682,6 +682,30 @@ Alternatively the menu can be bound globally, for example:
@code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
(license license:gpl3+)))
+(define-public emacs-moody
+ (package
+ (name "emacs-moody")
+ (version "0.5.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tarsius/moody")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1xyw4l42053595r76lj8safsx6pj25as0107wd96by3h7dg9m586"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/tarsius/moody")
+ (synopsis "Tabs and ribbons for Emacs mode-line")
+ (description
+ "@code{emacs-moody} provides utilities for displaying elements of
+the mode line as tabs and ribbons. It also provides replacements for a few
+built-in elements. The biggest difference to similar packages is that
+this one is much simpler and much more consistent. When using this package,
+then only the color of the mode line changes when a window becomes in-/active.")
+ (license license:gpl3+)))
+
(define-public emacs-treepy
(package
(name "emacs-treepy")
@@ -2078,7 +2102,7 @@ Lock key.")
(define-public emacs-chronometrist
(package
(name "emacs-chronometrist")
- (version "0.5.3")
+ (version "0.5.5")
(source
(origin
(method git-fetch)
@@ -2087,7 +2111,7 @@ Lock key.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0jz35972m372kx9x8mgf42zhzdw2w9wv2ri52chfb2fin4bh1biy"))))
+ (base32 "1zccyfpgq68ixrcl8jq2r38165ngkqrb42y2hkyab6gxhvh4wkpl"))))
(build-system emacs-build-system)
(arguments
`(#:phases
@@ -2111,7 +2135,8 @@ Lock key.")
(find-files "." "\\.md$")))))
#t)))))
(propagated-inputs
- `(("emacs-dash" ,emacs-dash)
+ `(("emacs-anaphora" ,emacs-anaphora)
+ ("emacs-dash" ,emacs-dash)
("emacs-s" ,emacs-s)
("emacs-ts" ,emacs-ts)))
(home-page "https://github.com/contrapunctus-1/chronometrist")
@@ -2133,7 +2158,7 @@ Its features are:
(define-public emacs-direnv
(package
(name "emacs-direnv")
- (version "2.0.0")
+ (version "2.1.0")
(source
(origin
(method git-fetch)
@@ -2142,8 +2167,7 @@ Its features are:
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32
- "005ibyzsx1fdyrl5iyhqpb1bg83mphzahq7zvw58x00syyqi2z49"))))
+ (base32 "0xkqn4604k2imas6azy1www56br8ls4iv9a44pxcd8h94j1fp44d"))))
(build-system emacs-build-system)
(propagated-inputs
`(("dash" ,emacs-dash)
@@ -3009,7 +3033,7 @@ files and directories.")
(define-public emacs-fountain-mode
(package
(name "emacs-fountain-mode")
- (version "3.1.0")
+ (version "3.2.2")
(source
(origin
(method git-fetch)
@@ -3018,7 +3042,7 @@ files and directories.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "08giwg0jwk8zzj2i4cm08322qr6znrnv9a49za7c6j47bykpwj6s"))))
+ (base32 "0rwdwbw9cq8ljvbmgmz9izank8dqjki79l1bw127lli69fs72gyi"))))
(build-system emacs-build-system)
(home-page "https://github.com/rnkn/fountain-mode")
(synopsis "Major mode for screenwriting in Fountain markup")
@@ -3208,6 +3232,29 @@ project.
This package also includes relevant snippets for yasnippet.")
(license license:expat))))
+(define-public emacs-gdscript-mode
+ (package
+ (name "emacs-gdscript-mode")
+ (version "1.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/godotengine/emacs-gdscript-mode")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "02by4bvdayldbjlz6jkp36m5rgcy2h5bwhqx2cj7wma6xf6cw3lf"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/godotengine/emacs-gdscript-mode")
+ (synopsis "GDScript support and syntax highlighting in Emacs")
+ (description
+ "This package adds support for the GDScript programming language from the
+Godot game engine in Emacs. It features all the essentials, e.g., syntax
+highlighting, code folding, indentation, automatic pairing, auto-completion,
+and code formatting.")
+ (license license:gpl3+)))
+
(define-public emacs-el-mock
(package
(name "emacs-el-mock")
@@ -3358,8 +3405,9 @@ keep pressing the key until it selects what you want. There's also
;; byte-compilation is finished
#:parallel-tests? #f))
(home-page "https://github.com/lastquestion/explain-pause-mode")
- (synopsis "Provides a top like interface to determine why Emacs paused")
- (description "Monitors Emacs function calls and records their execution
+ (synopsis "Top-like interface to determine why Emacs paused")
+ (description
+ "This package monitors Emacs function calls and records their execution
time. This information can be reviewed to determine what is causing the user
interface to pause.")
(license license:gpl3+))))
@@ -6479,7 +6527,7 @@ regexp that matches all known keywords.")
(define-public emacs-perspective
(package
(name "emacs-perspective")
- (version "2.10")
+ (version "2.11")
(source
(origin
(method git-fetch)
@@ -6489,7 +6537,7 @@ regexp that matches all known keywords.")
(file-name (git-file-name name version))
(sha256
(base32
- "1xfcm69nd6f9chwlqfz5vd8nnyl5mwharxjrn1m515568dqrk62x"))))
+ "0nka5z6226r174ligja023qx2bb1pfyjbanafxprbyxkr17b2794"))))
(build-system emacs-build-system)
(arguments
`(#:tests? #t
@@ -8710,7 +8758,7 @@ target will call @code{compile} on it.")
(define-public emacs-cider
(package
(name "emacs-cider")
- (version "0.26.0")
+ (version "0.26.1")
(source
(origin
(method git-fetch)
@@ -8719,7 +8767,7 @@ target will call @code{compile} on it.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1qwizvmm9ln75ph1jg2rfqv3hd9p4zaz8kp2i6yr3vq99c3a00i7"))))
+ (base32 "0m77jbxl380dp1wyj12m82bb06r80js8yxl530ryp1mwvy74f00d"))))
(build-system emacs-build-system)
(arguments
'(#:exclude ;don't exclude 'cider-test.el'
@@ -8750,9 +8798,9 @@ CIDER).")
;; There hasn't been a tag or release since 2016, so we take the latest
;; commit.
(define-public emacs-sly
- (let ((commit "6a2f543cb21f14104c2253af5a1427b884a987ae")
+ (let ((commit "8e22c1f62667434ec1acd1e0c6b7ec1c22dc0958")
;; Update together with sbcl-slynk-boot0.
- (revision "5"))
+ (revision "6"))
(package
(name "emacs-sly")
(version (git-version "1.0.0" revision commit))
@@ -8765,7 +8813,7 @@ CIDER).")
(file-name (git-file-name name version))
(sha256
(base32
- "0wbpg9p9yg2hd62l15pvy50fk3hndq5zzyqlyyf04g368s895144"))))
+ "09wyqixsn7k889i54amf8bwjg6iyirp89xmcrgfwal010kh1ixcl"))))
(build-system emacs-build-system)
(native-inputs
`(("texinfo" ,texinfo)))
@@ -8921,8 +8969,8 @@ file.")
(license license:gpl3+))))
(define-public emacs-sly-macrostep
- (let ((commit "be2d24545092d164be1a91031d8881afd29c9ec0")
- (revision "1"))
+ (let ((commit "5113e4e926cd752b1d0bcc1508b3ebad5def5fad")
+ (revision "2"))
(package
(name "emacs-sly-macrostep")
(version (git-version "0.1" revision commit))
@@ -8936,7 +8984,7 @@ file.")
(file-name (git-file-name name version))
(sha256
(base32
- "0v8m3zkccpqd2l8m9340y672l2mm3mrry8422nva5kfvpcwdayqb"))))
+ "1nxf28gn4f3n0wnv7nb5sgl36fz175y470zs9hig4kq8cp0yal0r"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-sly" ,emacs-sly)
@@ -9603,13 +9651,13 @@ passive voice.")
(name "emacs-org")
;; emacs-org-contrib inherits from this package. Please update it as
;; well.
- (version "9.3.6")
+ (version "9.3.8")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
(sha256
- (base32 "0jwpgfzjvf1hd3mx582pw86hysdryaqzp69hk6azi9kmq4bzk87d"))))
+ (base32 "1az00pi9rw3ibx4061jyqr6ll27kvs99yvd7nk5dckjh0ajd0gni"))))
(build-system emacs-build-system)
(arguments
`(#:phases
@@ -9634,14 +9682,14 @@ programming and reproducible research.")
(package
(inherit emacs-org)
(name "emacs-org-contrib")
- (version "20200213")
+ (version "20200907")
(source
(origin
(method url-fetch)
(uri (string-append "https://orgmode.org/elpa/"
"org-plus-contrib-" version ".tar"))
(sha256
- (base32 "0g6rrrwplrifz4ip0jg638m4kvpvdg03hwnyghd813w0lm935mh5"))))
+ (base32 "1rgk3pwhsmbmwlncg60ahwrrkm1ks4xpwy2wzv9q7myl1aihjj54"))))
(arguments
`(#:modules ((guix build emacs-build-system)
(guix build utils)
@@ -11918,7 +11966,7 @@ or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
(define-public emacs-which-key
(package
(name "emacs-which-key")
- (version "3.4.0")
+ (version "3.5.0")
(source
(origin
(method git-fetch)
@@ -11927,7 +11975,7 @@ or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1ahgb7dqdc75farkl0fg0a6hvx2067gdvjq99cd3z2dz56km0p05"))))
+ (base32 "13lgjsm9pwgjsxg7lzc1c9sw2bzssxikfj6grnshqfll8kz8yr4r"))))
(build-system emacs-build-system)
(arguments
`(#:tests? #t
@@ -12507,14 +12555,14 @@ write applications that use WebSockets, and is not useful by itself.")
(define-public emacs-oauth2
(package
(name "emacs-oauth2")
- (version "0.13")
+ (version "0.15")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"oauth2-" version ".el"))
(sha256
- (base32 "0y5nbdwxz2hfr09xgsqgyv60vgx0rsaisibcpkz00klvgg26w33r"))))
+ (base32 "0ij17g6i8d4cyzc8v6sy2qglwhzd767331gavll6d507krdh3ca3"))))
(build-system emacs-build-system)
(home-page "https://elpa.gnu.org/packages/oauth2.html")
(synopsis "OAuth 2.0 authorization protocol implementation")
@@ -22004,14 +22052,14 @@ federated microblogging social network.")
(define-public emacs-ebdb
(package
(name "emacs-ebdb")
- (version "0.6.18")
+ (version "0.6.19")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"ebdb-" version ".tar"))
(sha256
- (base32 "0znbv3c7wdgak1f1zb051vg4r29fksqh53k1j77jfmqcvwkpz2mw"))))
+ (base32 "0ch5vzhxa8h5v75lg3blsmrln497lr3ylivx6w28aiyb6cv5016l"))))
(build-system emacs-build-system)
(home-page "https://github.com/girzel/ebdb")
(synopsis "EIEIO port of BBDB, Emacs's contact-management package")
@@ -22631,7 +22679,7 @@ Google guidelines.")
(define-public emacs-helm-fish-completion
(package
(name "emacs-helm-fish-completion")
- (version "0.5")
+ (version "0.6")
(home-page "https://github.com/emacs-helm/helm-fish-completion")
(source
(origin
@@ -22641,7 +22689,7 @@ Google guidelines.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0hpsm39kx8vpz2zmarjrkvy1capkk5lwpsmdg2xnklsck6xsn922"))))
+ (base32 "1j2vfngq3512naaayv9kx0d1q2zg1xgs69l8afc7swg72h0l0imw"))))
(build-system emacs-build-system)
(propagated-inputs
`(("helm" ,emacs-helm)
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 31fd7b05ce..f9f0e04238 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -47,6 +47,7 @@
#:use-module (gnu packages guile)
#:use-module (gnu packages libftdi)
#:use-module (gnu packages libusb)
+ #:use-module (gnu packages messaging)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
@@ -1357,3 +1358,51 @@ simplifies configuration and is also pluggable: you can write your own west
this feature to provide conveniences for building applications, flashing and
debugging them, and more.")
(license license:expat)))
+
+(define-public ebusd
+ (package
+ (name "ebusd")
+ (version "3.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/john30/ebusd.git")
+ (commit (string-append "v" version))))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0iva70bam7wdx60bpd3an9kxr28zxlvp3vprivgqshwwdhqa0hzp"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-config
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((config-destination
+ (string-append (assoc-ref outputs "out")
+ "/share/ebusd")))
+ (copy-recursively (string-append (assoc-ref inputs "config")
+ "/ebusd-2.1.x")
+ config-destination)
+ #t))))))
+ (inputs
+ `(("mosquitto" ,mosquitto)))
+ (native-inputs
+ `(("automake" ,automake)
+ ("autoconf" ,autoconf)
+ ("config"
+ ,(origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/john30/ebusd-configuration.git")
+ (commit "666c0f6b9c4d7545eff7f43ab28a1c7baeab7913")))
+ (file-name "config-checkout")
+ (sha256
+ (base32
+ "0yxnx8p4lbk614l16854r9s9d8s9c7ixgczfs8mph94xz0wkda7x"))))))
+ (synopsis "Daemon for communicating with eBUS devices")
+ (description "This package provides @command{ebusd}, a daemon for
+handling communication with eBUS devices connected to a 2-wire bus system
+(\"energy bus\" used by numerous heating systems).")
+ (home-page "https://ebusd.eu/")
+ (license license:gpl3+)))
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 806aa37dfa..bd89cef70c 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -795,6 +795,51 @@ language.")
(license (list license:mpl2.0 ;library
license:gpl2+))))) ;Guile bindings and GUI
+(define-public inspekt3d
+ (let ((commit "703f52ccbfedad2bf5240bf8183d1b573c9d54ef")
+ (revision "0"))
+ (package
+ (name "inspekt3d")
+ (version (git-version "0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/kavalogic-inc/inspekt3d.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0lan6930g5a9z4ack9jj0zdd0mb2s6q2xzpiwcjdc3pvl9b1nbw4"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-libfive-guile-location
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "inspekt3d/library.scm"
+ (("\"libfive-guile")
+ (string-append "\""
+ (assoc-ref inputs "libfive")
+ "/lib/libfive-guile")))
+ #t)))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("mesa" ,mesa)
+ ("guile" ,guile-2.2)))
+ (propagated-inputs
+ `(("libfive" ,libfive)
+ ("guile-opengl" ,guile-opengl)))
+ (home-page "https://gitlab.com/kavalogic-inc/inspekt3d/")
+ (synopsis "Lightweight 3D viewer for Libfive written in Guile Scheme")
+ (description
+ "Inspekt3d is a lightweight 3D viewer for Libfive written in Guile Scheme.
+The viewer can be used interactively with a REPL (for example Geiser in
+Emacs).")
+ (license license:gpl3+))))
+
;; TODO Add doc https://gitlab.com/kicad/services/kicad-doc/-/tree/master
(define-public kicad
(package
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index 02463c94b1..004fef5ce5 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -357,17 +357,19 @@ Libraries with some extra bells and whistles.")
("bc" ,bc)
("bluez" ,bluez)
("dbus" ,dbus)
- ("efl" ,efl)
("freetype" ,freetype)
("libxcb" ,libxcb)
("libxext" ,libxext)
("linux-pam" ,linux-pam)
("puleseaudio" ,pulseaudio)
("setxkbmap" ,setxkbmap)
- ("wayland-protocols" ,wayland-protocols)
("xcb-util-keysyms" ,xcb-util-keysyms)
("xkeyboard-config" ,xkeyboard-config)
("xorg-server-xwayland" ,xorg-server-xwayland)))
+ (propagated-inputs
+ `(("efl" ,efl)
+ ("libxkbcommon" ,libxkbcommon)
+ ("wayland-protocols" ,wayland-protocols)))
(home-page "https://www.enlightenment.org/about-enlightenment")
(synopsis "Lightweight desktop environment")
(description
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 77484157e3..c7ce03b2b7 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -1203,7 +1203,7 @@ typeface, by mimicking Comic Sans while fixing its most obvious shortcomings.")
(package
(name "font-iosevka")
;; When updating, also update the hash of the Iosevka variant(s) below.
- (version "3.2.2")
+ (version "3.4.7")
(source
(origin
(method url-fetch/zipbomb)
@@ -1211,7 +1211,7 @@ typeface, by mimicking Comic Sans while fixing its most obvious shortcomings.")
"/releases/download/v" version
"/ttc-iosevka-" version ".zip"))
(sha256
- (base32 "16iqr4zjlshrgzcs3sjp3gz777gpi069r7p7scqi6vap9acqjvph"))))
+ (base32 "178xyxz57ncigv715db0898d5arcx1l7qi73a8prb2fdlb7x2yx6"))))
(build-system font-build-system)
(home-page "https://be5invis.github.io/Iosevka/")
(synopsis "Coders' typeface, built from code")
@@ -1234,7 +1234,7 @@ programming. Iosevka is completely generated from its source code.")
"/releases/download/v" version
"/ttc-iosevka-slab-" version ".zip"))
(sha256
- (base32 "0knsb1b0wqv50r7f9128xvq344x7hnvgm7kh1dxaahlck910z62x"))))))
+ (base32 "1zqgly4ymmmz3ckfsc2vdxw6d62axcyl79fq3gi630c4951nfikz"))))))
(define-public font-iosevka-term
(package
@@ -1249,7 +1249,7 @@ programming. Iosevka is completely generated from its source code.")
"/ttf-iosevka-term-" version ".zip"))
(sha256
(base32
- "0nyq6iq9xjn9nqwh1fh4v0pvblycmm8ssw7y3vcjv1ymbkdqfqhr"))))
+ "0nfwxhxgrgz3hhhrvr759263bm88zbh0zsavpnmphxwg9kykjq39"))))
(arguments
`(#:phases
(modify-phases %standard-phases
@@ -1271,7 +1271,7 @@ programming. Iosevka is completely generated from its source code.")
"/ttf-iosevka-term-slab-" version ".zip"))
(sha256
(base32
- "1blhhbnk2hyaxjrz88icd2gwyniq5idxd0h6rqx6vjcack6094z0"))))
+ "01ynnwlfq3294p8v0656xw6wcfmqklf0yqwkqh3sh2wmj7rrs7wi"))))
(arguments
`(#:phases
(modify-phases %standard-phases
@@ -1292,7 +1292,7 @@ programming. Iosevka is completely generated from its source code.")
"/releases/download/v" version
"/ttc-iosevka-aile-" version ".zip"))
(sha256
- (base32 "1zg0gn4gcf3w8n8jzf93y9ninyn3bci31c5zss3mxzz1lzfm8zd5"))))))
+ (base32 "0h4wzjyw3h5zbxzfb71z7aj5xwp8r1hd93qim6zicxfk9dgczgw5"))))))
(define-public font-iosevka-etoile
(package
@@ -1306,7 +1306,7 @@ programming. Iosevka is completely generated from its source code.")
"/releases/download/v" version
"/ttc-iosevka-etoile-" version ".zip"))
(sha256
- (base32 "1061yaf35f19dcym4k552q1yzbsbc98r3glm9frslirra9f33sl2"))))))
+ (base32 "1n1jy7g0q0kd4ihsyka1v02s7xgpg80rf9sml1yhxkqw5pq62972"))))))
(define-public font-iosevka-sparkle
(package
@@ -1320,7 +1320,7 @@ programming. Iosevka is completely generated from its source code.")
"/releases/download/v" version
"/ttc-iosevka-sparkle-" version ".zip"))
(sha256
- (base32 "1c1s9j6qgyhn4md0kql0x2201nbs5jx3612jf8q020gm484xqq03"))))))
+ (base32 "0chl6x3xy6alq64sax71psvpq6f6fgw6pbn04f5j5skgrbqkk292"))))))
(define-public font-sarasa-gothic
(package
diff --git a/gnu/packages/freeipmi.scm b/gnu/packages/freeipmi.scm
index 78ab287c5b..0bb2692461 100644
--- a/gnu/packages/freeipmi.scm
+++ b/gnu/packages/freeipmi.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016, 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,14 +28,14 @@
(define-public freeipmi
(package
(name "freeipmi")
- (version "1.6.5")
+ (version "1.6.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/freeipmi/freeipmi-"
version ".tar.gz"))
(sha256
(base32
- "1ncf1s84752xaq07h36wrxa5ww1167s2bizkww0igxv8djyddwk1"))))
+ "1ava5s0babfwx6dqi87phzyzjjgyah7avhljrxrjwn2cniwh38yg"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-static")))
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 4740546dbe..c8e0e94099 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -5,7 +5,7 @@
;;; Copyright © 2015, 2018 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016, 2017 David Thompson <davet@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2016, 2017, 2020 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018 Julian Graham <joolean@gmail.com>
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -342,26 +342,22 @@ compiling NML files (along with their associated language, sound and graphic
files) into @file{.grf} and/or @file{.nfo} files.")
(license license:gpl2+)))
-(define-public python-sge-pygame
+(define-public python-sge
(package
- (name "python-sge-pygame")
- (version "1.5.1")
+ (name "python-sge")
+ (version "1.7")
(source
(origin
(method url-fetch)
- (uri (string-append "mirror://savannah/stellarengine/"
- (version-major+minor version) "/sge-pygame-"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (uri (pypi-uri "sge" version))
(sha256
(base32
- "1rl3xjzh78sl0sq3xl8rl7cgp9v9v3h7s2pfwn7nj1vrmffzkcpd"))))
+ "02fn6v6bxk3sngwd4kd3mglrp0jlnhx7x6h8nnkik6wdv150a0wv"))))
(build-system python-build-system)
(propagated-inputs
`(("python-pygame" ,python-pygame)
- ("python-six" ,python-six)
("python-uniseg" ,python-uniseg)))
- (home-page "http://stellarengine.nongnu.org")
+ (home-page "https://python-sge.github.io/")
(synopsis "2D game engine for Python")
(description
"The SGE Game Engine (\"SGE\", pronounced like \"Sage\") is a
@@ -370,8 +366,8 @@ you can focus on the game itself. This makes more rapid game development
possible, and it also makes the SGE easy to learn.")
(license license:lgpl3+)))
-(define-public python2-sge-pygame
- (package-with-python2 python-sge-pygame))
+(define-public python-sge-pygame
+ (deprecated-package "python-sge-pygame" python-sge))
(define-public python-tmx
(package
@@ -412,14 +408,15 @@ levels.")
(define-public python-xsge
(package
(name "python-xsge")
- (version "2018.02.26")
+ (version "2020.09.07")
(source (origin
(method url-fetch)
- (uri (string-append "mirror://savannah/xsge/xsge/xsge-"
- version ".tar.gz"))
+ (uri (string-append "https://github.com/python-sge/xsge"
+ "/releases/download/v" version
+ "/xsge-" version ".zip"))
(sha256
(base32
- "0bx93hgf7cgdw2gsygbh59y8vpw37pgsa279rajw3fkdpl8vrc40"))))
+ "136xgy3f9vw636wxpqbha022avk0wyxw63mm3a2dvwhh90s716f9"))))
(build-system python-build-system)
(arguments
'(#:phases
@@ -432,12 +429,11 @@ levels.")
(string-append "--prefix=" (assoc-ref outputs "out"))
"--root=/"))))
#:tests? #f)) ; no check target
+ (native-inputs
+ `(("unzip" ,unzip)))
(propagated-inputs
- `(("python-sge-pygame" ,python-sge-pygame)
- ("python-pygame" ,python-pygame)
- ("python-six" ,python-six)
- ("python-tmx" ,python-tmx)))
- (home-page "http://xsge.nongnu.org")
+ `(("python-sge" ,python-sge)))
+ (home-page "https://python-sge.github.io/")
(synopsis "Extensions for the SGE Game Engine")
(description
"xSGE is a collection of modules that make doing certain tasks with the SGE
@@ -446,9 +442,6 @@ GUI toolkit, lighting and physics frameworks and @code{Tiled} TMX format
support.")
(license license:gpl3+)))
-(define-public python2-xsge
- (package-with-python2 python-xsge))
-
(define-public tiled
(package
(name "tiled")
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 1cd0df0dd0..ac5d08b79b 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -17,7 +17,7 @@
;;; Copyright © 2016, 2017 Rodger Fox <thylakoid@openmailbox.org>
;;; Copyright © 2016, 2017, 2018 Nikita <nikita@n0.is>
;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
-;;; Copyright © 2016, 2017, 2018, 2019 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
@@ -385,15 +385,17 @@ The game includes a built-in editor so you can design and share your own maps.")
(define-public armagetronad
(package
(name "armagetronad")
- (version "0.2.8.3.5")
+ (version "0.2.9.0.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/armagetronad/stable/"
- version "/armagetronad-" version ".src.tar.gz"))
+ version "/armagetronad-" version ".tbz"))
(sha256
(base32
- "1z266haq22n5b0733h7qsg1rpzhz8lvm82f7wd06r008iiar7jdl"))))
+ "19rfhlg4gp0r7k1j8v4iw20325ciy156nmzax4xikmw22c6nmxcz"))))
(build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
(inputs
`(("libxml2" ,libxml2)
("sdl" ,sdl)
@@ -1811,15 +1813,16 @@ Every puzzle has a complete solution, although there may be more than one.")
(define-public retux
(package
(name "retux")
- (version "1.3.6")
+ (version "1.4")
(source (origin
(method url-fetch)
- (uri (string-append "mirror://savannah/retux/"
+ (uri (string-append "https://github.com/retux-game/retux/"
+ "releases/download/v"
(version-major+minor version) "/retux-"
version "-src.tar.gz"))
(sha256
(base32
- "01bidh4zisjp3nc436x0g85v60dvwb3ig37i7y01sa71j8fm4fmb"))))
+ "1hxy1pvlxhk0ci3wh2i3mmr82faqdjnnxsiwwr5gcr93nfnw9w5f"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; no check target
@@ -1831,28 +1834,22 @@ Every puzzle has a complete solution, although there may be more than one.")
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
- (data (string-append out "/share/retux"))
- (doc (string-append out "/share/doc/retux")))
+ (data (string-append out "/share/retux")))
(mkdir-p bin)
(substitute* "retux.py"
;; Use the correct data directory.
(("os\\.path\\.join\\(os\\.path\\.dirname\\(__file__\\), \"data\"\\),")
- (string-append "\"" data "\","))
- ;; Use Python 3 so the patch-shebangs phase works properly.
- ((".*python2.*") "#!/usr/bin/python3"))
+ (string-append "\"" data "\",")))
(copy-file "retux.py" (string-append bin "/retux"))
-
(copy-recursively "data" data)
-
- (install-file "COPYING" doc)
#t))))))
(inputs
`(("python-sge-pygame" ,python-sge-pygame)
("python-six" ,python-six)
("python-xsge" ,python-xsge)))
- (home-page "http://retux.nongnu.org")
+ (home-page "https://retux-game.github.io/")
(synopsis "Action platformer game")
(description
"ReTux is an action platformer loosely inspired by the Mario games,
@@ -4788,7 +4785,7 @@ of war. Widelands also offers an Artificial Intelligence to challenge you.")
(define-public starfighter
(package
(name "starfighter")
- (version "2.3.1")
+ (version "2.3.2")
(source (origin
(method url-fetch)
(uri (string-append
@@ -4797,7 +4794,7 @@ of war. Widelands also offers an Artificial Intelligence to challenge you.")
version "-src.tar.gz"))
(sha256
(base32
- "13396hvsj4cswlrw52kwqn37dadxps00vhr0hrqgm87fl4ih5yyx"))))
+ "1nvi277cazsw36b6nhd5nmk0cjvm71rlxasy24mf18j7fsvq9vp8"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/genimage.scm b/gnu/packages/genimage.scm
index 7ad710082c..c9ed6258a0 100644
--- a/gnu/packages/genimage.scm
+++ b/gnu/packages/genimage.scm
@@ -50,7 +50,9 @@
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "15jmh17lvm3jw9c92bjarly7iwhmnfl322d91mprfv10ppb9ip54"))))
+ "15jmh17lvm3jw9c92bjarly7iwhmnfl322d91mprfv10ppb9ip54"))
+ ;; will be shipped with release 14
+ (patches (search-patches "genimage-signedness.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -169,7 +171,6 @@
("automake" ,automake)
;;; Note: cramfs is obsolete.
("dtc" ,dtc) ; for the tests
- ("fdisk" ,fdisk) ; for the tests
("pkg-config" ,pkg-config)
("util-linux" ,util-linux))) ; for the tests
(inputs
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 25cd62b9ba..4a6d45bc63 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6184,7 +6184,7 @@ USB transfers with your high-level application or system daemon.")
(define-public simple-scan
(package
(name "simple-scan")
- (version "3.36.4")
+ (version "3.36.6")
(source
(origin
(method url-fetch)
@@ -6192,7 +6192,7 @@ USB transfers with your high-level application or system daemon.")
(version-major+minor version) "/"
"simple-scan-" version ".tar.xz"))
(sha256
- (base32 "09gmzrlljdqkj3w6wa1c27wypy6j8z9dw3jzv9izfqvp38liibsn"))))
+ (base32 "0x9hzqnji5l966yy2k5gppl8hqasn3sd5an4sr8srjmncxcs80ys"))))
(build-system meson-build-system)
;; TODO: Fix icons in home screen, About dialogue, and scan menu.
(arguments
@@ -10495,7 +10495,7 @@ advanced image management tool")
(define-public libhandy
(package
(name "libhandy")
- (version "0.90.0")
+ (version "1.0.0")
(source
(origin
(method git-fetch)
@@ -10504,7 +10504,7 @@ advanced image management tool")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1zpfbn2x27lp69w819afxf3ylkgfz9k44srfgmkbb2c33r14ajwy"))))
+ (base32 "193y09yy0302x8fkyrnq591m805xp68bkd93fl5qggxi52k8pj0v"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 2f663b3362..c0f827b7e3 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -868,6 +868,8 @@ enter a passphrase when required by @code{gpg} or other software.")))
(package
(inherit pinentry-tty)
(name "pinentry-gtk2")
+ (arguments
+ `(#:configure-flags '("--enable-fallback-curses")))
(inputs
`(("gtk+" ,gtk+-2)
("glib" ,glib)
@@ -886,7 +888,8 @@ passphrase when @code{gpg} is run and needs it.")))
("glib" ,glib)
,@(package-inputs pinentry-tty)))
(arguments
- `(#:configure-flags '("--enable-pinentry-gnome3")))
+ `(#:configure-flags '("--enable-pinentry-gnome3"
+ "--enable-fallback-curses")))
(description
"Pinentry provides a console and a GUI designed for use with GNOME@tie{}3
that allows users to enter a passphrase when required by @code{gpg} or other
@@ -896,6 +899,8 @@ software.")))
(package
(inherit pinentry-tty)
(name "pinentry-qt")
+ (arguments
+ `(#:configure-flags '("--enable-fallback-curses")))
(inputs
`(("qtbase" ,qtbase)
,@(package-inputs pinentry-tty)))
@@ -912,7 +917,8 @@ passphrase when @code{gpg} is run and needs it.")))
(inherit (package-source pinentry-tty))
(patches (search-patches "pinentry-efl.patch"))))
(arguments
- '(#:configure-flags '("--enable-pinentry-efl")
+ '(#:configure-flags '("--enable-pinentry-efl"
+ "--enable-fallback-curses")
#:phases
(modify-phases %standard-phases
(replace 'bootstrap
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 78bf4fff87..8723592b51 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -18,6 +18,7 @@
;;; Copyright © 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1047,6 +1048,30 @@ Features include:
optimized for performance yet simple to use.")
(license license:expat))))
+(define-public go-github-com-tv42-httpunix
+ (let ((commit "2ba4b9c3382c77e7b9ea89d00746e6111d142a22")
+ (revision "0"))
+ (package
+ (name "go-github-com-tv42-httpunix")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tv42/httpunix.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0xbwpip2hsfhd2kd878jn5ndl8y1i9658lggha4x3xb5m1rsds9w"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/tv42/httpunix"))
+ (home-page "https://github.com/tv42/httpunix")
+ (synopsis "Go library to talk HTTP over Unix domain sockets")
+ (description "This package is a Go library to talk HTTP over Unix domain
+sockets.")
+ (license license:expat))))
+
(define-public go-github-com-blang-semver
(let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
(revision "0"))
@@ -4180,7 +4205,7 @@ data serialization format.")
(define-public go-github-com-mattn-go-zglob
(package
(name "go-github-com-mattn-go-zglob")
- (version "0.0.1")
+ (version "0.0.3")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -4189,7 +4214,7 @@ data serialization format.")
(file-name (git-file-name name version))
(sha256
(base32
- "1sncdyq5fbd42al4amyy91h7vlzm3wm6c9vl8za2pjgfgsd581fz"))))
+ "1923lvakm66mzy62jmngdvcmbmiqclinsvnghs3907rgygnx1qc1"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/mattn/go-zglob"))
diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm
index 800b567e39..a307fee808 100644
--- a/gnu/packages/graph.scm
+++ b/gnu/packages/graph.scm
@@ -121,63 +121,6 @@ more.")
(home-page "https://pypi.org/project/python-igraph/")
(synopsis "Python bindings for the igraph network analysis library")))
-(define-public r-igraph
- (package
- (name "r-igraph")
- (version "1.2.5")
- (source
- (origin
- (method url-fetch)
- (uri (cran-uri "igraph" version))
- (sha256
- (base32
- "126z1ygbmi3g7hk97snf22rnx680dyi30idssm5zacba5rdngp8c"))))
- (build-system r-build-system)
- (native-inputs
- `(("gfortran" ,gfortran)))
- (inputs
- `(("gmp" ,gmp)
- ("glpk" ,glpk)
- ("libxml2" ,libxml2)
- ("zlib" ,zlib)))
- (propagated-inputs
- `(("r-magrittr" ,r-magrittr)
- ("r-matrix" ,r-matrix)
- ("r-pkgconfig" ,r-pkgconfig)))
- (home-page "https://igraph.org")
- (synopsis "Network analysis and visualization")
- (description
- "This package provides routines for simple graphs and network analysis.
-It can handle large graphs very well and provides functions for generating
-random and regular graphs, graph visualization, centrality methods and much
-more.")
- (license license:gpl2+)))
-
-(define-public r-diffusionmap
- (package
- (name "r-diffusionmap")
- (version "1.2.0")
- (source
- (origin
- (method url-fetch)
- (uri (cran-uri "diffusionMap" version))
- (sha256
- (base32
- "1rvk7069brlm1s9kqj4c31mwwr3mw4hmhay95cjjjfmw5xclff2j"))))
- (properties `((upstream-name . "diffusionMap")))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-igraph" ,r-igraph)
- ("r-matrix" ,r-matrix)
- ("r-scatterplot3d" ,r-scatterplot3d)))
- (home-page "https://www.r-project.org")
- (synopsis "Diffusion map")
- (description "This package implements the diffusion map method of data
-parametrization, including creation and visualization of diffusion maps,
-clustering with diffusion K-means and regression using the adaptive regression
-model.")
- (license license:gpl2)))
-
(define-public r-rgraphviz
(package
(name "r-rgraphviz")
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index fa6855f43d..3090c6078b 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -798,6 +798,7 @@ using Guile's foreign function interface.")
(build-system guile-build-system)
(arguments
'(#:source-directory "src"
+ #:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch")
#:phases (modify-phases %standard-phases
(add-after 'unpack 'move-files-around
(lambda _
@@ -806,8 +807,7 @@ using Guile's foreign function interface.")
(mkdir-p "src/pfds")
(for-each (lambda (file)
(rename-file file
- (string-append "src/pfds/"
- file)))
+ (string-append "src/pfds/" file)))
'("bbtrees.sls"
"deques"
"deques.sls"
@@ -821,15 +821,6 @@ using Guile's foreign function interface.")
"queues.sls"
"sequences.sls"
"sets.sls"))
-
- ;; In Guile <= 2.2.4, there's no way to tell 'guild
- ;; compile' to accept the ".sls" extension. So...
- (for-each (lambda (file)
- (rename-file file
- (string-append
- (string-drop-right file 4)
- ".scm")))
- (find-files "." "\\.sls$"))
#t)))))
(native-inputs
`(("guile" ,guile-3.0)))
@@ -853,6 +844,36 @@ Vicare Scheme and IronScheme. Right now it contains:
@end itemize\n")
(license license:bsd-3)))
+(define-public guile-prometheus
+ (let ((commit "cbc6e1b03512443a03d66414c426adb8470b5f2b")
+ (revision "0"))
+ (package
+ (name "guile-prometheus")
+ (version (git-version "0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.cbaines.net/git/guile/prometheus")
+ (commit commit)))
+ (sha256
+ (base32
+ "1k1qg4ia87w2ipnf8cpikdc67lxi5bmahkhgk2x0i9ibdyvqb7np"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)))
+ (inputs
+ `(("guile" ,guile-3.0)))
+ (home-page "https://git.cbaines.net/guile/prometheus")
+ (synopsis "Prometheus client library for Guile")
+ (description
+ "This Guile library provides instrumentation code intended to be used
+with the Prometheus time series service. Counter, gauge and histogram metric
+types are supported.")
+ (license license:gpl3+))))
+
(define-public guile2.2-pfds
(package
(inherit guile-pfds)
@@ -862,7 +883,18 @@ Vicare Scheme and IronScheme. Right now it contains:
(substitute-keyword-arguments (package-arguments guile-pfds)
((#:phases phases)
`(modify-phases ,phases
- (delete 'work-around-guile-bug)))))))
+ (delete 'work-around-guile-bug)
+ (add-after 'move-files-around 'sls->scm
+ (lambda _
+ ;; In Guile <= 2.2.4, there's no way to tell 'guild
+ ;; compile' to accept the ".sls" extension. So...
+ (for-each (lambda (file)
+ (rename-file file
+ (string-append
+ (string-drop-right file 4)
+ ".scm")))
+ (find-files "." "\\.sls$"))
+ #t))))))))
(define-public guile3.0-pfds
(deprecated-package "guile3.0-pfds" guile-pfds))
@@ -1729,19 +1761,20 @@ capabilities.")
(license license:gpl3+)))
(define-public g-golf
- (let ((commit "5d2903afb4b6b65c22f587835d8fdff91916e5ee"))
+ (let ((commit "84e894eb7945c3bcdf7f8d5135c1be3efa524c92")
+ (revision "822"))
(package
(name "g-golf")
- (version (git-version "1" "804" commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.savannah.gnu.org/git/g-golf.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1xkb6a5d3i9s8lpb5cf06bd64p5srqnnhn5l0b2f5csbvyz8hmmh"))))
+ (version (git-version "0.1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/g-golf.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1pkcij65zy2lkip5yrfzj85nq17pp9mrf0d4sk6hpjqr4kd0bxd5"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
@@ -3009,20 +3042,20 @@ in C using Gtk+-3 and WebKitGtk.")
(license license:gpl3+)))
(define-public emacsy-minimal
- (let ((commit "v0.4.1-28-gd459ca1"))
+ (let ((commit "v0.4.1-31-g415d96f"))
(package
(inherit emacsy)
(name "emacsy-minimal")
(version (string-drop commit 1))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.savannah.gnu.org/git/emacsy.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1ps15w8cxj9kc18gmvys9jv9xa1qqa7m43ismv34l3cmhddrn0sr"))))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/emacsy.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1cs1i1hxwrv0a512j54yrvfh743nci1chx6qjgp4jyzq98ncvxgg"))))
(build-system gnu-build-system)
(inputs
`(("guile" ,guile-2.2)
@@ -3033,10 +3066,10 @@ in C using Gtk+-3 and WebKitGtk.")
`(#:configure-flags '("--without-examples")
#:phases
(modify-phases %standard-phases
- (add-before 'configure 'setenv
- (lambda _
- (setenv "GUILE_AUTO_COMPILE" "0")
- #t))))))))
+ (add-before 'configure 'setenv
+ (lambda _
+ (setenv "GUILE_AUTO_COMPILE" "0")
+ #t))))))))
(define-public guile-jpeg
(let ((commit "6a1673578b297c2c1b28e44a76bd5c49e76a5046")
@@ -3075,16 +3108,16 @@ perform geometrical transforms on JPEG images.")
(define-public nomad
(package
(name "nomad")
- (version "0.2.0-alpha")
+ (version "0.2.0-alpha-100-g6a565d3")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://git.savannah.gnu.org/git/nomad.git")
+ (url "https://git.savannah.gnu.org/git/nomad.git/")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
- "1z2z5x37v1qrk2vb8qlz2yj030iirzzd0maa9fjxzlqkrg6krbaj"))))
+ "0anmprm63a88kii251rl296v1g4iq62r6n4nssx5jbc0hzkknanz"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
@@ -3095,36 +3128,35 @@ perform geometrical transforms on JPEG images.")
("guile" ,guile-2.2)
("glib:bin" ,glib "bin")
("texinfo" ,texinfo)
+ ("gettext" ,gnu-gettext)
("perl" ,perl)))
(inputs
- `(("guile" ,guile-2.2)
+ `(;; Guile
+ ("guile" ,guile-2.2)
("guile-lib" ,guile2.2-lib)
("guile-readline" ,guile2.2-readline)
("guile-gcrypt" ,guile2.2-gcrypt)
("gnutls" ,gnutls)
+ ("g-golf" ,g-golf)
("shroud" ,shroud)
("emacsy" ,emacsy-minimal)
+ ;; Gtk
("glib" ,glib)
("dbus-glib" ,dbus-glib)
+ ("glib-networking" ,glib-networking)
("gtk+" ,gtk+)
("gtk+:bin" ,gtk+ "bin")
- ("gtksourceview" ,gtksourceview)
("webkitgtk" ,webkitgtk)
- ("g-golf" ,g-golf)
- ("xorg-server" ,xorg-server)))
- (propagated-inputs
- `(("glib" ,glib)
- ("glib-networking" ,glib-networking)
+ ("gtksourceview" ,gtksourceview)
+ ("vte" ,vte)
+ ;; Gstreamer
("gstreamer" ,gstreamer)
("gst-plugins-base" ,gst-plugins-base)
("gst-plugins-good" ,gst-plugins-good)
("gst-plugins-bad" ,gst-plugins-bad)
("gst-plugins-ugly" ,gst-plugins-ugly)
- ("gtk+" ,gtk+)
- ("gtksourceview" ,gtksourceview)
- ("vte" ,vte)
- ("webkitgtk" ,webkitgtk)
- ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
+ ;; Util
+ ("xorg-server" ,xorg-server)))
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)
@@ -3142,49 +3174,40 @@ perform geometrical transforms on JPEG images.")
#t))
(add-after 'install 'wrap-binaries
(lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (gio-deps (map (cut assoc-ref inputs <>)
- '("glib-networking"
- "glib"
- "gstreamer"
- "gst-plugins-base"
- "gst-plugins-good"
- "gst-plugins-bad"
- "gst-plugins-ugly")))
- (gio-mod-path (map (cut string-append <>
- "/lib/gio/modules")
- gio-deps))
- (effective (read-line (open-pipe*
- OPEN_READ
- "guile" "-c"
- "(display (effective-version))")))
- (deps (map (cut assoc-ref inputs <>)
- '("emacsy" "guile-lib" "guile-readline"
- "g-golf" "shroud")))
- (scm-path (map (cut string-append <>
- "/share/guile/site/" effective)
- `(,out ,@deps)))
- (go-path (map (cut string-append <>
- "/lib/guile/" effective "/site-ccache")
- `(,out ,@deps)))
- (progs (map (cut string-append out "/bin/" <>)
- '("nomad"))))
- (map (cut wrap-program <>
- `("GIO_EXTRA_MODULES" ":" prefix ,gio-mod-path)
- `("GUILE_LOAD_PATH" ":" prefix ,scm-path)
- `("GUILE_LOAD_COMPILED_PATH" ":"
- prefix ,go-path))
- progs)
+ (let* ((out (assoc-ref outputs "out"))
+ (effective (read-line (open-pipe*
+ OPEN_READ
+ "guile" "-c"
+ "(display (effective-version))")))
+ (gst-plugins (map (lambda (i)
+ (string-append (assoc-ref inputs i)
+ "/lib/gstreamer-1.0"))
+ `("gstreamer"
+ "gst-plugins-base"
+ "gst-plugins-good"
+ "gst-plugins-bad"
+ "gst-plugins-ugly")))
+ (out-append (lambda (. args)
+ (apply string-append out args)))
+ (gi-path (out-append "/lib/girepository-1.0"))
+ (load-path (out-append "/share/guile/site/" effective))
+ (comp-path (out-append "/lib/guile/"
+ effective "/site-ccache"))
+ (ext-path (out-append "/libexec/nomad")))
+ (wrap-program (string-append out "/bin/nomad")
+ `("GUILE_LOAD_PATH" ":" prefix
+ (,load-path
+ ,(getenv "GUILE_LOAD_PATH")))
+ `("GUILE_LOAD_COMPILED_PATH" ":" prefix
+ (,comp-path
+ ,(getenv "GUILE_LOAD_COMPILED_PATH")))
+ `("GI_TYPELIB_PATH" ":" prefix
+ (,gi-path ,(getenv "GI_TYPELIB_PATH")))
+ `("GIO_EXTRA_MODULES" ":" prefix
+ (,(getenv "GIO_EXTRA_MODULES")))
+ `("GST_PLUGIN_SYSTEM_PATH" ":" prefix ,gst-plugins)
+ `("NOMAD_WEB_EXTENSION_DIR" ":" prefix (,ext-path)))
#t))))))
- (native-search-paths
- (list (search-path-specification
- (variable "GI_TYPELIB_PATH")
- (separator ":")
- (files '("lib/girepository-1.0")))
- (search-path-specification
- (variable "NOMAD_WEB_EXTENSION_DIR")
- (separator ":")
- (files '("libexec/nomad")))))
(home-page "https://savannah.nongnu.org/projects/nomad/")
(synopsis "Extensible Web Browser in Guile Scheme")
(description "Nomad is a Emacs-like web browser that consists of a modular
@@ -3844,3 +3867,141 @@ between data, in a way that is very similar to WikiData or RDF for instance.
An object can have relations (in the form of an IRI) that relates it to one or
more objects or strings, represented by a Json object or an IRI.")
(license license:gpl3+)))
+
+(define-public guile-struct-pack
+ (package
+ (name "guile-struct-pack")
+ (version "1.1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/weinholt/struct-pack")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0hd72m821pahjphzyjn26i55542v8makr55xzjll2cycja4wsbc1"))))
+ (build-system guile-build-system)
+ (arguments
+ `(#:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch")
+ #:modules ((guix build guile-build-system)
+ (guix build utils)
+ (srfi srfi-26)
+ (ice-9 ftw))
+ #:phases (modify-phases %standard-phases
+ (add-before 'build 'move-sls-files
+ (lambda _
+ ;; Move files under a struct/ directory to reflect the
+ ;; module hierarchy.
+ (define dst-folder "struct")
+ (define (target file)
+ (string-append dst-folder "/" file))
+ (define files
+ (scandir "." (negate (cut member <> '("." "..")))))
+ (mkdir dst-folder)
+ (for-each (lambda (file)
+ (rename-file file (target file)))
+ files)
+ #t)))))
+ (native-inputs
+ `(("guile" ,guile-3.0)))
+ (home-page "https://github.com/weinholt/struct-pack")
+ (synopsis "R6RS library for working with packed byte structures")
+ (description
+ "This is an R6RS library for working with packed byte structures. It is
+similar to struct in Python or pack and unpack in Perl.")
+ (license license:expat)))
+
+(define-public guile-machine-code
+ (package
+ (name "guile-machine-code")
+ (version "2.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/weinholt/machine-code")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0wzj3caj2jypzyjqfkfqkvr3kkbjabsnhldv9kvnx9w9qnria5yd"))))
+ (build-system guile-build-system)
+ (arguments
+ `(#:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch")
+ #:modules ((guix build guile-build-system)
+ (guix build utils)
+ (srfi srfi-26)
+ (ice-9 ftw))
+ #:phases (modify-phases %standard-phases
+ (add-before 'build 'move-sls-files
+ (lambda _
+ ;; Move files under a struct/ directory to reflect the
+ ;; module hierarchy.
+ (define dst-folder "machine-code")
+ (define (target file)
+ (string-append dst-folder "/" file))
+ (define files
+ (scandir "." (negate (cut member <> '("." "..")))))
+ (mkdir dst-folder)
+ (for-each (lambda (file)
+ (rename-file file (target file)))
+ files)
+ #t)))))
+ (native-inputs
+ `(("guile" ,guile-3.0)))
+ (propagated-inputs
+ `(("guile-struct-pack" ,guile-struct-pack)))
+ (home-page "https://github.com/weinholt/machine-code")
+ (synopsis "Tools that relate to machine code and object formats")
+ (description
+ "This project is about the development of tools that relate to machine
+code and object formats; for all architectures. Here you'll find libraries
+for working with binary code: assembly, disassembly, instruction tables,
+object formats and related areas.")
+ (license license:expat)))
+
+(define-public guile-laesare
+ (package
+ (name "guile-laesare")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/weinholt/laesare")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "15q619gzw717r8r1ql23zfdaibpnp9qqs96032vdc3rj74msxc92"))))
+ (build-system guile-build-system)
+ (arguments
+ `(#:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch")
+ #:modules ((guix build guile-build-system)
+ (guix build utils)
+ (srfi srfi-26)
+ (ice-9 ftw))
+ #:phases (modify-phases %standard-phases
+ (add-before 'build 'move-sls-files
+ (lambda _
+ ;; Move files under a laesare directory to reflect
+ ;; the module hierarchy.
+ (define dst-folder "laesare")
+ (define (target file)
+ (string-append dst-folder "/" file))
+ (define files
+ (scandir "." (negate (cut member <> '("." "..")))))
+ (mkdir dst-folder)
+ (for-each (lambda (file)
+ (rename-file file (target file)))
+ files)
+ #t)))))
+ (native-inputs
+ `(("guile" ,guile-3.0)))
+ (home-page "https://github.com/weinholt/laesare")
+ (synopsis "R6RS Scheme library that provides a reader")
+ (description
+ "This is an R6RS Scheme library that provides a reader with some extra
+features not found in the standard read procedure such as a compatible mode
+with support for other RnRS standards and a tolerant mode that continues on
+errors.")
+ (license license:expat)))
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index 2a63712083..32e1c50852 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -12,7 +12,7 @@
;;; Copyright © 2019, 2020 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2015 John Soo <jsoo1@asu.edu>
;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
+;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
;;; Copyright © 2020 Brian Leung <bkleung89@gmail.com>
;;;
@@ -339,18 +339,18 @@ to @code{cabal repl}).")
(define-public git-annex
(package
(name "git-annex")
- (version "8.20200810")
+ (version "8.20200908")
(source
(origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"git-annex/git-annex-" version ".tar.gz"))
(sha256
- (base32 "1wy6ckcf5f6m94gakg1504h1zryail3mmj85sglq03s45vawjcg6"))))
+ (base32 "1113inl10f4m0699ba2zglaqlfqvwhqjkqg6r6m1d5rqv5brswb1"))))
(build-system haskell-build-system)
(arguments
`(#:configure-flags
- '("--flags=-Android -Assistant -Pairing -Webapp -WebDAV")
+ '("--flags=-Android -Assistant -Pairing -Webapp")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-shell-for-tests
@@ -448,6 +448,7 @@ to @code{cabal repl}).")
("ghc-crypto-api" ,ghc-crypto-api)
("ghc-cryptonite" ,ghc-cryptonite)
("ghc-data-default" ,ghc-data-default)
+ ("ghc-dav" ,ghc-dav)
("ghc-disk-free-space" ,ghc-disk-free-space)
("ghc-dlist" ,ghc-dlist)
("ghc-edit-distance" ,ghc-edit-distance)
@@ -627,7 +628,7 @@ and mIRC chat codes.")
(define-public kmonad
(package
(name "kmonad")
- (version "0.3.0")
+ (version "0.4.0")
(source
(origin
(method git-fetch)
@@ -636,7 +637,7 @@ and mIRC chat codes.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1g40nkpldih6h1rlxjx5yf9iavr3qs1f2b6j0gd8135p5hkg8d8n"))))
+ (base32 "064gnzzcm6fnxfiildbjmgbdxkhqvp61zrl6qhkl1pgbn27j1mll"))))
(build-system haskell-build-system)
(arguments
`(#:phases
@@ -661,7 +662,7 @@ and mIRC chat codes.")
(doc (string-append out "/share/doc/kmonad-" ,version)))
(install-file "README.md" doc)
(copy-recursively "doc" doc)
- (copy-recursively "example" (string-append doc "/example"))
+ (copy-recursively "keymap" (string-append doc "/keymap"))
#t))))))
(inputs
`(("ghc-cereal" ,ghc-cereal)
@@ -670,6 +671,8 @@ and mIRC chat codes.")
("ghc-lens" ,ghc-lens)
("ghc-megaparsec" ,ghc-megaparsec)
("ghc-optparse-applicative" ,ghc-optparse-applicative)
+ ("ghc-resourcet" ,ghc-resourcet)
+ ("ghc-rio" ,ghc-rio)
("ghc-unagi-chan" ,ghc-unagi-chan)
("ghc-unliftio" ,ghc-unliftio)
("ghc-unordered-containers" ,ghc-unordered-containers)))
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index b9474c973a..98d163566c 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@gmail.com>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2020 Kyle Meyer <kyle@kyleam.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1945,3 +1946,38 @@ as frontend to hjsmin.")
"This package provides a data type and ToJSON/FromJSON instances for
Bower's package manifest file, bower.json.")
(license license:expat)))
+
+(define-public ghc-dav
+ (package
+ (name "ghc-dav")
+ (version "1.3.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/DAV/DAV-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "1isvi4fahq70lzxfz23as7qzkc01g7kba568l6flrgd0j1984fsy"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-data-default" ,ghc-data-default)
+ ("ghc-exceptions" ,ghc-exceptions)
+ ("ghc-http-client" ,ghc-http-client)
+ ("ghc-http-client-tls" ,ghc-http-client-tls)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-lens" ,ghc-lens)
+ ("ghc-transformers-base" ,ghc-transformers-base)
+ ("ghc-transformers-compat" ,ghc-transformers-compat)
+ ("ghc-utf8-string" ,ghc-utf8-string)
+ ("ghc-xml-conduit" ,ghc-xml-conduit)
+ ("ghc-xml-hamlet" ,ghc-xml-hamlet)
+ ("ghc-network" ,ghc-network)
+ ("ghc-network-uri" ,ghc-network-uri)
+ ("ghc-optparse-applicative" ,ghc-optparse-applicative)))
+ (home-page "http://floss.scru.org/hDAV")
+ (synopsis "RFC 4918 WebDAV support")
+ (description "This package provides a library for the Web Distributed
+Authoring and Versioning (WebDAV) extensions to HTTP as well an executable,
+@command{hdav}, for command-line operation.")
+ (license license:gpl3)))
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 08d6580a32..f4af00283c 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -20,7 +20,7 @@
;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com>
;;; Copyright © 2019,2020 John Soo <jsoo1@asu.edu>
-;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com>
+;;; Copyright © 2019, 2020 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 JoJo <jo@jo.zone>
@@ -14712,6 +14712,30 @@ the @code{conduit} package.")
documents.")
(license license:expat)))
+(define-public ghc-xml-hamlet
+ (package
+ (name "ghc-xml-hamlet")
+ (version "0.5.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/xml-hamlet/"
+ "xml-hamlet-" version ".tar.gz"))
+ (sha256
+ (base32 "0jrhcjy7ww59dafg857f2g2df1fw2jmbwcs1q379ph0pc5rxj3lj"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-shakespeare" ,ghc-shakespeare)
+ ("ghc-xml-conduit" ,ghc-xml-conduit)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-hunit" ,ghc-hunit)))
+ (home-page "https://www.yesodweb.com/")
+ (synopsis "Hamlet-style quasiquoter for XML content")
+ (description "This package provides a type-safe tool for generating XML
+code via quasi-quoting built on top of @code{ghc-shakespeare}.")
+ (license license:bsd-3)))
+
(define-public ghc-yaml
(package
(name "ghc-yaml")
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index a1abd7d46c..d264ca5bbe 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -27,6 +27,7 @@
(define-module (gnu packages kde-frameworks)
#:use-module (guix build-system cmake)
#:use-module (guix build-system qt)
+ #:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
@@ -57,6 +58,7 @@
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages image)
#:use-module (gnu packages kerberos)
+ #:use-module (gnu packages kde-plasma)
#:use-module (gnu packages libreoffice)
#:use-module (gnu packages linux)
#:use-module (gnu packages mp3)
@@ -325,6 +327,63 @@ It is the default icon theme for the KDE Plasma 5 desktop.")
;; text.
(license license:lgpl3+)))
+(define-public breeze-assets
+ (package
+ (inherit breeze-icons)
+ (name "breeze-assets")
+ (version "5.19.5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://kde/stable/plasma/" version
+ "/breeze-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0dpk1w7zcafrzf46j060i1qb0fwqpsflkfzr6gcar81llmjnc4b1"))))
+ (inputs
+ `(,@(package-inputs breeze-icons)
+ ("ki18n" ,ki18n)
+ ("kpackage" ,kpackage)
+ ("kguiaddons" ,kguiaddons)
+ ("kdecoration" ,kdecoration)
+ ("kcoreaddons" ,kcoreaddons)
+ ("kiconthemes" ,kiconthemes)
+ ("kwindowsystem" ,kwindowsystem)
+ ("kconfigwidgets" ,kconfigwidgets)
+ ("qtx11extras" ,qtx11extras)))
+ (home-page "https://github.com/KDE/breeze")
+ (synopsis "Artwork, styles and assets for the Breeze visual style")
+ (description "This package contains artwork, styles and assets associated
+with the Breeze visual style.")
+ (license license:gpl2+)))
+
+(define-public breeze
+ (package
+ (name "breeze")
+ (version (package-version breeze-assets))
+ (source #f)
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build union))
+ #:builder
+ (begin
+ (use-modules (ice-9 match)
+ (guix build union))
+ (match %build-inputs
+ (((names . directories) ...)
+ (union-build (assoc-ref %outputs "out")
+ directories)
+ #t)))))
+ (inputs
+ `(("breeze-icons" ,breeze-icons)
+ ("breeze-assets" ,breeze-assets)))
+ (home-page "https://github.com/KDE/breeze-icons")
+ (synopsis "Full KDE Breeze theme")
+ (description
+ "This package contains the full Breeze visual style for KDE:
+assets and icons.")
+ (license (list license:gpl2 license:gpl3+))))
+
(define-public kapidox
(package
(name "kapidox")
diff --git a/gnu/packages/kde-multimedia.scm b/gnu/packages/kde-multimedia.scm
index dd1355010e..23417a982d 100644
--- a/gnu/packages/kde-multimedia.scm
+++ b/gnu/packages/kde-multimedia.scm
@@ -355,7 +355,7 @@ This package is part of the KDE multimedia module.")
("libiconv" ,libiconv)
("libkcddb" ,libkcddb)
("libmad" ,libmad)
- ("libmpcdec" ,libmpcdec) ;; FIXME: why does cmake not find this?
+ ("libmpcdec" ,libmpcdec)
;;("libmusicbrainz" ,libmusicbrainz) ; wants old version 2
("libsamplerate" ,libsamplerate)
("libsndfile" ,libsndfile)
@@ -366,7 +366,8 @@ This package is part of the KDE multimedia module.")
("shared-mime-info" ,shared-mime-info)
("solid" ,solid)
("sox" ,sox)
- ("taglib" ,taglib)))
+ ("taglib" ,taglib)
+ ("zlib" ,zlib)))
(home-page "https://kde.org/applications/multimedia/org.kde.k3b")
(synopsis "Sophisticated CD/DVD burning application")
(description "K3b is CD-writing software which intends to be feature-rich
diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm
index 4959f96a19..0c59cd1bf7 100644
--- a/gnu/packages/language.scm
+++ b/gnu/packages/language.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2018 Nikita <nikita@n0.is>
;;; Copyright © 2019 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -23,14 +24,17 @@
(define-module (gnu packages language)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages audio)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages java)
+ #:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages man)
#:use-module (gnu packages ocr)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages swig)
@@ -1057,3 +1061,46 @@ labelled links connecting pairs of words. The parser also produces a
\"constituent\" (HPSG style phrase tree) representation of a sentence (showing
noun phrases, verb phrases, etc.).")
(license bsd-3)))
+
+(define-public praat
+ (package
+ (name "praat")
+ (version "6.1.16")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/praat/praat")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1rx4qvl0dd85x0r6pl0zk4bysx9ykxl05kywjr4pyvv6dvpswkrm"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f; no test target
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (copy-file "makefiles/makefile.defs.linux.pulse" "makefile.defs")
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (mkdir-p bin)
+ (copy-file "praat" (string-append bin "/praat")))
+ #t)))))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("gtk" ,gtk+-2)
+ ("jack" ,jack-1)
+ ("publesaudio" ,pulseaudio)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://www.fon.hum.uva.nl/praat/")
+ (synopsis "Doing phonetics by computer")
+ (description "Praat is a tool to perform phonetics tasks. It can do speach
+analysis (pitch, formant, intensity, ...), speach synthesis, labeling, segmenting
+and manipulation.")
+ (license gpl2+)))
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index ca79b0653b..b85a3a60ac 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -762,14 +762,14 @@ from the old StarOffice (.sdc, .sdw, ...).")
(define-public libwps
(package
(name "libwps")
- (version "0.4.10")
+ (version "0.4.12")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/" name "/" name "/"
name "-" version "/" name "-" version ".tar.xz"))
(sha256 (base32
- "1ji9zd4wxmas03g8jyx0ih0amrqfazm5874a2v9rd7va50sf088l"))))
+ "1nsfacqp5sfkyayw7q0wp68lidksd1wjdix8qmsbf0vdl19gn6p2"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 67a9d28278..fd119d3a5a 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -195,7 +195,7 @@ defconfig. Return the appropriate make target if applicable, otherwise return
(method url-fetch)
(uri (string-append "https://linux-libre.fsfla.org"
"/pub/linux-libre/releases/" version "-gnu/"
- "deblob-" (version-major+minor version)))
+ "deblob-" version))
(file-name (string-append "linux-libre-deblob-"
(version-major+minor version)))
(sha256 deblob-hash))
@@ -204,46 +204,9 @@ defconfig. Return the appropriate make target if applicable, otherwise return
(uri (string-append "https://linux-libre.fsfla.org"
"/pub/linux-libre/releases/" version "-gnu/"
"deblob-check"))
- (file-name (string-append "linux-libre-deblob-check-"
- (version-major+minor version)))
+ (file-name (string-append "linux-libre-deblob-check-" version))
(sha256 deblob-check-hash))))
-(define deblob-scripts-5.8
- (linux-libre-deblob-scripts
- "5.8.6"
- (base32 "07z7sglyrfh0706icqqf3shadf638pvyid9386r661ds5lbsa2mw")
- (base32 "0j6jba5fcddqlb42f95gjl78jisfla4nswqila074gglcrbnl9q7")))
-
-(define deblob-scripts-5.4
- (linux-libre-deblob-scripts
- "5.4.62"
- (base32 "0ckxn7k5zgcqk30dq943bnamr6a6zjbw2aqjl3x30f4kvh5f6k25")
- (base32 "1b3q88i2qfdxyvpi9f7jds0qlb8hfpw87mgia096ax6822c2cmyb")))
-
-(define deblob-scripts-4.19
- (linux-libre-deblob-scripts
- "4.19.143"
- (base32 "02zs405awaxydbapka4nz8h6lmnc0dahgczqsrs5s2bmzjyyqkcy")
- (base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf")))
-
-(define deblob-scripts-4.14
- (linux-libre-deblob-scripts
- "4.14.196"
- (base32 "091jk9jkn9jf39bxpc7395bhcb7p96nkg3a8047380ki06lnfxh6")
- (base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky")))
-
-(define deblob-scripts-4.9
- (linux-libre-deblob-scripts
- "4.9.235"
- (base32 "1wvldzlv7q2xdbadas87dh593nxr4a8p5n0f8zpm72lja6w18hmg")
- (base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2")))
-
-(define deblob-scripts-4.4
- (linux-libre-deblob-scripts
- "4.4.235"
- (base32 "0x2j1i88am54ih2mk7gyl79g25l9zz4r08xhl482l3fvjj2irwbw")
- (base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf")))
-
(define* (computed-origin-method gexp-promise hash-algo hash
#:optional (name "source")
#:key (system (%current-system))
@@ -384,39 +347,69 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(sha256 hash)))
-(define-public linux-libre-5.8-version "5.8.6")
+;; The current "stable" kernel. That is, the most recently released major
+;; version.
+(define-public linux-libre-5.8-version "5.8.8")
+(define deblob-scripts-5.8
+ (linux-libre-deblob-scripts
+ "5.8.7"
+ (base32 "07z7sglyrfh0706icqqf3shadf638pvyid9386r661ds5lbsa2mw")
+ (base32 "0j6jba5fcddqlb42f95gjl78jisfla4nswqila074gglcrbnl9q7")))
(define-public linux-libre-5.8-pristine-source
(let ((version linux-libre-5.8-version)
- (hash (base32 "180bka8a0f2ykaifgb323pzgh0n909mlrsk08l08zmifggnh19cc")))
+ (hash (base32 "0xm901zvvrwsb9k88la6pb65nybi43bygiyz1z68njwsx6ripxik")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.8)))
-(define-public linux-libre-5.4-version "5.4.62")
+;; The "longterm" kernels — the older releases with long-term upstream support.
+;; Here are the support timelines:
+;; <https://www.kernel.org/category/releases.html>
+(define-public linux-libre-5.4-version "5.4.64")
+(define deblob-scripts-5.4
+ (linux-libre-deblob-scripts
+ "5.4.63"
+ (base32 "0ckxn7k5zgcqk30dq943bnamr6a6zjbw2aqjl3x30f4kvh5f6k25")
+ (base32 "1b3q88i2qfdxyvpi9f7jds0qlb8hfpw87mgia096ax6822c2cmyb")))
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
- (hash (base32 "0w49y8lymz23x4mr5byaxnrkhm56lwfhnqkra07hqyfr5y63v216")))
+ (hash (base32 "1vymhl6p7i06gfgpw9iv75bvga5sj5kgv46i1ykqiwv6hj9w5lxr")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
-(define-public linux-libre-4.19-version "4.19.143")
+(define-public linux-libre-4.19-version "4.19.144")
+(define deblob-scripts-4.19
+ (linux-libre-deblob-scripts
+ "4.19.143"
+ (base32 "02zs405awaxydbapka4nz8h6lmnc0dahgczqsrs5s2bmzjyyqkcy")
+ (base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf")))
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
- (hash (base32 "1383yfwb962mhn25b3b3zqrwnpyp01g5xclsv14wra0fdz33ahra")))
+ (hash (base32 "0jnj65bdy5y9lcj5zhrn4iaszpww8z41ac66j00l75sd931l1g9k")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
-(define-public linux-libre-4.14-version "4.14.196")
+(define-public linux-libre-4.14-version "4.14.197")
+(define deblob-scripts-4.14
+ (linux-libre-deblob-scripts
+ "4.14.196"
+ (base32 "091jk9jkn9jf39bxpc7395bhcb7p96nkg3a8047380ki06lnfxh6")
+ (base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky")))
(define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version)
- (hash (base32 "16mhqymwkgqi8zalcij5c754smc8ysvfw6l2cwshr4scipsv4qay")))
+ (hash (base32 "029h46yki2hxdbn7afmnf3yar1pnwrpszx76irsa5mf8gnrasyp0")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.14)))
(define-public linux-libre-4.9-version "4.9.235")
+(define deblob-scripts-4.9
+ (linux-libre-deblob-scripts
+ linux-libre-4.9-version
+ (base32 "1wvldzlv7q2xdbadas87dh593nxr4a8p5n0f8zpm72lja6w18hmg")
+ (base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2")))
(define-public linux-libre-4.9-pristine-source
(let ((version linux-libre-4.9-version)
(hash (base32 "1hqcb3zw4546h6x5xy2mywdznha8813lx15mxbgfbvwm4qhsc9g6")))
@@ -425,6 +418,11 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
deblob-scripts-4.9)))
(define-public linux-libre-4.4-version "4.4.235")
+(define deblob-scripts-4.4
+ (linux-libre-deblob-scripts
+ linux-libre-4.4-version
+ (base32 "0x2j1i88am54ih2mk7gyl79g25l9zz4r08xhl482l3fvjj2irwbw")
+ (base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf")))
(define-public linux-libre-4.4-pristine-source
(let ((version linux-libre-4.4-version)
(hash (base32 "0w5pkv936zb0shjgnpv17gcp5n8f91djznzq54p6j1bl5q2qdyqd")))
@@ -7521,3 +7519,30 @@ tracing (uprobes), and tracepoints. The bpftrace language is inspired by awk
and C, and predecessor tracers such as DTrace and SystemTap. bpftrace was
created by Alastair Robertson.")
(license license:asl2.0)))
+
+(define-public ttyebus-linux-module
+ (let ((revision "0")
+ (commit "fe4332a2281cf79804ef4d8516aa848ca1c58d1f"))
+ (package
+ (name "ttyebus-linux-module")
+ (version (git-version "1.5" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/eBUS/ttyebus.git")
+ (commit "fe4332a2281cf79804ef4d8516aa848ca1c58d1f")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1i66xjs9vln5cca6wx7aiiw7jihrlsk9hjdqyczp36fvm1b1bani"))))
+ (supported-systems '("armhf-linux" "aarch64-linux"))
+ (build-system linux-module-build-system)
+ (arguments
+ `(#:tests? #f))
+ (home-page "https://github.com/eBUS/ttyebus")
+ (synopsis "Low-latency Raspberry Pi UART driver")
+ (description "This package provides a Linux kernel module that will
+provide a serial device @code{/dev/ttyebus} with almost no latency upon
+receiving. It is dedicated to the PL011 UART of the Raspberry Pi.")
+ (license license:gpl3+))))
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 135702128f..282e300e7c 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -75,6 +75,7 @@
#:use-module (gnu packages webkit)
#:use-module (gnu packages xdisorg)
#:use-module (ice-9 match)
+ #:use-module (srfi srfi-1)
#:use-module (srfi srfi-19))
(define-public sbcl-alexandria
@@ -321,7 +322,18 @@ streams which are similar to string streams.")
(sha256
(base32 "0dwvr29diqzcg5n6jvbk2rnd90i05l7n828hhw99khmqd0kz7xsi"))))
(build-system asdf-build-system/sbcl)
- (native-inputs `(("flexi-streams" ,sbcl-flexi-streams)))
+ (native-inputs
+ `(("flexi-streams" ,sbcl-flexi-streams)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-ppcre-unicode
+ ;; cl-ppcre and cl-ppcre-unicode are put in different packages
+ ;; to work around the circular dependency between edicl/cl-ppcre
+ ;; and edicl/cl-unicode.
+ (lambda _
+ (delete-file "cl-ppcre-unicode.asd")
+ #t)))))
(synopsis "Portable regular expression library for Common Lisp")
(description "CL-PPCRE is a portable regular expression library for Common
Lisp, which is compatible with perl. It is pretty fast, thread-safe, and
@@ -335,9 +347,9 @@ compatible with ANSI-compliant Common Lisp implementations.")
(define-public ecl-cl-ppcre
(sbcl-package->ecl-package sbcl-cl-ppcre))
-(define sbcl-cl-unicode-base
+(define-public sbcl-cl-unicode
(package
- (name "sbcl-cl-unicode-base")
+ (name "sbcl-cl-unicode")
(version "0.1.6")
(source (origin
(method git-fetch)
@@ -349,9 +361,8 @@ compatible with ANSI-compliant Common Lisp implementations.")
(base32
"0ykx2s9lqfl74p1px0ik3l2izd1fc9jd1b4ra68s5x34rvjy0hza"))))
(build-system asdf-build-system/sbcl)
- (arguments
- '(#:asd-file "cl-unicode.asd"
- #:asd-system-name "cl-unicode/base"))
+ (native-inputs
+ `(("flexi-streams" ,sbcl-flexi-streams)))
(inputs
`(("cl-ppcre" ,sbcl-cl-ppcre)))
(home-page "http://weitz.de/cl-unicode/")
@@ -361,23 +372,36 @@ is compatible with perl. It is pretty fast, thread-safe, and compatible with
ANSI-compliant Common Lisp implementations.")
(license license:bsd-2)))
-(define-public sbcl-cl-unicode
- (package
- (inherit sbcl-cl-unicode-base)
- (name "sbcl-cl-unicode")
- (inputs
- `(("cl-unicode/base" ,sbcl-cl-unicode-base)
- ,@(package-inputs sbcl-cl-unicode-base)))
- (native-inputs
- `(("flexi-streams" ,sbcl-flexi-streams)))
- (arguments '())))
-
(define-public ecl-cl-unicode
(sbcl-package->ecl-package sbcl-cl-unicode))
(define-public cl-unicode
(sbcl-package->cl-source-package sbcl-cl-unicode))
+(define-public sbcl-cl-ppcre-unicode
+ (package (inherit sbcl-cl-ppcre)
+ (name "sbcl-cl-ppcre-unicode")
+ (inputs
+ `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
+ ("sbcl-cl-unicode" ,sbcl-cl-unicode)))
+ (arguments
+ `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-ppcre
+ ;; cl-ppcre and cl-ppcre-unicode are put in different packages
+ ;; to work around the circular dependency between edicl/cl-ppcre
+ ;; and edicl/cl-unicode.
+ (lambda _
+ (delete-file "cl-ppcre.asd")
+ #t)))))))
+
+(define-public cl-ppcre-unicode
+ (sbcl-package->cl-source-package sbcl-cl-ppcre-unicode))
+
+(define-public ecl-cl-ppcre-unicode
+ (sbcl-package->ecl-package sbcl-cl-ppcre-unicode))
+
(define-public sbcl-zpb-ttf
(package
(name "sbcl-zpb-ttf")
@@ -407,9 +431,9 @@ file.")
(define-public cl-zpb-ttf
(sbcl-package->cl-source-package sbcl-zpb-ttf))
-(define-public sbcl-cl-aa
+(define-public sbcl-cl-vectors
(package
- (name "sbcl-cl-aa")
+ (name "sbcl-cl-vectors")
(version "0.1.5")
(source
(origin
@@ -420,67 +444,17 @@ file.")
(base32
"04lhwi0kq8pkwhgd885pk80m1cp9sfvjjn5zj70s1dnckibhdmqh"))))
(build-system asdf-build-system/sbcl)
- (arguments '(#:asd-file "cl-aa.asd"))
- (home-page "http://projects.tuxee.net/cl-vectors/")
- (synopsis "Polygon rasterizer")
- (description
- "This is a Common Lisp library implementing the AA polygon rasterization
-algorithm from the @url{http://antigrain.com, Antigrain} project.")
- (license license:expat)))
-
-(define-public ecl-cl-aa
- (sbcl-package->ecl-package sbcl-cl-aa))
-
-(define-public cl-aa
- (sbcl-package->cl-source-package sbcl-cl-aa))
-
-(define-public sbcl-cl-paths
- (package
- (inherit sbcl-cl-aa)
- (name "sbcl-cl-paths")
- (arguments '(#:asd-file "cl-paths.asd"))
- (synopsis "Facilities to create and manipulate vectorial paths")
- (description
- "This package provides facilities to create and manipulate vectorial
-paths.")))
-
-(define-public ecl-cl-paths
- (sbcl-package->ecl-package sbcl-cl-paths))
-
-(define-public cl-paths
- (sbcl-package->cl-source-package sbcl-cl-paths))
-
-(define-public sbcl-cl-paths-ttf
- (package
- (inherit sbcl-cl-aa)
- (name "sbcl-cl-paths-ttf")
- (arguments '(#:asd-file "cl-paths-ttf.asd"))
(inputs
- `(("cl-paths" ,sbcl-cl-paths)
- ("zpb-ttf" ,sbcl-zpb-ttf)))
- (synopsis "Facilities to create and manipulate vectorial paths")
- (description
- "This package provides facilities to create and manipulate vectorial
-paths.")))
-
-(define-public ecl-cl-paths-ttf
- (sbcl-package->ecl-package sbcl-cl-paths-ttf))
-
-(define-public cl-paths-ttf
- (sbcl-package->cl-source-package sbcl-cl-paths-ttf))
-
-(define-public sbcl-cl-vectors
- (package
- (inherit sbcl-cl-aa)
- (name "sbcl-cl-vectors")
- (arguments '(#:asd-file "cl-vectors.asd"))
- (inputs
- `(("cl-aa" ,sbcl-cl-aa)
- ("cl-paths" ,sbcl-cl-paths)))
+ `(("zpb-ttf" ,sbcl-zpb-ttf)))
+ (arguments
+ '(#:asd-systems '("cl-vectors"
+ "cl-paths-ttf")))
+ (home-page "http://projects.tuxee.net/cl-vectors/")
(synopsis "Create, transform and render anti-aliased vectorial paths")
(description
"This is a pure Common Lisp library to create, transform and render
-anti-aliased vectorial paths.")))
+anti-aliased vectorial paths.")
+ (license license:expat)))
(define-public ecl-cl-vectors
(sbcl-package->ecl-package sbcl-cl-vectors))
@@ -508,7 +482,6 @@ anti-aliased vectorial paths.")))
(build-system asdf-build-system/sbcl)
(arguments
'(#:tests? #f ; spatial-trees.test requires spatial-trees.nns
- #:asd-file "spatial-trees.asd"
#:test-asd-file "spatial-trees.test.asd"))
(native-inputs
`(("fiveam" ,sbcl-fiveam)))
@@ -650,7 +623,6 @@ from other CLXes around the net.")
`(("clx" ,sbcl-clx)
("zpb-ttf" ,sbcl-zpb-ttf)
("cl-vectors" ,sbcl-cl-vectors)
- ("cl-paths-ttf" ,sbcl-cl-paths-ttf)
("cl-fad" ,sbcl-cl-fad)
("cl-store" ,sbcl-cl-store)
("trivial-features" ,sbcl-trivial-features)))
@@ -660,30 +632,19 @@ from other CLXes around the net.")
antialiased TrueType font rendering using CLX and XRender extension.")
(license license:expat))))
-(define-public sbcl-cl-ppcre-unicode
- (package (inherit sbcl-cl-ppcre)
- (name "sbcl-cl-ppcre-unicode")
- (arguments
- `(#:tests? #f ; tests fail with "Component :CL-PPCRE-TEST not found"
- #:asd-file "cl-ppcre-unicode.asd"))
- (inputs
- `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
- ("sbcl-cl-unicode" ,sbcl-cl-unicode)))))
+(define-public cl-clx-truetype
+ (sbcl-package->cl-source-package sbcl-clx-truetype))
-(define-public ecl-cl-ppcre-unicode
- (sbcl-package->ecl-package sbcl-cl-ppcre-unicode))
+(define-public ecl-clx-truetype
+ (sbcl-package->ecl-package sbcl-clx-truetype))
-;; The slynk that users expect to install includes all of slynk's contrib
-;; modules. Therefore, we build the base module and all contribs first; then
-;; we expose the union of these as `sbcl-slynk'. The following variable
-;; describes the base module.
-(define sbcl-slynk-boot0
+(define-public sbcl-slynk
(let ((revision "3")
;; Update together with emacs-sly.
(commit "6a2f543cb21f14104c2253af5a1427b884a987ae"))
(package
- (name "sbcl-slynk-boot0")
- (version (string-append "1.0.0-beta-" revision "." (string-take commit 7)))
+ (name "sbcl-slynk")
+ (version (git-version "1.0.0-beta" revision commit))
(source
(origin
(method git-fetch)
@@ -693,7 +654,7 @@ antialiased TrueType font rendering using CLX and XRender extension.")
(commit commit)))
(sha256
(base32 "0wbpg9p9yg2hd62l15pvy50fk3hndq5zzyqlyyf04g368s895144"))
- (file-name (string-append "slynk-" version "-checkout"))
+ (file-name (git-file-name "slynk" version))
(modules '((guix build utils)
(ice-9 ftw)))
(snippet
@@ -724,9 +685,40 @@ antialiased TrueType font rendering using CLX and XRender extension.")
(scandir "slynk"))
#t))))
(build-system asdf-build-system/sbcl)
+ (outputs '("out" "image"))
(arguments
`(#:tests? #f ; No test suite
- #:asd-system-name "slynk"))
+ #:asd-systems '("slynk"
+ "slynk/arglists"
+ "slynk/util"
+ "slynk/fancy-inspector"
+ "slynk/package-fu"
+ "slynk/mrepl"
+ "slynk/trace-dialog"
+ "slynk/profiler"
+ "slynk/stickers"
+ "slynk/indentation"
+ "slynk/retro")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'create-asdf-configuration 'build-image
+ (lambda* (#:key outputs #:allow-other-keys)
+ (build-image (string-append
+ (assoc-ref %outputs "image")
+ "/bin/slynk")
+ %outputs
+ #:dependencies '("slynk"
+ "slynk/arglists"
+ "slynk/util"
+ "slynk/fancy-inspector"
+ "slynk/package-fu"
+ "slynk/mrepl"
+ "slynk/trace-dialog"
+ "slynk/profiler"
+ "slynk/stickers"
+ "slynk/indentation"
+ "slynk/retro"))
+ #t)))))
(synopsis "Common Lisp IDE for Emacs")
(description "SLY is a fork of SLIME, an IDE backend for Common Lisp.
It also features a completely redesigned REPL based on Emacs's own
@@ -739,193 +731,9 @@ multiple inspectors with independent history.")
(define-public cl-slynk
(package
- (inherit (sbcl-package->cl-source-package sbcl-slynk-boot0))
+ (inherit (sbcl-package->cl-source-package sbcl-slynk))
(name "cl-slynk")))
-(define ecl-slynk-boot0
- (sbcl-package->ecl-package sbcl-slynk-boot0))
-
-(define sbcl-slynk-arglists
- (package
- (inherit sbcl-slynk-boot0)
- (name "sbcl-slynk-arglists")
- (inputs `(("slynk" ,sbcl-slynk-boot0)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
- ((#:asd-file _ "") "slynk.asd")
- ((#:asd-system-name _ #f) "slynk/arglists")))))
-
-(define ecl-slynk-arglists
- (sbcl-package->ecl-package sbcl-slynk-arglists))
-
-(define sbcl-slynk-util
- (package
- (inherit sbcl-slynk-boot0)
- (name "sbcl-slynk-util")
- (inputs `(("slynk" ,sbcl-slynk-boot0)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0)
- ((#:asd-file _ "") "slynk.asd")
- ((#:asd-system-name _ #f) "slynk/util")))))
-
-(define ecl-slynk-util
- (sbcl-package->ecl-package sbcl-slynk-util))
-
-(define sbcl-slynk-fancy-inspector
- (package
- (inherit sbcl-slynk-arglists)
- (name "sbcl-slynk-fancy-inspector")
- (inputs `(("slynk-util" ,sbcl-slynk-util)
- ,@(package-inputs sbcl-slynk-arglists)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
- ((#:asd-system-name _ #f) "slynk/fancy-inspector")))))
-
-(define ecl-slynk-fancy-inspector
- (sbcl-package->ecl-package sbcl-slynk-fancy-inspector))
-
-(define sbcl-slynk-package-fu
- (package
- (inherit sbcl-slynk-arglists)
- (name "sbcl-slynk-package-fu")
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
- ((#:asd-system-name _ #f) "slynk/package-fu")))))
-
-(define ecl-slynk-package-fu
- (sbcl-package->ecl-package sbcl-slynk-package-fu))
-
-(define sbcl-slynk-mrepl
- (package
- (inherit sbcl-slynk-fancy-inspector)
- (name "sbcl-slynk-mrepl")
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
- ((#:asd-system-name _ #f) "slynk/mrepl")))))
-
-(define ecl-slynk-mrepl
- (sbcl-package->ecl-package sbcl-slynk-mrepl))
-
-(define sbcl-slynk-trace-dialog
- (package
- (inherit sbcl-slynk-arglists)
- (name "sbcl-slynk-trace-dialog")
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
- ((#:asd-system-name _ #f) "slynk/trace-dialog")))))
-
-(define ecl-slynk-trace-dialog
- (sbcl-package->ecl-package sbcl-slynk-trace-dialog))
-
-(define sbcl-slynk-profiler
- (package
- (inherit sbcl-slynk-arglists)
- (name "sbcl-slynk-profiler")
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
- ((#:asd-system-name _ #f) "slynk/profiler")))))
-
-(define ecl-slynk-profiler
- (sbcl-package->ecl-package sbcl-slynk-profiler))
-
-(define sbcl-slynk-stickers
- (package
- (inherit sbcl-slynk-arglists)
- (name "sbcl-slynk-stickers")
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
- ((#:asd-system-name _ #f) "slynk/stickers")))))
-
-(define ecl-slynk-stickers
- (sbcl-package->ecl-package sbcl-slynk-stickers))
-
-(define sbcl-slynk-indentation
- (package
- (inherit sbcl-slynk-arglists)
- (name "sbcl-slynk-indentation")
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
- ((#:asd-system-name _ #f) "slynk/indentation")))))
-
-(define ecl-slynk-indentation
- (sbcl-package->ecl-package sbcl-slynk-indentation))
-
-(define sbcl-slynk-retro
- (package
- (inherit sbcl-slynk-arglists)
- (name "sbcl-slynk-retro")
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-slynk-arglists)
- ((#:asd-system-name _ #f) "slynk/retro")))))
-
-(define ecl-slynk-retro
- (sbcl-package->ecl-package sbcl-slynk-retro))
-
-(define slynk-systems
- '("slynk"
- "slynk-util"
- "slynk-arglists"
- "slynk-fancy-inspector"
- "slynk-package-fu"
- "slynk-mrepl"
- "slynk-profiler"
- "slynk-trace-dialog"
- "slynk-stickers"
- "slynk-indentation"
- "slynk-retro"))
-
-(define-public sbcl-slynk
- (package
- (inherit sbcl-slynk-boot0)
- (name "sbcl-slynk")
- (inputs
- `(("slynk" ,sbcl-slynk-boot0)
- ("slynk-util" ,sbcl-slynk-util)
- ("slynk-arglists" ,sbcl-slynk-arglists)
- ("slynk-fancy-inspector" ,sbcl-slynk-fancy-inspector)
- ("slynk-package-fu" ,sbcl-slynk-package-fu)
- ("slynk-mrepl" ,sbcl-slynk-mrepl)
- ("slynk-profiler" ,sbcl-slynk-profiler)
- ("slynk-trace-dialog" ,sbcl-slynk-trace-dialog)
- ("slynk-stickers" ,sbcl-slynk-stickers)
- ("slynk-indentation" ,sbcl-slynk-indentation)
- ("slynk-retro" ,sbcl-slynk-retro)))
- (native-inputs `(("sbcl" ,sbcl)))
- (build-system trivial-build-system)
- (source #f)
- (outputs '("out" "image"))
- (arguments
- `(#:modules ((guix build union)
- (guix build utils)
- (guix build lisp-utils))
- #:builder
- (begin
- (use-modules (ice-9 match)
- (srfi srfi-1)
- (guix build union)
- (guix build lisp-utils))
-
- (union-build
- (assoc-ref %outputs "out")
- (filter-map
- (match-lambda
- ((name . path)
- (if (string-prefix? "slynk" name) path #f)))
- %build-inputs))
-
- (prepend-to-source-registry
- (string-append (assoc-ref %outputs "out") "//"))
-
- (parameterize ((%lisp-type "sbcl")
- (%lisp (string-append (assoc-ref %build-inputs "sbcl")
- "/bin/sbcl")))
- (build-image (string-append
- (assoc-ref %outputs "image")
- "/bin/slynk")
- %outputs
- #:dependencies ',slynk-systems))
- #t)))))
-
(define-public ecl-slynk
(package
(inherit sbcl-slynk)
@@ -975,6 +783,9 @@ JavaScript (ECMAScript 3). It has basic support for ECMAScript 5.")
(define-public cl-parse-js
(sbcl-package->cl-source-package sbcl-parse-js))
+(define-public ecl-parse-js
+ (sbcl-package->ecl-package sbcl-parse-js))
+
(define-public sbcl-parse-number
(package
(name "sbcl-parse-number")
@@ -1002,6 +813,9 @@ else @code{parse-number} signals an error of type @code{invalid-number}.")
(define-public cl-parse-number
(sbcl-package->cl-source-package sbcl-parse-number))
+(define-public ecl-parse-number
+ (sbcl-package->ecl-package sbcl-parse-number))
+
(define-public sbcl-iterate
(package
(name "sbcl-iterate")
@@ -1080,6 +894,9 @@ compressor. It works on data produced by @code{parse-js} to generate a
(define-public cl-uglify-js
(sbcl-package->cl-source-package sbcl-cl-uglify-js))
+(define-public ecl-cl-uglify-js
+ (sbcl-package->ecl-package sbcl-cl-uglify-js))
+
(define-public uglify-js
(package
(inherit sbcl-cl-uglify-js)
@@ -1095,9 +912,14 @@ compressor. It works on data produced by @code{parse-js} to generate a
(with-output-to-file script
(lambda _
(format #t "#!~a/bin/sbcl --script
+
(require :asdf)
- (push (truename \"~a/lib/sbcl\") asdf:*central-registry*)"
+ (asdf:initialize-source-registry
+ #p\"~a/etc/common-lisp/source-registry.conf.d/\")
+ (asdf:initialize-output-translations
+ #p\"~a/etc/common-lisp/asdf-output-translations.conf.d/\")"
(assoc-ref %build-inputs "sbcl")
+ (assoc-ref %build-inputs "sbcl-cl-uglify-js")
(assoc-ref %build-inputs "sbcl-cl-uglify-js"))
;; FIXME: cannot use progn here because otherwise it fails to
;; find cl-uglify-js.
@@ -1174,7 +996,9 @@ utilities that make it even easier to manipulate text in Common Lisp. It has
(sha256
(base32 "14pcahr8r2j3idhyy216zyw8jnj1dnrx0qbkkbdqkvwzign1ah4j"))))
(build-system asdf-build-system/sbcl)
- (arguments '(#:tests? #f))
+ (arguments
+ '(#:asd-files '("trivial-features.asd")
+ #:tests? #f))
(home-page "https://cliki.net/trivial-features")
(synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
(description "Trivial-features ensures that @code{*FEATURES*} is
@@ -1293,8 +1117,7 @@ GNU libiconv, but completely written in Common Lisp.")
(file-name (string-append "cl-yacc-" version "-checkout"))))
(build-system asdf-build-system/sbcl)
(arguments
- `(#:asd-file "yacc.asd"
- #:asd-system-name "yacc"))
+ `(#:asd-systems '("yacc")))
(synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
(description
"CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
@@ -1569,9 +1392,11 @@ C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
(arguments
;; FIXME: We need to specify the name because the build-system thinks
;; "3" is a version marker.
- `(#:asd-system-name "3bmd"))
+ `(#:asd-systems '("3bmd"
+ "3bmd-ext-code-blocks")))
(inputs
- `(("esrap" ,sbcl-esrap)
+ `(("colorize" ,sbcl-colorize)
+ ("esrap" ,sbcl-esrap)
("split-sequence" ,sbcl-split-sequence)))
(synopsis "Markdown processor in Command Lisp using esrap parser")
(description
@@ -1586,29 +1411,6 @@ parsing, and grammar based on @command{peg-markdown}.")
(define-public ecl-3bmd
(sbcl-package->ecl-package sbcl-3bmd))
-(define-public sbcl-3bmd-ext-code-blocks
- (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
- (package
- (inherit sbcl-3bmd)
- (name "sbcl-3bmd-ext-code-blocks")
- (arguments
- `(#:asd-system-name "3bmd-ext-code-blocks"
- #:asd-file "3bmd-ext-code-blocks.asd"))
- (inputs
- `(("3bmd" ,sbcl-3bmd)
- ("colorize" ,sbcl-colorize)))
- (synopsis "3bmd extension which adds support for GitHub-style fenced
-code blocks")
- (description
- "3bmd extension which adds support for GitHub-style fenced code blocks,
-with @command{colorize} support."))))
-
-(define-public cl-3bmd-ext-code-blocks
- (sbcl-package->cl-source-package sbcl-3bmd-ext-code-blocks))
-
-(define-public ecl-3bmd-ext-code-blocks
- (sbcl-package->ecl-package sbcl-3bmd-ext-code-blocks))
-
(define-public sbcl-cl-fad
(package
(name "sbcl-cl-fad")
@@ -1810,19 +1612,13 @@ writing code that contains string literals that contain code themselves.")
(define-public ecl-pythonic-string-reader
(sbcl-package->ecl-package sbcl-pythonic-string-reader))
-;; SLIME does not have a ASDF system definition to build all of Swank. As a
-;; result, the asdf-build-system/sbcl will produce an almost empty package.
-;; Some work was done to fix this at
-;; https://github.com/sionescu/slime/tree/swank-asdf but it was never merged
-;; and is now lagging behind. Building SBCL fasls might not be worth the
-;; hassle, so let's just ship the source then.
-(define-public cl-slime-swank
+(define-public sbcl-slime-swank
(package
- (name "cl-slime-swank")
+ (name "sbcl-slime-swank")
(version "2.24")
(source
(origin
- (file-name (string-append name "-" version ".tar.gz"))
+ (file-name (git-file-name "slime-swank" version))
(method git-fetch)
(uri (git-reference
(url "https://github.com/slime/slime/")
@@ -1830,7 +1626,9 @@ writing code that contains string literals that contain code themselves.")
(sha256
(base32
"0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
- (build-system asdf-build-system/source)
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ '(#:asd-systems '("swank")))
(home-page "https://github.com/slime/slime")
(synopsis "Common Lisp Swank server")
(description
@@ -1839,8 +1637,11 @@ processes that doesn't run under Emacs. Lisp processes created by
@command{M-x slime} automatically start the server.")
(license (list license:gpl2+ license:public-domain))))
-(define-public sbcl-slime-swank
- (deprecated-package "sbcl-slime-swank" cl-slime-swank))
+(define-public cl-slime-swank
+ (sbcl-package->cl-source-package sbcl-slime-swank))
+
+(define-public ecl-slime-swank
+ (sbcl-package->ecl-package sbcl-slime-swank))
(define-public sbcl-mgl-pax
(let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
@@ -1860,16 +1661,12 @@ processes that doesn't run under Emacs. Lisp processes created by
(build-system asdf-build-system/sbcl)
(inputs
`(("3bmd" ,sbcl-3bmd)
- ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks)
("babel" ,sbcl-babel)
("cl-fad" ,sbcl-cl-fad)
("ironclad" ,sbcl-ironclad)
("named-readtables" ,sbcl-named-readtables)
- ("pythonic-string-reader" ,sbcl-pythonic-string-reader)))
- (propagated-inputs
- ;; Packages having mgl-pax as input complain that it can't find
- ;; swank if we put it in inputs, so let's put it in propageted-inputs.
- `(("swank" ,cl-slime-swank)))
+ ("pythonic-string-reader" ,sbcl-pythonic-string-reader)
+ ("swank" ,sbcl-slime-swank)))
(synopsis "Exploratory programming environment and documentation generator")
(description
"PAX provides an extremely poor man's Explorable Programming
@@ -1893,7 +1690,13 @@ pretty, documentation is code.")
(sbcl-package->cl-source-package sbcl-mgl-pax))
(define-public ecl-mgl-pax
- (sbcl-package->ecl-package sbcl-mgl-pax))
+ (let ((pkg (sbcl-package->ecl-package sbcl-mgl-pax)))
+ (package
+ (inherit pkg)
+ (arguments
+ (substitute-keyword-arguments (package-arguments pkg)
+ ;; TODO: Find why the tests fail on ECL.
+ ((#:tests? _ #f) #f))))))
(define-public sbcl-lisp-unit
(let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
@@ -2116,10 +1919,10 @@ named color.")
(define-public ecl-cl-ansi-text
(sbcl-package->ecl-package sbcl-cl-ansi-text))
-(define-public sbcl-prove-asdf
+(define-public sbcl-prove
(let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
(package
- (name "sbcl-prove-asdf")
+ (name "sbcl-prove")
(version (git-version "1.0.0" "1" commit))
(source
(origin
@@ -2132,35 +1935,13 @@ named color.")
"07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
(file-name (git-file-name "prove" version))))
(build-system asdf-build-system/sbcl)
- (arguments
- `(#:asd-file "prove-asdf.asd"))
- (synopsis "Test requirement for the Common Lisp 'prove' library")
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cl-ppcre" ,sbcl-cl-ppcre)
+ ("cl-ansi-text" ,sbcl-cl-ansi-text)))
+ (synopsis "Yet another unit testing framework for Common Lisp")
(description
- "Test requirement for the Common Lisp @command{prove} library.")
- (home-page "https://github.com/fukamachi/prove")
- (license license:expat))))
-
-(define-public cl-prove-asdf
- (sbcl-package->cl-source-package sbcl-prove-asdf))
-
-(define-public ecl-prove-asdf
- (sbcl-package->ecl-package sbcl-prove-asdf))
-
-(define-public sbcl-prove
- (package
- (inherit sbcl-prove-asdf)
- (name "sbcl-prove")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-ppcre" ,sbcl-cl-ppcre)
- ("cl-ansi-text" ,sbcl-cl-ansi-text)))
- (native-inputs
- `(("prove-asdf" ,sbcl-prove-asdf)))
- (arguments
- `(#:asd-file "prove.asd"))
- (synopsis "Yet another unit testing framework for Common Lisp")
- (description
- "This project was originally called @command{cl-test-more}.
+ "This project was originally called @command{cl-test-more}.
@command{prove} is yet another unit testing framework for Common Lisp. The
advantages of @command{prove} are:
@@ -2170,7 +1951,9 @@ advantages of @command{prove} are:
@item Extensible test reporters
@item Colorizes the report if it's available (note for SLIME)
@item Reports test durations
-@end itemize\n")))
+@end itemize\n")
+ (home-page "https://github.com/fukamachi/prove")
+ (license license:expat))))
(define-public cl-prove
(sbcl-package->cl-source-package sbcl-prove))
@@ -2198,8 +1981,7 @@ advantages of @command{prove} are:
`(("alexandria" ,sbcl-alexandria)
("babel" ,sbcl-babel)))
(native-inputs
- `(("prove" ,sbcl-prove)
- ("prove-asdf" ,sbcl-prove-asdf)))
+ `(("prove" ,sbcl-prove)))
(arguments
;; TODO: Tests don't find "proc-parse-test", why?
`(#:tests? #f))
@@ -2237,8 +2019,7 @@ pattern-matching-like, but a char-by-char procedural parser.")
`(("alexandria" ,sbcl-alexandria)
("babel" ,sbcl-babel)))
(native-inputs
- `(("prove" ,sbcl-prove)
- ("prove-asdf" ,sbcl-prove-asdf)))
+ `(("prove" ,sbcl-prove)))
(arguments
;; TODO: Tests don't find "proc-parse-test", why?
`(#:tests? #f))
@@ -2255,12 +2036,12 @@ values from a string in Common Lisp.")
(define-public ecl-parse-float
(sbcl-package->ecl-package sbcl-parse-float))
-(define-public sbcl-ascii-strings
+(define-public sbcl-cl-string-match
(let ((revision "1")
(changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
(package
- (name "sbcl-ascii-strings")
- (version (string-append "0-" revision "." (string-take changeset 7)))
+ (name "sbcl-cl-string-match")
+ (version (git-version "0" revision changeset))
(source
(origin
(method hg-fetch)
@@ -2274,69 +2055,28 @@ values from a string in Common Lisp.")
(build-system asdf-build-system/sbcl)
(inputs
`(("alexandria" ,sbcl-alexandria)
- ("babel" ,sbcl-babel)))
+ ("babel" ,sbcl-babel)
+ ("iterate" ,sbcl-iterate)
+ ("jpl-queues" ,sbcl-jpl-queues)
+ ("jpl-util" ,sbcl-jpl-util)
+ ("mgl-pax" ,sbcl-mgl-pax)
+ ("parse-float" ,sbcl-parse-float)
+ ("proc-parse" ,sbcl-proc-parse)
+ ("yacc" ,sbcl-cl-yacc)))
+ ;; TODO: Tests are not evaluated properly.
+ (native-inputs
+ ;; For testing:
+ `(("lisp-unit" ,sbcl-lisp-unit)))
(arguments
- `(#:asd-file "ascii-strings.asd"))
- (synopsis "Operations on ASCII strings")
+ `(#:tests? #f))
+ (synopsis "Set of utilities to manipulate strings in Common Lisp")
(description
- "Operations on ASCII strings. Essentially this can be any kind of
-single-byte encoded strings.")
+ "@command{cl-strings} is a small, portable, dependency-free set of
+utilities that make it even easier to manipulate text in Common Lisp. It has
+100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
(home-page "https://bitbucket.org/vityok/cl-string-match/")
(license license:bsd-3))))
-(define-public cl-ascii-strings
- (sbcl-package->cl-source-package sbcl-ascii-strings))
-
-(define-public ecl-ascii-strings
- (sbcl-package->ecl-package sbcl-ascii-strings))
-
-(define-public sbcl-simple-scanf
- (package
- (inherit sbcl-ascii-strings)
- (name "sbcl-simple-scanf")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("iterate" ,sbcl-iterate)
- ("proc-parse" ,sbcl-proc-parse)
- ("parse-float" ,sbcl-parse-float)))
- (arguments
- `(#:asd-file "simple-scanf.asd"))
- (synopsis "Simple scanf-like functionality implementation")
- (description
- "A simple scanf-like functionality implementation.")))
-
-(define-public cl-simple-scanf
- (sbcl-package->cl-source-package sbcl-simple-scanf))
-
-(define-public ecl-simple-scanf
- (sbcl-package->ecl-package sbcl-simple-scanf))
-
-(define-public sbcl-cl-string-match
- (package
- (inherit sbcl-ascii-strings)
- (name "sbcl-cl-string-match")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("ascii-strings" ,sbcl-ascii-strings)
- ("yacc" ,sbcl-cl-yacc)
- ("jpl-util" ,sbcl-jpl-util)
- ("jpl-queues" ,sbcl-jpl-queues)
- ("mgl-pax" ,sbcl-mgl-pax)
- ("iterate" ,sbcl-iterate)))
- ;; TODO: Tests are not evaluated properly.
- (native-inputs
- ;; For testing:
- `(("lisp-unit" ,sbcl-lisp-unit)
- ("simple-scanf" ,sbcl-simple-scanf)))
- (arguments
- `(#:tests? #f
- #:asd-file "cl-string-match.asd"))
- (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
- (description
- "@command{cl-strings} is a small, portable, dependency-free set of
-utilities that make it even easier to manipulate text in Common Lisp. It has
-100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")))
-
(define-public cl-string-match
(sbcl-package->cl-source-package sbcl-cl-string-match))
@@ -2419,6 +2159,14 @@ Lisp programs. It parses URI according to the RFC 2396 specification.")
(base32
"0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
(build-system asdf-build-system/sbcl)
+ (inputs
+ `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
+ (arguments
+ '(#:asd-systems '("queues"
+ "queues.simple-queue"
+ "queues.simple-cqueue"
+ "queues.priority-queue"
+ "queues.priority-cqueue")))
(home-page "https://github.com/oconnore/queues")
(synopsis "Common Lisp queue library")
(description
@@ -2432,93 +2180,9 @@ non-consing thread safe queues and fibonacci priority queues.")
(define-public ecl-queues
(sbcl-package->ecl-package sbcl-queues))
-(define-public sbcl-queues.simple-queue
- (package
- (inherit sbcl-queues)
- (name "sbcl-queues.simple-queue")
- (inputs
- `(("sbcl-queues" ,sbcl-queues)))
- (arguments
- `(#:asd-file "queues.simple-queue.asd"))
- (synopsis "Simple queue implementation")
- (description
- "This is a simple queue library for Common Lisp with features such as
-non-consing thread safe queues and fibonacci priority queues.")
- (license license:expat)))
-
-(define-public cl-queues.simple-queue
- (sbcl-package->cl-source-package sbcl-queues.simple-queue))
-
-(define-public ecl-queues.simple-queue
- (sbcl-package->ecl-package sbcl-queues.simple-queue))
-
-(define-public sbcl-queues.simple-cqueue
- (package
- (inherit sbcl-queues)
- (name "sbcl-queues.simple-cqueue")
- (inputs
- `(("sbcl-queues" ,sbcl-queues)
- ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue)
- ("bordeaux-threads" ,sbcl-bordeaux-threads)))
- (arguments
- `(#:asd-file "queues.simple-cqueue.asd"))
- (synopsis "Thread safe queue implementation")
- (description
- "This is a simple queue library for Common Lisp with features such as
-non-consing thread safe queues and fibonacci priority queues.")
- (license license:expat)))
-
-(define-public cl-queues.simple-cqueue
- (sbcl-package->cl-source-package sbcl-queues.simple-cqueue))
-
-(define-public ecl-queues.simple-cqueue
- (sbcl-package->ecl-package sbcl-queues.simple-cqueue))
-
-(define-public sbcl-queues.priority-queue
- (package
- (inherit sbcl-queues)
- (name "sbcl-queues.priority-queue")
- (inputs
- `(("sbcl-queues" ,sbcl-queues)))
- (arguments
- `(#:asd-file "queues.priority-queue.asd"))
- (synopsis "Priority queue (Fibonacci) implementation")
- (description
- "This is a simple queue library for Common Lisp with features such as
-non-consing thread safe queues and fibonacci priority queues.")
- (license license:expat)))
-
-(define-public cl-queues.priority-queue
- (sbcl-package->cl-source-package sbcl-queues.priority-queue))
-
-(define-public ecl-queues.priority-queue
- (sbcl-package->ecl-package sbcl-queues.priority-queue))
-
-(define-public sbcl-queues.priority-cqueue
- (package
- (inherit sbcl-queues)
- (name "sbcl-queues.priority-cqueue")
- (inputs
- `(("sbcl-queues" ,sbcl-queues)
- ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue)
- ("bordeaux-threads" ,sbcl-bordeaux-threads)))
- (arguments
- `(#:asd-file "queues.priority-cqueue.asd"))
- (synopsis "Thread safe fibonacci priority queue implementation")
- (description
- "This is a simple queue library for Common Lisp with features such as
-non-consing thread safe queues and fibonacci priority queues.")
- (license license:expat)))
-
-(define-public cl-queues.priority-cqueue
- (sbcl-package->cl-source-package sbcl-queues.priority-cqueue))
-
-(define-public ecl-queues.priority-cqueue
- (sbcl-package->ecl-package sbcl-queues.priority-cqueue))
-
-(define sbcl-cffi-bootstrap
+(define-public sbcl-cffi
(package
- (name "sbcl-cffi-bootstrap")
+ (name "sbcl-cffi")
(version "0.21.0")
(source
(origin
@@ -2531,12 +2195,14 @@ non-consing thread safe queues and fibonacci priority queues.")
(base32 "1qalargz9bhp850qv60ffwpdqi4xirzar4l3g6qcg8yc6xqf2cjk"))))
(build-system asdf-build-system/sbcl)
(inputs
- `(("libffi" ,libffi)
- ("alexandria" ,sbcl-alexandria)
+ `(("alexandria" ,sbcl-alexandria)
("babel" ,sbcl-babel)
+ ("libffi" ,libffi)
("trivial-features" ,sbcl-trivial-features)))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("pkg-config" ,pkg-config)
+ ("rt" ,sbcl-rt)))
(arguments
'(#:phases
(modify-phases %standard-phases
@@ -2547,9 +2213,21 @@ non-consing thread safe queues and fibonacci priority queues.")
(assoc-ref inputs "libffi")
"/lib/" all)))
(substitute* "toolchain/c-toolchain.lisp"
- (("\"cc\"") (format #f "~S" (which "gcc")))))))
- #:asd-system-name "cffi"
- #:tests? #f))
+ (("\"cc\"") (format #f "~S" (which "gcc"))))))
+ (add-after 'build 'install-headers
+ (lambda* (#:key outputs #:allow-other-keys)
+ (install-file "grovel/common.h"
+ (string-append
+ (assoc-ref outputs "out")
+ "/include/grovel")))))
+ #:asd-files '("cffi.asd"
+ "cffi-toolchain.asd"
+ "cffi-grovel.asd"
+ "cffi-libffi.asd"
+ "cffi-uffi-compat.asd")
+ #:asd-systems '("cffi"
+ "cffi-libffi"
+ "cffi-uffi-compat")))
(home-page "https://common-lisp.net/project/cffi/")
(synopsis "Common Foreign Function Interface for Common Lisp")
(description "The Common Foreign Function Interface (CFFI)
@@ -2559,75 +2237,11 @@ in the CFFI-SYS package, and a portable frontend in the CFFI
package.")
(license license:expat)))
-(define-public sbcl-cffi-toolchain
- (package
- (inherit sbcl-cffi-bootstrap)
- (name "sbcl-cffi-toolchain")
- (inputs
- `(("libffi" ,libffi)
- ("sbcl-cffi" ,sbcl-cffi-bootstrap)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap)
- ((#:asd-system-name _) #f)
- ((#:tests? _) #t)))))
-
-(define-public sbcl-cffi-libffi
- (package
- (inherit sbcl-cffi-toolchain)
- (name "sbcl-cffi-libffi")
- (inputs
- `(("cffi" ,sbcl-cffi-bootstrap)
- ("cffi-grovel" ,sbcl-cffi-grovel)
- ("trivial-features" ,sbcl-trivial-features)
- ("libffi" ,libffi)))))
-
-(define-public sbcl-cffi-grovel
- (package
- (inherit sbcl-cffi-toolchain)
- (name "sbcl-cffi-grovel")
- (inputs
- `(("libffi" ,libffi)
- ("cffi" ,sbcl-cffi-bootstrap)
- ("cffi-toolchain" ,sbcl-cffi-toolchain)
- ("alexandria" ,sbcl-alexandria)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'build 'install-headers
- (lambda* (#:key outputs #:allow-other-keys)
- (install-file "grovel/common.h"
- (string-append
- (assoc-ref outputs "out")
- "/include/grovel"))))))))))
-
-(define-public sbcl-cffi
- (package
- (inherit sbcl-cffi-toolchain)
- (name "sbcl-cffi")
- (inputs (package-inputs sbcl-cffi-bootstrap))
- (native-inputs
- `(("cffi-grovel" ,sbcl-cffi-grovel)
- ("cffi-libffi" ,sbcl-cffi-libffi)
- ("rt" ,sbcl-rt)
- ("bordeaux-threads" ,sbcl-bordeaux-threads)
- ,@(package-native-inputs sbcl-cffi-bootstrap)))))
-
(define-public cl-cffi
(sbcl-package->cl-source-package sbcl-cffi))
-(define-public sbcl-cffi-uffi-compat
- (package
- (inherit sbcl-cffi-toolchain)
- (name "sbcl-cffi-uffi-compat")
- (native-inputs
- `(,@(package-inputs sbcl-cffi-bootstrap))) ; For fix-paths phase
- (inputs
- `(("cffi" ,sbcl-cffi)))
- (synopsis "UFFI Compatibility Layer for CFFI")))
-
-(define-public cl-cffi-uffi-compat
- (sbcl-package->cl-source-package sbcl-cffi-uffi-compat))
+(define-public ecl-cffi
+ (sbcl-package->ecl-package sbcl-cffi))
(define-public sbcl-cl-sqlite
(package
@@ -2652,8 +2266,7 @@ package.")
`(("fiveam" ,sbcl-fiveam)
("bordeaux-threads" ,sbcl-bordeaux-threads)))
(arguments
- `(#:asd-file "sqlite.asd"
- #:asd-system-name "sqlite"
+ `(#:asd-systems '("sqlite")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-paths
@@ -2671,6 +2284,9 @@ relational database engine.")
(define-public cl-sqlite
(sbcl-package->cl-source-package sbcl-cl-sqlite))
+(define-public ecl-cl-sqlite
+ (sbcl-package->ecl-package sbcl-cl-sqlite))
+
(define-public sbcl-parenscript
;; Source archives are overwritten on every release, we use the Git repo instead.
(let ((commit "7a1ac46353cecd144fc91915ba9f122aafcf4766"))
@@ -2856,10 +2472,10 @@ Lisp implementations.")
(define-public ecl-closer-mop
(sbcl-package->ecl-package sbcl-closer-mop))
-(define sbcl-cl-cffi-gtk-boot0
+(define-public sbcl-cl-cffi-gtk
(let ((commit "412d17214e092220c65a5660f5cbbd9cb69b8fe4"))
(package
- (name "sbcl-cl-cffi-gtk-boot0")
+ (name "sbcl-cl-cffi-gtk")
(version (git-version "0.11.2" "1" commit))
(source
(origin
@@ -2872,17 +2488,34 @@ Lisp implementations.")
(base32
"0n997yhcnzk048nalx8ys62ja2ac8iv4mbn3mb55iapl0321hghn"))))
(build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
(inputs
- `(("iterate" ,sbcl-iterate)
+ `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("cairo" ,cairo)
("cffi" ,sbcl-cffi)
- ("trivial-features" ,sbcl-trivial-features)
+ ("closer-mop" ,sbcl-closer-mop)
+ ("gdk-pixbuf" ,gdk-pixbuf)
("glib" ,glib)
- ("cairo" ,cairo)
+ ("gtk" ,gtk+)
+ ("iterate" ,sbcl-iterate)
("pango" ,pango)
- ("gdk-pixbuf" ,gdk-pixbuf)
- ("gtk" ,gtk+)))
+ ("trivial-features" ,sbcl-trivial-features)
+ ("trivial-garbage" ,sbcl-trivial-garbage)))
(arguments
- `(#:phases
+ `(#:asd-files '("gtk/cl-cffi-gtk.asd"
+ "glib/cl-cffi-gtk-glib.asd"
+ "gobject/cl-cffi-gtk-gobject.asd"
+ "gio/cl-cffi-gtk-gio.asd"
+ "cairo/cl-cffi-gtk-cairo.asd"
+ "pango/cl-cffi-gtk-pango.asd"
+ "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
+ "gdk/cl-cffi-gtk-gdk.asd")
+ #:test-asd-file "test/cl-cffi-gtk-test.asd"
+ ;; TODO: Tests fail with memory fault.
+ ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
+ #:tests? #f
+ #:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys)
@@ -2917,223 +2550,12 @@ Lisp implementations.")
is a library for creating graphical user interfaces.")
(license license:lgpl3))))
-(define-public sbcl-cl-cffi-gtk-glib
- (package
- (inherit sbcl-cl-cffi-gtk-boot0)
- (name "sbcl-cl-cffi-gtk-glib")
- (inputs
- `(("bordeaux-threads" ,sbcl-bordeaux-threads)
- ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
- ((#:asd-file _ "") "glib/cl-cffi-gtk-glib.asd")))))
-
-(define-public sbcl-cl-cffi-gtk-gobject
- (package
- (inherit sbcl-cl-cffi-gtk-boot0)
- (name "sbcl-cl-cffi-gtk-gobject")
- (inputs
- `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
- ("trivial-garbage" ,sbcl-trivial-garbage)
- ("bordeaux-threads" ,sbcl-bordeaux-threads)
- ("closer-mop" ,sbcl-closer-mop)
- ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
- ((#:asd-file _ "") "gobject/cl-cffi-gtk-gobject.asd")
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'install 'link-source
- ;; Since source is particularly heavy (16MiB+), let's reuse it
- ;; across the different components of cl-ffi-gtk.
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
- "/share/common-lisp/sbcl-source/"
- "cl-cffi-gtk-glib"))
- (out-source (string-append (assoc-ref outputs "out")
- "/share/common-lisp/sbcl-source/"
- "cl-cffi-gtk-gobject")))
- (delete-file-recursively out-source)
- (symlink glib-source out-source)
- #t)))))))))
-
-(define-public sbcl-cl-cffi-gtk-gio
- (package
- (inherit sbcl-cl-cffi-gtk-boot0)
- (name "sbcl-cl-cffi-gtk-gio")
- (inputs
- `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
- ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
- ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
- ((#:asd-file _ "") "gio/cl-cffi-gtk-gio.asd")
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'install 'link-source
- ;; Since source is particularly heavy (16MiB+), let's reuse it
- ;; across the different components of cl-ffi-gtk.
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
- "/share/common-lisp/sbcl-source/"
- "cl-cffi-gtk-glib"))
- (out-source (string-append (assoc-ref outputs "out")
- "/share/common-lisp/sbcl-source/"
- "cl-cffi-gtk-gio")))
- (delete-file-recursively out-source)
- (symlink glib-source out-source)
- #t)))))))))
-
-(define-public sbcl-cl-cffi-gtk-cairo
- (package
- (inherit sbcl-cl-cffi-gtk-boot0)
- (name "sbcl-cl-cffi-gtk-cairo")
- (inputs
- `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
- ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
- ((#:asd-file _ "") "cairo/cl-cffi-gtk-cairo.asd")
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'install 'link-source
- ;; Since source is particularly heavy (16MiB+), let's reuse it
- ;; across the different components of cl-ffi-gtk.
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
- "/share/common-lisp/sbcl-source/"
- "cl-cffi-gtk-glib"))
- (out-source (string-append (assoc-ref outputs "out")
- "/share/common-lisp/sbcl-source/"
- "cl-cffi-gtk-cairo")))
- (delete-file-recursively out-source)
- (symlink glib-source out-source)
- #t)))))))))
-
-(define-public sbcl-cl-cffi-gtk-pango
- (package
- (inherit sbcl-cl-cffi-gtk-boot0)
- (name "sbcl-cl-cffi-gtk-pango")
- (inputs
- `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
- ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
- ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
- ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
- ((#:asd-file _ "") "pango/cl-cffi-gtk-pango.asd")
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'install 'link-source
- ;; Since source is particularly heavy (16MiB+), let's reuse it
- ;; across the different components of cl-ffi-gtk.
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
- "/share/common-lisp/sbcl-source/"
- "cl-cffi-gtk-glib"))
- (out-source (string-append (assoc-ref outputs "out")
- "/share/common-lisp/sbcl-source/"
- "cl-cffi-gtk-pango")))
- (delete-file-recursively out-source)
- (symlink glib-source out-source)
- #t)))))))))
-
-(define-public sbcl-cl-cffi-gtk-gdk-pixbuf
- (package
- (inherit sbcl-cl-cffi-gtk-boot0)
- (name "sbcl-cl-cffi-gtk-gdk-pixbuf")
- (inputs
- `(("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
- ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
- ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
- ((#:asd-file _ "") "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd")
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'install 'link-source
- ;; Since source is particularly heavy (16MiB+), let's reuse it
- ;; across the different components of cl-ffi-gtk.
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
- "/share/common-lisp/sbcl-source/"
- "cl-cffi-gtk-glib"))
- (out-source (string-append (assoc-ref outputs "out")
- "/share/common-lisp/sbcl-source/"
- "cl-cffi-gtk-gdk-pixbuf")))
- (delete-file-recursively out-source)
- (symlink glib-source out-source)
- #t)))))))))
-
-(define-public sbcl-cl-cffi-gtk-gdk
- (package
- (inherit sbcl-cl-cffi-gtk-boot0)
- (name "sbcl-cl-cffi-gtk-gdk")
- (inputs
- `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
- ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
- ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
- ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf)
- ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
- ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango)
- ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
- ((#:asd-file _ "") "gdk/cl-cffi-gtk-gdk.asd")
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'install 'link-source
- ;; Since source is particularly heavy (16MiB+), let's reuse it
- ;; across the different components of cl-ffi-gtk.
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
- "/share/common-lisp/sbcl-source/"
- "cl-cffi-gtk-glib"))
- (out-source (string-append (assoc-ref outputs "out")
- "/share/common-lisp/sbcl-source/"
- "cl-cffi-gtk-gdk")))
- (delete-file-recursively out-source)
- (symlink glib-source out-source)
- #t)))))))))
-
-(define-public sbcl-cl-cffi-gtk
- (package
- (inherit sbcl-cl-cffi-gtk-boot0)
- (name "sbcl-cl-cffi-gtk")
- (inputs
- `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
- ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
- ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
- ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk)
- ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
- (native-inputs
- `(("fiveam" ,sbcl-fiveam)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
- ((#:asd-file _ "") "gtk/cl-cffi-gtk.asd")
- ((#:test-asd-file _ "") "test/cl-cffi-gtk-test.asd")
- ;; TODO: Tests fail with memory fault.
- ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
- ((#:tests? _ #f) #f)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'install 'link-source
- ;; Since source is particularly heavy (16MiB+), let's reuse it
- ;; across the different components of cl-ffi-gtk.
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
- "/share/common-lisp/sbcl-source/"
- "cl-cffi-gtk-glib"))
- (out-source (string-append (assoc-ref outputs "out")
- "/share/common-lisp/sbcl-source/"
- "cl-cffi-gtk")))
- (delete-file-recursively out-source)
- (symlink glib-source out-source)
- #t)))))))))
-
(define-public cl-cffi-gtk
(sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
+(define-public ecl-cl-cffi-gtk
+ (sbcl-package->ecl-package sbcl-cl-cffi-gtk))
+
(define-public sbcl-cl-webkit
(let ((commit "dccf9d25de4e9a69f716f8ed9578e58963ead967"))
(package
@@ -3155,8 +2577,7 @@ is a library for creating graphical user interfaces.")
("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
("webkitgtk" ,webkitgtk)))
(arguments
- `(#:asd-file "webkit2/cl-webkit2.asd"
- #:asd-system-name "cl-webkit2"
+ `(#:asd-systems '("cl-webkit2")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-paths
@@ -3177,6 +2598,9 @@ WebKit browsing engine.")
(define-public cl-webkit
(sbcl-package->cl-source-package sbcl-cl-webkit))
+(define-public ecl-cl-webkit
+ (sbcl-package->ecl-package sbcl-cl-webkit))
+
(define-public sbcl-lparallel
(package
(name "sbcl-lparallel")
@@ -3300,10 +2724,10 @@ portability, and boilerplate reduction in CSS.")
(sbcl-package->ecl-package sbcl-cl-css))
(define-public sbcl-portable-threads
- (let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920"))
+ (let ((commit "aa26bf38338a6b068bf8bfb3375d8d8c3b0a28df"))
(package
(name "sbcl-portable-threads")
- (version (git-version "2.3" "1" commit))
+ (version (git-version "2.3" "2" commit))
(source
(origin
(method git-fetch)
@@ -3312,14 +2736,13 @@ portability, and boilerplate reduction in CSS.")
(commit commit)))
(file-name (git-file-name "portable-threads" version))
(sha256
- (base32
- "03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq"))))
+ (base32 "058ksi07vfdmhrf5mdlc833s82m1rcqfja2266520m3r8bzs8bvs"))))
(build-system asdf-build-system/sbcl)
(arguments
`(;; Tests seem broken.
#:tests? #f))
(home-page "https://github.com/binghe/portable-threads")
- (synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp")
+ (synopsis "Portable threads API for Common Lisp")
(description
"Portable Threads (and Scheduled and Periodic Functions) API for Common
Lisp (from GBBopen project).")
@@ -3328,14 +2751,12 @@ Lisp (from GBBopen project).")
(define-public cl-portable-threads
(sbcl-package->cl-source-package sbcl-portable-threads))
-(define-public ecl-portable-threada
+(define-public ecl-portable-threads
(sbcl-package->ecl-package sbcl-portable-threads))
-(define sbcl-usocket-boot0
- ;; usocket's test rely on usocket-server which depends on usocket itself.
- ;; We break this cyclic dependency with -boot0 that packages usocket.
+(define-public sbcl-usocket
(package
- (name "sbcl-usocket-boot0")
+ (name "sbcl-usocket")
(version "0.8.3")
(source
(origin
@@ -3348,48 +2769,23 @@ Lisp (from GBBopen project).")
(base32
"0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826"))))
(build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("rt" ,sbcl-rt)))
(inputs
- `(("split-sequence" ,sbcl-split-sequence)))
+ `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("split-sequence" ,sbcl-split-sequence)))
(arguments
- `(#:tests? #f
- #:asd-system-name "usocket"))
+ `(#:tests? #f ; FIXME: Tests need network access?
+ #:asd-systems '("usocket"
+ "usocket-server")))
(home-page "https://common-lisp.net/project/usocket/")
- (synopsis "Universal socket library for Common Lisp (server side)")
+ (synopsis "Universal socket library for Common Lisp")
(description
"This library strives to provide a portable TCP/IP and UDP/IP socket
interface for as many Common Lisp implementations as possible, while keeping
the abstraction and portability layer as thin as possible.")
(license license:expat)))
-(define-public sbcl-usocket-server
- (package
- (inherit sbcl-usocket-boot0)
- (name "sbcl-usocket-server")
- (inputs
- `(("bordeaux-threads" ,sbcl-bordeaux-threads)
- ("usocket" ,sbcl-usocket-boot0)))
- (arguments
- '(#:asd-system-name "usocket-server"))
- (synopsis "Universal socket library for Common Lisp (server side)")))
-
-(define-public cl-usocket-server
- (sbcl-package->cl-source-package sbcl-usocket-server))
-
-(define-public ecl-socket-server
- (sbcl-package->ecl-package sbcl-usocket-server))
-
-(define-public sbcl-usocket
- (package
- (inherit sbcl-usocket-boot0)
- (name "sbcl-usocket")
- (arguments
- ;; FIXME: Tests need network access?
- `(#:tests? #f))
- (native-inputs
- ;; Testing only.
- `(("usocket-server" ,sbcl-usocket-server)
- ("rt" ,sbcl-rt)))))
-
(define-public cl-usocket
(sbcl-package->cl-source-package sbcl-usocket))
@@ -3538,7 +2934,7 @@ client and server.")
(lambda* (#:key outputs #:allow-other-keys)
(let ((test-results (string-append (assoc-ref outputs "out")
"/share/common-lisp/"
- (%lisp-type) "-source"
+ (%lisp-type)
"/trivial-backtrace"
"/test-results")))
(when (file-exists? test-results)
@@ -3558,6 +2954,9 @@ backtrace portably.")
(define-public cl-trivial-backtrace
(sbcl-package->cl-source-package sbcl-trivial-backtrace))
+(define-public ecl-trivial-backtrace
+ (sbcl-package->ecl-package sbcl-trivial-backtrace))
+
(define-public sbcl-rfc2388
(let ((commit "591bcf7e77f2c222c43953a80f8c297751dc0c4e")
(revision "1"))
@@ -3585,6 +2984,9 @@ process form data posted with HTTP POST method using enctype
(define-public cl-rfc2388
(sbcl-package->cl-source-package sbcl-rfc2388))
+(define-public ecl-rfc2388
+ (sbcl-package->ecl-package sbcl-rfc2388))
+
(define-public sbcl-md5
(package
(name "sbcl-md5")
@@ -3661,6 +3063,9 @@ Development into CL+SSL was done by David Lichteblau.")
(define-public cl-cl+ssl
(sbcl-package->cl-source-package sbcl-cl+ssl))
+(define-public ecl-cl+ssl
+ (sbcl-package->ecl-package sbcl-cl+ssl))
+
(define-public sbcl-kmrcl
(let ((version "1.109.0")
(commit "5260068b2eb735af6796740c2db4955afac21636")
@@ -3694,6 +3099,9 @@ Rosenberg's CL packages.")
(define-public cl-kmrcl
(sbcl-package->cl-source-package sbcl-kmrcl))
+(define-public ecl-kmrcl
+ (sbcl-package->ecl-package sbcl-kmrcl))
+
(define-public sbcl-cl-base64
(package
(name "sbcl-cl-base64")
@@ -3727,6 +3135,9 @@ encoding table that uses only URI-compatible characters.")
(define-public cl-base64
(sbcl-package->cl-source-package sbcl-cl-base64))
+(define-public ecl-cl-base64
+ (sbcl-package->ecl-package sbcl-cl-base64))
+
(define-public sbcl-chunga
(package
(name "sbcl-chunga")
@@ -3753,6 +3164,9 @@ defined in RFC 2616.")
(define-public cl-chunga
(sbcl-package->cl-source-package sbcl-chunga))
+(define-public ecl-chunga
+ (sbcl-package->ecl-package sbcl-chunga))
+
(define-public sbcl-cl-who
(let ((version "1.1.4")
(commit "2c08caa4bafba720409af9171feeba3f32e86d32")
@@ -3782,9 +3196,12 @@ WHO means \"with-html-output\" for want of a better acronym) is probably just
as good or bad as the next one.")
(license license:bsd-2))))
-(define-public cl-cl-who
+(define-public cl-who
(sbcl-package->cl-source-package sbcl-cl-who))
+(define-public ecl-cl-who
+ (sbcl-package->ecl-package sbcl-cl-who))
+
(define-public sbcl-chipz
(let ((version "0.8")
(commit "75dfbc660a5a28161c57f115adf74c8a926bfc4d")
@@ -3820,6 +3237,9 @@ the format used by the popular compression tool bzip2.")
(define-public cl-chipz
(sbcl-package->cl-source-package sbcl-chipz))
+(define-public ecl-chipz
+ (sbcl-package->ecl-package sbcl-chipz))
+
(define-public sbcl-drakma
(package
(name "sbcl-drakma")
@@ -3900,6 +3320,13 @@ connections (keep-alive), and SSL.")
(define-public cl-hunchentoot
(sbcl-package->cl-source-package sbcl-hunchentoot))
+(define-public ecl-hunchentoot
+ (package
+ (inherit (sbcl-package->ecl-package sbcl-hunchentoot))
+ (arguments
+ ;; Tests fail on ECL with 'Socket error in "socket": EINVAL'.
+ '(#:tests? #f))))
+
(define-public sbcl-trivial-types
(package
(name "sbcl-trivial-types")
@@ -3924,33 +3351,8 @@ PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
(define-public cl-trivial-types
(sbcl-package->cl-source-package sbcl-trivial-types))
-(define-public sbcl-cl-syntax
- (package
- (name "sbcl-cl-syntax")
- (version "0.0.3")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/m2ym/cl-syntax")
- (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
- (file-name (git-file-name "cl-syntax" version))
- (sha256
- (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
- (build-system asdf-build-system/sbcl)
- (arguments
- '(#:asd-file "cl-syntax.asd"
- #:asd-system-name "cl-syntax"))
- (inputs `(("sbcl-trivial-types" ,sbcl-trivial-types)
- ("sbcl-named-readtables" ,sbcl-named-readtables)))
- (home-page "https://github.com/m2ym/cl-syntax")
- (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
- (description
- "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
- (license license:llgpl)))
-
-(define-public cl-syntax
- (sbcl-package->cl-source-package sbcl-cl-syntax))
+(define-public ecl-trivial-types
+ (sbcl-package->ecl-package sbcl-trivial-types))
(define-public sbcl-cl-annot
(let ((commit "c99e69c15d935eabc671b483349a406e0da9518d")
@@ -3968,9 +3370,6 @@ PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
(sha256
(base32 "1wq1gs9jjd5m6iwrv06c2d7i5dvqsfjcljgbspfbc93cg5xahk4n"))))
(build-system asdf-build-system/sbcl)
- (arguments
- '(#:asd-file "cl-annot.asd"
- #:asd-system-name "cl-annot"))
(inputs
`(("sbcl-alexandria" ,sbcl-alexandria)))
(home-page "https://github.com/m2ym/cl-annot")
@@ -3982,41 +3381,43 @@ PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
(define-public cl-annot
(sbcl-package->cl-source-package sbcl-cl-annot))
-(define-public sbcl-cl-syntax-annot
- (package
- (inherit sbcl-cl-syntax)
- (name "sbcl-cl-syntax-annot")
- (arguments
- '(#:asd-file "cl-syntax-annot.asd"
- #:asd-system-name "cl-syntax-annot"))
- (inputs
- `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
- ("sbcl-cl-annot" ,sbcl-cl-annot)))
- (synopsis "Common Lisp reader Syntax for cl-annot")
- (description
- "CL-SYNTAX provides reader syntax coventions for Common Lisp and
-@code{cl-annot}.")))
-
-(define-public cl-syntax-annot
- (sbcl-package->cl-source-package sbcl-cl-syntax-annot))
+(define-public ecl-cl-annot
+ (sbcl-package->ecl-package sbcl-cl-annot))
-(define-public sbcl-cl-syntax-interpol
+(define-public sbcl-cl-syntax
(package
- (inherit sbcl-cl-syntax)
- (name "sbcl-cl-syntax-interpol")
- (arguments
- '(#:asd-file "cl-syntax-interpol.asd"
- #:asd-system-name "cl-syntax-interpol"))
+ (name "sbcl-cl-syntax")
+ (version "0.0.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/m2ym/cl-syntax")
+ (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
+ (file-name (git-file-name "cl-syntax" version))
+ (sha256
+ (base32 "17ran8xp77asagl31xv8w819wafh6whwfc9p6dgx22ca537gyl4y"))))
+ (build-system asdf-build-system/sbcl)
(inputs
- `(("sbcl-cl-syntax" ,sbcl-cl-syntax)
- ("sbcl-cl-interpol" ,sbcl-cl-interpol)))
- (synopsis "Common Lisp reader Syntax for cl-interpol")
+ `(("cl-annot" ,sbcl-cl-annot)
+ ("cl-interpol" ,sbcl-cl-interpol)
+ ("named-readtables" ,sbcl-named-readtables)
+ ("trivial-types" ,sbcl-trivial-types)))
+ (arguments
+ '(#:asd-systems '("cl-syntax"
+ "cl-syntax-annot"
+ "cl-syntax-interpol")))
+ (home-page "https://github.com/m2ym/cl-syntax")
+ (synopsis "Reader Syntax Coventions for Common Lisp and SLIME")
(description
- "CL-SYNTAX provides reader syntax coventions for Common Lisp and
-@code{cl-interpol}.")))
+ "CL-SYNTAX provides Reader Syntax Coventions for Common Lisp and SLIME.")
+ (license license:llgpl)))
+
+(define-public cl-syntax
+ (sbcl-package->cl-source-package sbcl-cl-syntax))
-(define-public cl-syntax-interpol
- (sbcl-package->cl-source-package sbcl-cl-syntax-interpol))
+(define-public ecl-cl-syntax
+ (sbcl-package->ecl-package sbcl-cl-syntax))
(define-public sbcl-cl-utilities
(let ((commit "dce2d2f6387091ea90357a130fa6d13a6776884b")
@@ -4035,9 +3436,7 @@ PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
(base32 "1r46v730yf96nk2vb24qmagv9x96xvd08abqwhf02ghgydv1a7z2"))))
(build-system asdf-build-system/sbcl)
(arguments
- '(#:asd-file "cl-utilities.asd"
- #:asd-system-name "cl-utilities"
- #:phases
+ '(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys)
@@ -4060,6 +3459,9 @@ everywhere some dumb user might make a mistake.")
(define-public cl-utilities
(sbcl-package->cl-source-package sbcl-cl-utilities))
+(define-public ecl-cl-utilities
+ (sbcl-package->ecl-package sbcl-cl-utilities))
+
(define-public sbcl-map-set
(let ((commit "7b4b545b68b8")
(revision "1"))
@@ -4085,6 +3487,9 @@ addition, removal, and random selection.")
(define-public cl-map-set
(sbcl-package->cl-source-package sbcl-map-set))
+(define-public ecl-map-set
+ (sbcl-package->ecl-package sbcl-map-set))
+
(define-public sbcl-quri
(let ((commit "b53231c5f19446dd7c24b15a249fefa45ae94f9a")
(revision "2"))
@@ -4105,8 +3510,7 @@ addition, removal, and random selection.")
;; Tests fail with: Component QURI-ASD::QURI-TEST not found,
;; required by #<SYSTEM "quri">. Why?
'(#:tests? #f))
- (native-inputs `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
- ("sbcl-prove" ,sbcl-prove)))
+ (native-inputs `(("sbcl-prove" ,sbcl-prove)))
(inputs `(("sbcl-babel" ,sbcl-babel)
("sbcl-split-sequence" ,sbcl-split-sequence)
("sbcl-cl-utilities" ,sbcl-cl-utilities)
@@ -4121,6 +3525,9 @@ Lisp. It is intended to be a replacement of PURI.")
(define-public cl-quri
(sbcl-package->cl-source-package sbcl-quri))
+(define-public ecl-quri
+ (sbcl-package->ecl-package sbcl-quri))
+
(define-public sbcl-myway
(let ((commit "286230082a11f879c18b93f17ca571c5f676bfb7")
(revision "1"))
@@ -4142,8 +3549,7 @@ Lisp. It is intended to be a replacement of PURI.")
;; by #<SYSTEM "myway">. Why?
'(#:tests? #f))
(native-inputs
- `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
- ("sbcl-prove" ,sbcl-prove)))
+ `(("sbcl-prove" ,sbcl-prove)))
(inputs
`(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
("sbcl-quri" ,sbcl-quri)
@@ -4156,6 +3562,9 @@ Lisp. It is intended to be a replacement of PURI.")
(define-public cl-myway
(sbcl-package->cl-source-package sbcl-myway))
+(define-public ecl-myway
+ (sbcl-package->ecl-package sbcl-myway))
+
(define-public sbcl-xsubseq
(let ((commit "5ce430b3da5cda3a73b9cf5cee4df2843034422b")
(revision "1"))
@@ -4177,8 +3586,7 @@ Lisp. It is intended to be a replacement of PURI.")
;; required by #<SYSTEM "xsubseq">. Why?
'(#:tests? #f))
(native-inputs
- `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
- ("sbcl-prove" ,sbcl-prove)))
+ `(("sbcl-prove" ,sbcl-prove)))
(home-page "https://github.com/fukamachi/xsubseq")
(synopsis "Efficient way to use \"subseq\"s in Common Lisp")
(description
@@ -4189,6 +3597,9 @@ effieiently.")
(define-public cl-xsubseq
(sbcl-package->cl-source-package sbcl-xsubseq))
+(define-public ecl-xsubseq
+ (sbcl-package->ecl-package sbcl-xsubseq))
+
(define-public sbcl-smart-buffer
(let ((commit "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62")
(revision "1"))
@@ -4210,8 +3621,7 @@ effieiently.")
;; found, required by #<SYSTEM "smart-buffer">. Why?
`(#:tests? #f))
(native-inputs
- `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
- ("sbcl-prove" ,sbcl-prove)))
+ `(("sbcl-prove" ,sbcl-prove)))
(inputs
`(("sbcl-xsubseq" ,sbcl-xsubseq)
("sbcl-flexi-streams" ,sbcl-flexi-streams)))
@@ -4225,6 +3635,9 @@ depending on content size.")
(define-public cl-smart-buffer
(sbcl-package->cl-source-package sbcl-smart-buffer))
+(define-public ecl-smart-buffer
+ (sbcl-package->ecl-package sbcl-smart-buffer))
+
(define-public sbcl-fast-http
(let ((commit "502a37715dcb8544cc8528b78143a942de662c5a")
(revision "2"))
@@ -4246,9 +3659,8 @@ depending on content size.")
;; required by #<SYSTEM "fast-http">. Why?
`(#:tests? #f))
(native-inputs
- `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
- ("sbcl-prove" ,sbcl-prove)
- ("cl-syntax-interpol" ,sbcl-cl-syntax-interpol)))
+ `(("sbcl-prove" ,sbcl-prove)
+ ("cl-syntax" ,sbcl-cl-syntax)))
(inputs
`(("sbcl-alexandria" ,sbcl-alexandria)
("sbcl-proc-parse" ,sbcl-proc-parse)
@@ -4266,6 +3678,9 @@ Lisp.")
(define-public cl-fast-http
(sbcl-package->cl-source-package sbcl-fast-http))
+(define-public ecl-fast-http
+ (sbcl-package->ecl-package sbcl-fast-http))
+
(define-public sbcl-static-vectors
(package
(name "sbcl-static-vectors")
@@ -4282,8 +3697,7 @@ Lisp.")
(native-inputs
`(("sbcl-fiveam" ,sbcl-fiveam)))
(inputs
- `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
- ("sbcl-cffi" ,sbcl-cffi)))
+ `(("sbcl-cffi" ,sbcl-cffi)))
(build-system asdf-build-system/sbcl)
(home-page "https://github.com/sionescu/static-vectors")
(synopsis "Allocate SIMPLE-ARRAYs in static memory")
@@ -4325,6 +3739,9 @@ Only minimal changes required to make your CLOS objects serializable.")
(define-public cl-marshal
(sbcl-package->cl-source-package sbcl-marshal))
+(define-public ecl-marshal
+ (sbcl-package->ecl-package sbcl-marshal))
+
(define-public sbcl-checkl
(let ((commit "80328800d047fef9b6e32dfe6bdc98396aee3cc9")
(revision "1"))
@@ -4345,7 +3762,8 @@ Only minimal changes required to make your CLOS objects serializable.")
;; Error while trying to load definition for system checkl-test from
;; pathname [...]/checkl-test.asd: The function CHECKL:DEFINE-TEST-OP
;; is undefined.
- '(#:tests? #f))
+ '(#:asd-files '("checkl.asd")
+ #:tests? #f))
(native-inputs
`(("sbcl-fiveam" ,sbcl-fiveam)))
(inputs
@@ -4363,6 +3781,9 @@ against the last run.")
(define-public cl-checkl
(sbcl-package->cl-source-package sbcl-checkl))
+(define-public ecl-checkl
+ (sbcl-package->ecl-package sbcl-checkl))
+
(define-public sbcl-fast-io
(let ((commit "603f4903dd74fb221859da7058ae6ca3853fe64b")
(revision "2"))
@@ -4383,7 +3804,8 @@ against the last run.")
;; Error while trying to load definition for system fast-io-test from
;; pathname [...]/fast-io-test.asd: The function CHECKL:DEFINE-TEST-OP
;; is undefined.
- '(#:tests? #f))
+ '(#:tests? #f
+ #:asd-files '("fast-io.asd")))
(native-inputs
`(("sbcl-fiveam" ,sbcl-fiveam)
("sbcl-checkl" ,sbcl-checkl)))
@@ -4402,6 +3824,9 @@ streams (though primarily the former, while wrapping the latter).")
(define-public cl-fast-io
(sbcl-package->cl-source-package sbcl-fast-io))
+(define-public ecl-fast-io
+ (sbcl-package->ecl-package sbcl-fast-io))
+
(define-public sbcl-jonathan
(let ((commit "1f448b4f7ac8265e56e1c02b32ce383e65316300")
(revision "1"))
@@ -4423,11 +3848,9 @@ streams (though primarily the former, while wrapping the latter).")
;; required by #<SYSTEM "jonathan">. Why?
`(#:tests? #f))
(native-inputs
- `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
- ("sbcl-prove" ,sbcl-prove)))
+ `(("sbcl-prove" ,sbcl-prove)))
(inputs
`(("sbcl-cl-syntax" ,sbcl-cl-syntax)
- ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
("sbcl-fast-io" ,sbcl-fast-io)
("sbcl-proc-parse" ,sbcl-proc-parse)
("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
@@ -4442,6 +3865,9 @@ CCL.")
(define-public cl-jonathan
(sbcl-package->cl-source-package sbcl-jonathan))
+(define-public ecl-jonathan
+ (sbcl-package->ecl-package sbcl-jonathan))
+
(define-public sbcl-http-body
(let ((commit "dd01dc4f5842e3d29728552e5163acce8386eb73")
(revision "1"))
@@ -4463,8 +3889,7 @@ CCL.")
;; found, required by #<SYSTEM "http-body">. Why?
`(#:tests? #f))
(native-inputs
- `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
- ("sbcl-prove" ,sbcl-prove)))
+ `(("sbcl-prove" ,sbcl-prove)))
(inputs
`(("sbcl-fast-http" ,sbcl-fast-http)
("sbcl-jonathan" ,sbcl-jonathan)
@@ -4480,6 +3905,9 @@ multipart/form-data.")
(define-public cl-http-body
(sbcl-package->cl-source-package sbcl-http-body))
+(define-public ecl-http-body
+ (sbcl-package->ecl-package sbcl-http-body))
+
(define-public sbcl-circular-streams
(let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
(revision "1"))
@@ -4514,46 +3942,59 @@ reset to 0 and you're able to read it again.")
(define-public cl-circular-streams
(sbcl-package->cl-source-package sbcl-circular-streams))
-(define-public sbcl-lack-request
+(define-public ecl-circular-streams
+ (sbcl-package->ecl-package sbcl-circular-streams))
+
+(define-public sbcl-lack
(let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
(revision "1"))
(package
- (name "sbcl-lack-request")
- (version (git-version "0.1.0" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/fukamachi/lack")
- (commit commit)))
- (file-name (git-file-name "lack-request" version))
- (sha256
- (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
- (build-system asdf-build-system/sbcl)
- (arguments
- '(#:asd-file "lack-request.asd"
- #:asd-system-name "lack-request"
- #:test-asd-file "t-lack-request.asd"
- ;; XXX: Component :CLACK-TEST not found
- #:tests? #f))
- (native-inputs
- `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
- ("sbcl-prove" ,sbcl-prove)))
- (inputs
- `(("sbcl-quri" ,sbcl-quri)
- ("sbcl-http-body" ,sbcl-http-body)
- ("sbcl-circular-streams" ,sbcl-circular-streams)))
- (home-page "https://github.com/fukamachi/lack")
- (synopsis "Lack, the core of Clack")
- (description
- "Lack is a Common Lisp library which allows web applications to be
+ (name "sbcl-lack")
+ (version (git-version "0.1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fukamachi/lack")
+ (commit commit)))
+ (file-name (git-file-name "lack" version))
+ (sha256
+ (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("prove" ,sbcl-prove)))
+ (inputs
+ `(("circular-streams" ,sbcl-circular-streams)
+ ("http-body" ,sbcl-http-body)
+ ("ironclad" ,sbcl-ironclad)
+ ("local-time" ,sbcl-local-time)
+ ("quri" ,sbcl-quri)
+ ("trivial-mimes" ,sbcl-trivial-mimes)))
+ (arguments
+ '(#:asd-systems '("lack"
+ "lack-request"
+ "lack-response"
+ "lack-component"
+ "lack-util"
+ "lack-middleware-backtrace"
+ "lack-middleware-static")
+ #:test-asd-file "t-lack.asd"
+ ;; XXX: Component :CLACK not found
+ #:tests? #f))
+ (home-page "https://github.com/fukamachi/lack")
+ (synopsis "Lack, the core of Clack")
+ (description
+ "Lack is a Common Lisp library which allows web applications to be
constructed of modular components. It was originally a part of Clack, however
it's going to be rewritten as an individual project since Clack v2 with
performance and simplicity in mind.")
- (license license:llgpl))))
+ (license license:llgpl))))
+
+(define-public cl-lack
+ (sbcl-package->cl-source-package sbcl-lack))
-(define-public cl-lack-request
- (sbcl-package->cl-source-package sbcl-lack-request))
+(define-public ecl-lack
+ (sbcl-package->ecl-package sbcl-lack))
(define-public sbcl-local-time
(let ((commit "62792705245168d3fc2e04164b9a143477284142")
@@ -4590,156 +4031,8 @@ Long Painful History of Time\".")
(define-public cl-local-time
(sbcl-package->cl-source-package sbcl-local-time))
-(define-public sbcl-lack-response
- (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
- (revision "1"))
- (package
- (name "sbcl-lack-response")
- (version (git-version "0.1.0" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/fukamachi/lack")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
- (build-system asdf-build-system/sbcl)
- (arguments
- '(#:asd-file "lack-response.asd"
- #:asd-system-name "lack-response"
- ;; XXX: no tests for lack-response.
- #:tests? #f))
- (native-inputs
- `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
- ("sbcl-prove" ,sbcl-prove)))
- (inputs
- `(("sbcl-quri" ,sbcl-quri)
- ("sbcl-http-body" ,sbcl-http-body)
- ("sbcl-circular-streams" ,sbcl-circular-streams)
- ("sbcl-local-time" ,sbcl-local-time)))
- (home-page "https://github.com/fukamachi/lack")
- (synopsis "Lack, the core of Clack")
- (description
- "Lack is a Common Lisp library which allows web applications to be
-constructed of modular components. It was originally a part of Clack, however
-it's going to be rewritten as an individual project since Clack v2 with
-performance and simplicity in mind.")
- (license license:llgpl))))
-
-(define-public cl-lack-response
- (sbcl-package->cl-source-package sbcl-lack-response))
-
-(define-public sbcl-lack-component
- (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
- (revision "1"))
- (package
- (name "sbcl-lack-component")
- (version (git-version "0.0.0" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/fukamachi/lack")
- (commit commit)))
- (file-name (git-file-name "lack-component" version))
- (sha256
- (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
- (build-system asdf-build-system/sbcl)
- (arguments
- '(#:asd-file "lack-component.asd"
- #:asd-system-name "lack-component"
- #:test-asd-file "t-lack-component.asd"
- ;; XXX: Component :LACK-TEST not found
- #:tests? #f))
- (native-inputs
- `(("prove-asdf" ,sbcl-prove-asdf)))
- (home-page "https://github.com/fukamachi/lack")
- (synopsis "Lack, the core of Clack")
- (description
- "Lack is a Common Lisp library which allows web applications to be
-constructed of modular components. It was originally a part of Clack, however
-it's going to be rewritten as an individual project since Clack v2 with
-performance and simplicity in mind.")
- (license license:llgpl))))
-
-(define-public cl-lack-component
- (sbcl-package->cl-source-package sbcl-lack-component))
-
-(define-public sbcl-lack-util
- (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
- (revision "1"))
- (package
- (name "sbcl-lack-util")
- (version (git-version "0.1.0" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/fukamachi/lack")
- (commit commit)))
- (file-name (git-file-name "lack-util" version))
- (sha256
- (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
- (build-system asdf-build-system/sbcl)
- (arguments
- '(#:asd-file "lack-util.asd"
- #:asd-system-name "lack-util"
- #:test-asd-file "t-lack-util.asd"
- ;; XXX: Component :LACK-TEST not found
- #:tests? #f))
- (native-inputs
- `(("prove-asdf" ,sbcl-prove-asdf)))
- (inputs
- `(("sbcl-ironclad" ,sbcl-ironclad)))
- (home-page "https://github.com/fukamachi/lack")
- (synopsis "Lack, the core of Clack")
- (description
- "Lack is a Common Lisp library which allows web applications to be
-constructed of modular components. It was originally a part of Clack, however
-it's going to be rewritten as an individual project since Clack v2 with
-performance and simplicity in mind.")
- (license license:llgpl))))
-
-(define-public cl-lack-util
- (sbcl-package->cl-source-package sbcl-lack-util))
-
-(define-public sbcl-lack-middleware-backtrace
- (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
- (revision "1"))
- (package
- (name "sbcl-lack-middleware-backtrace")
- (version (git-version "0.1.0" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/fukamachi/lack")
- (commit commit)))
- (file-name (git-file-name "lack-middleware-backtrace" version))
- (sha256
- (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
- (build-system asdf-build-system/sbcl)
- (arguments
- '(#:asd-file "lack-middleware-backtrace.asd"
- #:asd-system-name "lack-middleware-backtrace"
- #:test-asd-file "t-lack-middleware-backtrace.asd"
- ;; XXX: Component :LACK not found
- #:tests? #f))
- (native-inputs
- `(("prove-asdf" ,sbcl-prove-asdf)))
- (home-page "https://github.com/fukamachi/lack")
- (synopsis "Lack, the core of Clack")
- (description
- "Lack is a Common Lisp library which allows web applications to be
-constructed of modular components. It was originally a part of Clack, however
-it's going to be rewritten as an individual project since Clack v2 with
-performance and simplicity in mind.")
- (license license:llgpl))))
-
-(define-public cl-lack-middleware-backtrace
- (sbcl-package->cl-source-package sbcl-lack-middleware-backtrace))
+(define-public ecl-local-time
+ (sbcl-package->ecl-package sbcl-local-time))
(define-public sbcl-trivial-mimes
(let ((commit "303f8ac0aa6ca0bc139aa3c34822e623c3723fab")
@@ -4757,20 +4050,6 @@ performance and simplicity in mind.")
(sha256
(base32 "17jxgl47r695bvsb7wi3n2ws5rp1zzgvw0zii8cy5ggw4b4ayv6m"))))
(build-system asdf-build-system/sbcl)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after
- 'unpack 'fix-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((anchor "#p\"/etc/mime.types\""))
- (substitute* "mime-types.lisp"
- ((anchor all)
- (string-append
- anchor "\n"
- "(asdf:system-relative-pathname :trivial-mimes "
- "\"../../share/common-lisp/" (%lisp-type)
- "-source/trivial-mimes/mime.types\")")))))))))
(native-inputs
`(("stefil" ,sbcl-hu.dwim.stefil)))
(inputs
@@ -4788,83 +4067,6 @@ mime-type of a file.")
(define-public ecl-trivial-mimes
(sbcl-package->ecl-package sbcl-trivial-mimes))
-(define-public sbcl-lack-middleware-static
- (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
- (revision "1"))
- (package
- (name "sbcl-lack-middleware-static")
- (version (git-version "0.1.0" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/fukamachi/lack")
- (commit commit)))
- (file-name (git-file-name "lack-middleware-static" version))
- (sha256
- (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
- (build-system asdf-build-system/sbcl)
- (arguments
- '(#:asd-file "lack-middleware-static.asd"
- #:asd-system-name "lack-middleware-static"
- #:test-asd-file "t-lack-middleware-static.asd"
- ;; XXX: Component :LACK not found
- #:tests? #f))
- (native-inputs
- `(("prove-asdf" ,sbcl-prove-asdf)))
- (inputs
- `(("sbcl-ironclad" ,sbcl-ironclad)
- ("sbcl-trivial-mimes" ,sbcl-trivial-mimes)
- ("sbcl-local-time" ,sbcl-local-time)))
- (home-page "https://github.com/fukamachi/lack")
- (synopsis "Lack, the core of Clack")
- (description
- "Lack is a Common Lisp library which allows web applications to be
-constructed of modular components. It was originally a part of Clack, however
-it's going to be rewritten as an individual project since Clack v2 with
-performance and simplicity in mind.")
- (license license:llgpl))))
-
-(define-public cl-lack-middleware-static
- (sbcl-package->cl-source-package sbcl-lack-middleware-static))
-
-(define-public sbcl-lack
- (let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b")
- (revision "1"))
- (package
- (name "sbcl-lack")
- (version (git-version "0.1.0" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/fukamachi/lack")
- (commit commit)))
- (file-name (git-file-name "lack" version))
- (sha256
- (base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85"))))
- (build-system asdf-build-system/sbcl)
- (arguments
- '(#:test-asd-file "t-lack.asd"
- ;; XXX: Component :CLACK not found
- #:tests? #f))
- (native-inputs
- `(("prove-asdf" ,sbcl-prove-asdf)))
- (inputs
- `(("sbcl-lack-component" ,sbcl-lack-component)
- ("sbcl-lack-util" ,sbcl-lack-util)))
- (home-page "https://github.com/fukamachi/lack")
- (synopsis "Lack, the core of Clack")
- (description
- "Lack is a Common Lisp library which allows web applications to be
-constructed of modular components. It was originally a part of Clack, however
-it's going to be rewritten as an individual project since Clack v2 with
-performance and simplicity in mind.")
- (license license:llgpl))))
-
-(define-public cl-lack
- (sbcl-package->cl-source-package sbcl-lack))
-
(define-public sbcl-ningle
(let ((commit "50bd4f09b5a03a7249bd4d78265d6451563b25ad")
(revision "1"))
@@ -4908,15 +4110,11 @@ performance and simplicity in mind.")
fasl-files)
#t)))))
(native-inputs
- `(("sbcl-prove-asdf" ,sbcl-prove-asdf)
- ("sbcl-prove" ,sbcl-prove)))
+ `(("sbcl-prove" ,sbcl-prove)))
(inputs
`(("sbcl-cl-syntax" ,sbcl-cl-syntax)
- ("sbcl-cl-syntax-annot" ,sbcl-cl-syntax-annot)
("sbcl-myway" ,sbcl-myway)
- ("sbcl-lack-request" ,sbcl-lack-request)
- ("sbcl-lack-response" ,sbcl-lack-response)
- ("sbcl-lack-component" ,sbcl-lack-component)
+ ("sbcl-lack" ,sbcl-lack)
("sbcl-alexandria" ,sbcl-alexandria)
("sbcl-babel" ,sbcl-babel)))
(home-page "https://8arrow.org/ningle/")
@@ -4928,6 +4126,9 @@ performance and simplicity in mind.")
(define-public cl-ningle
(sbcl-package->cl-source-package sbcl-ningle))
+(define-public ecl-ningle
+ (sbcl-package->ecl-package sbcl-ningle))
+
(define-public sbcl-cl-fastcgi
(let ((commit "d576d20eeb12f225201074b28934ba395b15781a")
(revision "1"))
@@ -4973,72 +4174,49 @@ mostly Common Lisp implementation.")
(define-public ecl-cl-fastcgi
(sbcl-package->ecl-package sbcl-cl-fastcgi))
-(define clack-commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
-(define clack-revision "1")
-
(define-public sbcl-clack
- (package
- (name "sbcl-clack")
- (version (git-version "2.0.0" clack-revision clack-commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/fukamachi/clack")
- (commit clack-commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
- (build-system asdf-build-system/sbcl)
- (inputs
- `(("sbcl-lack" ,sbcl-lack)
- ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace)
- ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads)))
- (home-page "https://github.com/fukamachi/clack")
- (synopsis "Web Application Environment for Common Lisp")
- (description
- "Clack is a web application environment for Common Lisp inspired by
+ (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0")
+ (revision "1"))
+ (package
+ (name "sbcl-clack")
+ (version (git-version "2.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fukamachi/clack")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("cl-fastcgi" ,sbcl-cl-fastcgi)
+ ("flexi-streams" ,sbcl-flexi-streams)
+ ("hunchentoot" ,sbcl-hunchentoot)
+ ("lack" ,sbcl-lack)
+ ("split-sequence" ,sbcl-split-sequence)
+ ("usocket" ,sbcl-usocket)
+ ("quri" ,sbcl-quri)))
+ (arguments
+ '(#:asd-systems '("clack"
+ "clack-handler-fcgi"
+ "clack-socket"
+ "clack-handler-hunchentoot")))
+ (home-page "https://github.com/fukamachi/clack")
+ (synopsis "Web Application Environment for Common Lisp")
+ (description
+ "Clack is a web application environment for Common Lisp inspired by
Python's WSGI and Ruby's Rack.")
- (license license:llgpl)))
+ (license license:llgpl))))
(define-public cl-clack
(sbcl-package->cl-source-package sbcl-clack))
-(define-public sbcl-clack-handler-fcgi
- (package
- (inherit sbcl-clack)
- (name "sbcl-clack-handler-fcgi")
- (version (git-version "0.3.1" clack-revision clack-commit))
- (inputs
- `(("cl-fastcgi" ,sbcl-cl-fastcgi)
- ("alexandria" ,sbcl-alexandria)
- ("flexi-streams" ,sbcl-flexi-streams)
- ("usocket" ,sbcl-usocket)
- ("quri" ,sbcl-quri)))
- (synopsis "Web Application Environment for Common Lisp (FastCGI handler)")))
-
-(define-public cl-clack-handler-fcgi
- (sbcl-package->cl-source-package sbcl-clack-handler-fcgi))
-
-(define sbcl-clack-socket
- (package
- (inherit sbcl-clack)
- (name "sbcl-clack-socket")
- (version (git-version "0.1" clack-revision clack-commit))))
-
-(define-public sbcl-clack-handler-hunchentoot
- (package
- (inherit sbcl-clack)
- (name "sbcl-clack-handler-hunchentoot")
- (version (git-version "0.4.0" clack-revision clack-commit))
- (inputs
- `(("hunchentoot" ,sbcl-hunchentoot)
- ("clack-socket" ,sbcl-clack-socket)
- ("flexi-streams" ,sbcl-flexi-streams)
- ("bordeaux-threads" ,sbcl-bordeaux-threads)
- ("split-sequence" ,sbcl-split-sequence)
- ("alexandria" ,sbcl-alexandria)))
- (synopsis "Web Application Environment for Common Lisp (Hunchentoot handler)")))
+(define-public ecl-clack
+ (sbcl-package->ecl-package sbcl-clack))
(define-public sbcl-log4cl
(let ((commit "611e094458504b938d49de904eab141285328c7c")
@@ -5218,8 +4396,7 @@ the CFFI approach used by burgled-batteries, but has the same goal.")
(base32 "03g5qks4c59nmxa48pbslxkfh77h8hn8566jddp6m9pl15dzzpxd"))))
(build-system asdf-build-system/sbcl)
(arguments
- `(#:asd-file "parse-declarations-1.0.asd"
- #:asd-system-name "parse-declarations-1.0"))
+ `(#:asd-systems '("parse-declarations-1.0")))
(home-page "https://common-lisp.net/project/parse-declarations/")
(synopsis "Parse, filter, and build declarations")
(description
@@ -5263,7 +4440,7 @@ high-level way. This library provides such operators.")
;; MIT
(license license:expat))))
-(define-public cl-cl-quickcheck
+(define-public cl-quickcheck
(sbcl-package->cl-source-package sbcl-cl-quickcheck))
(define-public ecl-cl-quickcheck
@@ -5317,7 +4494,6 @@ high-level way. This library provides such operators.")
(inputs
`(("python" ,python)
("sbcl-cffi" ,sbcl-cffi)
- ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
("sbcl-alexandria" , sbcl-alexandria)
("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
@@ -5428,8 +4604,7 @@ basic everyday functions and macros.")
(arguments
;; Guix incorrectly assumes the "8" is part of the version
;; number and lobs it off.
- `(#:asd-file "trivial-utf-8.asd"
- #:asd-system-name "trivial-utf-8"))
+ `(#:asd-systems '("trivial-utf-8")))
(build-system asdf-build-system/sbcl)
(synopsis "UTF-8 input/output library")
(description
@@ -5508,13 +4683,12 @@ formats.")
(define-public ecl-swap-bytes
(sbcl-package->ecl-package sbcl-swap-bytes))
-(define-public sbcl-iolib.asdf
+(define-public sbcl-iolib
;; Latest release is from June 2017.
(let ((commit "7f5ea3a8457a29d224b24653c2b3657fb1898021")
(revision "2"))
(package
- (name "sbcl-iolib.asdf")
- (build-system asdf-build-system/sbcl)
+ (name "sbcl-iolib")
(version (git-version "0.8.3" revision commit))
(home-page "https://github.com/sionescu/iolib")
(source
@@ -5527,135 +4701,41 @@ formats.")
(sha256
(base32
"1bg5w7lm61hqk4b0svmri8a590q36z76jfa0sdgzb39r98c04w12"))))
+ (build-system asdf-build-system/sbcl)
(inputs
- `(("alexandria" ,sbcl-alexandria)))
+ `(("alexandria" ,sbcl-alexandria)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("cffi" ,sbcl-cffi)
+ ("idna" ,sbcl-idna)
+ ("libfixposix" ,libfixposix)
+ ("split-sequence" ,sbcl-split-sequence)
+ ("swap-bytes" ,sbcl-swap-bytes)))
(arguments
- '(#:asd-file "iolib.asdf.asd"))
- (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library")
+ '(#:asd-files '("iolib.asdf.asd"
+ "iolib.conf.asd"
+ "iolib.common-lisp.asd"
+ "iolib.base.asd"
+ "iolib.asd")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/syscalls/ffi-functions-unix.lisp"
+ (("\\(:default \"libfixposix\"\\)")
+ (string-append
+ "(:default \""
+ (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
+ ;; Socket tests need Internet access, disable them.
+ (substitute* "iolib.asd"
+ (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
+ "")))))))
+ (synopsis "Common Lisp I/O library")
(description "IOlib is to be a better and more modern I/O library than
the standard Common Lisp library. It contains a socket library, a DNS
resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
and @code{kqueue(2)}), a pathname library and file-system utilities.")
(license license:expat))))
-(define-public sbcl-iolib.conf
- (package
- (inherit sbcl-iolib.asdf)
- (name "sbcl-iolib.conf")
- (inputs
- `(("iolib.asdf" ,sbcl-iolib.asdf)))
- (arguments
- '(#:asd-file "iolib.conf.asd"))
- (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library")))
-
-(define-public sbcl-iolib.common-lisp
- (package
- (inherit sbcl-iolib.asdf)
- (name "sbcl-iolib.common-lisp")
- (inputs
- `(("iolib.asdf" ,sbcl-iolib.asdf)
- ("iolib.conf" ,sbcl-iolib.conf)))
- (arguments
- '(#:asd-file "iolib.common-lisp.asd"))
- (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library")))
-
-(define-public sbcl-iolib.base
- (package
- (inherit sbcl-iolib.asdf)
- (name "sbcl-iolib.base")
- (inputs
- `(("iolib.asdf" ,sbcl-iolib.asdf)
- ("iolib.conf" ,sbcl-iolib.conf)
- ("iolib.common-lisp" ,sbcl-iolib.common-lisp)
- ("split-sequence" ,sbcl-split-sequence)))
- (arguments
- '(#:asd-file "iolib.base.asd"))
- (synopsis "Base package for IOLib, a Common Lisp I/O library")))
-
-(define-public sbcl-iolib.grovel
- (deprecated-package "sbcl-iolib.grovel" sbcl-cffi-grovel))
-
-(define sbcl-iolib+syscalls
- (package
- (inherit sbcl-iolib.asdf)
- (name "sbcl-iolib+syscalls")
- (inputs
- `(("iolib.asdf" ,sbcl-iolib.asdf)
- ("iolib.conf" ,sbcl-iolib.conf)
- ("cffi-grovel" ,sbcl-cffi-grovel)
- ("iolib.base" ,sbcl-iolib.base)
- ("bordeaux-threads" ,sbcl-bordeaux-threads)
- ("idna" ,sbcl-idna)
- ("swap-bytes" ,sbcl-swap-bytes)
- ("libfixposix" ,libfixposix)
- ("cffi" ,sbcl-cffi)))
- (native-inputs
- `(("fiveam" ,sbcl-fiveam)))
- (arguments
- '(#:asd-file "iolib.asd"
- #:asd-system-name "iolib/syscalls"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "src/syscalls/ffi-functions-unix.lisp"
- (("\\(:default \"libfixposix\"\\)")
- (string-append
- "(:default \""
- (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
- ;; Socket tests need Internet access, disable them.
- (substitute* "iolib.asd"
- (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
- "")))))))
- (synopsis "Common Lisp I/O library")))
-
-(define sbcl-iolib+multiplex
- (package
- (inherit sbcl-iolib+syscalls)
- (name "sbcl-iolib+multiplex")
- (inputs
- `(("iolib+syscalls" ,sbcl-iolib+syscalls)
- ,@(package-inputs sbcl-iolib+syscalls)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
- ((#:asd-system-name _) "iolib/multiplex")))))
-
-(define sbcl-iolib+streams
- (package
- (inherit sbcl-iolib+syscalls)
- (name "sbcl-iolib+streams")
- (inputs
- `(("iolib+multiplex" ,sbcl-iolib+multiplex)
- ,@(package-inputs sbcl-iolib+syscalls)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
- ((#:asd-system-name _) "iolib/streams")))))
-
-(define sbcl-iolib+sockets
- (package
- (inherit sbcl-iolib+syscalls)
- (name "sbcl-iolib+sockets")
- (inputs
- `(("iolib+syscalls" ,sbcl-iolib+syscalls)
- ("iolib+streams" ,sbcl-iolib+streams)
- ,@(package-inputs sbcl-iolib+syscalls)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
- ((#:asd-system-name _) "iolib/sockets")))))
-
-(define-public sbcl-iolib
- (package
- (inherit sbcl-iolib+syscalls)
- (name "sbcl-iolib")
- (inputs
- `(("iolib+multiplex" ,sbcl-iolib+multiplex)
- ("iolib+streams" ,sbcl-iolib+streams)
- ("iolib+sockets" ,sbcl-iolib+sockets)
- ,@(package-inputs sbcl-iolib+syscalls)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
- ((#:asd-system-name _) "iolib")))))
-
(define-public cl-iolib
(let ((parent (sbcl-package->cl-source-package sbcl-iolib)))
(package
@@ -5665,6 +4745,9 @@ and @code{kqueue(2)}), a pathname library and file-system utilities.")
`(("libfixposix" ,libfixposix)
,@(package-propagated-inputs parent))))))
+(define-public ecl-iolib
+ (sbcl-package->ecl-package sbcl-iolib))
+
(define-public sbcl-ieee-floats
(let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
(revision "1"))
@@ -5693,6 +4776,9 @@ floating point values to IEEE 754 binary representation.")
(define-public cl-ieee-floats
(sbcl-package->cl-source-package sbcl-ieee-floats))
+(define-public ecl-ieee-floats
+ (sbcl-package->ecl-package sbcl-ieee-floats))
+
(define sbcl-closure-common
(let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
(revision "1"))
@@ -5720,14 +4806,12 @@ Closure is a reference to the web browser it was originally written for.")
;; TODO: License?
(license #f))))
-(define-public sbcl-cxml+xml
+(define-public sbcl-cxml
(let ((commit "00b22bf4c4cf11c993d5866fae284f95ab18e6bf")
(revision "1"))
(package
- (name "sbcl-cxml+xml")
- (build-system asdf-build-system/sbcl)
+ (name "sbcl-cxml")
(version (git-version "0.0.0" revision commit))
- (home-page "https://common-lisp.net/project/cxml/")
(source
(origin
(method git-fetch)
@@ -5738,81 +4822,24 @@ Closure is a reference to the web browser it was originally written for.")
(sha256
(base32
"13kif7rf3gqdycsk9zq0d7y0g9y81krkl0z87k0p2fkbjfgrph37"))))
- (inputs
- `(("closure-common" ,sbcl-closure-common)
- ("puri" ,sbcl-puri)
- ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
- (arguments
- `(#:asd-file "cxml.asd"
- #:asd-system-name "cxml/xml"))
- (synopsis "Common Lisp XML parser")
- (description "CXML implements a namespace-aware, validating XML 1.0
-parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
-offered, one SAX-like, the other similar to StAX.")
- (license license:llgpl))))
-
-(define sbcl-cxml+dom
- (package
- (inherit sbcl-cxml+xml)
- (name "sbcl-cxml+dom")
- (inputs
- `(("closure-common" ,sbcl-closure-common)
- ("puri" ,sbcl-puri)
- ("cxml+xml" ,sbcl-cxml+xml)))
- (arguments
- `(#:asd-file "cxml.asd"
- #:asd-system-name "cxml/dom"))))
-
-(define sbcl-cxml+klacks
- (package
- (inherit sbcl-cxml+xml)
- (name "sbcl-cxml+klacks")
- (inputs
- `(("closure-common" ,sbcl-closure-common)
- ("puri" ,sbcl-puri)
- ("cxml+xml" ,sbcl-cxml+xml)))
- (arguments
- `(#:asd-file "cxml.asd"
- #:asd-system-name "cxml/klacks"))))
-
-(define sbcl-cxml+test
- (package
- (inherit sbcl-cxml+xml)
- (name "sbcl-cxml+test")
- (inputs
- `(("closure-common" ,sbcl-closure-common)
- ("puri" ,sbcl-puri)
- ("cxml+xml" ,sbcl-cxml+xml)))
- (arguments
- `(#:asd-file "cxml.asd"
- #:asd-system-name "cxml/test"))))
-
-(define-public sbcl-cxml
- (package
- (inherit sbcl-cxml+xml)
- (name "sbcl-cxml")
+ (build-system asdf-build-system/sbcl)
(inputs
`(("closure-common" ,sbcl-closure-common)
("puri" ,sbcl-puri)
- ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
- ("cxml+dom" ,sbcl-cxml+dom)
- ("cxml+klacks" ,sbcl-cxml+klacks)
- ("cxml+test" ,sbcl-cxml+test)))
- (arguments
- `(#:asd-file "cxml.asd"
- #:asd-system-name "cxml"
- #:phases
- (modify-phases %standard-phases
- (add-after 'build 'install-dtd
- (lambda* (#:key outputs #:allow-other-keys)
- (install-file "catalog.dtd"
- (string-append
- (assoc-ref outputs "out")
- "/lib/" (%lisp-type))))))))))
+ ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+ (synopsis "Common Lisp XML parser")
+ (description "CXML implements a namespace-aware, validating XML 1.0
+parser as well as the DOM Level 2 Core interfaces. Two parser interfaces are
+offered, one SAX-like, the other similar to StAX.")
+ (home-page "https://common-lisp.net/project/cxml/")
+ (license license:llgpl))))
(define-public cl-cxml
(sbcl-package->cl-source-package sbcl-cxml))
+(define-public ecl-cxml
+ (sbcl-package->ecl-package sbcl-cxml))
+
(define-public sbcl-cl-reexport
(let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
(revision "1"))
@@ -5844,6 +4871,9 @@ cookie headers, cookie creation, cookie jar creation and more.")
(define-public cl-reexport
(sbcl-package->cl-source-package sbcl-cl-reexport))
+(define-public ecl-cl-reexport
+ (sbcl-package->ecl-package sbcl-cl-reexport))
+
(define-public sbcl-cl-cookie
(let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
(revision "1"))
@@ -5869,8 +4899,7 @@ cookie headers, cookie creation, cookie jar creation and more.")
("cl-ppcre" ,sbcl-cl-ppcre)
("local-time" ,sbcl-local-time)))
(native-inputs
- `(("prove-asdf" ,sbcl-prove-asdf)
- ("prove" ,sbcl-prove)))
+ `(("prove" ,sbcl-prove)))
(arguments
;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
`(#:tests? #f))
@@ -5882,6 +4911,9 @@ cookie headers, cookie creation, cookie jar creation and more.")
(define-public cl-cookie
(sbcl-package->cl-source-package sbcl-cl-cookie))
+(define-public ecl-cl-cookie
+ (sbcl-package->ecl-package sbcl-cl-cookie))
+
(define-public sbcl-dexador
(let ((commit "953090f04c4d1a9ee6632b90133cdc297b68badc")
(revision "1"))
@@ -5919,8 +4951,7 @@ cookie headers, cookie creation, cookie jar creation and more.")
("alexandria" ,sbcl-alexandria)))
(native-inputs
`(("prove" ,sbcl-prove)
- ("prove-asdf" ,sbcl-prove-asdf)
- ("lack-request" ,sbcl-lack-request)
+ ("lack" ,sbcl-lack)
("clack" ,sbcl-clack)
("babel" ,sbcl-babel)
("alexandria" ,sbcl-alexandria)
@@ -5989,6 +5020,9 @@ This library offers macros to deal with symbols from any namespace.")
(define-public cl-lisp-namespace
(sbcl-package->cl-source-package sbcl-lisp-namespace))
+(define-public ecl-lisp-namespace
+ (sbcl-package->ecl-package sbcl-lisp-namespace))
+
(define-public sbcl-trivial-cltl2
(let ((commit "8a3bda30dc25d2f65fcf514d0eb6e6db75252c61")
(revision "2"))
@@ -6017,6 +5051,9 @@ and it exports symbols from implementation-specific packages.")
(define-public cl-trivial-cltl2
(sbcl-package->cl-source-package sbcl-trivial-cltl2))
+(define-public ecl-trivial-cltl2
+ (sbcl-package->ecl-package sbcl-trivial-cltl2))
+
(define-public sbcl-introspect-environment
(let ((commit "fff42f8f8fd0d99db5ad6c5812e53de7d660020b")
(revision "1"))
@@ -6061,6 +5098,9 @@ can and/or provide reasonable defaults.")
(define-public cl-introspect-environment
(sbcl-package->cl-source-package sbcl-introspect-environment))
+(define-public ecl-introspect-environment
+ (sbcl-package->ecl-package sbcl-introspect-environment))
+
(define-public sbcl-type-i
(let ((commit "d34440ab4ebf5a46a58deccb35950b15670e3667")
(revision "2"))
@@ -6096,6 +5136,13 @@ the return type of a function.")
(define-public cl-type-i
(sbcl-package->cl-source-package sbcl-type-i))
+(define-public ecl-type-i
+ (package
+ (inherit (sbcl-package->ecl-package sbcl-type-i))
+ (arguments
+ ;; The tests get stuck indefinitly
+ '(#:tests? #f))))
+
(define-public sbcl-optima
(let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
(revision "1"))
@@ -6131,6 +5178,9 @@ optimizing techniques widely used in the functional programming world.")
(define-public cl-optima
(sbcl-package->cl-source-package sbcl-optima))
+(define-public ecl-optima
+ (sbcl-package->ecl-package sbcl-optima))
+
(define-public sbcl-fare-quasiquote
(let ((commit "640d39a0451094071b3e093c97667b3947f43639")
(revision "1"))
@@ -6150,11 +5200,15 @@ optimizing techniques widely used in the functional programming world.")
(sha256
(base32 "1g6q11l50kgija9f55lzqpcwvaq0ljiw8v1j265hnyg6nahjwjvg"))))
(inputs
- `(("fare-utils" ,sbcl-fare-utils)))
+ `(("fare-utils" ,sbcl-fare-utils)
+ ("named-readtables" ,sbcl-named-readtables)
+ ("optima" ,sbcl-optima)))
(arguments
;; XXX: Circular dependencies: Tests depend on subsystems,
;; which depend on the main systems.
`(#:tests? #f
+ #:asd-systems '("fare-quasiquote"
+ "fare-quasiquote-extras")
#:phases
(modify-phases %standard-phases
;; XXX: Require 1.0.0 version of fare-utils, and we package some
@@ -6164,7 +5218,11 @@ optimizing techniques widely used in the functional programming world.")
(lambda _
(substitute* "fare-quasiquote.asd"
(("\\(:version \"fare-utils\" \"1.0.0\"\\)")
- "\"fare-utils\"")))))))
+ "\"fare-utils\""))
+ (substitute* "fare-quasiquote-optima.asd"
+ (("\\(:version \"optima\" \"1\\.0\"\\)")
+ "\"optima\""))
+ #t)))))
(synopsis "Pattern-matching friendly implementation of quasiquote")
(description "The main purpose of this n+2nd reimplementation of
quasiquote is enable matching of quasiquoted patterns, using Optima or
@@ -6174,222 +5232,97 @@ Trivia.")
(define-public cl-fare-quasiquote
(sbcl-package->cl-source-package sbcl-fare-quasiquote))
-(define-public sbcl-fare-quasiquote-optima
- (package
- (inherit sbcl-fare-quasiquote)
- (name "sbcl-fare-quasiquote-optima")
- (inputs
- `(("optima" ,sbcl-optima)
- ("fare-quasiquote" ,sbcl-fare-quasiquote)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-requirement
- (lambda _
- (substitute* "fare-quasiquote-optima.asd"
- (("\\(:version \"optima\" \"1\\.0\"\\)")
- "\"optima\""))
- #t)))))))
-
-(define-public cl-fare-quasiquote-optima
- (sbcl-package->cl-source-package sbcl-fare-quasiquote-optima))
-
-(define-public sbcl-fare-quasiquote-readtable
- (package
- (inherit sbcl-fare-quasiquote)
- (name "sbcl-fare-quasiquote-readtable")
- (inputs
- `(("fare-quasiquote" ,sbcl-fare-quasiquote)
- ("named-readtables" ,sbcl-named-readtables)))
- (description "The main purpose of this n+2nd reimplementation of
-quasiquote is enable matching of quasiquoted patterns, using Optima or
-Trivia.
-
-This package uses fare-quasiquote with named-readtable.")))
-
-(define-public cl-fare-quasiquote-readtable
- (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
+(define-public ecl-fare-quasiquote
+ (sbcl-package->ecl-package sbcl-fare-quasiquote))
-(define-public sbcl-fare-quasiquote-extras
- (package
- (inherit sbcl-fare-quasiquote)
- (name "sbcl-fare-quasiquote-extras")
- (build-system asdf-build-system/sbcl)
- (inputs
- `(("fare-quasiquote-optima" ,sbcl-fare-quasiquote-optima)
- ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'build
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (lib (string-append out "/lib/" (%lisp-type))))
- (mkdir-p lib)
- (install-file "fare-quasiquote-extras.asd" lib)
- (make-file-writable
- (string-append lib "/fare-quasiquote-extras.asd"))
- #t))))))
- (description "This library combines @code{fare-quasiquote-readtable} and
-@code{fare-quasiquote-optima}.")))
-
-(define-public cl-fare-quasiquote-extras
- (package
- (inherit cl-fare-quasiquote)
- (name "cl-fare-quasiquote-extras")
- (build-system asdf-build-system/source)
- (propagated-inputs
- `(("fare-quasiquote" ,cl-fare-quasiquote)
- ("fare-quasiquote-optima" ,cl-fare-quasiquote-optima)
- ("fare-quasiquote-readtable" ,cl-fare-quasiquote-readtable)))
- (description "This library combines @code{fare-quasiquote-readtable} and
-@code{fare-quasiquote-optima}.")))
-
-(define-public sbcl-trivia.level0
+;;; Split the trivia package in two to work around the circular dependency
+;;; between guicho271828/trivia and guicho271828/type-i.
+(define-public sbcl-trivia.trivial
(let ((commit "37698b47a14c2007630468de7a993694ef7bd475")
(revision "2"))
(package
- (name "sbcl-trivia.level0")
- (build-system asdf-build-system/sbcl)
+ (name "sbcl-trivia.trivial")
(version (git-version "0.0.0" revision commit))
- (home-page "https://github.com/guicho271828/trivia")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url home-page)
+ (url "https://github.com/guicho271828/trivia")
(commit commit)))
- (file-name (git-file-name name version))
+ (file-name (git-file-name "trivia" version))
(sha256
(base32
"0rsbwbw3ipxxgr6zzhci12nilq8zky475kmhz1rcxy4q8a85vn72"))))
+ (build-system asdf-build-system/sbcl)
(inputs
- `(("alexandria" ,sbcl-alexandria)))
+ `(("alexandria" ,sbcl-alexandria)
+ ("closer-mop" ,sbcl-closer-mop)
+ ("lisp-namespace" ,sbcl-lisp-namespace)
+ ("trivial-cltl2" ,sbcl-trivial-cltl2)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-build
+ (lambda _
+ (for-each delete-file
+ '("trivia.balland2006.asd"
+ "trivia.ppcre.asd"
+ "trivia.quasiquote.asd"
+ "trivia.cffi.asd"
+ "trivia.asd"
+ "trivia.test.asd"))
+ #t)))))
(synopsis "Pattern matching in Common Lisp")
(description "Trivia is a pattern matching compiler that is compatible
with Optima, another pattern matching library for Common Lisp. It is meant to
be faster and more extensible than Optima.")
+ (home-page "https://github.com/guicho271828/trivia")
(license license:llgpl))))
-(define-public sbcl-trivia.level1
- (package
- (inherit sbcl-trivia.level0)
- (name "sbcl-trivia.level1")
- (inputs
- `(("trivia.level0" ,sbcl-trivia.level0)))
- (description "Trivia is a pattern matching compiler that is compatible
-with Optima, another pattern matching library for Common Lisp. It is meant to
-be faster and more extensible than Optima.
-
-This system contains the core patterns of Trivia.")))
-
-(define-public sbcl-trivia.level2
- (package
- (inherit sbcl-trivia.level0)
- (name "sbcl-trivia.level2")
- (inputs
- `(("trivia.level1" ,sbcl-trivia.level1)
- ("lisp-namespace" ,sbcl-lisp-namespace)
- ("trivial-cltl2" ,sbcl-trivial-cltl2)
- ("closer-mop" ,sbcl-closer-mop)))
- (description "Trivia is a pattern matching compiler that is compatible
-with Optima, another pattern matching library for Common Lisp. It is meant to
-be faster and more extensible than Optima.
-
-This system contains a non-optimized pattern matcher compatible with Optima,
-with extensible optimizer interface.")))
-
-(define-public sbcl-trivia.trivial
- (package
- (inherit sbcl-trivia.level0)
- (name "sbcl-trivia.trivial")
- (inputs
- `(("trivia.level2" ,sbcl-trivia.level2)))
- (description "Trivia is a pattern matching compiler that is compatible
-with Optima, another pattern matching library for Common Lisp. It is meant to
-be faster and more extensible than Optima.
-
-This system contains the base level system of Trivia with a trivial optimizer.")))
-
-(define-public sbcl-trivia.balland2006
- (package
- (inherit sbcl-trivia.level0)
- (name "sbcl-trivia.balland2006")
- (inputs
- `(("trivia.trivial" ,sbcl-trivia.trivial)
- ("iterate" ,sbcl-iterate)
- ("type-i" ,sbcl-type-i)
- ("alexandria" ,sbcl-alexandria)))
- (arguments
- ;; Tests are done in trivia itself.
- `(#:tests? #f))
- (description "Trivia is a pattern matching compiler that is compatible
-with Optima, another pattern matching library for Common Lisp. It is meant to
-be faster and more extensible than Optima.
+(define-public cl-trivia.trivial
+ (sbcl-package->cl-source-package sbcl-trivia.trivial))
-This system contains the base level system of Trivia with a trivial optimizer.")))
-
-(define-public sbcl-trivia.ppcre
- (package
- (inherit sbcl-trivia.level0)
- (name "sbcl-trivia.ppcre")
- (inputs
- `(("trivia.trivial" ,sbcl-trivia.trivial)
- ("cl-ppcre" ,sbcl-cl-ppcre)))
- (description "Trivia is a pattern matching compiler that is compatible
-with Optima, another pattern matching library for Common Lisp. It is meant to
-be faster and more extensible than Optima.
-
-This system contains the PPCRE extension.")))
-
-(define-public sbcl-trivia.quasiquote
- (package
- (inherit sbcl-trivia.level0)
- (name "sbcl-trivia.quasiquote")
- (inputs
- `(("trivia.trivial" ,sbcl-trivia.trivial)
- ("fare-quasiquote" ,sbcl-fare-quasiquote)
- ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
- (description "Trivia is a pattern matching compiler that is compatible
-with Optima, another pattern matching library for Common Lisp. It is meant to
-be faster and more extensible than Optima.
-
-This system contains the fare-quasiquote extension.")))
-
-(define-public sbcl-trivia.cffi
- (package
- (inherit sbcl-trivia.level0)
- (name "sbcl-trivia.cffi")
- (inputs
- `(("cffi" ,sbcl-cffi)
- ("trivia.trivial" ,sbcl-trivia.trivial)))
- (description "Trivia is a pattern matching compiler that is compatible
-with Optima, another pattern matching library for Common Lisp. It is meant to
-be faster and more extensible than Optima.
-
-This system contains the CFFI foreign slot access extension.")))
+(define-public ecl-trivia.trivial
+ (sbcl-package->ecl-package sbcl-trivia.trivial))
(define-public sbcl-trivia
(package
- (inherit sbcl-trivia.level0)
+ (inherit sbcl-trivia.trivial)
(name "sbcl-trivia")
- (inputs
- `(("trivia.balland2006" ,sbcl-trivia.balland2006)))
(native-inputs
`(("fiveam" ,sbcl-fiveam)
- ("trivia.ppcre" ,sbcl-trivia.ppcre)
- ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
- ("trivia.cffi" ,sbcl-trivia.cffi)
("optima" ,sbcl-optima)))
- (arguments
- `(#:test-asd-file "trivia.test.asd"))
- (description "Trivia is a pattern matching compiler that is compatible
-with Optima, another pattern matching library for Common Lisp. It is meant to
-be faster and more extensible than Optima.")))
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cffi" ,sbcl-cffi)
+ ("cl-ppcre" ,sbcl-cl-ppcre)
+ ("fare-quasiquote" ,sbcl-fare-quasiquote)
+ ("iterate" ,sbcl-iterate)
+ ("trivia.trivial" ,sbcl-trivia.trivial)
+ ("type-i" ,sbcl-type-i)))
+ (arguments
+ '(#:asd-systems '("trivia"
+ "trivia.ppcre"
+ "trivia.quasiquote"
+ "trivia.cffi")
+ #:test-asd-file "trivia.test.asd"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-build
+ (lambda _
+ (for-each delete-file
+ '("trivia.level0.asd"
+ "trivia.level1.asd"
+ "trivia.level2.asd"
+ "trivia.trivial.asd"))
+ #t)))))))
(define-public cl-trivia
(sbcl-package->cl-source-package sbcl-trivia))
+(define-public ecl-trivia
+ (sbcl-package->ecl-package sbcl-trivia))
+
(define-public sbcl-mk-string-metrics
(package
(name "sbcl-mk-string-metrics")
@@ -6424,6 +5357,9 @@ various string metrics in Common Lisp:
(define-public cl-mk-string-metrics
(sbcl-package->cl-source-package sbcl-mk-string-metrics))
+(define-public ecl-mk-string-metrics
+ (sbcl-package->ecl-package sbcl-mk-string-metrics))
+
(define-public sbcl-cl-str
(let ((commit "eb480f283e28802d67b35bf916506701152f9a2a"))
(package
@@ -6444,11 +5380,9 @@ various string metrics in Common Lisp:
("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
("cl-change-case" ,sbcl-cl-change-case)))
(native-inputs
- `(("prove" ,sbcl-prove)
- ("prove-asdf" ,sbcl-prove-asdf)))
+ `(("prove" ,sbcl-prove)))
(arguments
- `(#:asd-file "str.asd"
- #:asd-system-name "str"
+ `(#:asd-systems '("str")
#:test-asd-file "str.test.asd"))
(synopsis "Modern, consistent and terse Common Lisp string manipulation library")
(description "A modern and consistent Common Lisp string manipulation
@@ -6463,6 +5397,9 @@ arrows.")
(define-public cl-str
(sbcl-package->cl-source-package sbcl-cl-str))
+(define-public ecl-cl-str
+ (sbcl-package->ecl-package sbcl-cl-str))
+
(define-public sbcl-cl-xmlspam
(let ((commit "ea06abcca2a73a9779bcfb09081e56665f94e22a"))
(package
@@ -6495,15 +5432,17 @@ constructs can be used interchangeably with pattern matching, and the full
power of CXML is available when necessary.")
(license license:bsd-3))))
-;; TODO: dbus uses ASDF's package-inferred-system which is not supported by
-;; asdf-build-system/sbcl as of 2019-08-02. We should fix
-;; asdf-build-system/sbcl.
-(define-public cl-dbus
+(define-public cl-xmlspam
+ (sbcl-package->cl-source-package sbcl-cl-xmlspam))
+
+(define-public ecl-cl-xmlspam
+ (sbcl-package->ecl-package sbcl-cl-xmlspam))
+
+(define-public sbcl-dbus
(let ((commit "24b452df3a45ca5dc95015500f34baad175c981a")
(revision "1"))
(package
- (name "cl-dbus")
- (build-system asdf-build-system/source)
+ (name "sbcl-dbus")
(version (git-version "20190408" revision commit))
(home-page "https://github.com/death/dbus")
(source
@@ -6516,9 +5455,8 @@ power of CXML is available when necessary.")
(sha256
(base32
"0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
- ;; Inputs must be propagated or else packages depending on this won't
- ;; have the necessary packages.
- (propagated-inputs
+ (build-system asdf-build-system/sbcl)
+ (inputs
`(("alexandria" ,sbcl-alexandria)
("trivial-garbage" ,sbcl-trivial-garbage)
("babel" ,sbcl-babel)
@@ -6532,6 +5470,12 @@ power of CXML is available when necessary.")
objects as well as send and notify other objects connected to a bus.")
(license license:bsd-2))))
+(define-public cl-dbus
+ (sbcl-package->cl-source-package sbcl-dbus))
+
+(define-public ecl-dbus
+ (sbcl-package->ecl-package sbcl-dbus))
+
(define-public sbcl-cl-hooks
(let ((commit "5b638083f3b4f1221a52631d9c8a0a265565cac7")
(revision "1"))
@@ -6616,8 +5560,7 @@ extension-points via the concept of hooks.")
"1fh8r7kf8s3hvqdg6b71b8p7w3v2kkga9bw8j3qqdxhzr6anpm0b"))))
(inputs
`(("bordeaux-threads" ,sbcl-bordeaux-threads)
- ("usocket" ,sbcl-usocket)
- ("usocket-server" ,sbcl-usocket-server)))
+ ("usocket" ,sbcl-usocket)))
(synopsis "Common Lisp abstraction layer over platform dependent functionality")
(description "@code{s-sysdeps} is an abstraction layer over platform
dependent functionality. This simple package is used as a building block in a
@@ -6731,7 +5674,11 @@ programming style and the efficiency of an iterative programming style.")
"0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga"))))
(build-system asdf-build-system/sbcl)
(inputs
- `(("local-time" ,sbcl-local-time)))
+ `(("local-time" ,sbcl-local-time)
+ ("series" ,sbcl-series)))
+ (arguments
+ '(#:asd-systems '("periods"
+ "periods-series")))
(synopsis "Common Lisp library for manipulating date/time objects")
(description
"Periods is a Common Lisp library providing a set of utilities for
@@ -6746,26 +5693,6 @@ discontiguous ranges of time.")
(define-public ecl-periods
(sbcl-package->ecl-package sbcl-periods))
-(define-public sbcl-periods-series
- (package
- (inherit sbcl-periods)
- (name "sbcl-periods-series")
- (inputs
- `(("periods" ,sbcl-periods)
- ("series" ,sbcl-series)))
- (arguments
- '(#:asd-file "periods-series.asd"
- #:asd-system-name "periods-series"))
- (description
- "Periods-series is an extension of the periods Common Lisp library
-providing functions compatible with the series Common Lisp library.")))
-
-(define-public cl-periods-series
- (sbcl-package->cl-source-package sbcl-periods-series))
-
-(define-public ecl-periods-series
- (sbcl-package->ecl-package sbcl-periods-series))
-
(define-public sbcl-metatilities-base
(let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5")
(revision "1"))
@@ -6820,7 +5747,8 @@ which implements a set of utilities.")
(inputs
`(("metatilities-base" ,sbcl-metatilities-base)))
(arguments
- '(#:phases
+ '(#:asd-files '("cl-containers.asd")
+ #:phases
(modify-phases %standard-phases
(add-after 'unpack 'relax-version-checks
(lambda _
@@ -6887,57 +5815,40 @@ on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
(define-public ecl-xlunit
(sbcl-package->ecl-package sbcl-xlunit))
-(define-public sbcl-fprog
+(define-public sbcl-cambl
(let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
(revision "1"))
(package
- (name "sbcl-fprog")
- (version (git-version "1.0.0" revision commit))
+ (name "sbcl-cambl")
+ (version (git-version "4.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jwiegley/cambl")
(commit commit)))
- (file-name (git-file-name name version))
+ (file-name (git-file-name "cambl" version))
(sha256
- (base32
- "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
+ (base32 "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz"))))
(build-system asdf-build-system/sbcl)
- (synopsis "Functional programming utilities for Common Lisp")
- (description
- "@code{fprog} is a Common Lisp library allowing iteration over
-immutable lists sharing identical sublists.")
- (home-page "https://github.com/jwiegley/cambl")
- (license license:bsd-3))))
-
-(define-public cl-fprog
- (sbcl-package->cl-source-package sbcl-fprog))
-
-(define-public ecl-fprog
- (sbcl-package->ecl-package sbcl-fprog))
-
-(define-public sbcl-cambl
- (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636")
- (revision "1"))
- (package
- (inherit sbcl-fprog)
- (name "sbcl-cambl")
- (version (git-version "4.0.0" revision commit))
(native-inputs
`(("xlunit" ,sbcl-xlunit)))
(inputs
`(("alexandria" ,sbcl-alexandria)
("cl-containers" ,sbcl-cl-containers)
("local-time" ,sbcl-local-time)
- ("periods" ,sbcl-periods)
- ("fprog" ,sbcl-fprog)))
+ ("periods" ,sbcl-periods)))
+ (arguments
+ '(#:asd-files '("fprog.asd"
+ "cambl.asd")))
(synopsis "Commoditized amounts and balances for Common Lisp")
(description
"CAMBL is a Common Lisp library providing a convenient facility for
working with commoditized values. It does not allow compound units (and so is
not suited for scientific operations) but does work rather nicely for the
-purpose of financial calculations."))))
+purpose of financial calculations.")
+ (home-page "https://github.com/jwiegley/cambl")
+ (license license:bsd-3))))
(define-public cl-cambl
(sbcl-package->cl-source-package sbcl-cambl))
@@ -6966,7 +5877,7 @@ purpose of financial calculations."))))
`(("cambl" ,sbcl-cambl)
("cl-ppcre" ,sbcl-cl-ppcre)
("local-time" ,sbcl-local-time)
- ("periods-series" ,sbcl-periods-series)))
+ ("periods" ,sbcl-periods)))
(arguments
'(#:phases
(modify-phases %standard-phases
@@ -7222,6 +6133,9 @@ of C+GObject libraries without the need of writing dedicated bindings.")
(define-public cl-gobject-introspection
(sbcl-package->cl-source-package sbcl-cl-gobject-introspection))
+(define-public ecl-cl-gobject-introspection
+ (sbcl-package->ecl-package sbcl-cl-gobject-introspection))
+
(define-public sbcl-string-case
(let ((commit "718c761e33749e297cd2809c7ba3ade1985c49f7")
(revision "0"))
@@ -7380,14 +6294,13 @@ implementation specific equivalent.")
(inputs
`(("alexandria" ,sbcl-alexandria)
("trivia" ,sbcl-trivia)
- ("trivia.quasiquote" ,sbcl-trivia.quasiquote)
("split-sequence" ,sbcl-split-sequence)
("string-case" ,sbcl-string-case)
("parse-number" ,sbcl-parse-number)
("trivial-garbage" ,sbcl-trivial-garbage)
("bordeaux-threads" ,sbcl-bordeaux-threads)
("named-readtables" ,sbcl-named-readtables)
- ("fare-quasiquote-extras" ,sbcl-fare-quasiquote-extras)
+ ("fare-quasiquote" ,sbcl-fare-quasiquote)
("parse-declarations-1.0" ,sbcl-parse-declarations)
("global-vars" ,sbcl-global-vars)
("trivial-file-size" ,sbcl-trivial-file-size)
@@ -7413,6 +6326,9 @@ supplement, not a competitor, to Alexandria.")
(define-public cl-serapeum
(sbcl-package->cl-source-package sbcl-serapeum))
+(define-public ecl-serapeum
+ (sbcl-package->ecl-package sbcl-serapeum))
+
(define-public sbcl-arrows
(let ((commit "df7cf0067e0132d9697ac8b1a4f1b9c88d4f5382")
(revision "0"))
@@ -7593,11 +6509,8 @@ JSON interchange format.")
(inputs
`(("alexandria" ,sbcl-alexandria)
("iterate" ,sbcl-iterate)
- ("metabang-bind" ,sbcl-metabang-bind)))
- (propagated-inputs
- ;; Swank doesn't have a pre-compiled package, therefore we must
- ;; propagate its sources.
- `(("swank" ,cl-slime-swank)))
+ ("metabang-bind" ,sbcl-metabang-bind)
+ ("swank" ,sbcl-slime-swank)))
(arguments
'(#:phases
(modify-phases %standard-phases
@@ -7616,6 +6529,9 @@ interactive development.")
(define-public cl-stefil
(sbcl-package->cl-source-package sbcl-stefil))
+(define-public ecl-stefil
+ (sbcl-package->ecl-package sbcl-stefil))
+
(define-public sbcl-graph
(let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
(revision "0"))
@@ -7632,19 +6548,22 @@ interactive development.")
(file-name (git-file-name name version))
(sha256
(base32
- "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))
- (patches (search-patches "sbcl-graph-asdf-definitions.patch"))))
+ "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))))
(build-system asdf-build-system/sbcl)
(native-inputs
`(("stefil" ,sbcl-stefil)))
(inputs
`(("alexandria" ,sbcl-alexandria)
("cl-heap" ,sbcl-cl-heap)
+ ("cl-ppcre" ,sbcl-cl-ppcre)
("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
("metabang-bind" ,sbcl-metabang-bind)
- ("named-readtables" ,sbcl-named-readtables)))
+ ("named-readtables" ,sbcl-named-readtables)
+ ("yason" ,sbcl-yason)))
(arguments
- '(#:test-asd-file "graph-test.asd"))
+ '(#:asd-systems '("graph"
+ "graph/dot"
+ "graph/json")))
(synopsis "Graph data structure and algorithms for Common Lisp")
(description
"The GRAPH Common Lisp library provides a data structures to represent
@@ -7656,39 +6575,8 @@ path, maximum flow, minimum spanning tree, etc.).")
(define-public cl-graph
(sbcl-package->cl-source-package sbcl-graph))
-(define-public sbcl-graph-dot
- (package
- (inherit sbcl-graph)
- (name "sbcl-graph-dot")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-ppcre" ,sbcl-cl-ppcre)
- ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
- ("graph" ,sbcl-graph)
- ("metabang-bind" ,sbcl-metabang-bind)
- ("named-readtables" ,sbcl-named-readtables)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-graph)
- ((#:asd-file _ "") "graph-dot.asd")
- ((#:asd-system-name _ #f) "graph-dot")))
- (synopsis "Serialize graphs to and from DOT format")))
-
-(define-public sbcl-graph-json
- (package
- (inherit sbcl-graph)
- (name "sbcl-graph-json")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
- ("graph" ,sbcl-graph)
- ("metabang-bind" ,sbcl-metabang-bind)
- ("named-readtables" ,sbcl-named-readtables)
- ("yason" ,sbcl-yason)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-graph)
- ((#:asd-file _ "") "graph-json.asd")
- ((#:asd-system-name _ #f) "graph-json")))
- (synopsis "Serialize graphs to and from JSON format")))
+(define-public ecl-graph
+ (sbcl-package->ecl-package sbcl-graph))
(define-public sbcl-trivial-indent
(let ((commit "2d016941751647c6cc5bd471751c2cf68861c94a")
@@ -7719,6 +6607,9 @@ results.")
(define-public cl-trivial-indent
(sbcl-package->cl-source-package sbcl-trivial-indent))
+(define-public ecl-trivial-indent
+ (sbcl-package->ecl-package sbcl-trivial-indent))
+
(define-public sbcl-documentation-utils
(let ((commit "98630dd5f7e36ae057fa09da3523f42ccb5d1f55")
(revision "0"))
@@ -7782,6 +6673,9 @@ macro. This library provides a set of simple utilities to help with that.")
(define-public cl-form-fiddle
(sbcl-package->cl-source-package sbcl-form-fiddle))
+(define-public ecl-form-fiddle
+ (sbcl-package->ecl-package sbcl-form-fiddle))
+
(define-public sbcl-parachute
(let ((commit "ca04dd8e43010a6dfffa26dbe1d62af86008d666")
(revision "0"))
@@ -7814,6 +6708,9 @@ Each test can contain a bunch of test forms that make up its body.")
(define-public cl-parachute
(sbcl-package->cl-source-package sbcl-parachute))
+(define-public ecl-parachute
+ (sbcl-package->ecl-package sbcl-parachute))
+
(define-public sbcl-array-utils
(let ((commit "f90eb9070d0b2205af51126a35033574725e5c56")
(revision "0"))
@@ -7846,6 +6743,9 @@ functions for arrays and vectors. Originally from Plump.")
(define-public cl-array-utils
(sbcl-package->cl-source-package sbcl-array-utils))
+(define-public ecl-array-utils
+ (sbcl-package->ecl-package sbcl-array-utils))
+
(define-public sbcl-plump
(let ((commit "34f890fe46efdebe7bb70d218f1937e98f632bf9")
(revision "1"))
@@ -7881,6 +6781,11 @@ your own classes.")
(define-public cl-plump
(sbcl-package->cl-source-package sbcl-plump))
+(define-public ecl-plump
+ (sbcl-package->ecl-package sbcl-plump))
+
+;;; Split the antik package in two to work around the circular dependency
+;;; between antik/antik and antik/gsll.
(define-public sbcl-antik-base
(let ((commit "e4711a69b3d6bf37b5727af05c3cfd03e8428ba3")
(revision "1"))
@@ -7900,13 +6805,31 @@ your own classes.")
(build-system asdf-build-system/sbcl)
(inputs
`(("alexandria" ,sbcl-alexandria)
+ ("cffi" ,sbcl-cffi)
("cl-ppcre" ,sbcl-cl-ppcre)
+ ("drakma" ,sbcl-drakma)
+ ("fare-utils" ,sbcl-fare-utils)
("iterate" ,sbcl-iterate)
("metabang-bind" ,sbcl-metabang-bind)
("named-readtables" ,sbcl-named-readtables)
- ("split-sequence" ,sbcl-split-sequence)))
+ ("split-sequence" ,sbcl-split-sequence)
+ ("static-vectors" ,sbcl-static-vectors)
+ ("trivial-garbage" ,sbcl-trivial-garbage)
+ ("trivial-utf-8" ,sbcl-trivial-utf-8)))
(native-inputs
`(("lisp-unit" ,sbcl-lisp-unit)))
+ (arguments
+ '(#:asd-systems '("antik-base"
+ "foreign-array")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-build
+ (lambda _
+ (for-each delete-file
+ '("antik.asd"
+ "physical-dimension.asd"
+ "science-data.asd"))
+ #t)))))
(synopsis "Scientific and engineering computation in Common Lisp")
(description
"Antik provides a foundation for scientific and engineering
@@ -7923,63 +6846,19 @@ computer known.")
(sbcl-package->cl-source-package sbcl-antik-base))
(define-public ecl-antik-base
- (sbcl-package->ecl-package sbcl-antik-base))
-
-(define-public sbcl-foreign-array
- (package
- (inherit sbcl-antik-base)
- (name "sbcl-foreign-array")
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-antik-base)
- ((#:asd-file _ "") "foreign-array.asd")
- ((#:asd-system-name _ #f) "foreign-array")))
- (inputs
- `(("antik-base" ,sbcl-antik-base)
- ("cffi" ,sbcl-cffi)
- ("trivial-garbage" ,sbcl-trivial-garbage)
- ("static-vectors" ,sbcl-static-vectors)))
- (synopsis "Common Lisp library providing access to foreign arrays")))
-
-(define-public cl-foreign-array
- (sbcl-package->cl-source-package sbcl-foreign-array))
-
-(define-public ecl-foreign-array
- (sbcl-package->ecl-package sbcl-foreign-array))
-
-(define-public sbcl-physical-dimension
- (package
- (inherit sbcl-antik-base)
- (name "sbcl-physical-dimension")
- (inputs
- `(("fare-utils" ,sbcl-fare-utils)
- ("foreign-array" ,sbcl-foreign-array)
- ("trivial-utf-8" ,sbcl-trivial-utf-8)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-antik-base)
- ((#:asd-file _ "") "physical-dimension.asd")
- ((#:asd-system-name _ #f) "physical-dimension")))
- (synopsis
- "Common Lisp library providing computations with physical units")))
-
-(define-public cl-physical-dimension
- (sbcl-package->cl-source-package sbcl-physical-dimension))
-
-(define-public sbcl-science-data
- (package
- (inherit sbcl-antik-base)
- (name "sbcl-science-data")
- (inputs
- `(("physical-dimension" ,sbcl-physical-dimension)
- ("drakma" ,sbcl-drakma)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-antik-base)
- ((#:asd-file _ "") "science-data.asd")
- ((#:asd-system-name _ #f) "science-data")))
- (synopsis
- "Common Lisp library for scientific and engineering numerical data")))
-
-(define-public cl-science-data
- (sbcl-package->cl-source-package sbcl-science-data))
+ (let ((pkg (sbcl-package->ecl-package sbcl-antik-base)))
+ (package
+ (inherit pkg)
+ (arguments
+ (substitute-keyword-arguments (package-arguments pkg)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'fix-readtable
+ (lambda _
+ (substitute* "input-output/readtable.lisp"
+ (("#-ccl")
+ "#-(or ccl ecl)"))
+ #t)))))))))
(define-public sbcl-gsll
(let ((commit "1a8ada22f9cf5ed7372d352b2317f4ccdb6ab308")
@@ -8002,9 +6881,8 @@ computer known.")
`(("lisp-unit" ,sbcl-lisp-unit)))
(inputs
`(("alexandria" ,sbcl-alexandria)
- ("cffi-grovel" ,sbcl-cffi-grovel)
- ("cffi-libffi" ,sbcl-cffi-libffi)
- ("foreign-array" ,sbcl-foreign-array)
+ ("antik-base" ,sbcl-antik-base)
+ ("cffi" ,sbcl-cffi)
("gsl" ,gsl)
("metabang-bind" ,sbcl-metabang-bind)
("trivial-features" ,sbcl-trivial-features)
@@ -8043,17 +6921,27 @@ intending to program in Lisp.")
(define-public cl-gsll
(sbcl-package->cl-source-package sbcl-gsll))
+(define-public ecl-gsll
+ (sbcl-package->ecl-package sbcl-gsll))
+
(define-public sbcl-antik
(package
(inherit sbcl-antik-base)
(name "sbcl-antik")
(inputs
- `(("gsll" ,sbcl-gsll)
- ("physical-dimension" ,sbcl-physical-dimension)))
+ `(("antik-base" ,sbcl-antik-base)
+ ("gsll" ,sbcl-gsll)))
(arguments
- (substitute-keyword-arguments (package-arguments sbcl-antik-base)
- ((#:asd-file _ "") "antik.asd")
- ((#:asd-system-name _ #f) "antik")))))
+ '(#:asd-systems '("antik"
+ "science-data")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-build
+ (lambda _
+ (for-each delete-file
+ '("antik-base.asd"
+ "foreign-array.asd"))
+ #t)))))))
(define-public cl-antik
(sbcl-package->cl-source-package sbcl-antik))
@@ -8096,13 +6984,11 @@ doesn't support them.")
(define-public ecl-cl-interpol
(sbcl-package->ecl-package sbcl-cl-interpol))
-(define sbcl-symbol-munger-boot0
- ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
- ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
- (let ((commit "cc2bb4b7acd454d756484aec81ba487648385fc3")
+(define-public sbcl-symbol-munger
+ (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
(revision "1"))
(package
- (name "sbcl-symbol-munger-boot0")
+ (name "sbcl-symbol-munger")
(version (git-version "0.0.1" revision commit))
(source
(origin
@@ -8113,16 +6999,15 @@ doesn't support them.")
(file-name (git-file-name name version))
(sha256
(base32
- "0diav5ricqsybqvbp4bkxyj3bn3v9n7xb2pqqc4vg1algsw2pyjl"))))
+ "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
(build-system asdf-build-system/sbcl)
- (arguments
- `(#:asd-file "symbol-munger.asd"
- #:asd-system-name "symbol-munger"))
(inputs
- `(("iterate" ,sbcl-iterate)
- ("alexandria" ,sbcl-alexandria)))
- (native-inputs
- `(("lisp-unit" ,sbcl-lisp-unit)))
+ `(("alexandria" ,sbcl-alexandria)
+ ("iterate" ,sbcl-iterate)))
+ (arguments
+ ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
+ ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
+ '(#:tests? #f))
(synopsis
"Capitalization and spacing conversion functions for Common Lisp")
(description
@@ -8135,13 +7020,19 @@ and camel-case rules.")
;; See https://github.com/AccelerationNet/symbol-munger/issues/5
(license license:expat))))
-(define sbcl-lisp-unit2-boot0
+(define-public cl-symbol-munger
+ (sbcl-package->cl-source-package sbcl-symbol-munger))
+
+(define-public ecl-symbol-munger
+ (sbcl-package->ecl-package sbcl-symbol-munger))
+
+(define-public sbcl-lisp-unit2
;; There is a cyclical dependency between symbol-munger and lisp-unit2.
;; See https://github.com/AccelerationNet/symbol-munger/issues/4
(let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c")
(revision "1"))
(package
- (name "sbcl-lisp-unit2-boot0")
+ (name "sbcl-lisp-unit2")
(version (git-version "0.2.0" revision commit))
(source
(origin
@@ -8154,14 +7045,11 @@ and camel-case rules.")
(base32
"1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp"))))
(build-system asdf-build-system/sbcl)
- (arguments
- `(#:asd-file "lisp-unit2.asd"
- #:asd-system-name "lisp-unit2"))
(inputs
`(("alexandria" ,sbcl-alexandria)
("cl-interpol" ,sbcl-cl-interpol)
("iterate" ,sbcl-iterate)
- ("symbol-munger-boot0" ,sbcl-symbol-munger-boot0)))
+ ("symbol-munger" ,sbcl-symbol-munger)))
(synopsis "Test Framework for Common Lisp")
(description
"LISP-UNIT2 is a Common Lisp library that supports unit testing in the
@@ -8170,56 +7058,6 @@ by Chris Riesbeck.")
(home-page "https://github.com/AccelerationNet/lisp-unit2")
(license license:expat))))
-(define-public sbcl-symbol-munger
- (let ((commit "97598d4c3c53fd5da72ab78908fbd5d8c7a13416")
- (revision "1"))
- (package
- (name "sbcl-symbol-munger")
- (version (git-version "0.0.1" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/AccelerationNet/symbol-munger")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0y8jywjy0ldyhp7bxf16fdvdd2qgqnd7nlhlqfpfnzxcqk4xy1km"))))
- (build-system asdf-build-system/sbcl)
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("iterate" ,sbcl-iterate)))
- (native-inputs
- `(("lisp-unit2-boot0" ,sbcl-lisp-unit2-boot0)))
- (synopsis
- "Capitalization and spacing conversion functions for Common Lisp")
- (description
- "This is a Common Lisp library to change the capitalization and spacing
-of a string or a symbol. It can convert to and from Lisp, english, underscore
-and camel-case rules.")
- (home-page "https://github.com/AccelerationNet/symbol-munger")
- ;; The package declares a BSD license, but all of the license
- ;; text is MIT.
- ;; See https://github.com/AccelerationNet/symbol-munger/issues/5
- (license license:expat))))
-
-(define-public cl-symbol-munger
- (sbcl-package->cl-source-package sbcl-symbol-munger))
-
-(define-public ecl-symbol-munger
- (sbcl-package->ecl-package sbcl-symbol-munger))
-
-(define-public sbcl-lisp-unit2
- (package
- (inherit sbcl-lisp-unit2-boot0)
- (name "sbcl-lisp-unit2")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-interpol" ,sbcl-cl-interpol)
- ("iterate" ,sbcl-iterate)
- ("symbol-munger" ,sbcl-symbol-munger)))))
-
(define-public cl-lisp-unit2
(sbcl-package->cl-source-package sbcl-lisp-unit2))
@@ -8301,11 +7139,11 @@ sacrificing much in the way of power.")
(define-public ecl-external-program
(sbcl-package->ecl-package sbcl-external-program))
-(define sbcl-cl-ana-boot0
+(define-public sbcl-cl-ana
(let ((commit "fa7cee4c50aa1c859652813049ba0da7c18a0df9")
(revision "1"))
(package
- (name "sbcl-cl-ana-boot0")
+ (name "sbcl-cl-ana")
(version (git-version "0.0.0" revision commit))
(source
(origin
@@ -8315,9 +7153,38 @@ sacrificing much in the way of power.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32
- "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
+ (base32 "0mr47l57m276dbpap7irr4fcnk5fgknhf6mgv4043s8h73amk5qh"))))
(build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("cl-fad" ,sbcl-cl-fad)))
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("antik" ,sbcl-antik)
+ ("cffi" ,sbcl-cffi)
+ ("cl-csv" ,sbcl-cl-csv)
+ ("closer-mop" ,sbcl-closer-mop)
+ ("external-program" ,sbcl-external-program)
+ ("gsl" ,gsl)
+ ("gsll" ,sbcl-gsll)
+ ("hdf5" ,hdf5-parallel-openmpi)
+ ("iterate" ,sbcl-iterate)
+ ("libffi" ,libffi)
+ ("split-sequence" ,sbcl-split-sequence)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "hdf-cffi/hdf-cffi.lisp"
+ (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
+ (string-append (assoc-ref inputs "hdf5")
+ "/lib/libhdf5.so")))
+ (substitute* "gsl-cffi/gsl-cffi.lisp"
+ (("define-foreign-library gsl-cffi" all)
+ (string-append all " (:unix "
+ (assoc-ref inputs "gsl")
+ "/lib/libgsl.so)")))
+ #t)))))
(synopsis "Common Lisp data analysis library")
(description
"CL-ANA is a data analysis library in Common Lisp providing tabular and
@@ -8326,1060 +7193,6 @@ visualization.")
(home-page "https://github.com/ghollisjr/cl-ana")
(license license:gpl3))))
-(define-public sbcl-cl-ana.pathname-utils
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.pathname-utils")
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "pathname-utils/cl-ana.pathname-utils.asd")
- ((#:asd-system-name _ #f) "cl-ana.pathname-utils")))))
-
-(define-public cl-ana.pathname-utils
- (sbcl-package->cl-source-package sbcl-cl-ana.pathname-utils))
-
-(define-public ecl-cl-ana.pathname-utils
- (sbcl-package->ecl-package sbcl-cl-ana.pathname-utils))
-
-(define-public sbcl-cl-ana.package-utils
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.package-utils")
- (inputs
- `(("alexandria" ,sbcl-alexandria)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "package-utils/cl-ana.package-utils.asd")
- ((#:asd-system-name _ #f) "cl-ana.package-utils")))))
-
-(define-public cl-ana.package-utils
- (sbcl-package->cl-source-package sbcl-cl-ana.package-utils))
-
-(define-public ecl-cl-ana.package-utils
- (sbcl-package->ecl-package sbcl-cl-ana.package-utils))
-
-(define-public sbcl-cl-ana.string-utils
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.string-utils")
- (inputs
- `(("split-sequence" ,sbcl-split-sequence)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "string-utils/cl-ana.string-utils.asd")
- ((#:asd-system-name _ #f) "cl-ana.string-utils")))))
-
-(define-public cl-ana.string-utils
- (sbcl-package->cl-source-package sbcl-cl-ana.string-utils))
-
-(define-public ecl-cl-ana.string-utils
- (sbcl-package->ecl-package sbcl-cl-ana.string-utils))
-
-(define-public sbcl-cl-ana.functional-utils
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.functional-utils")
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "functional-utils/cl-ana.functional-utils.asd")
- ((#:asd-system-name _ #f) "cl-ana.functional-utils")))))
-
-(define-public cl-ana.functional-utils
- (sbcl-package->cl-source-package sbcl-cl-ana.functional-utils))
-
-(define-public ecl-cl-ana.functional-utils
- (sbcl-package->ecl-package sbcl-cl-ana.functional-utils))
-
-(define-public sbcl-cl-ana.list-utils
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.list-utils")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
- ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "list-utils/cl-ana.list-utils.asd")
- ((#:asd-system-name _ #f) "cl-ana.list-utils")))))
-
-(define-public cl-ana.list-utils
- (sbcl-package->cl-source-package sbcl-cl-ana.list-utils))
-
-(define-public ecl-cl-ana.list-utils
- (sbcl-package->ecl-package sbcl-cl-ana.list-utils))
-
-(define-public sbcl-cl-ana.generic-math
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.generic-math")
- (inputs
- `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "generic-math/cl-ana.generic-math.asd")
- ((#:asd-system-name _ #f) "cl-ana.generic-math")))))
-
-(define-public cl-ana.generic-math
- (sbcl-package->cl-source-package sbcl-cl-ana.generic-math))
-
-(define-public ecl-cl-ana.generic-math
- (sbcl-package->ecl-package sbcl-cl-ana.generic-math))
-
-(define-public sbcl-cl-ana.math-functions
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.math-functions")
- (inputs
- `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
- ("gsll" ,sbcl-gsll)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "math-functions/cl-ana.math-functions.asd")
- ((#:asd-system-name _ #f) "cl-ana.math-functions")))))
-
-(define-public cl-ana.math-functions
- (sbcl-package->cl-source-package sbcl-cl-ana.math-functions))
-
-(define-public sbcl-cl-ana.calculus
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.calculus")
- (inputs
- `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "calculus/cl-ana.calculus.asd")
- ((#:asd-system-name _ #f) "cl-ana.calculus")))))
-
-(define-public cl-ana.calculus
- (sbcl-package->cl-source-package sbcl-cl-ana.calculus))
-
-(define-public ecl-cl-ana.calculus
- (sbcl-package->ecl-package sbcl-cl-ana.calculus))
-
-(define-public sbcl-cl-ana.symbol-utils
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.symbol-utils")
- (inputs
- `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "symbol-utils/cl-ana.symbol-utils.asd")
- ((#:asd-system-name _ #f) "cl-ana.symbol-utils")))))
-
-(define-public cl-ana.symbol-utils
- (sbcl-package->cl-source-package sbcl-cl-ana.symbol-utils))
-
-(define-public ecl-cl-ana.symbol-utils
- (sbcl-package->ecl-package sbcl-cl-ana.symbol-utils))
-
-(define-public sbcl-cl-ana.macro-utils
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.macro-utils")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
- ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
- ("split-sequence" ,sbcl-split-sequence)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "macro-utils/cl-ana.macro-utils.asd")
- ((#:asd-system-name _ #f) "cl-ana.macro-utils")))))
-
-(define-public cl-ana.macro-utils
- (sbcl-package->cl-source-package sbcl-cl-ana.macro-utils))
-
-(define-public ecl-cl-ana.macro-utils
- (sbcl-package->ecl-package sbcl-cl-ana.macro-utils))
-
-(define-public sbcl-cl-ana.binary-tree
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.binary-tree")
- (inputs
- `(("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "binary-tree/cl-ana.binary-tree.asd")
- ((#:asd-system-name _ #f) "cl-ana.binary-tree")))))
-
-(define-public cl-ana.binary-tree
- (sbcl-package->cl-source-package sbcl-cl-ana.binary-tree))
-
-(define-public ecl-cl-ana.binary-tree
- (sbcl-package->ecl-package sbcl-cl-ana.binary-tree))
-
-(define-public sbcl-cl-ana.tensor
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.tensor")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
- ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "tensor/cl-ana.tensor.asd")
- ((#:asd-system-name _ #f) "cl-ana.tensor")))))
-
-(define-public cl-ana.tensor
- (sbcl-package->cl-source-package sbcl-cl-ana.tensor))
-
-(define-public ecl-cl-ana.tensor
- (sbcl-package->ecl-package sbcl-cl-ana.tensor))
-
-(define-public sbcl-cl-ana.error-propogation
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.error-propogation")
- (inputs
- `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
- ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "error-propogation/cl-ana.error-propogation.asd")
- ((#:asd-system-name _ #f) "cl-ana.error-propogation")))))
-
-(define-public cl-ana.error-propogation
- (sbcl-package->cl-source-package sbcl-cl-ana.error-propogation))
-
-(define-public sbcl-cl-ana.quantity
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.quantity")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
- ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
- ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "quantity/cl-ana.quantity.asd")
- ((#:asd-system-name _ #f) "cl-ana.quantity")))))
-
-(define-public cl-ana.quantity
- (sbcl-package->cl-source-package sbcl-cl-ana.quantity))
-
-(define-public sbcl-cl-ana.table
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.table")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
- ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
- ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "table/cl-ana.table.asd")
- ((#:asd-system-name _ #f) "cl-ana.table")))))
-
-(define-public cl-ana.table
- (sbcl-package->cl-source-package sbcl-cl-ana.table))
-
-(define-public ecl-cl-ana.table
- (sbcl-package->ecl-package sbcl-cl-ana.table))
-
-(define-public sbcl-cl-ana.table-utils
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.table-utils")
- (inputs
- `(("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
- ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
- ("cl-ana.table" ,sbcl-cl-ana.table)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "table-utils/cl-ana.table-utils.asd")
- ((#:asd-system-name _ #f) "cl-ana.table-utils")))))
-
-(define-public cl-ana.table-utils
- (sbcl-package->cl-source-package sbcl-cl-ana.table-utils))
-
-(define-public ecl-cl-ana.table-utils
- (sbcl-package->ecl-package sbcl-cl-ana.table-utils))
-
-(define-public sbcl-cl-ana.hdf-cffi
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.hdf-cffi")
- (inputs
- `(("cffi" ,sbcl-cffi)
- ("hdf5" ,hdf5-parallel-openmpi)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "hdf-cffi/cl-ana.hdf-cffi.asd")
- ((#:asd-system-name _ #f) "cl-ana.hdf-cffi")
- ((#:phases phases '%standard-phases)
- `(modify-phases ,phases
- (add-after 'unpack 'fix-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "hdf-cffi/hdf-cffi.lisp"
- (("/usr/lib/i386-linux-gnu/hdf5/serial/libhdf5.so")
- (string-append
- (assoc-ref inputs "hdf5")
- "/lib/libhdf5.so")))))))))))
-
-(define-public cl-ana.hdf-cffi
- (sbcl-package->cl-source-package sbcl-cl-ana.hdf-cffi))
-
-(define-public ecl-cl-ana.hdf-cffi
- (sbcl-package->ecl-package sbcl-cl-ana.hdf-cffi))
-
-(define-public sbcl-cl-ana.int-char
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.int-char")
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "int-char/cl-ana.int-char.asd")
- ((#:asd-system-name _ #f) "cl-ana.int-char")))))
-
-(define-public cl-ana.int-char
- (sbcl-package->cl-source-package sbcl-cl-ana.int-char))
-
-(define-public ecl-cl-ana.int-char
- (sbcl-package->ecl-package sbcl-cl-ana.int-char))
-
-(define-public sbcl-cl-ana.memoization
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.memoization")
- (inputs
- `(("alexandria" ,sbcl-alexandria)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "memoization/cl-ana.memoization.asd")
- ((#:asd-system-name _ #f) "cl-ana.memoization")))))
-
-(define-public cl-ana.memoization
- (sbcl-package->cl-source-package sbcl-cl-ana.memoization))
-
-(define-public ecl-cl-ana.memoization
- (sbcl-package->ecl-package sbcl-cl-ana.memoization))
-
-(define-public sbcl-cl-ana.typespec
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.typespec")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cffi" ,sbcl-cffi)
- ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
- ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
- ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
- ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "typespec/cl-ana.typespec.asd")
- ((#:asd-system-name _ #f) "cl-ana.typespec")))))
-
-(define-public cl-ana.typespec
- (sbcl-package->cl-source-package sbcl-cl-ana.typespec))
-
-(define-public ecl-cl-ana.typespec
- (sbcl-package->ecl-package sbcl-cl-ana.typespec))
-
-(define-public sbcl-cl-ana.hdf-typespec
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.hdf-typespec")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cffi" ,sbcl-cffi)
- ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
- ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
- ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
- ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "hdf-typespec/cl-ana.hdf-typespec.asd")
- ((#:asd-system-name _ #f) "cl-ana.hdf-typespec")))))
-
-(define-public cl-ana.hdf-typespec
- (sbcl-package->cl-source-package sbcl-cl-ana.hdf-typespec))
-
-(define-public ecl-cl-ana.hdf-typespec
- (sbcl-package->ecl-package sbcl-cl-ana.hdf-typespec))
-
-(define-public sbcl-cl-ana.hdf-utils
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.hdf-utils")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cffi" ,sbcl-cffi)
- ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
- ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
- ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
- ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
- ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
- ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
- ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "hdf-utils/cl-ana.hdf-utils.asd")
- ((#:asd-system-name _ #f) "cl-ana.hdf-utils")))))
-
-(define-public cl-ana.hdf-utils
- (sbcl-package->cl-source-package sbcl-cl-ana.hdf-utils))
-
-(define-public ecl-cl-ana.hdf-utils
- (sbcl-package->ecl-package sbcl-cl-ana.hdf-utils))
-
-(define-public sbcl-cl-ana.typed-table
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.typed-table")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
- ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
- ("cl-ana.table" ,sbcl-cl-ana.table)
- ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "typed-table/cl-ana.typed-table.asd")
- ((#:asd-system-name _ #f) "cl-ana.typed-table")))))
-
-(define-public cl-ana.typed-table
- (sbcl-package->cl-source-package sbcl-cl-ana.typed-table))
-
-(define-public ecl-cl-ana.typed-table
- (sbcl-package->ecl-package sbcl-cl-ana.typed-table))
-
-(define-public sbcl-cl-ana.hdf-table
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.hdf-table")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
- ("cl-ana.hdf-cffi" ,sbcl-cl-ana.hdf-cffi)
- ("cl-ana.hdf-typespec" ,sbcl-cl-ana.hdf-typespec)
- ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
- ("cl-ana.table" ,sbcl-cl-ana.table)
- ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
- ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "hdf-table/cl-ana.hdf-table.asd")
- ((#:asd-system-name _ #f) "cl-ana.hdf-table")))))
-
-(define-public cl-ana.hdf-table
- (sbcl-package->cl-source-package sbcl-cl-ana.hdf-table))
-
-(define-public ecl-cl-ana.hdf-table
- (sbcl-package->ecl-package sbcl-cl-ana.hdf-table))
-
-(define-public sbcl-cl-ana.gsl-cffi
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.gsl-cffi")
- (inputs
- `(("cffi" ,sbcl-cffi)
- ("gsl" ,gsl)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "gsl-cffi/cl-ana.gsl-cffi.asd")
- ((#:asd-system-name _ #f) "cl-ana.gsl-cffi")
- ((#:phases phases '%standard-phases)
- `(modify-phases ,phases
- (add-after 'unpack 'fix-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "gsl-cffi/gsl-cffi.lisp"
- (("define-foreign-library gsl-cffi" all)
- (string-append all " (:unix "
- (assoc-ref inputs "gsl")
- "/lib/libgsl.so)")))))))))))
-
-(define-public cl-ana.gsl-cffi
- (sbcl-package->cl-source-package sbcl-cl-ana.gsl-cffi))
-
-(define-public ecl-cl-ana.gsl-cffi
- (sbcl-package->ecl-package sbcl-cl-ana.gsl-cffi))
-
-(define-public sbcl-cl-ana.ntuple-table
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.ntuple-table")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cffi" ,sbcl-cffi)
- ("cl-ana.gsl-cffi" ,sbcl-cl-ana.gsl-cffi)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.table" ,sbcl-cl-ana.table)
- ("cl-ana.typed-table" ,sbcl-cl-ana.typed-table)
- ("cl-ana.typespec" ,sbcl-cl-ana.typespec)
- ("gsll" ,sbcl-gsll)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "ntuple-table/cl-ana.ntuple-table.asd")
- ((#:asd-system-name _ #f) "cl-ana.ntuple-table")))))
-
-(define-public cl-ana.ntuple-table
- (sbcl-package->cl-source-package sbcl-cl-ana.ntuple-table))
-
-(define-public sbcl-cl-ana.csv-table
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.csv-table")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("antik" ,sbcl-antik)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.table" ,sbcl-cl-ana.table)
- ("cl-csv" ,sbcl-cl-csv)
- ("iterate" ,sbcl-iterate)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "csv-table/cl-ana.csv-table.asd")
- ((#:asd-system-name _ #f) "cl-ana.csv-table")))))
-
-(define-public cl-ana.csv-table
- (sbcl-package->cl-source-package sbcl-cl-ana.csv-table))
-
-(define-public sbcl-cl-ana.reusable-table
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.reusable-table")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-ana.table" ,sbcl-cl-ana.table)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "reusable-table/cl-ana.reusable-table.asd")
- ((#:asd-system-name _ #f) "cl-ana.reusable-table")))))
-
-(define-public cl-ana.reusable-table
- (sbcl-package->cl-source-package sbcl-cl-ana.reusable-table))
-
-(define-public ecl-cl-ana.reusable-table
- (sbcl-package->ecl-package sbcl-cl-ana.reusable-table))
-
-(define-public sbcl-cl-ana.linear-algebra
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.linear-algebra")
- (inputs
- `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
- ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
- ("gsll" ,sbcl-gsll)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "linear-algebra/cl-ana.linear-algebra.asd")
- ((#:asd-system-name _ #f) "cl-ana.linear-algebra")))))
-
-(define-public cl-ana.linear-algebra
- (sbcl-package->cl-source-package sbcl-cl-ana.linear-algebra))
-
-(define-public sbcl-cl-ana.lorentz
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.lorentz")
- (inputs
- `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
- ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
- ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
- ("iterate" ,sbcl-iterate)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "lorentz/cl-ana.lorentz.asd")
- ((#:asd-system-name _ #f) "cl-ana.lorentz")))))
-
-(define-public cl-ana.lorentz
- (sbcl-package->cl-source-package sbcl-cl-ana.lorentz))
-
-(define-public sbcl-cl-ana.clos-utils
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.clos-utils")
- (inputs
- `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
- ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
- ("closer-mop" ,sbcl-closer-mop)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "clos-utils/cl-ana.clos-utils.asd")
- ((#:asd-system-name _ #f) "cl-ana.clos-utils")))))
-
-(define-public cl-ana.clos-utils
- (sbcl-package->cl-source-package sbcl-cl-ana.clos-utils))
-
-(define-public ecl-cl-ana.clos-utils
- (sbcl-package->ecl-package sbcl-cl-ana.clos-utils))
-
-(define-public sbcl-cl-ana.hash-table-utils
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.hash-table-utils")
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "hash-table-utils/cl-ana.hash-table-utils.asd")
- ((#:asd-system-name _ #f) "cl-ana.hash-table-utils")))))
-
-(define-public cl-ana.hash-table-utils
- (sbcl-package->cl-source-package sbcl-cl-ana.hash-table-utils))
-
-(define-public ecl-cl-ana.hash-table-utils
- (sbcl-package->ecl-package sbcl-cl-ana.hash-table-utils))
-
-(define-public sbcl-cl-ana.map
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.map")
- (inputs
- `(("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "map/cl-ana.map.asd")
- ((#:asd-system-name _ #f) "cl-ana.map")))))
-
-(define-public cl-ana.map
- (sbcl-package->cl-source-package sbcl-cl-ana.map))
-
-(define-public ecl-cl-ana.map
- (sbcl-package->ecl-package sbcl-cl-ana.map))
-
-(define-public sbcl-cl-ana.fitting
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.fitting")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
- ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
- ("cl-ana.map" ,sbcl-cl-ana.map)
- ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
- ("gsll" ,sbcl-gsll)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "fitting/cl-ana.fitting.asd")
- ((#:asd-system-name _ #f) "cl-ana.fitting")))))
-
-(define-public cl-ana.fitting
- (sbcl-package->cl-source-package sbcl-cl-ana.fitting))
-
-(define-public sbcl-cl-ana.histogram
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.histogram")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("iterate" ,sbcl-iterate)
- ("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
- ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
- ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
- ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
- ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
- ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
- ("cl-ana.map" ,sbcl-cl-ana.map)
- ("cl-ana.tensor" ,sbcl-cl-ana.tensor)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "histogram/cl-ana.histogram.asd")
- ((#:asd-system-name _ #f) "cl-ana.histogram")))))
-
-(define-public cl-ana.histogram
- (sbcl-package->cl-source-package sbcl-cl-ana.histogram))
-
-(define-public sbcl-cl-ana.file-utils
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.file-utils")
- (inputs
- `(("external-program" ,sbcl-external-program)
- ("split-sequence" ,sbcl-split-sequence)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "file-utils/cl-ana.file-utils.asd")
- ((#:asd-system-name _ #f) "cl-ana.file-utils")))))
-
-(define-public cl-ana.file-utils
- (sbcl-package->cl-source-package sbcl-cl-ana.file-utils))
-
-(define-public ecl-cl-ana.file-utils
- (sbcl-package->ecl-package sbcl-cl-ana.file-utils))
-
-(define-public sbcl-cl-ana.statistics
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.statistics")
- (inputs
- `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
- ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
- ("cl-ana.map" ,sbcl-cl-ana.map)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "statistics/cl-ana.statistics.asd")
- ((#:asd-system-name _ #f) "cl-ana.statistics")))))
-
-(define-public cl-ana.statistics
- (sbcl-package->cl-source-package sbcl-cl-ana.statistics))
-
-(define-public sbcl-cl-ana.gnuplot-interface
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.gnuplot-interface")
- (inputs
- `(("external-program" ,sbcl-external-program)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "gnuplot-interface/cl-ana.gnuplot-interface.asd")
- ((#:asd-system-name _ #f) "cl-ana.gnuplot-interface")))))
-
-(define-public cl-ana.gnuplot-interface
- (sbcl-package->cl-source-package sbcl-cl-ana.gnuplot-interface))
-
-(define-public ecl-cl-ana.gnuplot-interface
- (sbcl-package->ecl-package sbcl-cl-ana.gnuplot-interface))
-
-(define-public sbcl-cl-ana.plotting
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.plotting")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
- ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
- ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
- ("cl-ana.gnuplot-interface" ,sbcl-cl-ana.gnuplot-interface)
- ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
- ("cl-ana.map" ,sbcl-cl-ana.map)
- ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
- ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
- ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
- ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
- ("external-program" ,sbcl-external-program)
- ("split-sequence" ,sbcl-split-sequence)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "plotting/cl-ana.plotting.asd")
- ((#:asd-system-name _ #f) "cl-ana.plotting")))))
-
-(define-public cl-ana.plotting
- (sbcl-package->cl-source-package sbcl-cl-ana.plotting))
-
-(define-public sbcl-cl-ana.table-viewing
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.table-viewing")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
- ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
- ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
- ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
- ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
- ("cl-ana.table" ,sbcl-cl-ana.table)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "table-viewing/cl-ana.table-viewing.asd")
- ((#:asd-system-name _ #f) "cl-ana.table-viewing")))))
-
-(define-public cl-ana.table-viewing
- (sbcl-package->cl-source-package sbcl-cl-ana.table-viewing))
-
-(define-public sbcl-cl-ana.serialization
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.serialization")
- (inputs
- `(("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
- ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
- ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
- ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
- ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
- ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
- ("cl-ana.typespec" ,sbcl-cl-ana.typespec)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "serialization/cl-ana.serialization.asd")
- ((#:asd-system-name _ #f) "cl-ana.serialization")))))
-
-(define-public cl-ana.serialization
- (sbcl-package->cl-source-package sbcl-cl-ana.serialization))
-
-(define-public sbcl-cl-ana.makeres
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.makeres")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
- ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
- ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
- ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
- ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
- ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
- ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
- ("cl-ana.map" ,sbcl-cl-ana.map)
- ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
- ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
- ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
- ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
- ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
- ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
- ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
- ("cl-ana.table" ,sbcl-cl-ana.table)
- ("external-program" ,sbcl-external-program)))
- (native-inputs
- `(("cl-fad" ,sbcl-cl-fad)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "makeres/cl-ana.makeres.asd")
- ((#:asd-system-name _ #f) "cl-ana.makeres")))))
-
-(define-public cl-ana.makeres
- (sbcl-package->cl-source-package sbcl-cl-ana.makeres))
-
-(define-public sbcl-cl-ana.makeres-macro
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.makeres-macro")
- (inputs
- `(("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "makeres-macro/cl-ana.makeres-macro.asd")
- ((#:asd-system-name _ #f) "cl-ana.makeres-macro")))))
-
-(define-public cl-ana.makeres-macro
- (sbcl-package->cl-source-package sbcl-cl-ana.makeres-macro))
-
-(define-public sbcl-cl-ana.makeres-block
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.makeres-block")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
- ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "makeres-block/cl-ana.makeres-block.asd")
- ((#:asd-system-name _ #f) "cl-ana.makeres-block")))))
-
-(define-public cl-ana.makeres-block
- (sbcl-package->cl-source-package sbcl-cl-ana.makeres-block))
-
-(define-public sbcl-cl-ana.makeres-progress
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.makeres-progress")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
- ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "makeres-progress/cl-ana.makeres-progress.asd")
- ((#:asd-system-name _ #f) "cl-ana.makeres-progress")))))
-
-(define-public cl-ana.makeres-progress
- (sbcl-package->cl-source-package sbcl-cl-ana.makeres-progress))
-
-(define-public sbcl-cl-ana.makeres-table
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.makeres-table")
- (inputs
- `(("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
- ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
- ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
- ("cl-ana.hdf-utils" ,sbcl-cl-ana.hdf-utils)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
- ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
- ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
- ("cl-ana.memoization" ,sbcl-cl-ana.memoization)
- ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
- ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
- ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
- ("cl-ana.table" ,sbcl-cl-ana.table)))
- (native-inputs
- `(("cl-fad" ,sbcl-cl-fad)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "makeres-table/cl-ana.makeres-table.asd")
- ((#:asd-system-name _ #f) "cl-ana.makeres-table")))))
-
-(define-public cl-ana.makeres-table
- (sbcl-package->cl-source-package sbcl-cl-ana.makeres-table))
-
-(define-public sbcl-cl-ana.makeres-graphviz
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.makeres-graphviz")
- (inputs
- `(("cl-ana.makeres" ,sbcl-cl-ana.makeres)
- ("external-program" ,sbcl-external-program)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "makeres-graphviz/cl-ana.makeres-graphviz.asd")
- ((#:asd-system-name _ #f) "cl-ana.makeres-graphviz")))))
-
-(define-public cl-ana.makeres-graphviz
- (sbcl-package->cl-source-package sbcl-cl-ana.makeres-graphviz))
-
-(define-public sbcl-cl-ana.makeres-branch
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.makeres-branch")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
- ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.map" ,sbcl-cl-ana.map)
- ("cl-ana.makeres" ,sbcl-cl-ana.makeres)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "makeres-branch/cl-ana.makeres-branch.asd")
- ((#:asd-system-name _ #f) "cl-ana.makeres-branch")))))
-
-(define-public cl-ana.makeres-branch
- (sbcl-package->cl-source-package sbcl-cl-ana.makeres-branch))
-
-(define-public sbcl-cl-ana.makeres-utils
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.makeres-utils")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
- ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
- ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
- ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
- ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
- ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
- ("cl-ana.map" ,sbcl-cl-ana.map)
- ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
- ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
- ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
- ("cl-ana.string-utils" ,sbcl-cl-ana.string-utils)
- ("cl-ana.symbol-utils" ,sbcl-cl-ana.symbol-utils)
- ("cl-ana.table" ,sbcl-cl-ana.table)))
- (native-inputs
- `(("cl-fad" ,sbcl-cl-fad)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "makeres-utils/cl-ana.makeres-utils.asd")
- ((#:asd-system-name _ #f) "cl-ana.makeres-utils")))))
-
-(define-public cl-ana.makeres-utils
- (sbcl-package->cl-source-package sbcl-cl-ana.makeres-utils))
-
-(define-public sbcl-cl-ana.statistical-learning
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana.statistical-learning")
- (inputs
- `(("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
- ("cl-ana.functional-utils" ,sbcl-cl-ana.functional-utils)
- ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
- ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
- ("cl-ana.list-utils" ,sbcl-cl-ana.list-utils)
- ("cl-ana.macro-utils" ,sbcl-cl-ana.macro-utils)
- ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
- ("cl-ana.map" ,sbcl-cl-ana.map)
- ("cl-ana.statistics" ,sbcl-cl-ana.statistics)))
- (native-inputs
- `(("cl-fad" ,sbcl-cl-fad)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "")
- "statistical-learning/cl-ana.statistical-learning.asd")
- ((#:asd-system-name _ #f) "cl-ana.statistical-learning")))))
-
-(define-public cl-ana.statistical-learning
- (sbcl-package->cl-source-package sbcl-cl-ana.statistical-learning))
-
-(define-public sbcl-cl-ana
- (package
- (inherit sbcl-cl-ana-boot0)
- (name "sbcl-cl-ana")
- (inputs
- `(("cl-ana.binary-tree" ,sbcl-cl-ana.binary-tree)
- ("cl-ana.calculus" ,sbcl-cl-ana.calculus)
- ("cl-ana.clos-utils" ,sbcl-cl-ana.clos-utils)
- ("cl-ana.csv-table" ,sbcl-cl-ana.csv-table)
- ("cl-ana.error-propogation" ,sbcl-cl-ana.error-propogation)
- ("cl-ana.file-utils" ,sbcl-cl-ana.file-utils)
- ("cl-ana.fitting" ,sbcl-cl-ana.fitting)
- ("cl-ana.generic-math" ,sbcl-cl-ana.generic-math)
- ("cl-ana.hash-table-utils" ,sbcl-cl-ana.hash-table-utils)
- ("cl-ana.hdf-table" ,sbcl-cl-ana.hdf-table)
- ("cl-ana.histogram" ,sbcl-cl-ana.histogram)
- ("cl-ana.int-char" ,sbcl-cl-ana.int-char)
- ("cl-ana.linear-algebra" ,sbcl-cl-ana.linear-algebra)
- ("cl-ana.lorentz" ,sbcl-cl-ana.lorentz)
- ("cl-ana.map" ,sbcl-cl-ana.map)
- ("cl-ana.makeres" ,sbcl-cl-ana.makeres)
- ("cl-ana.makeres-block" ,sbcl-cl-ana.makeres-block)
- ("cl-ana.makeres-branch" ,sbcl-cl-ana.makeres-branch)
- ("cl-ana.makeres-graphviz" ,sbcl-cl-ana.makeres-graphviz)
- ("cl-ana.makeres-macro" ,sbcl-cl-ana.makeres-macro)
- ("cl-ana.makeres-progress" ,sbcl-cl-ana.makeres-progress)
- ("cl-ana.makeres-table" ,sbcl-cl-ana.makeres-table)
- ("cl-ana.makeres-utils" ,sbcl-cl-ana.makeres-utils)
- ("cl-ana.math-functions" ,sbcl-cl-ana.math-functions)
- ("cl-ana.ntuple-table" ,sbcl-cl-ana.ntuple-table)
- ("cl-ana.package-utils" ,sbcl-cl-ana.package-utils)
- ("cl-ana.pathname-utils" ,sbcl-cl-ana.pathname-utils)
- ("cl-ana.plotting" ,sbcl-cl-ana.plotting)
- ("cl-ana.quantity" ,sbcl-cl-ana.quantity)
- ("cl-ana.reusable-table" ,sbcl-cl-ana.reusable-table)
- ("cl-ana.serialization" ,sbcl-cl-ana.serialization)
- ("cl-ana.statistics" ,sbcl-cl-ana.statistics)
- ("cl-ana.statistical-learning" ,sbcl-cl-ana.statistical-learning)
- ("cl-ana.table" ,sbcl-cl-ana.table)
- ("cl-ana.table-utils" ,sbcl-cl-ana.table-utils)
- ("cl-ana.table-viewing" ,sbcl-cl-ana.table-viewing)
- ("cl-ana.tensor" ,sbcl-cl-ana.tensor)
- ("libffi" ,libffi)))
- (native-inputs
- `(("cl-fad" ,sbcl-cl-fad)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-ana-boot0)
- ((#:asd-file _ "") "cl-ana.asd")
- ((#:asd-system-name _ #f) "cl-ana")))))
-
(define-public cl-ana
(sbcl-package->cl-source-package sbcl-cl-ana))
@@ -9515,6 +7328,13 @@ may contain sets, maps may be keyed by sets, etc.")
(define-public cl-fset
(sbcl-package->cl-source-package sbcl-fset))
+(define-public ecl-fset
+ (package
+ (inherit (sbcl-package->ecl-package sbcl-fset))
+ (arguments
+ ;; Tests fails on ECL with "The function FSET::MAKE-CHAR is undefined".
+ '(#:tests? #f))))
+
(define-public sbcl-cl-cont
(let ((commit "fc1fa7e6eb64894fdca13e688e6015fad5290d2a")
(revision "1"))
@@ -9648,7 +7468,6 @@ has a small codebase that's easy to understand and use.")
(inputs
`(("alexandria" ,sbcl-alexandria)
("cffi" ,sbcl-cffi)
- ("cffi-grovel" ,sbcl-cffi-grovel)
("libuv" ,libuv)))
(arguments
`(#:phases
@@ -9678,11 +7497,11 @@ has a small codebase that's easy to understand and use.")
(define-public ecl-cl-libuv
(sbcl-package->ecl-package sbcl-cl-libuv))
-(define-public sbcl-cl-async-base
+(define-public sbcl-cl-async
(let ((commit "f6423e44404a44434d803605e0d2e17199158e28")
(revision "1"))
(package
- (name "sbcl-cl-async-base")
+ (name "sbcl-cl-async")
(version (git-version "0.6.1" revision commit))
(source
(origin
@@ -9696,98 +7515,23 @@ has a small codebase that's easy to understand and use.")
"11xi9dxb8mjgwzrkj88i0xkgk26z9w9ddxzbv6xsvfc1d4x5cf4x"))))
(build-system asdf-build-system/sbcl)
(inputs
- `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+ `(("babel" ,sbcl-babel)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)
("cffi" ,sbcl-cffi)
- ("cl-libuv" ,sbcl-cl-libuv)))
+ ("cl-libuv" ,sbcl-cl-libuv)
+ ("cl-ppcre" ,sbcl-cl-ppcre)
+ ("fast-io" ,sbcl-fast-io)
+ ("openssl" ,openssl)
+ ("static-vectors" ,sbcl-static-vectors)
+ ("trivial-features" ,sbcl-trivial-features)
+ ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
+ ("vom" ,sbcl-vom)))
(arguments
- `(#:asd-file "cl-async.asd"))
- (synopsis "Base system for cl-async")
- (description
- "Cl-async is a library for general purpose, non-blocking programming in
-Common Lisp. It uses the libuv library as backend.")
- (home-page "https://orthecreedence.github.io/cl-async/")
- (license license:expat))))
-
-(define-public cl-async-base
- (sbcl-package->cl-source-package sbcl-cl-async-base))
-
-(define-public ecl-cl-async-base
- (sbcl-package->ecl-package sbcl-cl-async-base))
-
-(define-public sbcl-cl-async-util
- (package
- (inherit sbcl-cl-async-base)
- (name "sbcl-cl-async-util")
- (inputs
- `(("bordeaux-threads" ,sbcl-bordeaux-threads)
- ("cffi" ,sbcl-cffi)
- ("cl-async-base" ,sbcl-cl-async-base)
- ("cl-libuv" ,sbcl-cl-libuv)
- ("cl-ppcre" ,sbcl-cl-ppcre)
- ("fast-io" ,sbcl-fast-io)
- ("vom" ,sbcl-vom)))
- (synopsis "Internal utilities for cl-async")))
-
-(define-public cl-async-util
- (sbcl-package->cl-source-package sbcl-cl-async-util))
-
-(define-public ecl-cl-async-util
- (sbcl-package->ecl-package sbcl-cl-async-util))
-
-(define-public sbcl-cl-async
- (package
- (inherit sbcl-cl-async-base)
- (name "sbcl-cl-async")
- (inputs
- `(("babel" ,sbcl-babel)
- ("cffi" ,sbcl-cffi)
- ("cl-async-base" ,sbcl-cl-async-base)
- ("cl-async-util" ,sbcl-cl-async-util)
- ("cl-libuv" ,sbcl-cl-libuv)
- ("cl-ppcre" ,sbcl-cl-ppcre)
- ("static-vectors" ,sbcl-static-vectors)
- ("trivial-features" ,sbcl-trivial-features)
- ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
- (synopsis "Asynchronous operations for Common Lisp")))
-
-(define-public cl-async
- (sbcl-package->cl-source-package sbcl-cl-async))
-
-(define-public ecl-cl-async
- (sbcl-package->ecl-package sbcl-cl-async))
-
-(define-public sbcl-cl-async-repl
- (package
- (inherit sbcl-cl-async-base)
- (name "sbcl-cl-async-repl")
- (inputs
- `(("bordeaux-threads" ,sbcl-bordeaux-threads)
- ("cl-async" ,sbcl-cl-async)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
- ((#:asd-file _ "") "cl-async-repl.asd")))
- (synopsis "REPL integration for cl-async")))
-
-(define-public cl-async-repl
- (sbcl-package->cl-source-package sbcl-cl-async-repl))
-
-(define-public ecl-cl-async-repl
- (sbcl-package->ecl-package sbcl-cl-async-repl))
-
-(define-public sbcl-cl-async-ssl
- (package
- (inherit sbcl-cl-async-base)
- (name "sbcl-cl-async-ssl")
- (inputs
- `(("cffi" ,sbcl-cffi)
- ("cl-async" ,sbcl-cl-async)
- ("openssl" ,openssl)
- ("vom" ,sbcl-vom)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
- ((#:asd-file _ "") "cl-async-ssl.asd")
- ((#:phases phases '%standard-phases)
- `(modify-phases ,phases
+ `(#:asd-systems '("cl-async"
+ "cl-async-repl"
+ "cl-async-ssl")
+ #:phases
+ (modify-phases %standard-phases
(add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/ssl/package.lisp"
@@ -9797,14 +7541,19 @@ Common Lisp. It uses the libuv library as backend.")
(("libssl\\.so")
(string-append (assoc-ref inputs "openssl")
"/lib/libssl.so")))
- #t))))))
- (synopsis "SSL wrapper around cl-async socket implementation")))
+ #t)))))
+ (synopsis "Asynchronous operations for Common Lisp")
+ (description
+ "Cl-async is a library for general purpose, non-blocking programming in
+Common Lisp. It uses the libuv library as backend.")
+ (home-page "https://orthecreedence.github.io/cl-async/")
+ (license license:expat))))
-(define-public cl-async-ssl
- (sbcl-package->cl-source-package sbcl-cl-async-ssl))
+(define-public cl-async
+ (sbcl-package->cl-source-package sbcl-cl-async))
-(define-public ecl-cl-async-ssl
- (sbcl-package->ecl-package sbcl-cl-async-ssl))
+(define-public ecl-cl-async
+ (sbcl-package->ecl-package sbcl-cl-async))
(define-public sbcl-blackbird
(let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8")
@@ -10006,21 +7755,30 @@ ZeroMQ.")
`(("imagemagick" ,imagemagick)
("tk" ,tk)))
(arguments
- `(#:asd-file "ltk/ltk.asd"
+ `(#:asd-systems '("ltk"
+ "ltk-mw"
+ "ltk-remote")
#:tests? #f
- #:phases (modify-phases %standard-phases
- (add-after 'unpack 'fix-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "ltk/ltk.lisp"
- (("#-freebsd \"wish\"")
- (string-append "#-freebsd \""
- (assoc-ref inputs "tk")
- "/bin/wish\""))
- (("do-execute \"convert\"")
- (string-append "do-execute \""
- (assoc-ref inputs "imagemagick")
- "/bin/convert\"")))
- #t)))))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "ltk/ltk.lisp"
+ (("#-freebsd \"wish\"")
+ (string-append "#-freebsd \""
+ (assoc-ref inputs "tk")
+ "/bin/wish\""))
+ (("do-execute \"convert\"")
+ (string-append "do-execute \""
+ (assoc-ref inputs "imagemagick")
+ "/bin/convert\"")))
+ #t))
+ (add-after 'unpack 'fix-build
+ (lambda _
+ (substitute* "ltk/ltk-remote.lisp"
+ (("\\(:export")
+ "(:shadow #:raise) (:export"))
+ #t)))))
(synopsis "Common Lisp bindings for the Tk GUI toolkit")
(description
"LTK is a Common Lisp binding for the Tk graphics toolkit. It is written
@@ -10034,44 +7792,6 @@ in pure Common Lisp and does not require any Tk knowledge for its usage.")
(define-public ecl-ltk
(sbcl-package->ecl-package sbcl-ltk))
-(define-public sbcl-ltk-mw
- (package
- (inherit sbcl-ltk)
- (name "sbcl-ltk-mw")
- (inputs
- `(("ltk" ,sbcl-ltk)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-ltk)
- ((#:asd-file _) "ltk/ltk-mw.asd")
- ((#:phases _) '%standard-phases)))
- (synopsis "Extra widgets for LTK")
- (description
- "This is a collection of higher-level widgets built on top of LTK.")))
-
-(define-public cl-ltk-mw
- (sbcl-package->cl-source-package sbcl-ltk-mw))
-
-(define-public ecl-ltk-mw
- (sbcl-package->ecl-package sbcl-ltk-mw))
-
-(define-public sbcl-ltk-remote
- (package
- (inherit sbcl-ltk)
- (name "sbcl-ltk-remote")
- (inputs
- `(("ltk" ,sbcl-ltk)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-ltk)
- ((#:asd-file _) "ltk/ltk-remote.asd")
- ((#:phases _) '%standard-phases)))
- (synopsis "Remote GUI support for LTK")
- (description
- "This LTK extension allows the GUI to be displayed on a computer different
-from the one running the Lisp program by using a TCP connection.")))
-
-(define-public cl-ltk-remote
- (sbcl-package->cl-source-package sbcl-ltk-remote))
-
(define-public sbcl-cl-lex
(let ((commit "f2dbbe25ef553005fb402d9a6203180c3fa1093b")
(revision "1"))
@@ -10400,14 +8120,11 @@ them as PNG files.")
"/LICENSE")))
(inputs
`(("cffi" ,sbcl-cffi)
- ("cffi-grovel" ,sbcl-cffi-grovel)
("hdf5" ,hdf5-1.10)))
(native-inputs
`(("fiveam" ,sbcl-fiveam)))
(arguments
- `(#:asd-system-name "hdf5-cffi"
- #:asd-file "hdf5-cffi.asd"
- #:test-asd-file "hdf5-cffi.test.asd"
+ `(#:test-asd-file "hdf5-cffi.test.asd"
;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd,
;; I don't know if there is a way to tell asdf-build-system to load
;; an additional system first, so tests are disabled.
@@ -10458,9 +8175,7 @@ generation functions from the GSL library.")
(home-page "https://github.com/lvaruzza/cl-randist")
(license license:bsd-2)
(arguments
- `(#:asd-system-name "cl-randist"
- #:asd-file "cl-randist.asd"
- #:tests? #f))))
+ `(#:tests? #f))))
(define-public cl-randist
(sbcl-package->cl-source-package sbcl-cl-randist))
@@ -10492,9 +8207,7 @@ covered by the Common Lisp standard.")
(inputs
`(("documentation-utils" ,sbcl-documentation-utils)))
(arguments
- `(#:asd-system-name "float-features"
- #:asd-file "float-features.asd"
- #:tests? #f))))
+ `(#:tests? #f))))
(define-public cl-float-features
(sbcl-package->cl-source-package sbcl-float-features))
@@ -10532,9 +8245,7 @@ caching based on arguments (an expanded form of memoization).")
("symbol-munger" ,sbcl-symbol-munger)
("closer-mop" ,sbcl-closer-mop)))
(arguments
- `(#:asd-system-name "function-cache"
- #:asd-file "function-cache.asd"
- #:tests? #f))))
+ `(#:tests? #f))))
(define-public cl-function-cache
(sbcl-package->cl-source-package sbcl-function-cache))
@@ -10572,13 +8283,14 @@ the elements in compound type specifier, e.g. @code{dimensions} in
(native-inputs
`(("fiveam" ,sbcl-fiveam)))
(arguments
- `(#:asd-system-name "type-r"
- #:asd-file "type-r.asd"
- #:test-asd-file "type-r.test.asd")))))
+ `(#:test-asd-file "type-r.test.asd")))))
(define-public cl-type-r
(sbcl-package->cl-source-package sbcl-type-r))
+(define-public ecl-type-r
+ (sbcl-package->ecl-package sbcl-type-r))
+
(define-public sbcl-trivialib-type-unify
(let ((commit "62492ebf04db567dcf435ae84c50b7b8202ecf99")
(revision "1"))
@@ -10611,16 +8323,18 @@ correctly.")
(native-inputs
`(("fiveam" ,sbcl-fiveam)))
(arguments
- `(#:asd-system-name "trivialib.type-unify"
- #:asd-file "trivialib.type-unify.asd"
+ `(#:asd-systems '("trivialib.type-unify")
#:test-asd-file "trivialib.type-unify.test.asd")))))
(define-public cl-trivialib-type-unify
(sbcl-package->cl-source-package sbcl-trivialib-type-unify))
+(define-public ecl-trivialib-type-unify
+ (sbcl-package->ecl-package sbcl-trivialib-type-unify))
+
(define-public sbcl-specialized-function
- (let ((commit "b96b6afaf8358bf91cc0703e62a5a4ee20d2b7bc")
- (revision "1"))
+ (let ((commit "dee56d2d2b6ecd10500ad291c56217698604ec35")
+ (revision "2"))
(package
(name "sbcl-specialized-function")
(version (git-version "0.0.0" revision commit))
@@ -10632,8 +8346,7 @@ correctly.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32
- "12j45ff0n26578vmfbhb9mfbdchw4wy023k0m2ppgl9s0z4bhjaj"))))
+ (base32 "1mcc7mmpbnmgnr1cl2jl5r1ai54gn7fbisv2c14sh9za5w4sib82"))))
(build-system asdf-build-system/sbcl)
(synopsis "Julia-like dispatch for Common Lisp")
(description
@@ -10653,13 +8366,15 @@ code. The main target of this macro is speed.")
(native-inputs
`(("fiveam" ,sbcl-fiveam)))
(arguments
- `(#:asd-system-name "specialized-function"
- #:asd-file "specialized-function.asd"
+ `(#:asd-files '("specialized-function.asd")
#:test-asd-file "specialized-function.test.asd")))))
(define-public cl-specialized-function
(sbcl-package->cl-source-package sbcl-specialized-function))
+(define-public ecl-specialized-function
+ (sbcl-package->ecl-package sbcl-specialized-function))
+
(define-public sbcl-constantfold
(let ((commit "0ff1d97a3fbcb89264f6a2af6ce62b73e7b421f4")
(revision "1"))
@@ -10691,16 +8406,18 @@ additional form that is considered as a candidate for a constant.")
(native-inputs
`(("fiveam" ,sbcl-fiveam)))
(arguments
- `(#:asd-system-name "constantfold"
- #:asd-file "constantfold.asd"
+ `(#:asd-files '("constantfold.asd")
#:test-asd-file "constantfold.test.asd")))))
(define-public cl-constantfold
(sbcl-package->cl-source-package sbcl-constantfold))
+(define-public ecl-constantfold
+ (sbcl-package->ecl-package sbcl-constantfold))
+
(define-public sbcl-gtype
- (let ((commit "42275e3606242ae91e9c8dfa30c18ced50a35b66")
- (revision "1"))
+ (let ((commit "2442e32485635525af278ebd8fa69a27d5b8cf18")
+ (revision "2"))
(package
(name "sbcl-gtype")
(version (git-version "0.1" revision commit))
@@ -10712,8 +8429,7 @@ additional form that is considered as a candidate for a constant.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32
- "1f56dba998v945jcxhha391557n6md1ql25b7icfwwfivhmlaa9b"))))
+ (base32 "0hbkfdw00v7bsa6zbric34p5w6hfwxycccg8wc2faq0cxhsvpv9h"))))
(build-system asdf-build-system/sbcl)
(synopsis "C++/Julia-like parametric types in Common Lisp")
(description
@@ -10731,16 +8447,24 @@ type correctness in Common Lisp. It is based on CLtL2 extensions.")
(native-inputs
`(("fiveam" ,sbcl-fiveam)))
(arguments
- `(#:asd-system-name "gtype"
- #:asd-file "gtype.asd"
+ `(#:asd-files '("gtype.asd")
#:test-asd-file "gtype.test.asd")))))
(define-public cl-gtype
(sbcl-package->cl-source-package sbcl-gtype))
+(define-public ecl-gtype
+ (let ((pkg (sbcl-package->ecl-package sbcl-gtype)))
+ (package
+ (inherit pkg)
+ (arguments
+ (substitute-keyword-arguments (package-arguments pkg)
+ ;; The tests fail on ECL with a COMPILE-FILE-ERROR for t/package.lisp.
+ ((#:tests? _ #f) #f))))))
+
(define-public sbcl-numcl
- (let ((commit "1cf7dfa59f763a24a501092870e9c5ee745d0c17")
- (revision "1"))
+ (let ((commit "3e8d40bf774e070e7af1d3dbf01bc8c37dbebd3a")
+ (revision "2"))
(package
(name "sbcl-numcl")
(version (git-version "0.1.0" revision commit))
@@ -10752,8 +8476,7 @@ type correctness in Common Lisp. It is based on CLtL2 extensions.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32
- "0i3jby9hf4ii7blivgyza80g0vmjfhk8537i5i7kqqk0i5sdnym2"))))
+ (base32 "1hqpr68f6xkxaj1hjjayyh97wcdmj51k20qrd3nsv1rcpmdc5ll4"))))
(build-system asdf-build-system/sbcl)
(synopsis "Numpy clone in Common Lisp")
(description
@@ -10778,13 +8501,23 @@ and usefulness, not speed. Track the progress at
(native-inputs
`(("fiveam" ,sbcl-fiveam)))
(arguments
- `(#:asd-system-name "numcl"
- #:asd-file "numcl.asd"
- #:test-asd-file "numcl.test.asd")))))
+ `(#:asd-files '("numcl.asd")
+ #:test-asd-file "numcl.test.asd"
+ ;; Tests fail on SBCL with "Heap exhausted, game over",
+ ;; but they pass on ECL.
+ #:tests? #f)))))
(define-public cl-numcl
(sbcl-package->cl-source-package sbcl-numcl))
+(define-public ecl-numcl
+ (let ((pkg (sbcl-package->ecl-package sbcl-numcl)))
+ (package
+ (inherit pkg)
+ (arguments
+ (substitute-keyword-arguments (package-arguments pkg)
+ ((#:tests? _ #f) #t))))))
+
(define-public sbcl-pzmq
(let ((commit "7c7390eedc469d033c72dc497984d1536ee75826")
(revision "1"))
@@ -10807,7 +8540,6 @@ and usefulness, not speed. Track the progress at
("let-plus" ,sbcl-let-plus)))
(inputs
`(("cffi" ,sbcl-cffi)
- ("cffi-grovel" ,sbcl-cffi-grovel)
("zeromq" ,zeromq)))
(arguments
`(#:phases (modify-phases %standard-phases
@@ -10945,11 +8677,14 @@ approach to templating.")
(define-public cl-mysql
(sbcl-package->cl-source-package sbcl-cl-mysql))
-(define-public sbcl-simple-date
+(define-public ecl-cl-mysql
+ (sbcl-package->ecl-package sbcl-cl-mysql))
+
+(define-public sbcl-postmodern
(let ((commit "74469b25bbda990ec9b77e0d0eccdba0cd7e721a")
(revision "1"))
(package
- (name "sbcl-simple-date")
+ (name "sbcl-postmodern")
(version (git-version "1.19" revision commit))
(source
(origin
@@ -10963,108 +8698,23 @@ approach to templating.")
(build-system asdf-build-system/sbcl)
(native-inputs
`(("fiveam" ,sbcl-fiveam)))
- (synopsis "Basic date and time objects for Common Lisp")
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("closer-mop" ,sbcl-closer-mop)
+ ("global-vars" ,sbcl-global-vars)
+ ("md5" ,sbcl-md5)
+ ("split-sequence" ,sbcl-split-sequence)
+ ("usocket" ,sbcl-usocket)))
+ (arguments
+ ;; TODO: Fix missing dependency errors for simple-date/postgres-glue,
+ ;; cl-postgres/tests and s-sql/tests.
+ `(#:tests? #f
+ #:asd-systems '("postmodern"
+ "simple-date/postgres-glue")))
+ (synopsis "Common Lisp library for interacting with PostgreSQL")
(description
- "@code{simple-date} is a very basic implementation of date and time
-objects, used to support storing and retrieving time-related SQL types.")
- (home-page "https://marijnhaverbeke.nl/postmodern/")
- (license license:zlib))))
-
-(define-public cl-simple-date
- (sbcl-package->cl-source-package sbcl-simple-date))
-
-(define-public ecl-simple-date
- (sbcl-package->ecl-package sbcl-simple-date))
-
-(define-public sbcl-cl-postgres
- (package
- (inherit sbcl-simple-date)
- (name "sbcl-cl-postgres")
- (native-inputs
- `(("fiveam" ,sbcl-fiveam)
- ("simple-date" ,sbcl-simple-date)))
- (inputs
- `(("md5" ,sbcl-md5)
- ("split-sequence" ,sbcl-split-sequence)
- ("usocket" ,sbcl-usocket)))
- (arguments
- `(#:tests? #f)) ; TODO: Break simple-date/postgres-glue circular dependency
- (synopsis "Common Lisp interface for PostgreSQL")
- (description
- "@code{cl-postgres} is a low-level library used for interfacing with
-a PostgreSQL server over a socket.")))
-
-(define-public cl-postgres
- (sbcl-package->cl-source-package sbcl-cl-postgres))
-
-(define-public ecl-cl-postgres
- (package
- (inherit (sbcl-package->ecl-package sbcl-cl-postgres))
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-ecl
- (lambda _
- (substitute* "cl-postgres.asd"
- (("\\) \"usocket\"") " :ecl) \"usocket\""))
- #t)))
- #:tests? #f))))
-
-(define-public sbcl-simple-date-postgres-glue
- (package
- (inherit sbcl-simple-date)
- (name "sbcl-simple-date-postgres-glue")
- (inputs
- `(("cl-postgres" ,sbcl-cl-postgres)
- ("simple-date" ,sbcl-simple-date)))
- (arguments
- `(#:asd-file "simple-date.asd"
- #:asd-system-name "simple-date/postgres-glue"))))
-
-(define-public cl-simple-date-postgres-glue
- (sbcl-package->cl-source-package sbcl-simple-date-postgres-glue))
-
-(define-public sbcl-s-sql
- (package
- (inherit sbcl-simple-date)
- (name "sbcl-s-sql")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-postgres" ,sbcl-cl-postgres)))
- (arguments
- `(#:tests? #f)) ; TODO: Break postmodern circular dependency
- (synopsis "Lispy DSL for SQL")
- (description
- "@code{s-sql} is a Common Lisp library that can be used to compile
-s-expressions to strings of SQL code, escaping any Lisp values inside, and
-doing as much as possible of the work at compile time.")))
-
-(define-public cl-s-sql
- (sbcl-package->cl-source-package sbcl-s-sql))
-
-(define-public sbcl-postmodern
- (package
- (inherit sbcl-simple-date)
- (name "sbcl-postmodern")
- (native-inputs
- `(("fiveam" ,sbcl-fiveam)
- ("simple-date" ,sbcl-simple-date)
- ("simple-date-postgres-glue" ,sbcl-simple-date-postgres-glue)))
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("bordeaux-threads" ,sbcl-bordeaux-threads)
- ("cl-postgres" ,sbcl-cl-postgres)
- ("closer-mop" ,sbcl-closer-mop)
- ("global-vars" ,sbcl-global-vars)
- ("s-sql" ,sbcl-s-sql)
- ("split-sequence" ,sbcl-split-sequence)))
- (arguments
- ;; TODO: Fix missing dependency errors for simple-date/postgres-glue,
- ;; cl-postgres/tests and s-sql/tests.
- `(#:tests? #f))
- (synopsis "Common Lisp library for interacting with PostgreSQL")
- (description
- "@code{postmodern} is a Common Lisp library for interacting with
+ "@code{postmodern} is a Common Lisp library for interacting with
PostgreSQL databases. It provides the following features:
@itemize
@@ -11074,11 +8724,29 @@ foreign libraries.
@item A syntax for mixing SQL and Lisp code.
@item Convenient support for prepared statements and stored procedures.
@item A metaclass for simple database-access objects.
-@end itemize\n")))
+@end itemize\n")
+ (home-page "https://marijnhaverbeke.nl/postmodern/")
+ (license license:zlib))))
(define-public cl-postmodern
(sbcl-package->cl-source-package sbcl-postmodern))
+(define-public ecl-postmodern
+ (package
+ (inherit (sbcl-package->ecl-package sbcl-postmodern))
+ (arguments
+ `(#:tests? #f
+ #:asd-systems '("postmodern"
+ "simple-date/postgres-glue")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-build
+ (lambda _
+ (substitute* "cl-postgres.asd"
+ (("\\) \"usocket\"")
+ " :ecl) \"usocket\""))
+ #t)))))))
+
(define-public sbcl-dbi
;; Master includes a breaking change which other packages depend on since
;; Quicklisp decided to follow it:
@@ -11097,12 +8765,22 @@ foreign libraries.
(sha256
(base32 "0r3n4rw12qqxad0cryym2ibm4ddl49gbq4ra227afibsr43nw5k3"))))
(build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("rove" ,sbcl-rove)
+ ("trivial-types" ,sbcl-trivial-types)))
(inputs
`(("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("cl-mysql" ,sbcl-cl-mysql)
+ ("cl-sqlite" ,sbcl-cl-sqlite)
("closer-mop" ,sbcl-closer-mop)
- ("split-sequence" ,sbcl-split-sequence)))
+ ("postmodern" ,sbcl-postmodern)
+ ("split-sequence" ,sbcl-split-sequence)
+ ("trivial-garbage" ,sbcl-trivial-garbage)))
(arguments
- `(#:tests? #f)) ; TODO: Break circular dependency with dbd-*
+ `(#:asd-systems '("dbi"
+ "dbd-mysql"
+ "dbd-postgres"
+ "dbd-sqlite3")))
(synopsis "Database independent interface for Common Lisp")
(description
"@code{dbi} is a Common Lisp library providing a database independent
@@ -11113,43 +8791,8 @@ interface for MySQL, PostgreSQL and SQLite.")
(define-public cl-dbi
(sbcl-package->cl-source-package sbcl-dbi))
-(define-public sbcl-dbd-mysql
- (package
- (inherit sbcl-dbi)
- (name "sbcl-dbd-mysql")
- (inputs
- `(("cl-mysql" ,sbcl-cl-mysql)
- ("dbi" ,sbcl-dbi)))
- (synopsis "Database driver for MySQL")))
-
-(define-public cl-dbd-mysql
- (sbcl-package->cl-source-package sbcl-dbd-mysql))
-
-(define-public sbcl-dbd-postgres
- (package
- (inherit sbcl-dbi)
- (name "sbcl-dbd-postgres")
- (inputs
- `(("cl-postgres" ,sbcl-cl-postgres)
- ("dbi" ,sbcl-dbi)
- ("trivial-garbage" ,sbcl-trivial-garbage)))
- (synopsis "Database driver for PostgreSQL")))
-
-(define-public cl-dbd-postgres
- (sbcl-package->cl-source-package sbcl-dbd-postgres))
-
-(define-public sbcl-dbd-sqlite3
- (package
- (inherit sbcl-dbi)
- (name "sbcl-dbd-sqlite3")
- (inputs
- `(("cl-sqlite" ,sbcl-cl-sqlite)
- ("dbi" ,sbcl-dbi)
- ("trivial-garbage" ,sbcl-trivial-garbage)))
- (synopsis "Database driver for SQLite3")))
-
-(define-public cl-dbd-sqlite3
- (sbcl-package->cl-source-package sbcl-dbd-sqlite3))
+(define-public ecl-dbi
+ (sbcl-package->ecl-package sbcl-dbi))
(define-public sbcl-uffi
(package
@@ -11167,6 +8810,7 @@ interface for MySQL, PostgreSQL and SQLite.")
(build-system asdf-build-system/sbcl)
(arguments
`(#:tests? #f ; TODO: Fix use of deprecated ASDF functions
+ #:asd-files '("uffi.asd")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-permissions
@@ -11188,10 +8832,8 @@ interface for MySQL, PostgreSQL and SQLite.")
;; asdf-build-system/source has its own phases and does not inherit
;; from asdf-build-system/sbcl phases.
(modify-phases %standard-phases/source
- (add-after 'unpack 'fix-permissions
- (lambda _
- (make-file-writable "doc/html.tar.gz")
- #t)))))))
+ ;; Already done in SBCL package.
+ (delete 'reset-gzip-timestamps))))))
(define-public sbcl-clsql
(package
@@ -11215,16 +8857,82 @@ interface for MySQL, PostgreSQL and SQLite.")
#t))))
(build-system asdf-build-system/sbcl)
(native-inputs
- `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
- ("rt" ,sbcl-rt)
- ("uffi" ,sbcl-uffi)))
+ `(("rt" ,sbcl-rt)))
+ (inputs
+ `(("cffi" ,sbcl-cffi)
+ ("md5" ,sbcl-md5)
+ ("mysql" ,mysql)
+ ("postgresql" ,postgresql)
+ ("postmodern" ,sbcl-postmodern)
+ ("sqlite" ,sqlite)
+ ("uffi" ,sbcl-uffi)
+ ("zlib" ,zlib)))
(arguments
- `(#:phases
+ `(#:asd-files '("clsql.asd"
+ "clsql-uffi.asd"
+ "clsql-sqlite3.asd"
+ "clsql-postgresql.asd"
+ "clsql-postgresql-socket3.asd"
+ "clsql-mysql.asd")
+ #:asd-systems '("clsql"
+ "clsql-sqlite3"
+ "clsql-postgresql"
+ "clsql-postgresql-socket3"
+ "clsql-mysql")
+ #:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-permissions
(lambda _
(make-file-writable "doc/html.tar.gz")
#t))
+ (add-after 'unpack 'fix-build
+ (lambda _
+ (substitute* "clsql-uffi.asd"
+ (("\\(:version uffi \"2.0\"\\)")
+ "uffi"))
+ (substitute* "db-postgresql/postgresql-api.lisp"
+ (("\\(data :cstring\\)")
+ "(data :string)"))
+ #t))
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "db-sqlite3/sqlite3-loader.lisp"
+ (("libsqlite3")
+ (string-append (assoc-ref inputs "sqlite")
+ "/lib/libsqlite3")))
+ (substitute* "db-postgresql/postgresql-loader.lisp"
+ (("libpq")
+ (string-append (assoc-ref inputs "postgresql")
+ "/lib/libpq")))
+ (let ((lib (string-append "#p\""
+ (assoc-ref outputs "out")
+ "/lib/\"")))
+ (substitute* "clsql-mysql.asd"
+ (("#p\"/usr/lib/clsql/clsql_mysql\\.so\"")
+ lib))
+ (substitute* "db-mysql/mysql-loader.lisp"
+ (("libmysqlclient" all)
+ (string-append (assoc-ref inputs "mysql") "/lib/" all))
+ (("clsql-mysql-system::\\*library-file-dir\\*")
+ lib)))
+ #t))
+ (add-before 'build 'build-helper-library
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((mysql (assoc-ref inputs "mysql"))
+ (inc-dir (string-append mysql "/include/mysql"))
+ (lib-dir (string-append mysql "/lib"))
+ (shared-lib-dir (string-append (assoc-ref outputs "out")
+ "/lib"))
+ (shared-lib (string-append shared-lib-dir
+ "/clsql_mysql.so")))
+ (mkdir-p shared-lib-dir)
+ (invoke "gcc" "-fPIC" "-shared"
+ "-I" inc-dir
+ "db-mysql/clsql_mysql.c"
+ "-Wl,-soname=clsql_mysql"
+ "-L" lib-dir "-lmysqlclient" "-lz"
+ "-o" shared-lib)
+ #t)))
(add-after 'unpack 'fix-tests
(lambda _
(substitute* "clsql.asd"
@@ -11250,9 +8958,9 @@ interfaces as well as a functional and an object oriented interface.")
("sqlite" ,sqlite)
("zlib" ,zlib)))
(propagated-inputs
- `(("cl-postgres" ,cl-postgres)
- ("cffi-uffi-compat" ,cl-cffi-uffi-compat)
+ `(("cffi" ,cl-cffi)
("md5" ,cl-md5)
+ ("postmodern" ,cl-postmodern)
("uffi" ,cl-uffi)))
(arguments
`(#:phases
@@ -11264,126 +8972,16 @@ interfaces as well as a functional and an object oriented interface.")
(make-file-writable "doc/html.tar.gz")
#t)))))))
-(define-public sbcl-clsql-uffi
- (package
- (inherit sbcl-clsql)
- (name "sbcl-clsql-uffi")
- (inputs
- `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
- ("clsql" ,sbcl-clsql)
- ("uffi" ,sbcl-uffi)))
- (synopsis "UFFI helper functions for Common Lisp SQL interface library")))
-
-(define-public sbcl-clsql-sqlite3
- (package
- (inherit sbcl-clsql)
- (name "sbcl-clsql-sqlite3")
- (inputs
- `(("clsql" ,sbcl-clsql)
- ("clsql-uffi" ,sbcl-clsql-uffi)
- ("sqlite" ,sqlite)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-clsql)
- ((#:phases phases '%standard-phases)
- `(modify-phases ,phases
- (add-after 'unpack 'fix-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "db-sqlite3/sqlite3-loader.lisp"
- (("libsqlite3")
- (string-append (assoc-ref inputs "sqlite")
- "/lib/libsqlite3")))
- #t))))))
- (synopsis "SQLite3 driver for Common Lisp SQL interface library")))
-
-(define-public sbcl-clsql-postgresql
- (package
- (inherit sbcl-clsql)
- (name "sbcl-clsql-postgresql")
- (inputs
- `(("clsql" ,sbcl-clsql)
- ("clsql-uffi" ,sbcl-clsql-uffi)
- ("postgresql" ,postgresql)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-clsql)
- ((#:phases phases '%standard-phases)
- `(modify-phases ,phases
- (add-after 'unpack 'fix-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "db-postgresql/postgresql-loader.lisp"
- (("libpq")
- (string-append (assoc-ref inputs "postgresql")
- "/lib/libpq")))
- #t))))))
- (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
-
-(define-public sbcl-clsql-postgresql-socket3
- (package
- (inherit sbcl-clsql)
- (name "sbcl-clsql-postgresql-socket3")
- (inputs
- `(("cl-postgres" ,sbcl-cl-postgres)
- ("clsql" ,sbcl-clsql)
- ("md5" ,sbcl-md5)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-clsql)
- ((#:phases phases '%standard-phases)
- `(modify-phases ,phases
- (add-after 'create-asd-file 'fix-asd-file
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (lib (string-append out "/lib/" (%lisp-type)))
- (asd (string-append lib "/clsql-postgresql-socket3.asd")))
- (substitute* asd
- (("CLSQL-POSTGRESQL-SOCKET-SYSTEM::")
- "")))
- #t))))))
- (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
-
-(define-public sbcl-clsql-mysql
- (package
- (inherit sbcl-clsql)
- (name "sbcl-clsql-mysql")
- (inputs
- `(("mysql" ,mysql)
- ("sbcl-clsql" ,sbcl-clsql)
- ("sbcl-clsql-uffi" ,sbcl-clsql-uffi)
- ("zlib" ,zlib)))
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-clsql)
- ((#:phases phases '%standard-phases)
- `(modify-phases ,phases
- (add-after 'unpack 'fix-paths
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((lib (string-append "#p\""
- (assoc-ref outputs "out")
- "/lib/\"")))
- (substitute* "clsql-mysql.asd"
- (("#p\"/usr/lib/clsql/clsql_mysql\\.so\"")
- lib))
- (substitute* "db-mysql/mysql-loader.lisp"
- (("libmysqlclient" all)
- (string-append (assoc-ref inputs "mysql") "/lib/" all))
- (("clsql-mysql-system::\\*library-file-dir\\*")
- lib)))
- #t))
- (add-before 'build 'build-helper-library
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((mysql (assoc-ref inputs "mysql"))
- (inc-dir (string-append mysql "/include/mysql"))
- (lib-dir (string-append mysql "/lib"))
- (shared-lib-dir (string-append (assoc-ref outputs "out")
- "/lib"))
- (shared-lib (string-append shared-lib-dir
- "/clsql_mysql.so")))
- (mkdir-p shared-lib-dir)
- (invoke "gcc" "-fPIC" "-shared"
- "-I" inc-dir
- "db-mysql/clsql_mysql.c"
- "-Wl,-soname=clsql_mysql"
- "-L" lib-dir "-lmysqlclient" "-lz"
- "-o" shared-lib)
- #t)))))))
- (synopsis "MySQL driver for Common Lisp SQL interface library")))
+(define-public ecl-clsql
+ (let ((pkg (sbcl-package->ecl-package sbcl-clsql)))
+ (package
+ (inherit pkg)
+ (inputs
+ (alist-delete "uffi" (package-inputs pkg)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments pkg)
+ ((#:asd-files asd-files '())
+ `(cons "clsql-cffi.asd" ,asd-files)))))))
(define-public sbcl-sycamore
(let ((commit "fd2820fec165ad514493426dea209728f64e6d18"))
@@ -11400,8 +8998,6 @@ interfaces as well as a functional and an object oriented interface.")
(sha256
(base32 "00bv1aj89q5vldmq92zp2364jq312zjq2mbd3iyz1s2b4widzhl7"))))
(build-system asdf-build-system/sbcl)
- (arguments
- `(#:asd-file "src/sycamore.asd"))
(inputs
`(("alexandria" ,sbcl-alexandria)
("cl-ppcre" ,sbcl-cl-ppcre)))
@@ -11424,6 +9020,9 @@ If features:
(define-public cl-sycamore
(sbcl-package->cl-source-package sbcl-sycamore))
+(define-public ecl-sycamore
+ (sbcl-package->ecl-package sbcl-sycamore))
+
(define-public sbcl-trivial-package-local-nicknames
(package
(name "sbcl-trivial-package-local-nicknames")
@@ -11449,6 +9048,9 @@ in DEFPACKAGE.")
(define-public cl-trivial-package-local-nicknames
(sbcl-package->cl-source-package sbcl-trivial-package-local-nicknames))
+(define-public ecl-trivial-package-local-nicknames
+ (sbcl-package->ecl-package sbcl-trivial-package-local-nicknames))
+
(define-public sbcl-enchant
(let ((commit "6af162a7bf10541cbcfcfa6513894900329713fa"))
(package
@@ -11488,6 +9090,9 @@ multiple checkers, including Aspell and Hunspell.")
(define-public cl-enchant
(sbcl-package->cl-source-package sbcl-enchant))
+(define-public ecl-enchant
+ (sbcl-package->ecl-package sbcl-enchant))
+
(define-public sbcl-cl-change-case
(let ((commit "5ceff2a5f8bd845b6cb510c6364176b27a238fd3"))
(package
@@ -11523,6 +9128,9 @@ PascalCase, snake_case, param-case, CONSTANT_CASE and more.")
(define-public cl-change-case
(sbcl-package->cl-source-package sbcl-cl-change-case))
+(define-public ecl-cl-change-case
+ (sbcl-package->ecl-package sbcl-cl-change-case))
+
(define-public sbcl-moptilities
(let ((commit "a436f16b357c96b82397ec018ea469574c10dd41"))
(package
@@ -11543,6 +9151,15 @@ PascalCase, snake_case, param-case, CONSTANT_CASE and more.")
`(("closer-mop" ,sbcl-closer-mop)))
(native-inputs
`(("lift" ,sbcl-lift)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ (substitute* "lift-standard.config"
+ ((":relative-to lift-test")
+ ":relative-to moptilities-test"))
+ #t)))))
(synopsis "Compatibility layer for Common Lisp MOP implementation differences")
(description
"MOP utilities provide a common interface between Lisps and make the
@@ -11568,29 +9185,12 @@ MOP easier to use.")
(sha256
(base32 "15viw5pi5sa7qq9b4n2rr3dj2jkqr180rh9z1lh8w3rgl42i2adc"))))
(build-system asdf-build-system/sbcl)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- ;; The cleanup phase moves files around but we need to keep the
- ;; directory structure for the grovel-generated library.
- (replace 'cleanup
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (lib (string-append out "/lib/sbcl/")))
- (delete-file-recursively (string-append lib "src"))
- (delete-file-recursively (string-append lib "tests"))
- (for-each delete-file
- (filter (lambda (file)
- (not (member (basename file) '("libosicat.so"))))
- (find-files (string-append lib "posix") ".*"))))
- #t)))))
(inputs
`(("alexandria" ,sbcl-alexandria)
("cffi" ,sbcl-cffi)
("trivial-features" ,sbcl-trivial-features)))
(native-inputs
- `(("cffi-grovel" ,sbcl-cffi-grovel)
- ("rt" ,sbcl-rt)))
+ `(("rt" ,sbcl-rt)))
(synopsis "Operating system interface for Common Lisp")
(description
"Osicat is a lightweight operating system interface for Common Lisp on
@@ -11601,6 +9201,9 @@ accompaniment to the standard ANSI facilities.")
(define-public cl-osicat
(sbcl-package->cl-source-package sbcl-osicat))
+(define-public ecl-osicat
+ (sbcl-package->ecl-package sbcl-osicat))
+
(define-public sbcl-clx-xembed
(let ((commit "a5c4b844d31ee68ffa58c933cc1cdddde6990743")
(revision "1"))
@@ -11619,7 +9222,7 @@ accompaniment to the standard ANSI facilities.")
(base32 "1abx4v36ycmfjdwpjk4hh8058ya8whwia7ds9vd96q2qsrs57f12"))))
(build-system asdf-build-system/sbcl)
(arguments
- `(#:asd-system-name "xembed"))
+ `(#:asd-systems '("xembed")))
(inputs
`(("sbcl-clx" ,sbcl-clx)))
(synopsis "CL(x) xembed protocol implementation ")
@@ -11649,7 +9252,7 @@ accompaniment to the standard ANSI facilities.")
"0rlswkf0siaabsvvch3dgxmg45fw5w8pd9b7ri2w7a298aya52z9"))))
(build-system asdf-build-system/sbcl)
(arguments
- '(#:asd-system-name "quantile-estimator"))
+ '(#:asd-files '("quantile-estimator.asd")))
(inputs
`(("alexandria" ,sbcl-alexandria)))
(home-page "https://github.com/deadtrickster/quantile-estimator.cl")
@@ -11685,9 +9288,29 @@ Streams in ICDE’05.")
(inputs
`(("alexandria" ,sbcl-alexandria)
("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("cffi" ,sbcl-cffi)
+ ("cl-fad" ,sbcl-cl-fad)
("cl-ppcre" ,sbcl-cl-ppcre)
+ ("drakma" ,sbcl-drakma)
+ ("hunchentoot" ,sbcl-hunchentoot)
("local-time" ,sbcl-local-time)
- ("quantile-estimator" ,sbcl-quantile-estimator)))
+ ("quantile-estimator" ,sbcl-quantile-estimator)
+ ("salza2" ,sbcl-salza2)
+ ("split-sequence" ,sbcl-split-sequence)
+ ("trivial-utf-8" ,sbcl-trivial-utf-8)))
+ (arguments
+ '(#:asd-files '("prometheus.asd"
+ "prometheus.collectors.sbcl.asd"
+ "prometheus.collectors.process.asd"
+ "prometheus.formats.text.asd"
+ "prometheus.exposers.hunchentoot.asd"
+ "prometheus.pushgateway.asd")
+ #:asd-systems '("prometheus"
+ "prometheus.collectors.sbcl"
+ "prometheus.collectors.process"
+ "prometheus.formats.text"
+ "prometheus.exposers.hunchentoot"
+ "prometheus.pushgateway")))
(home-page "https://github.com/deadtrickster/prometheus.cl")
(synopsis "Prometheus.io Common Lisp client")
(description "Prometheus.io Common Lisp client.")
@@ -11699,85 +9322,6 @@ Streams in ICDE’05.")
(define-public ecl-prometheus
(sbcl-package->ecl-package sbcl-prometheus))
-(define-public sbcl-prometheus.collectors.sbcl
- (package
- (inherit sbcl-prometheus)
- (name "sbcl-prometheus.collectors.sbcl")
- (inputs `(("prometheus" ,sbcl-prometheus)))
- (synopsis "Prometheus collector for SBCL metrics")
- (description "Prometheus collector for SBCL metrics.")))
-
-(define-public cl-prometheus.collectors.sbcl
- (sbcl-package->cl-source-package sbcl-prometheus.collectors.sbcl))
-
-(define-public sbcl-prometheus.collectors.process
- (package
- (inherit sbcl-prometheus)
- (name "sbcl-prometheus.collectors.process")
- (inputs
- `(("cffi" ,sbcl-cffi)
- ("cffi-grovel" ,sbcl-cffi-grovel)
- ("cl-fad" ,sbcl-cl-fad)
- ("prometheus" ,sbcl-prometheus)
- ("split-sequence" ,sbcl-split-sequence)))
- (synopsis "Prometheus collector for process metrics")
- (description "Prometheus collector for process metrics.")))
-
-(define-public cl-prometheus.collectors.process
- (sbcl-package->cl-source-package sbcl-prometheus.collectors.process))
-
-(define-public ecl-prometheus.collectors.process
- (sbcl-package->ecl-package sbcl-prometheus.collectors.process))
-
-(define-public sbcl-prometheus.formats.text
- (package
- (inherit sbcl-prometheus)
- (name "sbcl-prometheus.formats.text")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("prometheus" ,sbcl-prometheus)))
- (synopsis "Prometheus client text format")
- (description "Prometheus client text format.")))
-
-(define-public cl-prometheus.formats.text
- (sbcl-package->cl-source-package sbcl-prometheus.formats.text))
-
-(define-public ecl-prometheus.formats.text
- (sbcl-package->ecl-package sbcl-prometheus.formats.text))
-
-(define-public sbcl-prometheus.exposers.hunchentoot
- (package
- (inherit sbcl-prometheus)
- (name "sbcl-prometheus.exposers.hunchentoot")
- (inputs
- `(("hunchentoot" ,sbcl-hunchentoot)
- ("prometheus" ,sbcl-prometheus)
- ("prometheus.formats.text" ,sbcl-prometheus.formats.text)
- ("salza2" ,sbcl-salza2)
- ("trivial-utf-8" ,sbcl-trivial-utf-8)))
- (synopsis "Prometheus collector for Hunchentoot metrics")
- (description "Prometheus collector for Hunchentoot metrics")))
-
-(define-public cl-prometheus.exposers.hunchentoot
- (sbcl-package->cl-source-package sbcl-prometheus.exposers.hunchentoot))
-
-(define-public sbcl-prometheus.pushgateway
- (package
- (inherit sbcl-prometheus)
- (name "sbcl-prometheus.pushgateway")
- (inputs
- `(("drakma" ,sbcl-drakma)
- ("prometheus" ,sbcl-prometheus)
- ("prometheus.formats.text" ,sbcl-prometheus.formats.text)))
- (synopsis "Prometheus Pushgateway client")
- (description "Prometheus Pushgateway client.")))
-
-(define-public cl-prometheus.pushgateway
- (sbcl-package->cl-source-package sbcl-prometheus.pushgateway))
-
-(define-public ecl-prometheus.pushgateway
- (sbcl-package->ecl-package sbcl-prometheus.pushgateway))
-
(define-public sbcl-uuid
(let ((commit "e7d6680c3138385c0708f7aaf0c96622eeb140e8"))
(package
@@ -11842,9 +9386,6 @@ and active restarts.")
(define-public ecl-dissect
(sbcl-package->ecl-package sbcl-dissect))
-;; TODO: Uses ASDF's package-inferred-system which is not supported by
-;; asdf-build-system/sbcl as of 2020-05-21. We should fix
-;; asdf-build-system/sbcl.
(define-public sbcl-rove
(package
(name "sbcl-rove")
@@ -11928,14 +9469,13 @@ learn about each of the parameters.")
`(#:test-asd-file "sxql-test.asd"))
(inputs
`(("alexandria" ,sbcl-alexandria)
- ("cl-syntax-annot" ,sbcl-cl-syntax-annot)
+ ("cl-syntax" ,sbcl-cl-syntax)
("iterate" ,sbcl-iterate)
("optima" ,sbcl-optima)
("split-sequence" ,sbcl-split-sequence)
("trivial-types" ,sbcl-trivial-types)))
(native-inputs
- `(("prove" ,sbcl-prove)
- ("prove-asdf" ,sbcl-prove-asdf)))
+ `(("prove" ,sbcl-prove)))
(home-page "https://github.com/fukamachi/sxql")
(synopsis "SQL generator for Common Lisp")
(description "SQL generator for Common Lisp.")
@@ -11964,7 +9504,7 @@ learn about each of the parameters.")
"05ss4nz1jb9kb796295482b62w5cj29msfj8zis33sp2rw2vmv2g"))))
(build-system asdf-build-system/sbcl)
(arguments
- `(#:asd-system-name "1am"))
+ `(#:asd-systems '("1am")))
(home-page "https://github.com/lmj/1am")
(synopsis "Minimal testing framework for Common Lisp")
(description "A minimal testing framework for Common Lisp.")
@@ -12029,19 +9569,10 @@ tables.")
(substitute* "src/low-level/librdkafka-bindings.lisp"
(("librdkafka" all)
(string-append (assoc-ref inputs "librdkafka") "/lib/"
- all)))))
- (add-before 'cleanup 'move-bundle
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (actual (string-append out "/lib/sbcl/src/cl-rdkafka.fasl"))
- (expected (string-append
- out "/lib/sbcl/cl-rdkafka--system.fasl")))
- (copy-file actual expected)
- #t))))))
+ all))))))))
(inputs
`(("bordeaux-threads" ,sbcl-bordeaux-threads)
("cffi" ,sbcl-cffi)
- ("cffi-grovel" ,sbcl-cffi-grovel)
("librdkafka" ,librdkafka)
("lparallel" ,sbcl-lparallel)
("trivial-garbage" ,sbcl-trivial-garbage)))
@@ -12053,6 +9584,9 @@ tables.")
(define-public cl-rdkafka
(sbcl-package->cl-source-package sbcl-cl-rdkafka))
+(define-public ecl-cl-rdkafka
+ (sbcl-package->ecl-package sbcl-cl-rdkafka))
+
(define-public sbcl-acclimation
(let ((commit "4d51150902568fcd59335f4cc4cfa022df6116a5"))
(package
@@ -12083,10 +9617,13 @@ weight, temperature, names of physical quantitites, etc.")
(define-public cl-acclimation
(sbcl-package->cl-source-package sbcl-acclimation))
-(define-public sbcl-clump-2-3-tree
+(define-public ecl-acclimation
+ (sbcl-package->ecl-package sbcl-acclimation))
+
+(define-public sbcl-clump
(let ((commit "1ea4dbac1cb86713acff9ae58727dd187d21048a"))
(package
- (name "sbcl-clump-2-3-tree")
+ (name "sbcl-clump")
(version (git-version "0.0.0" "1" commit))
(source
(origin
@@ -12098,14 +9635,11 @@ weight, temperature, names of physical quantitites, etc.")
(sha256
(base32
"1639msyagsswj85gc0wd90jgh8588j3qg5q70by9s2brf2q6w4lh"))))
- (arguments
- '(#:asd-file "2-3-tree/clump-2-3-tree.asd"
- #:asd-system-name "clump-2-3-tree"))
(inputs
`(("acclimation" ,sbcl-acclimation)))
(build-system asdf-build-system/sbcl)
(home-page "https://github.com/robert-strandh/Clump")
- (synopsis "Implementation of 2-3 trees for Common Lisp")
+ (synopsis "Collection of tree implementations for Common Lisp")
(description "The purpose of this library is to provide a collection of
implementations of trees.
@@ -12119,34 +9653,16 @@ where the trees can be used as search trees or as trees that represent
sequences of objects.")
(license license:bsd-2))))
-(define-public sbcl-clump-binary-tree
- (package
- (inherit sbcl-clump-2-3-tree)
- (name "sbcl-clump-binary-tree")
- (arguments
- '(#:asd-file "Binary-tree/clump-binary-tree.asd"
- #:asd-system-name "clump-binary-tree"))
- (synopsis "Implementation of binary trees for Common Lisp")))
-
-(define-public sbcl-clump
- (package
- (inherit sbcl-clump-2-3-tree)
- (name "sbcl-clump")
- (arguments
- '(#:asd-file "clump.asd"
- #:asd-system-name "clump"))
- (inputs
- `(("clump-2-3-tree" ,sbcl-clump-2-3-tree)
- ("clump-binary-tree" ,sbcl-clump-binary-tree)))
- (synopsis "Collection of tree implementations for Common Lisp")))
-
(define-public cl-clump
(sbcl-package->cl-source-package sbcl-clump))
-(define-public sbcl-cluffer-base
+(define-public ecl-clump
+ (sbcl-package->ecl-package sbcl-clump))
+
+(define-public sbcl-cluffer
(let ((commit "4aad29c276a58a593064e79972ee4d77cae0af4a"))
(package
- (name "sbcl-cluffer-base")
+ (name "sbcl-cluffer")
(version (git-version "0.0.0" "1" commit))
(source
(origin
@@ -12158,12 +9674,10 @@ sequences of objects.")
(sha256
(base32
"1bcg13g7qb3dr8z50aihdjqa6miz5ivlc9wsj2csgv1km1mak2kj"))))
- (arguments
- '(#:asd-file "Base/cluffer-base.asd"
- #:asd-system-name "cluffer-base"))
- (inputs
- `(("acclimation" ,sbcl-acclimation)))
(build-system asdf-build-system/sbcl)
+ (inputs
+ `(("acclimation" ,sbcl-acclimation)
+ ("clump" ,sbcl-clump)))
(home-page "https://github.com/robert-strandh/cluffer")
(synopsis "Common Lisp library providing a protocol for text-editor buffers")
(description "Cluffer is a library for representing the buffer of a text
@@ -12172,64 +9686,12 @@ interact with the buffer contents in various ways, and it supplies different
implementations of those protocols for different purposes.")
(license license:bsd-2))))
-(define-public sbcl-cluffer-standard-line
- (package
- (inherit sbcl-cluffer-base)
- (name "sbcl-cluffer-standard-line")
- (arguments
- '(#:asd-file "Standard-line/cluffer-standard-line.asd"
- #:asd-system-name "cluffer-standard-line"))
- (inputs
- `(("cluffer-base" ,sbcl-cluffer-base)))))
-
-(define-public sbcl-cluffer-standard-buffer
- (package
- (inherit sbcl-cluffer-base)
- (name "sbcl-cluffer-standard-buffer")
- (arguments
- '(#:asd-file "Standard-buffer/cluffer-standard-buffer.asd"
- #:asd-system-name "cluffer-standard-buffer"))
- (inputs
- `(("cluffer-base" ,sbcl-cluffer-base)
- ("clump" ,sbcl-clump)))))
-
-(define-public sbcl-cluffer-simple-line
- (package
- (inherit sbcl-cluffer-base)
- (name "sbcl-cluffer-simple-line")
- (arguments
- '(#:asd-file "Simple-line/cluffer-simple-line.asd"
- #:asd-system-name "cluffer-simple-line"))
- (inputs
- `(("cluffer-base" ,sbcl-cluffer-base)))))
-
-(define-public sbcl-cluffer-simple-buffer
- (package
- (inherit sbcl-cluffer-base)
- (name "sbcl-cluffer-simple-buffer")
- (arguments
- '(#:asd-file "Simple-buffer/cluffer-simple-buffer.asd"
- #:asd-system-name "cluffer-simple-buffer"))
- (inputs
- `(("cluffer-base" ,sbcl-cluffer-base)))))
-
-(define-public sbcl-cluffer
- (package
- (inherit sbcl-cluffer-base)
- (name "sbcl-cluffer")
- (arguments
- '(#:asd-file "cluffer.asd"
- #:asd-system-name "cluffer"))
- (inputs
- `(("cluffer-base" ,sbcl-cluffer-base)
- ("cluffer-standard-line" ,sbcl-cluffer-standard-line)
- ("cluffer-standard-buffer" ,sbcl-cluffer-standard-buffer)
- ("cluffer-simple-line" ,sbcl-cluffer-simple-line)
- ("cluffer-simple-buffer" ,sbcl-cluffer-simple-buffer)))))
-
(define-public cl-cluffer
(sbcl-package->cl-source-package sbcl-cluffer))
+(define-public ecl-cluffer
+ (sbcl-package->ecl-package sbcl-cluffer))
+
(define-public sbcl-cl-libsvm-format
(let ((commit "3300f84fd8d9f5beafc114f543f9d83417c742fb")
(revision "0"))
@@ -12248,8 +9710,7 @@ implementations of those protocols for different purposes.")
"0284aj84xszhkhlivaigf9qj855fxad3mzmv3zfr0qzb5k0nzwrg"))))
(build-system asdf-build-system/sbcl)
(native-inputs
- `(("prove" ,sbcl-prove)
- ("prove-asdf" ,sbcl-prove-asdf)))
+ `(("prove" ,sbcl-prove)))
(inputs
`(("alexandria" ,sbcl-alexandria)))
(synopsis "LibSVM data format reader for Common Lisp")
@@ -12283,8 +9744,7 @@ format.")
"14x95rlg80ay5hv645ki57pqvy12v28hz4k1w0f6bsfi2rmpxchq"))))
(build-system asdf-build-system/sbcl)
(native-inputs
- `(("prove" ,sbcl-prove)
- ("prove-asdf" ,sbcl-prove-asdf)))
+ `(("prove" ,sbcl-prove)))
(inputs
`(("cl-libsvm-format" ,sbcl-cl-libsvm-format)
("cl-store" ,sbcl-cl-store)))
@@ -12323,7 +9783,6 @@ online linear classification written in Common Lisp.")
(build-system asdf-build-system/sbcl)
(native-inputs
`(("prove" ,sbcl-prove)
- ("prove-asdf" ,sbcl-prove-asdf)
("trivial-garbage" ,sbcl-trivial-garbage)))
(inputs
`(("alexandria" ,sbcl-alexandria)
@@ -12541,7 +10000,6 @@ wrappers of deflate streams. It currently does not handle compression.")
(inputs
`(("alexandria" ,sbcl-alexandria)
("cffi" ,sbcl-cffi)
- ("cffi-grovel" ,sbcl-cffi-grovel)
("freetype" ,freetype)
("trivial-garbage" ,sbcl-trivial-garbage)))
(arguments
@@ -12707,7 +10165,7 @@ than a few Kb.")
("trivial-features" ,sbcl-trivial-features)))
(arguments
;; FIXME: Without the following line, the build fails (see issue 41437).
- `(#:asd-system-name "3bz"))
+ `(#:asd-systems '("3bz")))
(home-page "https://github.com/3b/3bz")
(synopsis "Deflate decompression for Common Lisp")
(description
@@ -12817,6 +10275,8 @@ both from files on disk, or streams in memory.")
("retrospectiff" ,sbcl-retrospectiff)
("skippy" ,sbcl-skippy)
("zpng" ,sbcl-zpng)))
+ (arguments
+ '(#:asd-files '("opticl.asd")))
(home-page "https://github.com/slyrus/opticl")
(synopsis "Image processing library for Common Lisp")
(description
@@ -12827,11 +10287,14 @@ and saving 2-dimensional pixel-based images.")
(define-public cl-opticl
(sbcl-package->cl-source-package sbcl-opticl))
-(define-public sbcl-clim-lisp
+(define-public ecl-opticl
+ (sbcl-package->ecl-package sbcl-opticl))
+
+(define-public sbcl-mcclim
(let ((commit "27b4d7a667c9b3faa74cabcb57706b888314fff7")
(revision "0"))
(package
- (name "sbcl-clim-lisp")
+ (name "sbcl-mcclim")
(version (git-version "0.9.7" revision commit))
(source
(origin
@@ -12843,11 +10306,67 @@ and saving 2-dimensional pixel-based images.")
(sha256
(base32 "0jijfgkwas6xnpp5wiii6slcx9pgsalngacb8zm29x6pamx2193h"))))
(build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)
+ ("pkg-config" ,pkg-config)))
(inputs
`(("alexandria" ,sbcl-alexandria)
+ ("babel" ,sbcl-babel)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("cl-freetype2" ,sbcl-cl-freetype2)
+ ("cl-pdf" ,sbcl-cl-pdf)
+ ("cffi" ,sbcl-cffi)
+ ("cl-unicode" ,sbcl-cl-unicode)
+ ("cl-vectors" ,sbcl-cl-vectors)
("closer-mop" ,sbcl-closer-mop)
+ ("clx" ,sbcl-clx)
+ ("flexi-streams" ,sbcl-flexi-streams)
+ ("flexichain" ,sbcl-flexichain)
+ ("font-dejavu" ,font-dejavu)
+ ("fontconfig" ,fontconfig)
+ ("freetype" ,freetype)
+ ("harfbuzz" ,harfbuzz)
("log4cl" ,sbcl-log4cl)
- ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+ ("opticl" ,sbcl-opticl)
+ ("spatial-trees" ,sbcl-spatial-trees)
+ ("swank" ,sbcl-slime-swank)
+ ("trivial-features" ,sbcl-trivial-features)
+ ("trivial-garbage" ,sbcl-trivial-garbage)
+ ("trivial-gray-streams" ,sbcl-trivial-gray-streams)
+ ("zpb-ttf" ,sbcl-zpb-ttf)))
+ (arguments
+ '(#:asd-systems '("mcclim"
+ "clim-examples")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; mcclim-truetype uses DejaVu as default font and
+ ;; sets the path at build time.
+ (substitute* "Extensions/fonts/fontconfig.lisp"
+ (("/usr/share/fonts/truetype/dejavu/")
+ (string-append (assoc-ref inputs "font-dejavu")
+ "/share/fonts/truetype/")))
+ (substitute* "Extensions/fontconfig/src/functions.lisp"
+ (("libfontconfig\\.so")
+ (string-append (assoc-ref inputs "fontconfig")
+ "/lib/libfontconfig.so")))
+ (substitute* "Extensions/harfbuzz/src/functions.lisp"
+ (("libharfbuzz\\.so")
+ (string-append (assoc-ref inputs "harfbuzz")
+ "/lib/libharfbuzz.so")))
+ #t))
+ (add-after 'unpack 'fix-build
+ (lambda _
+ ;; The cffi-grovel system does not get loaded automatically,
+ ;; so we load it explicitly.
+ (substitute* "Extensions/fontconfig/mcclim-fontconfig.asd"
+ (("\\(asdf:defsystem #:mcclim-fontconfig" all)
+ (string-append "(asdf:load-system :cffi-grovel)\n" all)))
+ (substitute* "Extensions/harfbuzz/mcclim-harfbuzz.asd"
+ (("\\(asdf:defsystem #:mcclim-harfbuzz" all)
+ (string-append "(asdf:load-system :cffi-grovel)\n" all)))
+ #t)))))
(home-page "https://common-lisp.net/project/mcclim/")
(synopsis "Common Lisp GUI toolkit")
(description
@@ -12855,642 +10374,11 @@ and saving 2-dimensional pixel-based images.")
specification}, a toolkit for writing GUIs in Common Lisp.")
(license license:lgpl2.1+))))
-(define-public sbcl-clim-basic
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-clim-basic")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("babel" ,sbcl-babel)
- ("bordeaux-threads" ,sbcl-bordeaux-threads)
- ("clim-lisp" ,sbcl-clim-lisp)
- ("flexichain" ,sbcl-flexichain)
- ("spatial-trees" ,sbcl-spatial-trees)
- ("trivial-features" ,sbcl-trivial-features)
- ("trivial-garbage" ,sbcl-trivial-garbage)))
- (arguments
- '(#:asd-file "Core/clim-basic/clim-basic.asd"))))
-
-(define-public sbcl-clim-core
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-clim-core")
- (inputs
- `(("clim-basic" ,sbcl-clim-basic)))
- (arguments
- '(#:asd-file "Core/clim-core/clim-core.asd"))))
-
-(define-public sbcl-esa-mcclim
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-esa-mcclim")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("clim-core" ,sbcl-clim-core)))
- (arguments
- '(#:asd-file "Libraries/ESA/esa-mcclim.asd"))))
-
-(define-public sbcl-mcclim-fonts
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-fonts")
- (inputs
- `(("clim-basic" ,sbcl-clim-basic)))
- (arguments
- '(#:asd-file "Extensions/fonts/mcclim-fonts.asd"))))
-
-(define-public sbcl-automaton
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-automaton")
- (inputs
- `())
- (arguments
- '(#:asd-file "Libraries/Drei/cl-automaton/automaton.asd"))))
-
-(define-public sbcl-persistent
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-persistent")
- (inputs
- `())
- (arguments
- '(#:asd-file "Libraries/Drei/Persistent/persistent.asd"))))
-
-(define-public sbcl-drei-mcclim
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-drei-mcclim")
- (native-inputs
- `(("fiveam" ,sbcl-fiveam)))
- (inputs
- `(("automaton" ,sbcl-automaton)
- ("clim-core" ,sbcl-clim-core)
- ("esa-mcclim" ,sbcl-esa-mcclim)
- ("flexichain" ,sbcl-flexichain)
- ("mcclim-fonts" ,sbcl-mcclim-fonts)
- ("persistent" ,sbcl-persistent)
- ("swank" ,cl-slime-swank)))
- (arguments
- '(#:asd-file "Libraries/Drei/drei-mcclim.asd"))))
-
-(define-public sbcl-clim
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-clim")
- (inputs
- `(("clim-core" ,sbcl-clim-core)
- ("drei-mcclim" ,sbcl-drei-mcclim)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Core/clim/clim.asd"))))
-
-(define-public sbcl-mcclim-backend-common
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-backend-common")
- (native-inputs
- `(("fiveam" ,sbcl-fiveam)))
- (inputs
- `(("clim" ,sbcl-clim)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Backends/common/mcclim-backend-common.asd"))))
-
-(define-public sbcl-mcclim-clx
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-clx")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-unicode" ,sbcl-cl-unicode)
- ("clx" ,sbcl-clx)
- ("mcclim-backend-common" ,sbcl-mcclim-backend-common)
- ("mcclim-fonts" ,sbcl-mcclim-fonts)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Backends/CLX/mcclim-clx.asd"))))
-
-(define-public sbcl-mcclim-fonts-truetype
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-fonts-truetype")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-aa" ,sbcl-cl-aa)
- ("cl-paths-ttf" ,sbcl-cl-paths-ttf)
- ("cl-vectors" ,sbcl-cl-vectors)
- ("clim-basic" ,sbcl-clim-basic)
- ("font-dejavu" ,font-dejavu)
- ("zpb-ttf" ,sbcl-zpb-ttf)))
- (arguments
- '(#:asd-file "Extensions/fonts/mcclim-fonts.asd"
- #:asd-system-name "mcclim-fonts/truetype"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-paths
- (lambda* (#:key inputs #:allow-other-keys)
- ;; mcclim-truetype uses DejaVu as default font and
- ;; sets the path at build time.
- (substitute* "Extensions/fonts/fontconfig.lisp"
- (("/usr/share/fonts/truetype/dejavu/")
- (string-append (assoc-ref inputs "font-dejavu")
- "/share/fonts/truetype/")))
- #t)))))))
-
-(define-public sbcl-mcclim-fonts-clx-truetype
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-fonts-clx-truetype")
- (inputs
- `(("mcclim-clx" ,sbcl-mcclim-clx)
- ("mcclim-fonts-truetype" ,sbcl-mcclim-fonts-truetype)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "./Extensions/fonts/mcclim-fonts.asd"
- #:asd-system-name "mcclim-fonts/clx-truetype"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-asd-system-names
- (lambda _
- (substitute* "Extensions/fonts/mcclim-fonts.asd"
- ((":depends-on \\(#:mcclim-fonts/truetype")
- ":depends-on (#:mcclim-fonts-truetype"))
- #t)))))))
-
-(define-public sbcl-mcclim-clx-truetype
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-clx-truetype")
- (inputs
- `(("mcclim-clx" ,sbcl-mcclim-clx)
- ("mcclim-fonts-clx-truetype" ,sbcl-mcclim-fonts-clx-truetype)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Backends/CLX/mcclim-clx.asd"
- #:asd-system-name "mcclim-clx/truetype"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-asd-system-names
- (lambda _
- (substitute* "Backends/CLX/mcclim-clx.asd"
- (("mcclim-fonts/clx-truetype")
- "mcclim-fonts-clx-truetype"))
- #t)))))))
-
-(define-public sbcl-mcclim-fontconfig
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-fontconfig")
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cffi" ,sbcl-cffi)
- ("cffi-grovel" ,sbcl-cffi-grovel)
- ("fontconfig" ,fontconfig)))
- (arguments
- '(#:asd-file "Extensions/fontconfig/mcclim-fontconfig.asd"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "Extensions/fontconfig/src/functions.lisp"
- (("libfontconfig\\.so")
- (string-append (assoc-ref inputs "fontconfig")
- "/lib/libfontconfig.so")))
- #t))
- (add-after 'unpack 'fix-build
- (lambda _
- ;; The cffi-grovel system does not get loaded automatically,
- ;; so we load it explicitly.
- (substitute* "Extensions/fontconfig/mcclim-fontconfig.asd"
- (("\\(asdf:defsystem #:mcclim-fontconfig" all)
- (string-append "(asdf:load-system :cffi-grovel)\n" all)))
- #t)))))))
-
-(define-public sbcl-mcclim-harfbuzz
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-harfbuzz")
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cffi" ,sbcl-cffi)
- ("cffi-grovel" ,sbcl-cffi-grovel)
- ("freetype" ,freetype)
- ("harfbuzz" ,harfbuzz)
- ("trivial-garbage" ,sbcl-trivial-garbage)))
- (arguments
- '(#:asd-file "Extensions/harfbuzz/mcclim-harfbuzz.asd"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "Extensions/harfbuzz/src/functions.lisp"
- (("libharfbuzz\\.so")
- (string-append (assoc-ref inputs "harfbuzz")
- "/lib/libharfbuzz.so")))
- #t))
- (add-after 'unpack 'fix-build
- (lambda _
- ;; The cffi-grovel system does not get loaded automatically,
- ;; so we load it explicitly.
- (substitute* "Extensions/harfbuzz/mcclim-harfbuzz.asd"
- (("\\(asdf:defsystem #:mcclim-harfbuzz" all)
- (string-append "(asdf:load-system :cffi-grovel)\n" all)))
- #t)))))))
-
-(define-public sbcl-mcclim-fonts-clx-freetype
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-fonts-clx-freetype")
- (inputs
- `(("cl-freetype2" ,sbcl-cl-freetype2)
- ("mcclim-clx" ,sbcl-mcclim-clx)
- ("mcclim-fontconfig" ,sbcl-mcclim-fontconfig)
- ("mcclim-fonts" ,sbcl-mcclim-fonts)
- ("mcclim-harfbuzz" ,sbcl-mcclim-harfbuzz)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Extensions/fonts/mcclim-fonts.asd"
- #:asd-system-name "mcclim-fonts/clx-freetype"))))
-
-(define-public sbcl-mcclim-clx-freetype
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-clx-freetype")
- (inputs
- `(("mcclim-clx" ,sbcl-mcclim-clx)
- ("mcclim-fonts-clx-freetype" ,sbcl-mcclim-fonts-clx-freetype)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Backends/CLX/mcclim-clx.asd"
- #:asd-system-name "mcclim-clx/freetype"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-asd-system-names
- (lambda _
- (substitute* "Backends/CLX/mcclim-clx.asd"
- (("mcclim-fonts/clx-freetype")
- "mcclim-fonts-clx-freetype"))
- #t)))))))
-
-(define-public sbcl-mcclim-render
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-render")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-vectors" ,sbcl-cl-vectors)
- ("clim-basic" ,sbcl-clim-basic)
- ("mcclim-backend-common" ,sbcl-mcclim-backend-common)
- ("mcclim-fonts-truetype" ,sbcl-mcclim-fonts-truetype)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Extensions/render/mcclim-render.asd"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-asd-system-names
- (lambda _
- (substitute* "Extensions/render/mcclim-render.asd"
- (("mcclim-fonts/truetype")
- "mcclim-fonts-truetype"))
- #t)))))))
-
-(define-public sbcl-mcclim-clx-fb
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-clx-fb")
- (inputs
- `(("mcclim-backend-common" ,sbcl-mcclim-backend-common)
- ("mcclim-clx" ,sbcl-mcclim-clx)
- ("mcclim-render" ,sbcl-mcclim-render)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Backends/CLX-fb/mcclim-clx-fb.asd"))))
-
-(define-public sbcl-mcclim-null
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-null")
- (inputs
- `(("clim" ,sbcl-clim)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Backends/Null/mcclim-null.asd"))))
-
-(define-public sbcl-clim-postscript-font
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-clim-postscript-font")
- (inputs
- `(("clim-basic" ,sbcl-clim-basic)
- ("mcclim-backend-common" ,sbcl-mcclim-backend-common)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Backends/PostScript/clim-postscript-font.asd"))))
-
-(define-public sbcl-clim-postscript
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-clim-postscript")
- (native-inputs
- `(("fiveam" ,sbcl-fiveam)))
- (inputs
- `(("clim-basic" ,sbcl-clim-basic)
- ("clim-postscript-font" ,sbcl-clim-postscript-font)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Backends/PostScript/clim-postscript.asd"
- ;; Test suite disabled because of a dependency cycle.
- ;; The tests depend on mcclim/test-util, which depends on mcclim,
- ;; wich depends on mcclim/extensions, which depends on clim-postscript.
- #:tests? #f))))
-
-(define-public sbcl-clim-pdf
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-clim-pdf")
- (native-inputs
- `(("fiveam" ,sbcl-fiveam)))
- (inputs
- `(("cl-pdf" ,sbcl-cl-pdf)
- ("clim-basic" ,sbcl-clim-basic)
- ("clim-postscript-font" ,sbcl-clim-postscript-font)
- ("flexi-streams" ,sbcl-flexi-streams)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Backends/PDF/clim-pdf.asd"
- ;; Test suite disabled because of a dependency cycle.
- ;; The tests depend on mcclim/test-util, which depends on mcclim,
- ;; wich depends on mcclim/extensions, which depends on clim-pdf.
- #:tests? #f))))
-
-(define-public sbcl-mcclim-looks
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-looks")
- (inputs
- `(("clim" ,sbcl-clim)
- ("mcclim-clx" ,sbcl-mcclim-clx)
- ("mcclim-clx-fb" ,sbcl-mcclim-clx-fb)
- ("mcclim-clx-freetype" ,sbcl-mcclim-clx-freetype)
- ("mcclim-clx-truetype" ,sbcl-mcclim-clx-truetype)
- ("mcclim-null" ,sbcl-mcclim-null)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "mcclim.asd"
- #:asd-system-name "mcclim/looks"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-asd-system-names
- (lambda _
- (substitute* "mcclim.asd"
- (("mcclim-clx/truetype")
- "mcclim-clx-truetype")
- (("mcclim-clx/freetype")
- "mcclim-clx-freetype"))
- #t)))))))
-
-(define-public sbcl-mcclim-franz
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-franz")
- (inputs
- `(("clim" ,sbcl-clim)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Extensions/Franz/mcclim-franz.asd"))))
-
-(define-public sbcl-mcclim-bezier-core
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-bezier-core")
- (inputs
- `(("clim" ,sbcl-clim)
- ("clim-pdf" ,sbcl-clim-pdf)
- ("clim-postscript" ,sbcl-clim-postscript)
- ("mcclim-null" ,sbcl-mcclim-null)
- ("mcclim-render" ,sbcl-mcclim-render)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Extensions/bezier/mcclim-bezier.asd"
- #:asd-system-name "mcclim-bezier/core"))))
-
-(define-public sbcl-mcclim-bezier-clx
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-bezier-clx")
- (inputs
- `(("clim" ,sbcl-clim)
- ("mcclim-bezier/core" ,sbcl-mcclim-bezier-core)
- ("mcclim-clx" ,sbcl-mcclim-clx)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Extensions/bezier/mcclim-bezier.asd"
- #:asd-system-name "mcclim-bezier/clx"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-asd-system-names
- (lambda _
- (substitute* "Extensions/bezier/mcclim-bezier.asd"
- (("mcclim-bezier/core\\)")
- "mcclim-bezier-core)"))
- #t)))))))
-
-(define-public sbcl-mcclim-bezier
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-bezier")
- (inputs
- `(("mcclim-bezier/clx" ,sbcl-mcclim-bezier-clx)
- ("mcclim-bezier/core" ,sbcl-mcclim-bezier-core)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Extensions/bezier/mcclim-bezier.asd"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-asd-system-names
- (lambda _
- (substitute* "Extensions/bezier/mcclim-bezier.asd"
- (("\\(#:mcclim-bezier/core")
- "(#:mcclim-bezier-core")
- (("#:mcclim-bezier/clx\\)\\)")
- "#:mcclim-bezier-clx))"))
- #t)))))))
-
-(define-public sbcl-mcclim-bitmaps
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-bitmaps")
- (inputs
- `(("clim-basic" ,sbcl-clim-basic)
- ("opticl" ,sbcl-opticl)))
- (arguments
- '(#:asd-file "Extensions/bitmap-formats/mcclim-bitmaps.asd"))))
-
-(define-public sbcl-conditional-commands
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-conditional-commands")
- (inputs
- `(("clim-basic" ,sbcl-clim-basic)))
- (arguments
- '(#:asd-file "Extensions/conditional-commands/conditional-commands.asd"))))
-
-(define-public sbcl-mcclim-layouts-tab
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-layouts-tab")
- (inputs
- `(("clim" ,sbcl-clim)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Extensions/layouts/mcclim-layouts.asd"
- #:asd-system-name "mcclim-layouts/tab"))))
-
-(define-public sbcl-mcclim-extensions
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-extensions")
- (inputs
- `(("clim-pdf" ,sbcl-clim-pdf)
- ("clim-postscript" ,sbcl-clim-postscript)
- ("conditional-commands" ,sbcl-conditional-commands)
- ("mcclim-bezier" ,sbcl-mcclim-bezier)
- ("mcclim-bitmaps" ,sbcl-mcclim-bitmaps)
- ("mcclim-franz" ,sbcl-mcclim-franz)
- ("mcclim-layouts-tab" ,sbcl-mcclim-layouts-tab)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "mcclim.asd"
- #:asd-system-name "mcclim/extensions"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-asd-system-names
- (lambda _
- (substitute* "mcclim.asd"
- (("mcclim-layouts/tab")
- "mcclim-layouts-tab"))
- #t)))))))
-
-(define-public sbcl-mcclim
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim")
- (native-inputs
- `(("fiveam" ,sbcl-fiveam)))
- (inputs
- `(("mcclim-looks" ,sbcl-mcclim-looks)
- ("mcclim-extensions" ,sbcl-mcclim-extensions)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-asd-system-names
- (lambda _
- (substitute* "mcclim.asd"
- ((":depends-on \\(\"mcclim/looks\" \"mcclim/extensions\"\\)")
- ":depends-on (\"mcclim-looks\" \"mcclim-extensions\")"))
- #t)))
- ;; Test suite disabled because of a dependency cycle.
- ;; The tests depend on mcclim/test-util, which depends on mcclim.
- #:tests? #f))))
-
(define-public cl-mcclim
- (let ((base (sbcl-package->cl-source-package sbcl-clim-lisp)))
- (package
- (inherit base)
- (name "cl-mcclim")
- (native-inputs
- `(("fiveam" ,cl-fiveam)
- ("pkg-config" ,pkg-config)))
- (inputs
- `(("alexandria" ,cl-alexandria)
- ("babel" ,cl-babel)
- ("bordeaux-threads" ,cl-bordeaux-threads)
- ("cffi" ,cl-cffi)
- ("cl-aa" ,cl-aa)
- ("cl-freetype2" ,cl-freetype2)
- ("cl-paths-ttf" ,cl-paths-ttf)
- ("cl-pdf" ,cl-pdf)
- ("cl-unicode" ,cl-unicode)
- ("cl-vectors" ,cl-vectors)
- ("closer-mop" ,cl-closer-mop)
- ("clx" ,cl-clx)
- ("flexi-streams" ,cl-flexi-streams)
- ("flexichain" ,cl-flexichain)
- ("fontconfig" ,fontconfig)
- ("freetype" ,freetype)
- ("harfbuzz" ,harfbuzz)
- ("log4cl" ,cl-log4cl)
- ("opticl" ,cl-opticl)
- ("spatial-trees" ,cl-spatial-trees)
- ("trivial-features" ,cl-trivial-features)
- ("trivial-garbage" ,cl-trivial-garbage)
- ("trivial-gray-streams" ,cl-trivial-gray-streams)
- ("swank" ,cl-slime-swank)
- ("zpb-ttf" ,cl-zpb-ttf))))))
-
-(define-public sbcl-mcclim-test-util
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-test-util")
- (inputs
- `(("fiveam" ,sbcl-fiveam)
- ("mcclim" ,sbcl-mcclim)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "mcclim.asd"
- #:asd-system-name "mcclim/test-util"))))
-
-(define-public sbcl-mcclim-raster-image
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-mcclim-raster-image")
- (native-inputs
- `(("fiveam" ,sbcl-fiveam)
- ("mcclim-test-util" ,sbcl-mcclim-test-util)))
- (inputs
- `(("clim-basic" ,sbcl-clim-basic)
- ("mcclim-backend-common" ,sbcl-mcclim-backend-common)
- ("mcclim-render" ,sbcl-mcclim-render)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Backends/RasterImage/mcclim-raster-image.asd"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-asd-system-names
- (lambda _
- (substitute* "Backends/RasterImage/mcclim-raster-image.asd"
- (("mcclim/test-util")
- "mcclim-test-util"))
- #t)))))))
+ (sbcl-package->cl-source-package sbcl-mcclim))
-(define-public sbcl-clim-examples
- (package
- (inherit sbcl-clim-lisp)
- (name "sbcl-clim-examples")
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("closer-mop" ,sbcl-closer-mop)
- ("mcclim" ,sbcl-mcclim)
- ("mcclim-bezier" ,sbcl-mcclim-bezier)
- ("mcclim-layouts-tab" ,sbcl-mcclim-layouts-tab)
- ("mcclim-raster-image" ,sbcl-mcclim-raster-image)
- ("swank" ,cl-slime-swank))) ; For drei-mcclim
- (arguments
- '(#:asd-file "Examples/clim-examples.asd"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-asd-system-names
- (lambda _
- (substitute* "Examples/clim-examples.asd"
- (("mcclim-layouts/tab")
- "mcclim-layouts-tab"))
- #t)))))))
+(define-public ecl-mcclim
+ (sbcl-package->ecl-package sbcl-mcclim))
(define-public sbcl-cl-inflector
(let ((commit "f1ab16919ccce3bd82a0042677d9616dde2034fe")
@@ -13746,11 +10634,11 @@ can separate configuration system from an implementation.")
(define-public ecl-envy
(sbcl-package->ecl-package sbcl-envy))
-(define sbcl-mito-core
+(define-public sbcl-mito
(let ((commit "d3b9e375ef364a65692da2185085a08c969ac88a")
(revision "1"))
(package
- (name "sbcl-mito-core")
+ (name "sbcl-mito")
(version (git-version "0.1" revision commit))
(home-page "https://github.com/fukamachi/mito")
(source
@@ -13763,76 +10651,21 @@ can separate configuration system from an implementation.")
(sha256
(base32 "08mncgzjnbbsf1a6am3l73iw4lyfvz5ldjg5g84awfaxml4p73mb"))))
(build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("prove" ,sbcl-prove)))
(inputs
- `(("dbi" ,sbcl-dbi)
- ("sxql" ,sbcl-sxql)
+ `(("alexandria" ,sbcl-alexandria)
("cl-ppcre" ,sbcl-cl-ppcre)
+ ("cl-reexport" ,sbcl-cl-reexport)
("closer-mop" ,sbcl-closer-mop)
+ ("dbi" ,sbcl-dbi)
("dissect" ,sbcl-dissect)
- ("optima" ,sbcl-optima)
- ("cl-reexport" ,sbcl-cl-reexport)
+ ("esrap" ,sbcl-esrap)
("local-time" ,sbcl-local-time)
- ("uuid" ,sbcl-uuid)
- ("alexandria" ,sbcl-alexandria)))
- (synopsis "ORM for Common Lisp with migrations and relationships support")
- (description "Mito is yet another object relational mapper, and it aims
-to be a successor of Integral.
-
-@itemize
-@item Support MySQL, PostgreSQL and SQLite3.
-@item Add id (serial/uuid primary key), created_at and updated_at by default
-like Ruby's ActiveRecord.
-@item Migrations.
-@item Database schema versioning.
-@end itemize\n")
- (license license:llgpl))))
-
-(define sbcl-mito-migration
- (package
- (inherit sbcl-mito-core)
- (name "sbcl-mito-migration")
- (inputs
- `(("mito-core" ,sbcl-mito-core)
- ("dbi" ,sbcl-dbi)
- ("sxql" ,sbcl-sxql)
- ("closer-mop" ,sbcl-closer-mop)
- ("cl-reexport" ,sbcl-cl-reexport)
- ("uuid" ,sbcl-uuid)
- ("alexandria" ,sbcl-alexandria)
- ("esrap" ,sbcl-esrap)))))
-
-(define sbcl-lack-middleware-mito
- (package
- (inherit sbcl-mito-core)
- (name "sbcl-lack-middleware-mito")
- (inputs
- `(("mito-core" ,sbcl-mito-core)
- ("dbi" ,sbcl-dbi)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-build
- (lambda _
- (substitute* "lack-middleware-mito.asd"
- (("cl-dbi") "dbi"))
- #t)))))))
-
-(define-public sbcl-mito
- (package
- (inherit sbcl-mito-core)
- (name "sbcl-mito")
- (inputs
- `(("mito-core" ,sbcl-mito-core)
- ("mito-migration" ,sbcl-mito-migration)
- ("lack-middleware-mito" ,sbcl-lack-middleware-mito)
- ("cl-reexport" ,sbcl-cl-reexport)))
- (native-inputs
- `(("prove" ,sbcl-prove)
- ("prove-asdf" ,sbcl-prove-asdf)
- ("dbd-mysql" ,sbcl-dbd-mysql)
- ("dbd-postgres" ,sbcl-dbd-postgres)
- ("dbd-sqlite3" ,sbcl-dbd-sqlite3)))
- (arguments
+ ("optima" ,sbcl-optima)
+ ("sxql" ,sbcl-sxql)
+ ("uuid" ,sbcl-uuid)))
+ (arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'remove-non-functional-tests
@@ -13852,11 +10685,26 @@ like Ruby's ActiveRecord.
#t)))
;; TODO: While all enabled tests pass, the phase fails with:
;; Component MITO-ASD::MITO-TEST not found, required by #<SYSTEM "mito">
- #:tests? #f))))
+ #:tests? #f))
+ (synopsis "ORM for Common Lisp with migrations and relationships support")
+ (description "Mito is yet another object relational mapper, and it aims
+to be a successor of Integral.
+
+@itemize
+@item Support MySQL, PostgreSQL and SQLite3.
+@item Add id (serial/uuid primary key), created_at and updated_at by default
+like Ruby's ActiveRecord.
+@item Migrations.
+@item Database schema versioning.
+@end itemize\n")
+ (license license:llgpl))))
(define-public cl-mito
(sbcl-package->cl-source-package sbcl-mito))
+(define-public ecl-mito
+ (sbcl-package->ecl-package sbcl-mito))
+
(define-public sbcl-kebab
(let ((commit "e7f77644c4e46131e7b8039d191d35fe6211f31b")
(revision "1"))
@@ -13880,8 +10728,7 @@ like Ruby's ActiveRecord.
("cl-interpol" ,sbcl-cl-interpol)
("split-sequence" ,sbcl-split-sequence)))
(native-inputs
- `(("prove-asdf" ,sbcl-prove-asdf)
- ("prove" ,sbcl-prove)))
+ `(("prove" ,sbcl-prove)))
(arguments
;; Tests passes but the phase fails with
;; Component KEBAB-ASD::KEBAB-TEST not found, required by #<SYSTEM "kebab">.
@@ -13921,7 +10768,7 @@ camelCase, snake_case, kebab-case (lisp-case).")
("optima" ,sbcl-optima)
("trivial-types" ,sbcl-trivial-types)
("closer-mop" ,sbcl-closer-mop)
- ("cl-syntax-annot" ,sbcl-cl-syntax-annot)
+ ("cl-syntax" ,sbcl-cl-syntax)
("sxql" ,sbcl-sxql)
("dbi" ,sbcl-dbi)
("babel" ,sbcl-babel)
@@ -13931,9 +10778,7 @@ camelCase, snake_case, kebab-case (lisp-case).")
("kebab" ,sbcl-kebab)
("log4cl" ,sbcl-log4cl)))
(native-inputs
- `(("prove-asdf" ,sbcl-prove-asdf)
- ("prove" ,sbcl-prove)
- ("dbd-sqlite3" ,sbcl-dbd-sqlite3)))
+ `(("prove" ,sbcl-prove)))
(arguments
;; TODO: Tests fail with
;; While evaluating the form starting at line 22, column 0
@@ -14039,7 +10884,8 @@ that and not limited to a certain server or text format.")
("prove" ,sbcl-prove)))
(arguments
;; Tests depend on caveman, which in turns depends on cl-project.
- '(#:tests? #f))
+ '(#:tests? #f
+ #:asd-files '("cl-project.asd")))
(synopsis "Generate a skeleton for modern Common Lisp projects")
(description "This library provides a modern project skeleton generator.
In contract with other generators, CL-Project generates one package per file
@@ -14072,19 +10918,18 @@ can begin writing unit tests as soon as the project is generated.")
(build-system asdf-build-system/sbcl)
(inputs
`(("ningle" ,cl-ningle)
- ("lack-request" ,sbcl-lack-request)
- ("lack-response" ,sbcl-lack-response)
+ ("lack" ,sbcl-lack)
("cl-project" ,sbcl-cl-project)
("dbi" ,sbcl-dbi)
- ("cl-syntax-annot" ,sbcl-cl-syntax-annot)
+ ("cl-syntax" ,sbcl-cl-syntax)
("myway" ,sbcl-myway)
("quri" ,sbcl-quri)))
(native-inputs
`(("usocket" ,sbcl-usocket)
("dexador" ,sbcl-dexador)))
(arguments
- `(#:asd-file "caveman2.asd"
- #:asd-system-name "caveman2"
+ `(#:asd-files '("caveman2.asd")
+ #:asd-systems '("caveman2")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'remove-v1
@@ -14093,7 +10938,7 @@ can begin writing unit tests as soon as the project is generated.")
(for-each delete-file
'("README.v1.markdown" "caveman.asd" "caveman-test.asd")))))
;; TODO: Tests fail with:
- ;; writing /gnu/store/j4l1k28yq47qbg074b4yf1b7wnccg8j1-sbcl-caveman-2.4.0-1.faa5f7e/share/common-lisp/sbcl-source/caveman2/v2/t/tmp/myapp573/tests/myapp573.lisp
+ ;; writing /gnu/store/...-sbcl-caveman-2.4.0-1.faa5f7e/share/common-lisp/sbcl-source/caveman2/v2/t/tmp/myapp573/tests/myapp573.lisp
;; While evaluating the form starting at line 38, column 0
;; of #P"/tmp/guix-build-sbcl-caveman-2.4.0-1.faa5f7e.drv-0/source/v2/t/caveman.lisp":
;; Unhandled ASDF/FIND-COMPONENT:MISSING-COMPONENT in thread #<SB-THREAD:THREAD "main thread" RUNNING
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index df901aa34f..c2a3fa49b7 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -78,21 +78,10 @@
#:use-module (gnu packages xorg)
#:use-module (ice-9 match))
-(define (asdf-substitutions lisp)
- ;; Prepend XDG_DATA_DIRS/LISP-bundle-systems to ASDF's
- ;; 'default-system-source-registry'.
- `((("\\(,dir \"systems/\"\\)\\)")
- (format #f
- "(,dir \"~a-bundle-systems\")))
-
- ,@(loop :for dir :in (xdg-data-dirs \"common-lisp/\")
- :collect `(:directory (,dir \"systems\"))"
- ,lisp))))
-
(define-public cl-asdf
(package
(name "cl-asdf")
- (version "3.3.3")
+ (version "3.3.4")
(source
(origin
(method url-fetch)
@@ -100,7 +89,7 @@
(string-append "https://common-lisp.net/project/asdf/archives/asdf-"
version ".lisp"))
(sha256
- (base32 "18lr6kxvzhr79c9rx3sdricz30aby866fj0m24w27zxsqlyvn3rd"))))
+ (base32 "1hpx30f6yrak15nw992k7x3pn75ahvjs04n4f134k68mhgs62km2"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils)
@@ -112,9 +101,29 @@
(let* ((out (string-append (assoc-ref %outputs "out")))
(asdf-install (string-append out %source-install-prefix
"/source/asdf/"))
- (asdf (string-append (assoc-ref %build-inputs "source"))))
+ (src-asdf (string-append (assoc-ref %build-inputs "source")))
+ (dst-asdf (string-append asdf-install "asdf.lisp")))
(mkdir-p asdf-install)
- (copy-file asdf (string-append asdf-install "asdf.lisp"))))))
+ (copy-file src-asdf dst-asdf)
+ ;; Patch ASDF to make it read the configuration files in all
+ ;; the direcories listed in '$XDG_CONFIG_DIRS' instead of just
+ ;; the first.
+ (substitute* dst-asdf
+ (("\\(xdg-config-pathname \\*source-registry-directory\\* direction\\)")
+ "`(:source-registry
+ ,@(loop
+ for dir in (xdg-config-dirs
+ \"common-lisp/source-registry.conf.d/\")
+ collect `(:include ,dir))
+ :inherit-configuration)")
+ (("\\(xdg-config-pathname \\*output-translations-directory\\* direction\\)")
+ "`(:output-translations
+ ,@(loop
+ for dir in (xdg-config-dirs
+ \"common-lisp/asdf-output-translations.conf.d/\")
+ collect `(:include ,dir))
+ :inherit-configuration)")))
+ #t)))
(home-page "https://common-lisp.net/project/asdf/")
(synopsis "Another System Definition Facility")
(description
@@ -261,10 +270,7 @@ interface to the Tk widget system.")
"/share/common-lisp/source/asdf/asdf.lisp"))
(out (string-append (assoc-ref outputs "out")))
(contrib-asdf "contrib/asdf/asdf.lisp"))
- (copy-file guix-asdf contrib-asdf)
- ;; Add ecl-bundle-systems to 'default-system-source-registry'.
- (substitute* contrib-asdf
- ,@(asdf-substitutions name)))
+ (copy-file guix-asdf contrib-asdf))
#t))
(add-after 'install 'wrap
(lambda* (#:key inputs outputs #:allow-other-keys)
@@ -298,7 +304,10 @@ interface to the Tk widget system.")
(native-search-paths
(list (search-path-specification
(variable "XDG_DATA_DIRS")
- (files '("share")))))
+ (files '("share")))
+ (search-path-specification
+ (variable "XDG_CONFIG_DIRS")
+ (files '("etc")))))
(home-page "http://ecls.sourceforge.net/")
(synopsis "Embeddable Common Lisp")
(description "ECL is an implementation of the Common Lisp language as
@@ -437,9 +446,7 @@ an interpreter, a compiler, a debugger, and much more.")
"/share/common-lisp/source/asdf/asdf.lisp"))
(out (string-append (assoc-ref outputs "out")))
(contrib-asdf "contrib/asdf/asdf.lisp"))
- (copy-file guix-asdf contrib-asdf)
- (substitute* contrib-asdf
- ,@(asdf-substitutions name)))
+ (copy-file guix-asdf contrib-asdf))
#t))
(add-before 'build 'patch-unix-tool-paths
(lambda* (#:key outputs inputs #:allow-other-keys)
@@ -546,7 +553,10 @@ an interpreter, a compiler, a debugger, and much more.")
(native-search-paths
(list (search-path-specification
(variable "XDG_DATA_DIRS")
- (files '("share")))))
+ (files '("share")))
+ (search-path-specification
+ (variable "XDG_CONFIG_DIRS")
+ (files '("etc")))))
(home-page "http://www.sbcl.org/")
(synopsis "Common Lisp implementation")
(description "Steel Bank Common Lisp (SBCL) is a high performance Common
diff --git a/gnu/packages/loko.scm b/gnu/packages/loko.scm
new file mode 100644
index 0000000000..f6699877f7
--- /dev/null
+++ b/gnu/packages/loko.scm
@@ -0,0 +1,86 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Martin Becze <mjbecze@riseup.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 loko)
+ #:use-module (guix packages)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system gnu)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages package-management)
+ #:use-module (gnu packages guile)
+ #:use-module (gnu packages guile-xyz)
+ #:use-module (gnu packages chez))
+
+(define-public loko-scheme
+ (package
+ (name "loko-scheme")
+ (version "0.6.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/weinholt/loko")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32 "019jlh3lywy912cfz689c9fxgf4bi5700i9k04g7sl5w5gchj36m"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ `(;; r7rs tests are still failing as of 0.6.0.
+ #:tests? #f
+ #:strip-binaries? #f
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out")))
+ (list
+ (string-append "PREFIX=" out)
+ (string-append "GDB_AUTOLOAD_PATH=" out "/share/gdb/auto-load")))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'build 'akku-fixes
+ (lambda* (#:key inputs #:allow-other-keys)
+ (delete-file "Akku.lock")
+ (substitute* "Akku.manifest"
+ (("\\(depends.*") "(depends)"))
+ (invoke "akku" "install")
+ (let ((dest "./.akku/lib/")
+ (source "/share/guile/site/3.0/"))
+ (for-each
+ (lambda (name)
+ ;; Symlink the scheme libraries so that Akku can find them
+ (symlink (string-append (assoc-ref inputs name) source name)
+ (string-append dest name)))
+ '("struct" "laesare" "pfds" "machine-code")))
+ (substitute* ".akku/env"
+ (("/bin/sh") (which "sh")))
+ #t)))))
+ (native-inputs
+ `(("akku" ,akku)
+ ("chez-scheme" ,chez-scheme)
+ ("struct" ,guile-struct-pack)
+ ("laesare" ,guile-laesare)
+ ("pfds" ,guile-pfds)
+ ("machine-code" ,guile-machine-code)))
+ (home-page "https://scheme.fail")
+ (synopsis "Implementation of the algorithmic language Scheme")
+ (description
+ "Loko Scheme is intended to be a platform for application and operating
+system development. It is written purely in Scheme and some assembler
+(i.e. no C code at the bottom). Both the R6RS and the R7RS standards are
+supported.")
+ (license license:agpl3+)))
diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm
index 21587609ce..af452a9903 100644
--- a/gnu/packages/lxqt.scm
+++ b/gnu/packages/lxqt.scm
@@ -591,7 +591,8 @@ of other programs.")
("qtsvg" ,qtsvg)
("qtx11extras" ,qtx11extras)
("solid" ,solid)
- ("xcb-util" ,xcb-util)))
+ ("xcb-util" ,xcb-util)
+ ("xkeyboard-config" ,xkeyboard-config)))
(native-inputs
`(("pkg-config" ,pkg-config)
("lxqt-build-tools" ,lxqt-build-tools)
@@ -619,7 +620,15 @@ of other programs.")
(("\\$\\{LXQT_TRANSLATIONS_DIR\\}")
(string-append (assoc-ref outputs "out")
"/share/lxqt/translations")))
- #t)))))
+ #t))
+ (add-after 'unpack 'set-xkeyboard-config-file-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Set the path to xkeyboard-config.
+ (let ((xkb (assoc-ref inputs "xkeyboard-config")))
+ (substitute* "plugin-kbindicator/src/x11/kbdlayout.cpp"
+ (("/usr/share/X11/xkb/rules/evdev.xml")
+ (string-append xkb "/share/X11/xkb/rules/evdev.xml")))
+ #t))))))
(home-page "https://lxqt.github.io")
(synopsis "The LXQt desktop panel")
(description "lxqt-panel represents the taskbar of LXQt.")
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 05646dd770..89345fa5fd 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -660,42 +660,6 @@ synchronization, thread-safety, concurrent data structures, and non-blocking
I/O.")
(license license:asl2.0)))
-(define-public r-adaptivesparsity
- (package
- (name "r-adaptivesparsity")
- (version "1.6")
- (source (origin
- (method url-fetch)
- (uri (cran-uri "AdaptiveSparsity" version))
- (sha256
- (base32
- "0imr5m8mll9j6n4icsv6z9rl5kbnwsp9wvzrg7n90nnmcxq2cz91"))))
- (properties
- `((upstream-name . "AdaptiveSparsity")))
- (build-system r-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'link-against-armadillo
- (lambda _
- (substitute* "src/Makevars"
- (("PKG_LIBS=" prefix)
- (string-append prefix "-larmadillo"))))))))
- (propagated-inputs
- `(("r-mass" ,r-mass)
- ("r-matrix" ,r-matrix)
- ("r-rcpp" ,r-rcpp)
- ("r-rcpparmadillo" ,r-rcpparmadillo)))
- (inputs
- `(("armadillo" ,armadillo)))
- (home-page "https://cran.r-project.org/web/packages/AdaptiveSparsity")
- (synopsis "Adaptive sparsity models")
- (description
- "This package implements the Figueiredo machine learning algorithm for
-adaptive sparsity and the Wong algorithm for adaptively sparse gaussian
-geometric models.")
- (license license:lgpl3+)))
-
(define-public gemmlowp-for-tensorflow
;; The commit hash is taken from "tensorflow/workspace.bzl".
(let ((commit "38ebac7b059e84692f53e5938f97a9943c120d98")
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index beee68c67d..4a9c6fc90f 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -395,7 +395,7 @@ to run without any changes.")
(define-public fetchmail
(package
(name "fetchmail")
- (version "6.4.11")
+ (version "6.4.12")
(source
(origin
(method url-fetch)
@@ -403,7 +403,7 @@ to run without any changes.")
(version-major+minor version) "/"
"fetchmail-" version ".tar.xz"))
(sha256
- (base32 "177276dha2pchsvlki0skf460kmjnixqmzc6nj33fz4hd7c1sj1y"))))
+ (base32 "11s83af63gs9nnrjb66yq58xriyvi8hzj4ykxp3kws5z3nby111b"))))
(build-system gnu-build-system)
(inputs
`(("openssl" ,openssl)))
@@ -928,20 +928,14 @@ invoking @command{notifymuch} from the post-new hook.")
(define-public notmuch
(package
(name "notmuch")
- (version "0.30-0.31rc1") ; Ensure it is ordered before "0.31"
+ (version "0.31")
(source (origin
(method url-fetch)
(uri (string-append "https://notmuchmail.org/releases/notmuch-"
- ;; version
- "0.31~rc1" ;FIXME: Remove on the next update
- ".tar.xz"))
- ;; FIXME: The 'file-name' field below is needed only because of
- ;; the tilde "~" in the URL base name. Remove it when the tilde
- ;; is no longer there.
- (file-name (string-append name "-" version ".tar.xz"))
+ version ".tar.xz"))
(sha256
(base32
- "11f10r9pp3p22afpfsrlz0xa0raas4w7fg2jkscgkjj5710ws8fw"))))
+ "1543l57viqzqikjgfzp2abpwz3p0k2iq0b1b3wmn31lwaghs07sp"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
@@ -973,7 +967,7 @@ invoking @command{notifymuch} from the post-new hook.")
(string-append "--emacsetcdir=" elisp)))))
(add-before 'check 'disable-failing-tests
;; FIXME: Investigate why these tests are failing,
- ;; and try removing this for notmuch versions >= 0.31.
+ ;; and try removing this for notmuch versions > 0.31.
(lambda _
(substitute* "test/T356-protected-headers.sh"
(("\\$NOTMUCH_GMIME_X509_CERT_VALIDITY") "0"))
@@ -1149,7 +1143,7 @@ useful features.")
(define-public libetpan
(package
(name "libetpan")
- (version "1.9.3")
+ (version "1.9.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1157,7 +1151,7 @@ useful features.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "19g4qskg71jv7sxfxsdkjmrxk9mk5kf9b6fhw06g6wvm3205n95f"))))
+ (base32 "0g7an003simfdn7ihg9yjv7hl2czsmjsndjrp39i7cad8icixscn"))))
(build-system gnu-build-system)
(native-inputs `(("autoconf" ,autoconf-wrapper)
("automake" ,automake)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 97f57ddd24..df4d39f900 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -2668,7 +2668,7 @@ bindings to almost all functions of SLEPc.")
(define-public metamath
(package
(name "metamath")
- (version "0.183")
+ (version "0.192")
(source
(origin
(method git-fetch)
@@ -2677,7 +2677,7 @@ bindings to almost all functions of SLEPc.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1jjf4fy6j53i40dh0yv0f9sngnw4gs24cig99vsg3q0303pwrhg7"))))
+ (base32 "1k31zw36h2b0w5r6sbn9qc0v4hj42vw53qlhf5l7q2h3p5qlzvic"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 0116d16872..b8ae456cc1 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -80,6 +80,7 @@
#:use-module (gnu packages lua)
#:use-module (gnu packages man)
#:use-module (gnu packages markup)
+ #:use-module (gnu packages mpd)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
#:use-module (gnu packages pcre)
@@ -94,6 +95,7 @@
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages sphinx)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tcl)
#:use-module (gnu packages texinfo)
@@ -120,6 +122,59 @@
#:use-module (guix packages)
#:use-module (guix utils))
+(define-public poezio
+ (package
+ (name "poezio")
+ (version "0.13.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://lab.louiz.org/poezio/poezio.git")
+ (commit
+ (string-append "v" version))))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32 "041y61pcbdb86s04qwp8s1g6bp84yskc7vdizwpi2hz18y01x5fy"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* "setup.py"
+ (("'CC', 'cc'")
+ "'CC', 'gcc'"))
+ #t)))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("python-setuptools" ,python-setuptools)
+ ("python-sphinx" ,python-sphinx)))
+ (inputs
+ `(("python-mpd2" ,python-mpd2)
+ ("python-potr" ,python-potr)
+ ("python-pyasn1" ,python-pyasn1)
+ ("python-pyasn1-modules" ,python-pyasn1-modules)
+ ("python-pygments" ,python-pygments)
+ ("python-pyinotify" ,python-pyinotify)
+ ;("python" ,python)
+ ("python-qrcode" ,python-qrcode)
+ ("python-slixmpp" ,python-slixmpp)))
+ (synopsis "Console Jabber/XMPP Client")
+ (description "Poezio is a free console XMPP client (the protocol on which
+the Jabber IM network is built).
+Its goal is to let you connect very easily (no account creation needed) to the
+network and join various chatrooms, immediately. It tries to look like the
+most famous IRC clients (weechat, irssi, etc). Many commands are identical and
+you won't be lost if you already know these clients. Configuration can be
+made in a configuration file or directly from the client.
+You'll find the light, fast, geeky and anonymous spirit of IRC while using a
+powerful, standard and open protocol.")
+ (home-page "https://poez.io/en/")
+ (license license:zlib)))
+
(define-public libotr
(package
(name "libotr")
@@ -593,14 +648,14 @@ compromised.")
(define-public znc
(package
(name "znc")
- (version "1.8.1")
+ (version "1.8.2")
(source (origin
(method url-fetch)
(uri (string-append "https://znc.in/releases/archive/znc-"
version ".tar.gz"))
(sha256
(base32
- "0hb1v167aa6gv5bcwz352l6b8gnd74ymjw92y4x882l099hzg59i"))))
+ "03fyi0j44zcanj1rsdx93hkdskwfvhbywjiwd17f9q1a7yp8l8zz"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
@@ -1575,15 +1630,14 @@ protocol allows.")
(define-public mcabber
(package
(name "mcabber")
- (version "1.1.0")
+ (version "1.1.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://mcabber.com/files/"
name "-" version ".tar.bz2"))
(sha256
- (base32
- "1ggh865p1rf10ffsnf4g6qv9i8bls36dxdb1nzs5r9vdqci2rz04"))))
+ (base32 "0ngrcc8nzpzk4vw36ni3w073149zsi0yjh922xy9cy5a7srwx2fp"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags (list "--enable-otr"
@@ -2043,13 +2097,13 @@ QMatrixClient project.")
(define-public hangups
(package
(name "hangups")
- (version "0.4.10")
+ (version "0.4.11")
(source
(origin
(method url-fetch)
(uri (pypi-uri "hangups" version))
(sha256
- (base32 "0ww9z9kcb02pwnr8q1ll31wkzspc1fci1ly8ifrwzxysp4rxy3j5"))))
+ (base32 "165lravvlsgkv6pp3vgg785ihycvs43qzqxw2d2yygrc6pbhqlyv"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -2294,4 +2348,33 @@ as well as on desktop platforms. It's based on libpurple and ModemManager.")
(home-page "https://source.puri.sm/Librem5/chatty")
(license license:gpl3+)))
+(define-public mosquitto
+ (package
+ (name "mosquitto")
+ (version "1.6.12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://mosquitto.org/files/source/mosquitto-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1yq7y329baa1ly488rw125c3mvsnsa7kjkik602xv1xpkz8p73al"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("openssl" ,openssl)))
+ (synopsis "Message broker")
+ (description "This package provides Eclipse Mosquitto, a message broker
+that implements the MQTT protocol versions 5.0, 3.1.1 and 3.1. Mosquitto
+is lightweight and is suitable for use on all devices from low power single
+board computers to full servers.
+
+The MQTT protocol provides a lightweight method of carrying out messaging
+using a publish/subscribe model. This makes it suitable for Internet of
+Things messaging such as with low power sensors or mobile devices such
+as phones, embedded computers or microcontrollers.")
+ (home-page "https://mosquitto.org/")
+ ;; Dual licensed.
+ (license (list license:epl1.0 license:edl1.0))))
+
;;; messaging.scm ends here
diff --git a/gnu/packages/moreutils.scm b/gnu/packages/moreutils.scm
index 12d93079c0..55a6d0b568 100644
--- a/gnu/packages/moreutils.scm
+++ b/gnu/packages/moreutils.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -30,7 +30,7 @@
(define-public moreutils
(package
(name "moreutils")
- (version "0.63")
+ (version "0.64")
(source
(origin
(method url-fetch)
@@ -42,8 +42,7 @@
"http://drabczyk.org/"
name "-" version ".tar.gz")))
(sha256
- (base32
- "07c3wqf1sx3nhj4cs71a9ajcfl6arjjvvnhwqz7a0xm2m1b6vj2g"))))
+ (base32 "1v3hazb9i5y6b3vx4giiszvc2zk2pjjvq88xlk1maasw5ia07lpy"))))
(build-system gnu-build-system)
;; For building the manual pages.
(native-inputs
diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index 7ee009df74..fdc8ba801f 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2017, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
@@ -174,7 +174,18 @@ a highly stable and efficient implementation.")
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; Tests are not ran with BUILD_SHARED_LIBS on.
- #:configure-flags (list "-DBUILD_SHARED_LIBS=ON")))
+ #:configure-flags (list "-DBUILD_SHARED_LIBS=ON")
+ #:phases (modify-phases %standard-phases
+ (add-before 'configure 'adjust-zlib-ldflags
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Make sure users of 'taglib-config --libs' get the -L
+ ;; flag for zlib.
+ (substitute* "CMakeLists.txt"
+ (("set\\(ZLIB_LIBRARIES_FLAGS -lz\\)")
+ (string-append "set(ZLIB_LIBRARIES_FLAGS \"-L"
+ (assoc-ref inputs "zlib")
+ "/lib -lz\")")))
+ #t)))))
(inputs `(("zlib" ,zlib)))
(home-page "https://taglib.org")
(synopsis "Library to access audio file meta-data")
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 2b7fc7c72b..35d75d274a 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -504,7 +504,7 @@ settings (aliasing, linear interpolation and cubic interpolation).")
(define-public hydrogen
(package
(name "hydrogen")
- (version "1.0.0")
+ (version "1.0.1")
(source
(origin
(method git-fetch)
@@ -513,7 +513,7 @@ settings (aliasing, linear interpolation and cubic interpolation).")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1kwlqfah0yk135i0rzmbbgnqdzxrzg9yslii5asl4ip9x4dc1w3r"))))
+ (base32 "0snljpvbcgikhz610c325dgvayi0k512p3bglck9vvi90wsqx7l1"))))
(build-system cmake-build-system)
(arguments
`(#:test-target "tests"
@@ -1231,7 +1231,7 @@ device supports.")
(define-public bsequencer
(package
(name "bsequencer")
- (version "1.2.0")
+ (version "1.6.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1240,7 +1240,7 @@ device supports.")
(file-name (git-file-name name version))
(sha256
(base32
- "08xwz5v8wrar0rx7qdr9pkpjz2k9sw6bn5glhpn6sp6453fabf8q"))))
+ "0w21kzq695xy4i1r6xvvh7sad5m0rlmdgc7ykmrlzfsm1252dz80"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
@@ -1266,17 +1266,17 @@ with a selectable pattern matrix size.")
(package
(inherit bsequencer)
(name "bchoppr")
- (version "1.4.2")
+ (version "1.8.0")
(source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/sjaehn/BChoppr")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1ympx0kyn3mkb23xgd44rlrf4qnngnlkmikz9syhayklgax7ijgm"))))
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sjaehn/BChoppr")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1nd6byy75f0rbz9dm9drhxmpsfhxhg0y7q3v2m3098llynhy9k2j"))))
(synopsis "Audio stream-chopping LV2 plugin")
(description "B.Choppr cuts the audio input stream into a repeated
sequence of up to 16 chops. Each chop can be leveled up or down (gating).
@@ -1307,17 +1307,17 @@ B.Choppr is the successor of B.Slizr.")
(package
(inherit bsequencer)
(name "bjumblr")
- (version "0.2")
+ (version "1.4.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sjaehn/BJumblr")
- (commit (string-append "v" version))))
+ (commit version)))
(file-name (git-file-name name version))
(sha256
(base32
- "14z8113zkwykbhm1a8h2xs972dgifvlfij92b08jckyc7cbz84ys"))))
+ "0kl6hrxmqrdf0195bfnzsa2h1073fgiqrfhg2276fm1954sm994v"))))
(inputs
`(("cairo", cairo)
("libsndfile", libsndfile)
@@ -1328,6 +1328,47 @@ re-sequencer LV2 plugin.")
(home-page "https://github.com/sjaehn/BJumblr")
(license license:gpl3+)))
+(define-public bschaffl
+ (package
+ (inherit bsequencer)
+ (name "bschaffl")
+ (version "1.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sjaehn/BSchaffl")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1c09acqrbd387ba41f8ch1qykdap5h6cg9if5pgd16i4dmjnpghj"))))
+ (inputs
+ `(("cairo", cairo)
+ ("fontconfig" ,fontconfig)
+ ("libsndfile", libsndfile)
+ ("libx11" ,libx11)
+ ("lv2", lv2)))
+ (home-page "https://github.com/sjaehn/BSchaffl")
+ (synopsis "Pattern-controlled MIDI amp & time stretch LV2 plugin")
+ (description "This package provides an LV2 plugin that allows for
+pattern-controlled MIDI amp & time stretching to produce shuffle / swing
+effects.
+
+Key features include:
+
+@enumerate
+@item MIDI velocity amplification and timing manipulation plugin
+@item Swing and shuffle rhythms
+@item Pre-generator dynamics
+@item Tempo rubato
+@item Pattern (sliders) or shape-controlled
+@item MIDI filters
+@item Smart quantization
+@end itemize
+")
+ (license license:gpl3+)))
+
(define-public solfege
(package
(name "solfege")
@@ -1410,46 +1451,42 @@ your own lessons.")
(license license:gpl3+)))
(define-public powertabeditor
- ;; This commit is after the switch from catch2 to doctest; I couldn't build
- ;; powertabeditor with catch2.
- (let ((commit "c5d39b25b75bf87ec693a3ac5018823b1d87f277")
- (revision "1"))
- (package
- (name "powertabeditor")
- (version (git-version "2.0.0-alpha12" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/powertab/powertabeditor")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "16qhqfvk14bp7s8cwr8ds8zfd80pq603d7aymr7967pnb49kic5z"))))
- (build-system cmake-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check (lambda _ (invoke "bin/pte_tests"))))))
- (inputs
- `(("alsa-lib" ,alsa-lib)
- ("boost" ,boost)
- ("minizip" ,minizip)
- ("pugixml" ,pugixml)
- ("qtbase" ,qtbase)
- ("rapidjson" ,rapidjson)
- ("rtmidi" ,rtmidi)
- ("timidity" ,timidity++)
- ("zlib" ,zlib)))
- (native-inputs
- `(("doctest" ,doctest)
- ("pkg-config" ,pkg-config)))
- (home-page "https://github.com/powertab/powertabedito")
- (synopsis "Guitar tablature editor")
- (description
- "Power Tab Editor 2.0 is the successor to the famous original Power Tab
+ (package
+ (name "powertabeditor")
+ (version "2.0.0-alpha13")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/powertab/powertabeditor")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "12il5xzgg53ick5k4ivvvqdagld5pgigiiz6s829kkdaymqr7vx5"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check (lambda _ (invoke "bin/pte_tests"))))))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("boost" ,boost)
+ ("minizip" ,minizip)
+ ("pugixml" ,pugixml)
+ ("qtbase" ,qtbase)
+ ("rapidjson" ,rapidjson)
+ ("rtmidi" ,rtmidi)
+ ("timidity" ,timidity++)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("doctest" ,doctest)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/powertab/powertabedito")
+ (synopsis "Guitar tablature editor")
+ (description
+ "Power Tab Editor 2.0 is the successor to the famous original Power Tab
Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.")
- (license license:gpl3+))))
+ (license license:gpl3+)))
(define-public jalv-select
(package
@@ -1501,7 +1538,7 @@ users to select LV2 plugins and run them with jalv.")
(define-public synthv1
(package
(name "synthv1")
- (version "0.9.16")
+ (version "0.9.17")
(source (origin
(method url-fetch)
(uri
@@ -1509,7 +1546,7 @@ users to select LV2 plugins and run them with jalv.")
"/synthv1-" version ".tar.gz"))
(sha256
(base32
- "1k5sm6s2d5di5yk0bxwy3nizq9m1ym46b4qz2m45nm3zspkbzybp"))))
+ "0jc2drk5dzsaa6vxmk1hyi0zp02zm3mzar3arssfy5vcyc5ig6sk"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ; there are no tests
@@ -1533,7 +1570,7 @@ oscillators and stereo effects.")
(define-public drumkv1
(package
(name "drumkv1")
- (version "0.9.16")
+ (version "0.9.17")
(source (origin
(method url-fetch)
(uri
@@ -1541,7 +1578,7 @@ oscillators and stereo effects.")
"/drumkv1-" version ".tar.gz"))
(sha256
(base32
- "1r55575w9r0ifysw9mgxjvv0fszvx8ykjgim3zczf3mb5s9ngavv"))))
+ "198fyc5dwjn679si86vy139ngym4n3mdy1z4vfjikn7b6mriq1x2"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ; there are no tests
@@ -1566,7 +1603,7 @@ effects.")
(define-public samplv1
(package
(name "samplv1")
- (version "0.9.16")
+ (version "0.9.17")
(source (origin
(method url-fetch)
(uri
@@ -1574,7 +1611,7 @@ effects.")
"/samplv1-" version ".tar.gz"))
(sha256
(base32
- "0k5vpjd4wv7h0s3f7gg07a2ksw0b010yvkwmadzzvv2qfb928grm"))))
+ "1v21r722m027jjy4x6lm5cvzapsnpx36r10ar543ay0hgmygl322"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ; there are no tests
@@ -1599,7 +1636,7 @@ effects.")
(define-public padthv1
(package
(name "padthv1")
- (version "0.9.16")
+ (version "0.9.17")
(source (origin
(method url-fetch)
(uri
@@ -1607,7 +1644,7 @@ effects.")
"/padthv1-" version ".tar.gz"))
(sha256
(base32
- "1f2v60dpja0rnml60g463fjiz0f84v32yjwpvr56z79h1i6fssmv"))))
+ "098fk8fwcgssnfr1gilqg8g17zvch62lrn3rqsswpzbr3an5adb3"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ; there are no tests
@@ -1617,7 +1654,7 @@ effects.")
("alsa-lib" ,alsa-lib)
("non-session-manager" ,non-session-manager)
("liblo" ,liblo)
- ("fftw" ,fftw)
+ ("fftwf" ,fftwf)
("qtbase" ,qtbase)))
(native-inputs
`(("pkg-config" ,pkg-config)
@@ -4993,7 +5030,7 @@ applications.")
(define-public sherlock-lv2
(package
(name "sherlock-lv2")
- (version "0.20.0")
+ (version "0.24.0")
(source
(origin
(method url-fetch)
@@ -5003,10 +5040,11 @@ applications.")
version ".tar.xz"))
(sha256
(base32
- "1c5xajpss9h8lbyx160bbzg8va50n2d74qwnxig9sf468rzmha1y"))))
+ "08gjfx7vrsx9zvj04j8cr3vscxmq6jr2hbdi6dfgp1l1dnnpxsgq"))))
(build-system meson-build-system)
(inputs
- `(("libx11" ,libx11)
+ `(("glu" ,glu)
+ ("libx11" ,libx11)
("mesa" ,mesa)
("sratom" ,sratom)))
(native-inputs
@@ -5019,6 +5057,49 @@ and debugging of event signal flows inside plugin graphs.")
(home-page "https://open-music-kontrollers.ch/lv2/sherlock/")
(license license:artistic2.0)))
+(define-public foo-yc20
+ (package
+ (name "foo-yc20")
+ (version "1.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/sampov2/foo-yc20/releases/download/"
+ version "/foo-yc20-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "1drzfyr7mzb58pdv0gsqkg6ds6kbgp6g25rrv1yya1611cljgvjh"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags
+ (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:tests? #f ; no automated test
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (substitute* "Makefile"
+ (("-mtune=native") "")
+ (("-march=native") ""))
+ #t)))))
+ (inputs
+ `(("jack" ,jack-1)
+ ("lv2" ,lv2)
+ ("cairo" ,cairo)
+ ("gtk" ,gtk+-2)))
+ (native-inputs
+ `(("faust" ,faust)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://foo-yc20.codeforcode.com/")
+ (synopsis "Implementation of Yamaha YC-20 combo organ from 1969")
+ (description "This is a Faust implementation of a 1969 designed Yamaha
+combo organ, the YC-20. This package provides an LV2 plugin and a standalone
+version. Processing for the organ is based on original schematics and
+measurements from a working specimen. This instrument simulates the circutry
+as a whole to realisticly reproduce the features and flaws of the real deal.")
+ ;; Note that after 1.3.0 the license was changed.
+ (license license:gpl3+)))
+
(define-public spectacle-analyzer
(package
(name "spectacle-analyzer")
@@ -5169,7 +5250,7 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.")
(define-public geonkick
(package
(name "geonkick")
- (version "1.10.0")
+ (version "2.3.7")
(source
(origin
(method git-fetch)
@@ -5179,7 +5260,7 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.")
(file-name (git-file-name name version))
(sha256
(base32
- "1a59wnm4035kjhs66hihlkiv45p3ffb2yaj1awvyyi5f0lds5zvh"))))
+ "1wdcbwiyy6i5agq5lffkyilyc8mv1cc4mp9h0nybn240vb2flqc2"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no tests included
@@ -5198,6 +5279,8 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.")
("rapidjson" ,rapidjson)))
(native-inputs
`(("lv2" ,lv2)
+ ;; Fails with default gcc (#include <filesystem> not found).
+ ("gcc" ,gcc-9)
("pkg-config" ,pkg-config)
("sord" ,sord)))
(synopsis "Percussion synthesizer")
@@ -5419,7 +5502,7 @@ plugin support, JACK support and chord assistance.")
(define-public dragonfly-reverb
(package
(name "dragonfly-reverb")
- (version "3.0.0")
+ (version "3.2.1")
(source
(origin
(method git-fetch)
@@ -5431,7 +5514,7 @@ plugin support, JACK support and chord assistance.")
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
- (base32 "1z2x33lzpd26dv1p29ca7vy8mjfzkfpin35iq46spwd9k3sqn1ja"))))
+ (base32 "0vfm2510shah67k87mdyar4wr4vqwii59y9lqfhwm6blxparkrqa"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no check target
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 6e865c28f9..1612cf0822 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -2107,14 +2107,14 @@ HTTP proxies.")
(define-public enet
(package
(name "enet")
- (version "1.3.15")
- (source (origin
- (method url-fetch)
- (uri (string-append "http://enet.bespin.org/download/"
- "enet-" version ".tar.gz"))
- (sha256
- (base32
- "1yxxf9bkx6dx3j8j70fj17c05likyfibb1419ls74hp58qrzdgas"))))
+ (version "1.3.16")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://enet.bespin.org/download/"
+ "enet-" version ".tar.gz"))
+ (sha256
+ (base32 "1lggc82rbzscci057dqqyhkbq4j6mr5k01hbrvn06jkzc2xpxdxv"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -3428,14 +3428,14 @@ maximum extent possible.")
(define-public batctl
(package
(name "batctl")
- (version "2020.1")
+ (version "2020.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://downloads.open-mesh.org/batman/releases/batman-adv-"
version "/batctl-" version ".tar.gz"))
(sha256
- (base32 "0fy252q1my3a57v6pfz8i97h6zv7v03di01dhwjkj47pqnx1rqm3"))))
+ (base32 "0r2w2v4sy6wgr7mp9lc7yj9k4ldsbsm3425rjil7p0b17zmzf4rm"))))
(inputs
`(("libnl" ,libnl)))
(native-inputs
@@ -3461,7 +3461,7 @@ module @code{batman-adv}, for Layer 2.")
(define-public pagekite
(package
(name "pagekite")
- (version "1.5.2.200603")
+ (version "1.5.2.200725")
(source
(origin
(method git-fetch)
@@ -3470,7 +3470,7 @@ module @code{batman-adv}, for Layer 2.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "08rcyr54dssnpand6y26f8x9cjmd91hr44my08kxw70s5iqiwizv"))))
+ (base32 "0lig1i42bn9isw848vnml5qhcaa04x1dr2hb075bm0a3439kv3rr"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -3673,15 +3673,14 @@ thousands of connections is clearly realistic with today's hardware.")
(define-public lldpd
(package
(name "lldpd")
- (version "1.0.5")
+ (version "1.0.6")
(source
(origin
(method url-fetch)
(uri (string-append "https://media.luffy.cx/files/lldpd/lldpd-"
version ".tar.gz"))
(sha256
- (base32
- "16fbqrs3l976gdslx647nds8x7sz4h5h3h4l4yxzrayvyh9b5lrd"))
+ (base32 "1v5fd8vwxracvzvgrsswvhppwyx5c4srj89g1cnvy73w831mpq95"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -3762,3 +3761,28 @@ hashcash stamps efficiently.
This package contains a command-line tool for computing and verifying hashcash
stamps.")
(license license:public-domain)))
+
+(define-public nbd
+ (package
+ (name "nbd")
+ (version "3.20")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/nbd/nbd/3.20/nbd-" version
+ ".tar.xz"))
+ (sha256
+ (base32
+ "1kfnyx52nna2mnw264njk1dl2zc8m78sz031yp65mbmpi99v7qg0"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("glib" ,glib)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (home-page "https://nbd.sourceforge.io/")
+ (synopsis "NBD client and server")
+ (description "This package provides the NBD (Network Block Devices)
+client and server. It allows you to use remote block devices over a TCP/IP
+network.")
+ (license license:gpl2)))
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index ed0b5c4f16..f0b989b88a 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -25,6 +25,7 @@
(define-module (gnu packages node)
#:use-module ((guix licenses) #:select (expat))
+ #:use-module ((guix build utils) #:select (alist-replace))
#:use-module (guix packages)
#:use-module (guix derivations)
#:use-module (guix download)
@@ -47,14 +48,14 @@
(define-public node
(package
(name "node")
- (version "10.22.0")
+ (version "10.20.0")
(source (origin
(method url-fetch)
(uri (string-append "https://nodejs.org/dist/v" version
"/node-v" version ".tar.xz"))
(sha256
(base32
- "1nz18fa550li10r0kzsm28c2rvvq61nq8bqdygip0rmvbi2paxg0"))
+ "0cvjwnl0wkcsyw3kannbdv01s235wrnp11n2s6swzjx95gpichfi"))
(modules '((guix build utils)))
(snippet
`(begin
@@ -186,7 +187,7 @@
("http-parser" ,http-parser)
("icu4c" ,icu4c)
("libuv" ,libuv)
- ("nghttp2" ,nghttp2-1.41 "lib")
+ ("nghttp2" ,nghttp2 "lib")
("openssl" ,openssl)
("zlib" ,zlib)))
(synopsis "Evented I/O for V8 JavaScript")
@@ -200,6 +201,24 @@ devices.")
(properties '((max-silent-time . 7200) ;2h, needed on ARM
(timeout . 21600))))) ;6h
+;; TODO: Make this the default node on core-updates. This cannot be done on
+;; master since this version of node requires a newer nghttp2 library at link
+;; time.
+(define-public node-10.22
+ (package
+ (inherit node)
+ (version "10.22.0")
+ (source (origin
+ (inherit (package-source node))
+ (uri (string-append "https://nodejs.org/dist/v" version
+ "/node-v" version ".tar.xz"))
+ (sha256
+ (base32
+ "1nz18fa550li10r0kzsm28c2rvvq61nq8bqdygip0rmvbi2paxg0"))))
+ (inputs
+ (alist-replace "nghttp2" (list nghttp2-1.41 "lib")
+ (package-inputs node)))))
+
(define-public libnode
(package
(inherit node)
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 11aae911c2..bcd7c6982f 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -1148,15 +1148,15 @@ for packaging and deployment of cross-compiled Windows applications.")
(define-public libostree
(package
(name "libostree")
- (version "2020.5")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/ostreedev/ostree/releases/download/v"
- (version-major+minor version) "/libostree-" version ".tar.xz"))
- (sha256
- (base32
- "1k92177hjalbdpmg45ymwwrni68vh9rs5x9zvy5fzl9lng12fgpb"))))
+ (version "2020.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/ostreedev/ostree/releases/download/v"
+ (version-major+minor version) "/libostree-" version ".tar.xz"))
+ (sha256
+ (base32 "0wk9fgj9jl25ns2hcgcb6j24k5mvfn13b02ka0p8l4hdh8c4hpc6"))))
(build-system gnu-build-system)
(arguments
'(#:phases
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 4ffd3ceff1..85dbeef28f 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -719,7 +719,7 @@ using password-store through rofi interface:
(define-public browserpass-native
(package
(name "browserpass-native")
- (version "3.0.6")
+ (version "3.0.7")
(source
(origin
(method git-fetch)
@@ -729,7 +729,7 @@ using password-store through rofi interface:
(file-name (git-file-name name version))
(sha256
(base32
- "0q3bsla07zjl6i69nj1axbkg2ia89pvh0jg6nlqgbm2kpzzbn0pz"))))
+ "1jkjslbbac49xjyjkc2b07phdm3i64z40kh6h55cl22dxjmpp1nb"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/browserpass/browserpass-native"
diff --git a/gnu/packages/patches/genimage-signedness.patch b/gnu/packages/patches/genimage-signedness.patch
new file mode 100644
index 0000000000..2204dfb545
--- /dev/null
+++ b/gnu/packages/patches/genimage-signedness.patch
@@ -0,0 +1,24 @@
+commit 6574665f9d6c0757e8f55ccb465afbcaa90bf019
+Author: Timotej Lazar <timotej.lazar@araneo.si>
+Date: Wed Aug 19 19:36:02 2020 +0200
+
+ test: normalize flags reported by dumpe2fs
+
+ Filesystem flags depend on the system – usually signed_directory_hash,
+ but unsigned_directory_hash at least on arm64.
+
+ Signed-off-by: Timotej Lazar <timotej.lazar@araneo.si>
+
+diff --git a/test/basic-images.test b/test/basic-images.test
+index f6685e1..cb104c3 100755
+--- a/test/basic-images.test
++++ b/test/basic-images.test
+@@ -158,6 +158,8 @@ check_ext() {
+ # format change
+ csum2="Group 0: (Blocks 1-4095) \\[ITABLE_ZEROED\\]\| Checksum .*, unused inodes 205"
+ dumpe2fs "${1}" | grep -v "^\($uuid\|$seed\|$csum1\|$csum2\)" > "dump" &&
++ # some architectures (including arm64) use unsigned char
++ sed -i 's/un\(signed_directory_hash\)/\1/' "dump" &&
+ # fixup for ext3 journal size with old tune2fs
+ sed -i 's/^\(Journal size: \)1029k$/\11024k/' "dump" &&
+ # output format changed with some version
diff --git a/gnu/packages/patches/sbcl-graph-asdf-definitions.patch b/gnu/packages/patches/sbcl-graph-asdf-definitions.patch
deleted file mode 100644
index ec17949675..0000000000
--- a/gnu/packages/patches/sbcl-graph-asdf-definitions.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-commit 52ebece1243ae6900e414b6248b5145a28348eef
-Author: Guillaume Le Vaillant <glv@posteo.net>
-Date: Fri Oct 18 15:41:23 2019 +0200
-
- Use basic ASDF system definitions instead of package-inferred-system
-
-diff --git a/graph.asd b/graph.asd
-index 193b6e3..56afc8f 100644
---- a/graph.asd
-+++ b/graph.asd
-@@ -3,12 +3,10 @@
- :version "0.0.0"
- :author ("Eric Schulte <schulte.eric@gmail.com>" "Thomas Dye")
- :licence "GPL V3"
-- :class :package-inferred-system
-- :defsystem-depends-on (:asdf-package-system)
-+ :in-order-to ((test-op (test-op graph-test)))
- :depends-on (alexandria
- metabang-bind
- named-readtables
- curry-compose-reader-macros
-- graph/graph))
--
--(register-system-packages "femlisp-matlisp" '(:fl.matlisp))
-+ cl-heap)
-+ :components ((:file "graph")))
-diff --git a/graph-dot.asd b/graph-dot.asd
-new file mode 100644
-index 0000000..12aec7e
---- /dev/null
-+++ b/graph-dot.asd
-@@ -0,0 +1,8 @@
-+(defsystem :graph-dot
-+ :depends-on (alexandria
-+ metabang-bind
-+ named-readtables
-+ curry-compose-reader-macros
-+ cl-ppcre
-+ graph)
-+ :components ((:file "dot")))
-diff --git a/graph-json.asd b/graph-json.asd
-new file mode 100644
-index 0000000..e7d091f
---- /dev/null
-+++ b/graph-json.asd
-@@ -0,0 +1,8 @@
-+(defsystem :graph-json
-+ :depends-on (alexandria
-+ metabang-bind
-+ named-readtables
-+ curry-compose-reader-macros
-+ yason
-+ graph)
-+ :components ((:file "json")))
-diff --git a/graph-test.asd b/graph-test.asd
-new file mode 100644
-index 0000000..1e811e1
---- /dev/null
-+++ b/graph-test.asd
-@@ -0,0 +1,10 @@
-+(defsystem :graph-test
-+ :depends-on (alexandria
-+ metabang-bind
-+ named-readtables
-+ curry-compose-reader-macros
-+ graph
-+ stefil)
-+ :perform (test-op (o s)
-+ (uiop:symbol-call :graph/test 'test))
-+ :components ((:file "test")))
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 7649bff695..4c11111323 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -848,6 +848,14 @@ using a stylus.")
(for-each (lambda (po) (chmod po #o666))
(find-files "." "\\.po$"))
#t))
+ ;; Fix path to addr2line utility, which the crash reporter uses.
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/util/Stacktrace.cpp"
+ ;; Match only the commandline.
+ (("\"addr2line ")
+ (string-append "\"" (which "addr2line") " ")))
+ #t))
(add-after 'install 'glib-or-gtk-wrap
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
(native-inputs
diff --git a/gnu/packages/phabricator.scm b/gnu/packages/phabricator.scm
index e4a4f79942..af95cd93d2 100644
--- a/gnu/packages/phabricator.scm
+++ b/gnu/packages/phabricator.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Robin Templeton <robin@igalia.com>
+;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,48 +25,9 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages))
-(define-public libphutil
- (let ((commit "b29d76e1709ef018cc5edc7c03033fd9fdebc578")
- (revision "1"))
- (package
- (name "libphutil")
- (version (git-version "0.0.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/phacility/libphutil")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "06j84721r9r8624fmil62b5crs2qs0v6rr3cvv2zvkvwhxwrwv1l"))))
- (build-system gnu-build-system)
- ;; TODO: Unbundle jsonlint and porter-stemmer.
- (arguments
- '(#:tests? #f
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (delete 'build)
- (replace 'install
- (lambda _
- (let ((lib (string-append %output "/lib/libphutil")))
- (mkdir-p lib)
- (copy-recursively "." lib))
- #t)))))
- (inputs
- `(("php" ,php)))
- (home-page "https://github.com/phacility/libphutil")
- (synopsis "PHP utility library")
- (description
- "@code{libphutil} is a collection of utility classes and functions for
-PHP.")
- ;; Bundled libraries are expat-licensed.
- (license (list license:asl2.0 license:expat)))))
-
(define-public arcanist
- (let ((commit "45a8d22c74a62624e69f5cd6ce901c9ab2658904")
- (revision "1"))
+ (let ((commit "ceb082ef6b2919d76a90d4a53ca84f5b1e0c2c06")
+ (revision "2"))
(package
(name "arcanist")
(version (git-version "0.0.0" revision commit))
@@ -77,8 +39,9 @@ PHP.")
(file-name (git-file-name name version))
(sha256
(base32
- "13vswhqy9sap6841y93j4mj71dl27vhcivcn3rzyi0cchkhg2ac9"))))
+ "16590nywh3cpm2yq4igw3nfa8g84kwza215mrnqr2k6b2cqzjak3"))))
(build-system gnu-build-system)
+ ;; TODO: Unbundle jsonlint
(arguments
'(#:tests? #f
#:phases
@@ -86,22 +49,20 @@ PHP.")
(delete 'configure)
(delete 'build)
(replace 'install
- (lambda _
- (let ((bin (string-append %output "/bin"))
- (lib (string-append %output "/lib/arcanist")))
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (lib (string-append out "/lib/arcanist")))
(mkdir-p lib)
(copy-recursively "." lib)
(mkdir-p bin)
(symlink (string-append lib "/bin/arc")
(string-append bin "/arc"))
(wrap-program (string-append bin "/arc")
- `("ARC_PHUTIL_PATH" =
- (,(string-append (assoc-ref %build-inputs "libphutil")
- "/lib/libphutil")))
`("PATH" ":" prefix
(,@(map (lambda (i)
(string-append (assoc-ref %build-inputs i) "/bin"))
- '("git" "mercurial" "subversion"))))))
+ '("php" "git" "mercurial" "subversion"))))))
#t))
(add-before 'reset-gzip-timestamps 'make-compressed-files-writable
(lambda _
@@ -110,7 +71,6 @@ PHP.")
#t)))))
(inputs
`(("php" ,php)
- ("libphutil" ,libphutil)
("git" ,git)
("mercurial" ,mercurial)
("subversion" ,subversion)))
@@ -121,4 +81,8 @@ PHP.")
development service. It allows you to interact with Phabricator installs to
send code for review, download patches, transfer files, view status, make API
calls, and various other things.")
- (license license:asl2.0))))
+ ;; Bundled libraries are expat-licensed.
+ (license (list license:asl2.0 license:expat)))))
+
+(define-public libphutil
+ (deprecated-package "libphutil" arcanist))
diff --git a/gnu/packages/piet.scm b/gnu/packages/piet.scm
new file mode 100644
index 0000000000..5282290456
--- /dev/null
+++ b/gnu/packages/piet.scm
@@ -0,0 +1,70 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Jesse Gibbons <jgibbons2357+guix@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages piet)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages gd)
+ #:use-module (gnu packages groff)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages tcl))
+
+(define-public npiet
+ (package
+ (name "npiet")
+ (version "1.3f")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://www.bertnase.de/npiet/npiet-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0nl59fhdqqr7nslxdirdn8nvlq5wws67c7jyx2ckbmxbc9h8bv9d"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap-binaries
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (wrap-program (string-append out "/bin/npietedit")
+ `("PATH" ":" prefix (,(dirname (which "wish")))))
+ #t))))))
+ (inputs
+ `(("gd" ,gd)
+ ("giflib" ,giflib)
+ ("libpng" ,libpng)
+ ("tk" ,tk)))
+ (native-inputs `(("groff" ,groff)))
+ (synopsis "Piet interpreter")
+ (description
+ "Npiet is an interpreter for the piet programming language. Instead of
+text, piet programs are pictures. Commands are determined based on changes in
+color.
+
+This package includes:
+@enumerate
+@item npiet, a piet interpreter with debugging capabilities
+@item npiet-foogol, a program that builds a piet program from foogol, an
+algol-like language
+@item npietedit, an editor for the piet programming language
+@end enumerate")
+ (home-page "https://www.bertnase.de/npiet/")
+ (license license:gpl2+)))
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index 9f9a746844..8e5d9ceafe 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -247,14 +247,14 @@ seen in a terminal.")
(define-public highlight
(package
(name "highlight")
- (version "3.54")
+ (version "3.58")
(source
(origin
(method url-fetch)
(uri (string-append "http://www.andre-simon.de/zip/highlight-"
version ".tar.bz2"))
(sha256
- (base32 "1l6nxk3vwd7rkxpq9aqisjyps89r008wzn3abh4566q6jigahl4a"))))
+ (base32 "1y25vc3nysdih4y9z6yqn1k3i6lgkbyqkmdaib2xyfpqw4djb06z"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index b8a0d67f3d..c0de32b207 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -698,6 +698,49 @@ rounds that are calibrated to the chosen timer.")
service processes for your tests with pytest.")
(license license:expat)))
+(define-public python-pytest-toolbox
+ (package
+ (name "python-pytest-toolbox")
+ (version "0.4")
+ (source
+ (origin
+ ;; No tests in the PyPI tarball.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/samuelcolvin/pytest-toolbox")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1wqkr3g5gmqdxmhzfsxbwy8pm3cadaj6a8cxq58w9bacly4hqbh0"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; Make the installed plugin discoverable by Pytest.
+ (add-installed-pythonpath inputs outputs)
+ (invoke "pytest" "-vv"))))))
+ (native-inputs
+ `(("python-coverage" ,python-coverage)
+ ("python-docutils" ,python-docutils)
+ ("python-flake8" ,python-flake8)
+ ("python-isort" ,python-isort)
+ ("python-pydantic" ,python-pydantic)
+ ("python-pyflakes" ,python-pyflakes)
+ ("python-pygments" ,python-pygments)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-isort" ,python-pytest-isort)
+ ("python-pytest-mock" ,python-pytest-mock)
+ ("python-pytest-sugar" ,python-pytest-sugar)))
+ (home-page "https://github.com/samuelcolvin/pytest-toolbox")
+ (synopsis "Numerous useful plugins for Pytest")
+ (description
+ "Pytest Toolbox contains many useful plugins for Pytest. Among them are
+new fixtures, new methods and new comparison objects.")
+ (license license:expat)))
+
(define-public python-pytest-aiohttp
(package
(name "python-pytest-aiohttp")
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 6b81b80860..774d9b3a9f 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -64,6 +64,30 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (srfi srfi-1))
+(define-public python-potr
+ (package
+ (name "python-potr")
+ (version "1.0.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/python-otr/pure-python-otr.git")
+ (commit version)))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32 "1hzw6h01fm216nmipyylgz0zybd80w1xsk12m7djycnhqrnrvvv1"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-pycrypto" ,python-pycrypto)))
+ (synopsis "Python OTR Implementation")
+ (description "Python OTR is an Off-The-Record Protocol Implementation in
+Python. It does not bind to libotr.")
+ (home-page "https://github.com/python-otr/pure-python-otr")
+ (license license:lgpl3+)))
+
(define-public python-base58
(package
(name "python-base58")
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 9ee4834616..a5b5ba7c77 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -68,10 +68,12 @@
#:use-module (gnu packages databases)
#:use-module (gnu packages django)
#:use-module (gnu packages groff)
+ #:use-module (gnu packages libevent)
#:use-module (gnu packages libffi)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-check)
+ #:use-module (gnu packages python-compression)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages serialization)
@@ -184,7 +186,7 @@ aiohttp. It supports SOCKS4(a) and SOCKS5.")
(base32
"1snr5paql8dgvc676n8xq460wypjsb1xj53cf3px1s4wczf7lryq"))))
(build-system python-build-system)
- (inputs
+ (propagated-inputs
`(("python-pycares" ,python-pycares)))
(arguments
`(#:tests? #f)) ;tests require internet access
@@ -3892,6 +3894,43 @@ XPath and therefore does not have all the correctness corner cases that are
hard or impossible to fix in cssselect.")
(license license:bsd-3)))
+(define-public python-uvloop
+ (package
+ (name "python-uvloop")
+ (version "0.14.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "uvloop" version))
+ (sha256
+ (base32 "07j678z9gf41j98w72ysrnb5sa41pl5yxd7ib17lcwfxqz0cjfhj"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:tests? #f ;FIXME: tests hang and with some errors in the way
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'preparations
+ (lambda _
+ ;; Use packaged libuv.
+ (substitute* "setup.py" (("self.use_system_libuv = False")
+ "self.use_system_libuv = True"))
+ #t)))))
+ (native-inputs
+ `(("python-aiohttp" ,python-aiohttp)
+ ("python-cython" ,python-cython)
+ ("python-flake8" ,python-flake8)
+ ("python-psutil" ,python-psutil)
+ ("python-pyopenssl" ,python-pyopenssl)
+ ("python-twine" ,python-twine)))
+ (inputs
+ `(("libuv" ,libuv)))
+ (home-page "https://github.com/MagicStack/uvloop")
+ (synopsis "Fast implementation of asyncio event loop on top of libuv")
+ (description
+ "@code{uvloop} is a fast, drop-in replacement of the built-in asyncio
+event loop. It is implemented in Cython and uses libuv under the hood.")
+ (license license:expat)))
+
(define-public gunicorn
(package
(name "gunicorn")
@@ -3962,6 +4001,104 @@ and fairly speedy.")
(properties '((hidden? . #t)))
(native-inputs `())))
+(define-public python-httptools
+ (package
+ (name "python-httptools")
+ (version "0.1.1")
+ (source
+ (origin
+ ;; PyPI tarball comes with a vendored http-parser and no tests.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/MagicStack/httptools")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0g08128x2ixsiwrzskxc6c8ymgzs39wbzr5mhy0mjk30q9pqqv77"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'preparations
+ (lambda _
+ ;; Skip a failing test (AssertionError). Bug report:
+ ;; https://github.com/MagicStack/httptools/issues/10.
+ (substitute* "tests/test_parser.py"
+ ((" def test_parser_response_1")
+ (string-append
+ " @unittest.skip(\"Disabled.\")\n"
+ " def test_parser_response_1")))
+ ;; Use packaged http-parser.
+ (substitute* "setup.py" (("self.use_system_http_parser = False")
+ "self.use_system_http_parser = True"))
+ ;; This path is hardcoded. Hardcode our own.
+ (substitute* "httptools/parser/cparser.pxd"
+ (("../../vendor/http-parser")
+ (string-append (assoc-ref %build-inputs "http-parser")
+ "/include")))
+ ;; Don't force Cython version.
+ (substitute* "setup.py" (("Cython==") "Cython>="))
+ #t)))))
+ (native-inputs
+ `(("python-cython" ,python-cython)
+ ("python-pytest" ,python-pytest)))
+ (inputs
+ `(("http-parser" ,http-parser)))
+ (home-page "https://github.com/MagicStack/httptools")
+ (synopsis "Collection of framework independent HTTP protocol utils")
+ (description
+ "@code{httptools} is a Python binding for the nodejs HTTP parser.")
+ (license license:expat)))
+
+(define-public python-uvicorn
+ (package
+ (name "python-uvicorn")
+ (version "0.11.8")
+ (source
+ (origin
+ ;; PyPI tarball has no tests.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/encode/uvicorn")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "00iidg5ysp7k00bw3kmkvr8mghnh4jdi0p2ryiarhryf8wz2r3fy"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (add-installed-pythonpath inputs outputs)
+ (invoke "pytest" "-vv"))))))
+ (native-inputs
+ `(("python-black" ,python-black)
+ ("python-codecov" ,python-codecov)
+ ("python-flake8" ,python-flake8)
+ ("python-isort" ,python-isort)
+ ("python-mypy" ,python-mypy)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-mock" ,python-pytest-mock)
+ ("python-requests" ,python-requests)))
+ (propagated-inputs
+ `(("python-click" ,python-click)
+ ("python-h11" ,python-h11)
+ ("python-httptools" ,python-httptools)
+ ("python-pyyaml" ,python-pyyaml)
+ ("python-uvloop" ,python-uvloop)
+ ("python-watchgod" ,python-watchgod)
+ ("python-websockets" ,python-websockets)
+ ("python-wsproto" ,python-wsproto)))
+ (home-page "https://github.com/encode/uvicorn")
+ (synopsis "Fast ASGI server implementation")
+ (description
+ "@code{uvicorn} is a fast ASGI server implementation, using @code{uvloop}
+and @code{httptools}. It currently supports HTTP/1.1 and WebSockets. Support
+for HTTP/2 is planned.")
+ (license license:bsd-3)))
+
(define-public python-translation-finder
(package
(name "python-translation-finder")
@@ -4175,6 +4312,168 @@ and serve updated contents upon changes to the directory.")
@acronym{TLS, Transport Layer Security} support.")
(license license:bsd-2)))
+(define-public python-httpcore
+ (package
+ (name "python-httpcore")
+ (version "0.10.2")
+ (source
+ (origin
+ ;; PyPI tarball does not contain tests.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/encode/httpcore")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "00gn8nfv814rg6fj7xv97mrra3fvx6fzjcgx9y051ihm6hxljdsi"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-unavailable-tests
+ (lambda _
+ ;; These tests require 'mitmproxy' which is not packaged.
+ (for-each (lambda (f)
+ (delete-file f))
+ '("tests/conftest.py"
+ "tests/sync_tests/test_interfaces.py"
+ "tests/async_tests/test_interfaces.py"))
+ #t))
+ (add-after 'remove-unavailable-tests 'force-h11-version
+ ;; Allow build with h11 >= 0.10.
+ (lambda _
+ (substitute* "setup.py" (("h11>=0.8,<0.10") "h11"))
+ #t))
+ (replace 'check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (add-installed-pythonpath inputs outputs)
+ (invoke "pytest" "-vv" "--cov=httpcore"
+ "--cov=tests" "tests"))))))
+ (native-inputs
+ `(;; ("mitmproxy" ,mitmproxy) ;; TODO: Package this.
+ ("python-autoflake" ,python-autoflake)
+ ("python-flake8" ,python-flake8)
+ ("python-flake8-bugbear" ,python-flake8-bugbear)
+ ("python-flake8-pie" ,python-flake8-pie)
+ ("python-isort" ,python-isort)
+ ("python-mypy" ,python-mypy)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-asyncio" ,python-pytest-asyncio)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-trio" ,python-pytest-trio)
+ ("python-uvicorn" ,python-uvicorn)
+ ("python-trustme" ,python-trustme)))
+ (propagated-inputs
+ `(("python-h11" ,python-h11)
+ ("python-h2" ,python-h2)
+ ("python-sniffio" ,python-sniffio)
+ ("python-trio" ,python-trio)
+ ("python-trio-typing" ,python-trio-typing)))
+ (home-page "https://github.com/encode/httpcore")
+ (synopsis "Minimal, low-level HTTP client")
+ (description
+ "HTTP Core provides a minimal and low-level HTTP client, which does one
+thing only: send HTTP requests.
+
+Some things HTTP Core does do:
+
+@itemize
+@item Sending HTTP requests.
+@item Provides both sync and async interfaces.
+@item Supports HTTP/1.1 and HTTP/2.
+@item Async backend support for asyncio and trio.
+@item Automatic connection pooling.
+@item HTTP(S) proxy support.
+@end itemize")
+ (license license:bsd-3)))
+
+(define-public python-httpx
+ (package
+ (name "python-httpx")
+ (version "0.14.3")
+ (source
+ (origin
+ ;; PyPI tarball does not contain tests.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/encode/httpx")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0mn8gqkgaij3s2pbwgrih20iq34f3f82dfvypaw3nnh7n63vna43"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "pytest" "-vv" "-k"
+ ;; This test tries to open an outgoing connection.
+ "not test_connect_timeout[asyncio]"))))))
+ (native-inputs
+ `(("python-autoflake" ,python-autoflake)
+ ("python-black" ,python-black)
+ ("python-cryptography" ,python-cryptography)
+ ("python-flake8" ,python-flake8)
+ ("python-flake8-bugbear" ,python-flake8-bugbear)
+ ("python-flake8-pie" ,python-flake8-pie)
+ ("python-isort" ,python-isort)
+ ("python-mypy" ,python-mypy)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-asyncio" ,python-pytest-asyncio)
+ ("python-pytest-trio" ,python-pytest-trio)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-trio" ,python-trio)
+ ("python-trio-typing" ,python-trio-typing)
+ ("python-trustme" ,python-trustme)
+ ("python-uvicorn" ,python-uvicorn)))
+ (propagated-inputs
+ `(("python-brotli" ,python-brotli)
+ ("python-certifi" ,python-certifi)
+ ("python-chardet" ,python-chardet)
+ ("python-httpcore" ,python-httpcore)
+ ("python-idna" ,python-idna)
+ ("python-rfc3986" ,python-rfc3986)
+ ("python-sniffio" ,python-sniffio)))
+ (home-page "https://github.com/encode/httpx")
+ (synopsis "HTTP client for Python")
+ (description
+ "HTTPX is a fully featured HTTP client for Python 3, which provides sync
+and async APIs, and support for both HTTP/1.1 and HTTP/2.
+
+HTTPX builds on the well-established usability of requests, and gives you:
+
+@itemize
+@item A broadly requests-compatible API.
+@item Standard synchronous interface, but with async support if you need it.
+@item HTTP/1.1 and HTTP/2 support.
+@item Ability to make requests directly to WSGI applications or ASGI applications.
+@item Strict timeouts everywhere.
+@item Fully type annotated.
+@item 99% test coverage.
+@end itemize
+
+Plus all the standard features of requests:
+
+@itemize
+@item International Domains and URLs
+@item Keep-Alive & Connection Pooling
+@item Sessions with Cookie Persistence
+@item Browser-style SSL Verification
+@item Basic/Digest Authentication
+@item Elegant Key/Value Cookies
+@item Automatic Decompression
+@item Automatic Content Decoding
+@item Unicode Response Bodies
+@item Multipart File Uploads
+@item HTTP(S) Proxy Support
+@item Connection Timeouts
+@item Streaming Downloads
+@item .netrc Support
+@item Chunked Requests
+@end itemize")
+ (license license:bsd-3)))
+
(define-public python-websockets
(package
(name "python-websockets")
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 0abdcc71fd..0c9cbcc9d6 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -123,6 +123,7 @@
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages gnupg)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages graphics)
#:use-module (gnu packages gsasl)
@@ -134,6 +135,7 @@
#:use-module (gnu packages kerberos)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libffi)
+ #:use-module (gnu packages libidn)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages man)
@@ -188,6 +190,52 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26))
+(define-public python-slixmpp
+ (package
+ (name "python-slixmpp")
+ (version "1.5.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://lab.louiz.org/poezio/slixmpp.git")
+ (commit
+ (string-append "slix-" version))))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32 "15mqxcws14bjvh5jcfwl86zsvrymkdw3ya07vb44md7vfnsnclwx"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* "setup.py"
+ (("'CC', 'cc'")
+ "'CC', 'gcc'"))
+ #t)))))
+ (native-inputs
+ `(("cython" ,python-cython)
+ ("gnupg" ,gnupg)
+ ("pkg-config" ,pkg-config)))
+ (propagated-inputs
+ `(("python-aiodns" ,python-aiodns)
+ ("python-aiohttp" ,python-aiohttp)
+ ("python-pyasn1" ,python-pyasn1)
+ ("python-pyasn1-modules" ,python-pyasn1-modules)))
+ (inputs
+ `(("libidn" ,libidn)
+ ("python" ,python))) ; We are building a Python extension.
+ (synopsis "XMPP library without threads")
+ (description "Slixmpp is a XMPP library for Python 3.7+. It is a fork of
+SleekXMPP. Its goal is to only rewrite the core of the library (the low level
+socket handling, the timers, the events dispatching) in order to remove all
+threads.")
+ (home-page "https://lab.louiz.org/poezio/slixmpp")
+ (license license:expat)))
+
(define-public python-tenacity
(package
(name "python-tenacity")
@@ -8192,6 +8240,48 @@ expressions after the entire file has been read. This enables support for
first-class forward references that stub files use.")
(license license:expat)))
+(define-public python-flake8-pie
+ (package
+ (name "python-flake8-pie")
+ (version "0.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "flake8-pie" version))
+ (sha256
+ (base32 "0kgipl5gljlp7aa7ykx15pswpzkd0d0qiznihb2z0d9a73181dyd"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/sbdchd/flake8-pie")
+ (synopsis "Flake8 extension that implements lints")
+ (description
+ "This package provides a flake8 extension that implements miscellaneous
+lints.")
+ (license license:bsd-2)))
+
+(define-public python-autoflake
+ (package
+ (name "python-autoflake")
+ (version "1.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "autoflake" version))
+ (sha256
+ (base32 "0nzr057dbmgprp4a52ymafdkdd5zp2wcqf42913xc7hhvvdbj338"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-pyflakes" ,python-pyflakes)))
+ (home-page "https://github.com/myint/autoflake")
+ (synopsis "Removes unused imports and unused variables")
+ (description
+ "@code{autoflake} removes unused imports and unused variables from Python
+code as reported by @code{pyflakes}.
+
+By default, it only removes unused imports for modules that are part of the
+standard library. Removal of unused variables is also disabled by default.
+It also removes useless @code{pass} statements.")
+ (license license:expat)))
+
(define-public python-mistune
(package
(name "python-mistune")
@@ -9348,10 +9438,14 @@ Python's @code{ctypes} foreign function interface (FFI).")
(native-inputs (if (%current-target-system)
`(("self" ,this-package))
'()))
- (synopsis "Python bindings to the libmagic file type guesser. Note that
-this module and the python-magic module both provide a \"magic.py\" file;
-these two modules, which are different and were developed separately, both
-serve the same purpose: provide Python bindings for libmagic.")))
+ (synopsis "Python bindings to the libmagic file type guesser")
+ (description "This package provides Python bindings to the libmagic file
+type guesser.
+
+Note that this module and the @code{python-magic} module both provide a
+@file{magic.py} file; these two modules, which are different and were
+developed separately, both serve the same purpose: provide Python bindings for
+libmagic.")))
(define-public python2-file
(package-with-python2 python-file))
@@ -19228,6 +19322,54 @@ programs that do multiple things at the same time with parallelized I/O.")
;; Either license applies.
(license (list license:expat license:asl2.0))))
+(define-public python-trio-typing
+ (package
+ (name "python-trio-typing")
+ (version "0.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "trio-typing" version))
+ (sha256
+ (base32 "1yvlj4vf3wyvp16dw6vyfm4i2idm8lvdc3fvjhi6mhm62zv7s07j"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "pytest" "-vv"))))))
+ (native-inputs
+ `(("python-attrs" ,python-attrs)
+ ("python-pytest" ,python-pytest)))
+ (propagated-inputs
+ `(("python-mypy" ,python-mypy)
+ ("python-mypy-extensions"
+ ,python-mypy-extensions)
+ ("python-trio" ,python-trio)
+ ("python-typing-extensions"
+ ,python-typing-extensions)))
+ (home-page "https://github.com/python-trio/trio-typing")
+ (synopsis "Static type checking support for Trio and related projects")
+ (description
+ "This package provides:
+
+@itemize
+@item PEP 561 typing stubs packages for the Trio project packages:
+
+@itemize
+@item trio (@code{trio-stubs})
+@item outcome (@code{outcome-stubs})
+@item async_generator (@code{async_generator-stubs})
+@end itemize
+
+@item A package @code{trio_typing} containing types that Trio programs often
+want to refer to (@code{AsyncGenerator[Y, S]} and @code{TaskStatus[T])} and
+a mypy plugin that smooths over some limitations in the basic type hints.
+@end itemize")
+ ;; Either license applies.
+ (license (list license:expat license:asl2.0))))
+
(define-public python-humanize
(package
(name "python-humanize")
@@ -20354,6 +20496,49 @@ such as a file modification and trigger an action. This is similar to inotify,
but portable.")
(license license:asl2.0)))
+(define-public python-watchgod
+ (package
+ (name "python-watchgod")
+ (version "0.6")
+ (source
+ (origin
+ ;; There are no tests in the PyPI tarball.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/samuelcolvin/watchgod")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1lqx44wkryakgpyqj3m0hsz61bqr07vc7smgzh188374hwvscp66"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "pytest" "-vv"))))))
+ (native-inputs
+ `(("python-coverage" ,python-coverage)
+ ("python-docutils" ,python-docutils)
+ ("python-flake8" ,python-flake8)
+ ("python-isort" ,python-isort)
+ ("python-pycodestyle" ,python-pycodestyle)
+ ("python-pyflakes" ,python-pyflakes)
+ ("python-pygments" ,python-pygments)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-aiohttp" ,python-pytest-aiohttp)
+ ("python-pytest-mock" ,python-pytest-mock)
+ ("python-pytest-sugar" ,python-pytest-sugar)
+ ("python-pytest-toolbox" ,python-pytest-toolbox)))
+ (home-page "https://github.com/samuelcolvin/watchgod")
+ (synopsis "Simple, modern file watching and code reload in Python")
+ (description
+ "Simple, modern file watching and code reload in Python inspired by
+@code{watchdog}. Among the differences are a unified approach for each
+operating systems and an elegant approach to concurrency using threading.")
+ (license license:expat)))
+
(define-public python-wget
(package
(name "python-wget")
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index d0960226c5..0700167521 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -4,6 +4,8 @@
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2020 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -204,6 +206,34 @@ While it does not seek to mirror all of find's powerful functionality, it
provides defaults for 80% of the use cases.")
(license (list license:expat license:asl2.0))))
+(define-public hexyl
+ (package
+ (name "hexyl")
+ (version "0.8.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "hexyl" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0sipag77196467idbznbk5q5lwhqz85zw7y1pwg9b27jxqyk04rp"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-ansi-term" ,rust-ansi-term-0.12)
+ ("rust-atty" ,rust-atty-0.2)
+ ("rust-clap" ,rust-clap-2)
+ ("rust-libc" ,rust-libc-0.2))))
+ (home-page "https://github.com/sharkdp/hexyl")
+ (synopsis "Command-line hex viewer")
+ (description
+ "This package provides a command line hex viewer. It uses a colored output
+for distinguishing different kinds of bytes such as NULL bytes, printable ASCII
+characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
+ (license (list license:expat license:asl2.0))))
+
(define-public ripgrep
(package
(name "ripgrep")
@@ -292,6 +322,21 @@ gitignore rules.")
"This package provides a tool for generating C/C++ bindings to Rust code.")
(license license:mpl2.0)))
+(define-public rust-cbindgen-0.14
+ (package
+ (inherit rust-cbindgen)
+ (name "rust-cbindgen")
+ (version "0.14.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "cbindgen" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1ppwqbzydxlg9a24lynzfk60xrvqw4k31mpz1wrk6lbf88zf8nxi"))))))
+
(define-public rust-cbindgen-0.12
(package
(inherit rust-cbindgen)
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index bea4c081b0..d85b809ce7 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -1312,5 +1312,9 @@ move around."
(string-append "#[ignore] " all)))
#t)))))))))
+(define-public rust-1.46
+ (rust-bootstrapped-package rust-1.45 "1.46.0"
+ "0a17jby2pd050s24cy4dfc0gzvgcl585v3vvyfilniyvjrqknsid"))
+
;; TODO(staging): Bump this variable to the latest packaged rust.
(define-public rust rust-1.45)
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index de2cf62b9b..7868dc40f0 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -513,13 +513,13 @@ ksh, and tcsh.")
(define-public xonsh
(package
(name "xonsh")
- (version "0.9.20")
+ (version "0.9.21")
(source
(origin
(method url-fetch)
(uri (pypi-uri "xonsh" version))
(sha256
- (base32 "0yhf7vw8csk53cqxkgqbfmndl06x8pywnxylvriz3zql6hn416xf"))
+ (base32 "1mih5w73wp57fnf1vcxnfmm5d31vm7pz8fq5a9vw1ch3dv0yczl5"))
(modules '((guix build utils)))
(snippet
`(begin
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index c1cefa8c41..70a85e8b60 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -88,7 +88,7 @@
(define-public pspp
(package
(name "pspp")
- (version "1.4.0")
+ (version "1.4.1")
(source
(origin
(method url-fetch)
@@ -96,7 +96,7 @@
version ".tar.gz"))
(sha256
(base32
- "0gv6rd5nfn53wb40s8bi3gdidikb90v2lv331dn0pvb91h976433"))))
+ "0lqrash677b09zxdlxp89z6k02y4i23mbqg83956dwl69wc53dan"))))
(build-system gnu-build-system)
(inputs
`(("cairo" ,cairo)
diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm
index f1609f290b..eea6817ce6 100644
--- a/gnu/packages/syndication.scm
+++ b/gnu/packages/syndication.scm
@@ -183,7 +183,7 @@ file system, and many more features.")
(define-public liferea
(package
(name "liferea")
- (version "1.12.8")
+ (version "1.12.9")
(source
(origin
(method url-fetch)
@@ -191,7 +191,7 @@ file system, and many more features.")
"releases/download/v" version "/liferea-"
version ".tar.bz2"))
(sha256
- (base32 "1xm5if831llkjcmbq4w9ssgqjgy3zlb5n9y7kh54xpy6afafbsh7"))))
+ (base32 "06ybr1wjlfir8iqjx6x0v1knd4b2hsy30qmkk4kssy6ky2ahc66q"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:phases
@@ -206,9 +206,9 @@ file system, and many more features.")
(gi-typelib-path (getenv "GI_TYPELIB_PATH"))
(python-path (getenv "PYTHONPATH")))
(wrap-program (string-append out "/bin/liferea")
- `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
- `("PYTHONPATH" ":" prefix (,python-path))))
- #t)))))
+ `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+ `("PYTHONPATH" ":" prefix (,python-path))))
+ #t)))))
(native-inputs
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 540b99d141..63b144c45b 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -7341,3 +7341,42 @@ collect all requests from all packages and write them to an external
XML file.
@end enumerate\n")
(license license:lppl1.3c))))
+
+(define-public texlive-biblatex
+ (let ((template (simple-texlive-package
+ "texlive-biblatex"
+ (list "/doc/latex/biblatex/"
+ "/tex/latex/biblatex/")
+ (base32
+ "11kzvny50iklzkamr0rqd5x532q8rxny1xhmf96jl8mzj1d2zmay")
+ #:trivial? #t)))
+ (package
+ (inherit template)
+ (propagated-inputs
+ `(("texlive-logreq" ,texlive-logreq)
+ ("texlive-url" ,texlive-url)))
+ (home-page "https://www.ctan.org/pkg/biblatex")
+ (synopsis "Sophisticated bibliographies in LaTeX")
+ (description "BibLaTeX is a complete reimplementation of the
+bibliographic facilities provided by LaTeX. Formatting of the
+bibliography is entirely controlled by LaTeX macros, facilitating the
+design of new bibliography and citation styles. BibLaTeX uses its own
+data backend program \"biber\" to read and process the bibliographic
+data. With biber, the range of features provided by biblatex
+includes:
+
+@enumerate
+@item
+full unicode support,
+
+@item
+customisable bibliography labels,
+
+@item
+multiple bibliographies in the same document, and
+
+@item
+subdivided bibliographies, such as bibliographies per chapter or
+section.
+@end enumerate\n")
+ (license license:lppl1.3c))))
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index bc8e5f21ab..2ee8247071 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -30,6 +30,7 @@
;;; Copyright © 2020 John D. Boy <jboy@bius.moe>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -52,6 +53,7 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix hg-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
@@ -1444,7 +1446,7 @@ control to Git repositories.")
(define-public pre-commit
(package
(name "pre-commit")
- (version "2.6.0")
+ (version "2.7.1")
(source
(origin
;; No tests in the PyPI tarball.
@@ -1454,7 +1456,7 @@ control to Git repositories.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "144hcnz8vz07nkx7hk8a3ac822186ardwxa8jnl6s8qvm5ip92f2"))))
+ (base32 "0n7qby5a4yz3s02nqcp5js6jg9wrd0x7msblxwb1883ds4b2b71a"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -1490,7 +1492,7 @@ control to Git repositories.")
" and not test_run_a_ruby_hook"
" and not test_run_ruby_hook_with_disable_shared_gems"
" and not test_run_versioned_ruby_hook"
- ;; Disable Cargo tests
+ ;; Disable Cargo tests.
" and not test_additional_rust_cli_dependencies_installed"
" and not test_additional_rust_lib_dependencies_installed"
" and not test_local_rust_additional_dependencies"
@@ -1517,14 +1519,14 @@ control to Git repositories.")
" and not test_too_new_version"
" and not test_try_repo_uncommitted_changes"
" and not test_versions_ok"
- ;; This test tries to activate a virtualenv
+ ;; This test tries to activate a virtualenv.
" and not test_healthy_venv_creator"
;; Fatal error: Not a Git repository.
" and not test_all_cmds"
" and not test_try_repo"
- ;; No module named 'pip._internal.cli.main'
+ ;; No module named 'pip._internal.cli.main'.
" and not test_additional_dependencies_roll_forward"
- ; Assertion errors
+ ;; Assertion errors.
" and not test_install_existing_hooks_no_overwrite"
" and not test_uninstall_restores_legacy_hooks"))))
(add-before 'reset-gzip-timestamps 'make-files-writable
@@ -1536,7 +1538,7 @@ control to Git repositories.")
(find-files out "\\.gz$"))
#t))))))
(native-inputs
- `(("git" ,git)
+ `(("git" ,git-minimal)
("python-pytest" ,python-pytest)))
(inputs
`(("python-cfgv" ,python-cfgv)
@@ -1553,40 +1555,17 @@ specify a list of hooks you want and pre-commit manages the installation and
execution of any hook written in any language before every commit.")
(license license:expat)))
-(define (mercurial-patch name revision hash)
- (origin
- (method url-fetch)
- (uri (string-append "https://www.mercurial-scm.org/repo/hg/raw-rev/" revision))
- (file-name (string-append "mercurial-" name ".patch"))
- (sha256 (base32 hash))))
-
-(define %mercurial-patches
- (list
- ;; These three patches fixes compatibility with the updated gzip module
- ;; in Python 3.8.2: <https://bz.mercurial-scm.org/show_bug.cgi?id=6284>.
- (mercurial-patch "python-mtime" "6c36a521572edf3a79ee567b118469b3192037cc"
- "0bmm7y40r8s081ws2sjvn1v8kvyfan4a97jl0fhdh7yc2pzxlzqq")
- (mercurial-patch "indent-gzip" "a23b859ad17dd0a5b9bb37846b69b5e30f99c44c"
- "1spscv9dgqv38m7h1liki93ax6w97gxayg17fr7wr6acjdfccpr9")
- (mercurial-patch "python-gzip" "b7ca03dff14c63d64ad7bfa36a2d0a36a6b62253"
- "0p88ffhx0kk21ssrsb156ffhpcb7g8mkwwkmq49qpmbm5ag2paf0")
- ;; This fixes an incompatibility with os.isfile in Python 3.8:
- ;; <https://bz.mercurial-scm.org/show_bug.cgi?id=6287>.
- (mercurial-patch "os-isfile" "6a8738dc4a019da4c9df5c26961aa09d45ce1c68"
- "0lr069m12kzrkmr1pmhaxg5lxmdwxabsza61qp1i1q70g7sy8lvy")))
-
(define-public mercurial
(package
(name "mercurial")
- (version "5.3.1")
+ (version "5.5.1")
(source (origin
(method url-fetch)
(uri (string-append "https://www.mercurial-scm.org/"
"release/mercurial-" version ".tar.gz"))
- (patches %mercurial-patches)
(sha256
(base32
- "1nbjpzjrzgql4hrvslpxwbcgn885ikq6ba1yb4w6p78rw9nzkhgp"))))
+ "0x08yjs26j88kh1bvl2g3r24lnfc023ry3i1cxfq6haray6sv5ag"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -1615,6 +1594,13 @@ execution of any hook written in any language before every commit.")
;; not in 'guix environment -C' (even without /bin/sh)?
"test-nointerrupt.t"
+ ;; FIXME: This gets killed but does not receive an interrupt.
+ "test-commandserver.t"
+
+ ;; Only works when run in a hg-repo, not in an
+ ;; extracted tarball
+ "test-doctest.py"
+
;; TODO: the fqaddr() call fails in the build
;; container, causing these server tests to fail.
"test-hgwebdir.t"
@@ -1650,6 +1636,32 @@ It efficiently handles projects of any size
and offers an easy and intuitive interface.")
(license license:gpl2+)))
+(define-public python-hg-evolve
+ (package
+ (name "python-hg-evolve")
+ (version "10.0.1")
+ (source
+ (origin
+ (method hg-fetch)
+ (uri (hg-reference
+ (url "https://www.mercurial-scm.org/repo/evolve")
+ (changeset version)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1lz407373lfam9n02gq0l0rc2sjvn0m96kbzy93ipia3ika8fa68"))))
+ (build-system python-build-system)
+ (arguments
+ ;; Tests need mercurial source code.
+ '(#:tests? #f))
+ (propagated-inputs
+ `(("mercurial" ,mercurial)))
+ (home-page "https://www.mercurial-scm.org/doc/evolution/")
+ (synopsis "Flexible evolution of Mercurial history")
+ (description "Evolve is a Mercurial extension for faster and safer mutable
+history. It implements the changeset evolution concept for Mercurial.")
+ (license license:gpl2)))
+
(define-public neon
(package
(name "neon")
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 8100159cad..e35ba4ee1a 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -2165,7 +2165,7 @@ To load this plugin, specify the following option when starting mpv:
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2020.07.28")
+ (version "2020.09.06")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/ytdl-org/youtube-dl/"
@@ -2173,7 +2173,7 @@ To load this plugin, specify the following option when starting mpv:
version ".tar.gz"))
(sha256
(base32
- "1if7xyi7g9rpni1jbs7gv5m12s34qdb15dpfbbjn8120h16y7cqz"))))
+ "1827hcp9bvwq7p2f5r0wgkg6yb5fgvr4miyi3d99hkah2afw12za"))))
(build-system python-build-system)
(arguments
;; The problem here is that the directory for the man page and completion
@@ -4440,16 +4440,16 @@ transcode or reformat the videos in any way, producing perfect backups.")
(define-public svt-av1
(package
(name "svt-av1")
- (version "0.8.4")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/OpenVisualCloud/SVT-AV1")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0xad35q9sv5w0iihcf9q1f1m7br5anl3vsyx9svnx128iqf0n997"))))
+ (version "0.8.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/OpenVisualCloud/SVT-AV1")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1gfxdmdql090p7c8ln1z344g467l41p45287lmwy590hv8gw6bfg"))))
(build-system cmake-build-system)
;; SVT-AV1 only supports Intel-compatible CPUs.
(supported-systems '("x86_64-linux" "i686-linux"))
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 5bd59e91d2..c704106221 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -53,6 +53,7 @@
#:use-module (gnu packages guile)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages ncurses)
#:use-module (gnu packages nss)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@@ -321,7 +322,7 @@ traversing network address translators (@dfn{NAT}s) and firewalls.")
(define-public protonvpn-cli
(package
(name "protonvpn-cli")
- (version "2.2.2")
+ (version "2.2.4")
(source
(origin
;; PyPI has a ".whl" file but not a proper source release.
@@ -333,7 +334,7 @@ traversing network address translators (@dfn{NAT}s) and firewalls.")
(file-name (git-file-name name version))
(sha256
(base32
- "0ixjb02kj4z79whm1izd8mrn2h0rp9cmw4im1qvp93rahqxdd4n8"))))
+ "08yca0a0prrnrc7ir7ajd56yxvxpcs4m1k8f5kf273f5whgr7wzw"))))
(build-system python-build-system)
(arguments '(#:tests? #f)) ; no tests in repo
(native-inputs
@@ -342,7 +343,8 @@ traversing network address translators (@dfn{NAT}s) and firewalls.")
`(("pythondialog" ,python-pythondialog)
("requests" ,python-requests)))
(propagated-inputs
- `(("openvpn" ,openvpn)))
+ `(("openvpn" ,openvpn)
+ ("dialog" ,dialog)))
(synopsis "Command-line client for ProtonVPN")
(description
"This is the official command-line interface for ProtonVPN, a secure
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index 205538ee27..be9fe7ab32 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -534,45 +534,41 @@ driven and does not detract you from your daily work.")
`(("prove" ,sbcl-prove)
("sbcl" ,sbcl)))
(inputs
- ;; We need to avoid sbcl-* inputs (sbcl-cl-cffi-gtk in particular) as they
- ;; seem to cause Nyxt to hang into a hogging process in about 10 minutes.
- ;; Probably an issue between CFFI and how we build SBCL packages.
- ;; See https://github.com/atlas-engineer/nyxt/issues/680.
- `(("alexandria" ,cl-alexandria)
- ("bordeaux-threads" ,cl-bordeaux-threads)
- ("cl-containers" ,cl-containers)
- ("cl-css" ,cl-css)
- ("cl-json" ,cl-json)
- ("cl-markup" ,cl-markup)
- ("cl-ppcre" ,cl-ppcre)
- ("cl-prevalence" ,cl-prevalence)
- ("closer-mop" ,cl-closer-mop)
- ("cluffer" ,cl-cluffer)
- ("dexador" ,cl-dexador)
- ("enchant" ,cl-enchant)
- ("fset" ,cl-fset)
- ("iolib" ,cl-iolib)
- ("local-time" ,cl-local-time)
- ("log4cl" ,cl-log4cl)
- ("lparallel" ,cl-lparallel)
- ("mk-string-metrics" ,cl-mk-string-metrics)
- ("moptilities" ,cl-moptilities)
- ("osicat" ,sbcl-osicat) ; SBCL version needed for libosicat.so.
- ("parenscript" ,cl-parenscript)
- ("plump" ,cl-plump)
- ("quri" ,cl-quri)
- ("serapeum" ,cl-serapeum)
- ("str" ,cl-str)
- ("swank" ,cl-slime-swank)
- ("trivia" ,cl-trivia)
- ("trivial-clipboard" ,cl-trivial-clipboard)
- ("trivial-features" ,cl-trivial-features)
- ("trivial-package-local-nicknames" ,cl-trivial-package-local-nicknames)
- ("trivial-types" ,cl-trivial-types)
- ("unix-opts" ,cl-unix-opts)
+ `(("alexandria" ,sbcl-alexandria)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("cl-containers" ,sbcl-cl-containers)
+ ("cl-css" ,sbcl-cl-css)
+ ("cl-json" ,sbcl-cl-json)
+ ("cl-markup" ,sbcl-cl-markup)
+ ("cl-ppcre" ,sbcl-cl-ppcre)
+ ("cl-prevalence" ,sbcl-cl-prevalence)
+ ("closer-mop" ,sbcl-closer-mop)
+ ("cluffer" ,sbcl-cluffer)
+ ("dexador" ,sbcl-dexador)
+ ("enchant" ,sbcl-enchant)
+ ("fset" ,sbcl-fset)
+ ("iolib" ,sbcl-iolib)
+ ("local-time" ,sbcl-local-time)
+ ("log4cl" ,sbcl-log4cl)
+ ("lparallel" ,sbcl-lparallel)
+ ("mk-string-metrics" ,sbcl-mk-string-metrics)
+ ("moptilities" ,sbcl-moptilities)
+ ("osicat" ,sbcl-osicat)
+ ("parenscript" ,sbcl-parenscript)
+ ("plump" ,sbcl-plump)
+ ("quri" ,sbcl-quri)
+ ("serapeum" ,sbcl-serapeum)
+ ("str" ,sbcl-cl-str)
+ ("swank" ,sbcl-slime-swank)
+ ("trivia" ,sbcl-trivia)
+ ("trivial-clipboard" ,sbcl-trivial-clipboard)
+ ("trivial-features" ,sbcl-trivial-features)
+ ("trivial-package-local-nicknames" ,sbcl-trivial-package-local-nicknames)
+ ("trivial-types" ,sbcl-trivial-types)
+ ("unix-opts" ,sbcl-unix-opts)
;; WebKitGTK deps
- ("cl-cffi-gtk" ,cl-cffi-gtk)
- ("cl-webkit" ,cl-webkit)
+ ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
+ ("cl-webkit" ,sbcl-cl-webkit)
("glib-networking" ,glib-networking)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
(synopsis "Extensible web-browser in Common Lisp")
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 2144c4fe8f..2c1f5e2b3b 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -196,7 +196,7 @@ and its related documentation.")
(define-public mod-wsgi
(package
(name "mod-wsgi")
- (version "4.5.22")
+ (version "4.7.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -205,7 +205,7 @@ and its related documentation.")
(file-name (git-file-name name version))
(sha256
(base32
- "1q90xw2cbhka5gcd6yc69iir73x4gm7fm75qpkins2ryfl6w1q3f"))))
+ "1savh6h3qds20mwn1nqasmqzcp57pdhfc9v4b4k78d6q28y0r17s"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; TODO: can't figure out if there are tests
@@ -1678,7 +1678,7 @@ minimum to provide high performance operation.")
(package
(name "libsass")
;; When updating, check whether sassc/libsass-3.5 is still needed.
- (version "3.6.3")
+ (version "3.6.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1687,7 +1687,7 @@ minimum to provide high performance operation.")
(file-name (git-file-name name version))
(sha256
(base32
- "1vn0q343d1vxz5q0xb6f9dzjah8z6j0s6x0lwvwdd55xa8z7rsnh"))))
+ "0r8lfqvr3rjhjd8r036zd1wc9q17gyiskppcw9m13jks9an7xp4j"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -4458,8 +4458,8 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
(package-with-python2 python-feedparser))
(define-public guix-data-service
- (let ((commit "ab68b0fdb3efe68f1962b7b9698ffc225abfeabb")
- (revision "20"))
+ (let ((commit "c596a1c6a90bb2fe07da5339b8dc832b81d94194")
+ (revision "21"))
(package
(name "guix-data-service")
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
@@ -4471,7 +4471,7 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
(file-name (git-file-name name version))
(sha256
(base32
- "0imbkrm46ykjip81cbf14gc6hqlgi79fnwvsjxbhkd2wq3c1nrjg"))))
+ "09gn2imhh3aqkzray0xgkz7slriy567inh5lpkxm74bgmx862g3g"))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build utils)
@@ -4534,6 +4534,7 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
("guile-fibers" ,guile3.0-fibers)
("guile-json" ,guile3.0-json)
("guile-email" ,guile3.0-email)
+ ("guile-prometheus" ,guile-prometheus)
("guile-squee" ,guile3.0-squee)
("ephemeralpg" ,ephemeralpg)
("util-linux" ,util-linux)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 15fbf43ec7..53cfa5c916 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -1598,10 +1598,10 @@ compositors that support the layer-shell protocol.")
("alexandria" ,sbcl-alexandria)))
(outputs '("out" "lib"))
(arguments
- '(#:asd-system-name "stumpwm"
+ '(#:asd-systems '("stumpwm")
#:phases
(modify-phases %standard-phases
- (add-after 'create-symlinks 'build-program
+ (add-after 'create-asdf-configuration 'build-program
(lambda* (#:key outputs #:allow-other-keys)
(build-program
(string-append (assoc-ref outputs "out") "/bin/stumpwm")
@@ -1670,20 +1670,15 @@ productive, customizable lisp based systems.")
(program (string-append out "/bin/stumpwm")))
(build-program program outputs
#:entry-program '((stumpwm:stumpwm) 0)
- #:dependencies '("stumpwm"
- ,@(@@ (gnu packages lisp-xyz) slynk-systems))
+ #:dependencies '("stumpwm" "slynk")
#:dependency-prefixes
(map (lambda (input) (assoc-ref inputs input))
'("stumpwm" "slynk")))
- ;; Remove unneeded file.
- (delete-file (string-append out "/bin/stumpwm-exec.fasl"))
#t)))
(delete 'copy-source)
(delete 'build)
(delete 'check)
- (delete 'create-asd-file)
- (delete 'cleanup)
- (delete 'create-symlinks)))))))
+ (delete 'cleanup)))))))
(define stumpwm-contrib
(let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d63")
@@ -1745,7 +1740,7 @@ productive, customizable lisp based systems.")
`(("stumpwm" ,stumpwm "lib")
("clx-truetype" ,sbcl-clx-truetype)))
(arguments
- '(#:asd-system-name "ttf-fonts"
+ '(#:asd-systems '("ttf-fonts")
#:tests? #f
#:phases
(modify-phases %standard-phases
@@ -1762,7 +1757,7 @@ rendering.")
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-pass")
(arguments
- '(#:asd-system-name "pass"
+ '(#:asd-systems '("pass")
#:tests? #f
#:phases
(modify-phases %standard-phases
@@ -1779,7 +1774,7 @@ password-store into StumpWM.")
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-globalwindows")
(arguments
- '(#:asd-system-name "globalwindows"
+ '(#:asd-systems '("globalwindows")
#:tests? #f
#:phases
(modify-phases %standard-phases
@@ -1796,7 +1791,7 @@ windows in the current X session.")
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-swm-gaps")
(arguments
- '(#:asd-system-name "swm-gaps"
+ '(#:asd-systems '("swm-gaps")
#:tests? #f
#:phases
(modify-phases %standard-phases
@@ -1813,7 +1808,7 @@ between windows.")
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-net")
(arguments
- '(#:asd-system-name "net"
+ '(#:asd-systems '("net")
#:tests? #f
#:phases
(modify-phases %standard-phases
@@ -1831,7 +1826,7 @@ between windows.")
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-wifi")
(arguments
- '(#:asd-system-name "wifi"
+ '(#:asd-systems '("wifi")
#:tests? #f
#:phases
(modify-phases %standard-phases
@@ -1849,7 +1844,7 @@ between windows.")
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-stumptray")
(arguments
- '(#:asd-system-name "stumptray"
+ '(#:asd-systems '("stumptray")
#:tests? #f
#:phases
(modify-phases %standard-phases
@@ -1871,7 +1866,7 @@ between windows.")
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-kbd-layouts")
(arguments
- '(#:asd-system-name "kbd-layouts"
+ '(#:asd-systems '("kbd-layouts")
#:tests? #f
#:phases
(modify-phases %standard-phases
diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index cfcaf4601b..71fa975b5d 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -99,7 +99,9 @@
(and (string? x) (not (string-index x #\space))))
val)))
(define (serialize-space-separated-string-list field-name val)
- (serialize-field field-name (string-join val " ")))
+ (match val
+ (() #f)
+ (_ (serialize-field field-name (string-join val " ")))))
(define (comma-separated-string-list? val)
(and (list? val)
@@ -479,64 +481,6 @@ interfaces. If you want to specify non-default ports or anything more
complex, customize the address and port fields of the
@samp{inet-listener} of the specific services you are interested in.")
- (protocols
- (protocol-configuration-list
- (list (protocol-configuration
- (name "imap"))))
- "List of protocols we want to serve. Available protocols include
-@samp{imap}, @samp{pop3}, and @samp{lmtp}.")
-
- (services
- (service-configuration-list
- (list
- (service-configuration
- (kind "imap-login")
- (client-limit 0)
- (process-limit 0)
- (listeners
- (list
- (inet-listener-configuration (protocol "imap") (port 143) (ssl? #f))
- (inet-listener-configuration (protocol "imaps") (port 993) (ssl? #t)))))
- (service-configuration
- (kind "pop3-login")
- (listeners
- (list
- (inet-listener-configuration (protocol "pop3") (port 110) (ssl? #f))
- (inet-listener-configuration (protocol "pop3s") (port 995) (ssl? #t)))))
- (service-configuration
- (kind "lmtp")
- (client-limit 1)
- (process-limit 0)
- (listeners
- (list (unix-listener-configuration (path "lmtp") (mode "0666")))))
- (service-configuration
- (kind "imap")
- (client-limit 1)
- (process-limit 1024))
- (service-configuration
- (kind "pop3")
- (client-limit 1)
- (process-limit 1024))
- (service-configuration
- (kind "auth")
- (service-count 0)
- (client-limit 0)
- (process-limit 1)
- (listeners
- (list (unix-listener-configuration (path "auth-userdb")))))
- (service-configuration
- (kind "auth-worker")
- (client-limit 1)
- (process-limit 0))
- (service-configuration
- (kind "dict")
- (client-limit 1)
- (process-limit 0)
- (listeners (list (unix-listener-configuration (path "dict")))))))
- "List of services to enable. Available services include @samp{imap},
-@samp{imap-login}, @samp{pop3}, @samp{pop3-login}, @samp{auth}, and
-@samp{lmtp}.")
-
(dict
(dict-configuration (dict-configuration))
"Dict configuration, as created by the @code{dict-configuration}
@@ -1430,7 +1374,65 @@ greyed out, instead of only later giving \"not selectable\" popup error.
(imap-urlauth-host
(string "")
- "Host allowed in URLAUTH URLs sent by client. \"*\" allows all.") )
+ "Host allowed in URLAUTH URLs sent by client. \"*\" allows all.")
+
+ (protocols
+ (protocol-configuration-list
+ (list (protocol-configuration
+ (name "imap"))))
+ "List of protocols we want to serve. Available protocols include
+@samp{imap}, @samp{pop3}, and @samp{lmtp}.")
+
+ (services
+ (service-configuration-list
+ (list
+ (service-configuration
+ (kind "imap-login")
+ (client-limit 0)
+ (process-limit 0)
+ (listeners
+ (list
+ (inet-listener-configuration (protocol "imap") (port 143) (ssl? #f))
+ (inet-listener-configuration (protocol "imaps") (port 993) (ssl? #t)))))
+ (service-configuration
+ (kind "pop3-login")
+ (listeners
+ (list
+ (inet-listener-configuration (protocol "pop3") (port 110) (ssl? #f))
+ (inet-listener-configuration (protocol "pop3s") (port 995) (ssl? #t)))))
+ (service-configuration
+ (kind "lmtp")
+ (client-limit 1)
+ (process-limit 0)
+ (listeners
+ (list (unix-listener-configuration (path "lmtp") (mode "0666")))))
+ (service-configuration
+ (kind "imap")
+ (client-limit 1)
+ (process-limit 1024))
+ (service-configuration
+ (kind "pop3")
+ (client-limit 1)
+ (process-limit 1024))
+ (service-configuration
+ (kind "auth")
+ (service-count 0)
+ (client-limit 0)
+ (process-limit 1)
+ (listeners
+ (list (unix-listener-configuration (path "auth-userdb")))))
+ (service-configuration
+ (kind "auth-worker")
+ (client-limit 1)
+ (process-limit 0))
+ (service-configuration
+ (kind "dict")
+ (client-limit 1)
+ (process-limit 0)
+ (listeners (list (unix-listener-configuration (path "dict")))))))
+ "List of services to enable. Available services include @samp{imap},
+@samp{imap-login}, @samp{pop3}, @samp{pop3-login}, @samp{auth}, and
+@samp{lmtp}."))
(define-configuration opaque-dovecot-configuration
(dovecot
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index d11a1c0545..c8ffc19d83 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -152,6 +152,7 @@
php-fpm-configuration-timezone
php-fpm-configuration-workers-log-file
php-fpm-configuration-file
+ php-fpm-configuration-php-ini-file
php-fpm-dynamic-process-manager-configuration
make-php-fpm-dynamic-process-manager-configuration
@@ -856,6 +857,8 @@ of index files."
(version-major (package-version php))
"-fpm.www.log")))
(file php-fpm-configuration-file ;#f | file-like
+ (default #f))
+ (php-ini-file php-fpm-configuration-php-ini-file ;#f | file-like
(default #f)))
(define-record-type* <php-fpm-dynamic-process-manager-configuration>
@@ -962,7 +965,7 @@ of index files."
(match-lambda
(($ <php-fpm-configuration> php socket user group socket-user socket-group
pid-file log-file pm display-errors
- timezone workers-log-file file)
+ timezone workers-log-file file php-ini-file)
(list (shepherd-service
(provision '(php-fpm))
(documentation "Run the php-fpm daemon.")
@@ -973,7 +976,10 @@ of index files."
#$(or file
(default-php-fpm-config socket user group
socket-user socket-group pid-file log-file
- pm display-errors timezone workers-log-file)))
+ pm display-errors timezone workers-log-file))
+ #$@(if php-ini-file
+ `("-c" ,php-ini-file)
+ '()))
#:pid-file #$pid-file))
(stop #~(make-kill-destructor)))))))
diff --git a/gnu/system.scm b/gnu/system.scm
index f092df56ce..bdb696fe2e 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -316,11 +316,13 @@ file system labels."
((? bytevector? bv) ;old format
(bytevector->uuid bv 'dce))
((? string? device)
- ;; It used to be that we would not distinguish between labels and
- ;; device names. Try to infer the right thing here.
- (if (string-prefix? "/dev/" device)
- device
- (file-system-label device)))))
+ (if (string-contains device ":/")
+ device ; nfs-root
+ ;; It used to be that we would not distinguish between labels and
+ ;; device names. Try to infer the right thing here.
+ (if (string-prefix? "/" device)
+ device
+ (file-system-label device))))))
(match (read port)
(('boot-parameters ('version 0)
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index 086d2a133f..482310cc12 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -55,7 +55,10 @@
(define* (run-basic-test os command #:optional (name "basic")
- #:key initialization root-password)
+ #:key
+ initialization
+ root-password
+ desktop?)
"Return a derivation called NAME that tests basic features of the OS started
using COMMAND, a gexp that evaluates to a list of strings. Compare some
properties of running system to what's declared in OS, an <operating-system>.
@@ -300,6 +303,12 @@ info --version")
(test-equal "login on tty1"
"root\n"
(begin
+ ;; XXX: On desktop, GDM3 will switch to TTY7. If this happens
+ ;; after we switched to TTY1, we won't be able to login. Make
+ ;; sure to wait long enough before switching to TTY1.
+ (when #$desktop?
+ (sleep 30))
+
(marionette-control "sendkey ctrl-alt-f1" marionette)
;; Wait for the 'term-tty1' service to be running (using
;; 'start-service' is the simplest and most reliable way to do
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index 9656e5f41f..5b7f9bf671 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -1317,10 +1317,11 @@ build (current-guix) and then store a couple of full system images.")
marionette
#:desktop? desktop?
#:encrypted? encrypted?))))
- (command (qemu-command/writable-image image)))
+ (command (qemu-command/writable-image image #:memory-size 512)))
(run-basic-test target-os command name
#:initialization (and encrypted? enter-luks-passphrase)
- #:root-password %root-password)))))
+ #:root-password %root-password
+ #:desktop? desktop?)))))
(define %test-gui-installed-os
(guided-installation-test
diff --git a/gnu/tests/nfs.scm b/gnu/tests/nfs.scm
index 5e4de2783b..da729ddcc9 100644
--- a/gnu/tests/nfs.scm
+++ b/gnu/tests/nfs.scm
@@ -39,7 +39,8 @@
#:use-module (guix store)
#:use-module (guix monads)
#:export (%test-nfs
- %test-nfs-server))
+ %test-nfs-server
+ %test-nfs-root-fs))
(define %base-os
(operating-system
@@ -262,3 +263,152 @@
(description "Test that an NFS server can be started and exported
directories can be mounted.")
(value (run-nfs-server-test))))
+
+
+(define (run-nfs-root-fs-test)
+ "Run a test of an OS mounting its root file system via NFS."
+ (define nfs-root-server-os
+ (marionette-operating-system
+ (operating-system
+ (inherit %nfs-os)
+ (services
+ (modify-services (operating-system-user-services %nfs-os)
+ (nfs-service-type config =>
+ (nfs-configuration
+ (debug '(nfs nfsd mountd))
+ ;;; Note: Adding the following line causes Guix to hang.
+ ;(rpcmountd-port 20001)
+ ;;; Note: Adding the following line causes Guix to hang.
+ ;(rpcstatd-port 20002) ; FIXME: Set broadcast port AND listening port.
+ (nfsd-port 2049)
+ (nfs-versions '("4.2"))
+ (exports '(("/export"
+ "*(rw,insecure,no_subtree_check,crossmnt,fsid=root,no_root_squash,insecure,async)"))))))))
+ #:requirements '(nscd)
+ #:imported-modules '((gnu services herd)
+ (guix combinators))))
+
+ (define nfs-root-client-os
+ (marionette-operating-system
+ (operating-system
+ (inherit (simple-operating-system (service dhcp-client-service-type)))
+ (kernel-arguments '("ip=dhcp"))
+ (file-systems (cons
+ (file-system
+ (type "nfs")
+ (mount-point "/")
+ (device ":/export")
+ (options "addr=127.0.0.1,vers=4.2"))
+ %base-file-systems)))
+ #:requirements '(nscd)
+ #:imported-modules '((gnu services herd)
+ (guix combinators))))
+
+ (define test
+ (with-imported-modules '((gnu build marionette))
+ #~(begin
+ (use-modules (gnu build marionette)
+ (srfi srfi-64))
+
+ (mkdir #$output)
+ (chdir #$output)
+
+ (test-begin "start-nfs-boot-test")
+
+ ;;; Start up NFS server host.
+
+ (mkdir "/tmp/server")
+ (define server-marionette
+ (make-marionette (list #$(virtual-machine
+ nfs-root-server-os
+ ;(operating-system nfs-root-server-os)
+ ;(port-forwardings '( ; (111 . 111)
+ ; (2049 . 2049)
+ ; (20001 . 20001)
+ ; (20002 . 20002)))
+))
+ #:socket-directory "/tmp/server"))
+
+ (marionette-eval
+ '(begin
+ (use-modules (gnu services herd))
+ (current-output-port
+ (open-file "/dev/console" "w0"))
+ ;; FIXME: Instead statfs "/" and "/export" and wait until they
+ ;; are different file systems. But Guile doesn't seem to have
+ ;; statfs.
+ (sleep 5)
+ (chmod "/export" #o777)
+ (symlink "/gnu" "/export/gnu")
+ (start-service 'nscd)
+ (start-service 'networking)
+ (start-service 'nfs))
+ server-marionette)
+
+ ;;; Wait for the NFS services to be up and running.
+
+ (test-assert "nfs services are running"
+ (wait-for-file "/var/run/rpc.statd.pid" server-marionette))
+
+ (test-assert "NFS port is ready"
+ (wait-for-tcp-port 2049 server-marionette))
+
+ (test-assert "NFS statd port is ready"
+ (wait-for-tcp-port 20002 server-marionette))
+
+ (test-assert "NFS mountd port is ready"
+ (wait-for-tcp-port 20001 server-marionette))
+
+ ;;; FIXME: (test-assert "NFS portmapper port is ready"
+ ;;; FIXME: (wait-for-tcp-port 111 server-marionette))
+
+ ;;; Start up NFS client host.
+
+ (define client-marionette
+ (make-marionette (list #$(virtual-machine
+ nfs-root-client-os
+ ;(port-forwardings '((111 . 111)
+ ; (2049 . 2049)
+ ; (20001 . 20001)
+ ; (20002 . 20002)))
+ ))))
+
+ (marionette-eval
+ '(begin
+ (use-modules (gnu services herd))
+ (use-modules (rnrs io ports))
+
+ (current-output-port
+ (open-file "/dev/console" "w0"))
+ (let ((content (call-with-input-file "/proc/mounts" get-string-all)))
+ (call-with-output-file "/mounts.new"
+ (lambda (port)
+ (display content port))))
+ (chmod "/mounts.new" #o777)
+ (rename-file "/mounts.new" "/mounts"))
+ client-marionette)
+
+ (test-assert "nfs-root-client booted")
+
+ ;;; Check whether NFS client host communicated with NFS server host.
+
+ (test-assert "nfs client deposited file"
+ (wait-for-file "/export/mounts" server-marionette))
+ (marionette-eval
+ '(begin
+ (current-output-port
+ (open-file "/dev/console" "w0"))
+ (call-with-input-file "/export/mounts" display))
+ server-marionette)
+
+ (test-end)
+ (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+
+ (gexp->derivation "nfs-server-test" test))
+
+(define %test-nfs-root-fs
+ (system-test
+ (name "nfs-root-fs")
+ (description "Test that an NFS server can be started and the exported
+directory can be used as root filesystem.")
+ (value (run-nfs-root-fs-test))))
diff --git a/guix/android-repo-download.scm b/guix/android-repo-download.scm
index 9d8937ddc0..5ff3e7edd4 100644
--- a/guix/android-repo-download.scm
+++ b/guix/android-repo-download.scm
@@ -78,9 +78,6 @@ generic name if unset."
(define zlib
(module-ref (resolve-interface '(gnu packages compression)) 'zlib))
- (define guile-json
- (module-ref (resolve-interface '(gnu packages guile)) 'guile-json-3))
-
(define gnutls
(module-ref (resolve-interface '(gnu packages tls)) 'gnutls))
@@ -102,7 +99,7 @@ generic name if unset."
(define build
(with-imported-modules modules
- (with-extensions (list guile-json gnutls) ;for (guix swh)
+ (with-extensions (list gnutls)
#~(begin
(use-modules (guix build android-repo)
(guix build utils)
diff --git a/guix/build-system/asdf.scm b/guix/build-system/asdf.scm
index 630b99e2bf..28403a1960 100644
--- a/guix/build-system/asdf.scm
+++ b/guix/build-system/asdf.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
-;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -54,12 +54,14 @@
;; Imported build-side modules
`((guix build asdf-build-system)
(guix build lisp-utils)
+ (guix build union)
,@%gnu-build-system-modules))
(define %asdf-build-modules
;; Used (visible) build-side modules
'((guix build asdf-build-system)
(guix build utils)
+ (guix build union)
(guix build lisp-utils)))
(define (default-lisp implementation)
@@ -210,7 +212,7 @@ set up using CL source package conventions."
(define base-arguments
(if target-is-source?
(strip-keyword-arguments
- '(#:tests? #:asd-file #:lisp #:asd-system-name #:test-asd-file)
+ '(#:tests? #:asd-files #:lisp #:asd-systems #:test-asd-file)
(package-arguments pkg))
(package-arguments pkg)))
@@ -278,8 +280,8 @@ set up using CL source package conventions."
(lambda* (store name inputs
#:key source outputs
(tests? #t)
- (asd-file #f)
- (asd-system-name #f)
+ (asd-files ''())
+ (asd-systems ''())
(test-asd-file #f)
(phases '(@ (guix build asdf-build-system)
%standard-phases))
@@ -289,12 +291,17 @@ set up using CL source package conventions."
(imported-modules %asdf-build-system-modules)
(modules %asdf-build-modules))
- (define system-name
- (or asd-system-name
- (string-drop
- ;; NAME is the value returned from `package-full-name'.
- (hyphen-separated-name->name+version name)
- (1+ (string-length lisp-type))))) ; drop the "<lisp>-" prefix.
+ ;; FIXME: The definition of 'systems' is pretty hacky.
+ ;; Is there a more elegant way to do it?
+ (define systems
+ (if (null? (cadr asd-systems))
+ `(quote
+ ,(list
+ (string-drop
+ ;; NAME is the value returned from `package-full-name'.
+ (hyphen-separated-name->name+version name)
+ (1+ (string-length lisp-type))))) ; drop the "<lisp>-" prefix.
+ asd-systems))
(define builder
`(begin
@@ -309,8 +316,8 @@ set up using CL source package conventions."
(derivation->output-path source))
((source) source)
(source source))
- #:asd-file ,(or asd-file (string-append system-name ".asd"))
- #:asd-system-name ,system-name
+ #:asd-files ,asd-files
+ #:asd-systems ,systems
#:test-asd-file ,test-asd-file
#:system ,system
#:tests? ,tests?
diff --git a/guix/build/asdf-build-system.scm b/guix/build/asdf-build-system.scm
index 25dd031962..6ad855cab2 100644
--- a/guix/build/asdf-build-system.scm
+++ b/guix/build/asdf-build-system.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
+;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -19,6 +20,7 @@
(define-module (guix build asdf-build-system)
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
#:use-module (guix build utils)
+ #:use-module (guix build union)
#:use-module (guix build lisp-utils)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
@@ -41,14 +43,22 @@
;;
;; Code:
-(define %object-prefix "/lib")
+(define %object-prefix "/lib/common-lisp")
(define (%lisp-source-install-prefix)
- (string-append %source-install-prefix "/" (%lisp-type) "-source"))
+ (string-append %source-install-prefix "/" (%lisp-type)))
(define %system-install-prefix
(string-append %source-install-prefix "/systems"))
+(define (main-system-name output)
+ (let ((package-name (package-name->name+version
+ (strip-store-file-name output)))
+ (lisp-prefix (string-append (%lisp-type) "-")))
+ (if (string-prefix? lisp-prefix package-name)
+ (string-drop package-name (string-length lisp-prefix))
+ package-name)))
+
(define (lisp-source-directory output name)
(string-append output (%lisp-source-install-prefix) "/" name))
@@ -71,6 +81,13 @@ to it's binary output."
(define (source-asd-file output name asd-file)
(string-append (lisp-source-directory output name) "/" asd-file))
+(define (find-asd-files output name asd-files)
+ (if (null? asd-files)
+ (find-files (lisp-source-directory output name) "\\.asd$")
+ (map (lambda (asd-file)
+ (source-asd-file output name asd-file))
+ asd-files)))
+
(define (copy-files-to-output out name)
"Copy all files from the current directory to OUT. Create an extra link to
any system-defining files in the source to a convenient location. This is
@@ -107,9 +124,10 @@ if it's present in the native-inputs."
(package-name->name+version
(strip-store-file-name output)))
(define (no-prefix pkgname)
- (if (string-index pkgname #\-)
- (string-drop pkgname (1+ (string-index pkgname #\-)))
- pkgname))
+ (let ((index (string-index pkgname #\-)))
+ (if index
+ (string-drop pkgname (1+ index))
+ pkgname)))
(define parent
(match (assoc package-name inputs
(lambda (key alist-car)
@@ -125,9 +143,10 @@ if it's present in the native-inputs."
(define parent-source
(and parent
(string-append parent "/share/common-lisp/"
- (string-take parent-name
- (string-index parent-name #\-))
- "-source")))
+ (let ((index (string-index parent-name #\-)))
+ (if index
+ (string-take parent-name index)
+ parent-name)))))
(define (first-subdirectory directory) ; From gnu-build-system.
"Return the file name of the first sub-directory of DIRECTORY."
@@ -146,122 +165,83 @@ if it's present in the native-inputs."
(with-directory-excursion source-directory
(copy-files-to-output output package-name)))
-(define* (copy-source #:key outputs asd-system-name #:allow-other-keys)
+(define* (copy-source #:key outputs asd-systems #:allow-other-keys)
"Copy the source to the library output."
(let* ((out (library-output outputs))
- (install-path (string-append out %source-install-prefix)))
- (copy-files-to-output out asd-system-name)
+ (install-path (string-append out %source-install-prefix))
+ (system-name (main-system-name out)))
+ (copy-files-to-output out system-name)
;; Hide the files from asdf
(with-directory-excursion install-path
- (rename-file "source" (string-append (%lisp-type) "-source"))
+ (rename-file "source" (%lisp-type))
(delete-file-recursively "systems")))
#t)
-(define* (build #:key outputs inputs asd-file asd-system-name
+(define* (configure #:key inputs #:allow-other-keys)
+ ;; Create a directory having the configuration files for
+ ;; all the dependencies in 'etc/common-lisp/'.
+ (let ((out (string-append (getcwd) "/.cl-union")))
+ (match inputs
+ (((name . directories) ...)
+ (union-build out (filter directory-exists? directories)
+ #:create-all-directories? #t
+ #:log-port (%make-void-port "w"))))
+ (setenv "CL_UNION" out)
+ (setenv "XDG_CONFIG_DIRS" (string-append out "/etc")))
+ #t)
+
+(define* (build #:key outputs inputs asd-files asd-systems
#:allow-other-keys)
"Compile the system."
(let* ((out (library-output outputs))
- (source-path (lisp-source-directory out asd-system-name))
+ (system-name (main-system-name out))
+ (source-path (string-append out (%lisp-source-install-prefix)))
(translations (wrap-output-translations
`(,(output-translation source-path
out))))
- (asd-file (source-asd-file out asd-system-name asd-file)))
-
+ (asd-files (find-asd-files out system-name asd-files)))
(setenv "ASDF_OUTPUT_TRANSLATIONS"
(replace-escaped-macros (format #f "~S" translations)))
-
(setenv "HOME" out) ; ecl's asdf sometimes wants to create $HOME/.cache
-
- (compile-system asd-system-name asd-file)
-
- ;; As above, ecl will sometimes create this even though it doesn't use it
-
- (let ((cache-directory (string-append out "/.cache")))
- (when (directory-exists? cache-directory)
- (delete-file-recursively cache-directory))))
+ (compile-systems asd-systems asd-files))
#t)
-(define* (check #:key tests? outputs inputs asd-file asd-system-name
+(define* (check #:key tests? outputs inputs asd-files asd-systems
test-asd-file
#:allow-other-keys)
"Test the system."
(let* ((out (library-output outputs))
- (asd-file (source-asd-file out asd-system-name asd-file))
+ (system-name (main-system-name out))
+ (asd-files (find-asd-files out system-name asd-files))
(test-asd-file
(and=> test-asd-file
- (cut source-asd-file out asd-system-name <>))))
+ (cut source-asd-file out system-name <>))))
(if tests?
- (test-system asd-system-name asd-file test-asd-file)
+ (test-system (first asd-systems) asd-files test-asd-file)
(format #t "test suite not run~%")))
#t)
-(define* (create-asd-file #:key outputs
- inputs
- asd-file
- asd-system-name
- #:allow-other-keys)
- "Create a system definition file for the built system."
- (let*-values (((out) (library-output outputs))
- ((_ version) (package-name->name+version
- (strip-store-file-name out)))
- ((new-asd-file) (string-append
- (library-directory out)
- "/" (normalize-string asd-system-name)
- ".asd")))
-
- (make-asd-file new-asd-file
- #:system asd-system-name
- #:version version
- #:inputs inputs
- #:system-asd-file asd-file))
- #t)
-
-(define* (symlink-asd-files #:key outputs #:allow-other-keys)
- "Create an extra reference to the system in a convenient location."
- (let* ((out (library-output outputs)))
- (for-each
- (lambda (asd-file)
- (receive (new-asd-file asd-file-directory)
- (bundle-asd-file out asd-file)
- (mkdir-p asd-file-directory)
- (symlink asd-file new-asd-file)
- ;; Update the source registry for future phases which might want to
- ;; use the newly compiled system.
- (prepend-to-source-registry
- (string-append asd-file-directory "/"))))
-
- (find-files (string-append out %object-prefix) "\\.asd$")))
- #t)
+(define* (create-asdf-configuration #:key inputs outputs #:allow-other-keys)
+ "Create the ASDF configuration files for the built systems."
+ (let* ((system-name (main-system-name (assoc-ref outputs "out")))
+ (out (library-output outputs))
+ (conf-dir (string-append out "/etc/common-lisp"))
+ (deps-conf-dir (string-append (getenv "CL_UNION") "/etc/common-lisp"))
+ (source-dir (lisp-source-directory out system-name))
+ (lib-dir (string-append (library-directory out) "/" system-name)))
+ (make-asdf-configuration system-name conf-dir deps-conf-dir
+ source-dir lib-dir)
+ #t))
(define* (cleanup-files #:key outputs
#:allow-other-keys)
"Remove any compiled files which are not a part of the final bundle."
- (let ((out (library-output outputs)))
- (match (%lisp-type)
- ("sbcl"
- (for-each
- (lambda (file)
- (unless (string-suffix? "--system.fasl" file)
- (delete-file file)))
- (find-files out "\\.fasl$")))
- ("ecl"
- (for-each delete-file
- (append (find-files out "\\.fas$")
- (find-files out "\\.o$")))))
-
- (with-directory-excursion (library-directory out)
- (for-each
- (lambda (file)
- (rename-file file
- (string-append "./" (basename file))))
- (find-files "."))
- (for-each delete-file-recursively
- (scandir "."
- (lambda (file)
- (and
- (directory-exists? file)
- (string<> "." file)
- (string<> ".." file)))))))
+ (let* ((out (library-output outputs))
+ (cache-directory (string-append out "/.cache")))
+ ;; Remove the cache directory in case the lisp implementation wrote
+ ;; something in there when compiling or testing a system.
+ (when (directory-exists? cache-directory)
+ (delete-file-recursively cache-directory)))
#t)
(define* (strip #:rest args)
@@ -280,15 +260,14 @@ if it's present in the native-inputs."
(define %standard-phases
(modify-phases gnu:%standard-phases
(delete 'bootstrap)
- (delete 'configure)
- (delete 'install)
+ (replace 'configure configure)
+ (add-before 'configure 'copy-source copy-source)
(replace 'build build)
- (add-before 'build 'copy-source copy-source)
(replace 'check check)
- (replace 'strip strip)
- (add-after 'check 'create-asd-file create-asd-file)
- (add-after 'create-asd-file 'cleanup cleanup-files)
- (add-after 'cleanup 'create-symlinks symlink-asd-files)))
+ (add-after 'check 'create-asdf-configuration create-asdf-configuration)
+ (add-after 'create-asdf-configuration 'cleanup cleanup-files)
+ (delete 'install)
+ (replace 'strip strip)))
(define* (asdf-build #:key inputs
(phases %standard-phases)
diff --git a/guix/build/lisp-utils.scm b/guix/build/lisp-utils.scm
index f6d9168c48..8a02cb68dd 100644
--- a/guix/build/lisp-utils.scm
+++ b/guix/build/lisp-utils.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
+;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,19 +29,17 @@
%lisp-type
%source-install-prefix
lisp-eval-program
- compile-system
+ compile-systems
test-system
replace-escaped-macros
generate-executable-wrapper-system
generate-executable-entry-point
generate-executable-for-system
- %bundle-install-prefix
- bundle-asd-file
wrap-output-translations
prepend-to-source-registry
build-program
build-image
- make-asd-file
+ make-asdf-configuration
valid-char-set
normalize-string
library-output))
@@ -65,9 +64,6 @@
;; link farm for system definition (.asd) files.
(define %source-install-prefix "/share/common-lisp")
-(define (%bundle-install-prefix)
- (string-append %source-install-prefix "/" (%lisp-type) "-bundle-systems"))
-
(define (library-output outputs)
"If a `lib' output exists, build things there. Otherwise use `out'."
(or (assoc-ref outputs "lib") (assoc-ref outputs "out")))
@@ -81,38 +77,6 @@
"Replace invalid characters in STR with a hyphen."
(string-join (string-tokenize str valid-char-set) "-"))
-(define (normalize-dependency dependency)
- "Normalize the name of DEPENDENCY. Handles dependency definitions of the
-dependency-def form described by
-<https://common-lisp.net/project/asdf/asdf.html#The-defsystem-grammar>.
-Assume that any symbols in DEPENDENCY will be in upper-case."
- (match dependency
- ((':VERSION name rest ...)
- `(:version ,(normalize-string name) ,@rest))
- ((':FEATURE feature-specification dependency-specification)
- `(:feature
- ,feature-specification
- ,(normalize-dependency dependency-specification)))
- ((? string? name) (normalize-string name))
- (require-specification require-specification)))
-
-(define (inputs->asd-file-map inputs)
- "Produce a hash table of the form (system . asd-file), where system is the
-name of an ASD system, and asd-file is the full path to its definition."
- (alist->hash-table
- (filter-map
- (match-lambda
- ((_ . path)
- (let ((prefix (string-append path (%bundle-install-prefix))))
- (and (directory-exists? prefix)
- (match (find-files prefix "\\.asd$")
- ((asd-file)
- (cons
- (string-drop-right (basename asd-file) 4) ; drop ".asd"
- asd-file))
- (_ #f))))))
- inputs)))
-
(define (wrap-output-translations translations)
`(:output-translations
,@translations
@@ -143,70 +107,26 @@ with PROGRAM."
"--eval" "(quit)"))
(_ (error "The LISP provided is not supported at this time."))))
-(define (asdf-load-all systems)
- (map (lambda (system)
- `(asdf:load-system ,system))
- systems))
-
-(define (compile-system system asd-file)
- "Use a lisp implementation to compile SYSTEM using asdf. Load ASD-FILE
-first."
+(define (compile-systems systems asd-files)
+ "Use a lisp implementation to compile the SYSTEMS using asdf.
+Load ASD-FILES first."
(lisp-eval-program
`((require :asdf)
- (asdf:load-asd (truename ,asd-file) :name ,(normalize-string system))
- (asdf:operate 'asdf:compile-bundle-op ,system))))
-
-(define (system-dependencies system asd-file)
- "Return the dependencies of SYSTEM, as reported by
-asdf:system-depends-on. First load the system's ASD-FILE."
- (define deps-file ".deps.sexp")
- (define program
- `((require :asdf)
- (asdf:load-asd (truename ,asd-file) :name ,(normalize-string system))
- (with-open-file
- (stream ,deps-file :direction :output)
- (format stream
- "~s~%"
- (asdf:system-depends-on
- (asdf:find-system ,system))))))
-
- (dynamic-wind
- (lambda _
- (lisp-eval-program program))
- (lambda _
- (call-with-input-file deps-file read))
- (lambda _
- (when (file-exists? deps-file)
- (delete-file deps-file)))))
-
-(define (compiled-system system)
- (let ((system (basename system))) ; this is how asdf handles slashes
- (match (%lisp-type)
- ("sbcl" (string-append system "--system"))
- (_ system))))
-
-(define* (generate-system-definition system
- #:key version dependencies component?)
- `(asdf:defsystem
- ,(normalize-string system)
- ,@(if component?
- '(:class asdf/bundle:prebuilt-system)
- '())
- :version ,version
- :depends-on ,dependencies
- ,@(if component?
- `(:components ((:compiled-file ,(compiled-system system))))
- '())
- ,@(if (string=? "ecl" (%lisp-type))
- `(:lib ,(string-append system ".a"))
- '())))
-
-(define (test-system system asd-file test-asd-file)
- "Use a lisp implementation to test SYSTEM using asdf. Load ASD-FILE first.
+ ,@(map (lambda (asd-file)
+ `(asdf:load-asd (truename ,asd-file)))
+ asd-files)
+ ,@(map (lambda (system)
+ `(asdf:compile-system ,system))
+ systems))))
+
+(define (test-system system asd-files test-asd-file)
+ "Use a lisp implementation to test SYSTEM using asdf. Load ASD-FILES first.
Also load TEST-ASD-FILE if necessary."
(lisp-eval-program
`((require :asdf)
- (asdf:load-asd (truename ,asd-file) :name ,(normalize-string system))
+ ,@(map (lambda (asd-file)
+ `(asdf:load-asd (truename ,asd-file)))
+ asd-files)
,@(if test-asd-file
`((asdf:load-asd (truename ,test-asd-file)))
;; Try some likely files.
@@ -237,6 +157,7 @@ created a \"SYSTEM-exec\" system which contains the entry program."
:executable t
:compression t))
'())
+ (asdf:load-asd (truename ,(string-append system "-exec.asd")))
(asdf:operate ',type ,(string-append system "-exec")))))
(define (generate-executable-wrapper-system system dependencies)
@@ -271,79 +192,30 @@ ENTRY-PROGRAM for SYSTEM within the current directory."
(declare (ignorable arguments))
,@entry-program))))))))
-(define (generate-dependency-links registry system)
- "Creates a program which populates asdf's source registry from REGISTRY, an
-alist of dependency names to corresponding asd files. This allows the system
-to locate its dependent systems."
- `(progn
- (asdf/source-registry:ensure-source-registry)
- ,@(map (match-lambda
- ((name . asd-file)
- `(setf
- (gethash ,name
- asdf/source-registry:*source-registry*)
- ,(string->symbol "#p")
- ,asd-file)))
- registry)))
-
-(define* (make-asd-file asd-file
- #:key system version inputs
- (system-asd-file #f))
- "Create an ASD-FILE for SYSTEM@VERSION, appending a program to allow the
-system to find its dependencies, as described by GENERATE-DEPENDENCY-LINKS."
- (define dependencies
- (let ((deps
- (system-dependencies system system-asd-file)))
- (if (eq? 'NIL deps)
- '()
- (map normalize-dependency deps))))
-
- (define lisp-input-map
- (inputs->asd-file-map inputs))
-
- (define dependency-name
- (match-lambda
- ((':version name _ ...) name)
- ((':feature _ dependency-specification)
- (dependency-name dependency-specification))
- ((? string? name) name)
- (_ #f)))
-
- (define registry
- (filter-map hash-get-handle
- (make-list (length dependencies)
- lisp-input-map)
- (map dependency-name dependencies)))
-
- ;; Ensure directory exists, which might not be the case for an .asd without components.
- (mkdir-p (dirname asd-file))
- (call-with-output-file asd-file
- (lambda (port)
- (display
- (replace-escaped-macros
- (format #f "~y~%~y~%"
- (generate-system-definition
- system
- #:version version
- #:dependencies dependencies
- ;; Some .asd don't have components, and thus they don't generate any .fasl.
- #:component? (match (%lisp-type)
- ("sbcl" (pair? (find-files (dirname asd-file)
- "--system\\.fasl$")))
- ("ecl" (pair? (find-files (dirname asd-file)
- "\\.fasb$")))
- (_ (error "The LISP provided is not supported at this time."))))
- (generate-dependency-links registry system)))
- port))))
-
-(define (bundle-asd-file output-path original-asd-file)
- "Find the symlinked bundle file for ORIGINAL-ASD-FILE by looking in
-OUTPUT-PATH/share/common-lisp/LISP-bundle-systems/<system>.asd. Returns two
-values: the asd file itself and the directory in which it resides."
- (let ((bundle-asd-path (string-append output-path
- (%bundle-install-prefix))))
- (values (string-append bundle-asd-path "/" (basename original-asd-file))
- bundle-asd-path)))
+(define (make-asdf-configuration name conf-dir deps-conf-dir source-dir lib-dir)
+ (let ((registry-dir (string-append
+ conf-dir "/source-registry.conf.d"))
+ (translations-dir (string-append
+ conf-dir "/asdf-output-translations.conf.d"))
+ (deps-registry-dir (string-append
+ deps-conf-dir "/source-registry.conf.d"))
+ (deps-translations-dir (string-append
+ deps-conf-dir
+ "/asdf-output-translations.conf.d")))
+ (mkdir-p registry-dir)
+ (when (directory-exists? deps-registry-dir)
+ (copy-recursively deps-registry-dir registry-dir))
+ (with-output-to-file (string-append registry-dir "/50-" name ".conf")
+ (lambda _
+ (format #t "~y~%" `(:tree ,source-dir))))
+
+ (mkdir-p translations-dir)
+ (when (directory-exists? deps-translations-dir)
+ (copy-recursively deps-translations-dir translations-dir))
+ (with-output-to-file (string-append translations-dir "/50-" name ".conf")
+ (lambda _
+ (format #t "~y~%" `((,source-dir :**/ :*.*.*)
+ (,lib-dir :**/ :*.*.*)))))))
(define (replace-escaped-macros string)
"Replace simple lisp forms that the guile writer escapes, for example by
@@ -368,6 +240,7 @@ will run ENTRY-PROGRAM, a list of Common Lisp expressions in which `arguments'
has been bound to the command-line arguments which were passed. Link in any
asd files from DEPENDENCY-PREFIXES to ensure references to those libraries are
retained."
+ (setenv "XDG_CONFIG_DIRS" (string-append (library-output outputs) "/etc"))
(generate-executable program
#:dependencies dependencies
#:dependency-prefixes dependency-prefixes
@@ -388,6 +261,7 @@ retained."
"Generate an image, possibly standalone, which contains all DEPENDENCIES,
placing the result in IMAGE.image. Link in any asd files from
DEPENDENCY-PREFIXES to ensure references to those libraries are retained."
+ (setenv "XDG_CONFIG_DIRS" (string-append (library-output outputs) "/etc"))
(generate-executable image
#:dependencies dependencies
#:dependency-prefixes dependency-prefixes
@@ -416,20 +290,15 @@ references to those libraries are retained."
(mkdir-p bin-directory)
(with-directory-excursion bin-directory
(generate-executable-wrapper-system name dependencies)
- (generate-executable-entry-point name entry-program))
-
- (prepend-to-source-registry
- (string-append bin-directory "/"))
-
- (setenv "ASDF_OUTPUT_TRANSLATIONS"
- (replace-escaped-macros
- (format
- #f "~S"
- (wrap-output-translations
- `(((,bin-directory :**/ :*.*.*)
- (,bin-directory :**/ :*.*.*)))))))
-
- (generate-executable-for-system type name #:compress? compress?)
+ (generate-executable-entry-point name entry-program)
+ (setenv "ASDF_OUTPUT_TRANSLATIONS"
+ (replace-escaped-macros
+ (format
+ #f "~S"
+ (wrap-output-translations
+ `(((,bin-directory :**/ :*.*.*)
+ (,bin-directory :**/ :*.*.*)))))))
+ (generate-executable-for-system type name #:compress? compress?))
(let* ((after-store-prefix-index
(string-index out-file #\/
@@ -445,9 +314,11 @@ references to those libraries are retained."
(symlink asd-file
(string-append hidden-asd-links
"/" (basename asd-file))))
- (find-files (string-append path (%bundle-install-prefix))
+ (find-files (string-append path %source-install-prefix "/"
+ (%lisp-type))
"\\.asd$")))
dependency-prefixes))
(delete-file (string-append bin-directory "/" name "-exec.asd"))
- (delete-file (string-append bin-directory "/" name "-exec.lisp"))))
+ (delete-file (string-append bin-directory "/" name "-exec.lisp"))
+ (delete-file (string-append bin-directory "/" name "-exec.fasl"))))
diff --git a/guix/ci.scm b/guix/ci.scm
index 02eb90e6c3..7a03befc7c 100644
--- a/guix/ci.scm
+++ b/guix/ci.scm
@@ -19,7 +19,6 @@
(define-module (guix ci)
#:use-module (guix http-client)
- #:use-module (guix json)
#:use-module (json)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match)
diff --git a/guix/cve.scm b/guix/cve.scm
index ae9cca2341..57b8459d01 100644
--- a/guix/cve.scm
+++ b/guix/cve.scm
@@ -19,7 +19,6 @@
(define-module (guix cve)
#:use-module (guix utils)
#:use-module (guix http-client)
- #:use-module (guix json)
#:use-module (guix i18n)
#:use-module ((guix diagnostics) #:select (formatted-message))
#:use-module (json)
diff --git a/guix/git-download.scm b/guix/git-download.scm
index 90634a8c4c..8e575e3b5f 100644
--- a/guix/git-download.scm
+++ b/guix/git-download.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
@@ -85,7 +85,7 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
'tar)))))
(define guile-json
- (module-ref (resolve-interface '(gnu packages guile)) 'guile-json-3))
+ (module-ref (resolve-interface '(gnu packages guile)) 'guile-json-4))
(define guile-zlib
(module-ref (resolve-interface '(gnu packages guile)) 'guile-zlib))
diff --git a/guix/git.scm b/guix/git.scm
index 7f8f9addfb..637936c16a 100644
--- a/guix/git.scm
+++ b/guix/git.scm
@@ -39,6 +39,7 @@
#:export (%repository-cache-directory
honor-system-x509-certificates!
+ url-cache-directory
with-repository
with-git-error-handling
false-if-git-not-found
diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm
index 085467b871..fd940415a2 100644
--- a/guix/import/cpan.scm
+++ b/guix/import/cpan.scm
@@ -28,7 +28,6 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (json)
- #:use-module (guix json)
#:use-module (gcrypt hash)
#:use-module (guix store)
#:use-module (guix utils)
diff --git a/guix/import/crate.scm b/guix/import/crate.scm
index 796a7641e9..f87c89163c 100644
--- a/guix/import/crate.scm
+++ b/guix/import/crate.scm
@@ -24,7 +24,6 @@
#:use-module ((guix download) #:prefix download:)
#:use-module (gcrypt hash)
#:use-module (guix http-client)
- #:use-module (guix json)
#:use-module (guix import json)
#:use-module (guix import utils)
#:use-module ((guix licenses) #:prefix license:)
diff --git a/guix/import/gem.scm b/guix/import/gem.scm
index a2d99ddbca..3fe240f36a 100644
--- a/guix/import/gem.scm
+++ b/guix/import/gem.scm
@@ -22,7 +22,7 @@
(define-module (guix import gem)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
- #:use-module (guix json)
+ #:use-module (json)
#:use-module ((guix download) #:prefix download:)
#:use-module (guix import utils)
#:use-module (guix import json)
diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm
index a4a2489688..15116e349d 100644
--- a/guix/import/pypi.scm
+++ b/guix/import/pypi.scm
@@ -46,7 +46,7 @@
#:use-module (guix import utils)
#:use-module ((guix download) #:prefix download:)
#:use-module (guix import json)
- #:use-module (guix json)
+ #:use-module (json)
#:use-module (guix packages)
#:use-module (guix upstream)
#:use-module ((guix licenses) #:prefix license:)
diff --git a/guix/json.scm b/guix/json.scm
deleted file mode 100644
index 3e3a28b749..0000000000
--- a/guix/json.scm
+++ /dev/null
@@ -1,83 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (guix json)
- #:use-module (json)
- #:use-module (srfi srfi-9))
-
-;;; Commentary:
-;;;
-;;; Helpers to map JSON objects to SRFI-9 records. Taken from (guix swh).
-;;; This module is superseded by 'define-json-mapping' as found since version
-;;; 4.2.0 of Guile-JSON and will be removed once migration is complete.
-;;;
-;;; Code:
-
-(define-syntax define-as-needed
- (lambda (s)
- "Define the given syntax rule unless (json) already provides it."
- (syntax-case s ()
- ((_ (macro args ...) body ...)
- (if (module-defined? (resolve-interface '(json))
- (syntax->datum #'macro))
- #'(eval-when (expand load eval)
- ;; Re-export MACRO from (json).
- (module-re-export! (current-module) '(macro)))
- #'(begin
- ;; Using Guile-JSON < 4.2.0, so provide our own MACRO.
- (define-syntax-rule (macro args ...)
- body ...)
- (eval-when (expand load eval)
- (module-export! (current-module) '(macro)))))))))
-
-(define-syntax-rule (define-json-reader json->record ctor spec ...)
- "Define JSON->RECORD as a procedure that converts a JSON representation,
-read from a port, string, or hash table, into a record created by CTOR and
-following SPEC, a series of field specifications."
- (define (json->record input)
- (let ((table (cond ((port? input)
- (json->scm input))
- ((string? input)
- (json-string->scm input))
- ((or (null? input) (pair? input))
- input))))
- (let-syntax ((extract-field (syntax-rules ()
- ((_ table (field key json->value))
- (json->value (assoc-ref table key)))
- ((_ table (field key))
- (assoc-ref table key))
- ((_ table (field))
- (assoc-ref table
- (symbol->string 'field))))))
- (ctor (extract-field table spec) ...)))))
-
-;; For some reason we cannot just have colliding definitions of
-;; 'define-json-mapping' (that leads to a build failure in users of this
-;; module), hence the use of 'define-as-needed'.
-(define-as-needed (define-json-mapping rtd ctor pred json->record
- (field getter spec ...) ...)
- "Define RTD as a record type with the given FIELDs and GETTERs, à la SRFI-9,
-and define JSON->RECORD as a conversion from JSON to a record of this type."
- (begin
- (define-record-type rtd
- (ctor field ...)
- pred
- (field getter) ...)
-
- (define-json-reader json->record ctor
- (field spec ...) ...)))
diff --git a/guix/nar.scm b/guix/nar.scm
index 6bb2ea5b96..a23af2e5de 100644
--- a/guix/nar.scm
+++ b/guix/nar.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
@@ -156,7 +156,8 @@ protected from GC."
(define* (restore-one-item port
#:key acl (verify-signature? #t) (lock? #t)
(log-port (current-error-port)))
- "Restore one store item from PORT; return its file name on success."
+ "Restore one store item of a nar bundle read from PORT; return its file name
+on success."
(define (assert-valid-signature signature hash file)
;; Bail out if SIGNATURE, which must be a string as produced by
@@ -251,11 +252,11 @@ a signature"))
(define* (restore-file-set port
#:key (verify-signature? #t) (lock? #t)
(log-port (current-error-port)))
- "Restore the file set read from PORT to the store. The format of the data
-on PORT must be as created by 'export-paths'---i.e., a series of Nar-formatted
-archives with interspersed meta-data joining them together, possibly with a
-digital signature at the end. Log progress to LOG-PORT. Return the list of
-files restored.
+ "Restore the file set (\"nar bundle\") read from PORT to the store. The
+format of the data on PORT must be as created by 'export-paths'---i.e., a
+series of Nar-formatted archives with interspersed meta-data joining them
+together, possibly with a digital signature at the end. Log progress to
+LOG-PORT. Return the list of files restored.
When LOCK? is #f, assume locks for the files to be restored are already held.
This is the case when the daemon calls a build hook.
diff --git a/guix/scripts.scm b/guix/scripts.scm
index 8534948892..9792aaebe9 100644
--- a/guix/scripts.scm
+++ b/guix/scripts.scm
@@ -34,7 +34,12 @@
#:use-module (srfi srfi-19)
#:use-module (srfi srfi-37)
#:use-module (ice-9 match)
- #:export (args-fold*
+ #:export (synopsis
+ category
+ define-command
+ %command-categories
+
+ args-fold*
parse-command-line
maybe-build
build-package
@@ -50,6 +55,61 @@
;;;
;;; Code:
+;; Syntactic keywords.
+(define synopsis 'command-synopsis)
+(define category 'command-category)
+
+(define-syntax define-command-categories
+ (syntax-rules (G_)
+ "Define command categories."
+ ((_ name assert-valid (identifiers (G_ synopses)) ...)
+ (begin
+ (define-public identifiers
+ ;; Define and export syntactic keywords.
+ (list 'syntactic-keyword-for-command-category))
+ ...
+
+ (define-syntax assert-valid
+ ;; Validate at expansion time that we're passed a valid category.
+ (syntax-rules (identifiers ...)
+ ((_ identifiers) #t)
+ ...))
+
+ (define name
+ ;; Alist mapping category name to synopsis.
+ `((identifiers . synopses) ...))))))
+
+;; Command categories.
+(define-command-categories %command-categories
+ assert-valid-command-category
+ (main (G_ "main commands"))
+ (development (G_ "software development commands"))
+ (packaging (G_ "packaging commands"))
+ (plumbing (G_ "plumbing commands"))
+ (internal (G_ "internal commands")))
+
+(define-syntax define-command
+ (syntax-rules (category synopsis)
+ "Define the given command as a procedure along with its synopsis and,
+optionally, its category. The synopsis becomes the docstring of the
+procedure, but both the category and synopsis are meant to be read (parsed) by
+'guix help'."
+ ;; The (synopsis ...) form is here so that xgettext sees those strings as
+ ;; translatable.
+ ((_ (name . args)
+ (synopsis doc) body ...)
+ (define (name . args)
+ doc
+ body ...))
+ ((_ (name . args)
+ (category cat) (synopsis doc)
+ body ...)
+ (begin
+ (assert-valid-command-category cat)
+ (define (name . args)
+ doc
+ body ...)))))
+
(define (args-fold* args options unrecognized-option-proc operand-proc . seeds)
"A wrapper on top of `args-fold' that does proper user-facing error
reporting."
diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm
index f3b86fba14..02557ce454 100644
--- a/guix/scripts/archive.scm
+++ b/guix/scripts/archive.scm
@@ -355,7 +355,10 @@ output port."
;;; Entry point.
;;;
-(define (guix-archive . args)
+(define-command (guix-archive . args)
+ (category plumbing)
+ (synopsis "manipulate, export, and import normalized archives (nars)")
+
(define (lines port)
;; Return lines read from PORT.
(let loop ((line (read-line port))
diff --git a/guix/scripts/authenticate.scm b/guix/scripts/authenticate.scm
index f1fd8ee895..37e6cef53c 100644
--- a/guix/scripts/authenticate.scm
+++ b/guix/scripts/authenticate.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2020 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -17,7 +17,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guix scripts authenticate)
- #:use-module (guix config)
+ #:use-module (guix scripts)
#:use-module (guix base16)
#:use-module (gcrypt pk-crypto)
#:use-module (guix pki)
@@ -39,16 +39,9 @@
;; Read a gcrypt sexp from a port and return it.
(compose string->canonical-sexp read-string))
-(define (read-hash-data port key-type)
- "Read sha256 hash data from PORT and return it as a gcrypt sexp. KEY-TYPE
-is a symbol representing the type of public key algo being used."
- (let* ((hex (read-string port))
- (bv (base16-string->bytevector (string-trim-both hex))))
- (bytevector->hash-data bv #:key-type key-type)))
-
-(define (sign-with-key key-file port)
- "Sign the hash read from PORT with KEY-FILE, and write an sexp that includes
-both the hash and the actual signature."
+(define (sign-with-key key-file sha256)
+ "Sign the hash SHA256 (a bytevector) with KEY-FILE, and write an sexp that
+includes both the hash and the actual signature."
(let* ((secret-key (call-with-input-file key-file read-canonical-sexp))
(public-key (if (string-suffix? ".sec" key-file)
(call-with-input-file
@@ -58,18 +51,18 @@ both the hash and the actual signature."
(leave
(G_ "cannot find public key for secret key '~a'~%")
key-file)))
- (data (read-hash-data port (key-type public-key)))
+ (data (bytevector->hash-data sha256
+ #:key-type (key-type public-key)))
(signature (signature-sexp data secret-key public-key)))
(display (canonical-sexp->string signature))
#t))
-(define (validate-signature port)
- "Read the signature from PORT (which is as produced above), check whether
-its public key is authorized, verify the signature, and print the signed data
-to stdout upon success."
- (let* ((signature (read-canonical-sexp port))
- (subject (signature-subject signature))
- (data (signature-signed-data signature)))
+(define (validate-signature signature)
+ "Validate SIGNATURE, a canonical sexp. Check whether its public key is
+authorized, verify the signature, and print the signed data to stdout upon
+success."
+ (let* ((subject (signature-subject signature))
+ (data (signature-signed-data signature)))
(if (and data subject)
(if (authorized-key? subject)
(if (valid-signature? signature)
@@ -85,12 +78,13 @@ to stdout upon success."
;;;
-;;; Entry point with 'openssl'-compatible interface. We support this
-;;; interface because that's what the daemon expects, and we want to leave it
-;;; unmodified currently.
+;;; Entry point.
;;;
-(define (guix-authenticate . args)
+(define-command (guix-authenticate . args)
+ (category internal)
+ (synopsis "sign or verify signatures on normalized archives (nars)")
+
;; Signature sexps written to stdout may contain binary data, so force
;; ISO-8859-1 encoding so that things are not mangled. See
;; <http://bugs.gnu.org/17312> for details.
@@ -101,22 +95,14 @@ to stdout upon success."
(with-fluids ((%default-port-encoding "ISO-8859-1")
(%default-port-conversion-strategy 'error))
(match args
- ;; As invoked by guix-daemon.
- (("rsautl" "-sign" "-inkey" key "-in" hash-file)
- (call-with-input-file hash-file
- (lambda (port)
- (sign-with-key key port))))
- ;; As invoked by Nix/Crypto.pm (used by Hydra.)
- (("rsautl" "-sign" "-inkey" key)
- (sign-with-key key (current-input-port)))
- ;; As invoked by guix-daemon.
- (("rsautl" "-verify" "-inkey" _ "-pubin" "-in" signature-file)
+ (("sign" key-file hash)
+ (sign-with-key key-file (base16-string->bytevector hash)))
+ (("verify" signature-file)
(call-with-input-file signature-file
(lambda (port)
- (validate-signature port))))
- ;; As invoked by Nix/Crypto.pm (used by Hydra.)
- (("rsautl" "-verify" "-inkey" _ "-pubin")
- (validate-signature (current-input-port)))
+ (validate-signature (string->canonical-sexp
+ (read-string port))))))
+
(("--help")
(display (G_ "Usage: guix authenticate OPTION...
Sign or verify the signature on the given file. This tool is meant to
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index 6286a43c02..25418661b9 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -945,7 +945,10 @@ needed."
;;; Entry point.
;;;
-(define (guix-build . args)
+(define-command (guix-build . args)
+ (category packaging)
+ (synopsis "build packages or derivations without installing them")
+
(define opts
(parse-command-line args %options
(list %default-options)))
diff --git a/guix/scripts/challenge.scm b/guix/scripts/challenge.scm
index 624f51b200..39bd2c1c0f 100644
--- a/guix/scripts/challenge.scm
+++ b/guix/scripts/challenge.scm
@@ -475,7 +475,10 @@ Challenge the substitutes for PACKAGE... provided by one or more servers.\n"))
;;; Entry point.
;;;
-(define (guix-challenge . args)
+(define-command (guix-challenge . args)
+ (category packaging)
+ (synopsis "challenge substitute servers, comparing their binaries")
+
(with-error-handling
(let* ((opts (parse-command-line args %options (list %default-options)
#:build-options? #f))
diff --git a/guix/scripts/container.scm b/guix/scripts/container.scm
index 8041d64b6b..2369437043 100644
--- a/guix/scripts/container.scm
+++ b/guix/scripts/container.scm
@@ -20,6 +20,7 @@
(define-module (guix scripts container)
#:use-module (ice-9 match)
#:use-module (guix ui)
+ #:use-module (guix scripts)
#:export (guix-container))
(define (show-help)
@@ -46,7 +47,10 @@ Build and manipulate Linux containers.\n"))
(proc (string->symbol (string-append "guix-container-" name))))
(module-ref module proc)))
-(define (guix-container . args)
+(define-command (guix-container . args)
+ (category development)
+ (synopsis "run code in containers created by 'guix environment -C'")
+
(with-error-handling
(match args
(()
diff --git a/guix/scripts/copy.scm b/guix/scripts/copy.scm
index 274620fc1e..2780d4fbe9 100644
--- a/guix/scripts/copy.scm
+++ b/guix/scripts/copy.scm
@@ -170,7 +170,10 @@ Copy ITEMS to or from the specified host over SSH.\n"))
;;; Entry point.
;;;
-(define (guix-copy . args)
+(define-command (guix-copy . args)
+ (category plumbing)
+ (synopsis "copy store items remotely over SSH")
+
(with-error-handling
(let* ((opts (parse-command-line args %options (list %default-options)))
(source (assoc-ref opts 'source))
diff --git a/guix/scripts/deploy.scm b/guix/scripts/deploy.scm
index 4a68197620..1b5be307be 100644
--- a/guix/scripts/deploy.scm
+++ b/guix/scripts/deploy.scm
@@ -136,7 +136,8 @@ Perform the deployment specified by FILE.\n"))
(machine-display-name machine))))
-(define (guix-deploy . args)
+(define-command (guix-deploy . args)
+ (synopsis "deploy operating systems on a set of machines")
(define (handle-argument arg result)
(alist-cons 'file arg result))
diff --git a/guix/scripts/describe.scm b/guix/scripts/describe.scm
index bc868ffbbf..c3667516eb 100644
--- a/guix/scripts/describe.scm
+++ b/guix/scripts/describe.scm
@@ -304,7 +304,8 @@ text. The hyperlink links to a web view of COMMIT, when available."
;;; Entry point.
;;;
-(define (guix-describe . args)
+(define-command (guix-describe . args)
+ (synopsis "describe the channel revisions currently used")
(let* ((opts (args-fold* args %options
(lambda (opt name arg result)
(leave (G_ "~A: unrecognized option~%")
diff --git a/guix/scripts/download.scm b/guix/scripts/download.scm
index 589f62da9d..ce8dd8b02c 100644
--- a/guix/scripts/download.scm
+++ b/guix/scripts/download.scm
@@ -156,7 +156,10 @@ and 'base16' ('hex' and 'hexadecimal' can be used as well).\n"))
;;; Entry point.
;;;
-(define (guix-download . args)
+(define-command (guix-download . args)
+ (category packaging)
+ (synopsis "download a file to the store and print its hash")
+
(define (parse-options)
;; Return the alist of option values.
(args-fold* args %options
diff --git a/guix/scripts/edit.scm b/guix/scripts/edit.scm
index 43f3011869..49c9d945b6 100644
--- a/guix/scripts/edit.scm
+++ b/guix/scripts/edit.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2016, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
;;;
@@ -78,7 +78,10 @@ line."
(search-path* %load-path (location-file location))))
-(define (guix-edit . args)
+(define-command (guix-edit . args)
+ (category packaging)
+ (synopsis "view and edit package definitions")
+
(define (parse-arguments)
;; Return the list of package names.
(args-fold* args %options
diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm
index 1fb3505307..ad50281eb2 100644
--- a/guix/scripts/environment.scm
+++ b/guix/scripts/environment.scm
@@ -678,7 +678,10 @@ message if any test fails."
;;; Entry point.
;;;
-(define (guix-environment . args)
+(define-command (guix-environment . args)
+ (category development)
+ (synopsis "spawn one-off software environments")
+
(with-error-handling
(let* ((opts (parse-args args))
(pure? (assoc-ref opts 'pure))
diff --git a/guix/scripts/gc.scm b/guix/scripts/gc.scm
index ab7c13315f..043273f491 100644
--- a/guix/scripts/gc.scm
+++ b/guix/scripts/gc.scm
@@ -220,7 +220,9 @@ is deprecated; use '-D'~%"))
;;; Entry point.
;;;
-(define (guix-gc . args)
+(define-command (guix-gc . args)
+ (synopsis "invoke the garbage collector")
+
(define (parse-options)
;; Return the alist of option values.
(parse-command-line args %options (list %default-options)
diff --git a/guix/scripts/git.scm b/guix/scripts/git.scm
index bc829cbe99..4436d8a6e0 100644
--- a/guix/scripts/git.scm
+++ b/guix/scripts/git.scm
@@ -19,6 +19,7 @@
(define-module (guix scripts git)
#:use-module (ice-9 match)
#:use-module (guix ui)
+ #:use-module (guix scripts)
#:export (guix-git))
(define (show-help)
@@ -45,7 +46,10 @@ Operate on Git repositories.\n"))
(proc (string->symbol (string-append "guix-git-" name))))
(module-ref module proc)))
-(define (guix-git . args)
+(define-command (guix-git . args)
+ (category plumbing)
+ (synopsis "operate on Git repositories")
+
(with-error-handling
(match args
(()
diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm
index 73d9269de2..d7a08a4fe1 100644
--- a/guix/scripts/graph.scm
+++ b/guix/scripts/graph.scm
@@ -565,7 +565,10 @@ Emit a representation of the dependency graph of PACKAGE...\n"))
;;; Entry point.
;;;
-(define (guix-graph . args)
+(define-command (guix-graph . args)
+ (category packaging)
+ (synopsis "view and query package dependency graphs")
+
(with-error-handling
(define opts
(parse-command-line args %options
diff --git a/guix/scripts/hash.scm b/guix/scripts/hash.scm
index 9b4f419a24..797b99f053 100644
--- a/guix/scripts/hash.scm
+++ b/guix/scripts/hash.scm
@@ -116,7 +116,10 @@ and 'base16' ('hex' and 'hexadecimal' can be used as well).\n"))
;;; Entry point.
;;;
-(define (guix-hash . args)
+(define-command (guix-hash . args)
+ (category packaging)
+ (synopsis "compute the cryptographic hash of a file")
+
(define (parse-options)
;; Return the alist of option values.
(parse-command-line args %options (list %default-options)
diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm
index c6cc93fad8..0a3863f965 100644
--- a/guix/scripts/import.scm
+++ b/guix/scripts/import.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 David Thompson <davet@gnu.org>
;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
@@ -21,6 +21,7 @@
(define-module (guix scripts import)
#:use-module (guix ui)
+ #:use-module (guix scripts)
#:use-module (guix utils)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
@@ -98,7 +99,10 @@ Run IMPORTER with ARGS.\n"))
(newline)
(show-bug-report-information))
-(define (guix-import . args)
+(define-command (guix-import . args)
+ (category packaging)
+ (synopsis "import a package definition from an external repository")
+
(match args
(()
(format (current-error-port)
diff --git a/guix/scripts/install.scm b/guix/scripts/install.scm
index d88e86e77a..894e60f9da 100644
--- a/guix/scripts/install.scm
+++ b/guix/scripts/install.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -66,7 +66,9 @@ This is an alias for 'guix package -i'.\n"))
%transformation-options
%standard-build-options)))
-(define (guix-install . args)
+(define-command (guix-install . args)
+ (synopsis "install packages")
+
(define (handle-argument arg result arg-handler)
;; Treat all non-option arguments as package specs.
(values (alist-cons 'install arg result)
diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm
index 5168a1ca17..979d4f8363 100644
--- a/guix/scripts/lint.scm
+++ b/guix/scripts/lint.scm
@@ -157,7 +157,10 @@ run the checkers on all packages.\n"))
;;; Entry Point
;;;
-(define (guix-lint . args)
+(define-command (guix-lint . args)
+ (category packaging)
+ (synopsis "validate package definitions")
+
(define (parse-options)
;; Return the alist of option values.
(parse-command-line args %options (list %default-options)
diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm
index 1e0e9d7905..3dc8ccefcb 100644
--- a/guix/scripts/offload.scm
+++ b/guix/scripts/offload.scm
@@ -39,6 +39,7 @@
#:select (fcntl-flock set-thread-name))
#:use-module ((guix build utils) #:select (which mkdir-p))
#:use-module (guix ui)
+ #:use-module (guix scripts)
#:use-module (guix diagnostics)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
@@ -725,7 +726,10 @@ machine."
;;; Entry point.
;;;
-(define (guix-offload . args)
+(define-command (guix-offload . args)
+ (category plumbing)
+ (synopsis "set up and operate build offloading")
+
(define request-line-rx
;; The request format. See 'tryBuildHook' method in build.cc.
(make-regexp "([01]) ([a-z0-9_-]+) (/[[:graph:]]+.drv) ([[:graph:]]*)"))
diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index 9d6881fdaf..379e6a3ac6 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -1089,7 +1089,10 @@ Create a bundle of PACKAGE.\n"))
;;; Entry point.
;;;
-(define (guix-pack . args)
+(define-command (guix-pack . args)
+ (category development)
+ (synopsis "create application bundles")
+
(define opts
(parse-command-line args %options (list %default-options)))
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index ac8dedb5f3..4eb968a49b 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -941,7 +941,9 @@ processed, #f otherwise."
;;; Entry point.
;;;
-(define (guix-package . args)
+(define-command (guix-package . args)
+ (synopsis "manage packages and profiles")
+
(define (handle-argument arg result arg-handler)
;; Process non-option argument ARG by calling back ARG-HANDLER.
(if arg-handler
diff --git a/guix/scripts/perform-download.scm b/guix/scripts/perform-download.scm
index df787a9940..8d409092ba 100644
--- a/guix/scripts/perform-download.scm
+++ b/guix/scripts/perform-download.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -18,6 +18,7 @@
(define-module (guix scripts perform-download)
#:use-module (guix ui)
+ #:use-module (guix scripts)
#:use-module (guix derivations)
#:use-module ((guix store) #:select (derivation-path? store-path?))
#:use-module (guix build download)
@@ -91,14 +92,15 @@ actual output is different from that when we're doing a 'bmCheck' or
(leave (G_ "refusing to run with elevated privileges (UID ~a)~%")
(getuid))))
-(define (guix-perform-download . args)
- "Perform the download described by the given fixed-output derivation.
+(define-command (guix-perform-download . args)
+ (category internal)
+ (synopsis "perform download described by fixed-output derivations")
-This is an \"out-of-band\" download in that this code is executed directly by
-the daemon and not explicitly described as an input of the derivation. This
-allows us to sidestep bootstrapping problems, such downloading the source code
-of GnuTLS over HTTPS, before we have built GnuTLS. See
-<http://bugs.gnu.org/22774>."
+ ;; This is an "out-of-band" download in that this code is executed directly
+ ;; by the daemon and not explicitly described as an input of the derivation.
+ ;; This allows us to sidestep bootstrapping problems, such as downloading
+ ;; the source code of GnuTLS over HTTPS before we have built GnuTLS. See
+ ;; <https://bugs.gnu.org/22774>.
(define print-build-trace?
(match (getenv "_NIX_OPTIONS")
diff --git a/guix/scripts/processes.scm b/guix/scripts/processes.scm
index 35698a0216..b4ca7b1687 100644
--- a/guix/scripts/processes.scm
+++ b/guix/scripts/processes.scm
@@ -223,7 +223,9 @@ List the current Guix sessions and their processes."))
;;; Entry point.
;;;
-(define (guix-processes . args)
+(define-command (guix-processes . args)
+ (category plumbing)
+ (synopsis "list currently running sessions")
(define options
(args-fold* args %options
(lambda (opt name arg result)
diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm
index 61542f83a0..4eaf961ab2 100644
--- a/guix/scripts/publish.scm
+++ b/guix/scripts/publish.scm
@@ -1013,7 +1013,10 @@ methods, return the applicable compression."
;;; Entry point.
;;;
-(define (guix-publish . args)
+(define-command (guix-publish . args)
+ (category packaging)
+ (synopsis "publish build results over HTTP")
+
(with-error-handling
(let* ((opts (args-fold* args %options
(lambda (opt name arg result)
diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm
index 3b980b8f3f..bb1b560a22 100644
--- a/guix/scripts/pull.scm
+++ b/guix/scripts/pull.scm
@@ -751,7 +751,9 @@ Use '~/.config/guix/channels.scm' instead."))
channels)))
-(define (guix-pull . args)
+(define-command (guix-pull . args)
+ (synopsis "pull the latest revision of Guix")
+
(with-error-handling
(with-git-error-handling
(let* ((opts (parse-command-line args %options
diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm
index efada1df5a..4a71df28d1 100644
--- a/guix/scripts/refresh.scm
+++ b/guix/scripts/refresh.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
@@ -496,7 +496,10 @@ all are dependent packages: ~{~a~^ ~}~%")
;;; Entry point.
;;;
-(define (guix-refresh . args)
+(define-command (guix-refresh . args)
+ (category packaging)
+ (synopsis "update existing package definitions")
+
(define (parse-options)
;; Return the alist of option values.
(parse-command-line args %options (list %default-options)
diff --git a/guix/scripts/remove.scm b/guix/scripts/remove.scm
index 2f06ea4f37..a46ad04d56 100644
--- a/guix/scripts/remove.scm
+++ b/guix/scripts/remove.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -63,7 +63,9 @@ This is an alias for 'guix package -r'.\n"))
%standard-build-options)))
-(define (guix-remove . args)
+(define-command (guix-remove . args)
+ (synopsis "remove installed packages")
+
(define (handle-argument arg result arg-handler)
;; Treat all non-option arguments as package specs.
(values (alist-cons 'remove arg result)
diff --git a/guix/scripts/repl.scm b/guix/scripts/repl.scm
index 0ea9c3655c..3c79e89f8d 100644
--- a/guix/scripts/repl.scm
+++ b/guix/scripts/repl.scm
@@ -137,7 +137,10 @@ call THUNK."
(loop)))))))
-(define (guix-repl . args)
+(define-command (guix-repl . args)
+ (category plumbing)
+ (synopsis "read-eval-print loop (REPL) for interactive programming")
+
(define opts
(args-fold* args %options
(lambda (opt name arg result)
diff --git a/guix/scripts/search.scm b/guix/scripts/search.scm
index 827b2eb7a9..0c9e6af07b 100644
--- a/guix/scripts/search.scm
+++ b/guix/scripts/search.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -57,7 +57,9 @@ This is an alias for 'guix package -s'.\n"))
(member "load-path" (option-names option)))
%standard-build-options)))
-(define (guix-search . args)
+(define-command (guix-search . args)
+ (synopsis "search for packages")
+
(define (handle-argument arg result)
;; Treat all non-option arguments as regexps.
(cons `(query search ,(or arg ""))
diff --git a/guix/scripts/show.scm b/guix/scripts/show.scm
index a2b0030a63..535d03c1a6 100644
--- a/guix/scripts/show.scm
+++ b/guix/scripts/show.scm
@@ -57,7 +57,9 @@ This is an alias for 'guix package --show='.\n"))
(member "load-path" (option-names option)))
%standard-build-options)))
-(define (guix-show . args)
+(define-command (guix-show . args)
+ (synopsis "show information about packages")
+
(define (handle-argument arg result)
;; Treat all non-option arguments as regexps.
(cons `(query show ,arg)
diff --git a/guix/scripts/size.scm b/guix/scripts/size.scm
index c42f4f7782..e46983382a 100644
--- a/guix/scripts/size.scm
+++ b/guix/scripts/size.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -298,7 +298,10 @@ Report the size of the PACKAGE or STORE-ITEM, with its dependencies.\n"))
;;; Entry point.
;;;
-(define (guix-size . args)
+(define-command (guix-size . args)
+ (category packaging)
+ (synopsis "profile the on-disk size of packages")
+
(with-error-handling
(let* ((opts (parse-command-line args %options (list %default-options)
#:build-options? #f))
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index 117d824449..26613df68f 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -20,6 +20,7 @@
(define-module (guix scripts substitute)
#:use-module (guix ui)
+ #:use-module (guix scripts)
#:use-module (guix store)
#:use-module (guix utils)
#:use-module (guix combinators)
@@ -1095,8 +1096,10 @@ default value."
(unless (string->uri uri)
(leave (G_ "~a: invalid URI~%") uri)))
-(define (guix-substitute . args)
- "Implement the build daemon's substituter protocol."
+(define-command (guix-substitute . args)
+ (category internal)
+ (synopsis "implement the build daemon's substituter protocol")
+
(define print-build-trace?
(match (or (find-daemon-option "untrusted-print-extended-build-trace")
(find-daemon-option "print-extended-build-trace"))
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index b75b0e5b60..bd5f84fc5b 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2019 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -956,9 +957,11 @@ Some ACTIONS support additional ARGS.\n"))
(display (G_ "
--save-provenance save provenance information"))
(display (G_ "
- --share=SPEC for 'vm', share host file system according to SPEC"))
+ --share=SPEC for 'vm' and 'container', share host file system with
+ read/write access according to SPEC"))
(display (G_ "
- --expose=SPEC for 'vm', expose host file system according to SPEC"))
+ --expose=SPEC for 'vm' and 'container', expose host file system
+ directory as read-only according to SPEC"))
(display (G_ "
-N, --network for 'container', allow containers to access the network"))
(display (G_ "
@@ -1250,7 +1253,9 @@ argument list and OPTS is the option alist."
;; need an operating system configuration file.
(else (process-action command args opts))))
-(define (guix-system . args)
+(define-command (guix-system . args)
+ (synopsis "build and deploy full operating systems")
+
(define (parse-sub-command arg result)
;; Parse sub-command ARG and augment RESULT accordingly.
(if (assoc-ref result 'action)
diff --git a/guix/scripts/time-machine.scm b/guix/scripts/time-machine.scm
index 441673b780..0d27414702 100644
--- a/guix/scripts/time-machine.scm
+++ b/guix/scripts/time-machine.scm
@@ -128,7 +128,9 @@ Execute COMMAND ARGS... in an older version of Guix.\n"))
;;; Entry point.
;;;
-(define (guix-time-machine . args)
+(define-command (guix-time-machine . args)
+ (synopsis "run commands from a different revision")
+
(with-error-handling
(with-git-error-handling
(let* ((opts (parse-args args))
diff --git a/guix/scripts/upgrade.scm b/guix/scripts/upgrade.scm
index d2784669be..8c7abd133a 100644
--- a/guix/scripts/upgrade.scm
+++ b/guix/scripts/upgrade.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;;
;;; This file is part of GNU Guix.
@@ -67,7 +67,9 @@ This is an alias for 'guix package -u'.\n"))
%transformation-options
%standard-build-options)))
-(define (guix-upgrade . args)
+(define-command (guix-upgrade . args)
+ (synopsis "upgrade packages to their latest version")
+
(define (handle-argument arg result arg-handler)
;; Accept at most one non-option argument, and treat it as an upgrade
;; regexp.
diff --git a/guix/scripts/weather.scm b/guix/scripts/weather.scm
index 3035ff6ca8..6a2582c997 100644
--- a/guix/scripts/weather.scm
+++ b/guix/scripts/weather.scm
@@ -495,7 +495,9 @@ SERVER. Display information for packages with at least THRESHOLD dependents."
;;; Entry point.
;;;
-(define (guix-weather . args)
+(define-command (guix-weather . args)
+ (synopsis "report on the availability of pre-built package binaries")
+
(define (package-list opts)
;; Return the package list specified by OPTS.
(let ((files (filter-map (match-lambda
diff --git a/guix/self.scm b/guix/self.scm
index 6a1640acdf..02ef982c7c 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -49,7 +49,7 @@
(module-ref (resolve-interface module) variable))))
(match-lambda
("guile" (ref '(gnu packages guile) 'guile-3.0/libgc-7))
- ("guile-json" (ref '(gnu packages guile) 'guile-json-3))
+ ("guile-json" (ref '(gnu packages guile) 'guile-json-4))
("guile-ssh" (ref '(gnu packages ssh) 'guile-ssh))
("guile-git" (ref '(gnu packages guile) 'guile-git))
("guile-sqlite3" (ref '(gnu packages guile) 'guile-sqlite3))
diff --git a/guix/swh.scm b/guix/swh.scm
index a343ccfdd7..0b765cc743 100644
--- a/guix/swh.scm
+++ b/guix/swh.scm
@@ -22,7 +22,6 @@
#:use-module (guix build utils)
#:use-module ((guix build syscalls) #:select (mkdtemp!))
#:use-module (web uri)
- #:use-module (guix json)
#:use-module (web client)
#:use-module (web response)
#:use-module (json)
diff --git a/guix/ui.scm b/guix/ui.scm
index 9513f42b93..115d9801b2 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -15,6 +15,7 @@
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -60,6 +61,7 @@
;; Avoid "overrides core binding" warning.
delete))
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-9 gnu)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-19)
#:use-module (srfi srfi-26)
@@ -545,8 +547,9 @@ There is NO WARRANTY, to the extent permitted by law.
Report bugs to: ~a.") %guix-bug-report-address)
(format #t (G_ "
~a home page: <~a>") %guix-package-name %guix-home-page-url)
- (display (G_ "
-General help using GNU software: <http://www.gnu.org/gethelp/>"))
+ (format #t (G_ "
+General help using Guix and GNU software: <~a>")
+ "https://guix.gnu.org/help/")
(newline))
(define (augmented-system-error-handler file)
@@ -1236,31 +1239,27 @@ separator between subsequent columns."
(define* (show-manifest-transaction store manifest transaction
#:key dry-run?)
"Display what will/would be installed/removed from MANIFEST by TRANSACTION."
- (define (package-strings names versions outputs)
- (tabulate (zip (map (lambda (name output)
- (if (string=? output "out")
- name
- (string-append name ":" output)))
- names outputs)
- versions)
+ (define* (package-strings names versions outputs #:key old-versions)
+ (tabulate (stable-sort
+ (zip (map (lambda (name output)
+ (if (string=? output "out")
+ name
+ (string-append name ":" output)))
+ names outputs)
+ (if old-versions
+ (map (lambda (old new)
+ (if (string=? old new)
+ (G_ "(dependencies or package changed)")
+ (string-append old " " → " " new)))
+ old-versions versions)
+ versions))
+ (lambda (x y)
+ (string<? (first x) (first y))))
#:initial-indent 3))
(define → ;an arrow that can be represented on stderr
(right-arrow (current-error-port)))
- (define (upgrade-string names old-version new-version outputs)
- (tabulate (zip (map (lambda (name output)
- (if (string=? output "out")
- name
- (string-append name ":" output)))
- names outputs)
- (map (lambda (old new)
- (if (string=? old new)
- (G_ "(dependencies or package changed)")
- (string-append old " " → " " new)))
- old-version new-version))
- #:initial-indent 3))
-
(let-values (((remove install upgrade downgrade)
(manifest-transaction-effects manifest transaction)))
(match remove
@@ -1283,8 +1282,8 @@ separator between subsequent columns."
(((($ <manifest-entry> name old-version)
. ($ <manifest-entry> _ new-version output item)) ..1)
(let ((len (length name))
- (downgrade (upgrade-string name old-version new-version
- output)))
+ (downgrade (package-strings name new-version output
+ #:old-versions old-version)))
(if dry-run?
(format (current-error-port)
(N_ "The following package would be downgraded:~%~{~a~%~}~%"
@@ -1301,9 +1300,8 @@ separator between subsequent columns."
(((($ <manifest-entry> name old-version)
. ($ <manifest-entry> _ new-version output item)) ..1)
(let ((len (length name))
- (upgrade (upgrade-string name
- old-version new-version
- output)))
+ (upgrade (package-strings name new-version output
+ #:old-versions old-version)))
(if dry-run?
(format (current-error-port)
(N_ "The following package would be upgraded:~%~{~a~%~}~%"
@@ -1992,6 +1990,44 @@ optionally contain a version number and an output name, as in these examples:
(G_ "Try `guix --help' for more information.~%"))
(exit 1))
+;; Representation of a 'guix' command.
+(define-immutable-record-type <command>
+ (command name synopsis category)
+ command?
+ (name command-name)
+ (synopsis command-synopsis)
+ (category command-category))
+
+(define (source-file-command file)
+ "Read FILE, a Scheme source file, and return either a <command> object based
+on the 'define-command' top-level form found therein, or #f if FILE does not
+contain a 'define-command' form."
+ (define command-name
+ (match (string-split file #\/)
+ ((_ ... "guix" "scripts" name)
+ (list (file-sans-extension name)))
+ ((_ ... "guix" "scripts" first second)
+ (list first (file-sans-extension second)))))
+
+ ;; The strategy here is to parse FILE. This is much cheaper than a
+ ;; technique based on run-time introspection where we'd load FILE and all
+ ;; the modules it depends on.
+ (call-with-input-file file
+ (lambda (port)
+ (let loop ()
+ (match (read port)
+ (('define-command _ ('synopsis synopsis)
+ _ ...)
+ (command command-name synopsis 'main))
+ (('define-command _
+ ('category category) ('synopsis synopsis)
+ _ ...)
+ (command command-name synopsis category))
+ ((? eof-object?)
+ #f)
+ (_
+ (loop)))))))
+
(define (command-files)
"Return the list of source files that define Guix sub-commands."
(define directory
@@ -2003,28 +2039,51 @@ optionally contain a version number and an output name, as in these examples:
(cut string-suffix? ".scm" <>))
(if directory
- (scandir directory dot-scm?)
+ (map (cut string-append directory "/" <>)
+ (scandir directory dot-scm?))
'()))
(define (commands)
- "Return the list of Guix command names."
- (map (compose (cut string-drop-right <> 4)
- basename)
- (command-files)))
+ "Return the list of commands, alphabetically sorted."
+ (filter-map source-file-command (command-files)))
(define (show-guix-help)
(define (internal? command)
(member command '("substitute" "authenticate" "offload"
"perform-download")))
+ (define (display-commands commands)
+ (let* ((names (map (lambda (command)
+ (string-join (command-name command)))
+ commands))
+ (max-width (reduce max 0 (map string-length names))))
+ (for-each (lambda (name command)
+ (format #t " ~a ~a~%"
+ (string-pad-right name max-width)
+ (G_ (command-synopsis command))))
+ names
+ commands)))
+
+ (define (category-predicate category)
+ (lambda (command)
+ (eq? category (command-category command))))
+
(format #t (G_ "Usage: guix COMMAND ARGS...
Run COMMAND with ARGS.\n"))
(newline)
(format #t (G_ "COMMAND must be one of the sub-commands listed below:\n"))
- (newline)
- ;; TODO: Display a synopsis of each command.
- (format #t "~{ ~a~%~}" (sort (remove internal? (commands))
- string<?))
+
+ (let ((commands (commands))
+ (categories (module-ref (resolve-interface '(guix scripts))
+ '%command-categories)))
+ (for-each (match-lambda
+ (('internal . _)
+ #t) ;hide internal commands
+ ((category . synopsis)
+ (format #t "~% ~a~%" (G_ synopsis))
+ (display-commands (filter (category-predicate category)
+ commands))))
+ categories))
(show-bug-report-information))
(define (run-guix-command command . args)
diff --git a/m4/guix.m4 b/m4/guix.m4
index 7256e792a5..2fcc65e039 100644
--- a/m4/guix.m4
+++ b/m4/guix.m4
@@ -161,14 +161,23 @@ dnl GUIX_CHECK_GUILE_JSON
dnl
dnl Check whether a recent-enough Guile-JSON is available.
AC_DEFUN([GUIX_CHECK_GUILE_JSON], [
- dnl Check whether we're using Guile-JSON 3.x, which uses a JSON-to-Scheme
- dnl mapping different from that of earlier versions.
+ dnl Check whether we're using Guile-JSON 4.3+, which provides
+ dnl 'define-json-mapping'.
AC_CACHE_CHECK([whether Guile-JSON is available and recent enough],
[guix_cv_have_recent_guile_json],
[GUILE_CHECK([retval],
- [(use-modules (json) (ice-9 match))
- (match (json-string->scm \"[[ { \\\"a\\\": 42 } ]]\")
- (#((("a" . 42))) #t))])
+ [(use-modules (json))
+
+ (define-json-mapping <frob> make-frob
+ frob?
+ json->frob
+ (a frob-a)
+ (b frob-b \"bee\"))
+
+ (exit
+ (equal? (json->frob
+ (open-input-string \"{ \\\"a\\\": 1, \\\"bee\\\": 2 }\"))
+ (make-frob 1 2)))])
if test "$retval" = 0; then
guix_cv_have_recent_guile_json="yes"
else
diff --git a/nix/libstore/local-store.cc b/nix/libstore/local-store.cc
index 7a520925e5..e6badd3721 100644
--- a/nix/libstore/local-store.cc
+++ b/nix/libstore/local-store.cc
@@ -1277,21 +1277,13 @@ void LocalStore::exportPath(const Path & path, bool sign,
writeInt(1, hashAndWriteSink);
- Path tmpDir = createTempDir();
- AutoDelete delTmp(tmpDir);
- Path hashFile = tmpDir + "/hash";
- writeFile(hashFile, printHash(hash));
-
Path secretKey = settings.nixConfDir + "/signing-key.sec";
checkSecrecy(secretKey);
Strings args;
- args.push_back("rsautl");
- args.push_back("-sign");
- args.push_back("-inkey");
+ args.push_back("sign");
args.push_back(secretKey);
- args.push_back("-in");
- args.push_back(hashFile);
+ args.push_back(printHash(hash));
string signature = runAuthenticationProgram(args);
@@ -1376,12 +1368,7 @@ Path LocalStore::importPath(bool requireSignature, Source & source)
writeFile(sigFile, signature);
Strings args;
- args.push_back("rsautl");
- args.push_back("-verify");
- args.push_back("-inkey");
- args.push_back(settings.nixConfDir + "/signing-key.pub");
- args.push_back("-pubin");
- args.push_back("-in");
+ args.push_back("verify");
args.push_back(sigFile);
string hash2 = runAuthenticationProgram(args);
diff --git a/tests/guix-authenticate.sh b/tests/guix-authenticate.sh
index 72c3d161d7..773443453d 100644
--- a/tests/guix-authenticate.sh
+++ b/tests/guix-authenticate.sh
@@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU
-# Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2013, 2014, 2020 Ludovic Courtès <ludo@gnu.org>
#
# This file is part of GNU Guix.
#
@@ -29,34 +29,18 @@ rm -f "$sig" "$hash"
trap 'rm -f "$sig" "$hash"' EXIT
# A hexadecimal string as long as a sha256 hash.
-echo "2749f0ea9f26c6c7be746a9cff8fa4c2f2a02b000070dba78429e9a11f87c6eb" \
- > "$hash"
+hash="2749f0ea9f26c6c7be746a9cff8fa4c2f2a02b000070dba78429e9a11f87c6eb"
-guix authenticate rsautl -sign \
- -inkey "$abs_top_srcdir/tests/signing-key.sec" \
- -in "$hash" > "$sig"
+guix authenticate sign \
+ "$abs_top_srcdir/tests/signing-key.sec" \
+ "$hash" > "$sig"
test -f "$sig"
-hash2="`guix authenticate rsautl -verify \
- -inkey $abs_top_srcdir/tests/signing-key.pub \
- -pubin -in $sig`"
-test "$hash2" = `cat "$hash"`
-
-# Same thing in a pipeline, using the command line syntax that Nix/Crypto.pm
-# uses.
-hash2="` \
- cat "$hash" \
- | guix authenticate rsautl -sign \
- -inkey "$abs_top_srcdir/tests/signing-key.sec" \
- | guix authenticate rsautl -verify \
- -inkey $abs_top_srcdir/tests/signing-key.pub \
- -pubin`"
-test "$hash2" = `cat "$hash"`
+hash2="`guix authenticate verify "$sig"`"
+test "$hash2" = "$hash"
# Detect corrupt signatures.
-if guix authenticate rsautl -verify \
- -inkey "$abs_top_srcdir/tests/signing-key.pub" \
- -pubin -in /dev/null
+if guix authenticate verify /dev/null
then false
else true
fi
@@ -66,9 +50,7 @@ fi
# modifying this hash.
sed -i "$sig" \
-e's|#[A-Z0-9]\{64\}#|#0000000000000000000000000000000000000000000000000000000000000000#|g'
-if guix authenticate rsautl -verify \
- -inkey "$abs_top_srcdir/tests/signing-key.pub" \
- -pubin -in "$sig"
+if guix authenticate verify "$sig"
then false
else true
fi
@@ -76,20 +58,14 @@ fi
# Test for <http://bugs.gnu.org/17312>: make sure 'guix authenticate' produces
# valid signatures when run in the C locale.
-echo "5eff0b55c9c5f5e87b4e34cd60a2d5654ca1eb78c7b3c67c3179fed1cff07b4c" \
- > "$hash"
+hash="5eff0b55c9c5f5e87b4e34cd60a2d5654ca1eb78c7b3c67c3179fed1cff07b4c"
LC_ALL=C
export LC_ALL
-guix authenticate rsautl -sign \
- -inkey "$abs_top_srcdir/tests/signing-key.sec" \
- -in "$hash" > "$sig"
+guix authenticate sign "$abs_top_srcdir/tests/signing-key.sec" "$hash" \
+ > "$sig"
-guix authenticate rsautl -verify \
- -inkey "$abs_top_srcdir/tests/signing-key.pub" \
- -pubin -in "$sig"
-hash2="`guix authenticate rsautl -verify \
- -inkey $abs_top_srcdir/tests/signing-key.pub \
- -pubin -in $sig`"
-test "$hash2" = `cat "$hash"`
+guix authenticate verify "$sig"
+hash2="`guix authenticate verify "$sig"`"
+test "$hash2" = "$hash"
diff --git a/tests/store.scm b/tests/store.scm
index e168d3dcf6..8ff76e8f98 100644
--- a/tests/store.scm
+++ b/tests/store.scm
@@ -23,6 +23,8 @@
#:use-module (guix utils)
#:use-module (guix monads)
#:use-module ((gcrypt hash) #:prefix gcrypt:)
+ #:use-module ((gcrypt pk-crypto) #:prefix gcrypt:)
+ #:use-module (guix pki)
#:use-module (guix base32)
#:use-module (guix packages)
#:use-module (guix derivations)
@@ -966,6 +968,76 @@
(list out1 out2))))
#:guile-for-build (%guile-for-build)))
+
+(test-assert "import not signed"
+ (let* ((text (random-text))
+ (file (add-file-tree-to-store %store
+ `("tree" directory
+ ("text" regular (data ,text))
+ ("link" symlink "text"))))
+ (dump (call-with-bytevector-output-port
+ (lambda (port)
+ (write-int 1 port) ;start
+
+ (write-file file port) ;contents
+ (write-int #x4558494e port) ;%export-magic
+ (write-string file port) ;store item
+ (write-string-list '() port) ;references
+ (write-string "" port) ;deriver
+ (write-int 0 port) ;not signed
+
+ (write-int 0 port))))) ;done
+
+ ;; Ensure 'import-paths' raises an exception.
+ (guard (c ((store-protocol-error? c)
+ (and (not (zero? (store-protocol-error-status (pk 'C c))))
+ (string-contains (store-protocol-error-message c)
+ "lacks a signature"))))
+ (let* ((source (open-bytevector-input-port dump))
+ (imported (import-paths %store source)))
+ (pk 'unsigned-imported imported)
+ #f))))
+
+(test-assert "import signed by unauthorized key"
+ (let* ((text (random-text))
+ (file (add-file-tree-to-store %store
+ `("tree" directory
+ ("text" regular (data ,text))
+ ("link" symlink "text"))))
+ (key (gcrypt:generate-key
+ (gcrypt:string->canonical-sexp
+ "(genkey (ecdsa (curve Ed25519) (flags rfc6979)))")))
+ (dump (call-with-bytevector-output-port
+ (lambda (port)
+ (write-int 1 port) ;start
+
+ (write-file file port) ;contents
+ (write-int #x4558494e port) ;%export-magic
+ (write-string file port) ;store item
+ (write-string-list '() port) ;references
+ (write-string "" port) ;deriver
+ (write-int 1 port) ;signed
+ (write-string (gcrypt:canonical-sexp->string
+ (signature-sexp
+ (gcrypt:bytevector->hash-data
+ (gcrypt:sha256 #vu8(0 1 2))
+ #:key-type 'ecc)
+ (gcrypt:find-sexp-token key 'private-key)
+ (gcrypt:find-sexp-token key 'public-key)))
+ port)
+
+ (write-int 0 port))))) ;done
+
+ ;; Ensure 'import-paths' raises an exception.
+ (guard (c ((store-protocol-error? c)
+ ;; XXX: The daemon-provided error message currently doesn't
+ ;; mention the reason of the failure.
+ (not (zero? (store-protocol-error-status c)))))
+ (let* ((source (open-bytevector-input-port dump))
+ (imported (import-paths %store source)))
+ (pk 'unauthorized-imported imported)
+ #f))))
+
(test-assert "import corrupt path"
(let* ((text (random-text))
(file (add-text-to-store %store "text" text))