aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2018-10-21 18:06:02 +0200
committerMarius Bakke <mbakke@fastmail.com>2018-10-21 18:06:02 +0200
commitffddb42d6c510456997ee6de1c1b8026c9ce6d14 (patch)
tree5be4a965bb14f3de4af9f733f802b80840aff84c
parente381ae317c054a8ac52037c3f0df72ca3c96b91f (diff)
parent3a69b59332f02805fde2aee22b8f622c651f7007 (diff)
downloadpatches-ffddb42d6c510456997ee6de1c1b8026c9ce6d14.tar
patches-ffddb42d6c510456997ee6de1c1b8026c9ce6d14.tar.gz
Merge branch 'master' into core-updates
-rw-r--r--.dir-locals.el1
-rw-r--r--doc/guix.texi61
-rw-r--r--gnu/local.mk2
-rw-r--r--gnu/packages/audio.scm29
-rw-r--r--gnu/packages/aux-files/linux-libre/4.18-arm64.conf4
-rw-r--r--gnu/packages/bioinformatics.scm318
-rw-r--r--gnu/packages/crypto.scm34
-rw-r--r--gnu/packages/databases.scm27
-rw-r--r--gnu/packages/emacs.scm38
-rw-r--r--gnu/packages/games.scm16
-rw-r--r--gnu/packages/glib.scm4
-rw-r--r--gnu/packages/gnome.scm83
-rw-r--r--gnu/packages/java.scm79
-rw-r--r--gnu/packages/kodi.scm5
-rw-r--r--gnu/packages/linux.scm16
-rw-r--r--gnu/packages/lisp.scm2005
-rw-r--r--gnu/packages/mail.scm4
-rw-r--r--gnu/packages/maths.scm4
-rw-r--r--gnu/packages/music.scm2
-rw-r--r--gnu/packages/patches/grub-check-error-efibootmgr.patch23
-rw-r--r--gnu/packages/patches/libgxps-CVE-2017-11590.patch48
-rw-r--r--gnu/packages/patches/libssh-hostname-parser-bug.patch22
-rw-r--r--gnu/packages/patches/soundconverter-remove-gconf-dependency.patch83
-rw-r--r--gnu/packages/photo.scm4
-rw-r--r--gnu/packages/python.scm4
-rw-r--r--gnu/packages/regex.scm4
-rw-r--r--gnu/packages/ssh.scm64
-rw-r--r--gnu/packages/tex.scm245
-rw-r--r--gnu/packages/tmux.scm4
-rw-r--r--gnu/packages/version-control.scm4
-rw-r--r--gnu/packages/video.scm4
-rw-r--r--gnu/packages/vulkan.scm8
-rw-r--r--gnu/packages/wm.scm41
-rw-r--r--gnu/services/desktop.scm4
-rw-r--r--gnu/services/networking.scm18
-rw-r--r--gnu/system/examples/bare-bones.tmpl2
-rw-r--r--gnu/system/examples/beaglebone-black.tmpl2
-rw-r--r--gnu/system/shadow.scm7
-rw-r--r--gnu/tests/base.scm2
-rw-r--r--gnu/tests/databases.scm4
-rw-r--r--gnu/tests/dict.scm2
-rw-r--r--gnu/tests/mail.scm6
-rw-r--r--gnu/tests/messaging.scm4
-rw-r--r--gnu/tests/monitoring.scm2
-rw-r--r--gnu/tests/networking.scm4
-rw-r--r--gnu/tests/nfs.scm2
-rw-r--r--gnu/tests/rsync.scm2
-rw-r--r--gnu/tests/ssh.scm2
-rw-r--r--gnu/tests/version-control.scm6
-rw-r--r--gnu/tests/virtualization.scm2
-rw-r--r--gnu/tests/web.scm12
-rw-r--r--guix/build-system/python.scm2
-rw-r--r--guix/gexp.scm8
-rw-r--r--guix/import/pypi.scm2
-rw-r--r--guix/scripts/pack.scm7
-rw-r--r--guix/tests.scm37
-rw-r--r--tests/guix-pack.sh30
-rw-r--r--tests/guix-system.sh4
-rw-r--r--tests/pack.scm75
-rw-r--r--tests/pypi.scm2
60 files changed, 3099 insertions, 441 deletions
diff --git a/.dir-locals.el b/.dir-locals.el
index 793117c0ae..1a3a05f100 100644
--- a/.dir-locals.el
+++ b/.dir-locals.el
@@ -45,6 +45,7 @@
(eval . (put 'manifest-pattern 'scheme-indent-function 0))
(eval . (put 'substitute-keyword-arguments 'scheme-indent-function 1))
(eval . (put 'with-store 'scheme-indent-function 1))
+ (eval . (put 'with-external-store 'scheme-indent-function 1))
(eval . (put 'with-error-handling 'scheme-indent-function 0))
(eval . (put 'with-mutex 'scheme-indent-function 1))
(eval . (put 'with-atomic-file-output 'scheme-indent-function 1))
diff --git a/doc/guix.texi b/doc/guix.texi
index 2cea52f02b..12346c4b8e 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -11000,6 +11000,12 @@ Return a service that runs a syslog daemon according to @var{config}.
information on the configuration file syntax.
@end deffn
+@defvr {Scheme Variable} guix-service-type
+This is the type of the service that runs the build daemon,
+@command{guix-daemon} (@pxref{Invoking guix-daemon}). Its value must be a
+@code{guix-configuration} record as described below.
+@end defvr
+
@anchor{guix-configuration-type}
@deftp {Data Type} guix-configuration
This data type represents the configuration of the Guix build daemon.
@@ -11060,11 +11066,6 @@ A directory path where the @command{guix-daemon} will perform builds.
@end table
@end deftp
-@deffn {Scheme Procedure} guix-service @var{config}
-Return a service that runs the Guix build daemon according to
-@var{config}.
-@end deffn
-
@deffn {Scheme Procedure} udev-service [#:udev @var{eudev} #:rules @code{'()}]
Run @var{udev}, which populates the @file{/dev} directory dynamically.
udev rules can be provided as a list of files through the @var{rules}
@@ -11545,10 +11546,11 @@ The @code{(gnu services networking)} module provides services to configure
the network interface.
@cindex DHCP, networking service
-@deffn {Scheme Procedure} dhcp-client-service [#:dhcp @var{isc-dhcp}]
-Return a service that runs @var{dhcp}, a Dynamic Host Configuration
-Protocol (DHCP) client, on all the non-loopback network interfaces.
-@end deffn
+@defvr {Scheme Variable} dhcp-client-service-type
+This is the type of services that run @var{dhcp}, a Dynamic Host Configuration
+Protocol (DHCP) client, on all the non-loopback network interfaces. Its value
+is the DHCP client package to use, @code{isc-dhcp} by default.
+@end defvr
@deffn {Scheme Procedure} dhcpd-service-type
This type defines a service that runs a DHCP daemon. To create a
@@ -11815,20 +11817,37 @@ objects}).
@end table
@end deftp
-@cindex NTP
+@cindex NTP (Network Time Protocol), service
@cindex real time clock
-@deffn {Scheme Procedure} ntp-service [#:ntp @var{ntp}] @
- [#:servers @var{%ntp-servers}] @
- [#:allow-large-adjustment? #f]
-Return a service that runs the daemon from @var{ntp}, the
-@uref{http://www.ntp.org, Network Time Protocol package}. The daemon will
-keep the system clock synchronized with that of @var{servers}.
-@var{allow-large-adjustment?} determines whether @command{ntpd} is allowed to
-make an initial adjustment of more than 1,000 seconds.
-@end deffn
+@defvr {Scheme Variable} ntp-service-type
+This is the type of the service running the the @uref{http://www.ntp.org,
+Network Time Protocol (NTP)} daemon, @command{ntpd}. The daemon will keep the
+system clock synchronized with that of the specified NTP servers.
+
+The value of this service is an @code{ntpd-configuration} object, as described
+below.
+@end defvr
+
+@deftp {Data Type} ntp-configuration
+This is the data type for the NTP service configuration.
+
+@table @asis
+@item @code{servers} (default: @code{%ntp-servers})
+This is the list of servers (host names) with which @command{ntpd} will be
+synchronized.
+
+@item @code{allow-large-adjustment?} (default: @code{#f})
+This determines whether @command{ntpd} is allowed to make an initial
+adjustment of more than 1,000 seconds.
+
+@item @code{ntp} (default: @code{ntp})
+The NTP package to use.
+@end table
+@end deftp
@defvr {Scheme Variable} %ntp-servers
-List of host names used as the default NTP servers.
+List of host names used as the default NTP servers. These are servers of the
+@uref{https://www.ntppool.org/en/, NTP Pool Project}.
@end defvr
@cindex OpenNTPD
@@ -17167,7 +17186,7 @@ A helper function to quickly add php to an @code{nginx-server-configuration}.
A simple services setup for nginx with php can look like this:
@example
-(services (cons* (dhcp-client-service)
+(services (cons* (service dhcp-client-service-type)
(service php-fpm-service-type)
(service nginx-service-type
(nginx-server-configuration
diff --git a/gnu/local.mk b/gnu/local.mk
index 4b8c4c3d69..befe3c4b33 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -886,7 +886,6 @@ dist_patch_DATA = \
%D%/packages/patches/libgdata-glib-duplicate-tests.patch \
%D%/packages/patches/libgnome-encoding.patch \
%D%/packages/patches/libgnomeui-utf8.patch \
- %D%/packages/patches/libgxps-CVE-2017-11590.patch \
%D%/packages/patches/libffi-3.2.1-complex-alpha.patch \
%D%/packages/patches/libjxr-fix-function-signature.patch \
%D%/packages/patches/libjxr-fix-typos.patch \
@@ -1150,6 +1149,7 @@ dist_patch_DATA = \
%D%/packages/patches/slim-login.patch \
%D%/packages/patches/snappy-add-O2-flag-in-CmakeLists.txt.patch \
%D%/packages/patches/sooperlooper-build-with-wx-30.patch \
+ %D%/packages/patches/soundconverter-remove-gconf-dependency.patch \
%D%/packages/patches/soundtouch-CVE-2018-14044-14045.patch \
%D%/packages/patches/soundtouch-CVE-2018-1000223.patch \
%D%/packages/patches/steghide-fixes.patch \
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 8ec69d12a7..b664712f7a 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -14,6 +14,7 @@
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018 Brett Gilio <brettg@posteo.net>
+;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1041,7 +1042,7 @@ follower.")
(define-public fluidsynth
(package
(name "fluidsynth")
- (version "1.1.11")
+ (version "2.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1050,7 +1051,7 @@ follower.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh"))))
+ "1mqyym5qkh8xd1rqj3yhfxbw5dxjcrljb6nkfqzvcarlv4h6rjn7"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; no check target
@@ -1082,6 +1083,22 @@ device. It is the software analogue of a MIDI synthesizer. FluidSynth can
also play midifiles using a Soundfont.")
(license license:lgpl2.1+)))
+;; gzdoom@3.3.0 and lmms@1.1.3 requires this version. Remove once no longer
+;; needed.
+(define-public fluidsynth-1
+ (package
+ (inherit fluidsynth)
+ (version "1.1.11")
+ (source (origin
+ (inherit (package-source fluidsynth))
+ (uri (git-reference
+ (url "https://github.com/FluidSynth/fluidsynth")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "fluidsynth" version))
+ (sha256
+ (base32
+ "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh"))))))
+
(define-public faad2
(package
(name "faad2")
@@ -1912,7 +1929,7 @@ lv2-c++-tools.")
(define-public openal
(package
(name "openal")
- (version "1.19.0")
+ (version "1.19.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1920,7 +1937,7 @@ lv2-c++-tools.")
version ".tar.bz2"))
(sha256
(base32
- "1mhf5bsb58s1xk6hvxl7ly7rd4rpl9z8h07xl1q94brywykg7bgi"))))
+ "1sdjhkz2gd6lbnwphi1b6aw3br4wv2lik5vnqh6mxfc8a7zqfbsw"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no check target
@@ -2761,7 +2778,7 @@ interface.")
(define-public qsynth
(package
(name "qsynth")
- (version "0.5.2")
+ (version "0.5.3")
(source
(origin
(method url-fetch)
@@ -2769,7 +2786,7 @@ interface.")
"/qsynth-" version ".tar.gz"))
(sha256
(base32
- "1rfkaxq1pyc4hv3l0i6wicianbcbm1wp53kh9i5d4jsljgisd1dv"))))
+ "1jghczmmva7cyavg1q0j8nr3hmjpzzglzi5ckg92ax4ji8gpks9c"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" phase
diff --git a/gnu/packages/aux-files/linux-libre/4.18-arm64.conf b/gnu/packages/aux-files/linux-libre/4.18-arm64.conf
index ab30f51d2e..64b14b52c0 100644
--- a/gnu/packages/aux-files/linux-libre/4.18-arm64.conf
+++ b/gnu/packages/aux-files/linux-libre/4.18-arm64.conf
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/arm64 4.18.0-gnu Kernel Configuration
+# Linux/arm64 4.18.14-gnu Kernel Configuration
#
CONFIG_ARM64=y
CONFIG_64BIT=y
@@ -481,7 +481,7 @@ CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_ACPI=y
CONFIG_HOTPLUG_PCI_ACPI_IBM=m
CONFIG_HOTPLUG_PCI_CPCI=y
-# CONFIG_HOTPLUG_PCI_SHPC is not set
+CONFIG_HOTPLUG_PCI_SHPC=y
#
# PCI controller drivers
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 91bb94c549..1e04081ceb 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -136,24 +136,23 @@
(modify-phases %standard-phases
(delete 'configure)
(replace 'build
- (lambda _
- (zero? (system* "gcc"
- "-O3"
- "-ffast-math"
- "-finline-functions"
- "-o"
- "aragorn"
- (string-append "aragorn" ,version ".c")))))
+ (lambda _
+ (invoke "gcc"
+ "-O3"
+ "-ffast-math"
+ "-finline-functions"
+ "-o"
+ "aragorn"
+ (string-append "aragorn" ,version ".c"))
+ #t))
(replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (man (string-append out "/share/man/man1")))
- (mkdir-p bin)
- (install-file "aragorn" bin)
- (mkdir-p man)
- (install-file "aragorn.1" man))
- #t)))))
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (man (string-append out "/share/man/man1")))
+ (install-file "aragorn" bin)
+ (install-file "aragorn.1" man))
+ #t)))))
(home-page "http://mbio-serv2.mbioekol.lu.se/ARAGORN")
(synopsis "Detect tRNA, mtRNA and tmRNA genes in nucleotide sequences")
(description
@@ -168,15 +167,16 @@ structure of the predicted RNA.")
(name "bamm")
(version "1.7.3")
(source (origin
- (method url-fetch)
+ (method git-fetch)
;; BamM is not available on pypi.
- (uri (string-append
- "https://github.com/Ecogenomics/BamM/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (uri (git-reference
+ (url "https://github.com/Ecogenomics/BamM.git")
+ (commit version)
+ (recursive? #t)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1f35yxp4pc8aadsvbpg6r4kg2jh4fkjci0iby4iyljm6980sac0s"))
+ "1p83ahi984ipslxlg4yqy1gdnya9rkn1v71z8djgxkm9d2chw4c5"))
(modules '((guix build utils)))
(snippet
`(begin
@@ -198,11 +198,12 @@ structure of the predicted RNA.")
(lambda _
(with-directory-excursion "c"
(let ((sh (which "sh")))
+ (for-each make-file-writable (find-files "." ".*"))
;; Use autogen so that 'configure' works.
(substitute* "autogen.sh" (("/bin/sh") sh))
(setenv "CONFIG_SHELL" sh)
- (substitute* "configure" (("/bin/sh") sh))
- (zero? (system* "./autogen.sh"))))))
+ (invoke "./autogen.sh")))
+ #t))
(delete 'build)
;; Run tests after installation so compilation only happens once.
(delete 'check)
@@ -230,7 +231,8 @@ structure of the predicted RNA.")
;; There are 2 errors printed, but they are safe to ignore:
;; 1) [E::hts_open_format] fail to open file ...
;; 2) samtools view: failed to open ...
- (zero? (system* "nosetests")))))))
+ (invoke "nosetests")
+ #t)))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
@@ -335,15 +337,16 @@ transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.")
(define-public bedops
(package
(name "bedops")
- (version "2.4.33")
+ (version "2.4.35")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/bedops/bedops/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bedops/bedops.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0kx4awrwby8f33wqyx8w7ms7v25xhf0d421csgf96a3hfzn2mb0m"))))
+ "0mmgsgwz5r9w76hzgxkxc9s9lkdhhaf7vr6i02b09vbswvs1fyqx"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
@@ -365,9 +368,9 @@ transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.")
;; Unpack the tarballs to benefit from shebang patching.
(with-directory-excursion "third-party"
- (and (zero? (system* "tar" "xvf" "jansson-2.6.tar.bz2"))
- (zero? (system* "tar" "xvf" "zlib-1.2.7.tar.bz2"))
- (zero? (system* "tar" "xvf" "bzip2-1.0.6.tar.bz2"))))
+ (invoke "tar" "xvf" "jansson-2.6.tar.bz2")
+ (invoke "tar" "xvf" "zlib-1.2.7.tar.bz2")
+ (invoke "tar" "xvf" "bzip2-1.0.6.tar.bz2"))
;; Disable unpacking of tarballs in Makefile.
(substitute* "system.mk/Makefile.linux"
(("^\tbzcat .*") "\t@echo \"not unpacking\"\n")
@@ -453,6 +456,20 @@ BED, GFF/GTF, VCF.")
(find-files "bin" ".*")))
#t)))))))
+;; Needed for pybedtools.
+(define-public bedtools-2.26
+ (package (inherit bedtools)
+ (name "bedtools")
+ (version "2.26.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/arq5x/bedtools2/releases/"
+ "download/v" version "/"
+ "bedtools-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0jhavwifnf7lmkb11h9y7dynr8d699h0rd2l52j1pfgircr2zwv5"))))))
+
(define-public ribotaper
(package
(name "ribotaper")
@@ -582,29 +599,54 @@ input/output delimiter. When the new functionality is not used, bioawk is
intended to behave exactly the same as the original BWK awk.")
(license license:x11)))
-(define-public python2-pybedtools
+(define-public python-pybedtools
(package
- (name "python2-pybedtools")
- (version "0.6.9")
+ (name "python-pybedtools")
+ (version "0.7.10")
(source (origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/p/pybedtools/pybedtools-"
- version ".tar.gz"))
+ (uri (pypi-uri "pybedtools" version))
(sha256
(base32
- "1ldzdxw1p4y3g2ignmggsdypvqkcwqwzhdha4rbgpih048z5p4an"))))
+ "0l2b2wrnj85azfqgr0zwr60f7j58vlla1hcgxvr9rwikpl8j72ji"))))
(build-system python-build-system)
- (arguments `(#:python ,python-2)) ; no Python 3 support
- (inputs
- `(("python-matplotlib" ,python2-matplotlib)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; See https://github.com/daler/pybedtools/issues/261
+ (add-after 'unpack 'disable-broken-tests
+ (lambda _
+ ;; This test (pybedtools.test.test_scripts.test_venn_mpl) needs a
+ ;; graphical environment.
+ (substitute* "pybedtools/test/test_scripts.py"
+ (("def test_venn_mpl")
+ "def _do_not_test_venn_mpl"))
+ ;; Requires internet access.
+ (substitute* "pybedtools/test/test_helpers.py"
+ (("def test_chromsizes")
+ "def _do_not_test_chromsizes"))
+ ;; FIXME: these two fail for no good reason.
+ (substitute* "pybedtools/test/test1.py"
+ (("def test_issue_157")
+ "def _do_not_test_issue_157")
+ (("def test_to_dataframe")
+ "def _do_not_test_to_dataframe"))
+ #t)))))
(propagated-inputs
- `(("bedtools" ,bedtools)
- ("samtools" ,samtools)))
+ ;; Tests don't pass with Bedtools 2.27.1.
+ ;; See https://github.com/daler/pybedtools/issues/260
+ `(("bedtools" ,bedtools-2.26)
+ ("samtools" ,samtools)
+ ("python-matplotlib" ,python-matplotlib)
+ ("python-pysam" ,python-pysam)
+ ("python-pyyaml" ,python-pyyaml)))
(native-inputs
- `(("python-cython" ,python2-cython)
- ("python-pyyaml" ,python2-pyyaml)
- ("python-nose" ,python2-nose)))
+ `(("python-numpy" ,python-numpy)
+ ("python-pandas" ,python-pandas)
+ ("python-cython" ,python-cython)
+ ("python-nose" ,python-nose)
+ ("kentutils" ,kentutils) ; for bedGraphToBigWig
+ ("python-six" ,python-six)))
(home-page "https://pythonhosted.org/pybedtools/")
(synopsis "Python wrapper for BEDtools programs")
(description
@@ -614,6 +656,36 @@ pybedtools extends BEDTools by offering feature-level manipulations from with
Python.")
(license license:gpl2+)))
+(define-public python2-pybedtools
+ (let ((pkg (package-with-python2 python-pybedtools)))
+ (package (inherit pkg)
+ (arguments
+ `(#:modules ((ice-9 ftw)
+ (srfi srfi-1)
+ (srfi srfi-26)
+ (guix build utils)
+ (guix build python-build-system))
+ ;; See https://github.com/daler/pybedtools/issues/192
+ ,@(substitute-keyword-arguments (package-arguments pkg)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (replace 'check
+ (lambda _
+ (let ((cwd (getcwd)))
+ (setenv "PYTHONPATH"
+ (string-append cwd "/build/"
+ (find (cut string-prefix? "lib" <>)
+ (scandir (string-append cwd "/build")))
+ ":" (getenv "PYTHONPATH"))))
+ ;; The tests need to be run from elsewhere...
+ (mkdir-p "/tmp/test")
+ (copy-recursively "pybedtools/test" "/tmp/test")
+ (with-directory-excursion "/tmp/test"
+ (invoke "nosetests"
+ ;; This test fails for unknown reasons
+ "--exclude=.*test_getting_example_beds"))
+ #t))))))))))
+
(define-public python-biom-format
(package
(name "python-biom-format")
@@ -999,15 +1071,12 @@ package provides command line tools using the Bio++ library.")
#:parallel-build? #f ; not supported
#:phases
(modify-phases %standard-phases
- (add-before
- 'configure 'set-HOME
+ (add-before 'configure 'set-HOME
;; $HOME needs to be set at some point during the configure phase
(lambda _ (setenv "HOME" "/tmp") #t))
- (add-after
- 'unpack 'enter-dir
+ (add-after 'unpack 'enter-dir
(lambda _ (chdir "c++") #t))
- (add-after
- 'enter-dir 'fix-build-system
+ (add-after 'enter-dir 'fix-build-system
(lambda _
(define (which* cmd)
(cond ((string=? cmd "date")
@@ -1055,31 +1124,31 @@ package provides command line tools using the Bio++ library.")
(("action=/bin/") "action=")
(("export PATH") ":"))
#t))
- (replace
- 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (lib (string-append (assoc-ref outputs "lib") "/lib"))
- (include (string-append (assoc-ref outputs "include")
- "/include/ncbi-tools++")))
- ;; The 'configure' script doesn't recognize things like
- ;; '--enable-fast-install'.
- (zero? (system* "./configure.orig"
- (string-append "--with-build-root=" (getcwd) "/build")
- (string-append "--prefix=" out)
- (string-append "--libdir=" lib)
- (string-append "--includedir=" include)
- (string-append "--with-bz2="
- (assoc-ref inputs "bzip2"))
- (string-append "--with-z="
- (assoc-ref inputs "zlib"))
- (string-append "--with-pcre="
- (assoc-ref inputs "pcre"))
- ;; Each library is built twice by default, once
- ;; with "-static" in its name, and again
- ;; without.
- "--without-static"
- "--with-dll"))))))))
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (lib (string-append (assoc-ref outputs "lib") "/lib"))
+ (include (string-append (assoc-ref outputs "include")
+ "/include/ncbi-tools++")))
+ ;; The 'configure' script doesn't recognize things like
+ ;; '--enable-fast-install'.
+ (invoke "./configure.orig"
+ (string-append "--with-build-root=" (getcwd) "/build")
+ (string-append "--prefix=" out)
+ (string-append "--libdir=" lib)
+ (string-append "--includedir=" include)
+ (string-append "--with-bz2="
+ (assoc-ref inputs "bzip2"))
+ (string-append "--with-z="
+ (assoc-ref inputs "zlib"))
+ (string-append "--with-pcre="
+ (assoc-ref inputs "pcre"))
+ ;; Each library is built twice by default, once
+ ;; with "-static" in its name, and again
+ ;; without.
+ "--without-static"
+ "--with-dll")
+ #t))))))
(outputs '("out" ; 21 MB
"lib" ; 226 MB
"include")) ; 33 MB
@@ -1204,15 +1273,16 @@ errors at the end of reads.")
(define-public bowtie
(package
(name "bowtie")
- (version "2.3.2")
+ (version "2.3.4.3")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/BenLangmead/bowtie2/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/BenLangmead/bowtie2.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0hwa5r9qbglppb7sz5z79rlmmddr3n51n468jb3wh8rwjgn3yr90"))
+ "1zl3cf327y2p7p03cavymbh7b00djc7lncfaqih33n96iy9q8ibp"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -1222,14 +1292,6 @@ errors at the end of reads.")
(("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\""))
#t))))
(build-system gnu-build-system)
- (inputs
- `(("perl" ,perl)
- ("perl-clone" ,perl-clone)
- ("perl-test-deep" ,perl-test-deep)
- ("perl-test-simple" ,perl-test-simple)
- ("python" ,python-2)
- ("tbb" ,tbb)
- ("zlib" ,zlib)))
(arguments
'(#:make-flags
(list "allall"
@@ -1239,11 +1301,21 @@ errors at the end of reads.")
(modify-phases %standard-phases
(delete 'configure)
(replace 'check
- (lambda* (#:key outputs #:allow-other-keys)
- (zero? (system* "perl"
- "scripts/test/simple_tests.pl"
- "--bowtie2=./bowtie2"
- "--bowtie2-build=./bowtie2-build")))))))
+ (lambda _
+ (invoke "perl"
+ "scripts/test/simple_tests.pl"
+ "--bowtie2=./bowtie2"
+ "--bowtie2-build=./bowtie2-build")
+ #t)))))
+ (inputs
+ `(("tbb" ,tbb)
+ ("zlib" ,zlib)
+ ("python" ,python-wrapper)))
+ (native-inputs
+ `(("perl" ,perl)
+ ("perl-clone" ,perl-clone)
+ ("perl-test-deep" ,perl-test-deep)
+ ("perl-test-simple" ,perl-test-simple)))
(home-page "http://bowtie-bio.sourceforge.net/bowtie2/index.shtml")
(synopsis "Fast and sensitive nucleotide sequence read aligner")
(description
@@ -1638,29 +1710,35 @@ databases.")
(define-public clipper
(package
(name "clipper")
- (version "1.1")
+ (version "1.2.1")
(source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/YeoLab/clipper/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/YeoLab/clipper.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0pflmsvhbf8izbgwhbhj1i7349sw1f55qpqj8ljmapp16hb0p0qi"))
+ "0fja1rj84wp9vpj8rxpj3n8zqzcqq454m904yp9as1w4phccirjb"))
(modules '((guix build utils)))
(snippet
'(begin
;; remove unnecessary setup dependency
(substitute* "setup.py"
(("setup_requires = .*") ""))
- (for-each delete-file
- '("clipper/src/peaks.so"
- "clipper/src/readsToWiggle.so"))
- (delete-file-recursively "dist/")
#t))))
(build-system python-build-system)
- (arguments `(#:python ,python-2)) ; only Python 2 is supported
+ (arguments
+ `(#:python ,python-2 ; only Python 2 is supported
+ #:phases
+ (modify-phases %standard-phases
+ ;; This is fixed in upstream commit
+ ;; f6c2990198f906bf97730d95695b4bd5a6d01ddb.
+ (add-after 'unpack 'fix-typo
+ (lambda _
+ (substitute* "clipper/src/readsToWiggle.pyx"
+ (("^sc.*") ""))
+ #t)))))
(inputs
`(("htseq" ,python2-htseq)
("python-pybedtools" ,python2-pybedtools)
@@ -1985,7 +2063,21 @@ trees (phylogenies) and characters.")
(license license:bsd-3)))
(define-public python2-dendropy
- (package-with-python2 python-dendropy))
+ (let ((base (package-with-python2 python-dendropy)))
+ (package
+ (inherit base)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-failing-test
+ (lambda _
+ ;; This test fails when the full test suite is run, as documented
+ ;; at https://github.com/jeetsukumaran/DendroPy/issues/74
+ (substitute* "tests/test_dataio_nexml_reader_tree_list.py"
+ (("test_collection_comments_and_annotations")
+ "do_not_test_collection_comments_and_annotations"))
+ #t)))
+ ,@(package-arguments base))))))
(define-public python-py2bit
(package
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 33f4abb5ae..77b4dba6d4 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -10,6 +10,7 @@
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2018 Nicolò Balzarotti <nicolo@nixo.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -854,3 +855,36 @@ public-key cryptography. Asignify is designed to be portable and self-contained
with zero external dependencies. Asignify can verify OpenBSD signatures, but it
cannot sign messages in OpenBSD format yet.")
(license license:bsd-2))))
+
+(define-public enchive
+ (package
+ (name "enchive")
+ (version "3.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/skeeto/" name "/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "17hrxpp4cpn10bk48sfvfjc8hghky34agsnypam1v9f36kbalqfk"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ; no check target '
+ #:make-flags (list "CC=gcc" "PREFIX=$(out)")
+ #:phases (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'install 'post-install
+ (lambda _
+ (let* ((out (assoc-ref %outputs "out"))
+ (lisp (string-append out "/share/emacs/site-lisp")))
+ (install-file "enchive-mode.el" lisp)
+ #t))))))
+ (synopsis "Encrypted personal archives")
+ (description
+ "Enchive is a tool to encrypt files to yourself for long-term
+archival. It's a focused, simple alternative to more complex solutions such as
+GnuPG or encrypted filesystems. Enchive has no external dependencies and is
+trivial to build for local use. Portability is emphasized over performance.")
+ (home-page "https://github.com/skeeto/enchive")
+ (license license:unlicense)))
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 5e9871699d..a7c406dc25 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -1783,19 +1783,32 @@ trees (LSM), for sustained throughput under random insert workloads.")
;; configure.ac: WiredTiger requires a 64-bit build.
(supported-systems '("x86_64-linux" "mips64el-linux" "aarch64-linux"))))
+(define-public wiredtiger-3
+ (package
+ (inherit wiredtiger)
+ (name "wiredtiger")
+ (version "3.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://source.wiredtiger.com/releases/wiredtiger-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "014awypv579ascg4jbx4pndj2wld337m79yyzrzyr7hxrff139jx"))))))
+
(define-public guile-wiredtiger
(package
(name "guile-wiredtiger")
- (version "0.6.3")
+ (version "0.7.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://framagit.org/a-guile-mind/guile-wiredtiger.git")
- (commit "070ed68139d99c279f058a6c293f00292d35dbd7")))
+ (commit "340ad4bc2ff4dcc6216a2f5c6f9172ca320ac66b")))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "14rna97wsylajzxfif95wnblq85csgcfc666gh5dl0ssgd7x8llh"))))
+ "15j36bvxxzil7qpwlmh1rffqpva3ynvrcpqhhqbj2c9208ayz595"))))
(build-system gnu-build-system)
(arguments
'(#:parallel-tests? #f ;; tests can't be run in parallel, yet.
@@ -1803,21 +1816,19 @@ trees (LSM), for sustained throughput under random insert workloads.")
(list (string-append "--with-libwiredtiger-prefix="
(assoc-ref %build-inputs "wiredtiger")))
#:make-flags '("GUILE_AUTO_COMPILE=0")))
- ;; TODO: Remove microkanren.scm when we have a separate package
- ;; for it.
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("pkg-config" ,pkg-config)))
(inputs
- `(("wiredtiger" ,wiredtiger)
+ `(("wiredtiger" ,wiredtiger-3)
("guile" ,guile-2.2)))
(propagated-inputs
- `(("guile-lib" ,guile-lib))) ;for (htmlprag)
+ `(("guile-bytestructures" ,guile-bytestructures)))
(synopsis "WiredTiger bindings for GNU Guile")
(description
"This package provides Guile bindings to the WiredTiger ``NoSQL''
-database. Various higher level database abstractions.")
+database.")
(home-page "https://framagit.org/a-guile-mind/guile-wiredtiger")
(license license:gpl3+)))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 57841e86fa..1069b9e3c3 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1376,7 +1376,7 @@ environment set through Direnv.")
(define-public emacs-ggtags
(package
(name "emacs-ggtags")
- (version "0.8.12")
+ (version "0.8.13")
(source
(origin
(method url-fetch)
@@ -1384,7 +1384,7 @@ environment set through Direnv.")
version ".el"))
(sha256
(base32
- "0ny3llk021g6r0s75xdm4hzpbxv393ddm2r6f2xdk8kqnq4gnirp"))))
+ "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
(build-system emacs-build-system)
(home-page "https://github.com/leoliu/ggtags")
(synopsis "Frontend to the GNU Global source code tagging system")
@@ -2162,7 +2162,7 @@ keep pressing the key until it selects what you want. There's also
(define-public emacs-fill-column-indicator
(package
(name "emacs-fill-column-indicator")
- (version "1.81")
+ (version "1.89")
(source
(origin
(method url-fetch)
@@ -2171,7 +2171,7 @@ keep pressing the key until it selects what you want. There's also
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1xwyqbjbbicmvhlb85vg4j5snwy1vd7rfk89ws4viws5ljkhhyg8"))))
+ "09ab01np14bdcsr38xf95kpnvxzqr46mdjmphg3pigwnx39a3jvg"))))
(build-system emacs-build-system)
(home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
(synopsis "Graphically indicate the fill column")
@@ -2512,7 +2512,7 @@ snippets for yasnippet.")
(define-public emacs-smart-mode-line
(package
(name "emacs-smart-mode-line")
- (version "2.10.1")
+ (version "2.12.0")
(source
(origin
(method url-fetch)
@@ -2521,7 +2521,7 @@ snippets for yasnippet.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0i9wajabrrsjzwd842q0m2611kf0q31p9hg1pdj81177gynkw8l8"))))
+ "1hn8s6laijmg7w1bgwdfrki6h9vxkbgr8rmmssvd5yqyad5w2sba"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-rich-minority" ,emacs-rich-minority)))
@@ -3091,7 +3091,7 @@ an Emacs minor mode that complements the standard @command{lisp-mode}.
While lisp-mode supports editing Lisp source files, @command{slime-mode}
adds support for interacting with a running Common Lisp process
for compilation, debugging, documentation lookup, and so on.")
- (license license:gpl2+)))
+ (license (list license:gpl2+ license:public-domain))))
(define-public emacs-popup
(package
@@ -4757,14 +4757,14 @@ of its name.")
(define-public emacs-rainbow-mode
(package
(name "emacs-rainbow-mode")
- (version "0.13")
+ (version "1.0.1")
(source (origin
(method url-fetch)
(uri (string-append
"http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
(sha256
(base32
- "1d3aamx6qgqqpqijwsr02ggwrh67gfink1bir0692alfkm3zdddl"))))
+ "0cpga4ax635rfpj7y2vmh7ank0yw00dcy20gjg1mj74r97by8csf"))))
(build-system emacs-build-system)
(home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
(synopsis "Colorize color names in buffers")
@@ -5599,7 +5599,7 @@ This package contains the library runtime.")
(define-public emacs-nginx-mode
(package
(name "emacs-nginx-mode")
- (version "1.1.4")
+ (version "1.1.9")
(source
(origin
(method url-fetch)
@@ -5609,7 +5609,7 @@ This package contains the library runtime.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1lvkj07kq0jkskr2f61vqb5rlrbnaz9a76ikq40w6925i2r970rr"))))
+ "0bzyrj6zz1hm67bkhw23bam7qc869s3zg7m1rb1c3aa4n0aw90cq"))))
(build-system emacs-build-system)
(home-page "https://github.com/ajc/nginx-mode")
(synopsis "Emacs major mode for editing nginx config files")
@@ -5814,7 +5814,7 @@ mode-line.")
(define-public emacs-yasnippet
(package
(name "emacs-yasnippet")
- (version "0.12.2")
+ (version "0.13.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/joaotavora/yasnippet/"
@@ -5822,7 +5822,7 @@ mode-line.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "01jabaz0g67bsziayrxgv74px55fx4nlrcl0csl8f1by2102pwc5"))
+ "12ls2x17agzbrj1xynjbmfa11igqxia4hj4fv6fpr66yci2r1plc"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -7243,7 +7243,7 @@ or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
(define-public emacs-which-key
(package
(name "emacs-which-key")
- (version "3.0.2")
+ (version "3.3.0")
(source
(origin
(method url-fetch)
@@ -7252,7 +7252,7 @@ or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
version ".tar.gz"))
(sha256
(base32
- "1xvd70cwq9n31f28viyjxmr3nn8l153gsy6scpszvgvjxkiikv24"))
+ "1lsj314111cp2hjjwnv3f46ws1za6bm39rgy3l19044xf6a68j5w"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system emacs-build-system)
(arguments
@@ -7421,7 +7421,7 @@ created by @code{git format-patch}, from @code{magit}, @code{dired} and
(define-public emacs-erc-hl-nicks
(package
(name "emacs-erc-hl-nicks")
- (version "1.3.2")
+ (version "1.3.3")
(source
(origin
(method url-fetch)
@@ -7430,7 +7430,7 @@ created by @code{git format-patch}, from @code{magit}, @code{dired} and
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "01svpl9bps5kx4y1wnymakxya2cznqmlynvqv2r500wpnbxczrbs"))))
+ "1a1r2kc3688g8c2ybkpwh88kgmnqhg3h3032g2yn4zr9m0n3vpkr"))))
(build-system emacs-build-system)
(synopsis "Nickname highlighting for Emacs ERC")
(description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
@@ -9736,7 +9736,7 @@ documentation.")
(define-public emacs-hy-mode
(package
(name "emacs-hy-mode")
- (version "1.0.2")
+ (version "1.0.3")
(source
(origin
(method url-fetch)
@@ -9745,7 +9745,7 @@ documentation.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0sbga36zkyhzrzcczsyjzll7b9qsa215pnlw51m4li2irm23jh17"))))
+ "0b4pvbr2hf77bq2vsyfsv653q0dab7qzq85wc7kdziw7687jdf2z"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash" ,emacs-dash)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 972dec3419..bb96bbe68a 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -246,8 +246,8 @@ canyons and wait for the long I-shaped block to clear four rows at a time.")
(license license:gpl3+)))
(define-public cataclysm-dda
- (let ((commit "ad3b0c3d521292d119f97a83390e7acfe9e9e7f7")
- (revision "1"))
+ (let ((commit "0b2c194e5c6a06f4fbf14a0ec1260e0f3cf2567c")
+ (revision "2"))
(package
(name "cataclysm-dda")
;; This denotes the version released after the 0.C release.
@@ -260,7 +260,7 @@ canyons and wait for the long I-shaped block to clear four rows at a time.")
(commit commit)))
(sha256
(base32
- "1kdgbl8zqd53f5yilm2c9nyq3w6585yxl5jvgxy65dlpzxcqqj7y"))
+ "1yzsn0y2g27bvbxjvivjyjhkmf2w5na1qqw5qfkswcfqqwym2y33"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@@ -1000,7 +1000,7 @@ Every puzzle has a complete solution, although there may be more than one.")
(define-public retux
(package
(name "retux")
- (version "1.3.5")
+ (version "1.3.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/retux/"
@@ -1008,7 +1008,7 @@ Every puzzle has a complete solution, although there may be more than one.")
version "-src.tar.gz"))
(sha256
(base32
- "1pcrh3z16fl412r3k7xccrgika19ahb1xh90jihgl8yy7zza2i6p"))))
+ "01bidh4zisjp3nc436x0g85v60dvwb3ig37i7y01sa71j8fm4fmb"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; no check target
@@ -2137,7 +2137,7 @@ falling, themeable graphics and sounds, and replays.")
(define-public wesnoth
(package
(name "wesnoth")
- (version "1.14.4")
+ (version "1.14.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/wesnoth/wesnoth-"
@@ -2146,7 +2146,7 @@ falling, themeable graphics and sounds, and replays.")
name "-" version ".tar.bz2"))
(sha256
(base32
- "1hw1ap8xxpdwyx1sf8fm1g75p6724y3hwb4kpvyqbsq7bwfwsb9i"))))
+ "1kgpj2f22nnx4mwd1zis3s5ny2983aasgqsmz7wnqaq7n6a7ac85"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no check target
@@ -5355,7 +5355,7 @@ You can save humanity and get programming skills!")
(build-system cmake-build-system)
(inputs `(("bzip2" ,bzip2)
("fluid-3" ,fluid-3)
- ("fluidsynth" ,fluidsynth)
+ ("fluidsynth" ,fluidsynth-1) ;XXX: try using 2.x when updating
("gtk+3" ,gtk+)
("libgme" ,libgme)
("libjpeg" ,libjpeg)
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 8dff95fc70..491f688c8e 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -787,7 +787,7 @@ programming langauage. It also contains the utility
(define-public appstream-glib
(package
(name "appstream-glib")
- (version "0.7.12")
+ (version "0.7.14")
(source (origin
(method url-fetch)
(uri (string-append "https://people.freedesktop.org/~hughsient/"
@@ -795,7 +795,7 @@ programming langauage. It also contains the utility
"appstream-glib-" version ".tar.xz"))
(sha256
(base32
- "1jcb2bggcic3iczr2hn8zp8a3c2hl1xjij0aawr7kwqmzh9b3jms"))))
+ "0n0s99jmx2sx5895lcvmfjwa9r0f06i71495dpn9v9frz4asvk3d"))))
(build-system meson-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index bdf4dfe711..ba37d6afa4 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -398,28 +398,30 @@ access the common Google services, and has full asynchronous support.")
(define-public libgxps
(package
(name "libgxps")
- (version "0.2.5")
+ (version "0.3.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
- (patches (search-patches "libgxps-CVE-2017-11590.patch"))
(sha256
(base32
- "184r06s8g20cfigg7m169n42jjsc9wmzzlycr4g1fxxhr72r8x9y"))))
- (build-system gnu-build-system)
+ "1bhgrpb6ndlp11qwr95g9piklmjcsca7bi04f8gy9ziipm1i6as1"))))
+ (build-system meson-build-system)
(native-inputs
`(("gobject-introspection" ,gobject-introspection)
("pkg-config" ,pkg-config)))
(inputs
- `(("cairo" ,cairo)
- ("glib" ,glib)
- ("libarchive" ,libarchive)
- ("libjpeg" ,libjpeg)
+ `(("gtk+" ,gtk+)
+ ("libjpeg" ,libjpeg-turbo)
("lcms" ,lcms)
("libtiff" ,libtiff)
("nettle" ,nettle)))
+ (propagated-inputs
+ ;; In Requires of libgxps.pc.
+ `(("cairo" ,cairo)
+ ("glib" ,glib)
+ ("libarchive" ,libarchive)))
(home-page "https://wiki.gnome.org/Projects/libgxps")
(synopsis "GObject-based library for handling and rendering XPS documents")
(description
@@ -7226,6 +7228,71 @@ It supports ripping to any audio codec supported by a GStreamer plugin, such as
mp3, Ogg Vorbis and FLAC")
(license license:gpl2+)))
+(define-public soundconverter
+ (package
+ (name "soundconverter")
+ (version "3.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://launchpad.net/soundconverter/trunk/"
+ version "/+download/"
+ "soundconverter-" version ".tar.xz"))
+
+ (sha256
+ (base32
+ "1wrxf5py54xplrf97qp24pzbis0cvax5c6k0c7vr3z3ry8r7gd7c"))
+ (patches
+ (search-patches
+ "soundconverter-remove-gconf-dependency.patch"))))
+ (build-system glib-or-gtk-build-system)
+ (arguments
+ `(#:imported-modules ((guix build python-build-system)
+ (guix build glib-or-gtk-build-system)
+ ,@%gnu-build-system-modules)
+
+ #:modules ((guix build glib-or-gtk-build-system)
+ (guix build utils)
+ ((guix build gnu-build-system) #:prefix gnu:)
+ ((guix build python-build-system) #:prefix python:))
+
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-POTFILES.in
+ (lambda _
+ (substitute* "po/POTFILES.in"
+ ;; This file doesn't exist, so without removing it, the 'check
+ ;; phase fails for the po directory
+ (("soundconverter/gconfstore\\.py") ""))))
+ (add-after 'install 'wrap-soundconverter-for-python
+ (assoc-ref python:%standard-phases 'wrap))
+ (add-after 'install 'wrap-soundconverter
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
+ (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
+ (wrap-program (string-append out "/bin/soundconverter")
+ `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+ `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
+ #t)))))
+ (native-inputs
+ `(("intltool" ,intltool)
+ ("pkg-config" ,pkg-config)
+ ("glib:bin" ,glib "bin")))
+ (inputs
+ `(("gtk+" ,gtk+)
+ ("python" ,python)
+ ("python-pygobject" ,python-pygobject)
+ ("gstreamer" ,gstreamer)
+ ("gst-plugins-base" ,gst-plugins-base)))
+ (home-page "http://soundconverter.org/")
+ (synopsis "Convert between audio formats with a graphical interface")
+ (description
+ "SoundConverter supports converting between many audio formats including
+Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
+configurable file renaming. ")
+ (license license:gpl3)))
+
(define-public workrave
(let ((commit "v1_10_21"))
(package
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 93f5bb6aff..f6d72edeea 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1948,27 +1948,43 @@ designs.")
license:asl2.0
license:cpl1.0)))))
-(define-public javacc
+(define-public javacc-4
(package
(name "javacc")
- (version "7.0.3")
+ (version "4.1")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/javacc/javacc/"
- "archive/" version ".tar.gz"))
- (file-name (string-append "javacc-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/javacc/javacc.git")
+ (commit "release_41")))
+ (file-name (string-append "javacc-" version "-checkout"))
(sha256
(base32
- "111xc9mnmc5a6qz6x3xbhqc07y1lg2b996ggzw0hrblg42zya9xf"))))
+ "07ysav7j8r1c6h8qxrgqk6lwdp74ly0ad1935lragxml0qqc3ka0"))
+ (modules '((guix build utils)))
+ ;; delete bundled jars
+ (snippet '(begin (delete-file-recursively "lib") #t))))
(build-system ant-build-system)
+ ;; Tests fail with
+ ;; /tmp/guix-build-javacc-4.1.drv-0/source/test/javacodeLA/build.xml:60:
+ ;; JAVACODE failed
(arguments
- `(#:test-target "test"
+ `(#:tests? #f
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'delete-bundled-libs
+ ;; Delete tests to avoid build failure (we don't run them anyway).
+ (add-after 'unpack 'delete-tests
(lambda _
- (delete-file-recursively "lib") #t))
- (replace 'install (install-jars "target")))))
+ (for-each delete-file
+ '("src/org/javacc/JavaCCTestCase.java"
+ "src/org/javacc/parser/ExpansionTest.java"
+ "src/org/javacc/parser/OptionsTest.java"
+ "src/org/javacc/jjtree/JJTreeOptionsTest.java"))
+ (for-each delete-file-recursively
+ '("src/org/javacc/parser/test"
+ "src/org/javacc/jjdoc/test"))
+ #t))
+ (replace 'install (install-jars "bin/lib")))))
(home-page "https://javacc.org/")
(synopsis "Java parser generator")
(description "Java Compiler Compiler (JavaCC) is the most popular parser
@@ -1980,29 +1996,34 @@ as tree building (via a tool called JJTree included with JavaCC), actions,
debugging, etc.")
(license license:bsd-3)))
-(define-public javacc-4
- (package (inherit javacc)
- (version "4.1")
+(define-public javacc
+ (package
+ (inherit javacc-4)
+ (version "7.0.3")
(source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/javacc/javacc.git")
- (commit "release_41")))
- (file-name (string-append "javacc-" version "-checkout"))
+ (method url-fetch)
+ (uri (string-append "https://github.com/javacc/javacc/"
+ "archive/" version ".tar.gz"))
+ (file-name (string-append "javacc-" version ".tar.gz"))
(sha256
(base32
- "07ysav7j8r1c6h8qxrgqk6lwdp74ly0ad1935lragxml0qqc3ka0"))))
- ;; Tests fail with
- ;; /tmp/guix-build-javacc-4.1.drv-0/source/test/javacodeLA/build.xml:60:
- ;; JAVACODE failed
- (arguments
- `(#:tests? #f
+ "111xc9mnmc5a6qz6x3xbhqc07y1lg2b996ggzw0hrblg42zya9xf"))
+ (modules '((guix build utils)))
+ ;; delete bundled jars
+ (snippet '(begin (for-each delete-file-recursively
+ '("bootstrap" "lib"))
+ #t))))
+ (arguments
+ `(#:make-flags ; bootstrap from javacc-4
+ (list (string-append "-Dbootstrap-jar="
+ (assoc-ref %build-inputs "javacc")
+ "/share/java/javacc.jar"))
+ #:test-target "test"
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'delete-bundled-libs
- (lambda _
- (delete-file-recursively "lib") #t))
- (replace 'install (install-jars "bin/lib")))))))
+ (replace 'install (install-jars "target")))))
+ (native-inputs
+ `(("javacc" ,javacc-4)))))
;; This is the last 3.x release of ECJ
(define-public java-ecj-3
diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm
index 86ce914d53..21e7b12d3e 100644
--- a/gnu/packages/kodi.scm
+++ b/gnu/packages/kodi.scm
@@ -317,6 +317,11 @@ generator library for C++.")
(string-append (assoc-ref inputs "tzdata")
"/share/zoneinfo")))
+ ;; Don't phone home to check for updates.¬
+ (substitute* "system/addon-manifest.xml"¬
+ (("<addon optional=\\\"true\\\">service.xbmc.versioncheck</addon>")
+ ""))
+
;; Let's disable some tests that are known not to work here.
;; Doing this later while in the cmake "../build" directory
;; is trickier.
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 83cdd9f012..f058cc79a2 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -399,8 +399,8 @@ It has been modified to remove all non-free binary blobs.")
;; supports qemu "virt" machine and possibly a large number of ARM boards.
;; See : https://wiki.debian.org/DebianKernel/ARMMP.
-(define %linux-libre-version "4.18.14")
-(define %linux-libre-hash "1gwwx8l283w8v1zylw2haqahvjns5dzqxx9li2586nnl8cfmfnwc")
+(define %linux-libre-version "4.18.15")
+(define %linux-libre-hash "0v6xs85qn1iy2dj3m6s3cfnhbwb1mjy21d9lagjni8dg3jic26hf")
(define %linux-libre-4.18-patches
(list %boot-logo-patch
@@ -430,8 +430,8 @@ It has been modified to remove all non-free binary blobs.")
#:patches %linux-libre-4.18-patches
#:configuration-file kernel-config))
-(define %linux-libre-4.14-version "4.14.76")
-(define %linux-libre-4.14-hash "1y5zqf84ngb6f5f85xpd4bdy6mlxr52x19bx3mdrp82awc9fvr7q")
+(define %linux-libre-4.14-version "4.14.77")
+(define %linux-libre-4.14-hash "18y81rga2lhsk7bjckglxz52pvnzf103ar0z2zj611g37wyf83r5")
(define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version
@@ -440,8 +440,8 @@ It has been modified to remove all non-free binary blobs.")
#:configuration-file kernel-config))
(define-public linux-libre-4.9
- (make-linux-libre "4.9.133"
- "1vr94czdv5alzsgm2k1r6wqm01r2zafrayjn10l6kdr4g7aga488"
+ (make-linux-libre "4.9.134"
+ "0f5qif27k0mhc57d98arbfkq7zlvg0ra2gz6g5fasblyjz3j7w7h"
%intel-compatible-systems
#:configuration-file kernel-config))
@@ -3671,7 +3671,7 @@ The collection contains a set of bandwidth and latency benchmark such as:
(package
(name "rng-tools")
(home-page "https://github.com/nhorman/rng-tools")
- (version "6.5")
+ (version "6.6")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page)
@@ -3679,7 +3679,7 @@ The collection contains a set of bandwidth and latency benchmark such as:
(file-name (git-file-name name version))
(sha256
(base32
- "11kw1rcgzmgzwk7g1w2g0nzjraqb0pf24gxpy50k4ls2qxslw3rk"))))
+ "0c32sxfvngdjzfmxn5ngc5yxwi8ij3yl216nhzyz9r31qi3m14v7"))))
(build-system gnu-build-system)
(arguments
`(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB.
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 8b8b9229b5..89ccdb720a 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -31,6 +31,7 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix hg-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system asdf)
@@ -61,8 +62,12 @@
#:use-module (gnu packages texinfo)
#:use-module (gnu packages version-control)
#:use-module (gnu packages xorg)
+ #:use-module (gnu packages databases)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages webkit)
#:use-module (ice-9 match)
- #:use-module (srfi srfi-1))
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-19))
(define (asdf-substitutions lisp)
;; Prepend XDG_DATA_DIRS/LISP-bundle-systems to ASDF's
@@ -1526,3 +1531,2001 @@ based on a subset of MDL. Confusion is a MDL interpreter that works just well
enough to play the original mainframe Zork all the way through.")
(home-page "http://www.russotto.net/git/mrussotto/confusion/src/master/src/README")
(license license:gpl3+))))
+
+(define-public sbcl-cl-strings
+ (let ((revision "1")
+ (commit "c5c5cbafbf3e6181d03c354d66e41a4f063f00ae"))
+ (package
+ (name "sbcl-cl-strings")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/diogoalexandrefranco/cl-strings")
+ (commit commit)))
+ (sha256
+ (base32
+ "00754mfaqallj480lwd346nkfb6ra8pa8xcxcylf4baqn604zlmv"))
+ (file-name (string-append "cl-strings-" version "-checkout"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
+ (description
+ "@command{cl-strings} is a small, portable, dependency-free set of
+utilities that make it even easier to manipulate text in Common Lisp. It has
+100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")
+ (home-page "https://github.com/diogoalexandrefranco/cl-strings")
+ (license license:expat))))
+
+(define-public cl-strings
+ (sbcl-package->cl-source-package sbcl-cl-strings))
+
+(define-public ecl-cl-strings
+ (sbcl-package->ecl-package sbcl-cl-strings))
+
+(define-public sbcl-trivial-features
+ (package
+ (name "sbcl-trivial-features")
+ (version "0.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/trivial-features/trivial-features/archive/v"
+ version ".tar.gz"))
+ (sha256
+ (base32 "0db1awn6jyhcfhyfvpjvfziprmq85cigf19mwbvaprhblydsag3c"))
+ (file-name (string-append "trivial-features-" version ".tar.gz"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments '(#:tests? #f))
+ (home-page "http://cliki.net/trivial-features")
+ (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
+ (description "Trivial-features ensures that @code{*FEATURES*} is
+consistent across multiple Common Lisp implementations.")
+ (license license:expat)))
+
+(define-public cl-trivial-features
+ (sbcl-package->cl-source-package sbcl-trivial-features))
+
+(define-public ecl-trivial-features
+ (sbcl-package->ecl-package sbcl-trivial-features))
+
+(define-public sbcl-hu.dwim.asdf
+ (let ((commit "170b0e4fdde3df0bc537327e7600575daac9e141"))
+ (package
+ (name "sbcl-hu.dwim.asdf")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/nixeagle/hu.dwim.asdf")
+ (commit commit)))
+ (sha256
+ (base32 "10ax7p8y6vjqxzcq125p62kf68zi455a65ysgk0kl1f2v839c33v"))
+ (file-name (git-file-name "hu.dwim.asdf" version))))
+ (build-system asdf-build-system/sbcl)
+ (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.asdf")
+ (synopsis "Extensions to ASDF")
+ (description "Various ASDF extensions such as attached test and
+documentation system, explicit development support, etc.")
+ (license license:public-domain))))
+
+(define-public cl-hu.dwim.asdf
+ (sbcl-package->cl-source-package sbcl-hu.dwim.asdf))
+
+(define-public ecl-hu.dwim.asdf
+ (sbcl-package->ecl-package sbcl-hu.dwim.asdf))
+
+(define-public sbcl-hu.dwim.stefil
+ (let ((commit "ab6d1aa8995878a1b66d745dfd0ba021090bbcf9"))
+ (package
+ (name "sbcl-hu.dwim.stefil")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://gitlab.common-lisp.net/xcvb/hu.dwim.stefil.git")
+ (commit commit)))
+ (sha256
+ (base32 "1d8yccw65zj3zh46cbi3x6nmn1dwdb76s9d0av035077mvyirqqp"))
+ (file-name (git-file-name "hu.dwim.stefil" version))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
+ (inputs
+ `(("sbcl-alexandria" ,sbcl-alexandria)))
+ (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.stefil")
+ (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-hu.dwim.stefil
+ (sbcl-package->cl-source-package sbcl-hu.dwim.stefil))
+
+(define-public ecl-hu.dwim.stefil
+ (sbcl-package->ecl-package sbcl-hu.dwim.stefil))
+
+(define-public sbcl-babel
+ (package
+ (name "sbcl-babel")
+ (version "0.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/cl-babel/babel/archive/v"
+ version ".tar.gz"))
+ (sha256
+ (base32 "189kgbmslh36xx0d2i1g6a7mcvjryvjzkdlnhilqy5xs7hkyqirq"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
+ (inputs
+ `(("sbcl-alexandria" ,sbcl-alexandria)
+ ("sbcl-trivial-features" ,sbcl-trivial-features)))
+ (home-page "https://common-lisp.net/project/babel/")
+ (synopsis "Charset encoding and decoding library")
+ (description "Babel is a charset encoding and decoding library, not unlike
+GNU libiconv, but completely written in Common Lisp.")
+ (license license:expat)))
+
+(define-public cl-babel
+ (sbcl-package->cl-source-package sbcl-babel))
+
+(define-public ecl-babel
+ (sbcl-package->ecl-package sbcl-babel))
+
+(define-public sbcl-cl-yacc
+ (package
+ (name "sbcl-cl-yacc")
+ (version "0.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jech/cl-yacc")
+ (commit (string-append "cl-yacc-" version))))
+ (sha256
+ (base32
+ "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib"))
+ (file-name (string-append "cl-yacc-" version "-checkout"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ `(#:asd-file "yacc.asd"
+ #:asd-system-name "yacc"))
+ (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
+ (description
+ "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
+to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm.
+
+CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used
+by AT&T Yacc, Berkeley Yacc and Zebu. It does not use the faster algorithm due
+to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
+ (home-page "https://www.irif.fr/~jch//software/cl-yacc/")
+ (license license:expat)))
+
+(define-public cl-yacc
+ (sbcl-package->cl-source-package sbcl-cl-yacc))
+
+(define-public ecl-cl-yacc
+ (sbcl-package->ecl-package sbcl-cl-yacc))
+
+(define-public sbcl-jpl-util
+ (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
+ (package
+ (name "sbcl-jpl-util")
+ (version "20151005")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ ;; Quicklisp uses this fork.
+ (url "https://github.com/hawkir/cl-jpl-util")
+ (commit commit)))
+ (file-name
+ (git-file-name "jpl-util" version))
+ (sha256
+ (base32
+ "0nc0rk9n8grkg3045xsw34whmcmddn2sfrxki4268g7kpgz0d2yz"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Collection of Common Lisp utility functions and macros")
+ (description
+ "@command{cl-jpl-util} is a collection of Common Lisp utility functions
+and macros, primarily for software projects written in CL by the author.")
+ (home-page "https://www.thoughtcrime.us/software/cl-jpl-util/")
+ (license license:isc))))
+
+(define-public cl-jpl-util
+ (sbcl-package->cl-source-package sbcl-jpl-util))
+
+(define-public ecl-jpl-util
+ (sbcl-package->ecl-package sbcl-jpl-util))
+
+(define-public sbcl-jpl-queues
+ (package
+ (name "sbcl-jpl-queues")
+ (version "0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("jpl-util" ,sbcl-jpl-util)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)))
+ (arguments
+ ;; Tests seem to be broken.
+ `(#:tests? #f))
+ (synopsis "Common Lisp library implementing a few different kinds of queues")
+ (description
+ "A Common Lisp library implementing a few different kinds of queues:
+
+@itemize
+@item Bounded and unbounded FIFO queues.
+@item Lossy bounded FIFO queues that drop elements when full.
+@item Unbounded random-order queues that use less memory than unbounded FIFO queues.
+@end itemize
+
+Additionally, a synchronization wrapper is provided to make any queue
+conforming to the @command{jpl-queues} API thread-safe for lightweight
+multithreading applications. (See Calispel for a more sophisticated CL
+multithreaded message-passing library with timeouts and alternation among
+several blockable channels.)")
+ (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
+ (license license:isc)))
+
+(define-public cl-jpl-queues
+ (sbcl-package->cl-source-package sbcl-jpl-queues))
+
+(define-public ecl-jpl-queues
+ (sbcl-package->ecl-package sbcl-jpl-queues))
+
+(define-public sbcl-eos
+ (let ((commit "b0faca83781ead9a588661e37bd47f90362ccd94"))
+ (package
+ (name "sbcl-eos")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/adlai/Eos")
+ (commit commit)))
+ (sha256
+ (base32
+ "1bq8cfg087iyxmxi1mwgx5cfgy3b8ydrf81xljcis8qbgb2vszph"))
+ (file-name (git-file-name "eos" version))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Unit Testing for Common Lisp")
+ (description
+ "Eos was a unit testing library for Common Lisp.
+It began as a fork of FiveAM; however, FiveAM development has continued, while
+that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.")
+ (home-page "https://github.com/adlai/Eos")
+ (license license:expat))))
+
+(define-public cl-eos
+ (sbcl-package->cl-source-package sbcl-eos))
+
+(define-public ecl-eos
+ (sbcl-package->ecl-package sbcl-eos))
+
+(define-public sbcl-esrap
+ (let ((commit "133be8b05c2aae48696fe5b739eea2fa573fa48d"))
+ (package
+ (name "sbcl-esrap")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nikodemus/esrap")
+ (commit commit)))
+ (sha256
+ (base32
+ "02d5clihsdryhf7pix8c5di2571fdsffh75d40fkzhws90r5mksl"))
+ (file-name (git-file-name "esrap" version))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("eos" ,sbcl-eos))) ;For testing only.
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)))
+ (synopsis "Common Lisp packrat parser")
+ (description
+ "A packrat parser for Common Lisp.
+In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
+
+@itemize
+@item dynamic redefinition of nonterminals
+@item inline grammars
+@item semantic predicates
+@item introspective facilities (describing grammars, tracing, setting breaks)
+@end itemize\n")
+ (home-page "https://nikodemus.github.io/esrap/")
+ (license license:expat))))
+
+(define-public cl-esrap
+ (sbcl-package->cl-source-package sbcl-esrap))
+
+(define-public ecl-esrap
+ (sbcl-package->ecl-package sbcl-esrap))
+
+(define-public sbcl-split-sequence
+ (package
+ (name "sbcl-split-sequence")
+ (version "1.4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sharplispers/split-sequence")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "0c3zp6b7fmmp93sfhq112ind4zkld49ycw68z409xpnz3gc0wpf0"))
+ (file-name (git-file-name "split-sequence" version))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ ;; TODO: Tests seem to be broken.
+ ;; https://github.com/sharplispers/split-sequence/issues/8
+ `(#:tests? #f))
+ (synopsis "Member of the Common Lisp Utilities family of programs")
+ (description
+ "Splits sequence into a list of subsequences delimited by objects
+satisfying the test.")
+ (home-page "https://cliki.net/split-sequence")
+ (license license:expat)))
+
+(define-public cl-split-sequence
+ (sbcl-package->cl-source-package sbcl-split-sequence))
+
+(define-public ecl-split-sequence
+ (sbcl-package->ecl-package sbcl-split-sequence))
+
+(define-public sbcl-html-encode
+ (package
+ (name "sbcl-html-encode")
+ (version "1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://beta.quicklisp.org/archive/html-encode/2010-10-06/html-encode-"
+ version ".tgz"))
+ (sha256
+ (base32
+ "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf"))
+ (file-name (string-append "colorize" version "-checkout"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Common Lisp library for encoding text in various web-savvy encodings")
+ (description
+ "A library for encoding text in various web-savvy encodings.")
+ (home-page "http://quickdocs.org/html-encode/")
+ (license license:expat)))
+
+(define-public cl-html-encode
+ (sbcl-package->cl-source-package sbcl-html-encode))
+
+(define-public ecl-html-encode
+ (sbcl-package->ecl-package sbcl-html-encode))
+
+(define-public sbcl-colorize
+ (let ((commit "ea676b584e0899cec82f21a9e6871172fe3c0eb5"))
+ (package
+ (name "sbcl-colorize")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/kingcons/colorize")
+ (commit commit)))
+ (sha256
+ (base32
+ "1pdg4kiaczmr3ivffhirp7m3lbr1q27rn7dhaay0vwghmi31zcw9"))
+ (file-name (git-file-name "colorize" version))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("split-sequence" ,sbcl-split-sequence)
+ ("html-encode" ,sbcl-html-encode)))
+ (synopsis "Common Lisp for syntax highlighting")
+ (description
+ "@command{colorize} is a Lisp library for syntax highlighting
+supporting the following languages: Common Lisp, Emacs Lisp, Scheme, Clojure,
+C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.")
+ (home-page "https://github.com/kingcons/colorize")
+ ;; TODO: Missing license?
+ (license license:expat))))
+
+(define-public cl-colorize
+ (sbcl-package->cl-source-package sbcl-colorize))
+
+(define-public ecl-colorize
+ (sbcl-package->ecl-package sbcl-colorize))
+
+(define-public sbcl-3bmd
+ (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
+ (package
+ (name "sbcl-3bmd")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/3b/3bmd")
+ (commit commit)))
+ (sha256
+ (base32
+ "1rgv3gi7wf963ikmmpk132wgn0icddf226gq3bmcnk1fr3v9gf2f"))
+ (file-name (git-file-name "3bmd" version))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ ;; FIXME: We need to specify the name because the build-system thinks
+ ;; "3" is a version marker.
+ `(#:asd-system-name "3bmd"))
+ (inputs
+ `(("esrap" ,sbcl-esrap)
+ ("split-sequence" ,sbcl-split-sequence)))
+ (synopsis "Markdown processor in Command Lisp using esrap parser")
+ (description
+ "Common Lisp Markdown -> HTML converter, using @command{esrap} for
+parsing, and grammar based on @command{peg-markdown}.")
+ (home-page "https://github.com/3b/3bmd")
+ (license license:expat))))
+
+(define-public cl-3bmd
+ (sbcl-package->cl-source-package sbcl-3bmd))
+
+(define-public ecl-3bmd
+ (sbcl-package->ecl-package sbcl-3bmd))
+
+(define-public sbcl-3bmd-ext-code-blocks
+ (let ((commit "192ea13435b605a96ef607df51317056914cabbd"))
+ (package
+ (inherit sbcl-3bmd)
+ (name "sbcl-3bmd-ext-code-blocks")
+ (arguments
+ `(#:asd-system-name "3bmd-ext-code-blocks"
+ #:asd-file "3bmd-ext-code-blocks.asd"))
+ (inputs
+ `(("3bmd" ,sbcl-3bmd)
+ ("colorize" ,sbcl-colorize)))
+ (synopsis "3bmd extension which adds support for GitHub-style fenced
+code blocks")
+ (description
+ "3bmd extension which adds support for GitHub-style fenced code blocks,
+with @command{colorize} support."))))
+
+(define-public cl-3bmd-ext-code-blocks
+ (sbcl-package->cl-source-package sbcl-3bmd-ext-code-blocks))
+
+(define-public ecl-3bmd-ext-code-blocks
+ (sbcl-package->ecl-package sbcl-3bmd-ext-code-blocks))
+
+(define-public sbcl-cl-fad
+ (package
+ (name "sbcl-cl-fad")
+ (version "0.7.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/edicl/cl-fad/")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "1l1qmk9z57q84bz5r04sxsksggsnd7dgkxlybzh9imz6ma7sm52m"))
+ (file-name (string-append "cl-fad" version "-checkout"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("bordeaux-threads" ,sbcl-bordeaux-threads)))
+ (synopsis "Portable pathname library for Common Lisp")
+ (description
+ "CL-FAD (for \"Files and Directories\") is a thin layer atop Common
+Lisp's standard pathname functions. It is intended to provide some
+unification between current CL implementations on Windows, OS X, Linux, and
+Unix. Most of the code was written by Peter Seibel for his book Practical
+Common Lisp.")
+ (home-page "https://edicl.github.io/cl-fad/")
+ (license license:bsd-2)))
+
+(define-public cl-fad
+ (sbcl-package->cl-source-package sbcl-cl-fad))
+
+(define-public ecl-cl-fad
+ (sbcl-package->ecl-package sbcl-cl-fad))
+
+(define-public sbcl-rt
+ (package
+ (name "sbcl-rt")
+ (version "1990.12.19")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://beta.quicklisp.org/archive/rt/2010-10-06/rt-"
+ "20101006-git" ".tgz"))
+ (sha256
+ (base32
+ "1jncar0xwkqk8yrc2dln389ivvgzs7ijdhhs3zpfyi5d21f0qa1v"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "MIT Regression Tester")
+ (description
+ "RT provides a framework for writing regression test suites.")
+ (home-page "https://github.com/sharplispers/nibbles")
+ (license license:unlicense)))
+
+(define-public cl-rt
+ (sbcl-package->cl-source-package sbcl-rt))
+
+(define-public ecl-rt
+ (sbcl-package->ecl-package sbcl-rt))
+
+(define-public sbcl-nibbles
+ (package
+ (name "sbcl-nibbles")
+ (version "0.14")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sharplispers/nibbles/")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "1v7qfgpvdr6nz7v63dj69d26dis0kff3rd8xamr1llfdvza2pm8f"))
+ (file-name (git-file-name "nibbles" version))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ ;; Tests only.
+ `(("rt" ,sbcl-rt)))
+ (synopsis "Common Lisp library for accessing octet-addressed blocks of data")
+ (description
+ "When dealing with network protocols and file formats, it's common to
+have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned
+flavors. Common Lisp sort of supports this by specifying :element-type for
+streams, but that facility is underspecified and there's nothing similar for
+read/write from octet vectors. What most people wind up doing is rolling their
+own small facility for their particular needs and calling it a day.
+
+This library attempts to be comprehensive and centralize such
+facilities. Functions to read 16-, 32-, and 64-bit quantities from octet
+vectors in signed or unsigned flavors are provided; these functions are also
+SETFable. Since it's sometimes desirable to read/write directly from streams,
+functions for doing so are also provided. On some implementations,
+reading/writing IEEE singles/doubles (i.e. single-float and double-float) will
+also be supported.")
+ (home-page "https://github.com/sharplispers/nibbles")
+ (license license:bsd-3)))
+
+(define-public cl-nibbles
+ (sbcl-package->cl-source-package sbcl-nibbles))
+
+(define-public ecl-nibbles
+ (sbcl-package->ecl-package sbcl-nibbles))
+
+(define-public sbcl-ironclad
+ (package
+ (name "sbcl-ironclad")
+ (version "0.42")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sharplispers/ironclad/")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "1wjcb9vpybxjrmch7f7s78a5abxmnknbd4fl49dl5lz8a3fc8vf0"))
+ (file-name (string-append "ironblad" version "-checkout"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ ;; Tests only.
+ `(("rt" ,sbcl-rt)))
+ (inputs
+ `(("flexi-streams" ,sbcl-flexi-streams)
+ ("nibbles" ,sbcl-nibbles)))
+ (synopsis "Cryptographic toolkit written in Common Lisp")
+ (description
+ "Ironclad is a cryptography library written entirely in Common Lisp.
+It includes support for several popular ciphers, digests, MACs and public key
+cryptography algorithms. For several implementations that support Gray
+streams, support is included for convenient stream wrappers.")
+ (home-page "https://github.com/sharplispers/ironclad")
+ (license license:bsd-3)))
+
+(define-public cl-ironclad
+ (sbcl-package->cl-source-package sbcl-ironclad))
+
+(define-public ecl-ironclad
+ (sbcl-package->ecl-package sbcl-ironclad))
+
+(define-public sbcl-named-readtables
+ (let ((commit "4dfb89fa1af6b305b6492b8af042f5190c11e9fc")
+ (revision "1"))
+ (package
+ (name "sbcl-named-readtables")
+ (version (string-append "0.9-" revision "." (string-take commit 7)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/melisgl/named-readtables.git")
+ (commit commit)))
+ (sha256
+ (base32 "083kgh5462iqbb4px6kq8s7sggvpvkm36hx4qi9rnaw53b6ilqkk"))
+ (file-name (git-file-name "named-readtables" version))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ ;; Tests seem to be broken.
+ `(#:tests? #f))
+ (home-page "https://github.com/melisgl/named-readtables/")
+ (synopsis "Library that creates a namespace for named readtables")
+ (description "Named readtables is a library that creates a namespace for
+named readtables, which is akin to package namespacing in Common Lisp.")
+ (license license:bsd-3))))
+
+(define-public cl-named-readtables
+ (sbcl-package->cl-source-package sbcl-named-readtables))
+
+(define-public ecl-named-readtables
+ (sbcl-package->ecl-package sbcl-named-readtables))
+
+(define-public sbcl-pythonic-string-reader
+ (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a"))
+ (package
+ (name "sbcl-pythonic-string-reader")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/smithzvk/pythonic-string-reader/")
+ (commit commit)))
+ (sha256
+ (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j"))
+ (file-name (git-file-name "pythonic-string-reader" version))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("named-readtables" ,sbcl-named-readtables)))
+ (home-page "https://github.com/smithzvk/pythonic-string-reader")
+ (synopsis "Read table modification inspired by Python's three quote strings")
+ (description "This piece of code sets up some reader macros that make it
+simpler to input string literals which contain backslashes and double quotes
+This is very useful for writing complicated docstrings and, as it turns out,
+writing code that contains string literals that contain code themselves.")
+ (license license:bsd-3))))
+
+(define-public cl-pythonic-string-reader
+ (sbcl-package->cl-source-package sbcl-pythonic-string-reader))
+
+(define-public ecl-pythonic-string-reader
+ (sbcl-package->ecl-package sbcl-pythonic-string-reader))
+
+(define-public sbcl-slime-swank
+ (package
+ (name "sbcl-slime-swank")
+ (version "2.22")
+ (source
+ (origin
+ (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ ;; (url "https://github.com/slime/slime/")
+ ;; (commit "841f61467c03dea9f38ff9d5af0e21a8aa29e8f7")
+ ;; REVIEW: Do we need sionescu's patch to package SWANK?
+ (url "https://github.com/sionescu/slime/")
+ ;; (commit "swank-asdf")
+ (commit "2f7c3fcb3ac7d50d844d5c6ca0e89b52a45e1d3a")))
+ (sha256
+ (base32
+ ;; "065bc4y6iskazdfwlhgcjlzg9bi2hyjbhmyjw3461506pgkj08vi"
+ "0pkmg94wn4ii1zhlrncn44mdc5i6c5v0i9gbldx4dwl2yy7ibz5c"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (substitute* "contrib/swank-listener-hooks.lisp"
+ ((":compile-toplevel :load-toplevel ") ""))
+ (substitute* "contrib/swank-presentations.lisp"
+ ((":compile-toplevel :load-toplevel ") ""))
+ (substitute* "swank.asd"
+ ((":file \"packages\".*" all)
+ (string-append all "(:file \"swank-loader-asdf\")\n")))
+ (substitute* "swank-loader-asdf.lisp"
+ ((":common-lisp" all) (string-append all " #:asdf")))
+ #t))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ `(#:asd-file "swank.asd"
+ #:asd-system-name "swank"))
+ (home-page "https://github.com/slime/slime")
+ (synopsis "Common Lisp Swank server")
+ (description
+ "This is only useful if you want to start a Swank server in a Lisp
+processes that doesn't run under Emacs. Lisp processes created by
+@command{M-x slime} automatically start the server.")
+ (license (list license:gpl2+ license:public-domain))))
+
+(define-public sbcl-mgl-pax
+ (let ((commit "818448418d6b9de74620f606f5b23033c6082769"))
+ (package
+ (name "sbcl-mgl-pax")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/melisgl/mgl-pax")
+ (commit commit)))
+ (sha256
+ (base32
+ "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i"))
+ (file-name (git-file-name "mgl-pax" version))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("3bmd" ,sbcl-3bmd)
+ ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks)
+ ("babel" ,sbcl-babel)
+ ("cl-fad" ,sbcl-cl-fad)
+ ("ironclad" ,sbcl-ironclad)
+ ("named-readtables" ,sbcl-named-readtables)
+ ("pythonic-string-reader" ,sbcl-pythonic-string-reader)
+ ("swank" ,sbcl-slime-swank)))
+ (synopsis "Exploratory programming environment and documentation generator")
+ (description
+ "PAX provides an extremely poor man's Explorable Programming
+environment. Narrative primarily lives in so called sections that mix markdown
+docstrings with references to functions, variables, etc, all of which should
+probably have their own docstrings.
+
+The primary focus is on making code easily explorable by using SLIME's
+@command{M-.} (@command{slime-edit-definition}). See how to enable some
+fanciness in Emacs Integration. Generating documentation from sections and all
+the referenced items in Markdown or HTML format is also implemented.
+
+With the simplistic tools provided, one may accomplish similar effects as with
+Literate Programming, but documentation is generated from code, not vice versa
+and there is no support for chunking yet. Code is first, code must look
+pretty, documentation is code.")
+ (home-page "http://quotenil.com/")
+ (license license:expat))))
+
+(define-public cl-mgl-pax
+ (sbcl-package->cl-source-package sbcl-mgl-pax))
+
+(define-public ecl-mgl-pax
+ (sbcl-package->ecl-package sbcl-mgl-pax))
+
+(define-public sbcl-lisp-unit
+ (let ((commit "89653a232626b67400bf9a941f9b367da38d3815"))
+ (package
+ (name "sbcl-lisp-unit")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/OdonataResearchLLC/lisp-unit")
+ (commit commit)))
+ (sha256
+ (base32
+ "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry"))
+ (file-name (git-file-name "lisp-unit" version))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use")
+ (description
+ "@command{lisp-unit} is a Common Lisp library that supports unit
+testing. It is an extension of the library written by Chris Riesbeck.")
+ (home-page "https://github.com/OdonataResearchLLC/lisp-unit")
+ (license license:expat))))
+
+(define-public cl-lisp-unit
+ (sbcl-package->cl-source-package sbcl-lisp-unit))
+
+(define-public ecl-lisp-unit
+ (sbcl-package->ecl-package sbcl-lisp-unit))
+
+(define-public sbcl-anaphora
+ (package
+ (name "sbcl-anaphora")
+ (version "0.9.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tokenrove/anaphora")
+ (commit version)))
+ (sha256
+ (base32
+ "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x"))
+ (file-name (git-file-name "anaphora" version))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("rt" ,sbcl-rt)))
+ (synopsis "The anaphoric macro collection from Hell")
+ (description
+ "Anaphora is the anaphoric macro collection from Hell: it includes many
+new fiends in addition to old friends like @command{aif} and
+@command{awhen}.")
+ (home-page "https://github.com/tokenrove/anaphora")
+ (license license:public-domain)))
+
+(define-public cl-anaphora
+ (sbcl-package->cl-source-package sbcl-anaphora))
+
+(define-public ecl-anaphora
+ (sbcl-package->ecl-package sbcl-anaphora))
+
+(define-public sbcl-lift
+ (let ((commit "7d49a66c62759535624037826891152223d4206c"))
+ (package
+ (name "sbcl-lift")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gwkkwg/lift")
+ (commit commit)))
+ (sha256
+ (base32
+ "127v5avpz1i4m0lkaxqrq8hrl69rdazqaxf6s8awf0nd7wj2g4dp"))
+ (file-name (git-file-name "lift" version))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ ;; The tests require a debugger, but we run with the debugger disabled.
+ '(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ ;; Do this to ensure the 'reset-gzip-timestamps phase works.
+ (add-after 'unpack 'make-gzips-writeable
+ (lambda _
+ (for-each (lambda (file)
+ (chmod file #o755))
+ (find-files "." "\\.gz$")))))))
+ (synopsis "LIsp Framework for Testing")
+ (description
+ "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP.
+Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT,
+testcases are organized into hierarchical testsuites each of which can have
+its own fixture. When run, a testcase can succeed, fail, or error. LIFT
+supports randomized testing, benchmarking, profiling, and reporting.")
+ (home-page "https://github.com/gwkkwg/lift")
+ (license license:x11-style))))
+
+(define-public cl-lift
+ (sbcl-package->cl-source-package sbcl-lift))
+
+(define-public ecl-lift
+ (sbcl-package->ecl-package sbcl-lift))
+
+(define-public sbcl-let-plus
+ (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb"))
+ (package
+ (name "sbcl-let-plus")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sharplispers/let-plus")
+ (commit commit)))
+ (sha256
+ (base32
+ "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj"))
+ (file-name (git-file-name "let-plus" version))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("anaphora" ,sbcl-anaphora)))
+ (native-inputs
+ `(("lift" ,sbcl-lift)))
+ (synopsis "Destructuring extension of let*")
+ (description
+ "This library implements the let+ macro, which is a dectructuring
+extension of let*. It features:
+
+@itemize
+@item Clean, consistent syntax and small implementation (less than 300 LOC,
+not counting tests)
+@item Placeholder macros allow editor hints and syntax highlighting
+@item @command{&ign} for ignored values (in forms where that makes sense)
+@item Very easy to extend
+@end itemize\n")
+ (home-page "https://github.com/sharplispers/let-plus")
+ (license license:boost1.0))))
+
+(define-public cl-let-plus
+ (sbcl-package->cl-source-package sbcl-let-plus))
+
+(define-public ecl-let-plus
+ (sbcl-package->ecl-package sbcl-let-plus))
+
+(define-public sbcl-cl-colors
+ (let ((commit "827410584553f5c717eec6182343b7605f707f75"))
+ (package
+ (name "sbcl-cl-colors")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tpapp/cl-colors")
+ (commit commit)))
+ (sha256
+ (base32
+ "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a"))
+ (file-name (git-file-name "cl-colors" version))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("let-plus" ,sbcl-let-plus)))
+ (synopsis "Simple color library for Common Lisp")
+ (description
+ "This is a very simple color library for Common Lisp, providing
+
+@itemize
+@item Types for representing colors in HSV and RGB spaces.
+@item Simple conversion functions between the above types (and also
+hexadecimal representation for RGB).
+@item Some predefined colors (currently X11 color names – of course the
+library does not depend on X11).Because color in your terminal is nice.
+@end itemize
+
+This library is no longer supported by its author.")
+ (home-page "https://github.com/tpapp/cl-colors")
+ (license license:boost1.0))))
+
+(define-public cl-colors
+ (sbcl-package->cl-source-package sbcl-cl-colors))
+
+(define-public ecl-cl-colors
+ (sbcl-package->ecl-package sbcl-cl-colors))
+
+(define-public sbcl-cl-ansi-text
+ (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
+ (package
+ (name "sbcl-cl-ansi-text")
+ (version (git-version "1.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pnathan/cl-ansi-text")
+ (commit commit)))
+ (sha256
+ (base32
+ "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
+ (file-name (git-file-name "cl-ansi-text" version))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cl-colors" ,sbcl-cl-colors)))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (synopsis "ANSI terminal color implementation for Common Lisp")
+ (description
+ "@command{cl-ansi-text} provides utilities which enable printing to an
+ANSI terminal with colored text. It provides the macro @command{with-color}
+which causes everything printed in the body to be displayed with the provided
+color. It further provides functions which will print the argument with the
+named color.")
+ (home-page "https://github.com/pnathan/cl-ansi-text")
+ ;; REVIEW: The actual license is LLGPL. Should we add it to Guix?
+ (license license:lgpl3+))))
+
+(define-public cl-ansi-text
+ (sbcl-package->cl-source-package sbcl-cl-ansi-text))
+
+(define-public ecl-cl-ansi-text
+ (sbcl-package->ecl-package sbcl-cl-ansi-text))
+
+(define-public sbcl-prove-asdf
+ (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
+ (package
+ (name "sbcl-prove-asdf")
+ (version (git-version "1.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fukamachi/prove")
+ (commit commit)))
+ (sha256
+ (base32
+ "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
+ (file-name (git-file-name "prove" version))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ `(#:asd-file "prove-asdf.asd"))
+ (synopsis "Test requirement for the Common Lisp 'prove' library")
+ (description
+ "Test requirement for the Common Lisp @command{prove} library.")
+ (home-page "https://github.com/fukamachi/prove")
+ (license license:expat))))
+
+(define-public cl-prove-asdf
+ (sbcl-package->cl-source-package sbcl-prove-asdf))
+
+(define-public ecl-prove-asdf
+ (sbcl-package->ecl-package sbcl-prove-asdf))
+
+(define-public sbcl-prove
+ (package
+ (inherit sbcl-prove-asdf)
+ (name "sbcl-prove")
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cl-ppcre" ,sbcl-cl-ppcre)
+ ("cl-ansi-text" ,sbcl-cl-ansi-text)))
+ (native-inputs
+ `(("prove-asdf" ,sbcl-prove-asdf)))
+ (arguments
+ `(#:asd-file "prove.asd"))
+ (synopsis "Yet another unit testing framework for Common Lisp")
+ (description
+ "This project was originally called @command{cl-test-more}.
+@command{prove} is yet another unit testing framework for Common Lisp. The
+advantages of @command{prove} are:
+
+@itemize
+@item Various simple functions for testing and informative error messages
+@item ASDF integration
+@item Extensible test reporters
+@item Colorizes the report if it's available (note for SLIME)
+@item Reports test durations
+@end itemize\n")))
+
+(define-public cl-prove
+ (sbcl-package->cl-source-package sbcl-prove))
+
+(define-public ecl-prove
+ (sbcl-package->ecl-package sbcl-prove))
+
+(define-public sbcl-proc-parse
+ (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd"))
+ (package
+ (name "sbcl-proc-parse")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fukamachi/proc-parse")
+ (commit commit)))
+ (sha256
+ (base32
+ "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh"))
+ (file-name (git-file-name "proc-parse" version))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("babel" ,sbcl-babel)))
+ (native-inputs
+ `(("prove" ,sbcl-prove)
+ ("prove-asdf" ,sbcl-prove-asdf)))
+ (arguments
+ ;; TODO: Tests don't find "proc-parse-test", why?
+ `(#:tests? #f))
+ (synopsis "Procedural vector parser")
+ (description
+ "This is a string/octets parser library for Common Lisp with speed and
+readability in mind. Unlike other libraries, the code is not a
+pattern-matching-like, but a char-by-char procedural parser.")
+ (home-page "https://github.com/fukamachi/proc-parse")
+ (license license:bsd-2))))
+
+(define-public cl-proc-parse
+ (sbcl-package->cl-source-package sbcl-proc-parse))
+
+(define-public ecl-proc-parse
+ (sbcl-package->ecl-package sbcl-proc-parse))
+
+(define-public sbcl-parse-float
+ (let ((commit "2aae569f2a4b2eb3bfb5401a959425dcf151b09c"))
+ (package
+ (name "sbcl-parse-float")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/soemraws/parse-float")
+ (commit commit)))
+ (sha256
+ (base32
+ "08xw8cchhmqcc0byng69m3f5a2izc9y2290jzz2k0qrbibp1fdk7"))
+ (file-name (git-file-name "proc-parse" version))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("babel" ,sbcl-babel)))
+ (native-inputs
+ `(("prove" ,sbcl-prove)
+ ("prove-asdf" ,sbcl-prove-asdf)))
+ (arguments
+ ;; TODO: Tests don't find "proc-parse-test", why?
+ `(#:tests? #f))
+ (synopsis "Parse a floating point value from a string in Common Lisp")
+ (description
+ "This package exports the following function to parse floating-point
+values from a string in Common Lisp.")
+ (home-page "https://github.com/soemraws/parse-float")
+ ;; TODO: Missing license?
+ (license license:public-domain))))
+
+(define-public cl-parse-float
+ (sbcl-package->cl-source-package sbcl-parse-float))
+
+(define-public ecl-parse-float
+ (sbcl-package->ecl-package sbcl-parse-float))
+
+(define-public sbcl-ascii-strings
+ (let ((revision "1")
+ (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97"))
+ (package
+ (name "sbcl-ascii-strings")
+ (version (string-append "0-" revision "." (string-take changeset 7)))
+ (source
+ (origin
+ (method hg-fetch)
+ (uri (hg-reference
+ (url "https://bitbucket.org/vityok/cl-string-match/")
+ (changeset changeset)))
+ (sha256
+ (base32
+ "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y"))
+ (file-name (git-file-name "cl-string-match" version))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("babel" ,sbcl-babel)))
+ (arguments
+ `(#:asd-file "ascii-strings.asd"))
+ (synopsis "Operations on ASCII strings")
+ (description
+ "Operations on ASCII strings. Essentially this can be any kind of
+single-byte encoded strings.")
+ (home-page "https://bitbucket.org/vityok/cl-string-match/")
+ (license license:bsd-3))))
+
+(define-public cl-ascii-strings
+ (sbcl-package->cl-source-package sbcl-ascii-strings))
+
+(define-public ecl-ascii-strings
+ (sbcl-package->ecl-package sbcl-ascii-strings))
+
+(define-public sbcl-simple-scanf
+ (package
+ (inherit sbcl-ascii-strings)
+ (name "sbcl-simple-scanf")
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("iterate" ,sbcl-iterate)
+ ("proc-parse" ,sbcl-proc-parse)
+ ("parse-float" ,sbcl-parse-float)))
+ (arguments
+ `(#:asd-file "simple-scanf.asd"))
+ (synopsis "Simple scanf-like functionality implementation")
+ (description
+ "A simple scanf-like functionality implementation.")))
+
+(define-public cl-simple-scanf
+ (sbcl-package->cl-source-package sbcl-simple-scanf))
+
+(define-public ecl-simple-scanf
+ (sbcl-package->ecl-package sbcl-simple-scanf))
+
+(define-public sbcl-cl-string-match
+ (package
+ (inherit sbcl-ascii-strings)
+ (name "sbcl-cl-string-match")
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("ascii-strings" ,sbcl-ascii-strings)
+ ("yacc" ,sbcl-cl-yacc)
+ ("jpl-util" ,sbcl-jpl-util)
+ ("jpl-queues" ,sbcl-jpl-queues)
+ ("mgl-pax" ,sbcl-mgl-pax)
+ ("iterate" ,sbcl-iterate)))
+ ;; TODO: Tests are not evaluated properly.
+ (native-inputs
+ ;; For testing:
+ `(("lisp-unit" ,sbcl-lisp-unit)
+ ("simple-scanf" ,sbcl-simple-scanf)))
+ (arguments
+ `(#:tests? #f
+ #:asd-file "cl-string-match.asd"))
+ (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp")
+ (description
+ "@command{cl-strings} is a small, portable, dependency-free set of
+utilities that make it even easier to manipulate text in Common Lisp. It has
+100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.")))
+
+(define-public cl-string-match
+ (sbcl-package->cl-source-package sbcl-cl-string-match))
+
+(define-public ecl-cl-string-match
+ (sbcl-package->ecl-package sbcl-cl-string-match))
+
+(define-public sbcl-ptester
+ (package
+ (name "sbcl-ptester")
+ (version "20160929")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://beta.quicklisp.org/archive/ptester/"
+ (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
+ "/ptester-"
+ version
+ "-git.tgz"))
+ (sha256
+ (base32
+ "04rlq1zljhxc65pm31bah3sq3as24l0sdivz440s79qlnnyh13hz"))))
+ (build-system asdf-build-system/sbcl)
+ (home-page "http://quickdocs.org/ptester/")
+ (synopsis "Portable test harness package")
+ (description
+ "@command{ptester} is a portable testing framework based on Franz's
+tester module.")
+ (license license:lgpl3+)))
+
+(define-public cl-ptester
+ (sbcl-package->cl-source-package sbcl-ptester))
+
+(define-public ecl-ptester
+ (sbcl-package->ecl-package sbcl-ptester))
+
+(define-public sbcl-puri
+ (package
+ (name "sbcl-puri")
+ (version "20180228")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://beta.quicklisp.org/archive/puri/"
+ (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
+ "/puri-"
+ version
+ "-git.tgz"))
+ (sha256
+ (base32
+ "1s4r5adrjy5asry45xbcbklxhdjydvf6n55z897nvyw33bigrnbz"))))
+ (build-system asdf-build-system/sbcl)
+ ;; REVIEW: Webiste down?
+ (native-inputs
+ `(("ptester" ,sbcl-ptester)))
+ (home-page "http://files.kpe.io/puri/")
+ (synopsis "Portable URI Library")
+ (description
+ "This is portable Universal Resource Identifier library for Common Lisp
+programs. It parses URI according to the RFC 2396 specification")
+ (license license:lgpl3+)))
+
+(define-public cl-puri
+ (sbcl-package->cl-source-package sbcl-puri))
+
+(define-public ecl-puri
+ (sbcl-package->ecl-package sbcl-puri))
+
+(define-public sbcl-queues
+ (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94"))
+ (package
+ (name "sbcl-queues")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/oconnore/queues")
+ (commit commit)))
+ (file-name (git-file-name "queues" version))
+ (sha256
+ (base32
+ "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv"))))
+ (build-system asdf-build-system/sbcl)
+ (home-page "https://github.com/oconnore/queues")
+ (synopsis "Common Lisp queue library")
+ (description
+ "This is a simple queue library for Common Lisp with features such as
+non-consing thread safe queues and fibonacci priority queues.")
+ (license license:expat))))
+
+(define-public cl-queues
+ (sbcl-package->cl-source-package sbcl-queues))
+
+(define-public ecl-queues
+ (sbcl-package->ecl-package sbcl-queues))
+
+(define-public sbcl-queues.simple-queue
+ (package
+ (inherit sbcl-queues)
+ (name "sbcl-queues.simple-queue")
+ (inputs
+ `(("sbcl-queues" ,sbcl-queues)))
+ (arguments
+ `(#:asd-file "queues.simple-queue.asd"))
+ (synopsis "Simple queue implementation")
+ (description
+ "This is a simple queue library for Common Lisp with features such as
+non-consing thread safe queues and fibonacci priority queues.")
+ (license license:expat)))
+
+(define-public cl-queues.simple-queue
+ (sbcl-package->cl-source-package sbcl-queues.simple-queue))
+
+(define-public ecl-queues.simple-queue
+ (sbcl-package->ecl-package sbcl-queues.simple-queue))
+
+(define-public sbcl-queues.simple-cqueue
+ (package
+ (inherit sbcl-queues)
+ (name "sbcl-queues.simple-cqueue")
+ (inputs
+ `(("sbcl-queues" ,sbcl-queues)
+ ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)))
+ (arguments
+ `(#:asd-file "queues.simple-cqueue.asd"))
+ (synopsis "Thread safe queue implementation")
+ (description
+ "This is a simple queue library for Common Lisp with features such as
+non-consing thread safe queues and fibonacci priority queues.")
+ (license license:expat)))
+
+(define-public cl-queues.simple-cqueue
+ (sbcl-package->cl-source-package sbcl-queues.simple-cqueue))
+
+(define-public ecl-queues.simple-cqueue
+ (sbcl-package->ecl-package sbcl-queues.simple-cqueue))
+
+(define-public sbcl-queues.priority-queue
+ (package
+ (inherit sbcl-queues)
+ (name "sbcl-queues.priority-queue")
+ (inputs
+ `(("sbcl-queues" ,sbcl-queues)))
+ (arguments
+ `(#:asd-file "queues.priority-queue.asd"))
+ (synopsis "Priority queue (Fibonacci) implementation")
+ (description
+ "This is a simple queue library for Common Lisp with features such as
+non-consing thread safe queues and fibonacci priority queues.")
+ (license license:expat)))
+
+(define-public cl-queues.priority-queue
+ (sbcl-package->cl-source-package sbcl-queues.priority-queue))
+
+(define-public ecl-queues.priority-queue
+ (sbcl-package->ecl-package sbcl-queues.priority-queue))
+
+(define-public sbcl-queues.priority-cqueue
+ (package
+ (inherit sbcl-queues)
+ (name "sbcl-queues.priority-cqueue")
+ (inputs
+ `(("sbcl-queues" ,sbcl-queues)
+ ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)))
+ (arguments
+ `(#:asd-file "queues.priority-cqueue.asd"))
+ (synopsis "Thread safe fibonacci priority queue implementation")
+ (description
+ "This is a simple queue library for Common Lisp with features such as
+non-consing thread safe queues and fibonacci priority queues.")
+ (license license:expat)))
+
+(define-public cl-queues.priority-cqueue
+ (sbcl-package->cl-source-package sbcl-queues.priority-cqueue))
+
+(define-public ecl-queues.priority-cqueue
+ (sbcl-package->ecl-package sbcl-queues.priority-cqueue))
+
+(define sbcl-cffi-bootstrap
+ (package
+ (name "sbcl-cffi-bootstrap")
+ (version "0.19.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/cffi/cffi/archive/v"
+ version ".tar.gz"))
+ (sha256
+ (base32 "07bc3c1fbfx17wgrvx6bh9byilfzfwv5n597cfdllm0vzwvbmiyk"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("libffi" ,libffi)
+ ("alexandria" ,sbcl-alexandria)
+ ("babel" ,sbcl-babel)
+ ("trivial-features" ,sbcl-trivial-features)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "libffi/libffi.lisp"
+ (("libffi.so.6" all) (string-append
+ (assoc-ref inputs "libffi")
+ "/lib/" all)))
+ (substitute* "toolchain/c-toolchain.lisp"
+ (("\"cc\"") (format #f "~S" (which "gcc")))))))
+ #:asd-system-name "cffi"
+ #:tests? #f))
+ (home-page "https://common-lisp.net/project/cffi/")
+ (synopsis "Common Foreign Function Interface for Common Lisp")
+ (description "The Common Foreign Function Interface (CFFI)
+purports to be a portable foreign function interface for Common Lisp.
+The CFFI library is composed of a Lisp-implementation-specific backend
+in the CFFI-SYS package, and a portable frontend in the CFFI
+package.")
+ (license license:expat)))
+
+(define-public sbcl-cffi-toolchain
+ (package
+ (inherit sbcl-cffi-bootstrap)
+ (name "sbcl-cffi-toolchain")
+ (inputs
+ `(("libffi" ,libffi)
+ ("sbcl-cffi" ,sbcl-cffi-bootstrap)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap)
+ ((#:asd-system-name _) #f)
+ ((#:tests? _) #t)))))
+
+(define-public sbcl-cffi-libffi
+ (package
+ (inherit sbcl-cffi-toolchain)
+ (name "sbcl-cffi-libffi")
+ (inputs
+ `(("cffi" ,sbcl-cffi-bootstrap)
+ ("cffi-grovel" ,sbcl-cffi-grovel)
+ ("trivial-features" ,sbcl-trivial-features)
+ ("libffi" ,libffi)))))
+
+(define-public sbcl-cffi-grovel
+ (package
+ (inherit sbcl-cffi-toolchain)
+ (name "sbcl-cffi-grovel")
+ (inputs
+ `(("libffi" ,libffi)
+ ("cffi" ,sbcl-cffi-bootstrap)
+ ("cffi-toolchain" ,sbcl-cffi-toolchain)
+ ("alexandria" ,sbcl-alexandria)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'build 'install-headers
+ (lambda* (#:key outputs #:allow-other-keys)
+ (install-file "grovel/common.h"
+ (string-append
+ (assoc-ref outputs "out")
+ "/include/grovel"))))))))))
+
+(define-public sbcl-cffi
+ (package
+ (inherit sbcl-cffi-toolchain)
+ (name "sbcl-cffi")
+ (inputs (package-inputs sbcl-cffi-bootstrap))
+ (native-inputs
+ `(("cffi-grovel" ,sbcl-cffi-grovel)
+ ("cffi-libffi" ,sbcl-cffi-libffi)
+ ("rt" ,sbcl-rt)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ,@(package-native-inputs sbcl-cffi-bootstrap)))))
+
+(define-public sbcl-cl-sqlite
+ (let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112"))
+ (package
+ (name "sbcl-cl-sqlite")
+ (version (git-version "0.2" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dmitryvk/cl-sqlite")
+ (commit commit)))
+ (file-name (git-file-name "cl-sqlite" version))
+ (sha256
+ (base32
+ "1ng45k1hdb84sqjryrfx93g66bsbybmpy301wd0fdybnc5jzr36q"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("iterate" ,sbcl-iterate)
+ ("cffi" ,sbcl-cffi)
+ ("sqlite" ,sqlite)))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)))
+ (arguments
+ `(#:tests? #f ; Upstream seems to have issues with tests: https://github.com/dmitryvk/cl-sqlite/issues/7
+ #:asd-file "sqlite.asd"
+ #:asd-system-name "sqlite"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "sqlite-ffi.lisp"
+ (("libsqlite3" all) (string-append
+ (assoc-ref inputs "sqlite")"/lib/" all))))))))
+ (home-page "https://common-lisp.net/project/cl-sqlite/")
+ (synopsis "Common Lisp binding for SQLite")
+ (description
+ "The @command{cl-sqlite} package is an interface to the SQLite embedded
+relational database engine.")
+ (license license:public-domain))))
+
+(define-public sbcl-parenscript
+ (let ((commit "061d8e286c81c3f45c84fb2b11ee7d83f590a8f8"))
+ (package
+ (name "sbcl-parenscript")
+ (version (git-version "2.6" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.common-lisp.net/parenscript/parenscript")
+ (commit commit)))
+ (file-name (git-file-name "parenscript" version))
+ (sha256
+ (base32
+ "1kbhgsjbikc73m5cwdp4d4fdafyqcr1b7b630qjrziql0nh6mi3k"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("cl-ppcre" ,sbcl-cl-ppcre)
+ ("anaphora" ,sbcl-anaphora)
+ ("named-readtables" ,sbcl-named-readtables)))
+ (home-page "https://common-lisp.net/project/parenscript/")
+ (synopsis "Translator from a subset of Common Lisp to JavaScript")
+ (description
+ "Parenscript is a translator from an extended subset of Common Lisp to
+JavaScript. Parenscript code can run almost identically on both the
+browser (as JavaScript) and server (as Common Lisp).
+
+Parenscript code is treated the same way as Common Lisp code, making the full
+power of Lisp macros available for JavaScript. This provides a web
+development environment that is unmatched in its ability to reduce code
+duplication and provide advanced meta-programming facilities to web
+developers.
+
+At the same time, Parenscript is different from almost all other \"language
+X\" to JavaScript translators in that it imposes almost no overhead:
+
+@itemize
+@item No run-time dependencies: Any piece of Parenscript code is runnable
+as-is. There are no JavaScript files to include.
+@item Native types: Parenscript works entirely with native JavaScript data
+types. There are no new types introduced, and object prototypes are not
+touched.
+@item Native calling convention: Any JavaScript code can be called without the
+need for bindings. Likewise, Parenscript can be used to make efficient,
+self-contained JavaScript libraries.
+@item Readable code: Parenscript generates concise, formatted, idiomatic
+JavaScript code. Identifier names are preserved. This enables seamless
+debugging in tools like Firebug.
+@item Efficiency: Parenscript introduces minimal overhead for advanced Common
+Lisp features. The generated code is almost as fast as hand-written
+JavaScript.
+@end itemize\n")
+ (license license:bsd-3))))
+
+(define-public cl-parenscript
+ (sbcl-package->cl-source-package sbcl-parenscript))
+
+(define-public ecl-parenscript
+ (sbcl-package->ecl-package sbcl-parenscript))
+
+(define-public sbcl-cl-json
+ (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79"))
+ (package
+ (name "sbcl-cl-json")
+ (version (git-version "0.5" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hankhero/cl-json")
+ (commit commit)))
+ (file-name (git-file-name "cl-json" version))
+ (sha256
+ (base32
+ "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (home-page "https://github.com/hankhero/cl-json")
+ (synopsis "JSON encoder and decoder for Common-Lisp")
+ (description
+ "@command{cl-json} provides an encoder of Lisp objects to JSON format
+and a corresponding decoder of JSON data to Lisp objects. Both the encoder
+and the decoder are highly customizable; at the same time, the default
+settings ensure a very simple mode of operation, similar to that provided by
+@command{yason} or @command{st-json}.")
+ (license license:expat))))
+
+(define-public cl-json
+ (sbcl-package->cl-source-package sbcl-cl-json))
+
+(define-public ecl-cl-json
+ (sbcl-package->ecl-package sbcl-cl-json))
+
+(define-public sbcl-unix-opts
+ (package
+ (name "sbcl-unix-opts")
+ (version "0.1.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/libre-man/unix-opts")
+ (commit version)))
+ (file-name (git-file-name "unix-opts" version))
+ (sha256
+ (base32
+ "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr"))))
+ (build-system asdf-build-system/sbcl)
+ (home-page "https://github.com/hankhero/cl-json")
+ (synopsis "Unix-style command line options parser")
+ (description
+ "This is a minimalistic parser of command line options. The main
+advantage of the library is the ability to concisely define command line
+options once and then use this definition for parsing and extraction of
+command line arguments, as well as printing description of command line
+options (you get --help for free). This way you don't need to repeat
+yourself. Also, @command{unix-opts} doesn't depend on anything and allows to
+precisely control behavior of the parser via Common Lisp restarts.")
+ (license license:expat)))
+
+(define-public cl-unix-opts
+ (sbcl-package->cl-source-package sbcl-unix-opts))
+
+(define-public ecl-unix-opts
+ (sbcl-package->ecl-package sbcl-unix-opts))
+
+(define-public sbcl-trivial-garbage
+ (package
+ (name "sbcl-trivial-garbage")
+ (version "0.21")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/trivial-garbage/trivial-garbage/archive/v"
+ version ".tar.gz"))
+ (sha256
+ (base32 "0b244nlszkrqawsnp568clnx32xmvjmbbagbz7625w9n0yq7396y"))
+ (file-name (string-append "trivial-garbage-" version ".tar.gz"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("rt" ,sbcl-rt)))
+ (home-page "https://common-lisp.net/project/trivial-garbage/")
+ (synopsis "Portable GC-related APIs for Common Lisp")
+ (description "@command{trivial-garbage} provides a portable API to
+finalizers, weak hash-tables and weak pointers on all major implementations of
+the Common Lisp programming language.")
+ (license license:public-domain)))
+
+(define-public cl-trivial-garbage
+ (sbcl-package->cl-source-package sbcl-trivial-garbage))
+
+(define-public ecl-trivial-garbage
+ (sbcl-package->ecl-package sbcl-trivial-garbage))
+
+(define-public sbcl-closer-mop
+ (let ((commit "fac29ce90e3a46e1fc6cf182190e193526fa9dbc"))
+ (package
+ (name "sbcl-closer-mop")
+ (version (git-version "1.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pcostanza/closer-mop")
+ (commit commit)))
+ (sha256
+ (base32 "0hvh77y869h8fg9di5snyg85fxq6fdh9gj1igmx1g6j6j5x915dl"))
+ (file-name (git-file-name "closer-mop" version ))))
+ (build-system asdf-build-system/sbcl)
+ (home-page "https://github.com/pcostanza/closer-mop")
+ (synopsis "Rectifies absent or incorrect CLOS MOP features")
+ (description "Closer to MOP is a compatibility layer that rectifies many
+of the absent or incorrect CLOS MOP features across a broad range of Common
+Lisp implementations.")
+ (license license:expat))))
+
+(define-public cl-closer-mop
+ (sbcl-package->cl-source-package sbcl-closer-mop))
+
+(define-public ecl-closer-mop
+ (sbcl-package->ecl-package sbcl-closer-mop))
+
+(define sbcl-cl-cffi-gtk-boot0
+ (let ((commit "29443c5aaca975709df8025c4649366d882033cb"))
+ (package
+ (name "sbcl-cl-cffi-gtk-boot0")
+ (version (git-version "0.11.2" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Ferada/cl-cffi-gtk/")
+ (commit commit)))
+ (file-name (git-file-name "cl-cffi-gtk" version))
+ (sha256
+ (base32
+ "0f6s92sf8xyzh1yksqx8bsy1sv0zmy0c13j3b8bavaba5hlxpxah"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("iterate" ,sbcl-iterate)
+ ("cffi" ,sbcl-cffi)
+ ("trivial-features" ,sbcl-trivial-features)))
+ (home-page "https://github.com/Ferada/cl-cffi-gtk/")
+ (synopsis "Common Lisp binding for GTK+3")
+ (description
+ "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which
+is a library for creating graphical user interfaces.")
+ (license license:lgpl3))))
+
+(define-public sbcl-cl-cffi-gtk-glib
+ (package
+ (inherit sbcl-cl-cffi-gtk-boot0)
+ (name "sbcl-cl-cffi-gtk-glib")
+ (inputs
+ `(("glib" ,glib)
+ ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
+ (arguments
+ `(#:asd-file "glib/cl-cffi-gtk-glib.asd"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "glib/glib.init.lisp"
+ (("libglib|libgthread" all) (string-append
+ (assoc-ref inputs "glib") "/lib/" all))))))))))
+
+(define-public sbcl-cl-cffi-gtk-gobject
+ (package
+ (inherit sbcl-cl-cffi-gtk-boot0)
+ (name "sbcl-cl-cffi-gtk-gobject")
+ (inputs
+ `(("glib" ,glib)
+ ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
+ ("trivial-garbage" ,sbcl-trivial-garbage)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("closer-mop" ,sbcl-closer-mop)
+ ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
+ (arguments
+ `(#:asd-file "gobject/cl-cffi-gtk-gobject.asd"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "gobject/gobject.init.lisp"
+ (("libgobject" all) (string-append
+ (assoc-ref inputs "glib") "/lib/" all))))))))))
+
+(define-public sbcl-cl-cffi-gtk-gio
+ (package
+ (inherit sbcl-cl-cffi-gtk-boot0)
+ (name "sbcl-cl-cffi-gtk-gio")
+ (inputs
+ `(("glib" ,glib)
+ ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
+ ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
+ ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
+ (arguments
+ `(#:asd-file "gio/cl-cffi-gtk-gio.asd"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "gio/gio.init.lisp"
+ (("libgio" all)
+ (string-append
+ (assoc-ref inputs "glib") "/lib/" all))))))))))
+
+(define-public sbcl-cl-cffi-gtk-cairo
+ (package
+ (inherit sbcl-cl-cffi-gtk-boot0)
+ (name "sbcl-cl-cffi-gtk-cairo")
+ (inputs
+ `(("cairo" ,cairo)
+ ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
+ ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
+ (arguments
+ `(#:asd-file "cairo/cl-cffi-gtk-cairo.asd"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "cairo/cairo.init.lisp"
+ (("libcairo" all)
+ (string-append
+ (assoc-ref inputs "cairo") "/lib/" all))))))))))
+
+(define-public sbcl-cl-cffi-gtk-pango
+ (package
+ (inherit sbcl-cl-cffi-gtk-boot0)
+ (name "sbcl-cl-cffi-gtk-pango")
+ (inputs
+ `(("pango" ,pango)
+ ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
+ ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
+ ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
+ ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
+ (arguments
+ `(#:asd-file "pango/cl-cffi-gtk-pango.asd"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "pango/pango.init.lisp"
+ (("libpango" all)
+ (string-append
+ (assoc-ref inputs "pango") "/lib/" all))))))))))
+
+(define-public sbcl-cl-cffi-gtk-gdk-pixbuf
+ (package
+ (inherit sbcl-cl-cffi-gtk-boot0)
+ (name "sbcl-cl-cffi-gtk-gdk-pixbuf")
+ (inputs
+ `(("gdk-pixbuf" ,gdk-pixbuf)
+ ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
+ ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
+ (arguments
+ `(#:asd-file "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
+ (("libgdk_pixbuf" all)
+ (string-append
+ (assoc-ref inputs "gdk-pixbuf") "/lib/" all))))))))))
+
+(define-public sbcl-cl-cffi-gtk-gdk
+ (package
+ (inherit sbcl-cl-cffi-gtk-boot0)
+ (name "sbcl-cl-cffi-gtk-gdk")
+ (inputs
+ `(("gtk" ,gtk+)
+ ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
+ ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
+ ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf)
+ ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
+ ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango)
+ ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
+ (arguments
+ `(#:asd-file "gdk/cl-cffi-gtk-gdk.asd"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "gdk/gdk.init.lisp"
+ (("libgdk" all)
+ (string-append
+ (assoc-ref inputs "gtk") "/lib/" all)))
+ (substitute* "gdk/gdk.package.lisp"
+ (("libgtk" all)
+ (string-append
+ (assoc-ref inputs "gtk") "/lib/" all))))))))))
+
+(define-public sbcl-cl-cffi-gtk
+ (package
+ (inherit sbcl-cl-cffi-gtk-boot0)
+ (name "sbcl-cl-cffi-gtk")
+ (inputs
+ `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
+ ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
+ ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
+ ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk)
+ ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (arguments
+ `(#:asd-file "gtk/cl-cffi-gtk.asd"
+ #:test-asd-file "test/cl-cffi-gtk-test.asd"
+ ;; TODO: Tests fail with memory fault.
+ ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
+ #:tests? #f))))
+
+(define-public sbcl-cl-webkit
+ (let ((commit "cd2a9008e0c152e54755e8a7f07b050fe36bab31"))
+ (package
+ (name "sbcl-cl-webkit")
+ (version (git-version "2.4" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/atlas-engineer/cl-webkit")
+ (commit commit)))
+ (file-name (git-file-name "cl-webkit" version))
+ (sha256
+ (base32
+ "0f5lyn9i7xrn3g1bddga377mcbawkbxydijpg389q4n04gqj0vwf"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("cffi" ,sbcl-cffi)
+ ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
+ ("webkitgtk" ,webkitgtk)))
+ (arguments
+ `(#:asd-file "webkit2/cl-webkit2.asd"
+ #:asd-system-name "cl-webkit2"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "webkit2/webkit2.init.lisp"
+ (("libwebkit2gtk" all)
+ (string-append
+ (assoc-ref inputs "webkitgtk") "/lib/" all))))))))
+ (home-page "https://github.com/atlas-engineer/cl-webkit")
+ (synopsis "Binding to WebKitGTK+ for Common Lisp")
+ (description
+ "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
+currently targeting WebKit version 2. The WebKitGTK+ library adds web
+browsing capabilities to an application, leveraging the full power of the
+WebKit browsing engine.")
+ (license license:expat))))
+
+(define-public sbcl-lparallel
+ (package
+ (name "sbcl-lparallel")
+ (version "2.8.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lmj/lparallel/")
+ (commit (string-append "lparallel-" version))))
+ (file-name (git-file-name "lparallel" version))
+ (sha256
+ (base32
+ "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("trivial-garbage" ,sbcl-trivial-garbage)))
+ (home-page "https://lparallel.org/")
+ (synopsis "Parallelism for Common Lisp")
+ (description
+ "@command{lparallel} is a library for parallel programming in Common
+Lisp, featuring:
+
+@itemize
+@item a simple model of task submission with receiving queue,
+@item constructs for expressing fine-grained parallelism,
+@item asynchronous condition handling across thread boundaries,
+@item parallel versions of map, reduce, sort, remove, and many others,
+@item promises, futures, and delayed evaluation constructs,
+@item computation trees for parallelizing interconnected tasks,
+@item bounded and unbounded FIFO queues,
+@item high and low priority tasks,
+@item task killing by category,
+@item integrated timeouts.
+@end itemize\n")
+ (license license:expat)))
+
+(define-public cl-lparallel
+ (sbcl-package->cl-source-package sbcl-lparallel))
+
+(define-public ecl-lparallel
+ (sbcl-package->ecl-package sbcl-lparallel))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 7348719ede..73a17fb21b 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -763,14 +763,14 @@ invoking @command{notifymuch} from the post-new hook.")
(define-public notmuch
(package
(name "notmuch")
- (version "0.27")
+ (version "0.28")
(source (origin
(method url-fetch)
(uri (string-append "https://notmuchmail.org/releases/notmuch-"
version ".tar.gz"))
(sha256
(base32
- "0xh8vq2sa7r07xb3n13drc6gdiqhcgl0pj0za5xj43qkiwpikls0"))))
+ "0dqarmjc8544m2w7bqrqmvsfy55fw82707z3lz9cql8nr777bjmc"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 0df197c659..aa9c7478b7 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -2659,7 +2659,7 @@ to BMP, JPEG or PNG image formats.")
(define-public maxima
(package
(name "maxima")
- (version "5.41.0")
+ (version "5.42.0")
(source
(origin
(method url-fetch)
@@ -2667,7 +2667,7 @@ to BMP, JPEG or PNG image formats.")
version "-source/" name "-" version ".tar.gz"))
(sha256
(base32
- "0x0n81z0s4pl8nwpf7ivlsbvsdphm9w42250g7qdkizl0132by6s"))
+ "0d5pdihvcbwb7r4i4qs5qqgsz46hxlq33qj8is053llrgn9ylpyn"))
(patches (search-patches "maxima-defsystem-mkdir.patch"))))
(build-system gnu-build-system)
(inputs
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 1bd9972862..ac2ed81895 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -3568,7 +3568,7 @@ are a C compiler and glib. Full API documentation and examples are included.")
("fltk" ,fltk)
("libogg" ,libogg)
("libsamplerate" ,libsamplerate)
- ("fluidsynth" ,fluidsynth)
+ ("fluidsynth" ,fluidsynth-1) ;XXX: try using 2.x when updating
("libvorbis" ,libvorbis)
("alsa-lib" ,alsa-lib)
("portaudio" ,portaudio)
diff --git a/gnu/packages/patches/grub-check-error-efibootmgr.patch b/gnu/packages/patches/grub-check-error-efibootmgr.patch
index b2fd160c9a..efeb20f213 100644
--- a/gnu/packages/patches/grub-check-error-efibootmgr.patch
+++ b/gnu/packages/patches/grub-check-error-efibootmgr.patch
@@ -160,7 +160,7 @@ index 5e4cdfd..690f180 100644
/* Try to make this image bootable using the EFI Boot Manager, if available. */
if (!efi_distributor || efi_distributor[0] == '\0')
-@@ -1887,8 +1892,11 @@ main (int argc, char *argv[])
+@@ -1887,7 +1892,10 @@ main (int argc, char *argv[])
efidir_grub_dev->disk->name,
(part ? ",": ""), (part ? : ""));
grub_free (part);
@@ -173,4 +173,25 @@ index 5e4cdfd..690f180 100644
+ strerror (ret));
}
break;
+
+
+Below is a followup to the patch above: the uninitialized variable could lead
+‘grub-install’ to error out when it shouldn’t (seen on an AArch64 box where
+‘grub_install_remove_efi_entries_by_distributor’ didn't have any entry to
+remove):
+
+ grub-install: error: efibootmgr failed to register the boot entry: Unknown error 65535.
+
+See <http://lists.gnu.org/archive/html/bug-grub/2018-10/msg00006.html>.
+
+--- grub-2.02/grub-core/osdep/unix/platform.c 2018-10-17 22:21:53.015284846 +0200
++++ grub-2.02/grub-core/osdep/unix/platform.c 2018-10-17 22:21:55.595271222 +0200
+@@ -85,7 +85,7 @@ grub_install_remove_efi_entries_by_distr
+ pid_t pid = grub_util_exec_pipe ((const char * []){ "efibootmgr", NULL }, &fd);
+ char *line = NULL;
+ size_t len = 0;
+- int rc;
++ int rc = 0;
+ if (!pid)
+ {
diff --git a/gnu/packages/patches/libgxps-CVE-2017-11590.patch b/gnu/packages/patches/libgxps-CVE-2017-11590.patch
deleted file mode 100644
index 9caa79b6f0..0000000000
--- a/gnu/packages/patches/libgxps-CVE-2017-11590.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-Fix CVE-2017-11590:
-
-https://bugzilla.gnome.org/show_bug.cgi?id=785479
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-11590
-
-Patch copied from upstream source repository:
-
-https://git.gnome.org/browse/libgxps/commit/?id=9d5d292055250ed298f3b89dc332d6db4003a031
-
-From 9d5d292055250ed298f3b89dc332d6db4003a031 Mon Sep 17 00:00:00 2001
-From: Marek Kasik <mkasik@redhat.com>
-Date: Wed, 26 Jul 2017 16:23:37 +0200
-Subject: archive: Check for pathname being NULL before dereferencing
-
-Check whether "archive_entry_pathname ()" returns a non-NULL pathname
-before using it to avoid a NULL pointer being dereferenced.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=785479
----
- libgxps/gxps-archive.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/libgxps/gxps-archive.c b/libgxps/gxps-archive.c
-index acf8d7d..e763773 100644
---- a/libgxps/gxps-archive.c
-+++ b/libgxps/gxps-archive.c
-@@ -257,6 +257,7 @@ gxps_archive_initable_init (GInitable *initable,
- GXPSArchive *archive;
- ZipArchive *zip;
- struct archive_entry *entry;
-+ const gchar *pathname;
-
- archive = GXPS_ARCHIVE (initable);
-
-@@ -281,7 +282,9 @@ gxps_archive_initable_init (GInitable *initable,
-
- while (gxps_zip_archive_iter_next (zip, &entry)) {
- /* FIXME: We can ignore directories here */
-- g_hash_table_add (archive->entries, g_strdup (archive_entry_pathname (entry)));
-+ pathname = archive_entry_pathname (entry);
-+ if (pathname != NULL)
-+ g_hash_table_add (archive->entries, g_strdup (pathname));
- archive_read_data_skip (zip->archive);
- }
-
---
-cgit v0.12
-
diff --git a/gnu/packages/patches/libssh-hostname-parser-bug.patch b/gnu/packages/patches/libssh-hostname-parser-bug.patch
index 69f46cbdd6..de2336e86d 100644
--- a/gnu/packages/patches/libssh-hostname-parser-bug.patch
+++ b/gnu/packages/patches/libssh-hostname-parser-bug.patch
@@ -1,31 +1,17 @@
-Fix "Hostname" parsing in OpenSSH config files, as reported
-at <https://red.libssh.org/issues/260>.
-
-From: Niels Ole Salscheider <niels_ole@salscheider-online.de>
-Date: Mon, 8 May 2017 17:36:13 +0200
-Subject: [PATCH] Fix reading of the first parameter
-
-This is a fixup for 7b8b5eb4eac314a3a29be812bef0264c6611f6e7.
-Previously, it would return as long as the parameter was _not_ seen
-before. It also did not handle the case for the unsupported opcode (-1)
+It does not handle the case for the unsupported opcode (-1)
which would cause a segfault when accessing the "seen" array.
----
- src/config.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/config.c b/src/config.c
-index 7c03b27..238a655 100644
+index c5313ec8..72e07639 100644
--- a/src/config.c
+++ b/src/config.c
-@@ -218,8 +218,9 @@ static int ssh_config_parse_line(ssh_session session, const char *line,
+@@ -218,7 +218,8 @@ static int ssh_config_parse_line(ssh_session session, const char *line,
}
opcode = ssh_config_get_opcode(keyword);
- if (*parsing == 1 && opcode != SOC_HOST) {
-- if (seen[opcode] == 0) {
+ if (*parsing == 1 && opcode != SOC_HOST &&
+ opcode > SOC_UNSUPPORTED && opcode < SOC_END) {
-+ if (seen[opcode] == 1) {
+ if (seen[opcode] != 0) {
return 0;
}
- seen[opcode] = 1;
diff --git a/gnu/packages/patches/soundconverter-remove-gconf-dependency.patch b/gnu/packages/patches/soundconverter-remove-gconf-dependency.patch
new file mode 100644
index 0000000000..f065b9a3d4
--- /dev/null
+++ b/gnu/packages/patches/soundconverter-remove-gconf-dependency.patch
@@ -0,0 +1,83 @@
+From: Sebastian Ramacher <sebastian@ramacher.at>
+Date: Fri, 6 Apr 2018 13:25:35 +0200
+Subject: Only fetch profiles if GConf is still available
+
+---
+ bin/soundconverter.py | 1 -
+ soundconverter/gstreamer.py | 44 ++++++++++++++++++++++++--------------------
+ 2 files changed, 24 insertions(+), 21 deletions(-)
+
+diff --git a/bin/soundconverter.py b/bin/soundconverter.py
+index 39055ce..5198443 100644
+--- a/bin/soundconverter.py
++++ b/bin/soundconverter.py
+@@ -66,7 +66,6 @@ def _check_libs():
+ import gi
+ gi.require_version('Gst', '1.0')
+ gi.require_version('Gtk', '3.0')
+- gi.require_version('GConf', '2.0')
+ from gi.repository import GObject
+ # force GIL creation - see https://bugzilla.gnome.org/show_bug.cgi?id=710447
+ import threading
+diff --git a/soundconverter/gstreamer.py b/soundconverter/gstreamer.py
+index 23aaa9b..211b052 100644
+--- a/soundconverter/gstreamer.py
++++ b/soundconverter/gstreamer.py
+@@ -25,7 +25,7 @@ from urllib.parse import urlparse
+ from gettext import gettext as _
+
+ import gi
+-from gi.repository import Gst, Gtk, GObject, GConf, Gio
++from gi.repository import Gst, Gtk, GObject, Gio
+
+ from soundconverter.fileoperations import vfs_encode_filename, file_encode_filename
+ from soundconverter.fileoperations import unquote_filename, vfs_makedirs, vfs_unlink
+@@ -66,25 +66,29 @@ _GCONF_PROFILE_LIST_PATH = "/system/gstreamer/1.0/audio/global/profile_list"
+ audio_profiles_list = []
+ audio_profiles_dict = {}
+
+-_GCONF = GConf.Client.get_default()
+-profiles = _GCONF.all_dirs(_GCONF_PROFILE_LIST_PATH)
+-for name in profiles:
+- if _GCONF.get_bool(_GCONF_PROFILE_PATH + name + "/active"):
+- # get profile
+- description = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/name")
+- extension = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/extension")
+- pipeline = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/pipeline")
+- # check profile validity
+- if not extension or not pipeline:
+- continue
+- if not description:
+- description = extension
+- if description in audio_profiles_dict:
+- continue
+- # store
+- profile = description, extension, pipeline
+- audio_profiles_list.append(profile)
+- audio_profiles_dict[description] = profile
++try:
++ from gi.repository import GConf
++ _GCONF = GConf.Client.get_default()
++ profiles = _GCONF.all_dirs(_GCONF_PROFILE_LIST_PATH)
++ for name in profiles:
++ if _GCONF.get_bool(_GCONF_PROFILE_PATH + name + "/active"):
++ # get profile
++ description = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/name")
++ extension = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/extension")
++ pipeline = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/pipeline")
++ # check profile validity
++ if not extension or not pipeline:
++ continue
++ if not description:
++ description = extension
++ if description in audio_profiles_dict:
++ continue
++ # store
++ profile = description, extension, pipeline
++ audio_profiles_list.append(profile)
++ audio_profiles_dict[description] = profile
++except ImportError:
++ pass
+
+ required_elements = ('decodebin', 'fakesink', 'audioconvert', 'typefind', 'audiorate')
+ for element in required_elements:
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index 7bdf04cb49..db7a9f9d45 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -131,14 +131,14 @@ data as produced by digital cameras.")
(define-public libgphoto2
(package
(name "libgphoto2")
- (version "2.5.18")
+ (version "2.5.19")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gphoto/libgphoto/"
version "/libgphoto2-" version ".tar.bz2"))
(sha256
(base32
- "1v57ayp17j88bj79nl7rf4iyajbxx00kgb4l5k3kbv50gjfvh5sv"))))
+ "0qrcc6kajbfb237paxrl904vvwl7hd8mnqvjw00j6m5qwd93wlk2"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index c2987207f4..2b6a0647fd 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -10131,14 +10131,14 @@ functionality in the command line.")
(define-public python-glances
(package
(name "python-glances")
- (version "2.7.1")
+ (version "3.0.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Glances" version))
(sha256
(base32
- "11jbq40g8alsbirnd4kiagznqg270247i0m8qhi48ldf2i5xppxg"))))
+ "09fxysfp1n16csqvzvawy74qm6a94nvwjf3vcf5gkqp4i6k4vjjy"))))
(build-system python-build-system)
(propagated-inputs
`(("python-psutil" ,python-psutil)))
diff --git a/gnu/packages/regex.scm b/gnu/packages/regex.scm
index c9d9e8a359..c05d819d65 100644
--- a/gnu/packages/regex.scm
+++ b/gnu/packages/regex.scm
@@ -29,7 +29,7 @@
(define-public re2
(package
(name "re2")
- (version "2018-09-01")
+ (version "2018-10-01")
(home-page "https://github.com/google/re2")
(source (origin
(method url-fetch)
@@ -37,7 +37,7 @@
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0hygr88hvy7if1i45m5r6x60zf73439j2fwzw7wwcw9gb01v690l"))))
+ "10fsxsj3yip34hp2zl5rw8h2x2lgnp83fwrh7m0qfd9m99qrf4x3"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 089e4f63f9..816324b279 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -65,40 +65,36 @@
#:use-module (srfi srfi-1))
(define-public libssh
- ;; This commit from the 'v0-7' branch contains 7 memory-management-related
- ;; bug fixes that we'd rather have.
- (let ((commit "239d0f75b5f909174c2ef7fb08d23bcfa6b20ba0")
- (revision "0"))
- (package
- (name "libssh")
- (version (git-version "0.7.5" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.libssh.org/projects/libssh.git")
- (commit commit)))
- (sha256
- (base32
- "01w72w1jsgs9ilj3n1gp6qkmdxr9n74i5h2nipi3x1vzm7bv8na1"))
- (patches (search-patches "libssh-hostname-parser-bug.patch"))
- (file-name (git-file-name name version))))
- (build-system cmake-build-system)
- (outputs '("out" "debug"))
- (arguments
- '(#:configure-flags '("-DWITH_GCRYPT=ON")
-
- ;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite.
- #:tests? #f))
- (inputs `(("zlib" ,zlib)
- ("libgcrypt" ,libgcrypt)))
- (synopsis "SSH client library")
- (description
- "libssh is a C library implementing the SSHv2 and SSHv1 protocol for
-client and server implementations. With libssh, you can remotely execute
-programs, transfer files, and use a secure and transparent tunnel for your
-remote applications.")
- (home-page "https://www.libssh.org")
- (license license:lgpl2.1+))))
+ (package
+ (name "libssh")
+ (version "0.7.6")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.libssh.org/projects/libssh.git")
+ (commit (string-append "libssh-" version))))
+ (patches (search-patches "libssh-hostname-parser-bug.patch"))
+ (sha256
+ (base32
+ "0slwqa36mhyb6brdv2jvb9fxp7rvsv3ziv67kaxx615jxn52l5pa"))
+ (file-name (git-file-name name version))))
+ (build-system cmake-build-system)
+ (outputs '("out" "debug"))
+ (arguments
+ '(#:configure-flags '("-DWITH_GCRYPT=ON")
+
+ ;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite.
+ #:tests? #f))
+ (inputs `(("zlib" ,zlib)
+ ("libgcrypt" ,libgcrypt)))
+ (synopsis "SSH client library")
+ (description
+ "libssh is a C library implementing the SSHv2 and SSHv1 protocol for client
+and server implementations. With libssh, you can remotely execute programs,
+transfer files, and use a secure and transparent tunnel for your remote
+applications.")
+ (home-page "https://www.libssh.org")
+ (license license:lgpl2.1+)))
(define-public libssh2
(package
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index ccbdfc6f61..294d334423 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -4506,3 +4506,248 @@ including:
It also ensures compatibility with the @code{media9} and @code{animate} packages.")
(license license:lppl)))
+
+(define-public texlive-latex-ms
+ (package
+ (name "texlive-latex-ms")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (texlive-ref "latex" "ms"))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0m4wx3yjb5al1qsv995z8fii8xxy96mcfihbnlx43lpgayiwz35s"))))
+ (build-system texlive-build-system)
+ (arguments
+ '(#:tex-directory "latex/ms"
+ #:tex-format "latex"))
+ (home-page "https://ctan.org/pkg/ms")
+ (synopsis "Various LATEX packages by Martin Schröder")
+ (description
+ "A bundle of LATEX packages by Martin Schröder; the collection comprises:
+
+@itemize
+@item @command{count1to}, make use of fixed TEX counters;
+@item @command{everysel}, set commands to execute every time a font is selected;
+@item @command{everyshi}, set commands to execute whenever a page is shipped out;
+@item @command{multitoc}, typeset the table of contents in multiple columns;
+@item @command{prelim2e}, mark typeset pages as preliminary; and
+@item @command{ragged2e}, typeset ragged text and allow hyphenation.
+@end itemize\n")
+ (license license:lppl1.3c+)))
+
+(define-public texlive-latex-needspace
+ (package
+ (name "texlive-latex-needspace")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (texlive-ref "latex" "needspace"))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0kw80f5jh4gdpa2ka815abza3gr5z8b929w0745vrlc59pl0017y"))))
+ (build-system texlive-build-system)
+ (arguments
+ '(#:tex-directory "latex/needspace"
+ #:tex-format "latex"))
+ (inputs
+ `(("texlive-latex-filecontents" ,texlive-latex-filecontents)))
+ (home-page "https://www.ctan.org/pkg/needspace")
+ (synopsis "Insert pagebreak if not enough space")
+ (description
+ "Provides commands to disable pagebreaking within a given vertical
+space. If there is not enough space between the command and the bottom of the
+page, a new page will be started.")
+ (license license:lppl)))
+
+(define-public texlive-latex-eukdate
+ (package
+ (name "texlive-latex-eukdate")
+ (version (number->string %texlive-revision))
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/latex/eukdate"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "18xan116l8w47v560bkw6nbhkrml7g04xrlzk3jrpc7qsyf3n5fz"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((target (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/latex/eukdate")))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs "source") target)
+ #t))))
+ (home-page "https://www.ctan.org/pkg/eukdate")
+ (synopsis "UK format dates, with weekday")
+ (description
+ "The package is used to change the format of @code{\\today}’s date,
+including the weekday, e.g., \"Saturday, 26 June 2008\", the 'UK format', which
+is preferred in many parts of the world, as distinct from that which is used in
+@code{\\maketitle} of the article class, \"June 26, 2008\", the 'US format'.")
+ (license license:lppl)))
+
+(define-public texlive-generic-ulem
+ (package
+ (name "texlive-generic-ulem")
+ (version (number->string %texlive-revision))
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/generic/ulem"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1rzdniqq9zk39w8ch8ylx3ywh2mj87s4ivchrsk2b8nx06jyn797"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((target (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/generic/ulem")))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs "source") target)
+ #t))))
+ (home-page "https://www.ctan.org/pkg/ulem")
+ (synopsis "Underline text in TeX")
+ (description
+ "The package provides an @code{\\ul} (underline) command which will break
+over line ends; this technique may be used to replace @code{\\em} (both in that
+form and as the @code{\\emph} command), so as to make output look as if it comes
+from a typewriter. The package also offers double and wavy underlining, and
+striking out (line through words) and crossing out (/// over words).")
+ (license license:lppl1.3c+)))
+
+(define-public texlive-latex-pgf
+ (package
+ (name "texlive-latex-pgf")
+ (version (number->string %texlive-revision))
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/latex/pgf"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1dq8p10pz8wn0vx412m7d7d5gj1syxly3yqdqvf7lv2xl8zndn5h"))))
+ (build-system trivial-build-system)
+ (native-inputs
+ `(("texlive-latex-pgf-generic"
+ ,(origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/generic/pgf"))
+ (revision %texlive-revision)))
+ (file-name (string-append "texlive-latex-pgf-generic" version "-checkout"))
+ (sha256
+ (base32
+ "0xkxw26sjzr5npjpzpr28yygwdbhzpdd0hsk80gjpidhcxmz393i"))))))
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((target-generic (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/generic/pgf"))
+ (target-latex (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/tex/latex/pgf")))
+ (mkdir-p target-generic)
+ (mkdir-p target-latex)
+ (copy-recursively (assoc-ref %build-inputs "texlive-latex-pgf-generic") target-generic)
+ (copy-recursively (assoc-ref %build-inputs "source") target-latex)
+ #t))))
+ (home-page "https://www.ctan.org/pkg/tikz")
+ (synopsis "Create PostScript and PDF graphics in TeX")
+ (description
+ "PGF is a macro package for creating graphics. It is platform- and
+format-independent and works together with the most important TeX backend
+drivers, including pdfTeX and dvips. It comes with a user-friendly syntax layer
+called TikZ.
+
+Its usage is similar to pstricks and the standard picture environment. PGF
+works with plain (pdf-)TeX, (pdf-)LaTeX, and ConTeXt. Unlike pstricks, it can
+produce either PostScript or PDF output.")
+ (license license:lppl1.3c+)))
+
+(define-public texlive-latex-koma-script
+ (package
+ (name "texlive-latex-koma-script")
+ (version (number->string %texlive-revision))
+ (source (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url (string-append "svn://www.tug.org/texlive/tags/"
+ %texlive-tag "/Master/texmf-dist/"
+ "/tex/latex/koma-script"))
+ (revision %texlive-revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1g8qg796hc6s092islnybaxs115ldsqwp2vxkk3gpy6vh7wc9r50"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils)
+ (ice-9 match))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (ice-9 match))
+ (let ((root (string-append (assoc-ref %outputs "out")
+ "/share/texmf-dist/"))
+ (pkgs '(("source" . "tex/latex/koma-script"))))
+ (for-each (match-lambda
+ ((pkg . dir)
+ (let ((target (string-append root dir)))
+ (mkdir-p target)
+ (copy-recursively (assoc-ref %build-inputs pkg)
+ target))))
+ pkgs)
+ #t))))
+ (home-page "https://www.ctan.org/pkg/koma-script")
+ (synopsis "Bundle of versatile classes and packages")
+ (description
+ "The KOMA-Script bundle provides replacements for the article, report, and
+book classes with emphasis on typography and versatility. There is also a
+letter class.
+
+The bundle also offers:
+
+@itemize
+@item a package for calculating type areas in the way laid down by the
+typographer Jan Tschichold,
+@item packages for easily changing and defining page styles,
+@item a package scrdate for getting not only the current date but also the name
+of the day, and
+@item a package scrtime for getting the current time.
+@end itemize
+
+All these packages may be used not only with KOMA-Script classes but also with
+the standard classes.
+
+Since every package has its own version number, the version number quoted only
+refers to the version of scrbook, scrreprt, scrartcl, scrlttr2 and
+typearea (which are the main parts of the bundle).")
+ (license license:lppl1.3+)))
diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm
index 1bc947844a..d8af54ce57 100644
--- a/gnu/packages/tmux.scm
+++ b/gnu/packages/tmux.scm
@@ -34,7 +34,7 @@
(define-public tmux
(package
(name "tmux")
- (version "2.7")
+ (version "2.8")
(source (origin
(method url-fetch)
(uri (string-append
@@ -42,7 +42,7 @@
version "/tmux-" version ".tar.gz"))
(sha256
(base32
- "0lnlhnafvi5700afr69g6gr62pblnd440jj0hxdbrxhk0c87vvcx"))))
+ "1fm22wva2znkcs5jczrnlxrpzsk2jlwdwy4dhzzyrbsgccsz6svz"))))
(build-system gnu-build-system)
(inputs
`(("libevent" ,libevent)
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 528d117e29..14a18c8c35 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -427,7 +427,7 @@ everything from small to very large projects with speed and efficiency.")
(define-public libgit2
(package
(name "libgit2")
- (version "0.26.6")
+ (version "0.26.7")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/libgit2/libgit2/"
@@ -435,7 +435,7 @@ everything from small to very large projects with speed and efficiency.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0qjn1v5q282v8jih8rqjdqxr5v4n4manr0c8i3nnrf6sxd3xssbn"))
+ "1vy4dnbvhcq3pw8n8zz6clnsv2xnkrichl8k96w3lb6yyk0lln35"))
(patches (search-patches "libgit2-mtime-0.patch"))
;; Remove bundled software.
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index ab57ee4b45..a6930abfda 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1268,7 +1268,7 @@ access to mpv's powerful playback capabilities.")
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2018.09.18")
+ (version "2018.10.05")
(source (origin
(method url-fetch)
(uri (string-append "https://yt-dl.org/downloads/"
@@ -1276,7 +1276,7 @@ access to mpv's powerful playback capabilities.")
version ".tar.gz"))
(sha256
(base32
- "0mlsdmddmyy3xaqy366k48xds14g17l81al3kglndjkbrrji63sb"))))
+ "1iq02kwxdgh07bf0w0fvbsjbdshs4kja35gy8m70ji9cj10l1mbw"))))
(build-system python-build-system)
(arguments
;; The problem here is that the directory for the man page and completion
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index 2474d640d7..ff1088d2e1 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -163,7 +163,7 @@ interpretation of the specifications for these languages.")
(define-public vulkan-headers
(package
(name "vulkan-headers")
- (version "1.1.82.0")
+ (version "1.1.85.0")
(source
(origin
(method url-fetch)
@@ -172,7 +172,7 @@ interpretation of the specifications for these languages.")
"archive/sdk-" version ".tar.gz"))
(sha256
(base32
- "1rbra47f1dkw5bjzvm0k9s2f89c2x80j904ply4bxks7sl3xlwyz"))))
+ "166hqqb97kjg6h9vp8yxb1cq02i1kqaxvl693482gf8v21fl7ink"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; No tests.
@@ -195,7 +195,7 @@ interpretation of the specifications for these languages.")
"archive/sdk-" version ".tar.gz"))
(sha256
(base32
- "032vfysb8mi19c2lx08vc6k9mbzxmiy17wp7a22vpgwwv69kxkc6"))))
+ "04d53ynlc0ww8r67hv4sxwg5sirjhpr1laaa9hc6j4niliw0166n"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;FIXME: 23/39 tests fail. Try "tests/run_all_tests.sh".
@@ -251,7 +251,7 @@ and the ICD.")
"archive/sdk-" version ".tar.gz"))
(sha256
(base32
- "175qhfg9lxxfm5zks6jxaybcxamwd9q5kvjq8ikf2dbmskgybr92"))))
+ "0r26px9rh09giddajlmafv21rx1la1y3bbnjgnpai8aw98wvq9mm"))))
(build-system cmake-build-system)
(inputs
`(("glslang" ,glslang)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 7c58770de7..68d497e955 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -17,6 +17,7 @@
;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
+;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -233,6 +234,46 @@ from scratch. i3 is primarily targeted at advanced users and
developers.")
(license license:bsd-3)))
+(define-public i3blocks
+ (let ((commit "37f23805ff886639163fbef8aedba71c8071eff8")
+ (revision "1"))
+ (package
+ (name "i3blocks")
+ (version (string-append "1.4-" revision "."
+ (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/vivien/i3blocks.git")
+ (commit commit)))
+ (sha256
+ (base32
+ "15rnrcajzyrmhlz1a21qqsjlj3dkib70806dlb386fliylc2kisb"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'autogen
+ (lambda _ (invoke "sh" "autogen.sh")))
+ (add-after 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (man1 (string-append out "/share/man/man1")))
+ (install-file "docs/i3blocks.1" man1)
+ #t))))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/vivien/i3blocks")
+ (synopsis "Minimalist scheduler for status bar scripts")
+ (description "i3blocks executes your command lines and generates a
+status line from their output. The generated line is meant to be displayed by
+the i3 window manager through its i3bar component, as an alternative to
+i3status.")
+ (license license:gpl3+))))
+
(define-public perl-anyevent-i3
(package
(name "perl-anyevent-i3")
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 1e8c02c02a..e038f97683 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
@@ -996,7 +996,7 @@ as expected.")))
(elogind-service)
(dbus-service)
- (ntp-service)
+ (service ntp-service-type)
x11-socket-directory-service
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index c809b4a4a4..bfa6e297e6 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -53,6 +53,7 @@
static-networking-service-type)
#:export (%facebook-host-aliases
dhcp-client-service
+ dhcp-client-service-type
dhcpd-service-type
dhcpd-configuration
@@ -202,9 +203,10 @@ fe80::1%lo0 apps.facebook.com\n")
"-pf" #$pid-file ifaces))))
(and (zero? (cdr (waitpid pid)))
(read-pid-file #$pid-file)))))
- (stop #~(make-kill-destructor))))))
+ (stop #~(make-kill-destructor))))
+ isc-dhcp))
-(define* (dhcp-client-service #:key (dhcp isc-dhcp))
+(define* (dhcp-client-service #:key (dhcp isc-dhcp)) ;deprecated
"Return a service that runs @var{dhcp}, a Dynamic Host Configuration
Protocol (DHCP) client, on all the non-loopback network interfaces."
(service dhcp-client-service-type dhcp))
@@ -295,7 +297,8 @@ Protocol (DHCP) client, on all the non-loopback network interfaces."
ntp-configuration?
(ntp ntp-configuration-ntp
(default ntp))
- (servers ntp-configuration-servers)
+ (servers ntp-configuration-servers
+ (default %ntp-servers))
(allow-large-adjustment? ntp-allow-large-adjustment?
(default #f)))
@@ -368,9 +371,10 @@ restrict -6 ::1\n"))
(description
"Run the @command{ntpd}, the Network Time Protocol (NTP)
daemon of the @uref{http://www.ntp.org, Network Time Foundation}. The daemon
-will keep the system clock synchronized with that of the given servers.")))
+will keep the system clock synchronized with that of the given servers.")
+ (default-value (ntp-configuration))))
-(define* (ntp-service #:key (ntp ntp)
+(define* (ntp-service #:key (ntp ntp) ;deprecated
(servers %ntp-servers)
allow-large-adjustment?)
"Return a service that runs the daemon from @var{ntp}, the
@@ -1062,10 +1066,10 @@ networking."))))
#~("-u")
#~())
#$@(if interface
- #~(string-append "-i" #$interface)
+ #~((string-append "-i" #$interface))
#~())
#$@(if config-file
- #~(string-append "-c" #$config-file)
+ #~((string-append "-c" #$config-file))
#~())
#$@extra-options)
#:pid-file #$pid-file))
diff --git a/gnu/system/examples/bare-bones.tmpl b/gnu/system/examples/bare-bones.tmpl
index b763258e52..889dcabe64 100644
--- a/gnu/system/examples/bare-bones.tmpl
+++ b/gnu/system/examples/bare-bones.tmpl
@@ -44,7 +44,7 @@
;; Add services to the baseline: a DHCP client and
;; an SSH server.
- (services (cons* (dhcp-client-service)
+ (services (cons* (service dhcp-client-service-type)
(service openssh-service-type
(openssh-configuration
(port-number 2222)))
diff --git a/gnu/system/examples/beaglebone-black.tmpl b/gnu/system/examples/beaglebone-black.tmpl
index d1130c76b6..efef682e3a 100644
--- a/gnu/system/examples/beaglebone-black.tmpl
+++ b/gnu/system/examples/beaglebone-black.tmpl
@@ -45,7 +45,7 @@
;; Globally-installed packages.
(packages (cons* screen openssh %base-packages))
- (services (cons* (dhcp-client-service)
+ (services (cons* (service dhcp-client-service-type)
;; mingetty does not work on serial lines.
;; Use agetty with board-specific serial parameters.
(agetty-service
diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm
index f800c3b546..63f544cec9 100644
--- a/gnu/system/shadow.scm
+++ b/gnu/system/shadow.scm
@@ -181,7 +181,7 @@ fi
alias ls='ls -p --color=auto'
alias ll='ls -l'
alias grep='grep --color=auto'\n"))
- (zlogin (plain-file "zlogin" "\
+ (zprofile (plain-file "zprofile" "\
# Honor system-wide environment variables
source /etc/profile\n"))
(guile-wm (computed-file "guile-wm" copy-guile-wm))
@@ -197,7 +197,10 @@ set debug-file-directory ~/.guix-profile/lib/debug
set auto-load safe-path /gnu/store/*/lib\n")))
`((".bash_profile" ,profile)
(".bashrc" ,bashrc)
- (".zlogin" ,zlogin)
+ ;; Zsh sources ~/.zprofile before ~/.zshrc, and it sources ~/.zlogin
+ ;; after ~/.zshrc. To avoid interfering with any customizations a user
+ ;; may have made in their ~/.zshrc, put this in .zprofile, not .zlogin.
+ (".zprofile" ,zprofile)
(".nanorc" ,(plain-file "nanorc" "\
# Include all the syntax highlighting modules.
include /run/current-system/profile/share/nano/*.nanorc\n"))
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index f97581de33..896d4a8f88 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -673,7 +673,7 @@ non-ASCII names from /tmp.")
(name-service-switch %mdns-host-lookup-nss)
(services (cons* (avahi-service #:debug? #t)
(dbus-service)
- (dhcp-client-service) ;needed for multicast
+ (service dhcp-client-service-type) ;needed for multicast
;; Enable heavyweight debugging output.
(modify-services (operating-system-user-services
diff --git a/gnu/tests/databases.scm b/gnu/tests/databases.scm
index 5c8ca85c13..e0544bbcd2 100644
--- a/gnu/tests/databases.scm
+++ b/gnu/tests/databases.scm
@@ -35,7 +35,7 @@
(define %memcached-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service memcached-service-type)))
(define* (run-memcached-test #:optional (port 11211))
@@ -130,7 +130,7 @@
(operating-system
(inherit
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service mongodb-service-type)))
(packages (cons* mongodb
%base-packages))))
diff --git a/gnu/tests/dict.scm b/gnu/tests/dict.scm
index dd60ffd464..c50e3cd6da 100644
--- a/gnu/tests/dict.scm
+++ b/gnu/tests/dict.scm
@@ -34,7 +34,7 @@
(define %dicod-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service dicod-service-type
(dicod-configuration
(interfaces '("0.0.0.0"))
diff --git a/gnu/tests/mail.scm b/gnu/tests/mail.scm
index 5677969fac..33aa4d3437 100644
--- a/gnu/tests/mail.scm
+++ b/gnu/tests/mail.scm
@@ -36,7 +36,7 @@
(define %opensmtpd-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service opensmtpd-service-type
(opensmtpd-configuration
(config-file
@@ -155,7 +155,7 @@ accept from any for local deliver to mbox
(define %exim-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service mail-aliases-service-type '())
(service exim-service-type
(exim-configuration
@@ -283,7 +283,7 @@ acl_check_data:
(define %dovecot-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(dovecot-service #:config
(dovecot-configuration
(disable-plaintext-auth? #f)
diff --git a/gnu/tests/messaging.scm b/gnu/tests/messaging.scm
index f5f99b9f56..36afb987af 100644
--- a/gnu/tests/messaging.scm
+++ b/gnu/tests/messaging.scm
@@ -35,7 +35,7 @@
"Run a test of an OS running XMPP-SERVICE, which writes its PID to PID-FILE."
(define os
(marionette-operating-system
- (simple-operating-system (dhcp-client-service)
+ (simple-operating-system (service dhcp-client-service-type)
xmpp-service)
#:imported-modules '((gnu services herd))))
@@ -167,7 +167,7 @@
(define (run-bitlbee-test)
(define os
(marionette-operating-system
- (simple-operating-system (dhcp-client-service)
+ (simple-operating-system (service dhcp-client-service-type)
(service bitlbee-service-type
(bitlbee-configuration
(interface "0.0.0.0"))))
diff --git a/gnu/tests/monitoring.scm b/gnu/tests/monitoring.scm
index 67899987ce..3320a19a77 100644
--- a/gnu/tests/monitoring.scm
+++ b/gnu/tests/monitoring.scm
@@ -85,7 +85,7 @@
(define %prometheus-node-exporter-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service prometheus-node-exporter-service-type
(prometheus-node-exporter-configuration))))
diff --git a/gnu/tests/networking.scm b/gnu/tests/networking.scm
index ceba7f7d5d..9f12a4ae8d 100644
--- a/gnu/tests/networking.scm
+++ b/gnu/tests/networking.scm
@@ -39,7 +39,7 @@
(define %inetd-os
;; Operating system with 2 inetd services.
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service inetd-service-type
(inetd-configuration
(entries (list
@@ -463,7 +463,7 @@ COMMIT
(define os
(marionette-operating-system
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service inetd-service-type
(inetd-configuration
(entries (list
diff --git a/gnu/tests/nfs.scm b/gnu/tests/nfs.scm
index 140f03779b..7ef9f1f7bf 100644
--- a/gnu/tests/nfs.scm
+++ b/gnu/tests/nfs.scm
@@ -55,7 +55,7 @@
(services (cons*
(service rpcbind-service-type
(rpcbind-configuration))
- (dhcp-client-service)
+ (service dhcp-client-service-type)
%base-services))))
(define (run-nfs-test name socket)
diff --git a/gnu/tests/rsync.scm b/gnu/tests/rsync.scm
index a6f8fa2bd1..096580022f 100644
--- a/gnu/tests/rsync.scm
+++ b/gnu/tests/rsync.scm
@@ -111,7 +111,7 @@ PORT."
;; Return operating system under test.
(let ((base-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service rsync-service-type))))
(operating-system
(inherit base-os)
diff --git a/gnu/tests/ssh.scm b/gnu/tests/ssh.scm
index 2e40122add..e5cd439cdf 100644
--- a/gnu/tests/ssh.scm
+++ b/gnu/tests/ssh.scm
@@ -39,7 +39,7 @@ empty-password logins.
When SFTP? is true, run an SFTP server test."
(define os
(marionette-operating-system
- (simple-operating-system (dhcp-client-service) ssh-service)
+ (simple-operating-system (service dhcp-client-service-type) ssh-service)
#:imported-modules '((gnu services herd)
(guix combinators))))
(define vm
diff --git a/gnu/tests/version-control.scm b/gnu/tests/version-control.scm
index 4409b8a12b..230aa9edf9 100644
--- a/gnu/tests/version-control.scm
+++ b/gnu/tests/version-control.scm
@@ -92,7 +92,7 @@
;; Operating system under test.
(let ((base-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service cgit-service-type
(cgit-configuration
(nginx %cgit-configuration-nginx)))
@@ -237,7 +237,7 @@ HTTP-PORT."
(define %git-http-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service fcgiwrap-service-type)
(service nginx-service-type %git-nginx-configuration)
%test-repository-service))
@@ -328,7 +328,7 @@ HTTP-PORT."
(define %gitolite-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service openssh-service-type)
(service gitolite-service-type
(gitolite-configuration
diff --git a/gnu/tests/virtualization.scm b/gnu/tests/virtualization.scm
index c2939355b2..fbdec20805 100644
--- a/gnu/tests/virtualization.scm
+++ b/gnu/tests/virtualization.scm
@@ -32,7 +32,7 @@
(define %libvirt-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(dbus-service)
(polkit-service)
(service libvirt-service-type)))
diff --git a/gnu/tests/web.scm b/gnu/tests/web.scm
index 2e209fee97..319655396a 100644
--- a/gnu/tests/web.scm
+++ b/gnu/tests/web.scm
@@ -125,7 +125,7 @@ HTTP-PORT."
(define %httpd-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service httpd-service-type
(httpd-configuration
(config
@@ -154,7 +154,7 @@ HTTP-PORT."
(define %nginx-os
;; Operating system under test.
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service nginx-service-type
(nginx-configuration
(log-directory "/var/log/nginx")
@@ -188,7 +188,7 @@ sub vcl_synth {
(define %varnish-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
;; Pretend to be a web server that serves %index.html-contents.
(service varnish-service-type
(varnish-configuration
@@ -237,7 +237,7 @@ echo(\"Computed by php:\".((string)(2+3)));
(define %php-fpm-os
;; Operating system under test.
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service php-fpm-service-type)
(service nginx-service-type
(nginx-configuration
@@ -392,7 +392,7 @@ HTTP-PORT, along with php-fpm."
(define %hpcguix-web-os
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service hpcguix-web-service-type
(hpcguix-web-configuration
(specs %hpcguix-web-specs)))))
@@ -407,7 +407,7 @@ HTTP-PORT, along with php-fpm."
(define %tailon-os
;; Operating system under test.
(simple-operating-system
- (dhcp-client-service)
+ (service dhcp-client-service-type)
(service tailon-service-type
(tailon-configuration
(config-file
diff --git a/guix/build-system/python.scm b/guix/build-system/python.scm
index ffed837313..b753940bad 100644
--- a/guix/build-system/python.scm
+++ b/guix/build-system/python.scm
@@ -50,7 +50,7 @@
"Return a URI string for the Python package hosted on the Python Package
Index (PyPI) corresponding to NAME and VERSION. EXTENSION is the file name
extension, such as '.tar.gz'."
- (string-append "https://pypi.io/packages/source/"
+ (string-append "https://pypi.org/packages/source/"
(string-take name 1) "/" name "/"
name "-" version extension))
diff --git a/guix/gexp.scm b/guix/gexp.scm
index 770b79e012..f7def5862b 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -438,6 +438,14 @@ This is the declarative counterpart of 'gexp->file'."
(base file-append-base) ;<package> | <derivation> | ...
(suffix file-append-suffix)) ;list of strings
+(define (write-file-append file port)
+ (match file
+ (($ <file-append> base suffix)
+ (format port "#<file-append ~s ~s>" base
+ (string-join suffix)))))
+
+(set-record-type-printer! <file-append> write-file-append)
+
(define (file-append base . suffix)
"Return a <file-append> object that expands to the concatenation of BASE and
SUFFIX."
diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm
index 87b047bdac..3a20fc4b9b 100644
--- a/guix/import/pypi.scm
+++ b/guix/import/pypi.scm
@@ -330,7 +330,7 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE."
(define (pypi-url? url)
(or (string-prefix? "https://pypi.org/" url)
(string-prefix? "https://pypi.python.org/" url)
- (string-prefix? "https://pypi.io/packages" url)))
+ (string-prefix? "https://pypi.org/packages" url)))
(let ((source-url (and=> (package-source package) origin-uri))
(fetch-method (and=> (package-source package) origin-method)))
diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index fb3c50521d..b7b4e22bbe 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -198,8 +198,11 @@ added to the pack."
(with-directory-excursion %root
(exit
(zero? (apply system* "tar"
- "-I"
- (string-join '#+(compressor-command compressor))
+ #+@(if (compressor-command compressor)
+ #~("-I"
+ (string-join
+ '#+(compressor-command compressor)))
+ #~())
"--format=gnu"
;; Avoid non-determinism in the archive. Use
diff --git a/guix/tests.scm b/guix/tests.scm
index 06e9f8da0b..bcf9b990e5 100644
--- a/guix/tests.scm
+++ b/guix/tests.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -17,6 +17,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guix tests)
+ #:use-module ((guix config) #:select (%storedir %localstatedir))
#:use-module (guix store)
#:use-module (guix derivations)
#:use-module (guix packages)
@@ -30,6 +31,7 @@
#:use-module (ice-9 binary-ports)
#:use-module (web uri)
#:export (open-connection-for-tests
+ with-external-store
random-text
random-bytevector
file=?
@@ -74,6 +76,39 @@
store)))
+(define (call-with-external-store proc)
+ "Call PROC with an open connection to the external store or #f it there is
+no external store to talk to."
+ (parameterize ((%daemon-socket-uri
+ (string-append %localstatedir
+ "/guix/daemon-socket/socket"))
+ (%store-prefix %storedir))
+ (define store
+ (catch #t
+ (lambda ()
+ (open-connection))
+ (const #f)))
+
+ (dynamic-wind
+ (const #t)
+ (lambda ()
+ ;; Since we're using a different store we must clear the
+ ;; package-derivation cache.
+ (hash-clear! (@@ (guix packages) %derivation-cache))
+
+ (proc store))
+ (lambda ()
+ (when store
+ (close-connection store))))))
+
+(define-syntax-rule (with-external-store store exp ...)
+ "Evaluate EXP with STORE bound to the external store rather than the
+temporary test store, or #f if there is no external store to talk to.
+
+This is meant to be used for tests that need to build packages that would be
+too expensive to build entirely in the test store."
+ (call-with-external-store (lambda (store) exp ...)))
+
(define (random-seed)
(or (and=> (getenv "GUIX_TESTS_RANDOM_SEED")
number->string)
diff --git a/tests/guix-pack.sh b/tests/guix-pack.sh
index bf367fa429..cd721a60e9 100644
--- a/tests/guix-pack.sh
+++ b/tests/guix-pack.sh
@@ -1,5 +1,6 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
+# Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
#
# This file is part of GNU Guix.
#
@@ -28,26 +29,33 @@ fi
guix pack --version
-# FIXME: Starting from commit 66e9944e078cbb9e0d618377dd6df6e639640efa,
-# '--bootstrap' is mostly ineffective since 'guix pack' produces derivations
-# that refer to guile-sqlite3 and libgcrypt. For now we just skip the test.
-exit 77
+# Starting from commit 66e9944e078cbb9e0d618377dd6df6e639640efa, 'guix pack'
+# produces derivations that refer to guile-sqlite3 and libgcrypt. To make
+# that relatively inexpensive, run the test in the user's global store if
+# possible, on the grounds that binaries may already be there or can be built
+# or downloaded inexpensively.
-# Use --no-substitutes because we need to verify we can do this ourselves.
-GUIX_BUILD_OPTIONS="--no-substitutes"
-export GUIX_BUILD_OPTIONS
+NIX_STORE_DIR="`guile -c '(use-modules (guix config))(display %storedir)'`"
+localstatedir="`guile -c '(use-modules (guix config))(display %localstatedir)'`"
+GUIX_DAEMON_SOCKET="$localstatedir/guix/daemon-socket/socket"
+export NIX_STORE_DIR GUIX_DAEMON_SOCKET
+
+if ! guile -c '(use-modules (guix)) (exit (false-if-exception (open-connection)))'
+then
+ exit 77
+fi
# Build a tarball with no compression.
-guix pack --compression=none --bootstrap guile-bootstrap
+guix pack --compression=none guile-bootstrap
# Build a tarball (with compression). Check that '-e' works as well.
-out1="`guix pack --bootstrap guile-bootstrap`"
-out2="`guix pack --bootstrap -e '(@ (gnu packages bootstrap) %bootstrap-guile)'`"
+out1="`guix pack guile-bootstrap`"
+out2="`guix pack -e '(@ (gnu packages bootstrap) %bootstrap-guile)'`"
test -n "$out1"
test "$out1" = "$out2"
# Build a tarball with a symlink.
-the_pack="`guix pack --bootstrap -S /opt/gnu/bin=bin guile-bootstrap`"
+the_pack="`guix pack -S /opt/gnu/bin=bin guile-bootstrap`"
# Try to extract it. Note: we cannot test whether /opt/gnu/bin/guile itself
# exists because /opt/gnu/bin may be an absolute symlink to a store item that
diff --git a/tests/guix-system.sh b/tests/guix-system.sh
index a129efdfcb..23d2da4903 100644
--- a/tests/guix-system.sh
+++ b/tests/guix-system.sh
@@ -153,8 +153,8 @@ cat > "$tmpfile" <<EOF
(operating-system
$OS_BASE
- (services (cons* (dhcp-client-service)
- (dhcp-client-service) ;twice!
+ (services (cons* (service dhcp-client-service-type)
+ (service dhcp-client-service-type) ;twice!
%base-services)))
EOF
diff --git a/tests/pack.scm b/tests/pack.scm
index c57c6848ff..7f867894c2 100644
--- a/tests/pack.scm
+++ b/tests/pack.scm
@@ -29,15 +29,12 @@
#:use-module (gnu packages bootstrap)
#:use-module (srfi srfi-64))
-(define %store
- (open-connection-for-tests))
-
;; Globally disable grafts because they can trigger early builds.
(%graft? #f)
-(define-syntax-rule (test-assertm name exp)
+(define-syntax-rule (test-assertm name store exp)
(test-assert name
- (run-with-store %store exp
+ (run-with-store store exp
#:guile-for-build (%guile-for-build))))
(define %gzip-compressor
@@ -51,37 +48,43 @@
(test-begin "pack")
-;; FIXME: The following test would rebuild the world (and likely fail) as a
-;; consequence of commit c45477d2a1a651485feede20fe0f3d15aec48b39 (and related
-;; changes) that made guile-sqlite3 a dependency of the derivation.
-;; See <https://bugs.gnu.org/32184>.
-(test-skip 1)
+;; The following test needs guile-sqlite3, libgcrypt, etc. as a consequence of
+;; commit c45477d2a1a651485feede20fe0f3d15aec48b39 and related changes. Thus,
+;; run it on the user's store, if it's available, on the grounds that these
+;; dependencies may be already there, or we can get substitutes or build them
+;; quite inexpensively; see <https://bugs.gnu.org/32184>.
-(test-assertm "self-contained-tarball"
- (mlet* %store-monad
- ((profile (profile-derivation (packages->manifest
- (list %bootstrap-guile))
- #:hooks '()
- #:locales? #f))
- (tarball (self-contained-tarball "pack" profile
- #:symlinks '(("/bin/Guile"
- -> "bin/guile"))
- #:compressor %gzip-compressor
- #:archiver %tar-bootstrap))
- (check (gexp->derivation
- "check-tarball"
- #~(let ((bin (string-append "." #$profile "/bin")))
- (setenv "PATH"
- (string-append #$%tar-bootstrap "/bin"))
- (system* "tar" "xvf" #$tarball)
- (mkdir #$output)
- (exit
- (and (file-exists? (string-append bin "/guile"))
- (string=? (string-append #$%bootstrap-guile "/bin")
- (readlink bin))
- (string=? (string-append ".." #$profile
- "/bin/guile")
- (readlink "bin/Guile"))))))))
- (built-derivations (list check))))
+(with-external-store store
+ (unless store (tests-skip 1))
+ (test-assertm "self-contained-tarball" store
+ (mlet* %store-monad
+ ((profile (profile-derivation (packages->manifest
+ (list %bootstrap-guile))
+ #:hooks '()
+ #:locales? #f))
+ (tarball (self-contained-tarball "pack" profile
+ #:symlinks '(("/bin/Guile"
+ -> "bin/guile"))
+ #:compressor %gzip-compressor
+ #:archiver %tar-bootstrap))
+ (check (gexp->derivation
+ "check-tarball"
+ #~(let ((bin (string-append "." #$profile "/bin")))
+ (setenv "PATH"
+ (string-append #$%tar-bootstrap "/bin"))
+ (system* "tar" "xvf" #$tarball)
+ (mkdir #$output)
+ (exit
+ (and (file-exists? (string-append bin "/guile"))
+ (string=? (string-append #$%bootstrap-guile "/bin")
+ (readlink bin))
+ (string=? (string-append ".." #$profile
+ "/bin/guile")
+ (readlink "bin/Guile"))))))))
+ (built-derivations (list check)))))
(test-end)
+
+;; Local Variables:
+;; eval: (put 'test-assertm 'scheme-indent-function 2)
+;; End:
diff --git a/tests/pypi.scm b/tests/pypi.scm
index 616ec191f5..6daa44a6e7 100644
--- a/tests/pypi.scm
+++ b/tests/pypi.scm
@@ -81,7 +81,7 @@ baz > 13.37")
(dummy-package "foo"
(source (dummy-origin
(uri
- "https://pypi.io/packages/source/p/psutil/psutil-4.3.0.tar.gz"))))))
+ "https://pypi.org/packages/source/p/psutil/psutil-4.3.0.tar.gz"))))))
(test-equal "guix-package->pypi-name, new URL style"
"certbot"