aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2019-10-23 20:48:55 +0200
committerMarius Bakke <mbakke@fastmail.com>2019-10-23 20:48:55 +0200
commit4c1918db34e09f0da793c607acc161bdf9ec5535 (patch)
treee84431dc161ed3c04c9b94abe8224ec7f759df5f /gnu
parente8062974d5cc598134da4d57ff45970ac431611b (diff)
parent4163b6d855a4e655852029625762fccb077a196d (diff)
downloadpatches-4c1918db34e09f0da793c607acc161bdf9ec5535.tar
patches-4c1918db34e09f0da793c607acc161bdf9ec5535.tar.gz
Merge branch 'master' into staging
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk6
-rw-r--r--gnu/machine/digital-ocean.scm422
-rw-r--r--gnu/packages/assembly.scm4
-rw-r--r--gnu/packages/avahi.scm12
-rw-r--r--gnu/packages/backup.scm1
-rw-r--r--gnu/packages/bioconductor.scm4
-rw-r--r--gnu/packages/ci.scm6
-rw-r--r--gnu/packages/cpp.scm37
-rw-r--r--gnu/packages/cran.scm12
-rw-r--r--gnu/packages/cross-base.scm13
-rw-r--r--gnu/packages/databases.scm73
-rw-r--r--gnu/packages/emacs-xyz.scm163
-rw-r--r--gnu/packages/emulators.scm96
-rw-r--r--gnu/packages/enlightenment.scm10
-rw-r--r--gnu/packages/fonts.scm27
-rw-r--r--gnu/packages/gnome.scm27
-rw-r--r--gnu/packages/guile.scm17
-rw-r--r--gnu/packages/linux.scm8
-rw-r--r--gnu/packages/lisp.scm250
-rw-r--r--gnu/packages/machine-learning.scm36
-rw-r--r--gnu/packages/make-bootstrap.scm55
-rw-r--r--gnu/packages/mingw.scm47
-rw-r--r--gnu/packages/multiprecision.scm43
-rw-r--r--gnu/packages/parallel.scm4
-rw-r--r--gnu/packages/patches/avahi-CVE-2018-1000845.patch42
-rw-r--r--gnu/packages/patches/sbcl-graph-asdf-definitions.patch70
-rw-r--r--gnu/packages/patches/seahorse-gkr-use-0-on-empty-flags.patch32
-rw-r--r--gnu/packages/patches/weasyprint-library-paths.patch38
-rw-r--r--gnu/packages/pdf.scm128
-rw-r--r--gnu/packages/perl.scm4
-rw-r--r--gnu/packages/python-check.scm31
-rw-r--r--gnu/packages/python-web.scm74
-rw-r--r--gnu/packages/python-xyz.scm110
-rw-r--r--gnu/packages/rust-cbindgen.scm1019
-rw-r--r--gnu/packages/statistics.scm20
-rw-r--r--gnu/packages/tls.scm7
-rw-r--r--gnu/packages/video.scm4
-rw-r--r--gnu/packages/web.scm9
-rw-r--r--gnu/packages/wine.scm7
-rw-r--r--gnu/services/base.scm229
-rw-r--r--gnu/services/desktop.scm38
-rw-r--r--gnu/services/sddm.scm10
42 files changed, 2912 insertions, 333 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 7f690598c0..c6ddbf4e99 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -425,6 +425,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/ruby.scm \
%D%/packages/rush.scm \
%D%/packages/rust.scm \
+ %D%/packages/rust-cbindgen.scm \
%D%/packages/samba.scm \
%D%/packages/sagemath.scm \
%D%/packages/sawfish.scm \
@@ -580,6 +581,7 @@ GNU_SYSTEM_MODULES = \
%D%/system/vm.scm \
\
%D%/machine.scm \
+ %D%/machine/digital-ocean.scm \
%D%/machine/ssh.scm \
\
%D%/build/accounts.scm \
@@ -704,6 +706,7 @@ dist_patch_DATA = \
%D%/packages/patches/ath9k-htc-firmware-objcopy.patch \
%D%/packages/patches/audacity-build-with-system-portaudio.patch \
%D%/packages/patches/automake-skip-amhello-tests.patch \
+ %D%/packages/patches/avahi-CVE-2018-1000845.patch \
%D%/packages/patches/avahi-localstatedir.patch \
%D%/packages/patches/avogadro-boost148.patch \
%D%/packages/patches/avogadro-eigen3-update.patch \
@@ -1321,12 +1324,14 @@ dist_patch_DATA = \
%D%/packages/patches/rust-coresimd-doctest.patch \
%D%/packages/patches/rust-reproducible-builds.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 \
%D%/packages/patches/scotch-integer-declarations.patch \
%D%/packages/patches/sdl-libx11-1.6.patch \
%D%/packages/patches/sdl2-mesa-compat.patch \
+ %D%/packages/patches/seahorse-gkr-use-0-on-empty-flags.patch \
%D%/packages/patches/seq24-rename-mutex.patch \
%D%/packages/patches/sharutils-CVE-2018-1000097.patch \
%D%/packages/patches/shishi-fix-libgcrypt-detection.patch \
@@ -1419,6 +1424,7 @@ dist_patch_DATA = \
%D%/packages/patches/wavpack-CVE-2018-6767.patch \
%D%/packages/patches/wavpack-CVE-2018-7253.patch \
%D%/packages/patches/wavpack-CVE-2018-7254.patch \
+ %D%/packages/patches/weasyprint-library-paths.patch \
%D%/packages/patches/wicd-bitrate-none-fix.patch \
%D%/packages/patches/wicd-get-selected-profile-fix.patch \
%D%/packages/patches/wicd-urwid-1.3.patch \
diff --git a/gnu/machine/digital-ocean.scm b/gnu/machine/digital-ocean.scm
new file mode 100644
index 0000000000..6f7cf8fb30
--- /dev/null
+++ b/gnu/machine/digital-ocean.scm
@@ -0,0 +1,422 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu machine digital-ocean)
+ #:use-module (gnu machine ssh)
+ #:use-module (gnu machine)
+ #:use-module (gnu services)
+ #:use-module (gnu services networking)
+ #:use-module (gnu system)
+ #:use-module (gnu system pam)
+ #:use-module (guix base32)
+ #:use-module (guix derivations)
+ #:use-module (guix i18n)
+ #:use-module (guix import json)
+ #:use-module (guix monads)
+ #:use-module (guix records)
+ #:use-module (guix ssh)
+ #:use-module (guix store)
+ #:use-module (ice-9 iconv)
+ #:use-module (json)
+ #:use-module (rnrs bytevectors)
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-2)
+ #:use-module (srfi srfi-34)
+ #:use-module (srfi srfi-35)
+ #:use-module (ssh key)
+ #:use-module (ssh sftp)
+ #:use-module (ssh shell)
+ #:use-module (web client)
+ #:use-module (web request)
+ #:use-module (web response)
+ #:use-module (web uri)
+ #:export (digital-ocean-configuration
+ digital-ocean-configuration?
+
+ digital-ocean-configuration-ssh-key
+ digital-ocean-configuration-tags
+ digital-ocean-configuration-region
+ digital-ocean-configuration-size
+ digital-ocean-configuration-enable-ipv6?
+
+ digital-ocean-environment-type))
+
+;;; Commentary:
+;;;
+;;; This module implements a high-level interface for provisioning "droplets"
+;;; from the Digital Ocean virtual private server (VPS) service.
+;;;
+;;; Code:
+
+(define %api-base "https://api.digitalocean.com")
+
+(define %digital-ocean-token
+ (make-parameter (getenv "GUIX_DIGITAL_OCEAN_TOKEN")))
+
+(define* (post-endpoint endpoint body)
+ "Encode BODY as JSON and send it to the Digital Ocean API endpoint
+ENDPOINT. This procedure is quite a bit more specialized than 'http-post', as
+it takes care to set headers such as 'Content-Type', 'Content-Length', and
+'Authorization' appropriately."
+ (let* ((uri (string->uri (string-append %api-base endpoint)))
+ (body (string->bytevector (scm->json-string body) "UTF-8"))
+ (headers `((User-Agent . "Guix Deploy")
+ (Accept . "application/json")
+ (Content-Type . "application/json")
+ (Authorization . ,(format #f "Bearer ~a"
+ (%digital-ocean-token)))
+ (Content-Length . ,(number->string
+ (bytevector-length body)))))
+ (port (open-socket-for-uri uri))
+ (request (build-request uri
+ #:method 'POST
+ #:version '(1 . 1)
+ #:headers headers
+ #:port port))
+ (request (write-request request port)))
+ (write-request-body request body)
+ (force-output (request-port request))
+ (let* ((response (read-response port))
+ (body (read-response-body response)))
+ (unless (= 2 (floor/ (response-code response) 100))
+ (raise
+ (condition (&message
+ (message (format
+ #f
+ (G_ "~a: HTTP post failed: ~a (~s)")
+ (uri->string uri)
+ (response-code response)
+ (response-reason-phrase response)))))))
+ (close-port port)
+ (bytevector->string body "UTF-8"))))
+
+(define (fetch-endpoint endpoint)
+ "Return the contents of the Digital Ocean API endpoint ENDPOINT as an
+alist. This procedure is quite a bit more specialized than 'json-fetch', as it
+takes care to set headers such as 'Accept' and 'Authorization' appropriately."
+ (define headers
+ `((user-agent . "Guix Deploy")
+ (Accept . "application/json")
+ (Authorization . ,(format #f "Bearer ~a" (%digital-ocean-token)))))
+ (json-fetch (string-append %api-base endpoint) #:headers headers))
+
+
+;;;
+;;; Parameters for droplet creation.
+;;;
+
+(define-record-type* <digital-ocean-configuration> digital-ocean-configuration
+ make-digital-ocean-configuration
+ digital-ocean-configuration?
+ this-digital-ocean-configuration
+ (ssh-key digital-ocean-configuration-ssh-key) ; string
+ (tags digital-ocean-configuration-tags) ; list of strings
+ (region digital-ocean-configuration-region) ; string
+ (size digital-ocean-configuration-size) ; string
+ (enable-ipv6? digital-ocean-configuration-enable-ipv6?)) ; boolean
+
+(define (read-key-fingerprint file-name)
+ "Read the private key at FILE-NAME and return the key's fingerprint as a hex
+string."
+ (let* ((privkey (private-key-from-file file-name))
+ (pubkey (private-key->public-key privkey))
+ (hash (get-public-key-hash pubkey 'md5)))
+ (bytevector->hex-string hash)))
+
+(define (machine-droplet machine)
+ "Return an alist describing the droplet allocated to MACHINE."
+ (let ((tags (digital-ocean-configuration-tags
+ (machine-configuration machine))))
+ (find (lambda (droplet)
+ (equal? (assoc-ref droplet "tags") (list->vector tags)))
+ (vector->list
+ (assoc-ref (fetch-endpoint "/v2/droplets") "droplets")))))
+
+(define (machine-public-ipv4-network machine)
+ "Return the public IPv4 network interface of the droplet allocated to
+MACHINE as an alist. The expected fields are 'ip_address', 'netmask', and
+'gateway'."
+ (and-let* ((droplet (machine-droplet machine))
+ (networks (assoc-ref droplet "networks"))
+ (network (find (lambda (network)
+ (string= "public" (assoc-ref network "type")))
+ (vector->list (assoc-ref networks "v4")))))
+ network))
+
+
+;;;
+;;; Remote evaluation.
+;;;
+
+(define (digital-ocean-remote-eval target exp)
+ "Internal implementation of 'machine-remote-eval' for MACHINE instances with
+an environment type of 'digital-ocean-environment-type'."
+ (let* ((network (machine-public-ipv4-network target))
+ (address (assoc-ref network "ip_address"))
+ (ssh-key (digital-ocean-configuration-ssh-key
+ (machine-configuration target)))
+ (delegate (machine
+ (inherit target)
+ (environment managed-host-environment-type)
+ (configuration
+ (machine-ssh-configuration
+ (host-name address)
+ (identity ssh-key)
+ (system "x86_64-linux"))))))
+ (machine-remote-eval delegate exp)))
+
+
+;;;
+;;; System deployment.
+;;;
+
+;; The following script was adapted from the guide available at
+;; <https://wiki.pantherx.org/Installation-digital-ocean/>.
+(define (guix-infect network)
+ "Given NETWORK, an alist describing the Droplet's public IPv4 network
+interface, return a Bash script that will install the Guix system."
+ (format #f "#!/bin/bash
+
+apt-get update
+apt-get install xz-utils -y
+wget https://ftp.gnu.org/gnu/guix/guix-binary-1.0.1.x86_64-linux.tar.xz
+cd /tmp
+tar --warning=no-timestamp -xf ~~/guix-binary-1.0.1.x86_64-linux.tar.xz
+mv var/guix /var/ && mv gnu /
+mkdir -p ~~root/.config/guix
+ln -sf /var/guix/profiles/per-user/root/current-guix ~~root/.config/guix/current
+export GUIX_PROFILE=\"`echo ~~root`/.config/guix/current\" ;
+source $GUIX_PROFILE/etc/profile
+groupadd --system guixbuild
+for i in `seq -w 1 10`; do
+ useradd -g guixbuild -G guixbuild \
+ -d /var/empty -s `which nologin` \
+ -c \"Guix build user $i\" --system \
+ guixbuilder$i;
+done;
+cp ~~root/.config/guix/current/lib/systemd/system/guix-daemon.service /etc/systemd/system/
+systemctl start guix-daemon && systemctl enable guix-daemon
+mkdir -p /usr/local/bin
+cd /usr/local/bin
+ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix
+mkdir -p /usr/local/share/info
+cd /usr/local/share/info
+for i in /var/guix/profiles/per-user/root/current-guix/share/info/*; do
+ ln -s $i;
+done
+guix archive --authorize < ~~root/.config/guix/current/share/guix/ci.guix.gnu.org.pub
+# guix pull
+guix package -i glibc-utf8-locales
+export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"
+guix package -i openssl
+cat > /etc/bootstrap-config.scm << EOF
+(use-modules (gnu))
+(use-service-modules networking ssh)
+
+(operating-system
+ (host-name \"gnu-bootstrap\")
+ (timezone \"Etc/UTC\")
+ (bootloader (bootloader-configuration
+ (bootloader grub-bootloader)
+ (target \"/dev/vda\")
+ (terminal-outputs '(console))))
+ (file-systems (cons (file-system
+ (mount-point \"/\")
+ (device \"/dev/vda1\")
+ (type \"ext4\"))
+ %base-file-systems))
+ (services
+ (append (list (static-networking-service \"eth0\" \"~a\"
+ #:netmask \"~a\"
+ #:gateway \"~a\"
+ #:name-servers '(\"84.200.69.80\" \"84.200.70.40\"))
+ (simple-service 'guile-load-path-in-global-env
+ session-environment-service-type
+ \\`((\"GUILE_LOAD_PATH\"
+ . \"/run/current-system/profile/share/guile/site/2.2\")
+ (\"GUILE_LOAD_COMPILED_PATH\"
+ . ,(string-append \"/run/current-system/profile/lib/guile/2.2/site-ccache:\"
+ \"/run/current-system/profile/share/guile/site/2.2\"))))
+ (service openssh-service-type
+ (openssh-configuration
+ (log-level 'debug)
+ (permit-root-login 'without-password))))
+ %base-services)))
+EOF
+# guix pull
+guix system build /etc/bootstrap-config.scm
+guix system reconfigure /etc/bootstrap-config.scm
+mv /etc /old-etc
+mkdir /etc
+cp -r /old-etc/{passwd,group,shadow,gshadow,mtab,guix,bootstrap-config.scm} /etc/
+guix system reconfigure /etc/bootstrap-config.scm"
+ (assoc-ref network "ip_address")
+ (assoc-ref network "netmask")
+ (assoc-ref network "gateway")))
+
+(define (machine-wait-until-available machine)
+ "Block until the initial Debian image has been installed on the droplet
+named DROPLET-NAME."
+ (and-let* ((droplet (machine-droplet machine))
+ (droplet-id (assoc-ref droplet "id"))
+ (endpoint (format #f "/v2/droplets/~a/actions" droplet-id)))
+ (let loop ()
+ (let ((actions (assoc-ref (fetch-endpoint endpoint) "actions")))
+ (unless (every (lambda (action)
+ (string= "completed" (assoc-ref action "status")))
+ (vector->list actions))
+ (sleep 5)
+ (loop))))))
+
+(define (wait-for-ssh address ssh-key)
+ "Block until the an SSH session can be made as 'root' with SSH-KEY at ADDRESS."
+ (let loop ()
+ (catch #t
+ (lambda ()
+ (open-ssh-session address #:user "root" #:identity ssh-key))
+ (lambda args
+ (sleep 5)
+ (loop)))))
+
+(define (add-static-networking target network)
+ "Return an <operating-system> based on TARGET with a static networking
+configuration for the public IPv4 network described by the alist NETWORK."
+ (operating-system
+ (inherit (machine-operating-system target))
+ (services (cons* (static-networking-service "eth0"
+ (assoc-ref network "ip_address")
+ #:netmask (assoc-ref network "netmask")
+ #:gateway (assoc-ref network "gateway")
+ #:name-servers '("84.200.69.80" "84.200.70.40"))
+ (simple-service 'guile-load-path-in-global-env
+ session-environment-service-type
+ `(("GUILE_LOAD_PATH"
+ . "/run/current-system/profile/share/guile/site/2.2")
+ ("GUILE_LOAD_COMPILED_PATH"
+ . ,(string-append "/run/current-system/profile/lib/guile/2.2/site-ccache:"
+ "/run/current-system/profile/share/guile/site/2.2"))))
+ (operating-system-user-services
+ (machine-operating-system target))))))
+
+(define (deploy-digital-ocean target)
+ "Internal implementation of 'deploy-machine' for 'machine' instances with an
+environment type of 'digital-ocean-environment-type'."
+ (maybe-raise-missing-api-key-error)
+ (maybe-raise-unsupported-configuration-error target)
+ (let* ((config (machine-configuration target))
+ (name (machine-display-name target))
+ (region (digital-ocean-configuration-region config))
+ (size (digital-ocean-configuration-size config))
+ (ssh-key (digital-ocean-configuration-ssh-key config))
+ (fingerprint (read-key-fingerprint ssh-key))
+ (enable-ipv6? (digital-ocean-configuration-enable-ipv6? config))
+ (tags (digital-ocean-configuration-tags config))
+ (request-body `(("name" . ,name)
+ ("region" . ,region)
+ ("size" . ,size)
+ ("image" . "debian-9-x64")
+ ("ssh_keys" . ,(vector fingerprint))
+ ("backups" . #f)
+ ("ipv6" . ,enable-ipv6?)
+ ("user_data" . #nil)
+ ("private_networking" . #nil)
+ ("volumes" . #nil)
+ ("tags" . ,(list->vector tags))))
+ (response (post-endpoint "/v2/droplets" request-body)))
+ (machine-wait-until-available target)
+ (let* ((network (machine-public-ipv4-network target))
+ (address (assoc-ref network "ip_address")))
+ (wait-for-ssh address ssh-key)
+ (let* ((ssh-session (open-ssh-session address #:user "root" #:identity ssh-key))
+ (sftp-session (make-sftp-session ssh-session)))
+ (call-with-remote-output-file sftp-session "/tmp/guix-infect.sh"
+ (lambda (port)
+ (display (guix-infect network) port)))
+ (rexec ssh-session "/bin/bash /tmp/guix-infect.sh")
+ ;; Session will close upon rebooting, which will raise 'guile-ssh-error.
+ (catch 'guile-ssh-error
+ (lambda () (rexec ssh-session "reboot"))
+ (lambda args #t)))
+ (wait-for-ssh address ssh-key)
+ (let ((delegate (machine
+ (operating-system (add-static-networking target network))
+ (environment managed-host-environment-type)
+ (configuration
+ (machine-ssh-configuration
+ (host-name address)
+ (identity ssh-key)
+ (system "x86_64-linux"))))))
+ (deploy-machine delegate)))))
+
+
+;;;
+;;; Roll-back.
+;;;
+
+(define (roll-back-digital-ocean target)
+ "Internal implementation of 'roll-back-machine' for MACHINE instances with an
+environment type of 'digital-ocean-environment-type'."
+ (let* ((network (machine-public-ipv4-network target))
+ (address (assoc-ref network "ip_address"))
+ (ssh-key (digital-ocean-configuration-ssh-key
+ (machine-configuration target)))
+ (delegate (machine
+ (inherit target)
+ (environment managed-host-environment-type)
+ (configuration
+ (machine-ssh-configuration
+ (host-name address)
+ (identity ssh-key)
+ (system "x86_64-linux"))))))
+ (roll-back-machine delegate)))
+
+
+;;;
+;;; Environment type.
+;;;
+
+(define digital-ocean-environment-type
+ (environment-type
+ (machine-remote-eval digital-ocean-remote-eval)
+ (deploy-machine deploy-digital-ocean)
+ (roll-back-machine roll-back-digital-ocean)
+ (name 'digital-ocean-environment-type)
+ (description "Provisioning of \"droplets\": virtual machines
+ provided by the Digital Ocean virtual private server (VPS) service.")))
+
+
+(define (maybe-raise-missing-api-key-error)
+ (unless (%digital-ocean-token)
+ (raise (condition
+ (&message
+ (message (G_ "No Digital Ocean access token was provided. This \
+may be fixed by setting the environment variable GUIX_DIGITAL_OCAEN_TOKEN to \
+one procured from https://cloud.digitalocean.com/account/api/tokens.")))))))
+
+(define (maybe-raise-unsupported-configuration-error machine)
+ "Raise an error if MACHINE's configuration is not an instance of
+<digital-ocean-configuration>."
+ (let ((config (machine-configuration machine))
+ (environment (environment-type-name (machine-environment machine))))
+ (unless (and config (digital-ocean-configuration? config))
+ (raise (condition
+ (&message
+ (message (format #f (G_ "unsupported machine configuration '~a'
+for environment of type '~a'")
+ config
+ environment))))))))
diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm
index 26a6d23a8a..50f798ba83 100644
--- a/gnu/packages/assembly.scm
+++ b/gnu/packages/assembly.scm
@@ -99,6 +99,10 @@ has strong support for macros.")
(base32
"0gv0slmm0qpq91za3v2v9glff3il594x5xsrbgab7xcmnh0ndkix"))))
(build-system gnu-build-system)
+ (arguments
+ '(#:parallel-tests? #f)) ; Some tests fail
+ ; non-deterministically when run in
+ ; parallel
(inputs
`(("python" ,python-wrapper)
("xmlto" ,xmlto)))
diff --git a/gnu/packages/avahi.scm b/gnu/packages/avahi.scm
index e71ffc2982..e84fed6a71 100644
--- a/gnu/packages/avahi.scm
+++ b/gnu/packages/avahi.scm
@@ -35,6 +35,7 @@
(package
(name "avahi")
(version "0.7")
+ (replacement avahi/fixed)
(home-page "http://avahi.org")
(source (origin
(method url-fetch)
@@ -74,6 +75,17 @@ network. It is an implementation of the mDNS (for \"Multicast DNS\") and
DNS-SD (for \"DNS-Based Service Discovery\") protocols.")
(license lgpl2.1+)))
+(define avahi/fixed
+ (package
+ (inherit avahi)
+ (source (origin
+ (inherit (package-source avahi))
+ (patches
+ (append (search-patches "avahi-CVE-2018-1000845.patch")
+ (origin-patches (package-source avahi))))))
+ ;; Hide a duplicate of the CVE fixed above.
+ (properties `((lint-hidden-cve . ("CVE-2017-6519"))))))
+
(define-public nss-mdns
(package
(name "nss-mdns")
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index a4a087728f..fc43f93d7d 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -14,7 +14,6 @@
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index cf5097a74e..6467fecb8c 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -4568,14 +4568,14 @@ based on @dfn{Continuous Wavelet Transform} (CWT).")
(define-public r-xcms
(package
(name "r-xcms")
- (version "3.6.1")
+ (version "3.6.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "xcms" version))
(sha256
(base32
- "06vhqvvzlkc5bslswagrapmn5ag3x84xg9gxk0fhlmgwapqwki1g"))))
+ "0icww3f1kahyk96mc07yhsbyiranzm2614n509as09jf8bdhq23v"))))
(build-system r-build-system)
(propagated-inputs
`(("r-biobase" ,r-biobase)
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index 5807c8b68c..f9dae5fd66 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 "d27ff21e430cd38b02bd70a0dc8d60c9c2736f83")
- (revision "24"))
+ (let ((commit "80b6e89a7b2e9a6f9dee26dcf22277970930039f")
+ (revision "25"))
(package
(name "cuirass")
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
@@ -60,7 +60,7 @@
(file-name (string-append name "-" version))
(sha256
(base32
- "166xl9zfy7dm645fk2ln45bvw0y0gy0xw8fb7mprbjz8v95dh27p"))))
+ "0m7g7wqa1l8gab8pcyi43a6w6rxhaqbpsrwlnadwsds1b95x9bka"))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build utils)
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 6aac60d284..f40f547781 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -33,6 +34,7 @@
#:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages llvm)
+ #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages tls)
#:use-module (gnu packages web))
@@ -313,3 +315,38 @@ code analysis and supports cross references, hierarchies, completion and
syntax highlighting. @code{ccls} is derived from @code{cquery} which is not
maintained anymore.")
(license license:asl2.0)))
+
+(define-public gperftools
+ (package
+ (name "gperftools")
+ (version "2.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gperftools/gperftools")
+ (commit (string-append "gperftools-" version))))
+ (sha256
+ (base32 "0amvwrzn5qc0b0jpxpy5g6zkmj97zjh4hhjrd130hsg2lwwcwhy1"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ;; For tests:
+ ("perl" ,perl)))
+ (home-page "https://github.com/gperftools/gperftools")
+ (synopsis "Multi-threaded malloc() and performance analysis tools for C++")
+ (description
+ "@code{gperftools} is a collection of a high-performance multi-threaded
+malloc() implementation plus some thread-friendly performance analysis
+tools:
+
+@itemize
+@item tcmalloc,
+@item heap profiler,
+@item heap checker,
+@item CPU checker.
+@end itemize\n")
+ (license license:bsd-3)))
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 82a65d09f2..d3d6f7f4f0 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -3089,14 +3089,13 @@ color labels, layout, etc.")
(define-public r-stringdist
(package
(name "r-stringdist")
- (version "0.9.5.3")
+ (version "0.9.5.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "stringdist" version))
(sha256
- (base32
- "1vbhn6qwj3bzplhq06bw1yqqq1qpf1zinnj27cr7pf1nqsbyx2nq"))))
+ (base32 "1dqfakclzaf878x7mhwmqrcpcql2h9cv19fz5f3ygpajf3si5kqi"))))
(build-system r-build-system)
(home-page "https://github.com/markvanderloo/stringdist")
(synopsis "Approximate string matching and string distance functions")
@@ -8728,21 +8727,20 @@ and related methods.")
(define-public r-rcppgsl
(package
(name "r-rcppgsl")
- (version "0.3.6")
+ (version "0.3.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "RcppGSL" version))
(sha256
- (base32
- "16pdapq31729db53agnb48jkvdm97167n3bigy5zazc3q3isis1m"))))
+ (base32 "0cnw2k7cfqrm79r6j283aybflxig80x4n4rjkfp2317wf10mrsa5"))))
(properties `((upstream-name . "RcppGSL")))
(build-system r-build-system)
(propagated-inputs
`(("r-rcpp" ,r-rcpp)
("gsl" ,gsl)))
(native-inputs
- `(("r-knitr" ,r-knitr))) ; for vignettes
+ `(("r-knitr" ,r-knitr))) ; for vignettes
(home-page "https://cran.r-project.org/web/packages/RcppGSL/")
(synopsis "Rcpp integration for GSL vectors and matrices")
(description
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 76d15f4c59..13237fb8a8 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -454,7 +454,9 @@ target that libc."
"Return LIBC cross-built for TARGET, a GNU triplet. Use XGCC and XBINUTILS
and the cross tool chain."
(if (cross-newlib? target libc)
- (native-libc target libc)
+ (native-libc target libc
+ #:xgcc xgcc
+ #:xbinutils xbinutils)
(let ((libc libc))
(package (inherit libc)
(name (string-append "glibc-cross-" target))
@@ -511,10 +513,15 @@ and the cross tool chain."
(define* (native-libc target
#:optional
- (libc glibc))
+ (libc glibc)
+ #:key
+ xgcc
+ xbinutils)
(if (target-mingw? target)
(let ((machine (substring target 0 (string-index target #\-))))
- (make-mingw-w64 machine))
+ (make-mingw-w64 machine
+ #:xgcc xgcc
+ #:xbinutils xbinutils))
libc))
(define* (cross-newlib? target
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index f32728b902..9373f7d9a9 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -216,6 +216,68 @@ standard Go idioms.")
(home-page "http://labix.org/mgo")
(license license:bsd-2)))
+(define-public ephemeralpg
+ (package
+ (name "ephemeralpg")
+ (version "2.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://eradman.com/ephemeralpg/code/ephemeralpg-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "1dpfxsd8a52psx3zlfbqkw53m35w28qwyb87a8anz143x6gnkkr4"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:make-flags (list "CC=gcc"
+ (string-append "PREFIX=" %output))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'check
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; The intention for one test is to test without PostgreSQL on
+ ;; the $PATH, so replace the test $PATH with just the util-linux
+ ;; bin, which contains getopt. It will hopefully be possible to
+ ;; remove this for releases after 2.8.
+ (substitute* "test.rb"
+ (("/bin:/usr/bin")
+ (string-append (assoc-ref inputs "util-linux")
+ "/bin")))
+ ;; Set the LC_ALL=C as some tests use sort, and the locale
+ ;; affects the order. It will hopefully be possible to remove
+ ;; this for releases after 2.8.
+ (setenv "LC_ALL" "C")
+ (invoke "ruby" "test.rb")
+ #t))
+ (add-after 'install 'wrap
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (wrap-program (string-append out "/bin/pg_tmp")
+ `("PATH" ":" prefix
+ (,(string-append (assoc-ref inputs "util-linux")
+ "/bin")
+ ,(string-append (assoc-ref inputs "postgresql")
+ "/bin")
+ ;; For getsocket
+ ,(string-append out "/bin")))))
+ #t)))))
+ (inputs
+ `(("postgresql" ,postgresql)
+ ("util-linux" ,util-linux)))
+ (native-inputs
+ `(("ruby" ,ruby)))
+ (home-page "http://eradman.com/ephemeralpg/")
+ (synopsis "Run temporary PostgreSQL databases")
+ (description
+ "@code{pg_tmp} creates temporary PostgreSQL databases, suitable for tasks
+like running software test suites. Temporary databases created with
+@code{pg_tmp} have a limited shared memory footprint and are automatically
+garbage-collected after a configurable number of seconds (the default is
+60).")
+ (license license:isc)))
+
(define-public es-dump-restore
(package
(name "es-dump-restore")
@@ -436,7 +498,7 @@ replacement for the code@{python-memcached} library.")
(search-patch "mongodb-support-unknown-linux-distributions.patch")))))
(build-system scons-build-system)
(inputs
- `(("openssl" ,openssl)
+ `(("openssl" ,openssl-1.0)
("pcre" ,pcre)
,@(match (%current-system)
((or "x86_64-linux" "aarch64-linux" "mips64el-linux")
@@ -476,6 +538,15 @@ replacement for the code@{python-memcached} library.")
,(format #f "--jobs=~a" (parallel-job-count))
"--ssl")))
(modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ ;; Remove use of GNU extensions in parse_number_test.cpp, to
+ ;; allow compiling with GCC 7 or later
+ ;; https://jira.mongodb.org/browse/SERVER-28063
+ (substitute* "src/mongo/base/parse_number_test.cpp"
+ (("0xabcab\\.defdefP-10")
+ "687.16784283419838"))
+ #t))
(add-after 'unpack 'scons-propagate-environment
(lambda _
;; Modify the SConstruct file to arrange for
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 671ee89d7c..2a77abd505 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -7541,6 +7541,31 @@ end of a line and increment or decrement it.")
a popup window for previewing candidates.")
(license license:gpl3+))))
+(define-public emacs-evil-args
+ (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
+ (revision "1"))
+ (package
+ (name "emacs-evil-args")
+ (version (git-version "1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/wcsmith/evil-args.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
+ (build-system emacs-build-system)
+ (propagated-inputs `(("emacs-evil" ,emacs-evil)))
+ (home-page "https://github.com/wcsmith/evil-args")
+ (synopsis "Motions and text objects for delimited arguments in Evil")
+ (description
+ "This package provides motions and text objects for delimited
+arguments, such as arguments separated by commas and semicolons.")
+ (license license:expat))))
+
(define-public emacs-evil-exchange
(let ((commit "47691537815150715e64e6f6ec79be7746c96120")
(version "0.41")
@@ -11602,6 +11627,34 @@ close, copy, cut, paste, undo, redo.")
standard Unix password manager\").")
(license license:gpl2+)))
+(define-public emacs-auth-source-pass
+ (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
+ (revision "1"))
+ (package
+ (name "emacs-auth-source-pass")
+ (version (git-version "5.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/NicolasPetton/auth-password-store.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
+ (build-system emacs-build-system)
+ (arguments
+ `(#:tests? #t
+ #:test-command '("emacs" "--batch"
+ "-L" "."
+ "-l" "test/auth-source-pass-tests.el"
+ "-f" "ert-run-tests-batch-and-exit")))
+ (home-page "https://github.com/NicolasPetton/auth-password-store")
+ (synopsis "Integrate @code{auth-source} with @code{password-store}")
+ (description "This package helps Emacs integrate with the Unix
+@code{password-store} application.")
+ (license license:gpl3+))))
+
(define-public emacs-pass
(package
(name "emacs-pass")
@@ -12195,50 +12248,48 @@ according to a parsing expression grammar.")
(license license:gpl3+)))
(define-public emacs-org-ql
- (let ((commit "949a06c3ab50482b749fd2d4350837a197660d96")
- (revision "3"))
- (package
- (name "emacs-org-ql")
- (version (git-version "0.3.1" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/alphapapa/org-ql")
- (commit commit)))
- (sha256
- (base32
- "0apcg63xm0242mjgsgw0jrcda4p4iqj7fy3sgh0p7khi4hrs5ch0"))
- (file-name (git-file-name name version))))
- (build-system emacs-build-system)
- (propagated-inputs
- `(("emacs-s" ,emacs-s)
- ("emacs-f" ,emacs-f)
- ("emacs-ov" ,emacs-ov)
- ("emacs-peg" ,emacs-peg)
- ("emacs-org-super-agenda" ,emacs-org-super-agenda)
- ("emacs-ts" ,emacs-ts)
- ("emacs-org" ,emacs-org)
- ("emacs-helm" ,emacs-helm)
- ("emacs-helm-org" ,emacs-helm-org)
- ("emacs-dash" ,emacs-dash)))
- (native-inputs
- `(("emacs-buttercup" ,emacs-buttercup)))
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'require-helm
- (lambda _
- (substitute* "helm-org-ql.el"
- (("^;;;; Requirements")
- ";;;; Requirements\n(require 'helm)\n(require 'helm-org)"))
- #t)))
- #:tests? #t
- #:test-command '("buttercup" "-L" ".")))
- (home-page "https://github.com/alphapapa/org-ql/")
- (synopsis "Query language for Org buffers")
- (description "This package provides a Lispy query language for Org
+ (package
+ (name "emacs-org-ql")
+ (version "0.3.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/alphapapa/org-ql")
+ (commit version)))
+ (sha256
+ (base32
+ "11bhpi2l28vp8mm9nx18jljbqdnh9vxpv9kp1dn9lpsgivcdbc34"))
+ (file-name (git-file-name name version))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-s" ,emacs-s)
+ ("emacs-f" ,emacs-f)
+ ("emacs-ov" ,emacs-ov)
+ ("emacs-peg" ,emacs-peg)
+ ("emacs-org-super-agenda" ,emacs-org-super-agenda)
+ ("emacs-ts" ,emacs-ts)
+ ("emacs-org" ,emacs-org)
+ ("emacs-helm" ,emacs-helm)
+ ("emacs-helm-org" ,emacs-helm-org)
+ ("emacs-dash" ,emacs-dash)))
+ (native-inputs
+ `(("emacs-buttercup" ,emacs-buttercup)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'require-helm
+ (lambda _
+ (substitute* "helm-org-ql.el"
+ (("^;;;; Requirements")
+ ";;;; Requirements\n(require 'helm)\n(require 'helm-org)"))
+ #t)))
+ #:tests? #t
+ #:test-command '("buttercup" "-L" ".")))
+ (home-page "https://github.com/alphapapa/org-ql/")
+ (synopsis "Query language for Org buffers")
+ (description "This package provides a Lispy query language for Org
files, allowing for actions to be performed based on search criteria.")
- (license license:gpl3+))))
+ (license license:gpl3+)))
(define-public emacs-org-auto-expand
(let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
@@ -12537,6 +12588,11 @@ orient yourself in the code, and tell which statements are at a given level.")
(sha256
(base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
(build-system emacs-build-system)
+ (native-inputs
+ `(("emacs-buttercup" ,emacs-buttercup)))
+ (arguments
+ `(#:tests? #t
+ #:test-command '("buttercup" "-L" ".")))
(home-page "https://github.com/DamienCassou/hierarchy")
(synopsis "Library to create and display hierarchy structures")
(description "This package provides an Emacs library to create, query,
@@ -14960,7 +15016,7 @@ Org-mode. It features:
(method git-fetch)
(uri (git-reference (url home-page)
(commit (string-append "v" version))))
- (file-name (string-append name "-" version ".tar.gz"))
+ (file-name (git-file-name name version))
(sha256
(base32
"1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
@@ -16219,7 +16275,7 @@ backends, including the @command{wordnet} offline backend.")
(define-public emacs-editorconfig
(package
(name "emacs-editorconfig")
- (version "0.8.0")
+ (version "0.8.1")
(source
(origin
(method git-fetch)
@@ -16229,7 +16285,7 @@ backends, including the @command{wordnet} offline backend.")
(file-name (git-file-name name version))
(sha256
(base32
- "1b2cpqz75pivl323bs60j5rszwi787x6vy68csycikqz9mhpmjn9"))))
+ "1djlhkap7zddknzvjsjz0agpfsms1ih05zcpg1bikid2vs4gddyr"))))
(build-system emacs-build-system)
(home-page "https://github.com/editorconfig/editorconfig-emacs")
(synopsis "Define and maintain consistent coding styles between different
@@ -18482,8 +18538,8 @@ Dash docsets.")
(license license:gpl3+))))
(define-public emacs-counsel-dash
- (let ((commit "24d370be9e94e90d045c49967e19484b9903fce9")
- (revision "2"))
+ (let ((commit "7027868d483b51d949b9f20fb8f34b122ca61520")
+ (revision "3"))
(package
(name "emacs-counsel-dash")
(version (git-version "0.1.3" revision commit))
@@ -18496,11 +18552,20 @@ Dash docsets.")
(file-name (git-file-name name version))
(sha256
(base32
- "18gp7hhgng271c7bh06k9p24zqic0f64j5cicivljmyk9c3nh7an"))))
+ "0h3f5pxnmb21pq4hh7k4w8jzflz1k2ap7nwpjc222w0q6x6jrbjp"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash-docs" ,emacs-dash-docs)
("emacs-ivy" ,emacs-ivy)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'require-ivy
+ (lambda _
+ (substitute* "counsel-dash.el"
+ (("^\\(require 'cl-lib\\)")
+ "(require 'cl-lib)\n(require 'ivy)\n(require 'subr-x)"))
+ #t)))))
(home-page "https://github.com/dash-docs-el/counsel-dash")
(synopsis "Offline documentation browser for APIs using Dash docsets")
(description "This package uses @code{ivy-mode} to install and navigate
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 1e5629451d..8095d3c44d 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -9,6 +9,8 @@
;;; Copyright © 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2019 David Wilson <david@daviwil.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,6 +28,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages emulators)
+ #:use-module (ice-9 match)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
@@ -39,6 +42,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages backup)
+ #:use-module (gnu packages cdrom)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages elf)
@@ -82,6 +86,7 @@
#:use-module (gnu packages xorg)
#:use-module (gnu packages web)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu))
(define-public desmume
@@ -1366,3 +1371,94 @@ functions. The source code to MAME serves as this documentation.")
;; However, over 90% of the files are under Expat license. Also, artwork,
;; keymaps, languages and samples are under CC0.
(license (list license:gpl2+ license:expat license:cc0))))
+
+(define-public pcsxr
+ ;; No release since 2017.
+ (let ((commit "6484236cb0281e8040ff6c8078c87899a3407534"))
+ (package
+ (name "pcsxr")
+ ;; Version is tagged here: https://github.com/frealgagu/PCSX-Reloaded
+ (version "1.9.95")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pcsxr/PCSX-Reloaded")
+ (commit commit)))
+ (sha256
+ (base32
+ "138mayp7zi9v4l3lm5f6xxkds619w1fgg769zm8s45c84jbz7dza"))
+ (file-name (git-file-name name commit))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ;no "test" target
+ #:configure-flags
+ (list "-DSND_BACKEND=pulse"
+ "-DENABLE_CCDDA='ON'"
+ "-DUSE_LIBARCHIVE='ON'"
+ "-DUSE_LIBCDIO='ON'")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'cd-subdir
+ (lambda _ (chdir "pcsxr")))
+ (add-before 'configure 'fix-cdio-lookup
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "cmake/FindCdio.cmake"
+ (("/usr/include/cdio")
+ (string-append (assoc-ref inputs "libcdio") "/include/cdio"))))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)
+ ("glib" ,glib "bin")))
+ (inputs
+ `(("libcdio" ,libcdio)
+ ("sdl2" ,sdl2)
+ ("gtk+" ,gtk+)
+ ("ffmpeg" ,ffmpeg)
+ ("libxv" ,libxv)
+ ("libarchive" ,libarchive)
+ ("pulseaudio" ,pulseaudio)))
+ (home-page "https://archive.codeplex.com/?p=pcsxr")
+ (synopsis "PlayStation emulator")
+ (description
+ "A PlayStation emulator based on PCSX-df Project with bugfixes and
+improvements.")
+ (license license:gpl2+))))
+
+(define-public gens-gs
+ (package
+ (name "gens-gs")
+ (version "7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://retrocdn.net/images/6/6d/Gens-gs-r"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1ha5s6d3y7s9aq9f4zmn9p88109c3mrj36z2w68jhiw5xrxws833"))))
+ (build-system glib-or-gtk-build-system)
+ (arguments
+ `(#:system "i686-linux"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-CFLAGS
+ (lambda* _
+ ;; Remove GTK API deprecation flags that cause build errors.
+ (substitute* "configure"
+ (("GTK_CFLAGS=\"\\$GTK_CFLAGS .*\"") ""))
+ #t)))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("nasm" ,nasm)))
+ (inputs
+ `(("sdl" ,sdl)
+ ("gtk" ,gtk+-2)))
+ (home-page "https://segaretro.org/Gens/GS")
+ (synopsis "Emulator for Sega Genesis/Mega Drive systems")
+ (description
+ "Gens/GS is an emulator for the Mega Drive (also known as Sega Genesis),
+derived from Gens. Project goals include clean source code, combined features
+from various forks of Gens, and improved platform portability.")
+ (supported-systems '("i686-linux" "x86_64-linux"))
+ (license license:gpl2+)))
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index 857a8ddd1b..c49e6cf66b 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -30,6 +30,7 @@
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
#:use-module (gnu packages)
+ #:use-module (gnu packages algebra)
#:use-module (gnu packages avahi)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
@@ -298,6 +299,11 @@ Libraries with some extra bells and whistles.")
#:phases
(modify-phases %standard-phases
(delete 'bootstrap) ; We don't want to run the autogen script.
+ (add-after 'unpack 'fix-dot-desktop-creation
+ (lambda _
+ (substitute* "data/session/meson.build"
+ (("HAVE_WAYLAND'.*") "HAVE_WAYLAND') == true\n"))
+ #t))
(add-before 'configure 'set-system-actions
(lambda* (#:key inputs #:allow-other-keys)
(setenv "HOME" "/tmp")
@@ -306,6 +312,7 @@ Libraries with some extra bells and whistles.")
(utils (assoc-ref inputs "util-linux"))
(libc (assoc-ref inputs "libc"))
(bluez (assoc-ref inputs "bluez"))
+ (bc (assoc-ref inputs "bc"))
(efl (assoc-ref inputs "efl")))
;; We need to patch the path to 'base.lst' to be able
;; to switch the keyboard layout in E.
@@ -326,6 +333,8 @@ Libraries with some extra bells and whistles.")
(string-append efl "/bin/edje_cc -v %s %s %s\"")))
(substitute* "src/modules/everything/evry_plug_apps.c"
(("/usr/bin/") ""))
+ (substitute* "src/modules/everything/evry_plug_calc.c"
+ (("bc -l") (string-append bc "/bin/bc -l")))
(substitute* "data/etc/meson.build"
(("/bin/mount") (string-append utils "/bin/mount"))
(("/bin/umount") (string-append utils "/bin/umount"))
@@ -343,6 +352,7 @@ Libraries with some extra bells and whistles.")
("util-linux" ,util-linux)))
(inputs
`(("alsa-lib" ,alsa-lib)
+ ("bc" ,bc)
("bluez" ,bluez)
("dbus" ,dbus)
("efl" ,efl)
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 03bfa43014..bb6dc45d94 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -1000,14 +1000,31 @@ correct spacing.")
;; <https://bugs.gnu.org/32916>
(version "4.7.0")
(source (origin
- (method url-fetch)
- (uri (string-append "http://fontawesome.io/assets/"
- name "-" version ".zip"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FortAwesome/Font-Awesome.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1m1rfwm4sjkv10j3xd2dhwk286a5912b2zgvc692cmxi5gxs68jf"))))
+ "0w30y26jp8nvxa3iiw7ayl6rkza1rz62msl9xw3srvxya1c77grc"))))
(build-system font-build-system)
- (home-page "http://fontawesome.io")
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (source (string-append (getcwd) "/fonts"))
+ (fonts (string-append out "/share/fonts")))
+ (for-each (lambda (file)
+ (install-file file (string-append fonts "/truetype")))
+ (find-files source "\\.(ttf|ttc)$"))
+ (for-each (lambda (file)
+ (install-file file (string-append fonts "/opentype")))
+ (find-files source "\\.(otf|otc)$"))
+ #t))))))
+ (home-page "https://fontawesome.com/")
(synopsis "Font that contains a rich iconset")
(description
"Font Awesome is a full suite of pictographic icons for easy scalable
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 781f450621..870c4be4ab 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2223,7 +2223,7 @@ engineering.")
(define-public seahorse
(package
(name "seahorse")
- (version "3.30")
+ (version "3.30.1.1")
(source
(origin
(method url-fetch)
@@ -2232,8 +2232,19 @@ engineering.")
version ".tar.xz"))
(sha256
(base32
- "1sbj1czlx1fakm72dwgbn0bwm12j838yaky4mkf6hf8j8afnxmzp"))))
- (build-system glib-or-gtk-build-system)
+ "12x7xmwh62yl0ax90v8nkx3jqzviaz9hz2g56yml78wzww20gawy"))
+ (patches (search-patches
+ "seahorse-gkr-use-0-on-empty-flags.patch"))))
+ (build-system meson-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'skip-gtk-update-icon-cache
+ ;; Don't create 'icon-theme.cache'.
+ (lambda _
+ (substitute* "build-aux/meson_post_install.py"
+ (("gtk-update-icon-cache") "true"))
+ #t)))))
(inputs
`(("gtk+" ,gtk+)
("gcr" ,gcr)
@@ -2241,13 +2252,15 @@ engineering.")
("gpgme" ,gpgme)
("openldap" ,openldap)
("openssh" ,openssh)
+ ("avahi" ,avahi)
("libsecret" ,libsecret)
("libsoup" ,libsoup)))
(native-inputs
- `(("intltool" ,intltool)
+ `(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("itstool" ,itstool)
("pkg-config" ,pkg-config)
+ ("vala" ,vala)
("xmllint" ,libxml2)))
(home-page "https://launchpad.net/gnome-themes-standard")
(synopsis "Manage encryption keys and passwords in the GNOME keyring")
@@ -4353,7 +4366,7 @@ USB transfers with your high-level application or system daemon.")
;; one breaks the build by referring to a
;; non-existent header (packagekit.h)
(delete-file "src/ui.c"))))))
- (home-page "https://launchpad.net/simple-scan")
+ (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
(synopsis "Document and image scanner")
(description "Simple Scan is an easy-to-use application, designed to let
users connect their scanner and quickly have the image/document in an
@@ -7100,7 +7113,7 @@ dark elements. It supports GNOME, Unity, Xfce, and Openbox.")
(define-public arc-theme
(package
(name "arc-theme")
- (version "20181022")
+ (version "20190917")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -7109,7 +7122,7 @@ dark elements. It supports GNOME, Unity, Xfce, and Openbox.")
(file-name (git-file-name name version))
(sha256
(base32
- "08951dk1irfadwpr3p323a4fprmxg53rk2r2niwq3v62ryhi3663"))))
+ "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
(build-system gnu-build-system)
(arguments
'(#:phases
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 49a6e964a3..4419c48d1a 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -59,6 +59,7 @@
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system guile)
+ #:use-module (guix deprecation)
#:use-module (guix utils)
#:use-module (ice-9 match)
#:use-module ((srfi srfi-1) #:prefix srfi-1:))
@@ -413,7 +414,7 @@ GNU@tie{}Guile. Use the @code{(ice-9 readline)} module and call its
;;; Extensions.
;;;
-(define-public guile-json
+(define-public guile-json-1
(package
(name "guile-json")
(version "1.2.0")
@@ -444,17 +445,21 @@ specification. These are the main features:
;; Version 1.2.0 switched to GPLv3+ (from LGPLv3+).
(license license:gpl3+)))
-(define-public guile-json-1
- ;; This is the 1.x branch of Guile-JSON.
- guile-json)
+;; Deprecate the 'guile-json' alias to force the use 'guile-json-1' or
+;; 'guile-json-3'. In the future, we may reuse 'guile-json' as an alias for
+;; 'guile-json-3'.
+(define-deprecated guile-json
+ guile-json-1
+ guile-json-1)
+(export guile-json)
(define-public guile2.0-json
- (package-for-guile-2.0 guile-json))
+ (package-for-guile-2.0 guile-json-1))
(define-public guile-json-3
;; This version is incompatible with 1.x; see the 'NEWS' file.
(package
- (inherit guile-json)
+ (inherit guile-json-1)
(name "guile-json")
(version "3.2.0")
(source (origin
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index d75d28ef0a..96c69bd126 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -2919,7 +2919,7 @@ country-specific regulations for the wireless spectrum.")
(define-public lm-sensors
(package
(name "lm-sensors")
- (version "3.5.0")
+ (version "3.6.0")
(source
(origin
(method git-fetch)
@@ -2929,7 +2929,7 @@ country-specific regulations for the wireless spectrum.")
(string-split version #\.) "-")))))
(file-name (git-file-name name version))
(sha256
- (base32 "1mdrnb9r01z1xfdm6dpkywvf9yy9a4yzb59paih9sijwmigv19fj"))
+ (base32 "1ipf6wjx037sqyhy0r5jh4983h216anq9l68ckn2x5c3qc4wfmzn"))
(patches (search-patches "lm-sensors-hwmon-attrs.patch"))))
(build-system gnu-build-system)
(inputs `(("rrdtool" ,rrdtool)
@@ -2940,10 +2940,10 @@ country-specific regulations for the wireless spectrum.")
("flex" ,flex)
("bison" ,bison)
("which" ,which)))
- (outputs '("lib" ;avoid perl in closure
+ (outputs '("lib" ; avoid perl in closure
"out"))
(arguments
- `(#:tests? #f ; no 'check' target
+ `(#:tests? #f ; no 'check' target
#:make-flags (list (string-append "PREFIX=" %output)
(string-append "ETCDIR=" (assoc-ref %outputs "lib") "/etc")
(string-append "INCLUDEDIR="
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index bb2a589578..4a7527344f 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -1508,6 +1508,8 @@ else @code{parse-number} signals an error of type @code{invalid-number}.")
(base32
"0kvz16gnxnkdz0fy1x8y5yr28nfm7i2qpvix7mgwccdpjmsb4pgm"))))
(build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("rt" ,sbcl-rt)))
(home-page "https://common-lisp.net/project/iterate/")
(synopsis "Iteration construct for Common Lisp")
(description "@code{iterate} is an iteration construct for Common Lisp.
@@ -1524,6 +1526,9 @@ It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
(define-public cl-iterate
(sbcl-package->cl-source-package sbcl-iterate))
+(define-public ecl-iterate
+ (sbcl-package->ecl-package sbcl-iterate))
+
(define-public sbcl-cl-uglify-js
;; There have been many bug fixes since the 2010 release.
(let ((commit "429c5e1d844e2f96b44db8fccc92d6e8e28afdd5")
@@ -7833,3 +7838,248 @@ Clojure, as well as several expansions on the idea.")
(define-public ecl-arrows
(sbcl-package->ecl-package sbcl-arrows))
+
+(define-public sbcl-simple-parallel-tasks
+ (let ((commit "db460f7a3f7bbfe2d3a2223ed21e162068d04dda")
+ (revision "0"))
+ (package
+ (name "sbcl-simple-parallel-tasks")
+ (version (git-version "1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/glv2/simple-parallel-tasks.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0amw3qk23wnlyrsgzszs6rs7y4zvxv8dr03rnqhc60mnm8ds4dd5"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (inputs
+ `(("chanl" ,sbcl-chanl)))
+ (synopsis "Common Lisp library to evaluate some forms in parallel")
+ (description "This is a simple Common Lisp library to evaluate some
+forms in parallel.")
+ (home-page "https://github.com/glv2/simple-parallel-tasks")
+ (license license:gpl3))))
+
+(define-public cl-simple-parallel-tasks
+ (sbcl-package->cl-source-package sbcl-simple-parallel-tasks))
+
+(define-public ecl-simple-parallel-tasks
+ (sbcl-package->ecl-package sbcl-simple-parallel-tasks))
+
+(define-public sbcl-cl-heap
+ (package
+ (name "sbcl-cl-heap")
+ (version "0.1.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://common-lisp.net/project/cl-heap/releases/"
+ "cl-heap_" version ".tar.gz"))
+ (sha256
+ (base32
+ "163hb07p2nxz126rpq3cj5dyala24n0by5i5786n2qcr1w0bak4i"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("xlunit" ,sbcl-xlunit)))
+ (arguments
+ `(#:test-asd-file "cl-heap-tests.asd"))
+ (synopsis "Heap and priority queue data structures for Common Lisp")
+ (description
+ "CL-HEAP provides various implementations of heap data structures (a
+binary heap and a Fibonacci heap) as well as an efficient priority queue.")
+ (home-page "https://common-lisp.net/project/cl-heap/")
+ (license license:gpl3+)))
+
+(define-public cl-heap
+ (sbcl-package->cl-source-package sbcl-cl-heap))
+
+(define-public ecl-cl-heap
+ (sbcl-package->ecl-package sbcl-cl-heap))
+
+(define-public sbcl-curry-compose-reader-macros
+ (let ((commit "beaa92dedf392726c042184bfd6149fa8d9e6ac2")
+ (revision "0"))
+ (package
+ (name "sbcl-curry-compose-reader-macros")
+ (version (git-version "1.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/eschulte/curry-compose-reader-macros.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0rv9bl8xrad5wfcg5zs1dazvnpmvqz6297lbn8bywsrcfnlf7h98"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("named-readtables" ,sbcl-named-readtables)))
+ (synopsis "Reader macros for partial application and composition")
+ (description
+ "This Common Lisp library provides reader macros for concise expression
+of function partial application and composition.")
+ (home-page "https://eschulte.github.io/curry-compose-reader-macros/")
+ (license license:public-domain))))
+
+(define-public cl-curry-compose-reader-macros
+ (sbcl-package->cl-source-package sbcl-curry-compose-reader-macros))
+
+(define-public ecl-curry-compose-reader-macros
+ (sbcl-package->ecl-package sbcl-curry-compose-reader-macros))
+
+(define-public sbcl-yason
+ (package
+ (name "sbcl-yason")
+ (version "0.7.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/phmarek/yason.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+ (synopsis "Common Lisp JSON parser/encoder")
+ (description
+ "YASON is a Common Lisp library for encoding and decoding data in the
+JSON interchange format.")
+ (home-page "https://github.com/phmarek/yason")
+ (license license:bsd-3)))
+
+(define-public cl-yason
+ (sbcl-package->cl-source-package sbcl-yason))
+
+(define-public ecl-yason
+ (sbcl-package->ecl-package sbcl-yason))
+
+(define-public sbcl-stefil
+ (let ((commit "0398548ec95dceb50fc2c2c03e5fb0ce49b86c7a")
+ (revision "0"))
+ (package
+ (name "sbcl-stefil")
+ (version (git-version "0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.common-lisp.net/stefil/stefil.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0bqz64q2szzhf91zyqyssmvrz7da6442rs01808pf3wrdq28bclh"))))
+ (build-system asdf-build-system/sbcl)
+ (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)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'drop-unnecessary-dependency
+ (lambda _
+ (substitute* "package.lisp"
+ ((":stefil-system") ""))
+ #t)))))
+ (home-page "https://common-lisp.net/project/stefil/index-old.shtml")
+ (synopsis "Simple test framework")
+ (description
+ "Stefil is a simple test framework for Common Lisp, with a focus on
+interactive development.")
+ (license license:public-domain))))
+
+(define-public cl-stefil
+ (sbcl-package->cl-source-package sbcl-stefil))
+
+(define-public sbcl-graph
+ (let ((commit "78bf9ec930d8eae4f0861b5be76765fb1e45e24f")
+ (revision "0"))
+ (package
+ (name "sbcl-graph")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/eschulte/graph.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1qpij4xh8bqwc2myahpilcbh916v7vg0acz2fij14d3y0jm02h0g"))
+ (patches (search-patches "sbcl-graph-asdf-definitions.patch"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("stefil" ,sbcl-stefil)))
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cl-heap" ,sbcl-cl-heap)
+ ("curry-compose-reader-macros" ,sbcl-curry-compose-reader-macros)
+ ("metabang-bind" ,sbcl-metabang-bind)
+ ("named-readtables" ,sbcl-named-readtables)))
+ (arguments
+ '(#:test-asd-file "graph.test.asd"))
+ (synopsis "Graph data structure and algorithms for Common Lisp")
+ (description
+ "The GRAPH Common Lisp library provides a data structures to represent
+graphs, as well as some graph manipulation and analysis algorithms (shortest
+path, maximum flow, minimum spanning tree, etc.).")
+ (home-page "https://eschulte.github.io/graph/")
+ (license license:gpl3+))))
+
+(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")))
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 2b2df6da6a..b83b336d84 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -2051,3 +2051,39 @@ includes an implementation of Global Refinement of Random Forest.")
(define-public ecl-cl-random-forest
(sbcl-package->ecl-package sbcl-cl-random-forest))
+
+(define-public gloo
+ (let ((version "0.0.0") ; no proper version tag
+ (commit "ca528e32fea9ca8f2b16053cff17160290fc84ce")
+ (revision "0"))
+ (package
+ (name "gloo")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/facebookincubator/gloo.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1q9f80zy75f6njrzrqkmhc0g3qxs4gskr7ns2jdqanxa2ww7a99w"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("googletest" ,googletest)))
+ (arguments
+ `(#:configure-flags '("-DBUILD_TEST=1")
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "make" "gloo_test")
+ #t)))))
+ (synopsis "Collective communications library")
+ (description
+ "Gloo is a collective communications library. It comes with a
+number of collective algorithms useful for machine learning applications.
+These include a barrier, broadcast, and allreduce.")
+ (home-page "https://github.com/facebookincubator/gloo")
+ (license license:bsd-3))))
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index 3a664fd94f..4b8387a65f 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Mark H Weaver <mhw@netris.org>
@@ -24,6 +24,7 @@
(define-module (gnu packages make-bootstrap)
#:use-module (guix utils)
#:use-module (guix packages)
+ #:use-module (guix memoization)
#:use-module ((guix licenses) #:select (gpl3+))
#:use-module (guix build-system trivial)
#:use-module (guix build-system gnu)
@@ -63,27 +64,29 @@
;;;
;;; Code:
-(define* (glibc-for-bootstrap #:optional (base glibc))
- "Return a libc deriving from BASE whose `system' and `popen' functions looks
+(define glibc-for-bootstrap
+ (mlambdaq (base)
+ "Return a libc deriving from BASE whose `system' and `popen' functions looks
for `sh' in $PATH, and without nscd, and with static NSS modules."
- (package (inherit base)
- (source (origin (inherit (package-source base))
- (patches (cons (search-patch "glibc-bootstrap-system.patch")
- (origin-patches (package-source base))))))
- (arguments
- (substitute-keyword-arguments (package-arguments base)
- ((#:configure-flags flags)
- ;; Arrange so that getaddrinfo & co. do not contact the nscd,
- ;; and can use statically-linked NSS modules.
- `(cons* "--disable-nscd" "--disable-build-nscd"
- "--enable-static-nss"
- ,flags))))
-
- ;; Remove the 'debug' output to allow bit-reproducible builds (when the
- ;; 'debug' output is used, ELF files end up with a .gnu_debuglink, which
- ;; includes a CRC of the corresponding debugging symbols; those symbols
- ;; contain store file names, so the CRC changes at every rebuild.)
- (outputs (delete "debug" (package-outputs base)))))
+ (package
+ (inherit base)
+ (source (origin (inherit (package-source base))
+ (patches (cons (search-patch "glibc-bootstrap-system.patch")
+ (origin-patches (package-source base))))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments base)
+ ((#:configure-flags flags)
+ ;; Arrange so that getaddrinfo & co. do not contact the nscd,
+ ;; and can use statically-linked NSS modules.
+ `(cons* "--disable-nscd" "--disable-build-nscd"
+ "--enable-static-nss"
+ ,flags))))
+
+ ;; Remove the 'debug' output to allow bit-reproducible builds (when the
+ ;; 'debug' output is used, ELF files end up with a .gnu_debuglink, which
+ ;; includes a CRC of the corresponding debugging symbols; those symbols
+ ;; contain store file names, so the CRC changes at every rebuild.)
+ (outputs (delete "debug" (package-outputs base))))))
(define (package-with-relocatable-glibc p)
"Return a variant of P that uses the libc as defined by
@@ -122,8 +125,8 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(package-search-paths gcc)))))
("cross-binutils" ,(cross-binutils target))
,@(%final-inputs)))
- `(("libc" ,(glibc-for-bootstrap))
- ("libc:static" ,(glibc-for-bootstrap) "static")
+ `(("libc" ,(glibc-for-bootstrap glibc))
+ ("libc:static" ,(glibc-for-bootstrap glibc) "static")
("gcc" ,(package (inherit gcc)
(outputs '("out")) ;all in one so libgcc_s is easily found
(native-search-paths
@@ -135,8 +138,8 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(package-native-search-paths gcc)))
(inputs
`(;; Distinguish the name so we can refer to it below.
- ("bootstrap-libc" ,(glibc-for-bootstrap))
- ("libc:static" ,(glibc-for-bootstrap) "static")
+ ("bootstrap-libc" ,(glibc-for-bootstrap glibc))
+ ("libc:static" ,(glibc-for-bootstrap glibc) "static")
,@(package-inputs gcc)))
(arguments
(substitute-keyword-arguments (package-arguments gcc)
@@ -438,7 +441,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
;; GNU libc's essential shared libraries, dynamic linker, and headers,
;; with all references to store directories stripped. As a result,
;; libc.so is unusable and need to be patched for proper relocation.
- (let ((glibc (glibc-for-bootstrap)))
+ (let ((glibc (glibc-for-bootstrap glibc)))
(package (inherit glibc)
(name "glibc-stripped")
(build-system trivial-build-system)
diff --git a/gnu/packages/mingw.scm b/gnu/packages/mingw.scm
index fe51780fa3..88c8d41ef8 100644
--- a/gnu/packages/mingw.scm
+++ b/gnu/packages/mingw.scm
@@ -30,12 +30,21 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
- #:use-module (ice-9 match))
+ #:use-module (ice-9 match)
+ #:export (make-mingw-w64))
-(define-public (make-mingw-w64 machine)
- (let ((triplet (string-append machine "-" "w64-mingw32")))
+(define* (make-mingw-w64 machine
+ #:key
+ xgcc
+ xbinutils
+ with-winpthreads?)
+ "Return a mingw-w64 for targeting MACHINE. If XGCC or XBINUTILS is specified,
+use that gcc or binutils when cross-compiling. If WITH-WINPTHREADS? is
+specified, recurse and return a mingw-w64 with support for winpthreads."
+ (let* ((triplet (string-append machine "-" "w64-mingw32")))
(package
- (name (string-append "mingw-w64" "-" machine))
+ (name (string-append "mingw-w64" "-" machine
+ (if with-winpthreads? "-winpthreads" "")))
(version "6.0.0")
(source (origin
(method url-fetch)
@@ -45,8 +54,13 @@
(sha256
(base32 "1w28mynv500y03h92nh87rgw3fnp82qwnjbxrrzqkmr63q812pl0"))
(patches (search-patches "mingw-w64-6.0.0-gcc.patch"))))
- (native-inputs `(("xgcc-core" ,(cross-gcc triplet))
- ("xbinutils" ,(cross-binutils triplet))))
+ (native-inputs `(("xgcc-core" ,(if xgcc xgcc (cross-gcc triplet)))
+ ("xbinutils" ,(if xbinutils xbinutils (cross-binutils triplet)))
+ ,@(if with-winpthreads?
+ `(("xlibc" ,(make-mingw-w64 machine
+ #:xgcc xgcc
+ #:xbinutils xbinutils)))
+ '())))
(build-system gnu-build-system)
(search-paths
(list (search-path-specification
@@ -59,7 +73,10 @@
,(string-append triplet "/lib")
,(string-append triplet "/lib64"))))))
(arguments
- `(#:configure-flags '(,(string-append "--host=" triplet))
+ `(#:configure-flags '(,(string-append "--host=" triplet)
+ ,@(if with-winpthreads?
+ '("--with-libraries=winpthreads")
+ '()))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'setenv
@@ -74,7 +91,13 @@
":" mingw-headers "/include"
":" mingw-headers "/crt"
":" mingw-headers "/defaults/include"
- ":" mingw-headers "/direct-x/include"))))))
+ ":" mingw-headers "/direct-x/include"))
+ (when ,with-winpthreads?
+ (let ((xlibc (assoc-ref inputs "xlibc")))
+ (setenv "CROSS_LIBRARY_PATH"
+ (string-append
+ xlibc "/lib" ":"
+ xlibc "/" ,triplet "/lib"))))))))
#:make-flags (list "DEFS=-DHAVE_CONFIG_H -D__MINGW_HAS_DXSDK=1")
#:tests? #f ; compiles and includes glibc headers
#:strip-binaries? #f))
@@ -98,4 +121,12 @@ several new APIs such as DirectX and DDK, and 64-bit support.")
(define-public mingw-w64-x86_64
(make-mingw-w64 "x86_64"))
+(define-public mingw-w64-i686-winpthreads
+ (make-mingw-w64 "i686"
+ #:with-winpthreads? #t))
+
+(define-public mingw-w64-x86_64-winpthreads
+ (make-mingw-w64 "x86_64"
+ #:with-winpthreads? #t))
+
(define-public mingw-w64 mingw-w64-i686)
diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm
index 8e89836595..36d035ada0 100644
--- a/gnu/packages/multiprecision.scm
+++ b/gnu/packages/multiprecision.scm
@@ -293,7 +293,7 @@ multiplies.")
(define-public libtommath
(package
(name "libtommath")
- (version "1.1.0")
+ (version "1.2.0")
(outputs '("out" "static"))
(source
(origin
@@ -302,8 +302,7 @@ multiplies.")
"download/v" version "/ltm-" version ".tar.xz"))
(sha256
(base32
- "1bbyagqzfdbg37k1n08nsqzdf44z8zsnjjinqbsyj7rxg246qilh"))
- (patches (search-patches "libtommath-fix-linkage.patch"))))
+ "1c8q1qy88cjhdjlk3g24mra94h34c1ldvkjz0n2988c0yvn5xixp"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@@ -311,10 +310,6 @@ multiplies.")
(delete 'configure) ; no configure
(add-after 'unpack 'prepare-build
(lambda _
- ;; Don't pull in coreutils.
- (substitute* "makefile_include.mk"
- (("arch") "uname -m"))
-
;; We want the shared library by default so force it to be the
;; default makefile target.
(delete-file "makefile")
@@ -326,14 +321,15 @@ multiplies.")
"/lib/libtommath.a"))
#t))
(replace 'check
- (lambda* (#:key make-flags #:allow-other-keys)
- (apply invoke "make" "test_standalone" make-flags)
+ (lambda* (#:key test-target make-flags #:allow-other-keys)
+ (apply invoke "make" test-target make-flags)
(invoke "sh" "test")))
(add-after 'install 'install-static-library
(lambda* (#:key outputs #:allow-other-keys)
(invoke "make" "-f" "makefile.unix" "install"
(string-append "PREFIX=" (assoc-ref outputs "static"))
(string-append "CC=" (which "gcc"))))))
+ #:test-target "test"
#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
"CC=gcc")))
(native-inputs
@@ -346,9 +342,34 @@ simple to work with that provides fairly efficient routines that build out of
the box without configuration.")
(license unlicense)))
-(define-public libtommath-1.0
+(define-public libtommath-1.1
(package
(inherit libtommath)
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/libtom/libtommath/releases/"
+ "download/v" version "/ltm-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1bbyagqzfdbg37k1n08nsqzdf44z8zsnjjinqbsyj7rxg246qilh"))
+ (patches (search-patches "libtommath-fix-linkage.patch"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments libtommath)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'patch-coreutils-call
+ (lambda _
+ ;; Don't pull in coreutils.
+ (substitute* "makefile_include.mk"
+ (("arch") "uname -m"))
+ #t))))
+ ((#:test-target _) "test_standalone")))))
+
+(define-public libtommath-1.0
+ (package
+ (inherit libtommath-1.1)
(version "1.0.1")
(outputs '("out"))
(source
@@ -360,7 +381,7 @@ the box without configuration.")
(base32
"0sbccdwbkfc680id2fi0x067j23biqcjqilwkk7y9339knrjy0s7"))))
(arguments
- (substitute-keyword-arguments (package-arguments libtommath)
+ (substitute-keyword-arguments (package-arguments libtommath-1.1)
((#:phases phases)
`(modify-phases ,phases
(delete 'install-static-library)))))))
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 253596d8e3..d8338caffb 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -52,14 +52,14 @@
(define-public parallel
(package
(name "parallel")
- (version "20190922")
+ (version "20191022")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/parallel/parallel-"
version ".tar.bz2"))
(sha256
- (base32 "0qrw34rpp8g5knb2nhs8z1hz9i42nxjn6i12m4rblm0anhnfwbr8"))))
+ (base32 "1a89x5ix9kls1abj8zkgxdf3g3s5phzb83xcd4cwpz4szfjfw6v4"))))
(build-system gnu-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/patches/avahi-CVE-2018-1000845.patch b/gnu/packages/patches/avahi-CVE-2018-1000845.patch
new file mode 100644
index 0000000000..e5b13e0bee
--- /dev/null
+++ b/gnu/packages/patches/avahi-CVE-2018-1000845.patch
@@ -0,0 +1,42 @@
+From e111def44a7df4624a4aa3f85fe98054bffb6b4f Mon Sep 17 00:00:00 2001
+From: Trent Lloyd <trent@lloyd.id.au>
+Date: Sat, 22 Dec 2018 09:06:07 +0800
+Subject: [PATCH] Drop legacy unicast queries from address not on local link
+
+When handling legacy unicast queries, ensure that the source IP is
+inside a subnet on the local link, otherwise drop the packet.
+
+Fixes #145
+Fixes #203
+CVE-2017-6519
+CVE-2018-100084
+---
+ avahi-core/server.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/avahi-core/server.c b/avahi-core/server.c
+index a2cb19a8..a2580e38 100644
+--- a/avahi-core/server.c
++++ b/avahi-core/server.c
+@@ -930,6 +930,7 @@ static void dispatch_packet(AvahiServer *s, AvahiDnsPacket *p, const AvahiAddres
+
+ if (avahi_dns_packet_is_query(p)) {
+ int legacy_unicast = 0;
++ char t[AVAHI_ADDRESS_STR_MAX];
+
+ /* For queries EDNS0 might allow ARCOUNT != 0. We ignore the
+ * AR section completely here, so far. Until the day we add
+@@ -947,6 +948,13 @@ static void dispatch_packet(AvahiServer *s, AvahiDnsPacket *p, const AvahiAddres
+ legacy_unicast = 1;
+ }
+
++ if (!is_mdns_mcast_address(dst_address) &&
++ !avahi_interface_address_on_link(i, src_address)) {
++
++ avahi_log_debug("Received non-local unicast query from host %s on interface '%s.%i'.", avahi_address_snprint(t, sizeof(t), src_address), i->hardware->name, i->protocol);
++ return;
++ }
++
+ if (legacy_unicast)
+ reflect_legacy_unicast_query_packet(s, p, i, src_address, port);
+
diff --git a/gnu/packages/patches/sbcl-graph-asdf-definitions.patch b/gnu/packages/patches/sbcl-graph-asdf-definitions.patch
new file mode 100644
index 0000000000..a528ccfcc6
--- /dev/null
+++ b/gnu/packages/patches/sbcl-graph-asdf-definitions.patch
@@ -0,0 +1,70 @@
+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/patches/seahorse-gkr-use-0-on-empty-flags.patch b/gnu/packages/patches/seahorse-gkr-use-0-on-empty-flags.patch
new file mode 100644
index 0000000000..55866d2973
--- /dev/null
+++ b/gnu/packages/patches/seahorse-gkr-use-0-on-empty-flags.patch
@@ -0,0 +1,32 @@
+Patch from <https://gitlab.gnome.org/GNOME/seahorse/commit/d9db29db567012b7c72e85e1be1fbf55fcc9b667>.
+
+From d9db29db567012b7c72e85e1be1fbf55fcc9b667 Mon Sep 17 00:00:00 2001
+From: Niels De Graef <nielsdegraef@gmail.com>
+Date: Sat, 11 May 2019 09:02:34 +0200
+Subject: [PATCH] gkr: Use 0 on empty flags
+
+A Flags-type variable without any flag set can be replaced with 0, so
+this is a safe thing to do. It also prevents us from having to deal with
+the accidental API break in libsecret (see
+https://gitlab.gnome.org/GNOME/libsecret/merge_requests/19)
+---
+ gkr/gkr-keyring-add.vala | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/gkr/gkr-keyring-add.vala b/gkr/gkr-keyring-add.vala
+index 4e92a520..f60c9a22 100644
+--- a/gkr/gkr-keyring-add.vala
++++ b/gkr/gkr-keyring-add.vala
+@@ -41,8 +41,7 @@ public class Seahorse.Gkr.KeyringAdd : Gtk.Dialog {
+
+ var cancellable = Dialog.begin_request(this);
+ var service = Backend.instance().service;
+- Secret.Collection.create.begin(service, this.name_entry.text, null,
+- Secret.CollectionCreateFlags.COLLECTION_CREATE_NONE,
++ Secret.Collection.create.begin(service, this.name_entry.text, null, 0,
+ cancellable, (obj, res) => {
+ /* Clear the operation without cancelling it since it is complete */
+ Dialog.complete_request(this, false);
+--
+2.23.0
+
diff --git a/gnu/packages/patches/weasyprint-library-paths.patch b/gnu/packages/patches/weasyprint-library-paths.patch
new file mode 100644
index 0000000000..eabbdbdcd6
--- /dev/null
+++ b/gnu/packages/patches/weasyprint-library-paths.patch
@@ -0,0 +1,38 @@
+diff --git a/weasyprint/fonts.py b/weasyprint/fonts.py
+index 377716c1..2016e01c 100644
+--- a/weasyprint/fonts.py
++++ b/weasyprint/fonts.py
+@@ -48,11 +48,8 @@ else:
+ # with OSError: dlopen() failed to load a library: cairo / cairo-2
+ # So let's hope we find the same file as cairo already did ;)
+ # Same applies to pangocairo requiring pangoft2
+- fontconfig = dlopen(ffi, 'fontconfig', 'libfontconfig',
+- 'libfontconfig-1.dll',
+- 'libfontconfig.so.1', 'libfontconfig-1.dylib')
+- pangoft2 = dlopen(ffi, 'pangoft2-1.0', 'libpangoft2-1.0-0',
+- 'libpangoft2-1.0.so', 'libpangoft2-1.0.dylib')
++ fontconfig = dlopen(ffi, '@fontconfig@')
++ pangoft2 = dlopen(ffi, '@pangoft2@')
+
+ ffi.cdef('''
+ // FontConfig
+diff --git a/weasyprint/text.py b/weasyprint/text.py
+index 035074e9..08e40395 100644
+--- a/weasyprint/text.py
++++ b/weasyprint/text.py
+@@ -243,12 +243,9 @@ def dlopen(ffi, *names):
+ return ffi.dlopen(names[0]) # pragma: no cover
+
+
+-gobject = dlopen(ffi, 'gobject-2.0', 'libgobject-2.0-0', 'libgobject-2.0.so',
+- 'libgobject-2.0.dylib')
+-pango = dlopen(ffi, 'pango-1.0', 'libpango-1.0-0', 'libpango-1.0.so',
+- 'libpango-1.0.dylib')
+-pangocairo = dlopen(ffi, 'pangocairo-1.0', 'libpangocairo-1.0-0',
+- 'libpangocairo-1.0.so', 'libpangocairo-1.0.dylib')
++gobject = dlopen(ffi, '@gobject@')
++pango = dlopen(ffi, '@pango@')
++pangocairo = dlopen(ffi, '@pangocairo@')
+
+ gobject.g_type_init()
+
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 5f99f8b752..6cca129ce6 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -7,7 +7,7 @@
;;; Copyright © 2016 ng0 <ng0@n0.is>
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2016, 2019 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name>
@@ -15,6 +15,8 @@
;;; Copyright © 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
+;;; Copyright © 2019 Ben Sturmfels <ben@sturm.com.au>
+;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -65,6 +67,7 @@
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages javascript)
#:use-module (gnu packages lesstif)
+ #:use-module (gnu packages libffi)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages pcre)
@@ -72,6 +75,8 @@
#:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-check)
+ #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages sdl)
@@ -975,6 +980,50 @@ Note: This module isn't maintained anymore. For new projects please use
python-pypdf2 instead.")
(license license:bsd-3)))
+(define-public pdfarranger
+ (package
+ (name "pdfarranger")
+ (version "1.3.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jeromerobert/pdfarranger.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1f8m8r81322i97wkqpmf7a4kiwnq244n6cnbldh03jc49vwq2kxx"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:tests? #f ;no tests
+ #:phases (modify-phases %standard-phases
+ (add-after 'install 'wrap-for-typelib
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (program (string-append out "/bin/pdfarranger")))
+ (wrap-program program
+ `("GI_TYPELIB_PATH" ":" prefix
+ (,(getenv "GI_TYPELIB_PATH"))))
+ #t))))))
+ (native-inputs
+ `(("intltool" ,intltool)
+ ("python-distutils-extra" ,python-distutils-extra)))
+ (propagated-inputs
+ `(("gtk+" ,gtk+)
+ ("poppler" ,poppler)
+ ("python-pycairo" ,python-pycairo)
+ ("python-pygobject" ,python-pygobject)
+ ("python-pypdf2" ,python-pypdf2)))
+ (home-page "https://github.com/jeromerobert/pdfarranger")
+ (synopsis "Merge, split and re-arrange pages from PDF documents")
+ (description
+ "PDF Arranger is a small application which allows one to merge or split
+PDF documents and rotate, crop and rearrange their pages using an interactive
+and intuitive graphical interface.
+
+PDF Arranger was formerly known as PDF-Shuffler.")
+ (license license:gpl3+)))
+
(define-public pdfposter
(package
(name "pdfposter")
@@ -1155,3 +1204,80 @@ manipulating PDF documents from the command line. It supports
@item displaying the mapping between logical and physical page numbers
@end itemize")
(license license:bsd-3)))
+
+(define-public weasyprint
+ (package
+ (name "weasyprint")
+ (version "50")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "WeasyPrint" version))
+ (sha256
+ (base32 "0invs96zvmcr6wh5klj52jrcnr9qg150v9wpmbhcsf3vv1d1hbcw"))
+ (patches (search-patches "weasyprint-library-paths.patch"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-library-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((fontconfig (assoc-ref inputs "fontconfig"))
+ (glib (assoc-ref inputs "glib"))
+ (pango (assoc-ref inputs "pango"))
+ (pangoft2 (assoc-ref inputs "pangoft2")))
+ (substitute* "weasyprint/fonts.py"
+ (("@fontconfig@")
+ (string-append fontconfig "/lib/libfontconfig.so"))
+ (("@pangoft2@")
+ (string-append pango "/lib/libpangoft2-1.0.so")))
+ (substitute* "weasyprint/text.py"
+ (("@gobject@")
+ (string-append glib "/lib/libgobject-2.0.so"))
+ (("@pango@")
+ (string-append pango "/lib/libpango-1.0.so"))
+ (("@pangocairo@")
+ (string-append pango "/lib/libpangocairo-1.0.so"))))))
+ (add-after 'unpack 'remove-pytest-options
+ (lambda _
+ (substitute* "setup.cfg"
+ ;; flake8 and isort syntax checks fail, which is not our
+ ;; business
+ (("addopts = --flake8 --isort") ""))))
+ (replace 'check
+ (lambda _
+ ;; run pytest, excluding one failing test
+ (invoke "pytest" "-k" "not test_flex_column_wrap_reverse"))))))
+ (inputs
+ `(("fontconfig" ,fontconfig)
+ ("glib" ,glib)
+ ("pango" ,pango)))
+ (propagated-inputs
+ `(("gdk-pixbuf" ,gdk-pixbuf)
+ ("python-cairocffi" ,python-cairocffi)
+ ("python-cairosvg" ,python-cairosvg)
+ ("python-cffi" ,python-cffi)
+ ("python-cssselect2" ,python-cssselect2)
+ ("python-html5lib" ,python-html5lib)
+ ("python-pyphen" ,python-pyphen)
+ ("python-tinycss2" ,python-tinycss2)))
+ (native-inputs
+ `(("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-runner" ,python-pytest-runner)))
+ (home-page "https://weasyprint.org/")
+ (synopsis "Document factory for creating PDF files from HTML")
+ (description "WeasyPrint helps web developers to create PDF documents. It
+turns simple HTML pages into gorgeous statistical reports, invoices, tickets,
+etc.
+
+From a technical point of view, WeasyPrint is a visual rendering engine for
+HTML and CSS that can export to PDF and PNG. It aims to support web standards
+for printing.
+
+It is based on various libraries but not on a full rendering engine like
+WebKit or Gecko. The CSS layout engine is written in Python, designed for
+pagination, and meant to be easy to hack on. Weasyprint can also be used as a
+python library.
+
+Keywords: html2pdf, htmltopdf")
+ (license license:bsd-3)))
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index baa29af22e..33d0f107d6 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -3166,14 +3166,14 @@ separator.")
(define-public perl-error
(package
(name "perl-error")
- (version "0.17027")
+ (version "0.17028")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
"Error-" version ".tar.gz"))
(sha256
(base32
- "1gnkxf12dq2w1jmjpllp5f30ya4nll01jv2sfi24386zfn1arch7"))))
+ "0q796nwwiarfc6pga97380c9z8xva5545632001qj75kb1g5rn1s"))))
(build-system perl-build-system)
(native-inputs `(("perl-module-build" ,perl-module-build)))
(home-page "https://metacpan.org/release/Error")
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 15cf9138d4..caa398752e 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -153,6 +154,36 @@ of the project to ensure it renders properly.")
compliance.")
(license license:bsd-3)))
+(define-public python-pytest-isort
+ (package
+ (name "python-pytest-isort")
+ (version "0.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-isort" version))
+ (sha256
+ (base32 "06myn5hhxs5yp8dqr1yjsgcnnxnsrvsqannm00bvaw0qml6ydzjb"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (setenv "PYTHONPATH"
+ (string-append (getcwd) ":"
+ (getenv "PYTHONPATH")))
+ (invoke "pytest"))))))
+ (propagated-inputs
+ `(("python-isort" ,python-isort)
+ ("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/moccu/pytest-isort/")
+ (synopsis "Pytest plugin to check import ordering using isort")
+ (description
+ "This package provides a pytest plugin to check import ordering using
+isort.")
+ (license license:bsd-3)))
+
(define-public python-pytest-shutil
(package
(name "python-pytest-shutil")
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 752d120782..b79b10d51e 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -13,7 +13,7 @@
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2015, 2016, 2017, 2019 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2016, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2015, 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org>
@@ -63,6 +63,7 @@
#: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-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages sphinx)
@@ -1636,14 +1637,13 @@ Amazon Web Services (AWS) API.")
(define-public python-wsgiproxy2
(package
(name "python-wsgiproxy2")
- (version "0.4.5")
+ (version "0.4.6")
(source
(origin
(method url-fetch)
(uri (pypi-uri "WSGIProxy2" version ".tar.gz"))
(sha256
- (base32
- "19d9dva282vfjs784i0zkxp078lxfz4h3f621z30ij9wbf5rba6a"))))
+ (base32 "16jch5nic0hia28lps3c678s9s9mjdq8n87igxncjg0rpi5adqnf"))))
(build-system python-build-system)
(native-inputs
`(("python-webtest" ,python-webtest)))
@@ -3301,3 +3301,69 @@ library to create slugs from unicode strings while keeping it DRY.")
(description "Generate complex HTML+JS pages with Python")
(license license:expat)))
+(define-public python-tinycss2
+ (package
+ (name "python-tinycss2")
+ (version "1.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tinycss2" version))
+ (sha256
+ (base32 "1kw84y09lggji4krkc58jyhsfj31w8npwhznr7lf19d0zbix09v4"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _ (invoke "pytest"))))))
+ (propagated-inputs
+ `(("python-webencodings" ,python-webencodings)))
+ (native-inputs
+ `(("python-pytest-flake8" ,python-pytest-flake8)
+ ("python-pytest-isort" ,python-pytest-isort)
+ ("python-pytest-runner" ,python-pytest-runner)))
+ (home-page "https://tinycss2.readthedocs.io/")
+ (synopsis "Low-level CSS parser for Python")
+ (description "@code{tinycss2} can parse strings, return Python objects
+representing tokens and blocks, and generate CSS strings corresponding to
+these objects.
+
+Based on the CSS Syntax Level 3 specification, @code{tinycss2} knows the
+grammar of CSS but doesn’t know specific rules, properties or values supported
+in various CSS modules.")
+ (license license:bsd-3)))
+
+(define-public python-cssselect2
+ (package
+ (name "python-cssselect2")
+ (version "0.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "cssselect2" version))
+ (sha256
+ (base32 "0skymzb4ncrm2zdsy80f53vi0arf776lvbp51hzh4ayp1il5lj3h"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _ (invoke "pytest"))))))
+ (propagated-inputs
+ `(("python-tinycss2" ,python-tinycss2)))
+ (native-inputs
+ `(("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-flake8" ,python-pytest-flake8)
+ ("python-pytest-isort" ,python-pytest-isort)
+ ("python-pytest-runner" ,python-pytest-runner)))
+ (home-page "https://cssselect2.readthedocs.io/")
+ (synopsis "CSS selectors for Python ElementTree")
+ (description "@code{cssselect2} is a straightforward implementation of
+CSS3 Selectors for markup documents (HTML, XML, etc.) that can be read by
+ElementTree-like parsers (including cElementTree, lxml, html5lib, etc.).
+
+Unlike the Python package @code{cssselect}, it does not translate selectors to
+XPath and therefore does not have all the correctness corner cases that are
+hard or impossible to fix in cssselect.")
+ (license license:bsd-3)))
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index cc64070ed0..7a2e1a7d81 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -166,14 +166,13 @@
(define-public python-psutil
(package
(name "python-psutil")
- (version "5.6.2")
+ (version "5.6.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "psutil" version))
(sha256
- (base32
- "1v95vb5385qscfdvphv8l2w22bmir3d7yhpi02n58v3mlqy1r3l2"))))
+ (base32 "1wv31zly44qj0rp2acg58xbnc7bf6ffyadasq093l455q30qafl6"))))
(build-system python-build-system)
(arguments
;; FIXME: some tests does not return and times out.
@@ -1924,13 +1923,13 @@ files.")
(define-public python-pyld
(package
(name "python-pyld")
- (version "1.0.3")
+ (version "1.0.5")
(source (origin
(method url-fetch)
(uri (pypi-uri "PyLD" version))
(sha256
(base32
- "12i2g6xdj30k7xxcibg3sc5y76snwq8l6n8fy9lyi577kgy0h2pm"))))
+ "1ywbdbsrkg533qh8xn9ifjh2mvam6v5msrjyqq73jfpvcp89qvff"))))
(build-system python-build-system)
(home-page "https://github.com/digitalbazaar/pyld")
(synopsis "Python implementation of the JSON-LD specification")
@@ -3000,14 +2999,13 @@ receive files via the SCP1 protocol, as implemented by the OpenSSH
(define-public python-rst.linker
(package
(name "python-rst.linker")
- (version "1.10")
+ (version "1.11")
(source
(origin
(method url-fetch)
(uri (pypi-uri "rst.linker" version))
(sha256
- (base32
- "0iqaacp7pj1s8avs4kc0qg0r7dscywaq37y6l9j14glqdikk0wdj"))))
+ (base32 "0pqsfqqx8h0pq21k8l3k62kznrgaj2ala93c64s4d9rpbr4mgkd2"))))
(build-system python-build-system)
(propagated-inputs
`(("python-dateutil" ,python-dateutil)
@@ -6146,13 +6144,13 @@ Python.")
(define-public snakemake
(package
(name "snakemake")
- (version "5.2.4")
+ (version "5.7.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "snakemake" version))
(sha256
- (base32 "0gj0xxgiq3mp9qyyrbfzldiaq1giliqw0in64nqiz7vx49myqj7z"))))
+ (base32 "1pnpvvn8n2a78cg360wz3ldmpqrsm2wzi0c0dmvki9fnsw6fxdas"))))
(build-system python-build-system)
(arguments
;; TODO: Package missing test dependencies.
@@ -6170,18 +6168,19 @@ Python.")
"/bin/snakemake")))
#t)))))
(propagated-inputs
- `(("python-gitpython" ,python-gitpython)
- ("python-wrapt" ,python-wrapt)
- ("python-requests" ,python-requests)
- ("python-appdirs" ,python-appdirs)
+ `(("python-appdirs" ,python-appdirs)
("python-configargparse" ,python-configargparse)
("python-datrie" ,python-datrie)
("python-docutils" ,python-docutils)
+ ("python-gitpython" ,python-gitpython)
("python-jinja2" ,python-jinja2)
("python-jsonschema" ,python-jsonschema)
("python-networkx" ,python-networkx)
+ ("python-psutil" ,python-psutil)
("python-pyyaml" ,python-pyyaml)
- ("python-ratelimiter" ,python-ratelimiter)))
+ ("python-ratelimiter" ,python-ratelimiter)
+ ("python-requests" ,python-requests)
+ ("python-wrapt" ,python-wrapt)))
(home-page "https://snakemake.readthedocs.io")
(synopsis "Python-based execution environment for make-like workflows")
(description
@@ -6190,24 +6189,6 @@ providing a clean and modern domain specific specification language (DSL) in
Python style, together with a fast and comfortable execution environment.")
(license license:expat)))
-;; This is currently needed for the pigx-* packages.
-(define-public snakemake-4
- (package (inherit snakemake)
- (version "4.4.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "snakemake" version))
- (sha256
- (base32 "0g0paia4z7w3srnqdmavq3hrb2x7qnpf81jx50njl0p7y4y0j8jv"))))
- (propagated-inputs
- `(("python-wrapt" ,python-wrapt)
- ("python-requests" ,python-requests)
- ("python-appdirs" ,python-appdirs)
- ("python-configargparse" ,python-configargparse)
- ("python-pyyaml" ,python-pyyaml)
- ("python-ratelimiter" ,python-ratelimiter)))))
-
(define-public python-pyqrcode
(package
(name "python-pyqrcode")
@@ -14854,14 +14835,13 @@ Included are implementations of:
(define-public bpython
(package
(name "bpython")
- (version "0.17.1")
+ (version "0.18")
(source
(origin
(method url-fetch)
(uri (pypi-uri "bpython" version))
(sha256
- (base32
- "0bxhxi5zxdkrf8b4gwn0d363kdz3qnypjwhm1aydki53ph8ca1w9"))))
+ (base32 "1hl6frgvr2lqaxqczl8amg9xih32b3gzv429vs0qrjb8wpdj1k2n"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -14884,10 +14864,10 @@ Included are implementations of:
(propagated-inputs
`(("python-pygments" ,python-pygments)
("python-requests" ,python-requests)
- ("python-babel" ,python-babel) ; optional, for internationalization
+ ("python-babel" ,python-babel) ; optional, for internationalization
("python-curtsies" ,python-curtsies) ; >= 0.1.18
("python-greenlet" ,python-greenlet)
- ("python-urwid" ,python-urwid) ; for bpython-urwid only
+ ("python-urwid" ,python-urwid) ; for bpython-urwid only
("python-six" ,python-six)))
(native-inputs
`(("python-sphinx" ,python-sphinx)
@@ -16610,3 +16590,57 @@ It is the recommended replacement for Python's original
@code{distro} also provides a command-line interface to output the platform
information in various formats.")
(license license:asl2.0)))
+
+(define-public python-cairosvg
+ (package
+ (name "python-cairosvg")
+ (version "2.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "CairoSVG" version))
+ (sha256
+ (base32 "1bb7irxbaxxb9ahm3z5wsx1q96mm5gzskc7b6q07h9ikcnb8yrjf"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _ (invoke "pytest"))))))
+ (propagated-inputs
+ `(("python-cairocffi" ,python-cairocffi)
+ ("python-cssselect2" ,python-cssselect2)
+ ("python-defusedxml" ,python-defusedxml)
+ ("python-pillow" ,python-pillow)
+ ("python-tinycss2" ,python-tinycss2)))
+ (native-inputs
+ `(("python-pytest-flake8" ,python-pytest-flake8)
+ ("python-pytest-isort" ,python-pytest-isort)
+ ("python-pytest-runner" ,python-pytest-runner)))
+ (home-page "https://cairosvg.org/")
+ (synopsis "SVG to PDF/PS/PNG converter based on Cairo")
+ (description "CairoSVG is a SVG converter based on Cairo. It can export
+SVG files to PDF, PostScript and PNG files. The main part of CairoSVG is a
+SVG parser, trying to follow the SVG 1.1 recommendation from the W3C. Once
+parsed, the result is drawn to a Cairo surface that can be exported to
+qvarious formats: PDF, PostScript, PNG and even SVG.")
+ (license license:lgpl3+)))
+
+(define-public python-pyphen
+ (package
+ (name "python-pyphen")
+ (version "0.9.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Pyphen" version))
+ (sha256
+ (base32 "08c9y69ry9d6m4zalhnalg86lsp9v2j5n1ziw5vxfmiihx83lqrv"))))
+ (build-system python-build-system)
+ ;; TODO: Use the Guix system hyphenation packages hyphen-* rather than the
+ ;; embedded set provided by upstream - like Debian does.
+ (home-page "https://github.com/Kozea/Pyphen")
+ (synopsis "Pure Python module to hyphenate text")
+ (description "Pyphen is a pure Python module to hyphenate text using
+existing Hunspell hyphenation dictionaries.")
+ (license (list license:gpl2 license:lgpl2.1 license:mpl1.1))))
diff --git a/gnu/packages/rust-cbindgen.scm b/gnu/packages/rust-cbindgen.scm
new file mode 100644
index 0000000000..9d20310346
--- /dev/null
+++ b/gnu/packages/rust-cbindgen.scm
@@ -0,0 +1,1019 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;;
+;;; 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 rust-cbindgen)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system cargo))
+
+(define-public rust-cbindgen
+ (package
+ (name "rust-cbindgen")
+ (version "0.9.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "cbindgen" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1zgamxahlxmg4warzivaa8m1f8d6b45mhznm7n6d7p5l18acdblx"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("clap" ,rust-clap-2)
+ ("log" ,rust-log-0.4)
+ ("proc-macro2" ,rust-proc-macro2-1.0)
+ ("quote" ,rust-quote-1.0)
+ ("serde" ,rust-serde-1.0)
+ ("serde-json" ,rust-serde-json-1.0)
+ ("syn" ,rust-syn-1.0)
+ ("tempfile" ,rust-tempfile-3.0)
+ ("toml" ,rust-toml-0.5))
+ #:cargo-development-inputs
+ (("ansi-term" ,rust-ansi-term-0.11)
+ ("atty" ,rust-atty-0.2)
+ ("autocfg" ,rust-autocfg-0.1)
+ ("bitflags" ,rust-bitflags-1.1)
+ ("cfg-if" ,rust-cfg-if-0.1)
+ ("cloudabi" ,rust-cloudabi-0.0)
+ ("fuchsia-cprng" ,rust-fuchsia-cprng-0.1)
+ ("itoa" ,rust-itoa-0.4)
+ ("libc" ,rust-libc-0.2)
+ ("numtoa" ,rust-numtoa-0.1)
+ ("rand" ,rust-rand-0.6)
+ ("rand-chacha" ,rust-rand-chacha-0.1)
+ ("rand-core" ,rust-rand-core-0.3)
+ ("rand-hc" ,rust-rand-hc-0.1)
+ ("rand-isaac" ,rust-rand-isaac-0.1)
+ ("rand-jitter" ,rust-rand-jitter-0.1)
+ ("rand-os" ,rust-rand-os-0.1)
+ ("rand-pcg" ,rust-rand-pcg-0.1)
+ ("rand-xorshift" ,rust-rand-xorshift-0.1)
+ ("rdrand" ,rust-rdrand-0.4)
+ ("redox-syscall" ,rust-redox-syscall-0.1)
+ ("redox-termios" ,rust-redox-termios-0.1)
+ ("remove-dir-all" ,rust-remove-dir-all-0.5)
+ ("ryu" ,rust-ryu-1.0)
+ ("serde-derive" ,rust-serde-derive-1.0)
+ ("strsim" ,rust-strsim-0.8)
+ ("termion" ,rust-termion-1.5)
+ ("textwrap" ,rust-textwrap-0.11)
+ ("unicode-width" ,rust-unicode-width-0.1)
+ ("unicode-xid" ,rust-unicode-xid-0.2)
+ ("vec-map" ,rust-vec-map-0.8)
+ ("winapi" ,rust-winapi-0.3))))
+ (home-page "https://github.com/eqrion/cbindgen/")
+ (synopsis "Tool for generating C bindings to Rust code")
+ (description
+ "This package provides a tool for generating C/C++ bindings to Rust code.")
+ (license license:mpl2.0)))
+
+;;;
+;;;^L
+;;;
+
+(define rust-ansi-term-0.11
+ (package
+ (name "rust-ansi-term")
+ (version "0.11.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "ansi_term" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "16wpvrghvd0353584i1idnsgm0r3vchg8fyrm0x8ayv1rgvbljgf"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/ogham/rust-ansi-term")
+ (synopsis "Library for ANSI terminal colours and styles")
+ (description
+ "This is a library for controlling colours and formatting, such as red bold
+text or blue underlined text, on ANSI terminals.")
+ (properties '((hidden? . #t)))
+ (license license:expat)))
+
+(define rust-atty-0.2
+ (package
+ (name "rust-atty")
+ (version "0.2.13")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "atty" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "140sswp1bwqwc4zk80bxkbnfb3g936hgrb77g9g0k1zcld3wc0qq"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/softprops/atty")
+ (synopsis "A simple interface for querying atty")
+ (description
+ "This package provides a simple interface for querying atty.")
+ (properties '((hidden? . #t)))
+ (license license:expat)))
+
+(define rust-autocfg-0.1
+ (package
+ (name "rust-autocfg")
+ (version "0.1.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "autocfg" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1chwgimpx5z7xbag7krr9d8asxfqbh683qhgl9kn3hxk2l0djj8x"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/cuviper/autocfg")
+ (synopsis "Automatic cfg for Rust compiler features")
+ (description "Rust library for build scripts to automatically configure
+code based on compiler support. Code snippets are dynamically tested to see
+if the @code{rustc} will accept them, rather than hard-coding specific version
+support.")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define rust-bitflags-1.1
+ (package
+ (name "rust-bitflags")
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "bitflags" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1zc1qb1hwsnl2d8rhzicsv9kqd5b2hwbrscrcfw5as4sfr35659x"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/bitflags/bitflags")
+ (synopsis "Macro to generate structures which behave like bitflags")
+ (description "This package provides a macro to generate structures which
+behave like a set of bitflags.")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define rust-cfg-if-0.1
+ (package
+ (name "rust-cfg-if")
+ (version "0.1.10")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "cfg-if" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "08h80ihs74jcyp24cd75wwabygbbdgl05k6p5dmq8akbr78vv1a7"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/alexcrichton/cfg-if")
+ (synopsis "Define an item depending on parameters")
+ (description "This package provides a macro to ergonomically define an item
+depending on a large number of #[cfg] parameters. Structured like an
+@code{if-else} chain, the first matching branch is the item that gets emitted.")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define rust-clap-2
+ (package
+ (name "rust-clap")
+ (version "2.33.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "clap" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1nf6ld3bims1n5vfzhkvcb55pdzh04bbhzf8nil5vvw05nxzarsh"))))
+ (build-system cargo-build-system)
+ (home-page "https://clap.rs/")
+ (synopsis "Command Line Argument Parser")
+ (description
+ "This package provides a simple to use, efficient, and full-featured
+Command Line Argument Parser.")
+ (properties '((hidden? . #t)))
+ (license license:expat)))
+
+(define rust-cloudabi-0.0
+ (package
+ (name "rust-cloudabi")
+ (version "0.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "cloudabi" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "0kxcg83jlihy0phnd2g8c2c303px3l2p3pkjz357ll6llnd5pz6x"))))
+ (build-system cargo-build-system)
+ (home-page "https://nuxi.nl/cloudabi/")
+ (synopsis "Low level interface to CloudABI")
+ (description
+ "Low level interface to CloudABI. Contains all syscalls and related types.")
+ (properties '((hidden? . #t)))
+ (license license:bsd-2)))
+
+(define rust-fuchsia-cprng-0.1
+ (package
+ (name "rust-fuchsia-cprng")
+ (version "0.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "fuchsia-cprng" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1fnkqrbz7ixxzsb04bsz9p0zzazanma8znfdqjvh39n14vapfvx0"))))
+ (build-system cargo-build-system)
+ (home-page "https://fuchsia.googlesource.com/fuchsia/+/master/garnet/public/rust/fuchsia-cprng")
+ (synopsis "Fuchsia cryptographically secure pseudorandom number generator")
+ (description "Thix package provides a rust crate for the Fuchsia
+cryptographically secure pseudorandom number generator.")
+ (properties '((hidden? . #t)))
+ (license license:bsd-3)))
+
+(define rust-itoa-0.4
+ (package
+ (name "rust-itoa")
+ (version "0.4.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "itoa" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "0zvg2d9qv3avhf3d8ggglh6fdyw8kkwqg3r4622ly5yhxnvnc4jh"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/dtolnay/itoa")
+ (synopsis "Fast functions for printing integer primitives")
+ (description "This crate provides fast functions for printing integer
+primitives to an @code{io::Write}.")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define rust-libc-0.2
+ (package
+ (name "rust-libc")
+ (version "0.2.65")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "libc" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1s14bjxnz6haw0gr1h3j4sr7s2s407hpgm8dxhwnl7yzgxia0c8s"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/rust-lang/libc")
+ (synopsis "Raw FFI bindings to platform libraries like libc")
+ (description
+ "libc provides all of the definitions necessary to easily
+interoperate with C code (or \"C-like\" code) on each of the platforms
+that Rust supports. This includes type definitions (e.g., c_int),
+constants (e.g., EINVAL) as well as function headers (e.g., malloc).
+
+This crate exports all underlying platform types, functions, and
+constants under the crate root, so all items are accessible as
+@samp{libc::foo}. The types and values of all the exported APIs match
+the platform that libc is compiled for.")
+ (properties '((hidden? . #t)))
+ (license (list license:expat
+ license:asl2.0))))
+
+(define rust-log-0.4
+ (package
+ (name "rust-log")
+ (version "0.4.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "log" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1xz18ixccl5c6np4linv3ypc7hpmmgpc5zzd2ymp2ssfx0mhbdhl"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/rust-lang/log")
+ (synopsis "Lightweight logging facade for Rust")
+ (description
+ "This package provides a lightweight logging facade for Rust.")
+ (properties '((hidden? . #t)))
+ (license (list license:expat license:asl2.0))))
+
+(define rust-numtoa-0.1
+ (package
+ (name "rust-numtoa")
+ (version "0.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "numtoa" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1vs9rhggqbql1p26x8nkha1j06wawwgb2jp5fs88b5gi7prvvy5q"))))
+ (build-system cargo-build-system)
+ (home-page "https://gitlab.com/mmstick/numtoa")
+ (synopsis "Convert numbers into stack-allocated byte arrays")
+ (description
+ "This package can convert numbers into stack-allocated byte arrays.")
+ (properties '((hidden? . #t)))
+ (license (list license:expat license:asl2.0))))
+
+(define rust-proc-macro2-1.0
+ (package
+ (name "rust-proc-macro2")
+ (version "1.0.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "proc-macro2" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "09rgb5ab0jgw39kyad0lgqs4nb9yaf7mwcrgxqnsxbn4il54g7lw"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/alexcrichton/proc-macro2")
+ (synopsis "Stable implementation of the upcoming new `proc_macro` API")
+ (description "This package provides a stable implementation of the upcoming new
+`proc_macro` API. Comes with an option, off by default, to also reimplement itself
+in terms of the upstream unstable API.")
+ (properties '((hidden? . #t)))
+ (license (list license:expat license:asl2.0))))
+
+(define rust-quote-1.0
+ (package
+ (name "rust-quote")
+ (version "1.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "quote" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1zkc46ryacf2jdkc6krsy2z615xbk1x8kp1830rcxz3irj5qqfh5"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/dtolnay/quote")
+ (synopsis "Quasi-quoting macro quote!(...)")
+ (description "Quasi-quoting macro quote!(...)")
+ (properties '((hidden? . #t)))
+ (license (list license:expat license:asl2.0))))
+
+(define rust-rand-0.6
+ (package
+ (name "rust-rand")
+ (version "0.6.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "rand" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1jl4449jcl4wgmzld6ffwqj5gwxrp8zvx8w573g1z368qg6xlwbd"))))
+ (build-system cargo-build-system)
+ (home-page "https://crates.io/crates/rand")
+ (synopsis "Random number generators and other randomness functionality")
+ (description
+ "This package contains random number generators and other randomness
+functionality.")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define rust-rand-chacha-0.1
+ (package
+ (name "rust-rand-chacha")
+ (version "0.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "rand_chacha" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1vxwyzs4fy1ffjc8l00fsyygpiss135irjf7nyxgq2v0lqf3lvam"))))
+ (build-system cargo-build-system)
+ (home-page "https://crates.io/crates/rand_chacha")
+ (synopsis "ChaCha random number generator")
+ (description "ChaCha random number generator")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define rust-rand-core-0.4
+ (package
+ (name "rust-rand-core")
+ (version "0.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "rand_core" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1p09ynysrq1vcdlmcqnapq4qakl2yd1ng3kxh3qscpx09k2a6cww"))))
+ (build-system cargo-build-system)
+ (home-page "https://crates.io/crates/rand_core")
+ (synopsis
+ "Core random number generator traits and tools for implementation.")
+ (description
+ "Core random number generator traits and tools for implementation.")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define rust-rand-core-0.3
+ (package
+ (inherit rust-rand-core-0.4)
+ (name "rust-rand-core")
+ (version "0.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "rand_core" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "0jzdgszfa4bliigiy4hi66k7fs3gfwi2qxn8vik84ph77fwdwvvs"))))
+ ;; This version is a 0.3 API wrapper around the 0.4 version.
+ (arguments
+ `(#:cargo-inputs (("rand-core" ,rust-rand-core-0.4))))))
+
+(define rust-rand-hc-0.1
+ (package
+ (name "rust-rand-hc")
+ (version "0.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "rand_hc" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1i0vl8q5ddvvy0x8hf1zxny393miyzxkwqnw31ifg6p0gdy6fh3v"))))
+ (build-system cargo-build-system)
+ (home-page "https://crates.io/crates/rand_hc")
+ (synopsis "HC128 random number generator")
+ (description "HC128 random number generator")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define rust-rand-isaac-0.1
+ (package
+ (name "rust-rand-isaac")
+ (version "0.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "rand_isaac" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "027flpjr4znx2csxk7gxb7vrf9c7y5mydmvg5az2afgisp4rgnfy"))))
+ (build-system cargo-build-system)
+ (home-page "https://crates.io/crates/rand_isaac")
+ (synopsis "ISAAC random number generator")
+ (description "ISAAC random number generator")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define rust-rand-jitter-0.1
+ (package
+ (name "rust-rand-jitter")
+ (version "0.1.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "rand_jitter" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "16z387y46bfz3csc42zxbjq89vcr1axqacncvv8qhyy93p4xarhi"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/rust-random/rand")
+ (synopsis
+ "Random number generator based on timing jitter")
+ (description
+ "Random number generator based on timing jitter")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define rust-rand-os-0.1
+ (package
+ (name "rust-rand-os")
+ (version "0.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "rand_os" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "0wahppm0s64gkr2vmhcgwc0lij37in1lgfxg5rbgqlz0l5vgcxbv"))))
+ (build-system cargo-build-system)
+ (home-page "https://crates.io/crates/rand_os")
+ (synopsis "OS backed Random Number Generator")
+ (description "OS backed Random Number Generator")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define rust-rand-pcg-0.1
+ (package
+ (name "rust-rand-pcg")
+ (version "0.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "rand_pcg" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "0i0bdla18a8x4jn1w0fxsbs3jg7ajllz6azmch1zw33r06dv1ydb"))))
+ (build-system cargo-build-system)
+ (home-page "https://crates.io/crates/rand_pcg")
+ (synopsis
+ "Selected PCG random number generators")
+ (description
+ "Selected PCG random number generators")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define rust-rand-xorshift-0.1
+ (package
+ (name "rust-rand-xorshift")
+ (version "0.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "rand_xorshift" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "0p2x8nr00hricpi2m6ca5vysiha7ybnghz79yqhhx6sl4gkfkxyb"))))
+ (build-system cargo-build-system)
+ (home-page "https://crates.io/crates/rand_xorshift")
+ (synopsis "Xorshift random number generator")
+ (description
+ "Xorshift random number generator")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define rust-rdrand-0.4
+ (package
+ (name "rust-rdrand")
+ (version "0.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "rdrand" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1cjq0kwx1bk7jx3kzyciiish5gqsj7620dm43dc52sr8fzmm9037"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/nagisa/rust_rdrand/")
+ (synopsis "Random number generator")
+ (description
+ "This package is an implementation of random number generator based on
+@code{rdrand} and @cpde{rdseed} instructions")
+ (properties '((hidden? . #t)))
+ (license license:isc)))
+
+(define rust-redox-syscall-0.1
+ (package
+ (name "rust-redox-syscall")
+ (version "0.1.56")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "redox_syscall" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "110y7dyfm2vci4x5vk7gr0q551dvp31npl99fnsx2fb17wzwcf94"))))
+ (build-system cargo-build-system)
+ (home-page "https://gitlab.redox-os.org/redox-os/syscall")
+ (synopsis "Rust library to access raw Redox system calls")
+ (description "This package provides a Rust library to access raw Redox
+system calls.")
+ (properties '((hidden? . #t)))
+ (license license:expat)))
+
+(define rust-redox-termios-0.1
+ (package
+ (name "rust-redox-termios")
+ (version "0.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "redox-termios" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "0xhgvdh62mymgdl3jqrngl8hr4i8xwpnbsxnldq0l47993z1r2by"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/redox-os/termios")
+ (synopsis "Rust library to access Redox termios functions")
+ (description
+ "This package provides a Rust library to access Redox termios functions.")
+ (properties '((hidden? . #t)))
+ (license license:expat)))
+
+(define rust-remove-dir-all-0.5
+ (package
+ (name "rust-remove-dir-all")
+ (version "0.5.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "remove-dir-all" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "0bkrlyg26mgizpiy1yb2hhpgscxcag8r5fnckqsvk25608vzm0sa"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/XAMPPRocky/remove_dir_all.git")
+ (synopsis "Implementation of remove_dir_all for Windows")
+ (description
+ "This package provides a safe, reliable implementation of remove_dir_all
+for Windows.")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define rust-ryu-1.0
+ (package
+ (name "rust-ryu")
+ (version "1.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "ryu" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1j0h74f1xqf9hjkhanp8i20mqc1aw35kr1iq9i79q7713mn51a5z"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/dtolnay/ryu")
+ (synopsis
+ "Fast floating point to string conversion")
+ (description
+ "Fast floating point to string conversion")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0 license:boost1.0))))
+
+(define rust-serde-1.0
+ (package
+ (name "rust-serde")
+ (version "1.0.101")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "serde" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1p8r24hagcsrl92w5z32nfrg9040qkgqf8iwwnf7mzigpavwk5lp"))))
+ (build-system cargo-build-system)
+ (home-page "https://serde.rs")
+ (synopsis "Generic serialization/deserialization framework")
+ (description
+ "This package provides a generic serialization/deserialization framework.")
+ (properties '((hidden? . #t)))
+ (license (list license:expat license:asl2.0))))
+
+(define rust-serde-derive-1.0
+ (package
+ (name "rust-serde-derive")
+ (version "1.0.101")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "serde-derive" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "0bn0wz3j48248187mfmypyqnh73mq734snxxhr05vmgcl51kl4sb"))))
+ (build-system cargo-build-system)
+ (home-page "https://serde.rs")
+ (synopsis
+ "Macros 1.1 implementation of #[derive(Serialize, Deserialize)]")
+ (description
+ "Macros 1.1 implementation of #[derive(Serialize, Deserialize)]")
+ (properties '((hidden? . #t)))
+ (license (list license:expat license:asl2.0))))
+
+(define rust-serde-json-1.0
+ (package
+ (name "rust-serde-json")
+ (version "1.0.41")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "serde-json" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1hipk84x40454mf599752mi7l08wb8qakz8vd6d3zp57d0mfnwig"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/serde-rs/json")
+ (synopsis "A JSON serialization file format")
+ (description
+ "This package provides a JSON serialization file format.")
+ (properties '((hidden? . #t)))
+ (license (list license:expat license:asl2.0))))
+
+(define rust-strsim-0.8
+ (package
+ (name "rust-strsim")
+ (version "0.8.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "strsim" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "0sjsm7hrvjdifz661pjxq5w4hf190hx53fra8dfvamacvff139cf"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/dguo/strsim-rs")
+ (synopsis "Rust implementations of string similarity metrics")
+ (description "This crate includes implementations of string similarity
+metrics. It includes Hamming, Levenshtein, OSA, Damerau-Levenshtein, Jaro,
+and Jaro-Winkler.")
+ (properties '((hidden? . #t)))
+ (license license:expat)))
+
+(define rust-syn-1.0
+ (package
+ (name "rust-syn")
+ (version "1.0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "syn" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1gw03w7lzrlqmp2vislcybikgl5wkhrqi6sy70w93xss2abhx1b6"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/dtolnay/syn")
+ (synopsis "Parser for Rust source code")
+ (description "Parser for Rust source code")
+ (properties '((hidden? . #t)))
+ (license (list license:expat license:asl2.0))))
+
+(define rust-tempfile-3.0
+ (package
+ (name "rust-tempfile")
+ (version "3.0.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "tempfile" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1vqk7aq2l04my2r3jiyyxirnf8f90nzcvjasvrajivb85s7p7i3x"))))
+ (build-system cargo-build-system)
+ (home-page "http://stebalien.com/projects/tempfile-rs")
+ (synopsis "Library for managing temporary files and directories")
+ (description
+ "This package provides a library for managing temporary files and
+directories.")
+ (properties '((hidden? . #t)))
+ (license (list license:expat license:asl2.0))))
+
+(define rust-termion-1.5
+ (package
+ (name "rust-termion")
+ (version "1.5.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "termion" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "0c634rg520zjjfhwnxrc2jbfjz7db0rcpsjs1qici0nyghpv53va"))))
+ (build-system cargo-build-system)
+ (home-page "https://gitlab.redox-os.org/redox-os/termion")
+ (synopsis "Library for manipulating terminals")
+ (description
+ "This package provides a bindless library for manipulating terminals.")
+ (properties '((hidden? . #t)))
+ (license license:expat)))
+
+(define rust-textwrap-0.11
+ (package
+ (name "rust-textwrap")
+ (version "0.11.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "textwrap" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "0q5hky03ik3y50s9sz25r438bc4nwhqc6dqwynv4wylc807n29nk"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/mgeisler/textwrap")
+ (synopsis "Library for word wrapping, indenting, and dedenting strings")
+ (description
+ "Textwrap is a small library for word wrapping, indenting, and dedenting
+strings. You can use it to format strings (such as help and error messages)
+for display in commandline applications. It is designed to be efficient and
+handle Unicode characters correctly.")
+ (properties '((hidden? . #t)))
+ (license license:expat)))
+
+(define rust-toml-0.5
+ (package
+ (name "rust-toml")
+ (version "0.5.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "toml" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "093p48vpqm4bb8q3514xsij0dkljxlr3jp9ypxr4p48xjisvxan7"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/alexcrichton/toml-rs")
+ (synopsis "Rust encoder and decoder of TOML-formatted files and streams")
+ (description
+ "This package provides a native Rust encoder and decoder of TOML-formatted
+files and streams. Provides implementations of the standard
+Serialize/Deserialize traits for TOML data to facilitate deserializing and
+serializing Rust structures.")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define rust-unicode-width-0.1
+ (package
+ (name "rust-unicode-width")
+ (version "0.1.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "unicode-width" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "082f9hv1r3gcd1xl33whjhrm18p0w9i77zhhhkiccb5r47adn1vh"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/unicode-rs/unicode-width")
+ (synopsis "Determine displayed width according to Unicode rules")
+ (description "This crate allows you to determine displayed width of
+@code{char} and @code{str} types according to Unicode Standard Annex #11 rules.")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define rust-unicode-xid-0.2
+ (package
+ (name "rust-unicode-xid")
+ (version "0.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "unicode-xid" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "0z09fn515xm7zyr0mmdyxa9mx2f7azcpv74pqmg611iralwpcvl2"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/unicode-rs/unicode-xid")
+ (synopsis "Determine Unicode XID related properties")
+ (description "Determine whether characters have the XID_Start
+or XID_Continue properties according to Unicode Standard Annex #31.")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0 license:expat))))
+
+(define rust-vec-map-0.8
+ (package
+ (name "rust-vec-map")
+ (version "0.8.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "vec_map" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "06n8hw4hlbcz328a3gbpvmy0ma46vg1lc0r5wf55900szf3qdiq5"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/contain-rs/vec-map")
+ (synopsis "Simple map based on a vector for small integer keys")
+ (description
+ "This package provides a simple map based on a vector for small integer keys.")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define rust-winapi-0.3
+ (package
+ (name "rust-winapi")
+ (version "0.3.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "winapi" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1ii9j9lzrhwri0902652awifzx9fpayimbp6hfhhc296xcg0k4w0"))))
+ (build-system cargo-build-system)
+ ;; This package depends unconditionally on these two crates.
+ (arguments
+ `(#:cargo-inputs
+ (("winapi-i686-pc-windows-gnu" ,rust-winapi-i686-pc-windows-gnu-0.4)
+ ("winapi-x86-64-pc-windows-gnu" ,rust-winapi-x86-64-pc-windows-gnu-0.4))))
+ (home-page "https://github.com/retep998/winapi-rs")
+ (synopsis "Raw FFI bindings for all of Windows API")
+ (description
+ "This package contains raw FFI bindings for all of Windows API.")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define-public rust-winapi-i686-pc-windows-gnu-0.4
+ (package
+ (name "rust-winapi-i686-pc-windows-gnu")
+ (version "0.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "winapi-i686-pc-windows-gnu" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1dmpa6mvcvzz16zg6d5vrfy4bxgg541wxrcip7cnshi06v38ffxc"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/retep998/winapi-rs")
+ (synopsis "Import libraries for the i686-pc-windows-gnu target")
+ (description "This crate provides import libraries for the
+i686-pc-windows-gnu target. Please don't use this crate directly, depend on
+@code{winapi} instead.")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
+
+(define rust-winapi-x86-64-pc-windows-gnu-0.4
+ (package
+ (name "rust-winapi-x86-64-pc-windows-gnu")
+ (version "0.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "winapi-x86_64-pc-windows-gnu" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "0gqq64czqb64kskjryj8isp62m2sgvx25yyj3kpc2myh85w24bki"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/retep998/winapi-rs")
+ (synopsis "Import libraries for the x86_64-pc-windows-gnu target")
+ (description "This package provides import libraries for the
+x86_64-pc-windows-gnu target. Please don't use this crate directly, depend on
+@code{winapi} instead.")
+ (properties '((hidden? . #t)))
+ (license (list license:asl2.0
+ license:expat))))
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 4b1ba98e2f..66bb2755d2 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -1848,16 +1848,18 @@ times.")
(define-public r-data-table
(package
(name "r-data-table")
- (version "1.12.4")
+ (version "1.12.6")
(source (origin
(method url-fetch)
(uri (cran-uri "data.table" version))
(sha256
(base32
- "0zdcbr4nixvl8ga4mp9pw1dfww35dzhzpb6ixajqasiri824m7i9"))))
+ "1kgbnm5gv7ax7qn8irpz7qsry2ci21axga8y7qpkidcqkxkkndn2"))))
(build-system r-build-system)
(inputs
`(("zlib" ,zlib)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
(home-page "https://github.com/Rdatatable/data.table/wiki")
(synopsis "Enhanced version of data.frame R object")
(description
@@ -5733,16 +5735,16 @@ shaped points? Now you can!")
(define-public r-colorout
(package
(name "r-colorout")
- (version "1.2-0")
+ (version "1.2-2")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/jalvesaq/colorout/archive/"
- "v" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jalvesaq/colorout.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "07vqx5ihgnq4dzn5jnfjfhdm3957v4prvf8vhnb3cwvlly4l7p9v"))))
+ (base32 "1rsx69wjpa73c6x2hacvvvbzdzxn7wg06gizf97kasjdlb7azmp3"))))
(build-system r-build-system)
(home-page "https://github.com/jalvesaq/colorout")
(synopsis "Colorize output in the R REPL")
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 3aa3efbfb8..76370b7925 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -522,13 +522,13 @@ netcat implementation that supports TLS.")
(package
(name "python-acme")
;; Remember to update the hash of certbot when updating python-acme.
- (version "0.37.2")
+ (version "0.39.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "acme" version))
(sha256
(base32
- "0p3zqhna9p8iy5i9mfhzdf5bmjigs05r6rlwnxykk4n67fp8yyc8"))))
+ "021nyzld949ahrhamlcgmzmk8r1gxrbs8wypnks08s6y2rfvgz52"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -579,7 +579,7 @@ netcat implementation that supports TLS.")
(uri (pypi-uri "certbot" version))
(sha256
(base32
- "1xbfv4fwkgfp9qqzlk8wxbhchc61349m26q9fg35j9fnm253cm74"))))
+ "1q6zmnfyyk4rhsjg9s2gxx1ciink57ybnv32dgw8m2059lffwp48"))))
(build-system python-build-system)
(arguments
`(,@(substitute-keyword-arguments (package-arguments python-acme)
@@ -613,6 +613,7 @@ netcat implementation that supports TLS.")
("python-pyopenssl" ,python-pyopenssl)
("python-configobj" ,python-configobj)
("python-configargparse" ,python-configargparse)
+ ("python-distro" ,python-distro)
("python-zope-component" ,python-zope-component)
("python-parsedatetime" ,python-parsedatetime)
("python-six" ,python-six)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 8f2c0eda78..5b7b529fd6 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -688,8 +688,8 @@ streams.")
(source (origin
(method url-fetch)
(uri (string-append
- "mirror://sourceforge/" name "/" name "/"
- version "/" name "-" version ".tar.gz"))
+ "mirror://sourceforge/libdv/libdv/"
+ version "/libdv-" version ".tar.gz"))
(sha256
(base32
"1fl96f2xh2slkv1i1ix7kqk576a0ak1d33cylm0mbhm96d0761d3"))))
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 612074473b..6aa4ebf0bb 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -2363,14 +2363,14 @@ HTTP requests.")
(define-public perl-cgi-simple
(package
(name "perl-cgi-simple")
- (version "1.21")
+ (version "1.22")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/"
"CGI-Simple-" version ".tar.gz"))
(sha256
- (base32 "1wzc2igs4khmj7zfahvs87c24p9ks8hnqhhsyviyiix53xx2y6sg"))))
+ (base32 "13c7iwnnavky10ab87pi8jc1kqph03s0rhvj7myn7szhbfisc4gn"))))
(build-system perl-build-system)
(native-inputs
`(("perl-io-stringy" ,perl-io-stringy) ; for IO::Scalar
@@ -4044,11 +4044,11 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
"0awfvps7k9bpg3gpgc93y401g7pjabx7mr9960vigad8vddhixqi"))))
(build-system gnu-build-system)
(arguments
- '(#:tests? #f ; TODO Tests require PostgreSQL
- #:modules ((guix build utils)
+ '(#:modules ((guix build utils)
(guix build gnu-build-system)
(ice-9 rdelim)
(ice-9 popen))
+ #:test-target "check-with-tmp-database"
#:phases
(modify-phases %standard-phases
(add-after 'set-paths 'set-GUIX_ENVIRONMENT
@@ -4106,6 +4106,7 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
`(("guile" ,guile-2.2)
("autoconf" ,autoconf)
("automake" ,automake)
+ ("ephemeralpg" ,ephemeralpg)
("emacs-with-modules" ,(directory-union
"emacs-union"
(list emacs-no-x
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index d1c27a65a7..e73432ba3a 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -318,7 +318,7 @@ integrate Windows applications into your desktop.")
(define-public wine-staging-patchset-data
(package
(name "wine-staging-patchset-data")
- (version "4.16")
+ (version "4.18")
(source
(origin
(method git-fetch)
@@ -327,8 +327,7 @@ integrate Windows applications into your desktop.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32
- "0zkvwl6rxr6xcqk4a3h43cak67w6bcyqqnajz6azif07ir3z1c61"))))
+ (base32 "03z0haf47mpm2aj9cji3wma4jy6j12wz10kkbgmbgrkkrc5lcqc2"))))
(build-system trivial-build-system)
(native-inputs
`(("bash" ,bash)
@@ -374,7 +373,7 @@ integrate Windows applications into your desktop.")
(file-name (string-append name "-" version ".tar.xz"))
(sha256
(base32
- "17qxbddv23ibbayw1ai984m0dlq63cgplms2jhsc09incjhafywd"))))
+ "0chf6vdy41kg75liibkb862442zwi8dbjzf6l5arcy2z4580a2yi"))))
(inputs `(("autoconf" ,autoconf) ; for autoreconf
("faudio" ,faudio)
("ffmpeg" ,ffmpeg)
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index e75c56828e..b1eff89ecc 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -990,7 +990,6 @@ to use as the tty. This is primarily useful for headless systems."
erase-characters kill-characters chdir delay nice extra-options)
(list
(shepherd-service
- (modules '((ice-9 match) (gnu build linux-boot)))
(documentation "Run agetty on a tty.")
(provision (list (symbol-append 'term- (string->symbol (or tty "auto")))))
@@ -1000,122 +999,126 @@ to use as the tty. This is primarily useful for headless systems."
;; mingetty-shepherd-service).
(requirement '(user-processes host-name udev))
- (start #~(lambda args
- (let ((defaulted-tty #$(or tty (default-serial-port))))
- (apply
- (if defaulted-tty
- (make-forkexec-constructor
- (list #$(file-append util-linux "/sbin/agetty")
- #$@extra-options
- #$@(if eight-bits?
- #~("--8bits")
- #~())
- #$@(if no-reset?
- #~("--noreset")
- #~())
- #$@(if remote?
- #~("--remote")
- #~())
- #$@(if flow-control?
- #~("--flow-control")
- #~())
- #$@(if host
- #~("--host" #$host)
- #~())
- #$@(if no-issue?
- #~("--noissue")
- #~())
- #$@(if init-string
- #~("--init-string" #$init-string)
- #~())
- #$@(if no-clear?
- #~("--noclear")
- #~())
+ (modules '((ice-9 match) (gnu build linux-boot)))
+ (start
+ (with-imported-modules (source-module-closure
+ '((gnu build linux-boot)))
+ #~(lambda args
+ (let ((defaulted-tty #$(or tty (default-serial-port))))
+ (apply
+ (if defaulted-tty
+ (make-forkexec-constructor
+ (list #$(file-append util-linux "/sbin/agetty")
+ #$@extra-options
+ #$@(if eight-bits?
+ #~("--8bits")
+ #~())
+ #$@(if no-reset?
+ #~("--noreset")
+ #~())
+ #$@(if remote?
+ #~("--remote")
+ #~())
+ #$@(if flow-control?
+ #~("--flow-control")
+ #~())
+ #$@(if host
+ #~("--host" #$host)
+ #~())
+ #$@(if no-issue?
+ #~("--noissue")
+ #~())
+ #$@(if init-string
+ #~("--init-string" #$init-string)
+ #~())
+ #$@(if no-clear?
+ #~("--noclear")
+ #~())
;;; FIXME This doesn't work as expected. According to agetty(8), if this option
;;; is not passed, then the default is 'auto'. However, in my tests, when that
;;; option is selected, agetty never presents the login prompt, and the
;;; term-ttyS0 service respawns every few seconds.
- #$@(if local-line
- #~(#$(match local-line
- ('auto "--local-line=auto")
- ('always "--local-line=always")
- ('never "-local-line=never")))
- #~())
- #$@(if tty
- #~()
- #~("--keep-baud"))
- #$@(if extract-baud?
- #~("--extract-baud")
- #~())
- #$@(if skip-login?
- #~("--skip-login")
- #~())
- #$@(if no-newline?
- #~("--nonewline")
- #~())
- #$@(if login-options
- #~("--login-options" #$login-options)
- #~())
- #$@(if chroot
- #~("--chroot" #$chroot)
- #~())
- #$@(if hangup?
- #~("--hangup")
- #~())
- #$@(if keep-baud?
- #~("--keep-baud")
- #~())
- #$@(if timeout
- #~("--timeout" #$(number->string timeout))
- #~())
- #$@(if detect-case?
- #~("--detect-case")
- #~())
- #$@(if wait-cr?
- #~("--wait-cr")
- #~())
- #$@(if no-hints?
- #~("--nohints?")
- #~())
- #$@(if no-hostname?
- #~("--nohostname")
- #~())
- #$@(if long-hostname?
- #~("--long-hostname")
- #~())
- #$@(if erase-characters
- #~("--erase-chars" #$erase-characters)
- #~())
- #$@(if kill-characters
- #~("--kill-chars" #$kill-characters)
- #~())
- #$@(if chdir
- #~("--chdir" #$chdir)
- #~())
- #$@(if delay
- #~("--delay" #$(number->string delay))
- #~())
- #$@(if nice
- #~("--nice" #$(number->string nice))
- #~())
- #$@(if auto-login
- (list "--autologin" auto-login)
- '())
- #$@(if login-program
- #~("--login-program" #$login-program)
- #~())
- #$@(if login-pause?
- #~("--login-pause")
- #~())
- defaulted-tty
- #$@(if baud-rate
- #~(#$baud-rate)
- #~())
- #$@(if term
- #~(#$term)
- #~())))
- (const #f)) ; never start.
- args))))
+ #$@(if local-line
+ #~(#$(match local-line
+ ('auto "--local-line=auto")
+ ('always "--local-line=always")
+ ('never "-local-line=never")))
+ #~())
+ #$@(if tty
+ #~()
+ #~("--keep-baud"))
+ #$@(if extract-baud?
+ #~("--extract-baud")
+ #~())
+ #$@(if skip-login?
+ #~("--skip-login")
+ #~())
+ #$@(if no-newline?
+ #~("--nonewline")
+ #~())
+ #$@(if login-options
+ #~("--login-options" #$login-options)
+ #~())
+ #$@(if chroot
+ #~("--chroot" #$chroot)
+ #~())
+ #$@(if hangup?
+ #~("--hangup")
+ #~())
+ #$@(if keep-baud?
+ #~("--keep-baud")
+ #~())
+ #$@(if timeout
+ #~("--timeout" #$(number->string timeout))
+ #~())
+ #$@(if detect-case?
+ #~("--detect-case")
+ #~())
+ #$@(if wait-cr?
+ #~("--wait-cr")
+ #~())
+ #$@(if no-hints?
+ #~("--nohints?")
+ #~())
+ #$@(if no-hostname?
+ #~("--nohostname")
+ #~())
+ #$@(if long-hostname?
+ #~("--long-hostname")
+ #~())
+ #$@(if erase-characters
+ #~("--erase-chars" #$erase-characters)
+ #~())
+ #$@(if kill-characters
+ #~("--kill-chars" #$kill-characters)
+ #~())
+ #$@(if chdir
+ #~("--chdir" #$chdir)
+ #~())
+ #$@(if delay
+ #~("--delay" #$(number->string delay))
+ #~())
+ #$@(if nice
+ #~("--nice" #$(number->string nice))
+ #~())
+ #$@(if auto-login
+ (list "--autologin" auto-login)
+ '())
+ #$@(if login-program
+ #~("--login-program" #$login-program)
+ #~())
+ #$@(if login-pause?
+ #~("--login-pause")
+ #~())
+ defaulted-tty
+ #$@(if baud-rate
+ #~(#$baud-rate)
+ #~())
+ #$@(if term
+ #~(#$term)
+ #~())))
+ (const #f)) ; never start.
+ args)))))
(stop #~(make-kill-destructor)))))))
(define agetty-service-type
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 5a7f8be4bb..449b606a31 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -580,7 +580,7 @@ include the @command{udisksctl} command, part of UDisks, and GNOME Disks."
(define-record-type* <elogind-configuration> elogind-configuration
make-elogind-configuration
- elogind-configuration
+ elogind-configuration?
(elogind elogind-package
(default elogind))
(kill-user-processes? elogind-kill-user-processes?
@@ -834,7 +834,7 @@ accountsservice web site} for more information."
(define-record-type* <gnome-desktop-configuration> gnome-desktop-configuration
make-gnome-desktop-configuration
- gnome-desktop-configuration
+ gnome-desktop-configuration?
(gnome-package gnome-package (default gnome)))
(define (gnome-polkit-settings config)
@@ -872,7 +872,7 @@ and extends polkit with the actions from @code{gnome-settings-daemon}."
(define-record-type* <mate-desktop-configuration> mate-desktop-configuration
make-mate-desktop-configuration
- mate-desktop-configuration
+ mate-desktop-configuration?
(mate-package mate-package (default mate)))
(define mate-desktop-service-type
@@ -905,7 +905,7 @@ and extends polkit with the actions from @code{mate-settings-daemon}."
(define-record-type* <xfce-desktop-configuration> xfce-desktop-configuration
make-xfce-desktop-configuration
- xfce-desktop-configuration
+ xfce-desktop-configuration?
(xfce xfce-package (default xfce)))
(define (xfce-polkit-settings config)
@@ -1028,23 +1028,29 @@ as expected.")))
(default "wacom"))
(device inputattach-configuration-device
(default "/dev/ttyS0"))
+ (baud-rate inputattach-configuration-baud-rate
+ (default #f))
(log-file inputattach-configuration-log-file
(default #f)))
(define inputattach-shepherd-service
(match-lambda
- (($ <inputattach-configuration> type device log-file)
- (list (shepherd-service
- (provision '(inputattach))
- (requirement '(udev))
- (documentation "inputattach daemon")
- (start #~(make-forkexec-constructor
- (list (string-append #$inputattach
- "/bin/inputattach")
- (string-append "--" #$type)
- #$device)
- #:log-file #$log-file))
- (stop #~(make-kill-destructor)))))))
+ (($ <inputattach-configuration> type device baud-rate log-file)
+ (let ((args (append (if baud-rate
+ (list "--baud-rate" (number->string baud-rate))
+ '())
+ (list (string-append "--" type)
+ device))))
+ (list (shepherd-service
+ (provision '(inputattach))
+ (requirement '(udev))
+ (documentation "inputattach daemon")
+ (start #~(make-forkexec-constructor
+ (cons (string-append #$inputattach
+ "/bin/inputattach")
+ (quote #$args))
+ #:log-file #$log-file))
+ (stop #~(make-kill-destructor))))))))
(define inputattach-service-type
(service-type
diff --git a/gnu/services/sddm.scm b/gnu/services/sddm.scm
index b0e6d40260..ac8c9a8403 100644
--- a/gnu/services/sddm.scm
+++ b/gnu/services/sddm.scm
@@ -30,6 +30,7 @@
#:use-module (gnu system shadow)
#:use-module (guix gexp)
#:use-module (guix records)
+ #:use-module (guix deprecation)
#:export (sddm-configuration
sddm-configuration?
sddm-service-type
@@ -316,9 +317,14 @@ Relogin=" (if (sddm-configuration-relogin? config)
(service-extension account-service-type
(const %sddm-accounts))
(service-extension profile-service-type
- sddm-profile-service)))))
+ sddm-profile-service)))
+ (default-value (sddm-configuration))
+ (description
+ "Run SDDM, a display and log-in manager for X11 and
+Wayland.")))
-(define* (sddm-service #:optional (config (sddm-configuration)))
+(define-deprecated (sddm-service #:optional (config (sddm-configuration)))
+ sddm-service-type
"Run the @uref{https://github.com/sddm/sddm,SSDM display manager}
with the given @var{config}, a @code{<sddm-configuration>} object."
(service sddm-service-type config))