summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-06-27 23:33:48 +0200
committerLudovic Courtès <ludo@gnu.org>2019-06-27 23:33:48 +0200
commit5cc1075a76392666d3d733837f5c6252b1e48002 (patch)
treeaff2a303881a6fe53021a6e78a767958e608719b
parent9c2563a80b6f1d8fb8677f5314e6180ea9916aa5 (diff)
parentc30d117822a8ca26cd8c06c0a3974955bef68eac (diff)
Merge branch 'master' into core-updates
-rw-r--r--build-aux/compile-all.scm59
-rw-r--r--doc/guix.texi34
-rw-r--r--gnu/build/accounts.scm14
-rw-r--r--gnu/build/linux-container.scm16
-rw-r--r--gnu/local.mk10
-rw-r--r--gnu/packages.scm8
-rw-r--r--gnu/packages/admin.scm4
-rw-r--r--gnu/packages/algebra.scm47
-rw-r--r--gnu/packages/android.scm12
-rw-r--r--gnu/packages/apl.scm8
-rw-r--r--gnu/packages/astronomy.scm99
-rw-r--r--gnu/packages/bash.scm8
-rw-r--r--gnu/packages/bioconductor.scm24
-rw-r--r--gnu/packages/bioinformatics.scm12
-rw-r--r--gnu/packages/calcurse.scm4
-rw-r--r--gnu/packages/check.scm11
-rw-r--r--gnu/packages/chromium.scm5
-rw-r--r--gnu/packages/databases.scm22
-rw-r--r--gnu/packages/disk.scm13
-rw-r--r--gnu/packages/emacs-xyz.scm541
-rw-r--r--gnu/packages/emulators.scm4
-rw-r--r--gnu/packages/enchant.scm5
-rw-r--r--gnu/packages/finance.scm4
-rw-r--r--gnu/packages/freedesktop.scm4
-rw-r--r--gnu/packages/game-development.scm34
-rw-r--r--gnu/packages/games.scm73
-rw-r--r--gnu/packages/genealogy.scm112
-rw-r--r--gnu/packages/geo.scm33
-rw-r--r--gnu/packages/gl.scm25
-rw-r--r--gnu/packages/gnome.scm15
-rw-r--r--gnu/packages/gnupg.scm18
-rw-r--r--gnu/packages/gnuzilla.scm4
-rw-r--r--gnu/packages/gtk.scm37
-rw-r--r--gnu/packages/guile-xyz.scm66
-rw-r--r--gnu/packages/image.scm28
-rw-r--r--gnu/packages/java.scm44
-rw-r--r--gnu/packages/linux.scm20
-rw-r--r--gnu/packages/lisp.scm627
-rw-r--r--gnu/packages/llvm.scm41
-rw-r--r--gnu/packages/mail.scm8
-rw-r--r--gnu/packages/mastodon.scm6
-rw-r--r--gnu/packages/mate.scm11
-rw-r--r--gnu/packages/maths.scm4
-rw-r--r--gnu/packages/mc.scm4
-rw-r--r--gnu/packages/messaging.scm62
-rw-r--r--gnu/packages/mpi.scm4
-rw-r--r--gnu/packages/music.scm43
-rw-r--r--gnu/packages/patches/emacs-zones-called-interactively.patch18
-rw-r--r--gnu/packages/patches/khmer-use-libraries.patch16
-rw-r--r--gnu/packages/patches/lcalc-default-parameters-1.patch26
-rw-r--r--gnu/packages/patches/lcalc-default-parameters-2.patch58
-rw-r--r--gnu/packages/patches/lcalc-lcommon-h.patch13
-rw-r--r--gnu/packages/patches/lcalc-using-namespace-std.patch43
-rw-r--r--gnu/packages/patches/leela-zero-gtest.patch40
-rw-r--r--gnu/packages/patches/lrcalc-includes.patch92
-rw-r--r--gnu/packages/patches/python-pyatspi-python-37.patch82
-rw-r--r--gnu/packages/pdf.scm4
-rw-r--r--gnu/packages/perl.scm60
-rw-r--r--gnu/packages/python-check.scm135
-rw-r--r--gnu/packages/python-compression.scm33
-rw-r--r--gnu/packages/python-crypto.scm5
-rw-r--r--gnu/packages/python-xyz.scm299
-rw-r--r--gnu/packages/sagemath.scm123
-rw-r--r--gnu/packages/sawfish.scm34
-rw-r--r--gnu/packages/sync.scm18
-rw-r--r--gnu/packages/tcl.scm42
-rw-r--r--gnu/packages/text-editors.scm49
-rw-r--r--gnu/packages/video.scm4
-rw-r--r--gnu/packages/virtualization.scm48
-rw-r--r--gnu/packages/web.scm10
-rw-r--r--gnu/packages/wine.scm6
-rw-r--r--gnu/packages/xdisorg.scm7
-rw-r--r--gnu/packages/xfce.scm4
-rw-r--r--gnu/packages/xorg.scm21
-rw-r--r--gnu/services/networking.scm18
-rw-r--r--gnu/system/linux-initrd.scm7
-rw-r--r--gnu/tests/base.scm4
-rw-r--r--gnu/tests/install.scm1
-rw-r--r--guix/build/compile.scm3
-rw-r--r--guix/build/syscalls.scm37
-rw-r--r--guix/derivations.scm277
-rw-r--r--guix/progress.scm4
-rw-r--r--guix/scripts/build.scm11
-rw-r--r--guix/scripts/graph.scm3
-rw-r--r--guix/scripts/package.scm41
-rw-r--r--guix/scripts/publish.scm26
-rw-r--r--guix/scripts/system/search.scm44
-rw-r--r--guix/ui.scm142
-rw-r--r--tests/derivations.scm80
-rw-r--r--tests/grafts.scm14
-rw-r--r--tests/guix-daemon.sh2
-rw-r--r--tests/packages.scm32
-rw-r--r--tests/syscalls.scm5
-rw-r--r--tests/ui.scm27
94 files changed, 3454 insertions, 901 deletions
diff --git a/build-aux/compile-all.scm b/build-aux/compile-all.scm
index 4259ea523c7..e9f3e957d9d 100644
--- a/build-aux/compile-all.scm
+++ b/build-aux/compile-all.scm
@@ -91,20 +91,45 @@ to 'make'."
91 91
92(match (command-line) 92(match (command-line)
93 ((_ . files) 93 ((_ . files)
94 (compile-files srcdir (getcwd) 94 (catch #t
95 (filter file-needs-compilation? files) 95 (lambda ()
96 #:workers (parallel-job-count) 96 (compile-files srcdir (getcwd)
97 #:host host 97 (filter file-needs-compilation? files)
98 #:report-load (lambda (file total completed) 98 #:workers (parallel-job-count)
99 (when file 99 #:host host
100 (format #t "[~3d%] LOAD ~a~%" 100 #:report-load (lambda (file total completed)
101 (% (+ 1 completed) (* 2 total)) 101 (when file
102 file) 102 (format #t "[~3d%] LOAD ~a~%"
103 (force-output))) 103 (% (+ 1 completed) (* 2 total))
104 #:report-compilation (lambda (file total completed) 104 file)
105 (when file 105 (force-output)))
106 (format #t "[~3d%] GUILEC ~a~%" 106 #:report-compilation (lambda (file total completed)
107 (% (+ total completed 1) 107 (when file
108 (* 2 total)) 108 (format #t "[~3d%] GUILEC ~a~%"
109 (scm->go file)) 109 (% (+ total completed 1)
110 (force-output)))))) 110 (* 2 total))
111 (scm->go file))
112 (force-output)))))
113 (lambda _
114 (primitive-exit 1))
115 (lambda args
116 ;; Try to report the error in an intelligible way.
117 (let* ((stack (make-stack #t))
118 (frame (if (> (stack-length stack) 1)
119 (stack-ref stack 1) ;skip the 'throw' frame
120 (stack-ref stack 0)))
121 (ui (false-if-exception
122 (resolve-module '(guix ui))))
123 (report (and ui
124 (false-if-exception
125 (module-ref ui 'report-load-error)))))
126 (if report
127 ;; In Guile <= 2.2.5, 'current-load-port' was not exported.
128 (let ((load-port ((module-ref (resolve-module '(ice-9 ports))
129 'current-load-port))))
130 (report (or (and=> load-port port-filename) "?.scm")
131 args frame))
132 (begin
133 (print-exception (current-error-port) frame
134 (car args) (cdr args))
135 (display-backtrace stack (current-error-port)))))))))
diff --git a/doc/guix.texi b/doc/guix.texi
index 1d57546ac53..888be1521f6 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -2430,13 +2430,14 @@ The resulting file will be much smaller than 50 GB (typically less than
2430Boot the USB installation image in an VM: 2430Boot the USB installation image in an VM:
2431 2431
2432@example 2432@example
2433qemu-system-x86_64 -m 1024 -smp 1 \ 2433qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm \
2434 -net user -net nic,model=virtio -boot menu=on \ 2434 -net user -net nic,model=virtio -boot menu=on \
2435 -drive file=guix-system-install-@value{VERSION}.@var{system}.iso \ 2435 -drive file=guix-system-install-@value{VERSION}.@var{system}.iso \
2436 -drive file=guixsd.img 2436 -drive file=guixsd.img
2437@end example 2437@end example
2438 2438
2439The ordering of the drives matters. 2439The ordering of the drives matters. @code{-enable-kvm} is optional, but
2440significantly improves performance, @pxref{Running Guix in a VM}.
2440 2441
2441In the VM console, quickly press the @kbd{F12} key to enter the boot 2442In the VM console, quickly press the @kbd{F12} key to enter the boot
2442menu. Then press the @kbd{2} key and the @kbd{RET} key to validate your 2443menu. Then press the @kbd{2} key and the @kbd{RET} key to validate your
@@ -12735,10 +12736,35 @@ NetworkManager will update @code{resolv.conf} to reflect the nameservers
12735provided by currently active connections. 12736provided by currently active connections.
12736 12737
12737@item dnsmasq 12738@item dnsmasq
12738NetworkManager will run @code{dnsmasq} as a local caching nameserver, 12739NetworkManager will run @code{dnsmasq} as a local caching nameserver, using a
12739using a "split DNS" configuration if you are connected to a VPN, and 12740@dfn{conditional forwarding} configuration if you are connected to a VPN, and
12740then update @code{resolv.conf} to point to the local nameserver. 12741then update @code{resolv.conf} to point to the local nameserver.
12741 12742
12743With this setting, you can share your network connection. For example when
12744you want to share your network connection to another laptop @i{via} an
12745Ethernet cable, you can open @command{nm-connection-editor} and configure the
12746Wired connection's method for IPv4 and IPv6 to be ``Shared to other computers''
12747and reestablish the connection (or reboot).
12748
12749You can also set up a @dfn{host-to-guest connection} to QEMU VMs
12750(@pxref{Installing Guix in a VM}). With a host-to-guest connection, you can
12751e.g.@: access a Web server running on the VM (@pxref{Web Services}) from a Web
12752browser on your host system, or connect to the VM @i{via} SSH
12753(@pxref{Networking Services, @code{openssh-service-type}}). To set up a
12754host-to-guest connection, run this command once:
12755
12756@example
12757nmcli connection add type tun \
12758 connection.interface-name tap0 \
12759 tun.mode tap tun.owner $(id -u) \
12760 ipv4.method shared \
12761 ipv4.addresses 172.28.112.1/24
12762@end example
12763
12764Then each time you launch your QEMU VM (@pxref{Running Guix in a VM}), pass
12765@option{-nic tap,ifname=tap0,script=no,downscript=no} to
12766@command{qemu-system-...}.
12767
12742@item none 12768@item none
12743NetworkManager will not modify @code{resolv.conf}. 12769NetworkManager will not modify @code{resolv.conf}.
12744@end table 12770@end table
diff --git a/gnu/build/accounts.scm b/gnu/build/accounts.scm
index b90149565f4..5094456ab1a 100644
--- a/gnu/build/accounts.scm
+++ b/gnu/build/accounts.scm
@@ -19,7 +19,6 @@
19(define-module (gnu build accounts) 19(define-module (gnu build accounts)
20 #:use-module (guix records) 20 #:use-module (guix records)
21 #:use-module (guix combinators) 21 #:use-module (guix combinators)
22 #:use-module ((guix build syscalls) #:select (fdatasync))
23 #:use-module (gnu system accounts) 22 #:use-module (gnu system accounts)
24 #:use-module (srfi srfi-1) 23 #:use-module (srfi srfi-1)
25 #:use-module (srfi srfi-11) 24 #:use-module (srfi srfi-11)
@@ -231,14 +230,6 @@ each field."
231 ;; grab this lock with 'with-file-lock' when they access the databases. 230 ;; grab this lock with 'with-file-lock' when they access the databases.
232 "/etc/.pwd.lock") 231 "/etc/.pwd.lock")
233 232
234(define-syntax-rule (catch-ENOSYS exp)
235 (catch 'system-error
236 (lambda () exp)
237 (lambda args
238 (if (= ENOSYS (system-error-errno args))
239 #f
240 (apply throw args)))))
241
242(define (database-writer file mode entry->string) 233(define (database-writer file mode entry->string)
243 (lambda* (entries #:optional (file-or-port file)) 234 (lambda* (entries #:optional (file-or-port file))
244 "Write ENTRIES to FILE-OR-PORT. When FILE-OR-PORT is a file name, write 235 "Write ENTRIES to FILE-OR-PORT. When FILE-OR-PORT is a file name, write
@@ -259,10 +250,7 @@ to it atomically and set the appropriate permissions."
259 (chmod port mode) 250 (chmod port mode)
260 (write-entries port) 251 (write-entries port)
261 252
262 ;; XXX: When booting with the statically-linked Guile, 253 (fsync port)
263 ;; 'fdatasync' is unavailable.
264 (catch-ENOSYS (fdatasync port))
265
266 (close-port port) 254 (close-port port)
267 (rename-file template file-or-port)) 255 (rename-file template file-or-port))
268 (lambda () 256 (lambda ()
diff --git a/gnu/build/linux-container.scm b/gnu/build/linux-container.scm
index 3d7b52f098e..e86ac606c0d 100644
--- a/gnu/build/linux-container.scm
+++ b/gnu/build/linux-container.scm
@@ -22,7 +22,6 @@
22 #:use-module (ice-9 match) 22 #:use-module (ice-9 match)
23 #:use-module (ice-9 rdelim) 23 #:use-module (ice-9 rdelim)
24 #:use-module (srfi srfi-98) 24 #:use-module (srfi srfi-98)
25 #:use-module (guix utils)
26 #:use-module (guix build utils) 25 #:use-module (guix build utils)
27 #:use-module (guix build syscalls) 26 #:use-module (guix build syscalls)
28 #:use-module (gnu system file-systems) ;<file-system> 27 #:use-module (gnu system file-systems) ;<file-system>
@@ -279,6 +278,21 @@ that host UIDs (respectively GIDs) map to in the namespace."
279 (_ ;unexpected termination 278 (_ ;unexpected termination
280 #f))))))))) 279 #f)))))))))
281 280
281;; FIXME: This is copied from (guix utils), which we cannot use because it
282;; would pull (guix config) and all.
283(define (call-with-temporary-directory proc)
284 "Call PROC with a name of a temporary directory; close the directory and
285delete it when leaving the dynamic extent of this call."
286 (let* ((directory (or (getenv "TMPDIR") "/tmp"))
287 (template (string-append directory "/guix-directory.XXXXXX"))
288 (tmp-dir (mkdtemp! template)))
289 (dynamic-wind
290 (const #t)
291 (lambda ()
292 (proc tmp-dir))
293 (lambda ()
294 (false-if-exception (delete-file-recursively tmp-dir))))))
295
282(define* (call-with-container mounts thunk #:key (namespaces %namespaces) 296(define* (call-with-container mounts thunk #:key (namespaces %namespaces)
283 (host-uids 1) (guest-uid 0) (guest-gid 0)) 297 (host-uids 1) (guest-uid 0) (guest-gid 0))
284 "Run THUNK in a new container process and return its exit status. 298 "Run THUNK in a new container process and return its exit status.
diff --git a/gnu/local.mk b/gnu/local.mk
index d375b8cd1db..f90d0cf402a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -20,6 +20,7 @@
20# Copyright © 2018, 2019 Oleg Pykhalov <go.wigust@gmail.com> 20# Copyright © 2018, 2019 Oleg Pykhalov <go.wigust@gmail.com>
21# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com> 21# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
22# Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> 22# Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
23# Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
23# 24#
24# This file is part of GNU Guix. 25# This file is part of GNU Guix.
25# 26#
@@ -195,6 +196,7 @@ GNU_SYSTEM_MODULES = \
195 %D%/packages/gcc.scm \ 196 %D%/packages/gcc.scm \
196 %D%/packages/gd.scm \ 197 %D%/packages/gd.scm \
197 %D%/packages/gdb.scm \ 198 %D%/packages/gdb.scm \
199 %D%/packages/genealogy.scm \
198 %D%/packages/genimage.scm \ 200 %D%/packages/genimage.scm \
199 %D%/packages/geo.scm \ 201 %D%/packages/geo.scm \
200 %D%/packages/gettext.scm \ 202 %D%/packages/gettext.scm \
@@ -956,7 +958,6 @@ dist_patch_DATA = \
956 %D%/packages/patches/java-xerces-xjavac_taskdef.patch \ 958 %D%/packages/patches/java-xerces-xjavac_taskdef.patch \
957 %D%/packages/patches/jbig2dec-ignore-testtest.patch \ 959 %D%/packages/patches/jbig2dec-ignore-testtest.patch \
958 %D%/packages/patches/kdbusaddons-kinit-file-name.patch \ 960 %D%/packages/patches/kdbusaddons-kinit-file-name.patch \
959 %D%/packages/patches/khmer-use-libraries.patch \
960 %D%/packages/patches/libziparchive-add-includes.patch \ 961 %D%/packages/patches/libziparchive-add-includes.patch \
961 %D%/packages/patches/localed-xorg-keyboard.patch \ 962 %D%/packages/patches/localed-xorg-keyboard.patch \
962 %D%/packages/patches/kiki-level-selection-crash.patch \ 963 %D%/packages/patches/kiki-level-selection-crash.patch \
@@ -978,9 +979,14 @@ dist_patch_DATA = \
978 %D%/packages/patches/kodi-set-libcurl-ssl-parameters.patch \ 979 %D%/packages/patches/kodi-set-libcurl-ssl-parameters.patch \
979 %D%/packages/patches/kodi-skip-test-449.patch \ 980 %D%/packages/patches/kodi-skip-test-449.patch \
980 %D%/packages/patches/laby-make-install.patch \ 981 %D%/packages/patches/laby-make-install.patch \
982 %D%/packages/patches/lcalc-default-parameters-1.patch \
983 %D%/packages/patches/lcalc-default-parameters-2.patch \
984 %D%/packages/patches/lcalc-lcommon-h.patch \
985 %D%/packages/patches/lcalc-using-namespace-std.patch \
981 %D%/packages/patches/lcms-CVE-2018-16435.patch \ 986 %D%/packages/patches/lcms-CVE-2018-16435.patch \
982 %D%/packages/patches/ldc-bootstrap-disable-tests.patch \ 987 %D%/packages/patches/ldc-bootstrap-disable-tests.patch \
983 %D%/packages/patches/ldc-disable-phobos-tests.patch \ 988 %D%/packages/patches/ldc-disable-phobos-tests.patch \
989 %D%/packages/patches/leela-zero-gtest.patch \
984 %D%/packages/patches/liba52-enable-pic.patch \ 990 %D%/packages/patches/liba52-enable-pic.patch \
985 %D%/packages/patches/liba52-link-with-libm.patch \ 991 %D%/packages/patches/liba52-link-with-libm.patch \
986 %D%/packages/patches/liba52-set-soname.patch \ 992 %D%/packages/patches/liba52-set-soname.patch \
@@ -1040,6 +1046,7 @@ dist_patch_DATA = \
1040 %D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \ 1046 %D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \
1041 %D%/packages/patches/llvm-for-extempore.patch \ 1047 %D%/packages/patches/llvm-for-extempore.patch \
1042 %D%/packages/patches/lm-sensors-hwmon-attrs.patch \ 1048 %D%/packages/patches/lm-sensors-hwmon-attrs.patch \
1049 %D%/packages/patches/lrcalc-includes.patch \
1043 %D%/packages/patches/lrzip-CVE-2017-8842.patch \ 1050 %D%/packages/patches/lrzip-CVE-2017-8842.patch \
1044 %D%/packages/patches/lua-CVE-2014-5461.patch \ 1051 %D%/packages/patches/lua-CVE-2014-5461.patch \
1045 %D%/packages/patches/lua-pkgconfig.patch \ 1052 %D%/packages/patches/lua-pkgconfig.patch \
@@ -1208,6 +1215,7 @@ dist_patch_DATA = \
1208 %D%/packages/patches/python-mox3-python3.6-compat.patch \ 1215 %D%/packages/patches/python-mox3-python3.6-compat.patch \
1209 %D%/packages/patches/python-testtools.patch \ 1216 %D%/packages/patches/python-testtools.patch \
1210 %D%/packages/patches/python-paste-remove-timing-test.patch \ 1217 %D%/packages/patches/python-paste-remove-timing-test.patch \
1218 %D%/packages/patches/python-pyatspi-python-37.patch \
1211 %D%/packages/patches/python-pycrypto-CVE-2013-7459.patch \ 1219 %D%/packages/patches/python-pycrypto-CVE-2013-7459.patch \
1212 %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ 1220 %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
1213 %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \ 1221 %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
diff --git a/gnu/packages.scm b/gnu/packages.scm
index 2d7622d397a..47e4f473b5f 100644
--- a/gnu/packages.scm
+++ b/gnu/packages.scm
@@ -515,14 +515,18 @@ optionally contain a version number and an output name, as in these examples:
515 guile@2.0.9:debug 515 guile@2.0.9:debug
516 516
517If SPEC does not specify a version number, return the preferred newest 517If SPEC does not specify a version number, return the preferred newest
518version; if SPEC does not specify an output, return OUTPUT." 518version; if SPEC does not specify an output, return OUTPUT.
519
520When OUTPUT is false and SPEC does not specify any output, return #f as the
521output."
519 (let-values (((name version sub-drv) 522 (let-values (((name version sub-drv)
520 (package-specification->name+version+output spec output))) 523 (package-specification->name+version+output spec output)))
521 (match (%find-package spec name version) 524 (match (%find-package spec name version)
522 (#f 525 (#f
523 (values #f #f)) 526 (values #f #f))
524 (package 527 (package
525 (if (member sub-drv (package-outputs package)) 528 (if (or (and (not output) (not sub-drv))
529 (member sub-drv (package-outputs package)))
526 (values package sub-drv) 530 (values package sub-drv)
527 (leave (G_ "package `~a' lacks output `~a'~%") 531 (leave (G_ "package `~a' lacks output `~a'~%")
528 (package-full-name package) 532 (package-full-name package)
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index c6ed4c6d4a7..3d8c247f571 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -2251,7 +2251,7 @@ produce uniform output across heterogeneous networks.")
2251(define-public cbatticon 2251(define-public cbatticon
2252 (package 2252 (package
2253 (name "cbatticon") 2253 (name "cbatticon")
2254 (version "1.6.8") 2254 (version "1.6.9")
2255 (source 2255 (source
2256 (origin 2256 (origin
2257 (method git-fetch) 2257 (method git-fetch)
@@ -2259,7 +2259,7 @@ produce uniform output across heterogeneous networks.")
2259 (url "https://github.com/valr/cbatticon.git") 2259 (url "https://github.com/valr/cbatticon.git")
2260 (commit version))) 2260 (commit version)))
2261 (sha256 2261 (sha256
2262 (base32 "16g26vin1693dbdr9qsnw36fdchx394lp79gvp7gcbw0w1ny9av6")) 2262 (base32 "0kw09d678sd3m18fmi4380sl4a2m5lkfmq0kps16cdmq7z80rvaf"))
2263 (file-name (git-file-name name version)))) 2263 (file-name (git-file-name name version))))
2264 (build-system gnu-build-system) 2264 (build-system gnu-build-system)
2265 (arguments 2265 (arguments
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 561347ad98e..95189401f7f 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -1333,47 +1333,6 @@ multiplication algorithm.")
1333 (license license:gpl2+) 1333 (license license:gpl2+)
1334 (home-page "https://bitbucket.org/malb/m4ri/"))) 1334 (home-page "https://bitbucket.org/malb/m4ri/")))
1335 1335
1336(define-public ratpoints
1337 (package
1338 (name "ratpoints")
1339 (version "2.1.3")
1340 (source (origin
1341 (method url-fetch)
1342 (uri (string-append
1343 "http://www.mathe2.uni-bayreuth.de/stoll/programs/"
1344 "ratpoints-" version ".tar.gz"))
1345 (sha256
1346 (base32
1347 "0zhad84sfds7izyksbqjmwpfw4rvyqk63yzdjd3ysd32zss5bgf4"))
1348 (patches
1349 ;; Taken from
1350 ;; <https://git.sagemath.org/sage.git/plain/build/pkgs/ratpoints/patches/>
1351 (search-patches "ratpoints-sturm_and_rp_private.patch"))))
1352 (build-system gnu-build-system)
1353 (arguments
1354 `(#:test-target "test"
1355 #:make-flags
1356 (list (string-append "INSTALL_DIR=" (assoc-ref %outputs "out")))
1357 #:phases
1358 (modify-phases %standard-phases
1359 (delete 'configure) ;no configure script
1360 (add-before 'install 'create-install-directories
1361 (lambda* (#:key outputs #:allow-other-keys)
1362 (let ((out (assoc-ref outputs "out")))
1363 (mkdir-p out)
1364 (with-directory-excursion out
1365 (for-each (lambda (d) (mkdir-p d))
1366 '("bin" "include" "lib"))))
1367 #t)))))
1368 (inputs
1369 `(("gmp" ,gmp)))
1370 (home-page "http://www.mathe2.uni-bayreuth.de/stoll/programs/")
1371 (synopsis "Find rational points on hyperelliptic curves")
1372 (description "Ratpoints tries to find all rational points within
1373a given height bound on a hyperelliptic curve in a very efficient way,
1374by using an optimized quadratic sieve algorithm.")
1375 (license license:gpl2+)))
1376
1377(define-public symmetrica 1336(define-public symmetrica
1378 (package 1337 (package
1379 (name "symmetrica") 1338 (name "symmetrica")
@@ -1400,7 +1359,7 @@ by using an optimized quadratic sieve algorithm.")
1400 (add-after 'unpack 'fix-makefile 1359 (add-after 'unpack 'fix-makefile
1401 (lambda _ 1360 (lambda _
1402 (substitute* "makefile" 1361 (substitute* "makefile"
1403 (("cc -c") "gcc -c")) 1362 (("cc -c") "gcc -c -fPIC"))
1404 #t)) 1363 #t))
1405 (add-after 'fix-makefile 'turn-off-banner 1364 (add-after 'fix-makefile 'turn-off-banner
1406 (lambda _ 1365 (lambda _
@@ -1503,7 +1462,8 @@ John Cremona to compute his elliptic curve database.")
1503 (file-name (git-file-name name version)) 1462 (file-name (git-file-name name version))
1504 (sha256 1463 (sha256
1505 (base32 1464 (base32
1506 "1c12d04jdyxkkav4ak8d1aqrv594gzihwhpxvc6p9js0ry1fahss")))) 1465 "1c12d04jdyxkkav4ak8d1aqrv594gzihwhpxvc6p9js0ry1fahss"))
1466 (patches (search-patches "lrcalc-includes.patch"))))
1507 (build-system gnu-build-system) 1467 (build-system gnu-build-system)
1508 (native-inputs 1468 (native-inputs
1509 `(("autoconf" ,autoconf) 1469 `(("autoconf" ,autoconf)
@@ -1547,6 +1507,7 @@ structure constants of Schubert polynomials.")
1547 (arguments 1507 (arguments
1548 `(#:configure-flags 1508 `(#:configure-flags
1549 (list 1509 (list
1510 "--enable-shared"
1550 (string-append "--with-gmp-include=" 1511 (string-append "--with-gmp-include="
1551 (assoc-ref %build-inputs "gmp") "/include") 1512 (assoc-ref %build-inputs "gmp") "/include")
1552 (string-append "--with-gmp-lib=" 1513 (string-append "--with-gmp-lib="
diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index 8ab5377537b..3c7ef447f3b 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -8,6 +8,7 @@
8;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> 8;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
9;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> 9;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
10;;; Copyright © 2019 Andreas Enge <andreas@enge.fr> 10;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
11;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
11;;; 12;;;
12;;; This file is part of GNU Guix. 13;;; This file is part of GNU Guix.
13;;; 14;;;
@@ -90,6 +91,17 @@ use their packages mostly unmodified in our Android NDK build system.")
90(define-public android-googletest 91(define-public android-googletest
91 (package (inherit googletest) 92 (package (inherit googletest)
92 (name "android-googletest") 93 (name "android-googletest")
94 (version "1.8.0")
95 (source
96 (origin
97 (method git-fetch)
98 (uri (git-reference
99 (url "https://github.com/google/googletest.git")
100 (commit (string-append "release-" version))))
101 (file-name (git-file-name name version))
102 (sha256
103 (base32
104 "0bjlljmbf8glnd9qjabx73w6pd7ibv43yiyngqvmvgxsabzr8399"))))
93 (arguments 105 (arguments
94 `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON") 106 `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")
95 #:phases 107 #:phases
diff --git a/gnu/packages/apl.scm b/gnu/packages/apl.scm
index 88150dc4d06..badec043330 100644
--- a/gnu/packages/apl.scm
+++ b/gnu/packages/apl.scm
@@ -1,7 +1,7 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> 2;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
3;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> 3;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
4;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> 4;;; Copyright © 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
5;;; 5;;;
6;;; This file is part of GNU Guix. 6;;; This file is part of GNU Guix.
7;;; 7;;;
@@ -25,25 +25,27 @@
25 #:use-module (guix build-system gnu) 25 #:use-module (guix build-system gnu)
26 #:use-module (gnu packages gettext) 26 #:use-module (gnu packages gettext)
27 #:use-module (gnu packages maths) 27 #:use-module (gnu packages maths)
28 #:use-module (gnu packages pcre)
28 #:use-module (gnu packages readline) 29 #:use-module (gnu packages readline)
29 #:use-module (gnu packages sqlite)) 30 #:use-module (gnu packages sqlite))
30 31
31(define-public apl 32(define-public apl
32 (package 33 (package
33 (name "apl") 34 (name "apl")
34 (version "1.7") 35 (version "1.8")
35 (source 36 (source
36 (origin 37 (origin
37 (method url-fetch) 38 (method url-fetch)
38 (uri (string-append "mirror://gnu/apl/apl-" version ".tar.gz")) 39 (uri (string-append "mirror://gnu/apl/apl-" version ".tar.gz"))
39 (sha256 40 (sha256
40 (base32 41 (base32
41 "07xq8ddlmz8psvsmwr23gar108ri0lwmw0n6kpxcv8ypas1f5xlg")))) 42 "1jxvv2h3y1am1fw6r5sn3say1n0dj8shmscbybl0qhqdia2lqkql"))))
42 (build-system gnu-build-system) 43 (build-system gnu-build-system)
43 (home-page "https://www.gnu.org/software/apl/") 44 (home-page "https://www.gnu.org/software/apl/")
44 (inputs 45 (inputs
45 `(("gettext" ,gettext-minimal) 46 `(("gettext" ,gettext-minimal)
46 ("lapack" ,lapack) 47 ("lapack" ,lapack)
48 ("pcre" ,pcre2)
47 ("sqlite" ,sqlite) 49 ("sqlite" ,sqlite)
48 ("readline" ,readline))) 50 ("readline" ,readline)))
49 (arguments 51 (arguments
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 9ddb9e1d528..81c7481e0b0 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -2,6 +2,7 @@
2;;; Copyright © 2016 John Darrington <jmd@gnu.org> 2;;; Copyright © 2016 John Darrington <jmd@gnu.org>
3;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> 3;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
4;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il> 4;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
5;;; Copyright © 2019 by Amar Singh <nly@disroot.org>
5;;; 6;;;
6;;; This file is part of GNU Guix. 7;;; This file is part of GNU Guix.
7;;; 8;;;
@@ -22,17 +23,27 @@
22 #:use-module (guix packages) 23 #:use-module (guix packages)
23 #:use-module ((guix licenses) #:prefix license:) 24 #:use-module ((guix licenses) #:prefix license:)
24 #:use-module (guix download) 25 #:use-module (guix download)
26 #:use-module (guix git-download)
25 #:use-module (guix utils) 27 #:use-module (guix utils)
26 #:use-module (gnu packages autotools) 28 #:use-module (gnu packages autotools)
27 #:use-module (gnu packages image) 29 #:use-module (gnu packages image)
28 #:use-module (gnu packages compression) 30 #:use-module (gnu packages compression)
29 #:use-module (gnu packages gettext) 31 #:use-module (gnu packages gettext)
32 #:use-module (gnu packages version-control)
33 #:use-module (gnu packages pkg-config)
34 #:use-module (gnu packages xiph)
35 #:use-module (gnu packages pretty-print)
36 #:use-module (gnu packages algebra)
37 #:use-module (gnu packages lua)
30 #:use-module (gnu packages perl) 38 #:use-module (gnu packages perl)
31 #:use-module (gnu packages gl) 39 #:use-module (gnu packages gl)
32 #:use-module (gnu packages qt) 40 #:use-module (gnu packages qt)
41 #:use-module (gnu packages gtk)
42 #:use-module (gnu packages gnome)
33 #:use-module (gnu packages maths) 43 #:use-module (gnu packages maths)
34 #:use-module (guix build-system cmake) 44 #:use-module (guix build-system cmake)
35 #:use-module (guix build-system gnu)) 45 #:use-module (guix build-system gnu)
46 #:use-module (srfi srfi-1))
36 47
37(define-public cfitsio 48(define-public cfitsio
38 (package 49 (package
@@ -133,15 +144,15 @@ programs for the manipulation and analysis of astronomical data.")
133(define-public stellarium 144(define-public stellarium
134 (package 145 (package
135 (name "stellarium") 146 (name "stellarium")
136 (version "0.19.0") 147 (version "0.19.1")
137 (source (origin 148 (source
138 (method url-fetch) 149 (origin
139 (uri (string-append "https://github.com/Stellarium/" name 150 (method url-fetch)
140 "/releases/download/v" version 151 (uri (string-append "https://github.com/Stellarium/stellarium"
141 "/" name "-" version ".tar.gz")) 152 "/releases/download/v" version
142 (sha256 153 "/stellarium-" version ".tar.gz"))
143 (base32 154 (sha256
144 "1mjjqcpgm5a1022x0mpqj3v6qkvpm9wqm1hqyg0mlypc5681va8a")))) 155 (base32 "0s7v5iyhah258k83kvy2a91a3mdf34r150lcar4mmdsrrcmas98g"))))
145 (build-system cmake-build-system) 156 (build-system cmake-build-system)
146 (inputs 157 (inputs
147 `(("qtbase" ,qtbase) 158 `(("qtbase" ,qtbase)
@@ -151,9 +162,9 @@ programs for the manipulation and analysis of astronomical data.")
151 ("qtserialport" ,qtserialport) 162 ("qtserialport" ,qtserialport)
152 ("zlib" ,zlib))) 163 ("zlib" ,zlib)))
153 (native-inputs 164 (native-inputs
154 `(("gettext" ,gettext-minimal) ; xgettext is used at compile time 165 `(("gettext" ,gettext-minimal) ; xgettext is used at compile time
155 ("perl" ,perl) ; For pod2man 166 ("perl" ,perl) ; For pod2man
156 ("qtbase" ,qtbase) ; Qt MOC is needed at compile time 167 ("qtbase" ,qtbase) ; Qt MOC is needed at compile time
157 ("qttools" ,qttools))) 168 ("qttools" ,qttools)))
158 (arguments 169 (arguments
159 `(#:test-target "test" 170 `(#:test-target "test"
@@ -176,3 +187,65 @@ programs for the manipulation and analysis of astronomical data.")
176can be used to control telescopes over a serial port for tracking celestial 187can be used to control telescopes over a serial port for tracking celestial
177objects.") 188objects.")
178 (license license:gpl2+))) 189 (license license:gpl2+)))
190
191(define-public celestia
192 (let ((commit "9dbdf29c4ac3d20afb2d9a80d3dff241ecf81dce"))
193 (package
194 (name "celestia")
195 (version (git-version "1.6.1" "815" commit))
196 (source (origin
197 (method git-fetch)
198 (uri (git-reference
199 (url "https://github.com/celestiaproject/celestia")
200 (commit commit)))
201 (file-name (git-file-name name version))
202 (sha256
203 (base32
204 "00xibg87l1arzifakgj7s828x9pszcgx7x7ij88a561ig49ryh78"))))
205 (build-system cmake-build-system)
206 (native-inputs
207 `(("perl" ,perl)
208 ("libgit2" ,libgit2)
209 ("pkg-config" ,pkg-config)
210 ("libtool" ,libtool)
211 ("gettext" ,gettext-minimal)))
212 (inputs
213 `(("glu" ,glu)
214 ("glew" ,glew)
215 ("libtheora" ,libtheora)
216 ("libjpeg" ,libjpeg)
217 ("libpng" ,libpng)
218 ;; maybe required?
219 ("mesa" ,mesa)
220 ;; optional: fmtlib, Eigen3;
221 ("fmt" ,fmt)
222 ("eigen" ,eigen)
223 ;; glut: for glut interface
224 ("freeglut" ,freeglut)))
225 (propagated-inputs
226 `(("lua" ,lua)))
227 (arguments
228 `(#:configure-flags '("-DENABLE_GLUT=ON" "-DENABLE_QT=OFF")
229 #:tests? #f)) ;no tests
230 (home-page "https://celestia.space/")
231 (synopsis "Real-time 3D visualization of space")
232 (description
233 "This simulation program lets you explore our universe in three
234dimensions. Celestia simulates many different types of celestial objects.
235From planets and moons to star clusters and galaxies, you can visit every
236object in the expandable database and view it from any point in space and
237time. The position and movement of solar system objects is calculated
238accurately in real time at any rate desired.")
239 (license license:gpl2+))))
240
241(define-public celestia-gtk
242 (package
243 (inherit celestia)
244 (name "celestia-gtk")
245 (inputs
246 (append (alist-delete "freeglut" (package-inputs celestia))
247 `(("gtk2" ,gtk+-2)
248 ("gtkglext" ,gtkglext))))
249 (arguments
250 `(#:configure-flags '("-DENABLE_GTK=ON" "-DENABLE_QT=OFF")
251 #:tests? #f))))
diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index 31c9a8b0cf5..d3abeec6e6f 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -4,6 +4,7 @@
4;;; Copyright © 2015, 2017 Leo Famulari <leo@famulari.name> 4;;; Copyright © 2015, 2017 Leo Famulari <leo@famulari.name>
5;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> 5;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
6;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> 6;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
7;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
7;;; 8;;;
8;;; This file is part of GNU Guix. 9;;; This file is part of GNU Guix.
9;;; 10;;;
@@ -274,13 +275,16 @@ without modification.")
274 `(#:phases (modify-phases %standard-phases 275 `(#:phases (modify-phases %standard-phases
275 (add-after 276 (add-after
276 'install 'remove-redundant-completions 277 'install 'remove-redundant-completions
277 (lambda* (#:key inputs outputs #:allow-other-keys) 278 (lambda* (#:key
279 inputs native-inputs
280 outputs #:allow-other-keys)
278 ;; Util-linux comes with a bunch of completion files for 281 ;; Util-linux comes with a bunch of completion files for
279 ;; its own commands which are more sophisticated and 282 ;; its own commands which are more sophisticated and
280 ;; up-to-date than those of bash-completion. Remove those 283 ;; up-to-date than those of bash-completion. Remove those
281 ;; from bash-completion. 284 ;; from bash-completion.
282 (let* ((out (assoc-ref outputs "out")) 285 (let* ((out (assoc-ref outputs "out"))
283 (util-linux (assoc-ref inputs "util-linux")) 286 (util-linux (assoc-ref (or native-inputs inputs)
287 "util-linux"))
284 (completions (string-append out 288 (completions (string-append out
285 "/share/bash-completion" 289 "/share/bash-completion"
286 "/completions")) 290 "/completions"))
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index a1f7b2d2a8c..92f2e4f3ab2 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -4745,3 +4745,27 @@ enhancers. The annotatr package provides an easy way to summarize and
4745visualize the intersection of genomic sites/regions with genomic 4745visualize the intersection of genomic sites/regions with genomic
4746annotations.") 4746annotations.")
4747 (license license:gpl3))) 4747 (license license:gpl3)))
4748
4749(define-public r-rsubread
4750 (package
4751 (name "r-rsubread")
4752 (version "1.34.2")
4753 (source
4754 (origin
4755 (method url-fetch)
4756 (uri (bioconductor-uri "Rsubread" version))
4757 (sha256
4758 (base32
4759 "0bsrw61wcav0q22c5m6gr0vn1f3c3ld8gxj730wcab6dj196z6q3"))))
4760 (properties `((upstream-name . "Rsubread")))
4761 (build-system r-build-system)
4762 (inputs `(("zlib" ,zlib)))
4763 (home-page "https://bioconductor.org/packages/Rsubread/")
4764 (synopsis "Subread sequence alignment and counting for R")
4765 (description
4766 "This package provides tools for alignment, quantification and analysis
4767of second and third generation sequencing data. It includes functionality for
4768read mapping, read counting, SNP calling, structural variant detection and
4769gene fusion discovery. It can be applied to all major sequencing techologies
4770and to both short and long sequence reads.")
4771 (license license:gpl3)))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index f1a73bca7e2..4f4d3d98397 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -4168,7 +4168,7 @@ command, or queried for specific k-mers with @code{jellyfish query}.")
4168(define-public khmer 4168(define-public khmer
4169 (package 4169 (package
4170 (name "khmer") 4170 (name "khmer")
4171 (version "2.1.2") 4171 (version "3.0.0a3")
4172 (source 4172 (source
4173 (origin 4173 (origin
4174 (method git-fetch) 4174 (method git-fetch)
@@ -4178,8 +4178,7 @@ command, or queried for specific k-mers with @code{jellyfish query}.")
4178 (file-name (git-file-name name version)) 4178 (file-name (git-file-name name version))
4179 (sha256 4179 (sha256
4180 (base32 4180 (base32
4181 "02x38d9jw2r58y8dmnj4hffy9wxv1yc1jwbvdbhby9dxndv94r9m")) 4181 "01l4jczglkl7yfhgvzx8j0df7k54bk1r8sli9ll16i1mis0d8f37"))
4182 (patches (search-patches "khmer-use-libraries.patch"))
4183 (modules '((guix build utils))) 4182 (modules '((guix build utils)))
4184 (snippet 4183 (snippet
4185 '(begin 4184 '(begin
@@ -4192,6 +4191,12 @@ command, or queried for specific k-mers with @code{jellyfish query}.")
4192 ;; https://lists.gnu.org/archive/html/guix-devel/2016-06/msg00977.html 4191 ;; https://lists.gnu.org/archive/html/guix-devel/2016-06/msg00977.html
4193 (delete-file-recursively "third-party/zlib") 4192 (delete-file-recursively "third-party/zlib")
4194 (delete-file-recursively "third-party/bzip2") 4193 (delete-file-recursively "third-party/bzip2")
4194 (delete-file-recursively "third-party/seqan")
4195 (substitute* "setup.cfg"
4196 (("# libraries = z,bz2")
4197 "libraries = z,bz2")
4198 (("include:third-party/zlib:third-party/bzip2")
4199 "include:"))
4195 #t)))) 4200 #t))))
4196 (build-system python-build-system) 4201 (build-system python-build-system)
4197 (arguments 4202 (arguments
@@ -4208,6 +4213,7 @@ command, or queried for specific k-mers with @code{jellyfish query}.")
4208 (inputs 4213 (inputs
4209 `(("zlib" ,zlib) 4214 `(("zlib" ,zlib)
4210 ("bzip2" ,bzip2) 4215 ("bzip2" ,bzip2)
4216 ("seqan" ,seqan-1)
4211 ("python-screed" ,python-screed) 4217 ("python-screed" ,python-screed)
4212 ("python-bz2file" ,python-bz2file))) 4218 ("python-bz2file" ,python-bz2file)))
4213 (home-page "https://khmer.readthedocs.org/") 4219 (home-page "https://khmer.readthedocs.org/")
diff --git a/gnu/packages/calcurse.scm b/gnu/packages/calcurse.scm
index 559688470e4..c28f1f55541 100644
--- a/gnu/packages/calcurse.scm
+++ b/gnu/packages/calcurse.scm
@@ -30,14 +30,14 @@
30(define-public calcurse 30(define-public calcurse
31 (package 31 (package
32 (name "calcurse") 32 (name "calcurse")
33 (version "4.4.0") 33 (version "4.5.0")
34 (source 34 (source
35 (origin 35 (origin
36 (method url-fetch) 36 (method url-fetch)
37 (uri (string-append "https://calcurse.org/files/calcurse-" 37 (uri (string-append "https://calcurse.org/files/calcurse-"
38 version ".tar.gz")) 38 version ".tar.gz"))
39 (sha256 39 (sha256
40 (base32 "0vw2xi6a2lrhrb8n55zq9lv4mzxhby4xdf3hmi1vlfpyrpdwkjzd")))) 40 (base32 "1vjwcmp51h7dsvwn0qx93w9chp3wp970v7d9mjhk7jyamcbfywn3"))))
41 (build-system gnu-build-system) 41 (build-system gnu-build-system)
42 (inputs `(("ncurses" ,ncurses))) 42 (inputs `(("ncurses" ,ncurses)))
43 (native-inputs `(("tzdata" ,tzdata-for-tests))) 43 (native-inputs `(("tzdata" ,tzdata-for-tests)))
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 284670af6bf..29919164314 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -461,22 +461,19 @@ test coverage and has a web user interface that will refresh automatically.")
461 (home-page "https://github.com/smartystreets/goconvey") 461 (home-page "https://github.com/smartystreets/goconvey")
462 (license license:expat))) 462 (license license:expat)))
463 463
464;; XXX When updating, check whether ZNC's GOOGLETEST-SOURCES can be
465;; switched back to simply using (PACKAGE-SOURCE ...).
466(define-public googletest 464(define-public googletest
467 (package 465 (package
468 (name "googletest") 466 (name "googletest")
469 (version "1.8.0") 467 (version "1.8.1")
470 (source 468 (source
471 (origin 469 (origin
472 (method git-fetch) 470 (method git-fetch)
473 (uri (git-reference 471 (uri (git-reference
474 (url "https://github.com/google/googletest.git") 472 (url "https://github.com/google/googletest.git")
475 (commit (string-append "release-" version)))) 473 (commit (string-append "release-" version))))
476 (file-name (git-file-name name version)) 474 (file-name (git-file-name name version))
477 (sha256 475 (sha256
478 (base32 476 (base32 "0270msj6n7mggh4xqqjp54kswbl7mkcc8px1p5dqdpmw5ngh9fzk"))))
479 "0bjlljmbf8glnd9qjabx73w6pd7ibv43yiyngqvmvgxsabzr8399"))))
480 (build-system cmake-build-system) 477 (build-system cmake-build-system)
481 (arguments 478 (arguments
482 `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON"))) 479 `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index a1e40b9ba06..e3575569565 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -755,6 +755,11 @@ from forcing GEXP-PROMISE."
755 ("udev" ,eudev) 755 ("udev" ,eudev)
756 ("valgrind" ,valgrind) 756 ("valgrind" ,valgrind)
757 ("vulkan-headers" ,vulkan-headers))) 757 ("vulkan-headers" ,vulkan-headers)))
758
759 ;; Building Chromium with a single core takes around 6 hours on an x86_64
760 ;; system. Give some leeway for slower or busy machines.
761 (properties '((timeout . 64800))) ;18 hours
762
758 (home-page "https://github.com/Eloston/ungoogled-chromium") 763 (home-page "https://github.com/Eloston/ungoogled-chromium")
759 (description 764 (description
760 "Ungoogled-Chromium is the Chromium web browser, with some functionality 765 "Ungoogled-Chromium is the Chromium web browser, with some functionality
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index f4966276a01..db27110645a 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -35,6 +35,7 @@
35;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> 35;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
36;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us> 36;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us>
37;;; Copyright © 2019 Alex Griffin <a@ajgrf.com> 37;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
38;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
38;;; 39;;;
39;;; This file is part of GNU Guix. 40;;; This file is part of GNU Guix.
40;;; 41;;;
@@ -272,14 +273,14 @@ mapping from string keys to string values.")
272(define-public memcached 273(define-public memcached
273 (package 274 (package
274 (name "memcached") 275 (name "memcached")
275 (version "1.5.14") 276 (version "1.5.16")
276 (source 277 (source
277 (origin 278 (origin
278 (method url-fetch) 279 (method url-fetch)
279 (uri (string-append 280 (uri (string-append
280 "https://memcached.org/files/memcached-" version ".tar.gz")) 281 "https://memcached.org/files/memcached-" version ".tar.gz"))
281 (sha256 282 (sha256
282 (base32 "1agj198rm5kc64z8qxck65kdzvw30pdfxalygipnryw0lwlxynww")))) 283 (base32 "0nnccb697jhdn5gqrh3phibzs6xr4nf4ryv7nmyv5vf11n4jr8j5"))))
283 (build-system gnu-build-system) 284 (build-system gnu-build-system)
284 (inputs 285 (inputs
285 `(("libevent" ,libevent) 286 `(("libevent" ,libevent)
@@ -846,6 +847,19 @@ TIMESTAMP. It also supports storage of binary large objects, including
846pictures, sounds, or video.") 847pictures, sounds, or video.")
847 (license (license:x11-style "file://COPYRIGHT")))) 848 (license (license:x11-style "file://COPYRIGHT"))))
848 849
850(define-public postgresql-11
851 (package
852 (inherit postgresql)
853 (name "postgresql")
854 (version "11.4")
855 (source (origin
856 (method url-fetch)
857 (uri (string-append "https://ftp.postgresql.org/pub/source/v"
858 version "/postgresql-" version ".tar.bz2"))
859 (sha256
860 (base32
861 "12ycjlqncijgmd5z078ybwda8ilas96lc7nxxmdq140mzpgjv002"))))))
862
849(define-public postgresql-9.6 863(define-public postgresql-9.6
850 (package 864 (package
851 (inherit postgresql) 865 (inherit postgresql)
@@ -2150,13 +2164,13 @@ etc., and an SQL engine for performing simple SQL queries.")
2150(define-public python-lmdb 2164(define-public python-lmdb
2151 (package 2165 (package
2152 (name "python-lmdb") 2166 (name "python-lmdb")
2153 (version "0.94") 2167 (version "0.95")
2154 (source (origin 2168 (source (origin
2155 (method url-fetch) 2169 (method url-fetch)
2156 (uri (pypi-uri "lmdb" version)) 2170 (uri (pypi-uri "lmdb" version))
2157 (sha256 2171 (sha256
2158 (base32 2172 (base32
2159 "1zh38gvkqw1jm5105if6rr7ccbgyxr7k2rm5ygb9ab3bq82pyaww")) 2173 "0nx9f193gzl33r1lbqhb96h1igya7pz8wmahr8m9x5zgc05hal91"))
2160 (modules '((guix build utils))) 2174 (modules '((guix build utils)))
2161 (snippet 2175 (snippet
2162 ;; Delete bundled lmdb source files. 2176 ;; Delete bundled lmdb source files.
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 778529436b5..06f4430b2de 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -439,15 +439,16 @@ a card with a smaller capacity than stated.")
439(define-public python-parted 439(define-public python-parted
440 (package 440 (package
441 (name "python-parted") 441 (name "python-parted")
442 (version "3.11.1") 442 (version "3.11.2")
443 (source 443 (source
444 (origin 444 (origin
445 (method url-fetch) 445 (method git-fetch)
446 (uri (string-append "https://github.com/dcantrell/pyparted/archive/v" 446 (uri (git-reference
447 version ".tar.gz")) 447 (url "https://github.com/dcantrell/pyparted.git")
448 (commit (string-append "v" version))))
449 (file-name (git-file-name name version))
448 (sha256 450 (sha256
449 (base32 451 (base32 "0r6916n3w4vldxrq30a3z2iagvxgly4vfmlidjm65vwqnyv17bvn"))))
450 "0r1nyjj40nacnfnv17x2mnsj6ga1qplyxyza82v2809dfhim2fwq"))))
451 (build-system python-build-system) 452 (build-system python-build-system)
452 (arguments 453 (arguments
453 `(#:phases 454 `(#:phases
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 176aa90eab7..34f56d83405 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -236,7 +236,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
236(define-public emacs-with-editor 236(define-public emacs-with-editor
237 (package 237 (package
238 (name "emacs-with-editor") 238 (name "emacs-with-editor")
239 (version "2.8.0") 239 (version "2.8.3")
240 (source (origin 240 (source (origin
241 (method git-fetch) 241 (method git-fetch)
242 (uri (git-reference 242 (uri (git-reference
@@ -245,7 +245,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
245 (file-name (git-file-name name version)) 245 (file-name (git-file-name name version))
246 (sha256 246 (sha256
247 (base32 247 (base32
248 "1bbzvxnjpxqyvi808isld025b3pcidn4r2xf8hnk9bmzcfdvdr6q")))) 248 "1z2h9casyw1b93ikq2mf9xixyvbl90zddf0s66lqfiyj2y376pq3"))))
249 (build-system emacs-build-system) 249 (build-system emacs-build-system)
250 (propagated-inputs 250 (propagated-inputs
251 `(("emacs-dash" ,emacs-dash))) 251 `(("emacs-dash" ,emacs-dash)))
@@ -3151,7 +3151,7 @@ build jobs.")
3151(define-public emacs-company 3151(define-public emacs-company
3152 (package 3152 (package
3153 (name "emacs-company") 3153 (name "emacs-company")
3154 (version "0.9.7") 3154 (version "0.9.10")
3155 (source 3155 (source
3156 (origin 3156 (origin
3157 (method git-fetch) 3157 (method git-fetch)
@@ -3160,7 +3160,7 @@ build jobs.")
3160 (commit version))) 3160 (commit version)))
3161 (file-name (git-file-name name version)) 3161 (file-name (git-file-name name version))
3162 (sha256 3162 (sha256
3163 (base32 "1gpapjxs4l6fmmj22q0q1pyhj1yd9j5iqfqnjf1abskkj69lqkpj")))) 3163 (base32 "0shmv48bq9l5xm60dwx9lqyq6b39y3d7qjxdlah7dpipv5vhra42"))))
3164 (build-system emacs-build-system) 3164 (build-system emacs-build-system)
3165 (arguments 3165 (arguments
3166 `(#:phases 3166 `(#:phases
@@ -4180,7 +4180,7 @@ them easier to distinguish from other, less important buffers.")
4180(define-public emacs-prescient 4180(define-public emacs-prescient
4181 (package 4181 (package
4182 (name "emacs-prescient") 4182 (name "emacs-prescient")
4183 (version "2.2.2") 4183 (version "3.1")
4184 (source (origin 4184 (source (origin
4185 (method git-fetch) 4185 (method git-fetch)
4186 (uri (git-reference 4186 (uri (git-reference
@@ -4189,7 +4189,7 @@ them easier to distinguish from other, less important buffers.")
4189 (file-name (git-file-name name version)) 4189 (file-name (git-file-name name version))
4190 (sha256 4190 (sha256
4191 (base32 4191 (base32
4192 "1ncplx5p3cffyzg9ygzqqxj0vpvwrz9rp2n4z6c375a78fyydrk0")))) 4192 "1cdjvlwlvxxazz7hlxgvdp0pznvj1gzqa2r6k4im0cpdrnnng6j6"))))
4193 (build-system emacs-build-system) 4193 (build-system emacs-build-system)
4194 (propagated-inputs 4194 (propagated-inputs
4195 `(("emacs-company" ,emacs-company) 4195 `(("emacs-company" ,emacs-company)
@@ -4615,29 +4615,34 @@ use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
4615 (license license:gpl3+)))) 4615 (license license:gpl3+))))
4616 4616
4617(define-public emacs-ivy-rich 4617(define-public emacs-ivy-rich
4618 (package 4618 ;; The latest release version has a small mistake that has since been fixed,
4619 (name "emacs-ivy-rich") 4619 ;; so we use a more recent commit.
4620 (version "0.1.0") 4620 (let ((commit "f6bfa293c6df0b43cc411876b665816ec3f03d08")
4621 (source 4621 (version "0.1.4")
4622 (origin 4622 (revision "1"))
4623 (method git-fetch) 4623 (package
4624 (uri (git-reference 4624 (name "emacs-ivy-rich")
4625 (url "https://github.com/Yevgnen/ivy-rich.git") 4625 (version (git-version version revision commit))
4626 (commit version))) 4626 (source
4627 (file-name (git-file-name name version)) 4627 (origin
4628 (sha256 4628 (method git-fetch)
4629 (base32 "0ayf3dwfhafcbqnckm65zy8nc1rv9ji939qfn53wbhxkrgqdicgz")))) 4629 (uri (git-reference
4630 (build-system emacs-build-system) 4630 (url "https://github.com/Yevgnen/ivy-rich.git")
4631 (propagated-inputs 4631 (commit commit)))
4632 `(("emacs-ivy" ,emacs-ivy))) 4632 (file-name (git-file-name name version))
4633 (home-page "https://github.com/Yevgnen/ivy-rich") 4633 (sha256
4634 (synopsis "More friendly interface for @code{ivy}") 4634 (base32 "1s8nwwb1z6lkc58g02pi8w99qms948k8d02lw8k8cq47dw87i219"))))
4635 (description 4635 (build-system emacs-build-system)
4636 "This package extends @code{ivy} by showing more information in the 4636 (propagated-inputs
4637 `(("emacs-ivy" ,emacs-ivy)))
4638 (home-page "https://github.com/Yevgnen/ivy-rich")
4639 (synopsis "More friendly interface for @code{ivy}")
4640 (description
4641 "This package extends @code{ivy} by showing more information in the
4637minibuffer for each candidate. It adds columns showing buffer modes, file 4642minibuffer for each candidate. It adds columns showing buffer modes, file
4638sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can 4643sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
4639show icons as well.") 4644show icons as well.")
4640 (license license:gpl3+))) 4645 (license license:gpl3+))))
4641 4646
4642(define-public emacs-avy 4647(define-public emacs-avy
4643 (package 4648 (package
@@ -5105,15 +5110,16 @@ strings, and code folding.")
5105(define-public emacs-nodejs-repl 5110(define-public emacs-nodejs-repl
5106 (package 5111 (package
5107 (name "emacs-nodejs-repl") 5112 (name "emacs-nodejs-repl")
5108 (version "0.2.0") 5113 (version "0.2.1")
5109 (source (origin 5114 (source (origin
5110 (method url-fetch) 5115 (method git-fetch)
5111 (uri (string-append "https://github.com/abicky/nodejs-repl.el" 5116 (uri (git-reference
5112 "/archive/" version ".tar.gz")) 5117 (url "https://github.com/abicky/nodejs-repl.el")
5118 (commit version)))
5119 (file-name (git-file-name name version))
5113 (sha256 5120 (sha256
5114 (base32 5121 (base32
5115 "0hq2cqdq2668yf48g7qnkci90nhih1gnhacsgz355jnib56lhmkz")) 5122 "05ccv87rnw7fss3lib8m9sywjrj6n92fnd7mmhmjh27g2klqc83z"))))
5116 (file-name (string-append name "-" version ".tar.gz"))))
5117 (build-system emacs-build-system) 5123 (build-system emacs-build-system)
5118 (home-page "https://github.com/abicky/nodejs-repl.el") 5124 (home-page "https://github.com/abicky/nodejs-repl.el")
5119 (synopsis "Node.js REPL inside Emacs") 5125 (synopsis "Node.js REPL inside Emacs")
@@ -5133,14 +5139,14 @@ features:
5133 (name "emacs-typescript-mode") 5139 (name "emacs-typescript-mode")
5134 (version "0.3") 5140 (version "0.3")
5135 (source (origin 5141 (source (origin
5136 (method url-fetch) 5142 (method git-fetch)
5137 (uri (string-append 5143 (uri (git-reference
5138 "https://github.com/ananthakumaran/typescript.el" 5144 (url "https://github.com/ananthakumaran/typescript.el")
5139 "/archive/v" version ".tar.gz")) 5145 (commit (string-append "v" version))))
5146 (file-name (git-file-name name version))
5140 (sha256 5147 (sha256
5141 (base32 5148 (base32
5142 "1gqjirm8scf0wysm7x97zdfbs4qa5nqdl64jfbkd18iskv5mg3rj")) 5149 "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh"))))
5143 (file-name (string-append name "-" version ".tar.gz"))))
5144 (build-system emacs-build-system) 5150 (build-system emacs-build-system)
5145 (home-page "https://github.com/ananthakumaran/typescript.el") 5151 (home-page "https://github.com/ananthakumaran/typescript.el")
5146 (synopsis "Emacs major mode for editing Typescript code") 5152 (synopsis "Emacs major mode for editing Typescript code")
@@ -5160,13 +5166,14 @@ indentation and filling of comments and C preprocessor fontification.")
5160 (name "emacs-tide") 5166 (name "emacs-tide")
5161 (version "3.2.3") 5167 (version "3.2.3")
5162 (source (origin 5168 (source (origin
5163 (method url-fetch) 5169 (method git-fetch)
5164 (uri (string-append "https://github.com/ananthakumaran/tide" 5170 (uri (git-reference
5165 "/archive/v" version ".tar.gz")) 5171 (url "https://github.com/ananthakumaran/tide")
5172 (commit (string-append "v" version))))
5173 (file-name (git-file-name name version))
5166 (sha256 5174 (sha256
5167 (base32 5175 (base32
5168 "1c600myr2yqbkmy9lify38lz0zzjdqk1733db5n7vsay16vn6fzi")) 5176 "19kjq4kr2j853p5qp1s79zxmrfprli82lsnphbrlp9vbnib28xyd"))))
5169 (file-name (string-append name "-" version ".tar.gz"))))
5170 (build-system emacs-build-system) 5177 (build-system emacs-build-system)
5171 (propagated-inputs 5178 (propagated-inputs
5172 `(("emacs-dash" ,emacs-dash) 5179 `(("emacs-dash" ,emacs-dash)
@@ -5761,14 +5768,14 @@ Dust.js, React/JSX, Angularjs, ejs, etc.")
5761 (name "emacs-wgrep") 5768 (name "emacs-wgrep")
5762 (version "2.3.0") 5769 (version "2.3.0")
5763 (source (origin 5770 (source (origin
5764 (method url-fetch) 5771 (method git-fetch)
5765 (uri (string-append 5772 (uri (git-reference
5766 "https://github.com/mhayashi1120/Emacs-wgrep/archive/" 5773 (url "https://github.com/mhayashi1120/Emacs-wgrep")
5767 version ".tar.gz")) 5774 (commit version)))
5768 (file-name (string-append name "-" version ".tar.gz")) 5775 (file-name (git-file-name name version))
5769 (sha256 5776 (sha256
5770 (base32 5777 (base32
5771 "1cssqbg03fjb6xwf7idv1l3jjsh9r5r232ryi11czqlxfiv658bj")))) 5778 "0pgyf9vfcahb495q01hi1mvkmv846w4rj6zyf52is8x7sjj7x44s"))))
5772 (build-system emacs-build-system) 5779 (build-system emacs-build-system)
5773 (home-page "https://github.com/mhayashi1120/Emacs-wgrep") 5780 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
5774 (synopsis "Edit a grep buffer and apply those changes to the files") 5781 (synopsis "Edit a grep buffer and apply those changes to the files")
@@ -6760,7 +6767,7 @@ notifications.")
6760(define-public emacs-alert 6767(define-public emacs-alert
6761 (package 6768 (package
6762 (name "emacs-alert") 6769 (name "emacs-alert")
6763 (version "1.2") 6770 (version "1.3")
6764 (source 6771 (source
6765 (origin 6772 (origin
6766 (method git-fetch) 6773 (method git-fetch)
@@ -6769,7 +6776,7 @@ notifications.")
6769 (commit (string-append "v" version)))) 6776 (commit (string-append "v" version))))
6770 (file-name (git-file-name name version)) 6777 (file-name (git-file-name name version))
6771 (sha256 6778 (sha256
6772 (base32 "1vpc3q40m6dcrslki4bg725j4kv6c6xfxwjjl1ilg7la49fwwf26")))) 6779 (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
6773 (build-system emacs-build-system) 6780 (build-system emacs-build-system)
6774 (propagated-inputs 6781 (propagated-inputs
6775 `(("emacs-gntp" ,emacs-gntp) 6782 `(("emacs-gntp" ,emacs-gntp)
@@ -6783,8 +6790,8 @@ customizable by the user.")
6783 (license license:gpl2+))) 6790 (license license:gpl2+)))
6784 6791
6785(define-public emacs-zones 6792(define-public emacs-zones
6786 (let ((commit "353fc38a6544eb59887bee045e373406f1d038a5") 6793 (let ((commit "3169815c323966ff8e252b44e3558d6d045243fe")
6787 (revision "1")) 6794 (revision "2"))
6788 (package 6795 (package
6789 (name "emacs-zones") 6796 (name "emacs-zones")
6790 (version (git-version "0" revision commit)) 6797 (version (git-version "0" revision commit))
@@ -6797,7 +6804,7 @@ customizable by the user.")
6797 (file-name (git-file-name name version)) 6804 (file-name (git-file-name name version))
6798 (sha256 6805 (sha256
6799 (base32 6806 (base32
6800 "0gwnw2giii2a14nlh62xp45f47cw6ikqphhzpmcw6c7mn9x5z2ar")) 6807 "039msns5596rz0my7fxpanpxwg1lkhpiibm9ppnlzaajx1hszbzl"))
6801 (patches 6808 (patches
6802 (search-patches 6809 (search-patches
6803 "emacs-zones-called-interactively.patch")))) 6810 "emacs-zones-called-interactively.patch"))))
@@ -7589,15 +7596,17 @@ and cangjie.")
7589(define-public emacs-posframe 7596(define-public emacs-posframe
7590 (package 7597 (package
7591 (name "emacs-posframe") 7598 (name "emacs-posframe")
7592 (version "0.4.2") 7599 (version "0.5.0")
7593 (source 7600 (source
7594 (origin 7601 (origin
7595 (method url-fetch) 7602 (method git-fetch)
7596 (uri (string-append 7603 (uri (git-reference
7597 "https://elpa.gnu.org/packages/posframe-" version ".el")) 7604 (url "https://github.com/tumashu/posframe")
7605 (commit (string-append "v" version))))
7606 (file-name (git-file-name name version))
7598 (sha256 7607 (sha256
7599 (base32 7608 (base32
7600 "1h8vvxvsg41vc1nnglqjs2q0k1yzfsn72skga9s76qa3zxmx6kds")))) 7609 "1fhjxj7gi2pj5rdnmf0gddiwd8iifgjgjp01c01npz1gwwixyqh3"))))
7601 (build-system emacs-build-system) 7610 (build-system emacs-build-system)
7602 ;; emacs-minimal does not include the function font-info 7611 ;; emacs-minimal does not include the function font-info
7603 (arguments `(#:emacs ,emacs)) 7612 (arguments `(#:emacs ,emacs))
@@ -7878,6 +7887,37 @@ other operations.")
7878on mouse-control.") 7887on mouse-control.")
7879 (license license:gpl3+))) 7888 (license license:gpl3+)))
7880 7889
7890(define-public emacs-gnugo
7891 (package
7892 (name "emacs-gnugo")
7893 (version "3.1.0")
7894 (source
7895 (origin
7896 (method url-fetch)
7897 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
7898 version ".tar"))
7899 (sha256
7900 (base32
7901 "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1"))))
7902 (build-system emacs-build-system)
7903 (arguments
7904 `(#:phases (modify-phases %standard-phases
7905 (add-after 'unpack 'configure-default-gnugo-xpms-variable
7906 (lambda _
7907 (substitute* "gnugo.el"
7908 (("defvar gnugo-xpms nil")
7909 "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
7910 #t)))))
7911 (propagated-inputs
7912 `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
7913 ("emacs-xpm" ,emacs-xpm)))
7914 (home-page "https://elpa.gnu.org/packages/gnugo.html")
7915 (synopsis "Emacs major mode for playing GNU Go")
7916 (description "This package provides an Emacs based interface for GNU Go.
7917It has a graphical mode where the board and stones are drawn using XPM images
7918and supports the use of a mouse.")
7919 (license license:gpl3+)))
7920
7881(define-public emacs-gnuplot 7921(define-public emacs-gnuplot
7882 (package 7922 (package
7883 (name "emacs-gnuplot") 7923 (name "emacs-gnuplot")
@@ -7962,20 +8002,20 @@ pressed simultaneously or a single key quickly pressed twice.")
7962(define-public emacs-evil-surround 8002(define-public emacs-evil-surround
7963 (package 8003 (package
7964 (name "emacs-evil-surround") 8004 (name "emacs-evil-surround")
7965 (version "1.0.0") 8005 (version "1.0.4")
7966 (source 8006 (source
7967 (origin 8007 (origin
7968 (method git-fetch) 8008 (method git-fetch)
7969 (uri (git-reference 8009 (uri (git-reference
7970 (url "https://github.com/timcharper/evil-surround.git") 8010 (url "https://github.com/emacs-evil/evil-surround")
7971 (commit (string-append "v" version)))) 8011 (commit version)))
7972 (file-name (git-file-name name version)) 8012 (file-name (git-file-name name version))
7973 (sha256 8013 (sha256
7974 (base32 "1smv7sqhm1l2bi9fmispnlmjssidblwkmiiycj1n3ag54q27z031")))) 8014 (base32 "1ajsi6xn8mliwzl24h6pp9rd91z7f20yvkphr9q7k6zpjrd7fb9q"))))
7975 (build-system emacs-build-system) 8015 (build-system emacs-build-system)
7976 (propagated-inputs 8016 (propagated-inputs
7977 `(("emacs-evil" ,emacs-evil))) 8017 `(("emacs-evil" ,emacs-evil)))
7978 (home-page "https://github.com/timcharper/evil-surround") 8018 (home-page "https://github.com/emacs-evil/evil-surround")
7979 (synopsis "Easily modify surrounding parentheses and quotes") 8019 (synopsis "Easily modify surrounding parentheses and quotes")
7980 (description "@code{emacs-evil-surround} allows easy deletion, change and 8020 (description "@code{emacs-evil-surround} allows easy deletion, change and
7981addition of surrounding pairs, such as parentheses and quotes, in evil mode.") 8021addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
@@ -8636,13 +8676,13 @@ created by @code{git format-patch}, from @code{magit}, @code{dired} and
8636 (version "1.3.3") 8676 (version "1.3.3")
8637 (source 8677 (source
8638 (origin 8678 (origin
8639 (method url-fetch) 8679 (method git-fetch)
8640 (uri (string-append "https://github.com/leathekd/erc-hl-nicks" 8680 (uri (git-reference
8641 "/archive/" version ".tar.gz")) 8681 (url "https://github.com/leathekd/erc-hl-nicks")
8642 (file-name (string-append name "-" version ".tar.gz")) 8682 (commit version)))
8683 (file-name (git-file-name name version))
8643 (sha256 8684 (sha256
8644 (base32 8685 (base32 "0c82rxpl5v7bbxirf1ksg06xv5xcddh8nkrpj7i6nvfarwdfnk4f"))))
8645 "1a1r2kc3688g8c2ybkpwh88kgmnqhg3h3032g2yn4zr9m0n3vpkr"))))
8646 (build-system emacs-build-system) 8686 (build-system emacs-build-system)
8647 (synopsis "Nickname highlighting for Emacs ERC") 8687 (synopsis "Nickname highlighting for Emacs ERC")
8648 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC 8688 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
@@ -8792,27 +8832,20 @@ an elisp expression.")
8792(define-public emacs-emojify 8832(define-public emacs-emojify
8793 (package 8833 (package
8794 (name "emacs-emojify") 8834 (name "emacs-emojify")
8795 (version "0.4") 8835 (version "1.2")
8796 (source 8836 (source
8797 (origin 8837 (origin
8798 (method url-fetch) 8838 (method git-fetch)
8799 (uri (string-append "https://github.com/iqbalansari/emacs-emojify/" 8839 (uri (git-reference
8800 "releases/download/v" version "/emojify-" 8840 (url "https://github.com/iqbalansari/emacs-emojify")
8801 version ".tar")) 8841 (commit (string-append "v" version))))
8842 (file-name (git-file-name name version))
8802 (sha256 8843 (sha256
8803 (base32 8844 (base32
8804 "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n")))) 8845 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
8805 (build-system emacs-build-system) 8846 (build-system emacs-build-system)
8806 (arguments 8847 (arguments
8807 `(#:phases 8848 `(#:include (cons "^data/" %default-include)))
8808 (modify-phases %standard-phases
8809 (add-after 'install 'install-data
8810 (lambda* (#:key outputs #:allow-other-keys)
8811 (copy-recursively "data"
8812 (string-append (assoc-ref outputs "out")
8813 "/share/emacs/site-lisp/guix.d/"
8814 "emojify-" ,version "/data"))
8815 #t)))))
8816 (propagated-inputs 8849 (propagated-inputs
8817 `(("emacs-ht" ,emacs-ht))) 8850 `(("emacs-ht" ,emacs-ht)))
8818 (home-page "https://github.com/iqbalansari/emacs-emojify") 8851 (home-page "https://github.com/iqbalansari/emacs-emojify")
@@ -8823,6 +8856,36 @@ well as Github-style emojis like @code{:smile:}. It provides a minor mode
8823@code{emojify-mode} to enable the display of emojis in a buffer.") 8856@code{emojify-mode} to enable the display of emojis in a buffer.")
8824 (license license:gpl3+))) 8857 (license license:gpl3+)))
8825 8858
8859(define-public emacs-make-it-so
8860 (let ((commit "bc3b01d6b9ed6ff66ebbd524234f9d6df60dd4be")
8861 (version "0.1.0")
8862 (revision "1"))
8863 (package
8864 (name "emacs-make-it-so")
8865 (version (git-version version revision commit))
8866 (source
8867 (origin
8868 (method git-fetch)
8869 (uri (git-reference
8870 (url "https://github.com/abo-abo/make-it-so")
8871 (commit commit)))
8872 (sha256
8873 (base32
8874 "0833bzlscpnkvjnrg3g54yr246afbjwri8n5wxk8drnsq6acvd8z"))))
8875 (build-system emacs-build-system)
8876 (arguments
8877 `(#:include (cons "^recipes/" %default-include)))
8878 (propagated-inputs
8879 `(("emacs-ivy" ,emacs-ivy)))
8880 (home-page "https://github.com/abo-abo/make-it-so")
8881 (synopsis "Transform files with Makefile recipes")
8882 (description "This package provides an interface for selecting from
8883different conversion recipes, often including tools like @code{ffmpeg} or
8884@code{convert}. The conversion command need only be written once, and
8885subsequent invocations can be readily customized. Several recipes are
8886included by default, and more can be readily added.")
8887 (license license:gpl3+))))
8888
8826(define-public emacs-websocket 8889(define-public emacs-websocket
8827 (package 8890 (package
8828 (name "emacs-websocket") 8891 (name "emacs-websocket")
@@ -9186,7 +9249,7 @@ Feautures:
9186(define-public emacs-evil-matchit 9249(define-public emacs-evil-matchit
9187 (package 9250 (package
9188 (name "emacs-evil-matchit") 9251 (name "emacs-evil-matchit")
9189 (version "2.2.9") 9252 (version "2.3.0")
9190 (source 9253 (source
9191 (origin 9254 (origin
9192 (method git-fetch) 9255 (method git-fetch)
@@ -9195,7 +9258,7 @@ Feautures:
9195 (commit version))) 9258 (commit version)))
9196 (file-name (git-file-name name version)) 9259 (file-name (git-file-name name version))
9197 (sha256 9260 (sha256
9198 (base32 "12if45pxfndy3d7r4gd3zx4d3jk4d64fdmwkhc3y5zhqq9h9iy4c")))) 9261 (base32 "0y6q42hml7jgf060d83m7hf270h01858g5kxw12na9n4r4jjpdg1"))))
9199 (build-system emacs-build-system) 9262 (build-system emacs-build-system)
9200 (propagated-inputs 9263 (propagated-inputs
9201 `(("emacs-evil" ,emacs-evil))) 9264 `(("emacs-evil" ,emacs-evil)))
@@ -9646,6 +9709,27 @@ matches\" in the mode line in various search modes. This is an Emacs port of
9646Anzu.zim.") 9709Anzu.zim.")
9647 (license license:gpl3+))) 9710 (license license:gpl3+)))
9648 9711
9712(define-public emacs-ascii-art-to-unicode
9713 (package
9714 (name "emacs-ascii-art-to-unicode")
9715 (version "1.12")
9716 (source
9717 (origin
9718 (method url-fetch)
9719 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
9720 version ".el"))
9721 (sha256
9722 (base32
9723 "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna"))))
9724 (build-system emacs-build-system)
9725 (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
9726 (synopsis "ASCII to Unicode art converter for Emacs")
9727 (description "This Emacs package provides the commands @command{aa2u} and
9728@command{aa2u-rectangle}. Both of these commands can be used to convert
9729simple ASCII art line drawings to Unicode; the former works on the active
9730region of the buffer, while the latter works on rectangular selections.")
9731 (license license:gpl3+)))
9732
9649(define-public emacs-emmet-mode 9733(define-public emacs-emmet-mode
9650 (package 9734 (package
9651 (name "emacs-emmet-mode") 9735 (name "emacs-emmet-mode")
@@ -9758,12 +9842,13 @@ and can be consulted and modified.")
9758 (version "0.03") 9842 (version "0.03")
9759 (source 9843 (source
9760 (origin 9844 (origin
9761 (method url-fetch) 9845 (method git-fetch)
9762 (uri (string-append "https://github.com/syohex/emacs-evil-anzu" 9846 (uri (git-reference
9763 "/archive/" version ".tar.gz")) 9847 (url "https://github.com/syohex/emacs-evil-anzu")
9764 (file-name (string-append name "-" version ".tar.gz")) 9848 (commit version)))
9849 (file-name (git-file-name name version))
9765 (sha256 9850 (sha256
9766 (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns")))) 9851 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
9767 (build-system emacs-build-system) 9852 (build-system emacs-build-system)
9768 (propagated-inputs 9853 (propagated-inputs
9769 `(("emacs-evil" ,emacs-evil) 9854 `(("emacs-evil" ,emacs-evil)
@@ -10106,29 +10191,153 @@ text-mode (i.e. Org-mode).")
10106 (license license:gpl3+)))) 10191 (license license:gpl3+))))
10107 10192
10108(define-public emacs-outshine 10193(define-public emacs-outshine
10109 (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6")) 10194 (package
10195 (name "emacs-outshine")
10196 (version "3.0.1")
10197 (source (origin
10198 (method git-fetch)
10199 (uri (git-reference
10200 (url "https://github.com/alphapapa/outshine.git")
10201 (commit (string-append "v" version))))
10202 (file-name (git-file-name name version))
10203 (sha256
10204 (base32
10205 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
10206 (build-system emacs-build-system)
10207 (propagated-inputs
10208 `(("emacs-outorg" ,emacs-outorg)))
10209 (home-page "https://github.com/alphapapa/outshine")
10210 (synopsis "Emacs outline with outshine")
10211 (description "Outshine attempts to bring the look and feel of
10212@code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
10213of @code{outline-minor-mode} (@code{org-mode} itself derives from
10214outline-mode), so there is no such thing like an outshine mode, only
10215@code{outline-minor-mode} with outshine extensions loaded.")
10216 (license license:gpl3+)))
10217
10218(define-public emacs-frecency
10219 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
10220 (version "0.1-pre")
10221 (revision "1"))
10110 (package 10222 (package
10111 (name "emacs-outshine") 10223 (name "emacs-frecency")
10112 (version (git-version "2.0" "1" commit)) 10224 (version (git-version version revision commit))
10113 (source (origin 10225 (source (origin
10114 (method git-fetch) 10226 (method git-fetch)
10115 (uri (git-reference 10227 (uri (git-reference
10116 (url "https://github.com/alphapapa/outshine.git") 10228 (url "https://github.com/alphapapa/frecency.el")
10117 (commit commit))) 10229 (commit commit)))
10118 (file-name (git-file-name name version))
10119 (sha256 10230 (sha256
10120 (base32 10231 (base32
10121 "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv")))) 10232 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
10233 (file-name (git-file-name name version))))
10122 (build-system emacs-build-system) 10234 (build-system emacs-build-system)
10123 (propagated-inputs 10235 (propagated-inputs
10124 `(("emacs-outorg" ,emacs-outorg))) 10236 `(("emacs-a" ,emacs-a)
10125 (home-page "https://github.com/alphapapa/outshine") 10237 ("emacs-dash" ,emacs-dash)))
10126 (synopsis "Emacs outline with outshine") 10238 (home-page "https://github.com/alphapapa/frecency.el")
10127 (description "Outshine attempts to bring the look and feel of 10239 (synopsis "Sort items by frequency and recency of access")
10128@code{org-mode} to an Emacs outside of the Org major-mode. It is an extension 10240 (description "This package provides a way of sorting items via
10129of @code{outline-minor-mode} (@code{org-mode} itself derives from 10241a heuristic based on frequency and recency.")
10130outline-mode), so there is no such thing like an outshine mode, only 10242 (license license:gpl3+))))
10131@code{outline-minor-mode} with outshine extensions loaded.") 10243
10244(define-public emacs-org-recent-headings
10245 (package
10246 (name "emacs-org-recent-headings")
10247 (version "0.1")
10248 (source (origin
10249 (method git-fetch)
10250 (uri (git-reference
10251 (url "https://github.com/alphapapa/org-recent-headings.git")
10252 (commit version)))
10253 (file-name (git-file-name name version))
10254 (sha256
10255 (base32
10256 "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
10257 (build-system emacs-build-system)
10258 (propagated-inputs
10259 `(("emacs-org" ,emacs-org)
10260 ("emacs-dash" ,emacs-dash)
10261 ("emacs-frecency" ,emacs-frecency)))
10262 (home-page "https://github.com/alphapapa/org-recent-headings")
10263 (synopsis "Navigate to recently used Org headings and lists")
10264 (description "This package maintains a list of recently used Org headings,
10265as well as functions for navigating between these headings.")
10266 (license license:gpl3+)))
10267
10268(define-public emacs-org-super-agenda
10269 (package
10270 (name "emacs-org-super-agenda")
10271 (version "1.1")
10272 (source (origin
10273 (method git-fetch)
10274 (uri (git-reference
10275 (url "https://github.com/alphapapa/org-super-agenda")
10276 (commit version)))
10277 (file-name (git-file-name name version))
10278 (sha256
10279 (base32
10280 "0vzf91lsxnhwf52kvm8ycpf0wb9c8l91689vyhwgv4wz8q6cvjwp"))))
10281 (build-system emacs-build-system)
10282 (propagated-inputs
10283 `(("emacs-org" ,emacs-org)
10284 ("emacs-dash" ,emacs-dash)
10285 ("emacs-ht" ,emacs-ht)
10286 ("emacs-s" ,emacs-s)))
10287 (home-page "https://github.com/alphapapa/org-super-agenda")
10288 (synopsis "Supercharged Org agenda")
10289 (description "This package allows items in the Org agenda to be grouped
10290into sections while preserving the structure imposed by any timestamps.")
10291 (license license:gpl3+)))
10292
10293(define-public emacs-org-make-toc
10294 (package
10295 (name "emacs-org-make-toc")
10296 (version "0.3")
10297 (source (origin
10298 (method git-fetch)
10299 (uri (git-reference
10300 (url "https://github.com/alphapapa/org-make-toc")
10301 (commit version)))
10302 (file-name (git-file-name name version))
10303 (sha256
10304 (base32
10305 "0syhj8q4pv33xgl5qa6x27yhwqvfhffw5xqp819hj4qs1ddlc7j5"))))
10306 (build-system emacs-build-system)
10307 (propagated-inputs
10308 `(("emacs-org" ,emacs-org)
10309 ("emacs-dash" ,emacs-dash)
10310 ("emacs-s" ,emacs-s)))
10311 (home-page "https://github.com/alphapapa/org-make-toc")
10312 (synopsis "Maintain a table of contents for an Org file")
10313 (description "This package facilitates the creation and maintenance of
10314tables of contents.")
10315 (license license:gpl3+)))
10316
10317(define-public emacs-org-ql
10318 (let ((commit "0aec8ec60395197b2ef2b885c216cf84286efed9")
10319 (version "0.1-pre")
10320 (revision "1"))
10321 (package
10322 (name "emacs-org-ql")
10323 (version (git-version version revision commit))
10324 (source (origin
10325 (method git-fetch)
10326 (uri (git-reference
10327 (url "https://github.com/alphapapa/org-ql")
10328 (commit commit)))
10329 (sha256
10330 (base32
10331 "0bj85hxhym7rvkaddcxybxdm7g7w439wij9f2w5ljz1hmvp55991"))
10332 (file-name (git-file-name name version))))
10333 (build-system emacs-build-system)
10334 (propagated-inputs
10335 `(("emacs-s" ,emacs-s)
10336 ("emacs-dash" ,emacs-dash)))
10337 (home-page "https://github.com/alphapapa/org-ql")
10338 (synopsis "Query language for Org buffers")
10339 (description "This package provides a Lispy query language for Org
10340files, allowing for actions to be performed based on search criteria.")
10132 (license license:gpl3+)))) 10341 (license license:gpl3+))))
10133 10342
10134(define-public emacs-parsebib 10343(define-public emacs-parsebib
@@ -11206,10 +11415,10 @@ You should really read org-ref.org in this package for details.")
11206 11415
11207;; This project is unmaintained. Please use emacs-org-re-reveal instead. 11416;; This project is unmaintained. Please use emacs-org-re-reveal instead.
11208(define-public emacs-org-reveal 11417(define-public emacs-org-reveal
11209 (let ((commit "1cdd088ec5fab631c564dca7f9f74fd3e9b7d4d4")) 11418 (let ((commit "9210413202a360a559a51e8275faa42be68cf44b"))
11210 (package 11419 (package
11211 (name "emacs-org-reveal") 11420 (name "emacs-org-reveal")
11212 (version (git-version "0.1" "2" commit)) 11421 (version (git-version "0.1" "3" commit))
11213 (source (origin 11422 (source (origin
11214 (method git-fetch) 11423 (method git-fetch)
11215 (uri (git-reference 11424 (uri (git-reference
@@ -11218,7 +11427,7 @@ You should really read org-ref.org in this package for details.")
11218 (file-name (git-file-name name version)) 11427 (file-name (git-file-name name version))
11219 (sha256 11428 (sha256
11220 (base32 11429 (base32
11221 "1vjxjadq2i74p96y9jxnqj1yb86fsgxzmn7bjgnb88ay6nvc1l72")))) 11430 "1wlfk823d3vrn480m38j7ncaqm193lvh6y22b92fx4b3yhdbndza"))))
11222 (build-system emacs-build-system) 11431 (build-system emacs-build-system)
11223 (home-page "https://github.com/yjwen/org-reveal") 11432 (home-page "https://github.com/yjwen/org-reveal")
11224 (synopsis "Org and Reveal.js powered HTML presentation tool") 11433 (synopsis "Org and Reveal.js powered HTML presentation tool")
@@ -11382,7 +11591,7 @@ downloading manager for Emacs.")
11382(define-public emacs-helpful 11591(define-public emacs-helpful
11383 (package 11592 (package
11384 (name "emacs-helpful") 11593 (name "emacs-helpful")
11385 (version "0.15") 11594 (version "0.16")
11386 (source 11595 (source
11387 (origin 11596 (origin
11388 (method git-fetch) 11597 (method git-fetch)
@@ -11391,10 +11600,14 @@ downloading manager for Emacs.")
11391 (commit version))) 11600 (commit version)))
11392 (file-name (git-file-name name version)) 11601 (file-name (git-file-name name version))
11393 (sha256 11602 (sha256
11394 (base32 "1rqnx7672175288yqaslw0d9vw04j6psw7mys8j9zcp2i72hlvkn")))) 11603 (base32 "1pzlx3galyryd3hd84hnd7r5s6yl9sdrfhy1s6dgz40glw41wmpr"))))
11395 (build-system emacs-build-system) 11604 (build-system emacs-build-system)
11396 (propagated-inputs 11605 (propagated-inputs
11397 `(("emacs-elisp-refs" ,emacs-elisp-refs))) 11606 `(("emacs-elisp-refs" ,emacs-elisp-refs)
11607 ("emacs-dash" ,emacs-dash)
11608 ("emacs-s" ,emacs-s)
11609 ("emacs-f" ,emacs-f)
11610 ("emacs-shut-up" ,emacs-shut-up)))
11398 (home-page "https://github.com/Wilfred/helpful") 11611 (home-page "https://github.com/Wilfred/helpful")
11399 (synopsis "More contextual information in Emacs help") 11612 (synopsis "More contextual information in Emacs help")
11400 (description "@code{helpful} is an alternative to the built-in Emacs help 11613 (description "@code{helpful} is an alternative to the built-in Emacs help
@@ -12780,10 +12993,30 @@ datastructures as needed, both for method parameters and return values, making
12780using XML-RPC methods fairly transparent to the Lisp code.") 12993using XML-RPC methods fairly transparent to the Lisp code.")
12781 (license license:gpl3+)))) 12994 (license license:gpl3+))))
12782 12995
12996(define-public emacs-xpm
12997 (package
12998 (name "emacs-xpm")
12999 (version "1.0.4")
13000 (source
13001 (origin
13002 (method url-fetch)
13003 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
13004 version ".tar"))
13005 (sha256
13006 (base32
13007 "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh"))))
13008 (build-system emacs-build-system)
13009 (home-page "https://elpa.gnu.org/packages/xpm.html")
13010 (synopsis "XPM image editing mode for Emacs")
13011 (description "This Emacs package makes editing XPM images easy (and maybe
13012fun). Editing is done directly on the (textual) image format, for maximal
13013cohesion with the Emacs Way.")
13014 (license license:gpl3+)))
13015
12783(define-public emacs-fish-completion 13016(define-public emacs-fish-completion
12784 (package 13017 (package
12785 (name "emacs-fish-completion") 13018 (name "emacs-fish-completion")
12786 (version "1.0") 13019 (version "1.1")
12787 (source 13020 (source
12788 (origin 13021 (origin
12789 (method url-fetch) 13022 (method url-fetch)
@@ -12793,7 +13026,7 @@ using XML-RPC methods fairly transparent to the Lisp code.")
12793 version)) 13026 version))
12794 (sha256 13027 (sha256
12795 (base32 13028 (base32
12796 "1hpma1c5j50ja03ibr7h1xmyv7k8j3rbvqivad47kwqhlsgw0jk0")))) 13029 "0bpvifv6c2a65nks6kvarw0hhm37fnyy74wikwf9qq1i20va0fpv"))))
12797 (build-system emacs-build-system) 13030 (build-system emacs-build-system)
12798 (inputs `(("fish" ,fish))) 13031 (inputs `(("fish" ,fish)))
12799 (arguments 13032 (arguments
@@ -13593,7 +13826,7 @@ buffers – other modes on the TODO list).
13593(define-public emacs-magit-todos 13826(define-public emacs-magit-todos
13594 (package 13827 (package
13595 (name "emacs-magit-todos") 13828 (name "emacs-magit-todos")
13596 (version "1.1.7") 13829 (version "1.2")
13597 (source 13830 (source
13598 (origin 13831 (origin
13599 (method git-fetch) 13832 (method git-fetch)
@@ -13603,7 +13836,7 @@ buffers – other modes on the TODO list).
13603 (file-name (git-file-name name version)) 13836 (file-name (git-file-name name version))
13604 (sha256 13837 (sha256
13605 (base32 13838 (base32
13606 "0qagdxpik64n4rw9scy451ws5sw00v64ri9g2dcw7b66bx2c6c6w")))) 13839 "17a18gszbypz82bj36xbfyykc4s9rz83vwmpxvlf65svhd51c0nh"))))
13607 (build-system emacs-build-system) 13840 (build-system emacs-build-system)
13608 (propagated-inputs 13841 (propagated-inputs
13609 `(("emacs-async" ,emacs-async) 13842 `(("emacs-async" ,emacs-async)
@@ -14456,7 +14689,7 @@ to open SQLite databases.")
14456(define-public emacs-nix-mode 14689(define-public emacs-nix-mode
14457 (package 14690 (package
14458 (name "emacs-nix-mode") 14691 (name "emacs-nix-mode")
14459 (version "1.2.2") 14692 (version "1.4.1")
14460 (source 14693 (source
14461 (origin 14694 (origin
14462 (method git-fetch) 14695 (method git-fetch)
@@ -14465,10 +14698,11 @@ to open SQLite databases.")
14465 (commit (string-append "v" version)))) 14698 (commit (string-append "v" version))))
14466 (file-name (git-file-name name version)) 14699 (file-name (git-file-name name version))
14467 (sha256 14700 (sha256
14468 (base32 "1vz3s2jx14nzy53f04d821n4f2s22ys5h9s7af6cnpynkwawyhhq")))) 14701 (base32 "04xpgg9nba5m1bl7ci5l456whcb8nfhsbvgxyx89bp0zqgr005q7"))))
14469 (build-system emacs-build-system) 14702 (build-system emacs-build-system)
14470 (inputs 14703 (inputs
14471 `(("emacs-company" ,emacs-company) 14704 `(("emacs-company" ,emacs-company)
14705 ("emacs-json-mode" ,emacs-json-mode)
14472 ("emacs-mmm-mode" ,emacs-mmm-mode))) 14706 ("emacs-mmm-mode" ,emacs-mmm-mode)))
14473 (home-page "https://github.com/NixOS/nix-mode") 14707 (home-page "https://github.com/NixOS/nix-mode")
14474 (synopsis "Emacs major mode for editing Nix expressions") 14708 (synopsis "Emacs major mode for editing Nix expressions")
@@ -14665,31 +14899,30 @@ recursively. The results are cached for speed.")
14665 (license license:gpl3+))) 14899 (license license:gpl3+)))
14666 14900
14667(define-public emacs-orgit 14901(define-public emacs-orgit
14668 (let ((commit "2456436a7e64d26bcf455b3890a586acaa3e7f93")) 14902 (package
14669 (package 14903 (name "emacs-orgit")
14670 (name "emacs-orgit") 14904 (version "1.5.3")
14671 (version (git-version "1.5.1" "2" commit)) 14905 (home-page "https://github.com/magit/orgit")
14672 (home-page "https://github.com/magit/orgit") 14906 (source (origin
14673 (source (origin 14907 (method git-fetch)
14674 (method git-fetch) 14908 (uri (git-reference
14675 (uri (git-reference 14909 (url home-page)
14676 (url home-page) 14910 (commit (string-append "v" version))))
14677 (commit commit))) 14911 (file-name (git-file-name name version))
14678 (file-name (git-file-name name version)) 14912 (sha256
14679 (sha256 14913 (base32
14680 (base32 14914 "1ywavzki510rslsgfm0cnn3mlh644p61ha2nfb715xhkg7cd3j9g"))))
14681 "1i52dq2ynddb1irgigr5mdwfbfd3bvm1f29jnzd7nlc0nk186nvh")))) 14915 (build-system emacs-build-system)
14682 (build-system emacs-build-system) 14916 (propagated-inputs
14683 (propagated-inputs 14917 `(("emacs-dash" ,emacs-dash)
14684 `(("emacs-dash" ,emacs-dash) 14918 ("emacs-magit" ,emacs-magit)))
14685 ("emacs-magit" ,emacs-magit))) 14919 (synopsis "Support for Org links to Magit buffers")
14686 (synopsis "Support for Org links to Magit buffers") 14920 (description "This package defines several Org link types, which can be
14687 (description "This package defines several Org link types, which can be
14688used to link to certain Magit buffers. Use the command 14921used to link to certain Magit buffers. Use the command
14689@command{org-store-link} while such a buffer is current to store a link. 14922@command{org-store-link} while such a buffer is current to store a link.
14690Later you can insert it into an Org buffer using the command 14923Later you can insert it into an Org buffer using the command
14691@code{org-insert-link}.") 14924@code{org-insert-link}.")
14692 (license license:gpl3+)))) 14925 (license license:gpl3+)))
14693 14926
14694(define-public emacs-amx 14927(define-public emacs-amx
14695 (package 14928 (package
@@ -15616,7 +15849,7 @@ previewed by scrolling up and down within a @code{dired} buffer.")
15616(define-public emacs-counsel-etags 15849(define-public emacs-counsel-etags
15617 (package 15850 (package
15618 (name "emacs-counsel-etags") 15851 (name "emacs-counsel-etags")
15619 (version "1.8.3") 15852 (version "1.8.4")
15620 (source 15853 (source
15621 (origin 15854 (origin
15622 (method git-fetch) 15855 (method git-fetch)
@@ -15626,7 +15859,7 @@ previewed by scrolling up and down within a @code{dired} buffer.")
15626 (file-name (git-file-name name version)) 15859 (file-name (git-file-name name version))
15627 (sha256 15860 (sha256
15628 (base32 15861 (base32
15629 "1d8nlrbsyza6q7yqm9248bxxsf49qf6hchg3zwv0l11acn3w8np5")))) 15862 "14my9jvxl26a5yn381h5pi5481y9d9gyk7wnxxd0s4sjc964c5h5"))))
15630 (build-system emacs-build-system) 15863 (build-system emacs-build-system)
15631 (propagated-inputs 15864 (propagated-inputs
15632 `(("emacs-ivy" ,emacs-ivy))) 15865 `(("emacs-ivy" ,emacs-ivy)))
@@ -15636,6 +15869,32 @@ previewed by scrolling up and down within a @code{dired} buffer.")
15636and searching through @code{Ctags} files.") 15869and searching through @code{Ctags} files.")
15637 (license license:gpl3+))) 15870 (license license:gpl3+)))
15638 15871
15872(define-public emacs-org-download
15873 (let ((commit "ac72bf8fce3e855da60687027b6b8601cf1de480")
15874 (version "0.1.0")
15875 (revision "1"))
15876 (package
15877 (name "emacs-org-download")
15878 (version (git-version version revision commit))
15879 (source (origin
15880 (method git-fetch)
15881 (uri (git-reference
15882 (url "https://github.com/abo-abo/org-download")
15883 (commit commit)))
15884 (sha256
15885 (base32
15886 "0ax5wd44765wnwabkam1g2r62gq8crx2qq733s2mg1z72cfvwxqb"))
15887 (file-name (git-file-name name version))))
15888 (build-system emacs-build-system)
15889 (propagated-inputs
15890 `(("emacs-org" ,emacs-org)
15891 ("emacs-async" ,emacs-async)))
15892 (home-page "https://github.com/abo-abo/org-download")
15893 (synopsis "Facilitate moving images")
15894 (description "This package provides utilities for managing image files
15895copied into @code{org-mode} buffers.")
15896 (license license:gpl3+))))
15897
15639(define-public emacs-helm-dash 15898(define-public emacs-helm-dash
15640 (let ((commit "192b862185df661439a06de644791171e899348a") 15899 (let ((commit "192b862185df661439a06de644791171e899348a")
15641 (version "1.3.0") 15900 (version "1.3.0")
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index c32569dd1b7..c1ae14bc420 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -233,7 +233,7 @@ turbo speed, networked multiplayer, and graphical enhancements.")
233(define-public dosbox 233(define-public dosbox
234 (package 234 (package
235 (name "dosbox") 235 (name "dosbox")
236 (version "0.74-2") 236 (version "0.74-3")
237 (source (origin 237 (source (origin
238 (method url-fetch) 238 (method url-fetch)
239 (uri (string-append "https://sourceforge.net/projects/dosbox" 239 (uri (string-append "https://sourceforge.net/projects/dosbox"
@@ -242,7 +242,7 @@ turbo speed, networked multiplayer, and graphical enhancements.")
242 (file-name (string-append name "-" version ".tar.gz")) 242 (file-name (string-append name "-" version ".tar.gz"))
243 (sha256 243 (sha256
244 (base32 244 (base32
245 "1ksp1b5szi0vy4x55rm3j1y9wq5mlslpy8llpg87rpdyjlsk0xvh")))) 245 "02i648i50dwicv1vaql15rccv4g8h5blf5g6inv67lrfxpbkvlf0"))))
246 (build-system gnu-build-system) 246 (build-system gnu-build-system)
247 (arguments 247 (arguments
248 `(#:phases (modify-phases %standard-phases 248 `(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/enchant.scm b/gnu/packages/enchant.scm
index 0392a709e23..ce148b47a5c 100644
--- a/gnu/packages/enchant.scm
+++ b/gnu/packages/enchant.scm
@@ -1,6 +1,7 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2014 Marek Benc <merkur32@gmail.com> 2;;; Copyright © 2014 Marek Benc <merkur32@gmail.com>
3;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> 3;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
4;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
4;;; 5;;;
5;;; This file is part of GNU Guix. 6;;; This file is part of GNU Guix.
6;;; 7;;;
@@ -32,7 +33,7 @@
32(define-public enchant 33(define-public enchant
33 (package 34 (package
34 (name "enchant") 35 (name "enchant")
35 (version "2.2.3") 36 (version "2.2.4")
36 (source (origin 37 (source (origin
37 (method url-fetch) 38 (method url-fetch)
38 (uri (string-append "https://github.com/AbiWord/enchant/releases" 39 (uri (string-append "https://github.com/AbiWord/enchant/releases"
@@ -40,7 +41,7 @@
40 version ".tar.gz")) 41 version ".tar.gz"))
41 (sha256 42 (sha256
42 (base32 43 (base32
43 "0v87p1ls0gym95qirijpclk650sjbkcjjl6ssk059zswcwaykn5b")))) 44 "1p6a3qmrh8bjzds6x7rg9da0ir44gg804jzkf634h39wsa4vdmpm"))))
44 (build-system gnu-build-system) 45 (build-system gnu-build-system)
45 (arguments 46 (arguments
46 '(#:configure-flags '("--disable-static" 47 '(#:configure-flags '("--disable-static"
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 5b95bcb7044..cd5d3b7d9a9 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -399,7 +399,7 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
399 (package 399 (package
400 (inherit electrum) 400 (inherit electrum)
401 (name "electron-cash") 401 (name "electron-cash")
402 (version "4.0.1") 402 (version "4.0.7")
403 (source 403 (source
404 (origin 404 (origin
405 (method url-fetch) 405 (method url-fetch)
@@ -410,7 +410,7 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
410 ".tar.gz")) 410 ".tar.gz"))
411 (sha256 411 (sha256
412 (base32 412 (base32
413 "16fi03f23yb5r9s64x1a9wrxnvivlbawvrbq4d486yclzl1r7y48")) 413 "0xswmr68cm1c77lzisi3z812jzqczm9dfrshfhdq42zz5kaz4gnn"))
414 (modules '((guix build utils))) 414 (modules '((guix build utils)))
415 (snippet 415 (snippet
416 '(begin 416 '(begin
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index b9527659db9..4b37ffdf3c9 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -631,7 +631,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
631(define-public weston 631(define-public weston
632 (package 632 (package
633 (name "weston") 633 (name "weston")
634 (version "6.0.0") 634 (version "6.0.1")
635 (source (origin 635 (source (origin
636 (method url-fetch) 636 (method url-fetch)
637 (uri (string-append 637 (uri (string-append
@@ -639,7 +639,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
639 "weston-" version ".tar.xz")) 639 "weston-" version ".tar.xz"))
640 (sha256 640 (sha256
641 (base32 641 (base32
642 "04p6hal5kalmdp5dxwh2h5qhkkb4dvbsk7l091zvvcq70slj6qsl")))) 642 "1d2m658ll8x7prlsfk71qgw89c7dz6y7d6nndfxwl49fmrd6sbxz"))))
643 (build-system meson-build-system) 643 (build-system meson-build-system)
644 (native-inputs 644 (native-inputs
645 `(("pkg-config" ,pkg-config) 645 `(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 63ccd204704..05a68b717ae 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -153,15 +153,15 @@ is used in some video games and movies.")
153(define-public deutex 153(define-public deutex
154 (package 154 (package
155 (name "deutex") 155 (name "deutex")
156 (version "5.1.2") 156 (version "5.2.0")
157 (source (origin 157 (source (origin
158 (method url-fetch) 158 (method url-fetch)
159 (uri (string-append "https://github.com/Doom-Utils/" name 159 (uri (string-append "https://github.com/Doom-Utils/deutex"
160 "/releases/download/v" version "/" 160 "/releases/download/v" version "/"
161 name "-" version ".tar.xz")) 161 "deutex-" version ".tar.xz"))
162 (sha256 162 (sha256
163 (base32 163 (base32
164 "1rj3w4xa0n4jixy4j7p6gbclylbgxvhdnji7xnkydrqii9rxnbp4")))) 164 "1d536d3i78k4ch8mjg7lqnamnyfpp2x5x7mzx5smqi9ad8lb6hqz"))))
165 (build-system gnu-build-system) 165 (build-system gnu-build-system)
166 (native-inputs `(("asciidoc" ,asciidoc))) 166 (native-inputs `(("asciidoc" ,asciidoc)))
167 (home-page "https://github.com/Doom-Utils/deutex") 167 (home-page "https://github.com/Doom-Utils/deutex")
@@ -1511,3 +1511,29 @@ added. The permanent goal is to create the open source Quake 3 distribution
1511upon which people base their games, ports to new platforms, and other 1511upon which people base their games, ports to new platforms, and other
1512projects.") 1512projects.")
1513 (license license:gpl2)))) 1513 (license license:gpl2))))
1514
1515(define-public openvr
1516 (package
1517 (name "openvr")
1518 (version "1.4.18")
1519 (home-page "https://github.com/ValveSoftware/openvr/")
1520 (source
1521 (origin
1522 (method git-fetch)
1523 (uri (git-reference
1524 (url home-page)
1525 (commit (string-append "v" version))))
1526 (file-name (git-file-name name version))
1527 (sha256
1528 (base32
1529 "0m92634j6g0f2xybbzklm79cnq20vidbk1jc62pnz12aabwixvyh"))))
1530 (build-system cmake-build-system)
1531 (arguments
1532 ;; No tests.
1533 '(#:tests? #f
1534 #:configure-flags (list "-DBUILD_SHARED=1")))
1535 (synopsis "Virtual reality software development kit")
1536 (description "OpenVR is an API and runtime that allows access to VR
1537hardware from multiple vendors without requiring that applications have
1538specific knowledge of the hardware they are targeting.")
1539 (license license:bsd-3)))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 8e8c6c80589..a102dc962fc 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -42,6 +42,7 @@
42;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu> 42;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
43;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com> 43;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com>
44;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl> 44;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
45;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
45;;; 46;;;
46;;; This file is part of GNU Guix. 47;;; This file is part of GNU Guix.
47;;; 48;;;
@@ -130,6 +131,7 @@
130 #:use-module (gnu packages netpbm) 131 #:use-module (gnu packages netpbm)
131 #:use-module (gnu packages networking) 132 #:use-module (gnu packages networking)
132 #:use-module (gnu packages ocaml) 133 #:use-module (gnu packages ocaml)
134 #:use-module (gnu packages opencl)
133 #:use-module (gnu packages pcre) 135 #:use-module (gnu packages pcre)
134 #:use-module (gnu packages perl) 136 #:use-module (gnu packages perl)
135 #:use-module (gnu packages perl-check) 137 #:use-module (gnu packages perl-check)
@@ -3542,7 +3544,7 @@ with the \"Stamp\" tool within Tux Paint.")
3542 (description "SuperTux is a free classic 2D jump'n run sidescroller game 3544 (description "SuperTux is a free classic 2D jump'n run sidescroller game
3543in a style similar to the original Super Mario games covered under 3545in a style similar to the original Super Mario games covered under
3544the GNU GPL.") 3546the GNU GPL.")
3545 (home-page "https://supertuxproject.org/") 3547 (home-page "https://supertux.org/")
3546 (license license:gpl3+))) 3548 (license license:gpl3+)))
3547 3549
3548(define-public tintin++ 3550(define-public tintin++
@@ -7250,6 +7252,26 @@ the game avoids complex inventory management and character building, relying
7250on items and player adaptability for character progression.") 7252on items and player adaptability for character progression.")
7251 (license license:isc))) 7253 (license license:isc)))
7252 7254
7255(define-public harmonist-tk
7256 (package
7257 (inherit harmonist)
7258 (name "harmonist-tk")
7259 (arguments
7260 (append
7261 (package-arguments harmonist)
7262 `(#:phases
7263 (modify-phases %standard-phases
7264 (replace 'build
7265 (lambda _
7266 (invoke "go" "install" "-v" "-x" "--tags" "tk"
7267 "git.tuxfamily.org/harmonist/harmonist")))
7268 (replace 'check
7269 (lambda _
7270 (invoke "go" "test" "--tags" "tk"
7271 "git.tuxfamily.org/harmonist/harmonist")))))))
7272 (inputs
7273 `(("go-github.com-nsf-gothic" ,go-github.com-nsf-gothic)))))
7274
7253(define-public drascula 7275(define-public drascula
7254 (package 7276 (package
7255 (name "drascula") 7277 (name "drascula")
@@ -7556,3 +7578,52 @@ remake of that series or any other game.")
7556 ;; released under both gpl2 and cc-by-sa3.0. Bundled Gigi library is 7578 ;; released under both gpl2 and cc-by-sa3.0. Bundled Gigi library is
7557 ;; released under lgpl2.1+. 7579 ;; released under lgpl2.1+.
7558 (license (list license:gpl2 license:cc-by-sa3.0 license:lgpl2.1+)))) 7580 (license (list license:gpl2 license:cc-by-sa3.0 license:lgpl2.1+))))
7581
7582(define-public leela-zero
7583 (package
7584 (name "leela-zero")
7585 (version "0.17")
7586 (source
7587 (origin
7588 (method git-fetch)
7589 (uri (git-reference
7590 (url "https://github.com/leela-zero/leela-zero.git")
7591 (commit (string-append "v" version))))
7592 (file-name (git-file-name name version))
7593 (sha256
7594 (base32
7595 "17px5iny8mql5c01bymcli7zfssswkzvb2i8gnsmjcck6i2n8srl"))
7596 (patches (search-patches "leela-zero-gtest.patch"))))
7597 (build-system cmake-build-system)
7598 (native-inputs
7599 `(("googletest" ,googletest)))
7600 (inputs
7601 `(("boost" ,boost)
7602 ("ocl-icd" ,ocl-icd)
7603 ("openblas" ,openblas)
7604 ("opencl-headers" ,opencl-headers)
7605 ("qtbase" ,qtbase)
7606 ("zlib" ,zlib)))
7607 (arguments
7608 '(#:configure-flags '("-DUSE_BLAS=YES")
7609 #:phases (modify-phases %standard-phases
7610 (add-before 'configure 'fix-tests
7611 (lambda* (#:key outputs #:allow-other-keys)
7612 (let ((home (getcwd)))
7613 (setenv "HOME" home)
7614 (substitute* "src/tests/gtests.cpp"
7615 (("\\.\\./src/tests/0k\\.txt")
7616 (string-append home "/src/tests/0k.txt"))
7617 (("cfg_gtp_mode = true;")
7618 "cfg_gtp_mode = true; cfg_cpu_only = true;")))
7619 #t))
7620 (replace 'check
7621 (lambda _
7622 (invoke "./tests"))))))
7623 (home-page "https://github.com/leela-zero/leela-zero")
7624 (synopsis "Program playing the game of Go")
7625 (description
7626 "Leela-zero is a Go engine with no human-provided knowledge, modeled after
7627the AlphaGo Zero paper. The current best network weights file for the engine
7628can be downloaded from @url{https://zero.sjeng.org/best-network}.")
7629 (license license:gpl3+)))
diff --git a/gnu/packages/genealogy.scm b/gnu/packages/genealogy.scm
new file mode 100644
index 00000000000..2db3fdb9180
--- /dev/null
+++ b/gnu/packages/genealogy.scm
@@ -0,0 +1,112 @@
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
3;;;
4;;; This file is part of GNU Guix.
5;;;
6;;; GNU Guix is free software; you can redistribute it and/or modify it
7;;; under the terms of the GNU General Public License as published by
8;;; the Free Software Foundation; either version 3 of the License, or (at
9;;; your option) any later version.
10;;;
11;;; GNU Guix is distributed in the hope that it will be useful, but
12;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14;;; GNU General Public License for more details.
15;;;
16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19(define-module (gnu packages genealogy)
20 #:use-module (guix build-system python)
21 #:use-module (guix git-download)
22 #:use-module ((guix licenses) #:prefix license:)
23 #:use-module (guix packages)
24 #:use-module (gnu packages fonts)
25 #:use-module (gnu packages freedesktop)
26 #:use-module (gnu packages geo)
27 #:use-module (gnu packages gettext)
28 #:use-module (gnu packages ghostscript)
29 #:use-module (gnu packages glib)
30 #:use-module (gnu packages gnome)
31 #:use-module (gnu packages graphviz)
32 #:use-module (gnu packages gtk)
33 #:use-module (gnu packages python)
34 #:use-module (gnu packages python-xyz)
35 #:use-module (gnu packages sqlite)
36 #:use-module (gnu packages version-control))
37
38(define-public gramps
39 (package
40 (name "gramps")
41 (version "5.0.1")
42 (source
43 (origin
44 (method git-fetch)
45 (uri (git-reference
46 (url "https://github.com/gramps-project/gramps.git")
47 (commit (string-append "v" version))))
48 (file-name (git-file-name name version))
49 (sha256
50 (base32
51 "1jz1fbjj6byndvir7qxzhd2ryirrd5h2kwndxpp53xdc05z1i8g7"))))
52 (build-system python-build-system)
53 (native-inputs
54 `(("gettext" ,gettext-minimal)
55 ("intltool" ,intltool)))
56 (inputs
57 `(("font-gnu-freefont-ttf" ,font-gnu-freefont-ttf)
58 ("geocode-glib" ,geocode-glib)
59 ("gexiv2" ,gexiv2)
60 ("ghostscript" ,ghostscript)
61 ("gobject-introspection" ,gobject-introspection)
62 ("gtk+" ,gtk+)
63 ("gtkspell3" ,gtkspell3)
64 ("graphviz" ,graphviz)
65 ("librsvg" ,librsvg)
66 ("osm-gps-map" ,osm-gps-map)
67 ("pango" ,pango)
68 ("python-bsddb3" ,python-bsddb3)
69 ("python-pillow" ,python-pillow)
70 ("python-pycairo" ,python-pycairo)
71 ("python-pygobject" ,python-pygobject)
72 ("python-pyicu" ,python-pyicu)
73 ("rcs" ,rcs)
74 ("sqlite" ,sqlite)
75 ("xdg-utils" ,xdg-utils)))
76 (arguments
77 `(#:imported-modules ((guix build glib-or-gtk-build-system)
78 ,@%python-build-system-modules)
79 #:modules ((ice-9 match)
80 (guix build python-build-system)
81 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
82 (guix build utils))
83 #:phases
84 (modify-phases %standard-phases
85 (add-before 'check 'set-home-for-tests
86 (lambda _
87 (setenv "HOME" (getenv "TMPDIR"))
88 #t))
89 (add-before 'wrap 'wrap-with-GI_TYPELIB_PATH
90 (lambda* (#:key inputs outputs #:allow-other-keys)
91 (let ((out (assoc-ref outputs "out"))
92 (paths (map (match-lambda
93 ((output . directory)
94 (let ((girepodir (string-append
95 directory
96 "/lib/girepository-1.0")))
97 (if (file-exists? girepodir)
98 girepodir
99 #f))))
100 inputs)))
101 (wrap-program (string-append out "/bin/gramps")
102 `("GI_TYPELIB_PATH" ":" prefix ,(filter identity paths))))
103 #t))
104 (add-after 'wrap 'glib-or-gtk-wrap
105 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
106 (home-page "https://gramps-project.org")
107 (synopsis "Genealogical research software")
108 (description
109 "Gramps is a free software project and community striving to produce
110a genealogy program that is both intuitive for hobbyists and feature-complete
111for professional genealogists.")
112 (license license:gpl2+)))
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 2c511c71931..2ee74794d8d 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -872,3 +872,36 @@ dropping features at lower levels.")
872OpenStreetMap project. They can be used to convert, filter and update 872OpenStreetMap project. They can be used to convert, filter and update
873OpenStreetMap data files.") 873OpenStreetMap data files.")
874 (license license:agpl3))) 874 (license license:agpl3)))
875
876(define-public osm-gps-map
877 (package
878 (name "osm-gps-map")
879 (version "1.1.0")
880 (source
881 (origin
882 (method url-fetch)
883 (uri (string-append
884 "https://github.com/nzjrs/osm-gps-map/releases/download/"
885 version "/osm-gps-map-" version ".tar.gz"))
886 (sha256
887 (base32
888 "11imsf4cz1dpxdjh178k2s29axmq86rkfg1pqmn7incyxmjzhbwg"))))
889 (build-system gnu-build-system)
890 (native-inputs
891 `(("gnome-common" ,gnome-common)
892 ("gtk-doc" ,gtk-doc)
893 ("pkg-config" ,pkg-config)))
894 (inputs
895 `(("cairo" ,cairo)
896 ("glib" ,glib)
897 ("gobject-introspection" ,gobject-introspection)
898 ("gtk+" ,gtk+)
899 ("libsoup" ,libsoup)))
900 (home-page "https://nzjrs.github.io/osm-gps-map/")
901 (synopsis "GTK+ widget for displaying OpenStreetMap tiles")
902 (description
903 "This package provides a GTK+ widget (and Python bindings) that when
904given GPS coordinates,draws a GPS track, and points of interest on a moving
905map display. Downloads map data from a number of websites, including
906@url{https://www.openstreetmap.org}.")
907 (license license:gpl2+)))
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 96e7fc71658..99d2ec6cdb4 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -399,6 +399,31 @@ device drivers allows Mesa to be used in many different environments ranging
399from software emulation to complete hardware acceleration for modern GPUs.") 399from software emulation to complete hardware acceleration for modern GPUs.")
400 (license license:x11))) 400 (license license:x11)))
401 401
402(define-public mesa-opencl
403 (package
404 (inherit mesa)
405 (name "mesa-opencl")
406 (arguments
407 (substitute-keyword-arguments (package-arguments mesa)
408 ((#:configure-flags flags)
409 `(cons "-Dgallium-opencl=standalone" ,flags))))
410 (inputs
411 `(("libclc" ,libclc)
412 ,@(package-inputs mesa)))
413 (native-inputs
414 `(("clang" ,clang)
415 ,@(package-native-inputs mesa)))))
416
417(define-public mesa-opencl-icd
418 (package
419 (inherit mesa-opencl)
420 (name "mesa-opencl-icd")
421 (arguments
422 (substitute-keyword-arguments (package-arguments mesa)
423 ((#:configure-flags flags)
424 `(cons "-Dgallium-opencl=icd"
425 ,(delete "-Dgallium-opencl=standalone" flags)))))))
426
402(define-public mesa-headers 427(define-public mesa-headers
403 (package 428 (package
404 (inherit mesa) 429 (inherit mesa)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index f8a6a774da3..b7152a3afff 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7392,8 +7392,21 @@ kill/reinice processes.")
7392 "/pyatspi-" version ".tar.xz")) 7392 "/pyatspi-" version ".tar.xz"))
7393 (sha256 7393 (sha256
7394 (base32 7394 (base32
7395 "0xdnix7gxzgf75xy9ris4dd6b05mqwicw190b98xqmypydyf95n6")))) 7395 "0xdnix7gxzgf75xy9ris4dd6b05mqwicw190b98xqmypydyf95n6"))
7396 ;; Patch from upstream, fixed in newer versions.
7397 (patches (search-patches "python-pyatspi-python-37.patch"))))
7396 (build-system gnu-build-system) 7398 (build-system gnu-build-system)
7399 (arguments
7400 `(#:phases
7401 (modify-phases %standard-phases
7402 (add-before 'build 'fix-atk-load
7403 (lambda _
7404 (substitute* "pyatspi/__init__.py"
7405 (("from gi.repository import Atspi")
7406 "gi.require_version('Gtk', '3.0')
7407from gi.repository import Gtk
7408from gi.repository import Atspi"))
7409 #t)))))
7397 (native-inputs 7410 (native-inputs
7398 `(("pkg-config" ,pkg-config))) 7411 `(("pkg-config" ,pkg-config)))
7399 (inputs 7412 (inputs
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index ab75925a9d4..00608c2c8ba 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -377,15 +377,13 @@ libskba (working with X.509 certificates and CMS data).")
377(define-public gpgme 377(define-public gpgme
378 (package 378 (package
379 (name "gpgme") 379 (name "gpgme")
380 (version "1.13.0") 380 (version "1.13.1")
381 (source 381 (source
382 (origin 382 (origin
383 (method url-fetch) 383 (method url-fetch)
384 (uri (string-append "mirror://gnupg/gpgme/gpgme-" version 384 (uri (string-append "mirror://gnupg/gpgme/gpgme-" version ".tar.bz2"))
385 ".tar.bz2"))
386 (sha256 385 (sha256
387 (base32 386 (base32 "0imyjfryvvjdbai454p70zcr95m94j9xnzywrlilqdw2fqi0pqy4"))))
388 "0c6676g0yhfsmy32i1dgwh5cx0ja8vhcqf4k08zad177m53kxcnl"))))
389 (build-system gnu-build-system) 387 (build-system gnu-build-system)
390 (native-inputs 388 (native-inputs
391 `(("gnupg" ,gnupg))) 389 `(("gnupg" ,gnupg)))
@@ -669,17 +667,17 @@ PGP keysigning parties.")
669(define-public signing-party 667(define-public signing-party
670 (package 668 (package
671 (name "signing-party") 669 (name "signing-party")
672 (version "2.7") 670 (version "2.10")
673 (home-page "https://salsa.debian.org/debian/signing-party") 671 (home-page "https://salsa.debian.org/signing-party-team/signing-party")
674 (source (origin 672 (source (origin
675 (method git-fetch) 673 (method git-fetch)
676 (uri (git-reference 674 (uri (git-reference
677 (url home-page) 675 (url home-page)
678 (commit (string-append "release-" version)))) 676 (commit (string-append "v" version))))
679 (file-name (git-file-name name version)) 677 (file-name (git-file-name name version))
680 (sha256 678 (sha256
681 (base32 679 (base32
682 "1gx9017wag4bgc0h7kca9n3jwwdm7z77yv3viayhg62flbwkvbgb")))) 680 "0lq8nmwjmysry0n4jg6vb7bh0lagbyb9pa11ii3s41p1mhzchf2r"))))
683 (build-system gnu-build-system) 681 (build-system gnu-build-system)
684 (native-inputs 682 (native-inputs
685 `(("autoconf" ,autoconf-wrapper) 683 `(("autoconf" ,autoconf-wrapper)
@@ -691,7 +689,7 @@ PGP keysigning parties.")
691 ("perl-net-idn-encode" ,perl-net-idn-encode) 689 ("perl-net-idn-encode" ,perl-net-idn-encode)
692 ("libmd" ,libmd))) 690 ("libmd" ,libmd)))
693 (arguments 691 (arguments
694 `(#:tests? #f 692 `(#:tests? #f ; no test suite
695 #:phases 693 #:phases
696 (modify-phases %standard-phases 694 (modify-phases %standard-phases
697 (replace 'configure 695 (replace 'configure
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index c2356f2a44e..a874878feaa 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -426,7 +426,7 @@ from forcing GEXP-PROMISE."
426 #:system system 426 #:system system
427 #:guile-for-build guile))) 427 #:guile-for-build guile)))
428 428
429(define %icecat-version "60.7.0-guix2") 429(define %icecat-version "60.7.2-guix1")
430 430
431;; 'icecat-source' is a "computed" origin that generates an IceCat tarball 431;; 'icecat-source' is a "computed" origin that generates an IceCat tarball
432;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat' 432;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat'
@@ -448,7 +448,7 @@ from forcing GEXP-PROMISE."
448 "firefox-" upstream-firefox-version ".source.tar.xz")) 448 "firefox-" upstream-firefox-version ".source.tar.xz"))
449 (sha256 449 (sha256
450 (base32 450 (base32
451 "08x0nijh0ja5jza95a8y030ibk756bn7zlw3a3c4750yilfhqpqa")))) 451 "1hkaq8mavmn2wphfbrlq3v56jvmvfi2nyvrkjgr28rc01jkqx4ca"))))
452 452
453 (upstream-icecat-base-version "60.7.0") ; maybe older than base-version 453 (upstream-icecat-base-version "60.7.0") ; maybe older than base-version
454 (upstream-icecat-gnu-version "1") 454 (upstream-icecat-gnu-version "1")
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 43888ab23f6..e4d6af51c5d 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -68,6 +68,7 @@
68 #:use-module (gnu packages icu4c) 68 #:use-module (gnu packages icu4c)
69 #:use-module (gnu packages image) 69 #:use-module (gnu packages image)
70 #:use-module (gnu packages libffi) 70 #:use-module (gnu packages libffi)
71 #:use-module (gnu packages linux)
71 #:use-module (gnu packages pdf) 72 #:use-module (gnu packages pdf)
72 #:use-module (gnu packages perl) 73 #:use-module (gnu packages perl)
73 #:use-module (gnu packages pkg-config) 74 #:use-module (gnu packages pkg-config)
@@ -1687,12 +1688,12 @@ input.")
1687 (origin 1688 (origin
1688 (method url-fetch) 1689 (method url-fetch)
1689 (uri (string-append "https://alpha.gnu.org/gnu/ssw/" 1690 (uri (string-append "https://alpha.gnu.org/gnu/ssw/"
1690 name "-" version ".tar.gz")) 1691 "spread-sheet-widget-" version ".tar.gz"))
1691 (sha256 1692 (sha256
1692 (base32 "1h93yyh2by6yrmkwqg38nd5knids05k5nqzcihc1hdwgzg3c4b8y")))) 1693 (base32 "1h93yyh2by6yrmkwqg38nd5knids05k5nqzcihc1hdwgzg3c4b8y"))))
1693 (build-system gnu-build-system) 1694 (build-system gnu-build-system)
1694 (native-inputs 1695 (native-inputs
1695 `(("glib" ,glib "bin") ; for glib-genmarshal, etc. 1696 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
1696 ("pkg-config" ,pkg-config))) 1697 ("pkg-config" ,pkg-config)))
1697 ;; In 'Requires' of spread-sheet-widget.pc. 1698 ;; In 'Requires' of spread-sheet-widget.pc.
1698 (propagated-inputs 1699 (propagated-inputs
@@ -1706,6 +1707,38 @@ viewing and manipulating 2 dimensional tabular data in a manner similar to many
1706popular spread sheet programs.") 1707popular spread sheet programs.")
1707 (license license:gpl3+))) 1708 (license license:gpl3+)))
1708 1709
1710(define-public volumeicon
1711 (package
1712 (name "volumeicon")
1713 (version "0.5.1")
1714 (source
1715 (origin
1716 (method url-fetch)
1717 (uri (string-append "http://nullwise.com/files/volumeicon/volumeicon-"
1718 version ".tar.gz"))
1719 (sha256
1720 (base32 "182xl2w8syv6ky2h2bc9imc6ap8pzh0p7rp63hh8nw0xm38c3f14"))))
1721 (build-system gnu-build-system)
1722 (arguments
1723 `(#:configure-flags
1724 (list "--enable-notify"))) ; optional libnotify support
1725 (native-inputs
1726 `(("intltool" ,intltool)
1727 ("pkg-config" ,pkg-config)))
1728 (inputs
1729 `(("alsa-lib" ,alsa-lib)
1730 ("gtk+" ,gtk+)
1731 ("libnotify" ,libnotify)))
1732 (home-page "http://nullwise.com/volumeicon.html")
1733 (synopsis "System tray volume applet")
1734 (description
1735 "Volume Icon is a volume indicator and control applet for @acronym{the
1736Advanced Linux Sound Architecture, ALSA}. It sits in the system tray,
1737independent of your desktop environment, and supports global key bindings.")
1738 (license (list license:expat ; src/{bind.c,keybinder.h}
1739 license:isc ; src/alsa_volume_mapping.c
1740 license:gpl3)))) ; the rest & combined work
1741
1709(define-public yad 1742(define-public yad
1710 (package 1743 (package
1711 (name "yad") 1744 (name "yad")
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index c02606f919c..a8352380f7e 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -2123,7 +2123,14 @@ chunks can be expressions as well as simple tokens.")
2123 (file-name (git-file-name name version)) 2123 (file-name (git-file-name name version))
2124 (sha256 2124 (sha256
2125 (base32 2125 (base32
2126 "0z5nf377wh8yj6n3sx2ddn4bdx1qrqnw899dlqjhg0q69qzil522")))) 2126 "0z5nf377wh8yj6n3sx2ddn4bdx1qrqnw899dlqjhg0q69qzil522"))
2127 (modules '((guix build utils)))
2128 (snippet
2129 '(begin
2130 ;; Install .go files in the right place.
2131 (substitute* "Makefile.am"
2132 (("/ccache") "/site-ccache"))
2133 #t))))
2127 (build-system gnu-build-system) 2134 (build-system gnu-build-system)
2128 (arguments 2135 (arguments
2129 `(#:phases 2136 `(#:phases
@@ -2163,8 +2170,8 @@ serializing continuations or delimited continuations.")
2163 (license license:lgpl2.0+)))) 2170 (license license:lgpl2.0+))))
2164 2171
2165(define-public python-on-guile 2172(define-public python-on-guile
2166 (let ((commit "058c596cd3886447da31171e1026d4d19f5f5313") 2173 (let ((commit "00a51a23247f1edc4ae8eda72b30df5cd7d0015f")
2167 (revision "2")) 2174 (revision "3"))
2168 (package 2175 (package
2169 (name "python-on-guile") 2176 (name "python-on-guile")
2170 (version (git-version "0.1.0" revision commit)) 2177 (version (git-version "0.1.0" revision commit))
@@ -2176,16 +2183,27 @@ serializing continuations or delimited continuations.")
2176 (file-name (git-file-name name version)) 2183 (file-name (git-file-name name version))
2177 (sha256 2184 (sha256
2178 (base32 2185 (base32
2179 "0ppyh5kkhsph5kc091p2b5a3alnj3wnlx8jr5xpyhrsj0vx9cqph")))) 2186 "03rpnqr08rqr3gay128g564rwk8w4jbj28ss6b46z1d4vjs4nk68"))))
2180 (build-system gnu-build-system) 2187 (build-system gnu-build-system)
2181 (arguments 2188 (arguments
2182 `(#:parallel-build? #f ; not supported 2189 `(#:parallel-build? #f ; not supported
2183 #:make-flags 2190 #:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings
2184 '("GUILE_AUTO_COMPILE=0") ; to prevent guild errors 2191
2185 #:phases 2192 #:phases
2186 (modify-phases %standard-phases 2193 (modify-phases %standard-phases
2187 (add-after 'unpack 'chdir 2194 (add-after 'unpack 'chdir
2188 (lambda _ (chdir "modules") #t))))) 2195 (lambda _ (chdir "modules") #t))
2196 (add-after 'install 'wrap
2197 (lambda* (#:key outputs #:allow-other-keys)
2198 ;; Wrap the 'python' executable so it can find its
2199 ;; dependencies.
2200 (let ((out (assoc-ref outputs "out")))
2201 (wrap-program (string-append out "/bin/python")
2202 `("GUILE_LOAD_PATH" ":" prefix
2203 (,(getenv "GUILE_LOAD_PATH")))
2204 `("GUILE_LOAD_COMPILED_PATH" ":" prefix
2205 (,(getenv "GUILE_LOAD_COMPILED_PATH"))))
2206 #t))))))
2189 (inputs 2207 (inputs
2190 `(("guile" ,guile-2.2))) 2208 `(("guile" ,guile-2.2)))
2191 (propagated-inputs 2209 (propagated-inputs
@@ -2384,3 +2402,37 @@ and minor modes, etc., and can also be used as a pure Guile library. It
2384comes with a simple counter example using GLUT and browser examples in C 2402comes with a simple counter example using GLUT and browser examples in C
2385using gtk+-3 and webkitgtk.") 2403using gtk+-3 and webkitgtk.")
2386 (license license:gpl3+)))) 2404 (license license:gpl3+))))
2405
2406(define-public guile-jpeg
2407 (let ((commit "6a1673578b297c2c1b28e44a76bd5c49e76a5046")
2408 (revision "0"))
2409 (package
2410 (name "guile-jpeg")
2411 (version (git-version "0.0" revision commit))
2412 (home-page "https://gitlab.com/wingo/guile-jpeg")
2413 (source (origin
2414 (method git-fetch)
2415 (uri (git-reference (url home-page)
2416 (commit commit)))
2417 (sha256
2418 (base32
2419 "05z9m408w3h6aqb5k3r3qa7khir0k10rxwvsrzhkcq1hr5vbmr4m"))
2420 (file-name (git-file-name name version))
2421 (modules '((guix build utils)))
2422 (snippet
2423 '(begin
2424 ;; Install .go files in the right place.
2425 (substitute* "Makefile.am"
2426 (("/ccache") "/site-ccache"))
2427 #t))))
2428 (build-system gnu-build-system)
2429 (native-inputs
2430 `(("autoconf" ,autoconf)
2431 ("automake" ,automake)
2432 ("pkg-config" ,pkg-config)
2433 ("guile" ,guile-2.2)))
2434 (synopsis "JPEG file parsing library for Guile")
2435 (description
2436 "Guile-JPEG is a Scheme library to parse JPEG image files and to
2437perform geometrical transforms on JPEG images.")
2438 (license license:gpl3+))))
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 390b74c3335..0e5631bbe3b 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -1006,27 +1006,19 @@ channels.")
1006(define-public exiv2 1006(define-public exiv2
1007 (package 1007 (package
1008 (name "exiv2") 1008 (name "exiv2")
1009 (version "0.26") 1009 (version "0.27.1")
1010 (source (origin 1010 (source
1011 (method url-fetch) 1011 (origin
1012 (uri (list (string-append "https://www.exiv2.org/builds/exiv2-" 1012 (method url-fetch)
1013 version "-trunk.tar.gz") 1013 (uri (string-append "https://www.exiv2.org/builds/exiv2-" version
1014 (string-append "https://www.exiv2.org/exiv2-" 1014 "-Source.tar.gz"))
1015 version ".tar.gz") 1015 (sha256
1016 (string-append "https://fossies.org/linux/misc/exiv2-" 1016 (base32 "109hbfk63dh14fz20ivq20gcclb9jj9jmh48w4lcn6zxh1ljh9gi"))))
1017 version ".tar.gz"))) 1017 (build-system cmake-build-system)
1018 (patches (search-patches "exiv2-CVE-2017-14860.patch" 1018 (arguments '(#:tests? #f)) ; no test suite
1019 "exiv2-CVE-2017-14859-14862-14864.patch"))
1020 (sha256
1021 (base32
1022 "1yza317qxd8yshvqnay164imm0ks7cvij8y8j86p1gqi1153qpn7"))))
1023 (build-system gnu-build-system)
1024 (arguments '(#:tests? #f)) ; no `check' target
1025 (propagated-inputs 1019 (propagated-inputs
1026 `(("expat" ,expat) 1020 `(("expat" ,expat)
1027 ("zlib" ,zlib))) 1021 ("zlib" ,zlib)))
1028 (native-inputs
1029 `(("intltool" ,intltool)))
1030 (home-page "https://www.exiv2.org/") 1022 (home-page "https://www.exiv2.org/")
1031 (synopsis "Library and command-line utility to manage image metadata") 1023 (synopsis "Library and command-line utility to manage image metadata")
1032 (description 1024 (description
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 2dad131c00b..403c446a820 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2096,6 +2096,50 @@ new Date();"))
2096 "This package provides the Java development kit OpenJDK.") 2096 "This package provides the Java development kit OpenJDK.")
2097 (license license:gpl2+))) 2097 (license license:gpl2+)))
2098 2098
2099(define-public openjdk12
2100 (package
2101 (inherit openjdk11)
2102 (name "openjdk")
2103 (version "12.33")
2104 (source (origin
2105 (method url-fetch)
2106 (uri "http://hg.openjdk.java.net/jdk/jdk/archive/0276cba45aac.tar.bz2")
2107 (file-name (string-append name "-" version ".tar.bz2"))
2108 (sha256
2109 (base32
2110 "0mbhdrk12b6878kby0flnbak7444dlpm0ihlmf92vk59y1c02bc2"))
2111 (modules '((guix build utils)))
2112 (snippet
2113 `(begin
2114 (for-each delete-file (find-files "." ".*.bin$"))
2115 (for-each delete-file (find-files "." ".*.exe$"))
2116 (for-each delete-file (find-files "." ".*.jar$"))
2117 #t))))
2118 (inputs
2119 `(("alsa-lib" ,alsa-lib)
2120 ("cups" ,cups)
2121 ("fontconfig" ,fontconfig)
2122 ("freetype" ,freetype)
2123 ("giflib" ,giflib)
2124 ("lcms" ,lcms)
2125 ("libjpeg" ,libjpeg)
2126 ("libpng" ,libpng)
2127 ("libx11" ,libx11)
2128 ("libxext" ,libxext)
2129 ("libxrandr" ,libxrandr)
2130 ("libxrender" ,libxrender)
2131 ("libxt" ,libxt)
2132 ("libxtst" ,libxtst)))
2133 (native-inputs
2134 `(("autoconf" ,autoconf)
2135 ("openjdk11" ,openjdk11)
2136 ("openjdk11:jdk" ,openjdk11 "jdk")
2137 ("pkg-config" ,pkg-config)
2138 ("unzip" ,unzip)
2139 ("which" ,which)
2140 ("zip" ,zip)))
2141 (home-page "https://openjdk.java.net/projects/jdk/12")))
2142
2099(define-public icedtea icedtea-8) 2143(define-public icedtea icedtea-8)
2100 2144
2101 2145
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index f0fa6bba923..f1fdcba3110 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -421,8 +421,8 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
421It has been modified to remove all non-free binary blobs.") 421It has been modified to remove all non-free binary blobs.")
422 (license license:gpl2))) 422 (license license:gpl2)))
423 423
424(define %linux-libre-version "5.1.11") 424(define %linux-libre-version "5.1.15")
425(define %linux-libre-hash "15hmqycsggqd9bwrf229b7f0pfznzs03kpzcwrd9j867pvgwyl8c") 425(define %linux-libre-hash "1f0hhyjsm4bl7k7w88aifvhmqmjkvkvlpd2b69y7s6csr22fk6v4")
426 426
427(define %linux-libre-5.1-patches 427(define %linux-libre-5.1-patches
428 (list %boot-logo-patch 428 (list %boot-logo-patch
@@ -439,8 +439,8 @@ It has been modified to remove all non-free binary blobs.")
439 (make-linux-libre-headers %linux-libre-version 439 (make-linux-libre-headers %linux-libre-version
440 %linux-libre-hash)) 440 %linux-libre-hash))
441 441
442(define %linux-libre-4.19-version "4.19.52") 442(define %linux-libre-4.19-version "4.19.56")
443(define %linux-libre-4.19-hash "1wsrgrskmvipm7j4kzir93p9dp3iy49522163ghfxx71b1b2v4dg") 443(define %linux-libre-4.19-hash "1zqiic55viy065lhnkmhn33sz3bbbr2ykbm5f92yzd8lpc9zl7yx")
444 444
445(define %linux-libre-4.19-patches 445(define %linux-libre-4.19-patches
446 (list %boot-logo-patch 446 (list %boot-logo-patch
@@ -457,8 +457,8 @@ It has been modified to remove all non-free binary blobs.")
457 (make-linux-libre-headers %linux-libre-4.19-version 457 (make-linux-libre-headers %linux-libre-4.19-version
458 %linux-libre-4.19-hash)) 458 %linux-libre-4.19-hash))
459 459
460(define %linux-libre-4.14-version "4.14.127") 460(define %linux-libre-4.14-version "4.14.130")
461(define %linux-libre-4.14-hash "0dkzgxfzzc6n3k2x8nzzx98c6y3fhsr695rm46ahvg7fdg3vgcmi") 461(define %linux-libre-4.14-hash "1fk6ds0q2rykr6byvfass8f5a9k6qq9sk261wjcfp1gn8b9wmxws")
462 462
463(define-public linux-libre-4.14 463(define-public linux-libre-4.14
464 (make-linux-libre %linux-libre-4.14-version 464 (make-linux-libre %linux-libre-4.14-version
@@ -471,14 +471,14 @@ It has been modified to remove all non-free binary blobs.")
471 %linux-libre-4.14-hash)) 471 %linux-libre-4.14-hash))
472 472
473(define-public linux-libre-4.9 473(define-public linux-libre-4.9
474 (make-linux-libre "4.9.182" 474 (make-linux-libre "4.9.183"
475 "1615v8ywwdm204bimq2cf6qv0zas14yagpr8lk9a5zqxas4p4rns" 475 "1w3syih3fggwkpcl6zkmm9f6577r2jvack4br5ffccgcddkz52ia"
476 '("x86_64-linux" "i686-linux") 476 '("x86_64-linux" "i686-linux")
477 #:configuration-file kernel-config)) 477 #:configuration-file kernel-config))
478 478
479(define-public linux-libre-4.4 479(define-public linux-libre-4.4
480 (make-linux-libre "4.4.182" 480 (make-linux-libre "4.4.183"
481 "0ggs5pyjr7a9mldskfbsybzxlb3lmfbhxg5q2qpzxnh1c8wcn53h" 481 "1v21n5kwnv9n18gfp2dz9hsdkwmfwigalr82xsnwbzhs0x561bxx"
482 '("x86_64-linux" "i686-linux") 482 '("x86_64-linux" "i686-linux")
483 #:configuration-file kernel-config 483 #:configuration-file kernel-config
484 #:extra-options 484 #:extra-options
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index dfc58d469f9..58813c2d842 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -47,6 +47,7 @@
47 #:use-module (gnu packages base) 47 #:use-module (gnu packages base)
48 #:use-module (gnu packages bdw-gc) 48 #:use-module (gnu packages bdw-gc)
49 #:use-module (gnu packages bison) 49 #:use-module (gnu packages bison)
50 #:use-module (gnu packages c)
50 #:use-module (gnu packages compression) 51 #:use-module (gnu packages compression)
51 #:use-module (gnu packages ed) 52 #:use-module (gnu packages ed)
52 #:use-module (gnu packages flex) 53 #:use-module (gnu packages flex)
@@ -65,6 +66,8 @@
65 #:use-module (gnu packages linux) 66 #:use-module (gnu packages linux)
66 #:use-module (gnu packages perl) 67 #:use-module (gnu packages perl)
67 #:use-module (gnu packages pkg-config) 68 #:use-module (gnu packages pkg-config)
69 #:use-module (gnu packages python)
70 #:use-module (gnu packages python-xyz)
68 #:use-module (gnu packages readline) 71 #:use-module (gnu packages readline)
69 #:use-module (gnu packages sdl) 72 #:use-module (gnu packages sdl)
70 #:use-module (gnu packages sqlite) 73 #:use-module (gnu packages sqlite)
@@ -5369,3 +5372,627 @@ command line, to data scanning and extracting scripts, to full application
5369development in a wide-range of areas.") 5372development in a wide-range of areas.")
5370 (home-page "https://nongnu.org/txr/") 5373 (home-page "https://nongnu.org/txr/")
5371 (license license:bsd-2))) 5374 (license license:bsd-2)))
5375
5376(define-public sbcl-clunit
5377 (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
5378 (revision "1"))
5379 (package
5380 (name "sbcl-clunit")
5381 (version (git-version "0.2.3" revision commit))
5382 (source
5383 (origin
5384 (method git-fetch)
5385 (uri (git-reference
5386 (url "https://github.com/tgutu/clunit.git")
5387 (commit commit)))
5388 (file-name (git-file-name name version))
5389 (sha256
5390 (base32
5391 "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
5392 (build-system asdf-build-system/sbcl)
5393 (synopsis "CLUnit is a Common Lisp unit testing framework")
5394 (description
5395 "CLUnit is a Common Lisp unit testing framework. It is designed
5396to be easy to use so that you can quickly start testing. CLUnit
5397provides a rich set of features aimed at improving your unit testing
5398experience.")
5399 (home-page "http://tgutu.github.io/clunit/")
5400 ;; MIT License
5401 (license license:expat))))
5402
5403(define-public cl-clunit
5404 (sbcl-package->cl-source-package sbcl-clunit))
5405
5406(define-public ecl-clunit
5407 (sbcl-package->ecl-package sbcl-clunit))
5408
5409(define-public sbcl-py4cl
5410 (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
5411 (revision "1"))
5412 (package
5413 (name "sbcl-py4cl")
5414 (version (git-version "0.0.0" revision commit))
5415 (source
5416 (origin
5417 (method git-fetch)
5418 (uri (git-reference
5419 (url "https://github.com/bendudson/py4cl.git")
5420 (commit commit)))
5421 (file-name (git-file-name name version))
5422 (sha256
5423 (base32
5424 "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
5425 (modules '((guix build utils)))))
5426 (build-system asdf-build-system/sbcl)
5427 (native-inputs
5428 `(("sbcl-clunit" ,sbcl-clunit)))
5429 (inputs
5430 `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5431 (propagated-inputs
5432 ;; This package doesn't do anything without python available
5433 `(("python" ,python)
5434 ;; For multi-dimensional array support
5435 ("python-numpy" ,python-numpy)))
5436 (arguments
5437 '(#:phases
5438 (modify-phases %standard-phases
5439 (add-after 'unpack 'replace-*base-directory*-var
5440 (lambda* (#:key outputs #:allow-other-keys)
5441 ;; In the ASD, the author makes an attempt to
5442 ;; programatically determine the location of the
5443 ;; source-code so lisp can call into "py4cl.py". We can
5444 ;; hard-code this since we know where this file will
5445 ;; reside.
5446 (substitute* "src/callpython.lisp"
5447 (("py4cl/config:\\*base-directory\\*")
5448 (string-append
5449 "\""
5450 (assoc-ref outputs "out")
5451 "/share/common-lisp/sbcl-source/py4cl/"
5452 "\""))))))))
5453 (synopsis "Call python from Common Lisp")
5454 (description
5455 "Py4CL is a bridge between Common Lisp and Python, which enables Common
5456Lisp to interact with Python code. It uses streams to communicate with a
5457separate python process, the approach taken by cl4py. This is different to
5458the CFFI approach used by burgled-batteries, but has the same goal.")
5459 (home-page "https://github.com/bendudson/py4cl")
5460 ;; MIT License
5461 (license license:expat))))
5462
5463(define-public cl-py4cl
5464 (sbcl-package->cl-source-package sbcl-py4cl))
5465
5466(define-public ecl-py4cl
5467 (sbcl-package->ecl-package sbcl-py4cl))
5468
5469(define-public sbcl-parse-declarations
5470 (package
5471 (name "sbcl-parse-declarations")
5472 (version "1.0.0")
5473 (source
5474 (origin
5475 (method url-fetch)
5476 (uri (string-append
5477 "http://beta.quicklisp.org/archive/parse-declarations/"
5478 "2010-10-06/parse-declarations-20101006-darcs.tgz"))
5479 (sha256
5480 (base32
5481 "0r85b0jfacd28kr65kw9c13dx4i6id1dpmby68zjy63mqbnyawrd"))))
5482 (build-system asdf-build-system/sbcl)
5483 (arguments
5484 `(#:asd-file "parse-declarations-1.0.asd"
5485 #:asd-system-name "parse-declarations-1.0"))
5486 (home-page "https://common-lisp.net/project/parse-declarations/")
5487 (synopsis "Parse, filter, and build declarations")
5488 (description
5489 "Parse-Declarations is a Common Lisp library to help writing
5490macros which establish bindings. To be semantically correct, such
5491macros must take user declarations into account, as these may affect
5492the bindings they establish. Yet the ANSI standard of Common Lisp does
5493not provide any operators to work with declarations in a convenient,
5494high-level way. This library provides such operators.")
5495 ;; MIT License
5496 (license license:expat)))
5497
5498(define-public cl-parse-declarations
5499 (sbcl-package->cl-source-package sbcl-parse-declarations))
5500
5501(define-public ecl-parse-declarations
5502 (sbcl-package->ecl-package sbcl-parse-declarations))
5503
5504(define-public sbcl-cl-quickcheck
5505 (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
5506 (revision "1"))
5507 (package
5508 (name "sbcl-cl-quickcheck")
5509 (version (git-version "0.0.4" revision commit))
5510 (source
5511 (origin
5512 (method git-fetch)
5513 (uri (git-reference
5514 (url "https://github.com/mcandre/cl-quickcheck.git")
5515 (commit commit)))
5516 (file-name (git-file-name name version))
5517 (sha256
5518 (base32
5519 "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
5520 (build-system asdf-build-system/sbcl)
5521 (synopsis
5522 "Common Lisp port of the QuickCheck unit test framework")
5523 (description
5524 "Common Lisp port of the QuickCheck unit test framework")
5525 (home-page "https://github.com/mcandre/cl-quickcheck")
5526 ;; MIT
5527 (license license:expat))))
5528
5529(define-public cl-cl-quickcheck
5530 (sbcl-package->cl-source-package sbcl-cl-quickcheck))
5531
5532(define-public ecl-cl-quickcheck
5533 (sbcl-package->ecl-package sbcl-cl-quickcheck))
5534
5535(define-public sbcl-burgled-batteries3
5536 (let ((commit "9c0f6667e1a71ddf77e21793a0bea524710fef6e")
5537 (revision "1"))
5538 (package
5539 (name "sbcl-burgled-batteries3")
5540 (version (git-version "0.0.0" revision commit))
5541 (source
5542 (origin
5543 (method git-fetch)
5544 (uri (git-reference
5545 (url "https://github.com/snmsts/burgled-batteries3.git")
5546 (commit commit)))
5547 (file-name (git-file-name name version))
5548 (sha256
5549 (base32
5550 "0b726kz2xxcg5l930gz035rsdvhxrzmp05iwfwympnb4z4ammicb"))))
5551 (build-system asdf-build-system/sbcl)
5552 (arguments
5553 '(#:tests? #f
5554 #:phases
5555 (modify-phases %standard-phases
5556 (add-after 'unpack 'set-*cpython-include-dir*-var
5557 (lambda* (#:key inputs #:allow-other-keys)
5558 (substitute* "grovel-include-dir.lisp"
5559 (("\\(defparameter \\*cpython-include-dir\\* \\(detect-python\\)\\)")
5560 (string-append
5561 "(defparameter *cpython-include-dir* \""
5562 (assoc-ref inputs "python")
5563 "/include/python3.7m"
5564 "\")")))
5565 (substitute* "ffi-interface.lisp"
5566 (("\\*cpython-lib\\*")
5567 (format #f "'(\"~a/lib/libpython3.so\")"
5568 (assoc-ref inputs "python"))))
5569 #t)))))
5570 (native-inputs
5571 `(("python" ,python)
5572 ("sbcl-cl-fad" ,sbcl-cl-fad)
5573 ("sbcl-lift" ,sbcl-lift)
5574 ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
5575 (inputs
5576 `(("sbcl-cffi" ,sbcl-cffi)
5577 ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
5578 ("sbcl-alexandria" , sbcl-alexandria)
5579 ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
5580 ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
5581 (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
5582 (description
5583 "This package provides a shim between Python3 (specifically, the
5584CPython implementation of Python) and Common Lisp.")
5585 (home-page "https://github.com/snmsts/burgled-batteries3")
5586 ;; MIT
5587 (license license:expat))))
5588
5589(define-public cl-burgled-batteries3
5590 (sbcl-package->cl-source-package sbcl-burgled-batteries3))
5591
5592(define-public ecl-burgled-batteries3
5593 (sbcl-package->ecl-package sbcl-burgled-batteries3))
5594
5595(define-public sbcl-metabang-bind
5596 (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
5597 (revision "1"))
5598 (package
5599 (name "sbcl-metabang-bind")
5600 (version (git-version "0.8.0" revision commit))
5601 (source
5602 (origin
5603 (method git-fetch)
5604 (uri (git-reference
5605 (url "https://github.com/gwkkwg/metabang-bind.git")
5606 (commit commit)))
5607 (file-name (git-file-name name version))
5608 (sha256
5609 (base32
5610 "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
5611 (build-system asdf-build-system/sbcl)
5612 (native-inputs
5613 `(("sbcl-lift" ,sbcl-lift)))
5614 (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
5615 (description
5616 "Bind extends the idea of of let and destructing to provide a uniform
5617syntax for all your accessor needs. It combines @code{let},
5618@code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
5619editing, property or association-lists, and @code{multiple-value-bind} and a
5620whole lot more into a single form.")
5621 (home-page "https://common-lisp.net/project/metabang-bind/")
5622 ;; MIT License
5623 (license license:expat))))
5624
5625(define-public cl-metabang-bind
5626 (sbcl-package->cl-source-package sbcl-metabang-bind))
5627
5628(define-public ecl-metabang-bind
5629 (sbcl-package->ecl-package sbcl-metabang-bind))
5630
5631(define-public sbcl-fare-utils
5632 (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
5633 (revision "1"))
5634 (package
5635 (name "sbcl-fare-utils")
5636 (version (git-version "1.0.0.5" revision commit))
5637 (source
5638 (origin
5639 (method git-fetch)
5640 (uri
5641 (git-reference
5642 (url
5643 "https://gitlab.common-lisp.net/frideau/fare-utils.git")
5644 (commit commit)))
5645 (file-name (git-file-name name version))
5646 (sha256
5647 (base32
5648 "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
5649 (build-system asdf-build-system/sbcl)
5650 (arguments
5651 `(#:test-asd-file "test/fare-utils-test.asd"))
5652 (native-inputs
5653 `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
5654 (synopsis "Collection of utilities and data structures")
5655 (description
5656 "fare-utils is a small collection of utilities. It contains a lot of
5657basic everyday functions and macros.")
5658 (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
5659 ;; MIT License
5660 (license license:expat))))
5661
5662(define-public cl-fare-utils
5663 (sbcl-package->cl-source-package sbcl-fare-utils))
5664
5665(define-public ecl-fare-utils
5666 (sbcl-package->ecl-package sbcl-fare-utils))
5667
5668(define-public sbcl-idna
5669 (package
5670 (name "sbcl-idna")
5671 (build-system asdf-build-system/sbcl)
5672 (version "0.2.2")
5673 (home-page "https://github.com/antifuchs/idna")
5674 (source
5675 (origin
5676 (method git-fetch)
5677 (uri (git-reference
5678 (url home-page)
5679 (commit version)))
5680 (file-name (git-file-name name version))
5681 (sha256
5682 (base32
5683 "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
5684 (inputs
5685 `(("split-sequence" ,sbcl-split-sequence)))
5686 (synopsis "IDNA string encoding and decoding routines for Common Lisp")
5687 (description "This Common Lisp library provides string encoding and
5688decoding routines for IDNA, the International Domain Names in Applications.")
5689 (license license:expat)))
5690
5691(define-public cl-idna
5692 (sbcl-package->cl-source-package sbcl-idna))
5693
5694(define-public ecl-idna
5695 (sbcl-package->ecl-package sbcl-idna))
5696
5697(define-public sbcl-swap-bytes
5698 (package
5699 (name "sbcl-swap-bytes")
5700 (build-system asdf-build-system/sbcl)
5701 (version "1.1")
5702 (home-page "https://github.com/sionescu/swap-bytes")
5703 (source
5704 (origin
5705 (method git-fetch)
5706 (uri (git-reference
5707 (url home-page)
5708 (commit (string-append "v" version))))
5709 (file-name (git-file-name name version))
5710 (sha256
5711 (base32
5712 "1qysbv0jngdfkv53y874qjhcxc4qi8ixaqq6j8bzxh5z0931wv55"))))
5713 (inputs
5714 `(("trivial-features" ,sbcl-trivial-features)))
5715 (native-inputs
5716 `(("fiveam" ,sbcl-fiveam)))
5717 (arguments
5718 ;; TODO: Tests fail, why?
5719 `(#:tests? #f))
5720 (synopsis "Efficient endianness conversion for Common Lisp")
5721 (description "This Common Lisp library provides optimized byte-swapping
5722primitives. The library can change endianness of unsigned integers of length
57231/2/4/8. Very useful in implementing various network protocols and file
5724formats.")
5725 (license license:expat)))
5726
5727(define-public cl-swap-bytes
5728 (sbcl-package->cl-source-package sbcl-swap-bytes))
5729
5730(define-public ecl-swap-bytes
5731 (sbcl-package->ecl-package sbcl-swap-bytes))
5732
5733(define-public sbcl-iolib.asdf
5734 ;; Latest release is from June 2017.
5735 (let ((commit "81e20614c0d27f9605bf9766214e236fd31b99b4")
5736 (revision "1"))
5737 (package
5738 (name "sbcl-iolib.asdf")
5739 (build-system asdf-build-system/sbcl)
5740 (version "0.8.3")
5741 (home-page "https://github.com/sionescu/iolib")
5742 (source
5743 (origin
5744 (method git-fetch)
5745 (uri (git-reference
5746 (url home-page)
5747 (commit commit)))
5748 (file-name (git-file-name name version))
5749 (sha256
5750 (base32
5751 "1j81r0wm7nfbwl991f26s4npcy7kybzybd3m47rbxy31h0cfcmdm"))))
5752 (inputs
5753 `(("alexandria" ,sbcl-alexandria)))
5754 (arguments
5755 '(#:asd-file "iolib.asdf.asd"))
5756 (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library")
5757 (description "IOlib is to be a better and more modern I/O library than
5758the standard Common Lisp library. It contains a socket library, a DNS
5759resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
5760and @code{kqueue(2)}), a pathname library and file-system utilities.")
5761 (license license:expat))))
5762
5763(define-public sbcl-iolib.conf
5764 (package
5765 (inherit sbcl-iolib.asdf)
5766 (name "sbcl-iolib.conf")
5767 (inputs
5768 `(("iolib.asdf" ,sbcl-iolib.asdf)))
5769 (arguments
5770 '(#:asd-file "iolib.conf.asd"))
5771 (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library")))
5772
5773(define-public sbcl-iolib.common-lisp
5774 (package
5775 (inherit sbcl-iolib.asdf)
5776 (name "sbcl-iolib.common-lisp")
5777 (inputs
5778 `(("iolib.asdf" ,sbcl-iolib.asdf)
5779 ("iolib.conf" ,sbcl-iolib.conf)))
5780 (arguments
5781 '(#:asd-file "iolib.common-lisp.asd"))
5782 (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library")))
5783
5784(define-public sbcl-iolib.base
5785 (package
5786 (inherit sbcl-iolib.asdf)
5787 (name "sbcl-iolib.base")
5788 (inputs
5789 `(("iolib.asdf" ,sbcl-iolib.asdf)
5790 ("iolib.conf" ,sbcl-iolib.conf)
5791 ("iolib.common-lisp" ,sbcl-iolib.common-lisp)
5792 ("split-sequence" ,sbcl-split-sequence)))
5793 (arguments
5794 '(#:asd-file "iolib.base.asd"))
5795 (synopsis "Base package for IOLib, a Common Lisp I/O library")))
5796
5797(define-public sbcl-iolib.grovel
5798 (package
5799 (inherit sbcl-iolib.asdf)
5800 (name "sbcl-iolib.grovel")
5801 (inputs
5802 `(("iolib.asdf" ,sbcl-iolib.asdf)
5803 ("iolib.conf" ,sbcl-iolib.conf)
5804 ("iolib.base", sbcl-iolib.base)
5805 ("cffi", sbcl-cffi)))
5806 (arguments
5807 '(#:asd-file "iolib.grovel.asd"
5808 #:phases
5809 (modify-phases %standard-phases
5810 (add-after 'install 'install-header
5811 (lambda* (#:key outputs #:allow-other-keys)
5812 ;; This header is required by sbcl-iolib.
5813 (install-file "src/grovel/grovel-common.h"
5814 (string-append (assoc-ref outputs "out")
5815 "/lib/sbcl"))
5816 #t)))))
5817 (synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
5818
5819(define-public sbcl-iolib
5820 (package
5821 (inherit sbcl-iolib.asdf)
5822 (name "sbcl-iolib")
5823 (inputs
5824 `(("iolib.asdf" ,sbcl-iolib.asdf)
5825 ("iolib.conf" ,sbcl-iolib.conf)
5826 ("iolib.grovel" ,sbcl-iolib.grovel)
5827 ("iolib.base", sbcl-iolib.base)
5828 ("bordeaux-threads", sbcl-bordeaux-threads)
5829 ("idna", sbcl-idna)
5830 ("swap-bytes", sbcl-swap-bytes)
5831 ("libfixposix", libfixposix)))
5832 (native-inputs
5833 `(("fiveam" ,sbcl-fiveam)))
5834 (arguments
5835 '(#:asd-file "iolib.asd"
5836 #:asd-system-name "iolib"
5837 #:test-asd-file "iolib.tests.asd"
5838 #:phases
5839 (modify-phases %standard-phases
5840 (add-after 'unpack 'fix-paths
5841 (lambda* (#:key inputs #:allow-other-keys)
5842 (substitute* "src/syscalls/ffi-functions-unix.lisp"
5843 (("\\(:default \"libfixposix\"\\)")
5844 (string-append
5845 "(:default \""
5846 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
5847 ;; Socket tests need Internet access, disable them.
5848 (substitute* "iolib.tests.asd"
5849 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
5850 "")))))))
5851 (synopsis "Common Lisp I/O library")))
5852
5853(define sbcl-iolib+multiplex
5854 (package
5855 (inherit sbcl-iolib)
5856 (name "sbcl-iolib+multiplex")
5857 (arguments
5858 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5859 ((#:asd-system-name _) "iolib/multiplex")))))
5860
5861(define sbcl-iolib+syscalls
5862 (package
5863 (inherit sbcl-iolib)
5864 (name "sbcl-iolib+syscalls")
5865 (arguments
5866 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5867 ((#:asd-system-name _) "iolib/syscalls")))))
5868
5869(define sbcl-iolib+streams
5870 (package
5871 (inherit sbcl-iolib)
5872 (name "sbcl-iolib+streams")
5873 (arguments
5874 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5875 ((#:asd-system-name _) "iolib/streams")))))
5876
5877(define sbcl-iolib+sockets
5878 (package
5879 (inherit sbcl-iolib)
5880 (name "sbcl-iolib+sockets")
5881 (arguments
5882 (substitute-keyword-arguments (package-arguments sbcl-iolib)
5883 ((#:asd-system-name _) "iolib/sockets")))))
5884
5885(define-public sbcl-ieee-floats
5886 (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
5887 (revision "1"))
5888 (package
5889 (name "sbcl-ieee-floats")
5890 (build-system asdf-build-system/sbcl)
5891 (version (git-version "20170924" revision commit))
5892 (home-page "https://github.com/marijnh/ieee-floats/")
5893 (source
5894 (origin
5895 (method git-fetch)
5896 (uri (git-reference
5897 (url home-page)
5898 (commit commit)))
5899 (file-name (git-file-name name version))
5900 (sha256
5901 (base32
5902 "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
5903 (native-inputs
5904 `(("fiveam" ,sbcl-fiveam)))
5905 (synopsis "IEEE 754 binary representation for floats in Common Lisp")
5906 (description "This is a Common Lisp library that allows to convert
5907floating point values to IEEE 754 binary representation.")
5908 (license license:bsd-3))))
5909
5910(define sbcl-closure-common
5911 (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
5912 (revision "1"))
5913 (package
5914 (name "sbcl-closure-common")
5915 (build-system asdf-build-system/sbcl)
5916 (version (git-version "20101006" revision commit))
5917 (home-page "https://github.com/sharplispers/closure-common")
5918 (source
5919 (origin
5920 (method git-fetch)
5921 (uri (git-reference
5922 (url home-page)
5923 (commit commit)))
5924 (file-name (git-file-name name version))
5925 (sha256
5926 (base32
5927 "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
5928 (inputs
5929 `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
5930 ("babel" ,sbcl-babel)))
5931 (synopsis "Support Common Lisp library for CXML")
5932 (description "Closure-common is an internal helper library. The name
5933Closure is a reference to the web browser it was originally written for.")
5934 ;; TODO: License?
5935 (license #f))))
5936
5937(define-public sbcl-cl-reexport
5938 (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
5939 (revision "1"))
5940 (package
5941 (name "sbcl-cl-reexport")
5942 (build-system asdf-build-system/sbcl)
5943 (version (git-version "0.1" revision commit))
5944 (home-page "https://github.com/takagi/cl-reexport")
5945 (source
5946 (origin
5947 (method git-fetch)
5948 (uri (git-reference
5949 (url home-page)
5950 (commit commit)))
5951 (file-name (git-file-name name version))
5952 (sha256
5953 (base32
5954 "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
5955 (inputs
5956 `(("alexandria" ,sbcl-alexandria)))
5957 (arguments
5958 ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
5959 `(#:tests? #f))
5960 (synopsis "HTTP cookie manager for Common Lisp")
5961 (description "cl-cookie is a Common Lisp library featuring parsing of
5962cookie headers, cookie creation, cookie jar creation and more.")
5963 (license license:llgpl))))
5964
5965(define-public sbcl-cl-cookie
5966 (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
5967 (revision "1"))
5968 (package
5969 (name "sbcl-cl-cookie")
5970 (build-system asdf-build-system/sbcl)
5971 (version (git-version "0.9.10" revision commit))
5972 (home-page "https://github.com/fukamachi/cl-cookie")
5973 (source
5974 (origin
5975 (method git-fetch)
5976 (uri (git-reference
5977 (url home-page)
5978 (commit commit)))
5979 (file-name (git-file-name name version))
5980 (sha256
5981 (base32
5982 "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
5983 (inputs
5984 `(("proc-parse" ,sbcl-proc-parse)
5985 ("alexandria" ,sbcl-alexandria)
5986 ("quri" ,sbcl-quri)
5987 ("cl-ppcre" ,sbcl-cl-ppcre)
5988 ("local-time" ,sbcl-local-time)))
5989 (native-inputs
5990 `(("prove-asdf" ,sbcl-prove-asdf)
5991 ("prove" ,sbcl-prove)))
5992 (arguments
5993 ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
5994 `(#:tests? #f))
5995 (synopsis "HTTP cookie manager for Common Lisp")
5996 (description "cl-cookie is a Common Lisp library featuring parsing of
5997cookie headers, cookie creation, cookie jar creation and more.")
5998 (license license:bsd-2))))
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 8cb05a6cadd..732ffc08230 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -31,6 +31,7 @@
31 #:use-module (guix packages) 31 #:use-module (guix packages)
32 #:use-module ((guix licenses) #:prefix license:) 32 #:use-module ((guix licenses) #:prefix license:)
33 #:use-module (guix download) 33 #:use-module (guix download)
34 #:use-module (guix git-download)
34 #:use-module (guix utils) 35 #:use-module (guix utils)
35 #:use-module (guix build-system gnu) 36 #:use-module (guix build-system gnu)
36 #:use-module (guix build-system cmake) 37 #:use-module (guix build-system cmake)
@@ -273,7 +274,7 @@ code analysis tools.")
273 version "/libcxx-" version ".src.tar.xz")) 274 version "/libcxx-" version ".src.tar.xz"))
274 (sha256 275 (sha256
275 (base32 276 (base32
276 "1wdrxg365ig0kngx52pd0n820sncp24blb0zpalc579iidhh4002")))) 277 "1qlx3wlxrnc5cwc1fcfc2vhfsl7j4294hi8y5kxj8hy8wxsjd462"))))
277 (build-system cmake-build-system) 278 (build-system cmake-build-system)
278 (native-inputs 279 (native-inputs
279 `(("clang" ,clang) 280 `(("clang" ,clang)
@@ -285,6 +286,44 @@ code analysis tools.")
285use with Clang, targeting C++11, C++14 and above.") 286use with Clang, targeting C++11, C++14 and above.")
286 (license license:expat))) 287 (license license:expat)))
287 288
289(define-public libclc
290 (package
291 (name "libclc")
292 (version (package-version llvm))
293 (source
294 (origin
295 (method git-fetch)
296 (uri (git-reference
297 (url "https://github.com/llvm/llvm-project.git")
298 (commit (string-append "llvmorg-" version))))
299 (sha256
300 (base32
301 "052h16wjcnqginzp7ki4il2xmm25v9nyk0wcz7cg03gbryhl7aqa"))))
302 (build-system cmake-build-system)
303 (arguments
304 `(#:configure-flags
305 (list (string-append "-DLLVM_CLANG="
306 (assoc-ref %build-inputs "clang")
307 "/bin/clang")
308 (string-append "-DPYTHON="
309 (assoc-ref %build-inputs "python")
310 "/bin/python3"))
311 #:phases
312 (modify-phases %standard-phases
313 (add-after 'unpack 'chdir
314 (lambda _ (chdir "libclc") #t)))))
315 (native-inputs
316 `(("clang" ,clang)
317 ("llvm" ,llvm)
318 ("python" ,python)))
319 (home-page "https://libclc.llvm.org")
320 (synopsis "Libraries for the OpenCL programming language")
321 (description
322 "This package provides an implementation of the OpenCL library
323requirements according to version 1.1 of the OpenCL specification.")
324 ;; Apache license 2.0 with LLVM exception
325 (license license:asl2.0)))
326
288(define-public libomp 327(define-public libomp
289 (package 328 (package
290 (name "libomp") 329 (name "libomp")
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index bf35d943ce0..1694b7c6b14 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -351,14 +351,14 @@ aliasing facilities to work just as they would on normal mail.")
351(define-public mutt 351(define-public mutt
352 (package 352 (package
353 (name "mutt") 353 (name "mutt")
354 (version "1.12.0") 354 (version "1.12.1")
355 (source (origin 355 (source (origin
356 (method url-fetch) 356 (method url-fetch)
357 (uri (string-append "https://bitbucket.org/mutt/mutt/downloads/" 357 (uri (string-append "https://bitbucket.org/mutt/mutt/downloads/"
358 "mutt-" version ".tar.gz")) 358 "mutt-" version ".tar.gz"))
359 (sha256 359 (sha256
360 (base32 360 (base32
361 "13zr2fpql33sdbsjsiaa952js5bvphc1x4lqsj36qyzdhj3l84na")) 361 "0311sip2q90aqaxn7h3cck1zl98b4vifqi8bp5fsizy4dr06bi81"))
362 (patches (search-patches "mutt-store-references.patch")))) 362 (patches (search-patches "mutt-store-references.patch"))))
363 (build-system gnu-build-system) 363 (build-system gnu-build-system)
364 (inputs 364 (inputs
@@ -1433,14 +1433,14 @@ hashing schemes plugin for @code{Dovecot}.")
1433(define-public isync 1433(define-public isync
1434 (package 1434 (package
1435 (name "isync") 1435 (name "isync")
1436 (version "1.3.0") 1436 (version "1.3.1")
1437 (source 1437 (source
1438 (origin 1438 (origin
1439 (method url-fetch) 1439 (method url-fetch)
1440 (uri (string-append "mirror://sourceforge/isync/isync/" 1440 (uri (string-append "mirror://sourceforge/isync/isync/"
1441 version "/isync-" version ".tar.gz")) 1441 version "/isync-" version ".tar.gz"))
1442 (sha256 (base32 1442 (sha256 (base32
1443 "173wd7x8y5sp94slzwlnb7zhgs32r57zl9xspl2rf4g3fqwmhpwd")))) 1443 "1sphd30jplii58y2zmw365bckm6pszmapcy905zhjll1sm1ldjv8"))))
1444 (build-system gnu-build-system) 1444 (build-system gnu-build-system)
1445 (native-inputs 1445 (native-inputs
1446 `(("perl" ,perl))) 1446 `(("perl" ,perl)))
diff --git a/gnu/packages/mastodon.scm b/gnu/packages/mastodon.scm
index 028745f6817..cd12f5a7fd5 100644
--- a/gnu/packages/mastodon.scm
+++ b/gnu/packages/mastodon.scm
@@ -42,6 +42,12 @@
42 '(#:phases 42 '(#:phases
43 (modify-phases %standard-phases 43 (modify-phases %standard-phases
44 (delete 'check) 44 (delete 'check)
45 ;; see https://github.com/ihabunek/toot/issues/91
46 (add-after 'unpack 'dont-install-Makefile
47 (lambda _
48 (substitute* "setup.py"
49 (("data_files.*" all) ""))
50 #t))
45 (add-after 'install 'check 51 (add-after 'install 'check
46 (lambda* (#:key inputs outputs #:allow-other-keys) 52 (lambda* (#:key inputs outputs #:allow-other-keys)
47 (add-installed-pythonpath inputs outputs) 53 (add-installed-pythonpath inputs outputs)
diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index c2a6aaf0111..9e9fda0929a 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -2,7 +2,7 @@
2;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de> 2;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
3;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> 3;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
4;;; Copyright © 2017 ng0 <ng0@n0.is> 4;;; Copyright © 2017 ng0 <ng0@n0.is>
5;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> 5;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
6;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> 6;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
7;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com> 7;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com>
8;;; 8;;;
@@ -195,20 +195,19 @@ from Mint-X-F and Faenza-Fresh icon packs.")
195(define-public mate-themes 195(define-public mate-themes
196 (package 196 (package
197 (name "mate-themes") 197 (name "mate-themes")
198 (version "3.22.19") 198 (version "3.22.20")
199 (source 199 (source
200 (origin 200 (origin
201 (method url-fetch) 201 (method url-fetch)
202 (uri (string-append "mirror://mate/themes/" (version-major+minor version) 202 (uri (string-append "mirror://mate/themes/" (version-major+minor version)
203 "/mate-themes-" version ".tar.xz")) 203 "/mate-themes-" version ".tar.xz"))
204 (sha256 204 (sha256
205 (base32 205 (base32 "0c3dhf8p9nc2maky4g9xr04iil9wwbdkmhpzynlc6lfg4ksqq2bx"))))
206 "1ycb8b8r0s8d1h1477135mynr53s5781gdb2ap8xlvj2g58492wq"))))
207 (build-system gnu-build-system) 206 (build-system gnu-build-system)
208 (native-inputs 207 (native-inputs
209 `(("pkg-config" ,pkg-config) 208 `(("pkg-config" ,pkg-config)
210 ("intltool" ,intltool) 209 ("intltool" ,intltool)
211 ("gdk-pixbuf" ,gdk-pixbuf) ; gdk-pixbuf+svg isn't needed 210 ("gdk-pixbuf" ,gdk-pixbuf) ; gdk-pixbuf+svg isn't needed
212 ("gtk" ,gtk+-2))) 211 ("gtk" ,gtk+-2)))
213 (home-page "https://mate-desktop.org/") 212 (home-page "https://mate-desktop.org/")
214 (synopsis 213 (synopsis
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index d7ca43c5d7b..c595103ac51 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -613,14 +613,14 @@ singular value problems.")
613(define-public gnuplot 613(define-public gnuplot
614 (package 614 (package
615 (name "gnuplot") 615 (name "gnuplot")
616 (version "5.2.6") 616 (version "5.2.7")
617 (source (origin 617 (source (origin
618 (method url-fetch) 618 (method url-fetch)
619 (uri (string-append "mirror://sourceforge/gnuplot/gnuplot/" 619 (uri (string-append "mirror://sourceforge/gnuplot/gnuplot/"
620 version "/gnuplot-" 620 version "/gnuplot-"
621 version ".tar.gz")) 621 version ".tar.gz"))
622 (sha256 622 (sha256
623 (base32 "1vllgap08nhvdmc03idmkdnk9cfl2bp81hps50q1pqrr640qzp9m")))) 623 (base32 "1vglp4la40f5dpj0zdj63zprrkyjgzy068p35bz5dqxjyczm1zlp"))))
624 (build-system gnu-build-system) 624 (build-system gnu-build-system)
625 (inputs `(("readline" ,readline) 625 (inputs `(("readline" ,readline)
626 ("cairo" ,cairo) 626 ("cairo" ,cairo)
diff --git a/gnu/packages/mc.scm b/gnu/packages/mc.scm
index 3d6185ca780..76bf77d1c86 100644
--- a/gnu/packages/mc.scm
+++ b/gnu/packages/mc.scm
@@ -37,14 +37,14 @@
37(define-public mc 37(define-public mc
38 (package 38 (package
39 (name "mc") 39 (name "mc")
40 (version "4.8.22") 40 (version "4.8.23")
41 (source 41 (source
42 (origin 42 (origin
43 (method url-fetch) 43 (method url-fetch)
44 (uri (string-append "http://ftp.midnight-commander.org/mc-" 44 (uri (string-append "http://ftp.midnight-commander.org/mc-"
45 version ".tar.xz")) 45 version ".tar.xz"))
46 (sha256 46 (sha256
47 (base32 "060kh3dmk8fmmsibn1l815qjazzfxzbhgqggrhncz604pbbnhy7f")))) 47 (base32 "077z7phzq3m1sxyz7li77lyzv4rjmmh3wp2vy86pnc4387kpqzyx"))))
48 (build-system gnu-build-system) 48 (build-system gnu-build-system)
49 (native-inputs `(("pkg-config" ,pkg-config) 49 (native-inputs `(("pkg-config" ,pkg-config)
50 ("perl" ,perl))) 50 ("perl" ,perl)))
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 7d036ad4735..503781a9eb8 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -42,6 +42,7 @@
42 #:use-module (gnu packages base) 42 #:use-module (gnu packages base)
43 #:use-module (gnu packages bash) 43 #:use-module (gnu packages bash)
44 #:use-module (gnu packages bison) 44 #:use-module (gnu packages bison)
45 #:use-module (gnu packages boost)
45 #:use-module (gnu packages check) 46 #:use-module (gnu packages check)
46 #:use-module (gnu packages compression) 47 #:use-module (gnu packages compression)
47 #:use-module (gnu packages crypto) 48 #:use-module (gnu packages crypto)
@@ -490,56 +491,43 @@ compromised.")
490(define-public znc 491(define-public znc
491 (package 492 (package
492 (name "znc") 493 (name "znc")
493 (version "1.7.3") 494 (version "1.7.4")
494 (source (origin 495 (source (origin
495 (method url-fetch) 496 (method url-fetch)
496 (uri (string-append "http://znc.in/releases/archive/znc-" 497 (uri (string-append "http://znc.in/releases/archive/znc-"
497 version ".tar.gz")) 498 version ".tar.gz"))
498 (sha256 499 (sha256
499 (base32 500 (base32
500 "0g8i5hsl4kinpz1wp0a2zniidv3w2sd6awq8676fds516wcc6k0y")))) 501 "0wcvqkpin8w4i72alnn0nxnrc9ih543qs34hqpk9xmz6m0hjk8xi"))))
501 ;; TODO: autotools support has been deprecated, and new features like i18n 502 (build-system cmake-build-system)
502 ;; are only supported when building with cmake.
503 (build-system gnu-build-system)
504 (arguments 503 (arguments
505 `(#:phases 504 `(#:configure-flags
505 (list "-DWANT_CYRUS=ON"
506 "-DWANT_I18N=ON"
507 "-DWANT_PERL=ON"
508 "-DWANT_PYTHON=ON")
509 #:phases
506 (modify-phases %standard-phases 510 (modify-phases %standard-phases
507 (add-after 'unpack 'unpack-googletest 511 (add-after 'unpack 'unpack-googletest
512 ;; Copy the googletest sources to where the CMake build expects them.
508 (lambda* (#:key inputs #:allow-other-keys) 513 (lambda* (#:key inputs #:allow-other-keys)
509 (mkdir-p "googletest") 514 (let ((source (assoc-ref inputs "googletest-source"))
510 (copy-recursively (assoc-ref inputs "googletest-source") 515 (target "third_party/googletest"))
511 "googletest") 516 (mkdir-p target)
512 #t))) 517 (copy-recursively source target)
513 #:configure-flags '("--enable-python" 518 #t))))))
514 "--enable-perl"
515 "--enable-cyrus"
516 "--with-gmock=googletest/googlemock"
517 "--with-gtest=googletest/googletest")
518 #:test-target "test"))
519 (native-inputs 519 (native-inputs
520 `(("googletest-source" 520 `(("boost" ,boost)
521 ;; ZNC 1.7 needs a newer, unreleased googletest (a release is planned 521 ("gettext" ,gettext-minimal)
522 ;; <https://github.com/google/googletest/issues/1583>, so don't update 522 ("googletest-source" ,(package-source googletest))
523 ;; the public GOOGLETEST to an unstable version). The commit is taken 523 ("pkg-config" ,pkg-config)))
524 ;; from ‘third_party/googletest’ in the ZNC git repository.
525 ,(let ((commit "9737e63c69e94ac5777caa0bc77c77d5206467f3"))
526 (origin
527 (method git-fetch)
528 (uri (git-reference
529 (url "https://github.com/google/googletest")
530 (commit commit)))
531 (file-name (git-file-name "googletest-for-znc" commit))
532 (sha256
533 (base32
534 "0ya36n8d62zbxk6p22yffgx43mqhx2fz41gqqwbpdshjryf3wvxj")))))
535 ("pkg-config" ,pkg-config)
536 ("perl" ,perl)
537 ("python" ,python)))
538 (inputs 524 (inputs
539 `(("openssl" ,openssl) 525 `(("cyrus-sasl" ,cyrus-sasl)
540 ("zlib" ,zlib)
541 ("icu4c" ,icu4c) 526 ("icu4c" ,icu4c)
542 ("cyrus-sasl" ,cyrus-sasl))) 527 ("openssl" ,openssl)
528 ("perl" ,perl)
529 ("python" ,python)
530 ("zlib" ,zlib)))
543 (home-page "https://znc.in") 531 (home-page "https://znc.in")
544 (synopsis "IRC network bouncer") 532 (synopsis "IRC network bouncer")
545 (description "ZNC is an @dfn{IRC network bouncer} or @dfn{BNC}. It can 533 (description "ZNC is an @dfn{IRC network bouncer} or @dfn{BNC}. It can
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 461296f66b4..c9cd7b1382a 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -339,14 +339,14 @@ only provides @code{MPI_THREAD_FUNNELED}.")))
339(define-public python-mpi4py 339(define-public python-mpi4py
340 (package 340 (package
341 (name "python-mpi4py") 341 (name "python-mpi4py")
342 (version "3.0.1") 342 (version "3.0.2")
343 (source 343 (source
344 (origin 344 (origin
345 (method url-fetch) 345 (method url-fetch)
346 (uri (pypi-uri "mpi4py" version)) 346 (uri (pypi-uri "mpi4py" version))
347 (sha256 347 (sha256
348 (base32 348 (base32
349 "0ld8rjmsjr0dklvj2g1gr3ax32sdq0xjxyh0cspknc1i36waajb5")))) 349 "1q28xl36difma1wq0acq111cqxjya32kn3lxp6fbidz3wg8jkmpq"))))
350 (build-system python-build-system) 350 (build-system python-build-system)
351 (arguments 351 (arguments
352 `(#:phases 352 `(#:phases
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 1c0a4f39827..ca9cbd3343e 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -20,6 +20,7 @@
20;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org> 20;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
21;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> 21;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
22;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com> 22;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
23;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
23;;; 24;;;
24;;; This file is part of GNU Guix. 25;;; This file is part of GNU Guix.
25;;; 26;;;
@@ -314,7 +315,7 @@ playing your music.")
314(define-public cmus 315(define-public cmus
315 (package 316 (package
316 (name "cmus") 317 (name "cmus")
317 (version "2.7.1") 318 (version "2.8.0")
318 (source (origin 319 (source (origin
319 (method git-fetch) 320 (method git-fetch)
320 (uri (git-reference 321 (uri (git-reference
@@ -323,7 +324,7 @@ playing your music.")
323 (file-name (git-file-name name version)) 324 (file-name (git-file-name name version))
324 (sha256 325 (sha256
325 (base32 326 (base32
326 "0xd96py21bl869qlv1353zw7xsgq6v5s8szr0ldr63zj5fgc2ps5")))) 327 "1ydnvq13ay8b8mfmmgwi5qsgyf220yi1d01acbnxqn775dghmwar"))))
327 (build-system gnu-build-system) 328 (build-system gnu-build-system)
328 (arguments 329 (arguments
329 `(#:tests? #f ; cmus does not include tests 330 `(#:tests? #f ; cmus does not include tests
@@ -1362,7 +1363,7 @@ users to select LV2 plugins and run them with jalv.")
1362(define-public synthv1 1363(define-public synthv1
1363 (package 1364 (package
1364 (name "synthv1") 1365 (name "synthv1")
1365 (version "0.9.7") 1366 (version "0.9.8")
1366 (source (origin 1367 (source (origin
1367 (method url-fetch) 1368 (method url-fetch)
1368 (uri 1369 (uri
@@ -1370,12 +1371,10 @@ users to select LV2 plugins and run them with jalv.")
1370 "/synthv1-" version ".tar.gz")) 1371 "/synthv1-" version ".tar.gz"))
1371 (sha256 1372 (sha256
1372 (base32 1373 (base32
1373 "0i70wm430fvksi3g985farrkhgb7mwhi7j06dl66cdj1n12jzzk7")))) 1374 "15kabmxp38wqvavs5hr1dqasjjf1j977kzqggxfmzyi3y5fan3hj"))))
1374 (build-system gnu-build-system) 1375 (build-system gnu-build-system)
1375 (arguments 1376 (arguments
1376 `(#:tests? #f ; there are no tests 1377 `(#:tests? #f)) ; there are no tests
1377 #:configure-flags
1378 '("CXXFLAGS=-std=gnu++11")))
1379 (inputs 1378 (inputs
1380 `(("jack" ,jack-1) 1379 `(("jack" ,jack-1)
1381 ("lv2" ,lv2) 1380 ("lv2" ,lv2)
@@ -1396,7 +1395,7 @@ oscillators and stereo effects.")
1396(define-public drumkv1 1395(define-public drumkv1
1397 (package 1396 (package
1398 (name "drumkv1") 1397 (name "drumkv1")
1399 (version "0.9.7") 1398 (version "0.9.8")
1400 (source (origin 1399 (source (origin
1401 (method url-fetch) 1400 (method url-fetch)
1402 (uri 1401 (uri
@@ -1404,12 +1403,10 @@ oscillators and stereo effects.")
1404 "/drumkv1-" version ".tar.gz")) 1403 "/drumkv1-" version ".tar.gz"))
1405 (sha256 1404 (sha256
1406 (base32 1405 (base32
1407 "1361dqdasrc98q9hcjdwsjx6agfimwnay430887fryi3pslkyd81")))) 1406 "010p8nwnmqgj5mw324psig3hxi1g2gylxrigd6sj6sgcpy3kdm23"))))
1408 (build-system gnu-build-system) 1407 (build-system gnu-build-system)
1409 (arguments 1408 (arguments
1410 `(#:tests? #f ; there are no tests 1409 `(#:tests? #f)) ; there are no tests
1411 #:configure-flags
1412 '("CXXFLAGS=-std=gnu++11")))
1413 (inputs 1410 (inputs
1414 `(("jack" ,jack-1) 1411 `(("jack" ,jack-1)
1415 ("lv2" ,lv2) 1412 ("lv2" ,lv2)
@@ -1431,7 +1428,7 @@ effects.")
1431(define-public samplv1 1428(define-public samplv1
1432 (package 1429 (package
1433 (name "samplv1") 1430 (name "samplv1")
1434 (version "0.9.7") 1431 (version "0.9.8")
1435 (source (origin 1432 (source (origin
1436 (method url-fetch) 1433 (method url-fetch)
1437 (uri 1434 (uri
@@ -1439,12 +1436,10 @@ effects.")
1439 "/samplv1-" version ".tar.gz")) 1436 "/samplv1-" version ".tar.gz"))
1440 (sha256 1437 (sha256
1441 (base32 1438 (base32
1442 "1vgmcjccpgqqlmmwfg6m91nph81p2xaxydjx82n4l1yrr9lidn9h")))) 1439 "138kd9szgn3b97s7crhsyj8pgwb0bn4l9knd4zliqjgj2f1bs9x0"))))
1443 (build-system gnu-build-system) 1440 (build-system gnu-build-system)
1444 (arguments 1441 (arguments
1445 `(#:tests? #f ; there are no tests 1442 `(#:tests? #f)) ; there are no tests
1446 #:configure-flags
1447 '("CXXFLAGS=-std=gnu++11")))
1448 (inputs 1443 (inputs
1449 `(("jack" ,jack-1) 1444 `(("jack" ,jack-1)
1450 ("lv2" ,lv2) 1445 ("lv2" ,lv2)
@@ -1466,7 +1461,7 @@ effects.")
1466(define-public padthv1 1461(define-public padthv1
1467 (package 1462 (package
1468 (name "padthv1") 1463 (name "padthv1")
1469 (version "0.9.7") 1464 (version "0.9.8")
1470 (source (origin 1465 (source (origin
1471 (method url-fetch) 1466 (method url-fetch)
1472 (uri 1467 (uri
@@ -1474,12 +1469,10 @@ effects.")
1474 "/padthv1-" version ".tar.gz")) 1469 "/padthv1-" version ".tar.gz"))
1475 (sha256 1470 (sha256
1476 (base32 1471 (base32
1477 "1jd4bf6a1ipvg4yhb3xf3maqg68bx97ic9l57djmkirlrkh2a3wp")))) 1472 "1k4p2ir12qjcs62knvw2s6qyvb46203yx22fnwp341cjk171cxji"))))
1478 (build-system gnu-build-system) 1473 (build-system gnu-build-system)
1479 (arguments 1474 (arguments
1480 `(#:tests? #f ; there are no tests 1475 `(#:tests? #f)) ; there are no tests
1481 #:configure-flags
1482 '("CXXFLAGS=-std=gnu++11")))
1483 (inputs 1476 (inputs
1484 `(("jack" ,jack-1) 1477 `(("jack" ,jack-1)
1485 ("lv2" ,lv2) 1478 ("lv2" ,lv2)
@@ -2871,7 +2864,7 @@ for improved Amiga ProTracker 2/3 compatibility.")
2871(define-public schismtracker 2864(define-public schismtracker
2872 (package 2865 (package
2873 (name "schismtracker") 2866 (name "schismtracker")
2874 (version "20181223") 2867 (version "20190614")
2875 (source (origin 2868 (source (origin
2876 (method git-fetch) 2869 (method git-fetch)
2877 (uri (git-reference 2870 (uri (git-reference
@@ -2880,7 +2873,7 @@ for improved Amiga ProTracker 2/3 compatibility.")
2880 (file-name (git-file-name name version)) 2873 (file-name (git-file-name name version))
2881 (sha256 2874 (sha256
2882 (base32 2875 (base32
2883 "18k5j10zq39y2q294avdmar87x93k57wqmq8bpz562hdqki2mz1l")) 2876 "0cg0q5bkn8a06v03vmj69xyhi4xxpl729k4008q4hiakh9gy2x49"))
2884 (modules '((guix build utils))) 2877 (modules '((guix build utils)))
2885 (snippet 2878 (snippet
2886 ;; Remove use of __DATE__ and __TIME__ for reproducibility. 2879 ;; Remove use of __DATE__ and __TIME__ for reproducibility.
@@ -2900,7 +2893,7 @@ for improved Amiga ProTracker 2/3 compatibility.")
2900 ("automake" ,automake) 2893 ("automake" ,automake)
2901 ("python" ,python))) 2894 ("python" ,python)))
2902 (inputs 2895 (inputs
2903 `(("alsa-lib" ,alsa-lib) ; for asound dependency 2896 `(("alsa-lib" ,alsa-lib) ; for asound dependency
2904 ("libx11" ,libx11) 2897 ("libx11" ,libx11)
2905 ("libxext" ,libxext) 2898 ("libxext" ,libxext)
2906 ("sdl" ,sdl))) 2899 ("sdl" ,sdl)))
diff --git a/gnu/packages/patches/emacs-zones-called-interactively.patch b/gnu/packages/patches/emacs-zones-called-interactively.patch
index b60f390a7e7..eefcfdd12ed 100644
--- a/gnu/packages/patches/emacs-zones-called-interactively.patch
+++ b/gnu/packages/patches/emacs-zones-called-interactively.patch
@@ -1,4 +1,4 @@
1From fb56fbb706804215ef9af0cc575db97c373046c6 Mon Sep 17 00:00:00 2001 1From 81603e53ebaae0f0b23c4c52c7dab83e808964ec Mon Sep 17 00:00:00 2001
2From: Brian Leung <bkleung89@gmail.com> 2From: Brian Leung <bkleung89@gmail.com>
3Date: Sun, 17 Mar 2019 01:32:04 +0100 3Date: Sun, 17 Mar 2019 01:32:04 +0100
4Subject: [PATCH] This patch silences the byte-compiler. 4Subject: [PATCH] This patch silences the byte-compiler.
@@ -8,36 +8,36 @@ Subject: [PATCH] This patch silences the byte-compiler.
8 1 file changed, 3 insertions(+), 3 deletions(-) 8 1 file changed, 3 insertions(+), 3 deletions(-)
9 9
10diff --git a/zones.el b/zones.el 10diff --git a/zones.el b/zones.el
11index 1bf94f0..94fa9a6 100644 11index ca88d48..594ea36 100644
12--- a/zones.el 12--- a/zones.el
13+++ b/zones.el 13+++ b/zones.el
14@@ -1031,7 +1031,7 @@ You can use `C-x n x' to widen to a previous buffer restriction. 14@@ -1075,7 +1075,7 @@ You can use `C-x n x' to widen to a previous buffer restriction.
15 15
16 This is a destructive operation. The list structure of the variable 16 This is a destructive operation. The list structure of the variable
17 value can be modified." 17 value can be modified."
18- (zz-narrow-advice (interactive-p))) 18- (zz-narrow-advice (interactive-p)))
19+ (zz-narrow-advice (called-interactively-p))) 19+ (zz-narrow-advice (called-interactively-p 'interactive)))
20 20
21 (defadvice narrow-to-defun (after zz-add-zone--defun activate) 21 (defadvice narrow-to-defun (after zz-add-zone--defun activate)
22 "Push the defun limits to the current `zz-izones-var'. 22 "Push the defun limits to the current `zz-izones-var'.
23@@ -1039,7 +1039,7 @@ You can use `C-x n x' to widen to a previous buffer restriction. 23@@ -1083,7 +1083,7 @@ You can use `C-x n x' to widen to a previous buffer restriction.
24 24
25 This is a destructive operation. The list structure of the variable 25 This is a destructive operation. The list structure of the variable
26 value can be modified." 26 value can be modified."
27- (zz-narrow-advice (interactive-p))) 27- (zz-narrow-advice (interactive-p)))
28+ (zz-narrow-advice (called-interactively-p))) 28+ (zz-narrow-advice (called-interactively-p 'interactive)))
29 29
30 ;; Call `zz-add-zone' if interactive or `zz-add-zone-anyway-p'. 30 ;; Call `zz-add-zone' if interactive or `zz-add-zone-anyway-p'.
31 ;; 31 ;;
32@@ -1049,7 +1049,7 @@ You can use `C-x n x' to widen to a previous buffer restriction. 32@@ -1093,7 +1093,7 @@ You can use `C-x n x' to widen to a previous buffer restriction.
33 33
34 This is a destructive operation. The list structure of the variable 34 This is a destructive operation. The list structure of the variable
35 value can be modified." 35 value can be modified."
36- (zz-narrow-advice (interactive-p))) 36- (zz-narrow-advice (interactive-p)))
37+ (zz-narrow-advice (called-interactively-p))) 37+ (zz-narrow-advice (called-interactively-p 'interactive)))
38 38
39 ;;(@* "General Commands") 39 ;;(@* "General Commands")
40 40
41-- 41--
422.21.0 422.22.0
43 43
diff --git a/gnu/packages/patches/khmer-use-libraries.patch b/gnu/packages/patches/khmer-use-libraries.patch
deleted file mode 100644
index 47d163a99a2..00000000000
--- a/gnu/packages/patches/khmer-use-libraries.patch
+++ /dev/null
@@ -1,16 +0,0 @@
1Change setup.cfg so that the bundled zlib and bzip2 are not used. This cannot
2currently be achieved using "--library z,bz2" as instructed in the setup.py.
3
4diff --git a/setup.cfg b/setup.cfg
5index c054092..080992e 100644
6--- a/setup.cfg
7+++ b/setup.cfg
8@@ -1,7 +1,7 @@
9 [build_ext]
10 define = SEQAN_HAS_BZIP2,SEQAN_HAS_ZLIB
11 undef = NO_UNIQUE_RC
12-# libraries = z,bz2
13+libraries = z,bz2
14 ## if using system libraries
15 include-dirs = lib:third-party/zlib:third-party/bzip2:third-party/seqan/core/include:third-party/smhasher
16 # include-dirs = lib
diff --git a/gnu/packages/patches/lcalc-default-parameters-1.patch b/gnu/packages/patches/lcalc-default-parameters-1.patch
new file mode 100644
index 00000000000..19b07763206
--- /dev/null
+++ b/gnu/packages/patches/lcalc-default-parameters-1.patch
@@ -0,0 +1,26 @@
1Patch taken from the Sage packaging system.
2
3diff -Naur lcalc-1.23-vanilla/include/Ldirichlet_series.h lcalc-1.23-fixed-gcc.4.9/include/Ldirichlet_series.h
4--- lcalc-1.23-vanilla/include/Ldirichlet_series.h 2012-08-08 23:21:55.000000000 +0200
5+++ lcalc-1.23-fixed-gcc.4.9/include/Ldirichlet_series.h 2014-04-21 14:37:59.027464849 +0200
6@@ -43,7 +43,7 @@
7 //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8 template <class ttype>
9 Complex L_function <ttype>::
10-dirichlet_series(Complex s, long long N=-1)
11+dirichlet_series(Complex s, long long N)
12 {
13 Complex z=0.;
14 long long m,n;
15diff -Naur lcalc-1.23-vanilla/include/L.h lcalc-1.23-fixed-gcc.4.9/include/L.h
16--- lcalc-1.23-vanilla/include/L.h 2012-08-08 23:21:55.000000000 +0200
17+++ lcalc-1.23-fixed-gcc.4.9/include/L.h 2014-04-21 14:32:04.003467348 +0200
18@@ -491,7 +491,7 @@
19
20 //#include "Ldirichlet_series.h" //for computing Dirichlet series
21 Complex partial_dirichlet_series(Complex s, long long N1, long long N2);
22- Complex dirichlet_series(Complex s, long long N);
23+ Complex dirichlet_series(Complex s, long long N=-1LL);
24
25 //#include "Ltaylor_series.h" //for computing taylor series for Dirichlet series
26 //void compute_taylor_series(int N, int K, Complex s_0, Complex *series);
diff --git a/gnu/packages/patches/lcalc-default-parameters-2.patch b/gnu/packages/patches/lcalc-default-parameters-2.patch
new file mode 100644
index 00000000000..1d881ee0c43
--- /dev/null
+++ b/gnu/packages/patches/lcalc-default-parameters-2.patch
@@ -0,0 +1,58 @@
1Patch taken from the Sage packaging system.
2
3--- lcalc-1.23/include/Lgamma.h 2012-08-08 23:21:55.000000000 +0200
4+++ lcalc-1.23/include/Lgamma.h 2014-05-18 21:15:27.786889718 +0200
5@@ -77,7 +77,7 @@
6 //n=0 should just give log_GAMMA(z)... thus making log_GAMMA
7 //code obsolete. But leave log_GAMMA intact anyways.
8 template <class ttype>
9-precise(ttype) log_GAMMA (ttype z,int n=0)
10+precise(ttype) log_GAMMA (ttype z,int n)
11 {
12 int M;
13 precise(ttype) log_G,r,r2,y;
14@@ -230,7 +230,7 @@
15 //value exp_w which holds exp(-w)
16 //computes G(z,w), so there's an extra w^(-z) factor.
17 template <class ttype>
18-Complex inc_GAMMA (ttype z,ttype w, const char *method="temme", ttype exp_w = 0, bool recycle=false)
19+Complex inc_GAMMA (ttype z,ttype w, const char *method, ttype exp_w, bool recycle)
20 {
21
22 Complex G;
23@@ -334,7 +334,7 @@
24
25
26 template <class ttype>
27-ttype cfrac_GAMMA (ttype z,ttype w, ttype exp_w=0, bool recycle=false) //computes G(z,w) via continued fraction
28+ttype cfrac_GAMMA (ttype z,ttype w, ttype exp_w, bool recycle) //computes G(z,w) via continued fraction
29 {
30
31 ttype G;
32@@ -424,7 +424,7 @@
33 }
34
35 template <class ttype>
36-ttype asympt_GAMMA (ttype z,ttype w, ttype exp_w = 0, bool recycle=false) //computes G(z,w) via asymptotic series
37+ttype asympt_GAMMA (ttype z,ttype w, ttype exp_w, bool recycle) //computes G(z,w) via asymptotic series
38 {
39
40 if(my_verbose>3) cout << "called asympt_GAMMA("<<z<<","<<w<<")"<< endl;
41@@ -446,7 +446,7 @@
42
43
44 template <class ttype>
45-ttype comp_inc_GAMMA (ttype z,ttype w,ttype exp_w = 0, bool recycle=false) //computes g(z,w)
46+ttype comp_inc_GAMMA (ttype z,ttype w,ttype exp_w, bool recycle) //computes g(z,w)
47 {
48
49 ttype g;
50@@ -604,7 +604,7 @@
51 }
52
53 template <class ttype>
54-Complex gamma_sum(Complex s, int what_type, ttype *coeff, int N, Double g, Complex l, Double Q, Long Period, Complex delta=1, const char *method="temme")
55+Complex gamma_sum(Complex s, int what_type, ttype *coeff, int N, Double g, Complex l, Double Q, Long Period, Complex delta, const char *method)
56 {
57 Complex SUM=0;
58
diff --git a/gnu/packages/patches/lcalc-lcommon-h.patch b/gnu/packages/patches/lcalc-lcommon-h.patch
new file mode 100644
index 00000000000..897956de648
--- /dev/null
+++ b/gnu/packages/patches/lcalc-lcommon-h.patch
@@ -0,0 +1,13 @@
1Patch taken from the Sage packaging system.
2
3--- src/include/Lcommon.h 2010-01-31 15:16:45.000000000 +0000
4+++ src/include/Lcommon.h 2011-03-08 21:19:11.849443238 +0000
5@@ -25,7 +25,7 @@
6 #ifdef USE_MPFR
7 inline double lcalc_to_double(const double& x) { return x; }
8 #endif
9-//inline double lcalc_to_double(const long double& x) { return x; }
10+inline double lcalc_to_double(const long double& x) { return x; }
11 inline double lcalc_to_double(const int& x) { return x; }
12 inline double lcalc_to_double(const long long& x) { return x; }
13 inline double lcalc_to_double(const short& x) { return x; }
diff --git a/gnu/packages/patches/lcalc-using-namespace-std.patch b/gnu/packages/patches/lcalc-using-namespace-std.patch
new file mode 100644
index 00000000000..6e0075fdc84
--- /dev/null
+++ b/gnu/packages/patches/lcalc-using-namespace-std.patch
@@ -0,0 +1,43 @@
1Patch taken from the Sage packaging system.
2
3diff --git a/include/Lcommon.h b/include/Lcommon.h
4index 1b3be43..bf40532 100644
5--- a/include/Lcommon.h
6+++ b/include/Lcommon.h
7@@ -48,7 +48,7 @@ const bool outputSeries=true; // Whether to output the coefficients or just th
8
9 // Loop i from m to n
10 // Useful in tidying up most for loops
11-#define loop(i,m,n) for(typeof(m) i=(m); i!=(n); i++)
12+#define loop(i,m,n) for(auto i=(m); i!=(n); i++)
13
14 // A class for calculations involving polynomials of small degree
15 // Not efficient enough for huge polynomials
16diff --git a/include/Lcommon_ld.h b/include/Lcommon_ld.h
17index 86ae4df..33c560c 100644
18--- a/include/Lcommon_ld.h
19+++ b/include/Lcommon_ld.h
20@@ -53,7 +53,7 @@ const bool outputSeries=true; // Whether to output the coefficients or just th
21
22 // Loop i from m to n
23 // Useful in tidying up most for loops
24-#define loop(i,m,n) for(typeof(m) i=(m); i!=(n); i++)
25+#define loop(i,m,n) for(auto i=(m); i!=(n); i++)
26
27 // A class for calculations involving polynomials of small degree
28 // Not efficient enough for huge polynomials
29diff --git a/include/Lglobals.h b/include/Lglobals.h
30index 60002e4..ca2606c 100644
31--- a/include/Lglobals.h
32+++ b/include/Lglobals.h
33@@ -24,9 +24,9 @@
34 #ifndef Lglobals_H
35 #define Lglobals_H
36
37+#include <valarray>
38 using namespace std;
39
40-#include <valarray>
41 #ifdef USE_MPFR
42 #include "Lgmpfrxx.h"
43 typedef mpfr_class Double;
diff --git a/gnu/packages/patches/leela-zero-gtest.patch b/gnu/packages/patches/leela-zero-gtest.patch
new file mode 100644
index 00000000000..7291b4ab725
--- /dev/null
+++ b/gnu/packages/patches/leela-zero-gtest.patch
@@ -0,0 +1,40 @@
1Use shared gtest instead of submodule
2
3diff --git a/CMakeLists.txt b/CMakeLists.txt
4index 617e4b2..2857875 100644
5--- a/CMakeLists.txt
6+++ b/CMakeLists.txt
7@@ -18,7 +18,6 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
8 include(GNUInstallDirs)
9
10 project(leelaz)
11-add_subdirectory(gtest EXCLUDE_FROM_ALL) # We don't want to install gtest, exclude it from `all`
12
13 # Required Packages
14 set(Boost_MIN_VERSION "1.58.0")
15@@ -27,6 +26,7 @@ find_package(Boost 1.58.0 REQUIRED program_options filesystem)
16 find_package(Threads REQUIRED)
17 find_package(ZLIB REQUIRED)
18 find_package(OpenCL REQUIRED)
19+find_package(GTest REQUIRED)
20 # We need OpenBLAS for now, because we make some specific
21 # calls. Ideally we'd use OpenBLAS is possible and fall back to
22 # not doing those calls if it's not present.
23@@ -93,6 +93,7 @@ include_directories(${IncludePath})
24 include_directories(${Boost_INCLUDE_DIRS})
25 include_directories(${OpenCL_INCLUDE_DIRS})
26 include_directories(${ZLIB_INCLUDE_DIRS})
27+include_directories(${GTEST_INCLUDE_DIRS})
28
29 if((UNIX AND NOT APPLE) OR WIN32)
30 include_directories(${BLAS_INCLUDE_DIRS})
31@@ -141,7 +142,8 @@ target_link_libraries(tests ${Boost_LIBRARIES})
32 target_link_libraries(tests ${BLAS_LIBRARIES})
33 target_link_libraries(tests ${OpenCL_LIBRARIES})
34 target_link_libraries(tests ${ZLIB_LIBRARIES})
35-target_link_libraries(tests gtest_main ${CMAKE_THREAD_LIBS_INIT})
36+target_link_libraries(tests ${GTEST_BOTH_LIBRARIES})
37+target_link_libraries(tests ${CMAKE_THREAD_LIBS_INIT})
38
39 include(GetGitRevisionDescription)
40 git_describe(VERSION --tags)
diff --git a/gnu/packages/patches/lrcalc-includes.patch b/gnu/packages/patches/lrcalc-includes.patch
new file mode 100644
index 00000000000..e15286905b5
--- /dev/null
+++ b/gnu/packages/patches/lrcalc-includes.patch
@@ -0,0 +1,92 @@
1Patch taken from the Sage packaging system.
2
3From 4a5e1c8c3c11efdb1cbb4239825a6bf4bf1c52f8 Mon Sep 17 00:00:00 2001
4From: Anders Skovsted Buch <asbuch@math.rutgers.edu>
5Date: Sun, 29 Nov 2015 16:25:56 -0500
6Subject: [PATCH] Patch by Jeroen Demeyer to change include <vector.h> to
7 "vector.h", plus similar cases.
8
9---
10 src/lrcalc.c | 2 +-
11 src/maple.c | 4 ++--
12 src/schublib.h | 2 +-
13 src/symfcn.c | 6 +++---
14 src/symfcn.h | 4 ++--
15 5 files changed, 9 insertions(+), 9 deletions(-)
16
17diff --git a/src/lrcalc.c b/src/lrcalc.c
18index aff3f75..60df49e 100644
19--- a/src/lrcalc.c
20+++ b/src/lrcalc.c
21@@ -8,7 +8,7 @@
22 #include <stdlib.h>
23 extern char *optarg;
24
25-#include <vectarg.h>
26+#include "vectarg.h"
27
28 #include "symfcn.h"
29 #include "maple.h"
30diff --git a/src/maple.c b/src/maple.c
31index fdc0768..a5f4d14 100644
32--- a/src/maple.c
33+++ b/src/maple.c
34@@ -4,8 +4,8 @@
35 */
36
37 #include <stdio.h>
38-#include <vector.h>
39-#include <hashtab.h>
40+#include "vector.h"
41+#include "hashtab.h"
42 #include "maple.h"
43
44
45diff --git a/src/schublib.h b/src/schublib.h
46index a8e8511..864850c 100644
47--- a/src/schublib.h
48+++ b/src/schublib.h
49@@ -1,7 +1,7 @@
50 #ifndef _SCHUBLIB_H
51 #define _SCHUBLIB_H
52
53-#include <hashtab.h>
54+#include "hashtab.h"
55
56 hashtab *trans(vector *w, int vars, hashtab *res);
57 hashtab *monk(int i, hashtab *slc, int rank);
58diff --git a/src/symfcn.c b/src/symfcn.c
59index 4ffbe4b..fd5df5d 100644
60--- a/src/symfcn.c
61+++ b/src/symfcn.c
62@@ -5,9 +5,9 @@
63
64 #include <stdio.h>
65
66-#include <alloc.h>
67-#include <vector.h>
68-#include <hashtab.h>
69+#include "alloc.h"
70+#include "vector.h"
71+#include "hashtab.h"
72
73 #include "symfcn.h"
74
75diff --git a/src/symfcn.h b/src/symfcn.h
76index b8543b1..29bb00d 100644
77--- a/src/symfcn.h
78+++ b/src/symfcn.h
79@@ -1,8 +1,8 @@
80 #ifndef _SYMFCN_H
81 #define _SYMFCN_H
82
83-#include <hashtab.h>
84-#include <vector.h>
85+#include "hashtab.h"
86+#include "vector.h"
87
88 int part_itr_sz(vector *part);
89 int part_itr_sub(vector *part, vector *outer);
90--
912.1.1.1.g1fb337f
92
diff --git a/gnu/packages/patches/python-pyatspi-python-37.patch b/gnu/packages/patches/python-pyatspi-python-37.patch
new file mode 100644
index 00000000000..caa6aea39e2
--- /dev/null
+++ b/gnu/packages/patches/python-pyatspi-python-37.patch
@@ -0,0 +1,82 @@
1From 29a7b929f7f1160b643dc5f5911533887173fcff Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
3Date: Thu, 28 Jun 2018 17:10:33 +0200
4Subject: [PATCH] Rename async to asynchronous, keep backwards comaptibility
5
6async is a keyword in Python 3.7 and keeping it results in SyntaxError.
7
8Fixes https://gitlab.gnome.org/GNOME/pyatspi2/issues/1
9---
10 pyatspi/registry.py | 35 +++++++++++++++++++++++++++--------
11 1 file changed, 27 insertions(+), 8 deletions(-)
12
13diff --git a/pyatspi/registry.py b/pyatspi/registry.py
14index cb28395..f73ee16 100644
15--- a/pyatspi/registry.py
16+++ b/pyatspi/registry.py
17@@ -50,9 +50,9 @@ class Registry(object):
18 reference to the Accessibility.Registry singleton. Doing so is harmless and
19 has no point.
20
21- @@ivar async: Should event dispatch to local listeners be decoupled from event
22- receiving from the registry?
23- @@type async: boolean
24+ @@ivar asynchronous: Should event dispatch to local listeners be decoupled
25+ from event receiving from the registry?
26+ @@type asynchronous: boolean
27 @@ivar reg: Reference to the real, wrapped registry object
28 @@type reg: Accessibility.Registry
29 @@ivar dev: Reference to the device controller
30@@ -111,25 +111,44 @@ class Registry(object):
31
32 self.has_implementations = True
33
34- self.async = False # not fully supported yet
35+ self.asynchronous = False # not fully supported yet
36 self.started = False
37 self.event_listeners = dict()
38
39+ def __getattr__(self, name):
40+ """
41+ For backwards compatibility with old API
42+ """
43+ if name == 'async':
44+ return self.asynchronous
45+ return object.__getattr__(self, name)
46+
47+ def __setattr__(self, name, value):
48+ """
49+ For backwards compatibility with old API
50+ """
51+ if name == 'async':
52+ self.asynchronous = value
53+ object.__setattr__(self, name, value)
54+
55 def _set_default_registry (self):
56 self._set_registry (MAIN_LOOP_GLIB)
57
58- def start(self, async=False, gil=True):
59+ def start(self, asynchronous=False, gil=True, **kwargs):
60 """
61 Enter the main loop to start receiving and dispatching events.
62
63- @@param async: Should event dispatch be asynchronous (decoupled) from
64- event receiving from the AT-SPI registry?
65- @@type async: boolean
66+ @@param asynchronous: Should event dispatch be asynchronous
67+ (decoupled) from event receiving from the AT-SPI registry?
68+ @@type asynchronous: boolean
69 @@param gil: Add an idle callback which releases the Python GIL for a few
70 milliseconds to allow other threads to run? Necessary if other threads
71 will be used in this process.
72 @@type gil: boolean
73 """
74+ if 'async' in kwargs:
75+ # support previous API
76+ asynchronous = kwargs['async']
77 if not self.has_implementations:
78 self._set_default_registry ()
79 self.started = True
80--
812.22.0
82
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 36900509443..6318a4b3099 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -1039,7 +1039,7 @@ multiple files.")
1039(define-public pdfpc 1039(define-public pdfpc
1040 (package 1040 (package
1041 (name "pdfpc") 1041 (name "pdfpc")
1042 (version "4.3.2") 1042 (version "4.3.4")
1043 (source 1043 (source
1044 (origin 1044 (origin
1045 (method git-fetch) 1045 (method git-fetch)
@@ -1048,7 +1048,7 @@ multiple files.")
1048 (commit (string-append "v" version)))) 1048 (commit (string-append "v" version))))
1049 (file-name (git-file-name name version)) 1049 (file-name (git-file-name name version))
1050 (sha256 1050 (sha256
1051 (base32 "15y6g92fp6x6dwwhrhkfny5z20w7pq9c8w19fh2vzff9aa6m2h9z")))) 1051 (base32 "07aafsm4jzdgpahz83p0ajv40hry7gviyadqi13ahr8xdhhwy2sd"))))
1052 (build-system cmake-build-system) 1052 (build-system cmake-build-system)
1053 (arguments '(#:tests? #f)) ; no test target 1053 (arguments '(#:tests? #f)) ; no test target
1054 (inputs 1054 (inputs
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 6a4dbe8ed0e..52b2bc26303 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -383,24 +383,7 @@ error when it would have happened.")
383 (license (package-license perl)))) 383 (license (package-license perl))))
384 384
385(define-public perl-base 385(define-public perl-base
386 (package 386 (deprecated-package "perl-base" perl))
387 (name "perl-base")
388 (version "2.23")
389 (source
390 (origin
391 (method url-fetch)
392 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
393 "base-" version ".tar.gz"))
394 (sha256
395 (base32 "1pjxcbbcpwlgzm0fzsbqd58zn8cj9vwril1wn3xfd7ws550mixa0"))))
396 (build-system perl-build-system)
397 (home-page "https://metacpan.org/release/base")
398 (synopsis "Establish an ISA relationship with base classes at compile time")
399 (description "Allows you to both load one or more modules, while setting
400up inheritance from those modules at the same time. Unless you are using the
401fields pragma, consider this module discouraged in favor of the lighter-weight
402parent.")
403 (license (package-license perl)))) ;See README
404 387
405(define-public perl-browser-open 388(define-public perl-browser-open
406 (package 389 (package
@@ -873,8 +856,6 @@ the Carp.pm module doesn't help.")
873 (build-system perl-build-system) 856 (build-system perl-build-system)
874 (native-inputs 857 (native-inputs
875 `(("perl-sub-name" ,perl-sub-name))) 858 `(("perl-sub-name" ,perl-sub-name)))
876 (propagated-inputs
877 `(("perl-base" ,perl-base)))
878 (home-page "https://metacpan.org/release/Class-Accessor") 859 (home-page "https://metacpan.org/release/Class-Accessor")
879 (synopsis "Automated accessor generation") 860 (synopsis "Automated accessor generation")
880 (description "This module automagically generates accessors/mutators for 861 (description "This module automagically generates accessors/mutators for
@@ -1605,14 +1586,14 @@ CPAN::Meta object are present.")
1605(define-public perl-cpanel-json-xs 1586(define-public perl-cpanel-json-xs
1606 (package 1587 (package
1607 (name "perl-cpanel-json-xs") 1588 (name "perl-cpanel-json-xs")
1608 (version "4.10") 1589 (version "4.12")
1609 (source 1590 (source
1610 (origin 1591 (origin
1611 (method url-fetch) 1592 (method url-fetch)
1612 (uri (string-append "mirror://cpan/authors/id/R/RU/RURBAN/" 1593 (uri (string-append "mirror://cpan/authors/id/R/RU/RURBAN/"
1613 "Cpanel-JSON-XS-" version ".tar.gz")) 1594 "Cpanel-JSON-XS-" version ".tar.gz"))
1614 (sha256 1595 (sha256
1615 (base32 "1r92b03hkmqr0brp00cj67b1iklfd4yas481d6a5nx2941c03h3p")))) 1596 (base32 "0n66da8s88srr591i7gm1d611z9jbcz488fhqxy604diiw8pnha9"))))
1616 (build-system perl-build-system) 1597 (build-system perl-build-system)
1617 (propagated-inputs 1598 (propagated-inputs
1618 `(("perl-common-sense" ,perl-common-sense))) 1599 `(("perl-common-sense" ,perl-common-sense)))
@@ -3764,14 +3745,14 @@ allows you to locate these files after installation.")
3764(define-public perl-file-slurp 3745(define-public perl-file-slurp
3765 (package 3746 (package
3766 (name "perl-file-slurp") 3747 (name "perl-file-slurp")
3767 (version "9999.26") 3748 (version "9999.27")
3768 (source 3749 (source
3769 (origin 3750 (origin
3770 (method url-fetch) 3751 (method url-fetch)
3771 (uri (string-append "mirror://cpan/authors/id/C/CA/CAPOEIRAB/" 3752 (uri (string-append "mirror://cpan/authors/id/C/CA/CAPOEIRAB/"
3772 "File-Slurp-" version ".tar.gz")) 3753 "File-Slurp-" version ".tar.gz"))
3773 (sha256 3754 (sha256
3774 (base32 "0c09ivl50sg9j75si6cahfp1wgvhqawakb6h5j6hlca6vwjqs9qy")))) 3755 (base32 "1x233kj1qifvii7j8d4wzarwhj5z11vnpxsqvdm98dsccr7qi79s"))))
3775 (build-system perl-build-system) 3756 (build-system perl-build-system)
3776 (home-page "https://metacpan.org/release/File-Slurp") 3757 (home-page "https://metacpan.org/release/File-Slurp")
3777 (synopsis "Reading/Writing/Modifying of complete files") 3758 (synopsis "Reading/Writing/Modifying of complete files")
@@ -3835,8 +3816,6 @@ slurping and spewing. All functions are optionally exported.")
3835 (sha256 3816 (sha256
3836 (base32 "0pr3wrxrk93wy7dz9gsb1sgl77icrs8rh2mah6wms5cdi2ll5ch1")))) 3817 (base32 "0pr3wrxrk93wy7dz9gsb1sgl77icrs8rh2mah6wms5cdi2ll5ch1"))))
3837 (build-system perl-build-system) 3818 (build-system perl-build-system)
3838 (propagated-inputs
3839 `(("perl-parent" ,perl-parent)))
3840 (home-page "https://metacpan.org/release/File-Temp") 3819 (home-page "https://metacpan.org/release/File-Temp")
3841 (synopsis "Return name and handle of a temporary file safely") 3820 (synopsis "Return name and handle of a temporary file safely")
3842 (description "File::Temp can be used to create and open temporary files in 3821 (description "File::Temp can be used to create and open temporary files in
@@ -4969,7 +4948,7 @@ portions of this module couldn't be compiled on this machine.")
4969(define-public perl-mailtools 4948(define-public perl-mailtools
4970 (package 4949 (package
4971 (name "perl-mailtools") 4950 (name "perl-mailtools")
4972 (version "2.20") 4951 (version "2.21")
4973 (source 4952 (source
4974 (origin 4953 (origin
4975 (method url-fetch) 4954 (method url-fetch)
@@ -4979,7 +4958,7 @@ portions of this module couldn't be compiled on this machine.")
4979 ".tar.gz")) 4958 ".tar.gz"))
4980 (sha256 4959 (sha256
4981 (base32 4960 (base32
4982 "15iizg2x1w7ca0r8rn3wwhp7w160ljvf55prspljwd6cm7vhcmpm")))) 4961 "1js43bp2dnd8n2rv8clsv749166jnyqnc91k4wkkmw5n4rlbvnaa"))))
4983 (build-system perl-build-system) 4962 (build-system perl-build-system)
4984 (propagated-inputs 4963 (propagated-inputs
4985 `(("perl-timedate" ,perl-timedate))) 4964 `(("perl-timedate" ,perl-timedate)))
@@ -5634,7 +5613,6 @@ Moose and is optimised for rapid startup.")
5634 ("perl-package-stash" ,perl-package-stash) 5613 ("perl-package-stash" ,perl-package-stash)
5635 ("perl-package-stash-xs" ,perl-package-stash-xs) 5614 ("perl-package-stash-xs" ,perl-package-stash-xs)
5636 ("perl-params-util" ,perl-params-util) 5615 ("perl-params-util" ,perl-params-util)
5637 ("perl-parent" ,perl-parent)
5638 ("perl-scalar-list-utils" ,perl-scalar-list-utils) 5616 ("perl-scalar-list-utils" ,perl-scalar-list-utils)
5639 ("perl-sub-exporter" ,perl-sub-exporter) 5617 ("perl-sub-exporter" ,perl-sub-exporter)
5640 ("perl-sub-name" ,perl-sub-name) 5618 ("perl-sub-name" ,perl-sub-name)
@@ -6964,22 +6942,7 @@ distributions.")
6964 (license (package-license perl)))) 6942 (license (package-license perl))))
6965 6943
6966(define-public perl-parent 6944(define-public perl-parent
6967 (package 6945 (deprecated-package "perl-parent" perl))
6968 (name "perl-parent")
6969 (version "0.237")
6970 (source
6971 (origin
6972 (method url-fetch)
6973 (uri (string-append "mirror://cpan/authors/id/C/CO/CORION/"
6974 "parent-" version ".tar.gz"))
6975 (sha256
6976 (base32 "1bnaadzf51g6zrpq6pvvgds2cc9d4w1vck7sapkd3hb5hmjdk28h"))))
6977 (build-system perl-build-system)
6978 (home-page "https://metacpan.org/release/parent")
6979 (synopsis "Establish an ISA relationship with base classes at compile time")
6980 (description "Allows you to both load one or more modules, while setting
6981up inheritance from those modules at the same time.")
6982 (license (package-license perl))))
6983 6946
6984(define-public perl-path-class 6947(define-public perl-path-class
6985 (package 6948 (package
@@ -7951,14 +7914,14 @@ uplevel() are avoided.")
7951(define-public perl-super 7914(define-public perl-super
7952 (package 7915 (package
7953 (name "perl-super") 7916 (name "perl-super")
7954 (version "1.20141117") 7917 (version "1.20190531")
7955 (source 7918 (source
7956 (origin 7919 (origin
7957 (method url-fetch) 7920 (method url-fetch)
7958 (uri (string-append "mirror://cpan/authors/id/C/CH/CHROMATIC/" 7921 (uri (string-append "mirror://cpan/authors/id/C/CH/CHROMATIC/"
7959 "SUPER-" version ".tar.gz")) 7922 "SUPER-" version ".tar.gz"))
7960 (sha256 7923 (sha256
7961 (base32 "1cn05kacg0xfbm1zzksm2yx2pnrzqja4d9163cxv3sdfc1yhwqhs")))) 7924 (base32 "16nk2za9fwyg7mcifacr69qi075iz1yvy8r9jh3903kzdvkiwpb8"))))
7962 (build-system perl-build-system) 7925 (build-system perl-build-system)
7963 (native-inputs 7926 (native-inputs
7964 `(("perl-module-build" ,perl-module-build))) 7927 `(("perl-module-build" ,perl-module-build)))
@@ -9009,8 +8972,7 @@ simple n-ary tree.")
9009 `(("perl-module-build" ,perl-module-build) 8972 `(("perl-module-build" ,perl-module-build)
9010 ("perl-test-exception" ,perl-test-exception))) 8973 ("perl-test-exception" ,perl-test-exception)))
9011 (propagated-inputs 8974 (propagated-inputs
9012 `(("perl-tree-simple" ,perl-tree-simple) 8975 `(("perl-tree-simple" ,perl-tree-simple)))
9013 ("perl-base" ,perl-base)))
9014 (home-page "https://metacpan.org/release/Tree-Simple-VisitorFactory") 8976 (home-page "https://metacpan.org/release/Tree-Simple-VisitorFactory")
9015 (synopsis "Factory object for dispensing Visitor objects") 8977 (synopsis "Factory object for dispensing Visitor objects")
9016 (description "This module is a factory for dispensing 8978 (description "This module is a factory for dispensing
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 58a1022bc24..676dae54304 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -105,3 +105,138 @@ is delete your existing cassette files, and run your tests again. VCR.py will
105detect the absence of a cassette file and once again record all HTTP 105detect the absence of a cassette file and once again record all HTTP
106interactions, which will update them to correspond to the new API.") 106interactions, which will update them to correspond to the new API.")
107 (license license:expat))) 107 (license license:expat)))
108
109(define-public python-pytest-checkdocs
110 (package
111 (name "python-pytest-checkdocs")
112 (version "1.2.0")
113 (source
114 (origin
115 (method url-fetch)
116 (uri (pypi-uri "pytest-checkdocs" version))
117 (sha256
118 (base32
119 "07c27cdjcw6jph5kbgpxchrvwlps4ggwb2j6m7y64imnik0asrq8"))))
120 (build-system python-build-system)
121 (propagated-inputs
122 `(("python-importlib-metadata" ,python-importlib-metadata)))
123 (native-inputs
124 `(("python-setuptools-scm" ,python-setuptools-scm)))
125 (home-page "https://github.com/jaraco/pytest-checkdocs")
126 (synopsis "Check the README when running tests")
127 (description
128 "This package provides a pytest plugin that checks the long description
129of the project to ensure it renders properly.")
130 (license license:expat)))
131
132(define-public python-pytest-flake8
133 (package
134 (name "python-pytest-flake8")
135 (version "1.0.4")
136 (source
137 (origin
138 (method url-fetch)
139 (uri (pypi-uri "pytest-flake8" version))
140 (sha256
141 (base32
142 "1h30gd21fjsafqxwclf25sdh89vrdz7rsh4lzw11aiw7ww9mq8jd"))))
143 (build-system python-build-system)
144 (propagated-inputs
145 `(("python-flake8" ,python-flake8)))
146 (native-inputs
147 `(("python-pytest" ,python-pytest)))
148 (home-page "https://github.com/tholo/pytest-flake8")
149 (synopsis "Pytest plugin to check FLAKE8 requirements")
150 (description
151 "This package provides a pytest plugin for efficiently checking PEP8
152compliance.")
153 (license license:bsd-3)))
154
155(define-public python-pytest-shutil
156 (package
157 (name "python-pytest-shutil")
158 (version "1.7.0")
159 (source
160 (origin
161 (method url-fetch)
162 (uri (pypi-uri "pytest-shutil" version))
163 (sha256
164 (base32
165 "0q8j0ayzmnvlraml6i977ybdq4xi096djhf30n2m1rvnvrhm45nq"))))
166 (build-system python-build-system)
167 (arguments
168 `(#:phases
169 (modify-phases %standard-phases
170 (add-after 'unpack 'patch-tests
171 (lambda _
172 (mkdir "/tmp/bin")
173 (substitute* "tests/integration/test_cmdline_integration.py"
174 (("dirname = '/bin'")
175 "dirname = '/tmp/bin'")
176 (("bindir = os.path.realpath\\('/bin'\\)")
177 "bindir = os.path.realpath('/tmp/bin')"))
178 #t)))))
179 (propagated-inputs
180 `(("python-contextlib2" ,python-contextlib2)
181 ("python-execnet" ,python-execnet)
182 ("python-pathpy" ,python-pathpy)
183 ("python-termcolor" ,python-termcolor)))
184 (native-inputs
185 `(("python-mock" ,python-mock)
186 ("python-pytest" ,python-pytest)
187 ("python-setuptools-git" ,python-setuptools-git)))
188 (home-page "https://github.com/manahl/pytest-plugins")
189 (synopsis "Assorted shell and environment tools for py.test")
190 (description
191 "This package provides assorted shell and environment tools for the
192py.test testing framework.")
193 (license license:expat)))
194
195(define-public python-pytest-fixture-config
196 (package
197 (name "python-pytest-fixture-config")
198 (version "1.7.0")
199 (source
200 (origin
201 (method url-fetch)
202 (uri (pypi-uri "pytest-fixture-config" version))
203 (sha256
204 (base32
205 "13i1qpz22w3x4dmw8vih5jdnbqfqvl7jiqs0dg764s0zf8bp98a1"))))
206 (build-system python-build-system)
207 (native-inputs
208 `(("python-pytest" ,python-pytest)
209 ("python-setuptools-git" ,python-setuptools-git)))
210 (home-page "https://github.com/manahl/pytest-plugins")
211 (synopsis "Fixture configuration utils for py.test")
212 (description
213 "This package provides fixture configuration utilities for the py.test
214testing framework.")
215 (license license:expat)))
216
217(define-public python-pytest-virtualenv
218 (package
219 (name "python-pytest-virtualenv")
220 (version "1.7.0")
221 (source
222 (origin
223 (method url-fetch)
224 (uri (pypi-uri "pytest-virtualenv" version))
225 (sha256
226 (base32
227 "03w2zz3crblj1p6i8nq17946hbn3zqp9z7cfnifw47hi4a4fww12"))))
228 (build-system python-build-system)
229 (arguments '(#:tests? #f)) ; one test fails; can't find virtualenv
230 (propagated-inputs
231 `(("python-virtualenv" ,python-virtualenv)
232 ("python-pytest-shutil" ,python-pytest-shutil)
233 ("python-pytest-fixture-config" ,python-pytest-fixture-config)))
234 (native-inputs
235 `(("python-mock" ,python-mock)
236 ("python-pytest" ,python-pytest)
237 ("python-setuptools-git" ,python-setuptools-git)))
238 (home-page "https://github.com/manahl/pytest-plugins")
239 (synopsis "Virtualenv fixture for py.test")
240 (description "This package provides a virtualenv fixture for the py.test
241framework.")
242 (license license:expat)))
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index 88f62d19349..705a7ffa3bb 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -1,6 +1,6 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> 2;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
3;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> 3;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
4;;; Copyright © 2017 ng0 <ng0@n0.is> 4;;; Copyright © 2017 ng0 <ng0@n0.is>
5;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> 5;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
6;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il> 6;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
@@ -32,7 +32,8 @@
32 #:use-module (gnu packages check) 32 #:use-module (gnu packages check)
33 #:use-module (gnu packages maths) 33 #:use-module (gnu packages maths)
34 #:use-module (gnu packages python) 34 #:use-module (gnu packages python)
35 #:use-module (gnu packages python-xyz)) 35 #:use-module (gnu packages python-xyz)
36 #:use-module (gnu packages sphinx))
36 37
37(define-public python-lzo 38(define-public python-lzo
38 (package 39 (package
@@ -205,3 +206,31 @@ install: libbitshuffle.so
205 #t)))))) 206 #t))))))
206 (inputs '()) 207 (inputs '())
207 (native-inputs '()))) 208 (native-inputs '())))
209
210(define-public python-zipp
211 (package
212 (name "python-zipp")
213 (version "0.5.1")
214 (source
215 (origin
216 (method url-fetch)
217 (uri (pypi-uri "zipp" version))
218 (sha256
219 (base32
220 "1hsv4zwy1pwnbrr63wjjkpwrmnk36ngbkkqw01bj5hcwh1z3m56a"))))
221 (build-system python-build-system)
222 (propagated-inputs
223 `(("python-contextlib2" ,python-contextlib2)
224 ("python-pathlib2" ,python-pathlib2)
225 ("python-rst.linker" ,python-rst.linker)))
226 (native-inputs
227 `(("python-setuptools-scm" ,python-setuptools-scm)
228 ("python-sphinx" ,python-sphinx)
229 ("python-unittest2" ,python-unittest2)))
230 (home-page "https://github.com/jaraco/zipp")
231 (synopsis
232 "Backport of pathlib-compatible object wrapper for zip files")
233 (description
234 "This package provides a @code{pathlib}-compatible @code{Zipfile} object
235wrapper. It provides a backport of the @code{Path} object.")
236 (license license:expat)))
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index d9065e8b159..88a00070a87 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -77,14 +77,13 @@ with what is used by the Bitcoin network.")
77(define-public python-bcrypt 77(define-public python-bcrypt
78 (package 78 (package
79 (name "python-bcrypt") 79 (name "python-bcrypt")
80 (version "3.1.6") 80 (version "3.1.7")
81 (source 81 (source
82 (origin 82 (origin
83 (method url-fetch) 83 (method url-fetch)
84 (uri (pypi-uri "bcrypt" version)) 84 (uri (pypi-uri "bcrypt" version))
85 (sha256 85 (sha256
86 (base32 86 (base32 "0hhywhxx301cxivgxrpslrangbfpccc8y83qbwn1f57cab3nj00b"))))
87 "1sh2xh0iragdq8dhssc1cdd02nppjq7b5kmv0qladfi2s9cnfqs4"))))
88 (build-system python-build-system) 87 (build-system python-build-system)
89 (native-inputs 88 (native-inputs
90 `(("python-pycparser" ,python-pycparser) 89 `(("python-pycparser" ,python-pycparser)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 660e5e40a9c..e3e2b5f0d7e 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -29,7 +29,7 @@
29;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com> 29;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
30;;; Copyright © 2016, 2017 Stefan Reichör <stefan@xsteve.at> 30;;; Copyright © 2016, 2017 Stefan Reichör <stefan@xsteve.at>
31;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org> 31;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
32;;; Copyright © 2016, 2017 Alex Vong <alexvong1995@gmail.com> 32;;; Copyright © 2016, 2017, 2019 Alex Vong <alexvong1995@gmail.com>
33;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net> 33;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
34;;; Copyright © 2016, 2017, 2018 Julien Lepiller <julien@lepiller.eu> 34;;; Copyright © 2016, 2017, 2018 Julien Lepiller <julien@lepiller.eu>
35;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> 35;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -60,6 +60,7 @@
60;;; Copyright © 2019 Brett Gilio <brettg@posteo.net> 60;;; Copyright © 2019 Brett Gilio <brettg@posteo.net>
61;;; Copyright © 2019 Sam <smbaines8@gmail.com> 61;;; Copyright © 2019 Sam <smbaines8@gmail.com>
62;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us> 62;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us>
63;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
63;;; 64;;;
64;;; This file is part of GNU Guix. 65;;; This file is part of GNU Guix.
65;;; 66;;;
@@ -88,6 +89,7 @@
88 #:use-module (gnu packages compression) 89 #:use-module (gnu packages compression)
89 #:use-module (gnu packages crypto) 90 #:use-module (gnu packages crypto)
90 #:use-module (gnu packages databases) 91 #:use-module (gnu packages databases)
92 #:use-module (gnu packages dbm)
91 #:use-module (gnu packages file) 93 #:use-module (gnu packages file)
92 #:use-module (gnu packages fontutils) 94 #:use-module (gnu packages fontutils)
93 #:use-module (gnu packages gcc) 95 #:use-module (gnu packages gcc)
@@ -118,6 +120,7 @@
118 #:use-module (gnu packages pkg-config) 120 #:use-module (gnu packages pkg-config)
119 #:use-module (gnu packages python) 121 #:use-module (gnu packages python)
120 #:use-module (gnu packages python-check) 122 #:use-module (gnu packages python-check)
123 #:use-module (gnu packages python-compression)
121 #:use-module (gnu packages python-crypto) 124 #:use-module (gnu packages python-crypto)
122 #:use-module (gnu packages python-web) 125 #:use-module (gnu packages python-web)
123 #:use-module (gnu packages qt) 126 #:use-module (gnu packages qt)
@@ -2692,7 +2695,7 @@ ecosystem, but can naturally be used also by other projects.")
2692(define-public python-robotframework 2695(define-public python-robotframework
2693 (package 2696 (package
2694 (name "python-robotframework") 2697 (name "python-robotframework")
2695 (version "3.1.1") 2698 (version "3.1.2")
2696 ;; There are no tests in the PyPI archive. 2699 ;; There are no tests in the PyPI archive.
2697 (source 2700 (source
2698 (origin 2701 (origin
@@ -2702,8 +2705,7 @@ ecosystem, but can naturally be used also by other projects.")
2702 (commit (string-append "v" version)))) 2705 (commit (string-append "v" version))))
2703 (file-name (git-file-name name version)) 2706 (file-name (git-file-name name version))
2704 (sha256 2707 (sha256
2705 (base32 2708 (base32 "16gnxy0qinh8fhs0qvhff5z2xh49c3cqgm0d7bfjw120df6x7fym"))
2706 "1aaiamc9l35m5sf7xl2qc5q9308v7sz3p1qgzcslsjxzddphyn4v"))
2707 (patches (search-patches 2709 (patches (search-patches
2708 "python-robotframework-honor-source-date-epoch.patch")))) 2710 "python-robotframework-honor-source-date-epoch.patch"))))
2709 (build-system python-build-system) 2711 (build-system python-build-system)
@@ -4863,17 +4865,101 @@ them as the version argument or in a SCM managed file.")
4863(define-public python2-setuptools-scm 4865(define-public python2-setuptools-scm
4864 (package-with-python2 python-setuptools-scm)) 4866 (package-with-python2 python-setuptools-scm))
4865 4867
4868(define-public python-pathlib2
4869 (package
4870 (name "python-pathlib2")
4871 (version "2.3.3")
4872 (source
4873 (origin
4874 (method url-fetch)
4875 (uri (pypi-uri "pathlib2" version))
4876 (sha256
4877 (base32
4878 "0hpp92vqqgcd8h92msm9slv161b1q160igjwnkf2ag6cx0c96695"))))
4879 (build-system python-build-system)
4880 (propagated-inputs
4881 `(("python-scandir" ,python-scandir)
4882 ("python-six" ,python-six)))
4883 (home-page "https://pypi.python.org/pypi/pathlib2/")
4884 (synopsis "Object-oriented filesystem paths")
4885 (description "The goal of pathlib2 is to provide a backport of the
4886standard @code{pathlib} module which tracks the standard library module, so
4887all the newest features of the standard @code{pathlib} can be used also on
4888older Python versions.")
4889 (license license:expat)))
4890
4891(define-public python-importlib-metadata
4892 (package
4893 (name "python-importlib-metadata")
4894 (version "0.18")
4895 (source
4896 (origin
4897 (method url-fetch)
4898 (uri (pypi-uri "importlib_metadata" version))
4899 (sha256
4900 (base32
4901 "1nqj6vj2z4byi8flzf2lbldhqgicsz9mkpv4k69kjd8p8qxy4vnb"))))
4902 (build-system python-build-system)
4903 (propagated-inputs
4904 `(("python-configparser" ,python-configparser)
4905 ("python-contextlib2" ,python-contextlib2)
4906 ("python-docutils" ,python-docutils)
4907 ("python-pathlib2" ,python-pathlib2)
4908 ("python-rst.linker" ,python-rst.linker)
4909 ("python-zipp" ,python-zipp)))
4910 (native-inputs
4911 `(("python-setuptools-scm" ,python-setuptools-scm)
4912 ("python-sphinx" ,python-sphinx)))
4913 (home-page "https://importlib-metadata.readthedocs.io/")
4914 (synopsis "Read metadata from Python packages")
4915 (description
4916 "@code{importlib_metadata} is a library which provides an API for
4917accessing an installed Python package's metadata, such as its entry points or
4918its top-level name. This functionality intends to replace most uses of
4919@code{pkg_resources} entry point API and metadata API. Along with
4920@code{importlib.resources} in Python 3.7 and newer, this can eliminate the
4921need to use the older and less efficient @code{pkg_resources} package.")
4922 (license license:asl2.0)))
4923
4924(define-public python-jaraco-packaging
4925 (package
4926 (name "python-jaraco-packaging")
4927 (version "6.1")
4928 (source
4929 (origin
4930 (method url-fetch)
4931 (uri (pypi-uri "jaraco.packaging" version))
4932 (sha256
4933 (base32
4934 "0zimrnkh33b9g8ffw11mjh6kvs54cy5gcjw1h5cl1r7dc833dmkm"))))
4935 (build-system python-build-system)
4936 (propagated-inputs
4937 `(("python-pytest" ,python-pytest)
4938 ("python-pytest-checkdocs" ,python-pytest-checkdocs)
4939 ("python-pytest-flake8" ,python-pytest-flake8)
4940 ("python-rst.linker" ,python-rst.linker)
4941 ("python-setuptools" ,python-setuptools)
4942 ("python-setuptools-scm" ,python-setuptools-scm)
4943 ("python-six" ,python-six)
4944 ("python-sphinx" ,python-sphinx)))
4945 (home-page "https://github.com/jaraco/jaraco.packaging")
4946 (synopsis "Tools to supplement packaging Python releases")
4947 (description
4948 "This package provides various tools to supplement packaging Python
4949releases.")
4950 (license license:expat)))
4951
4866(define-public python-pathpy 4952(define-public python-pathpy
4867 (package 4953 (package
4868 (name "python-pathpy") 4954 (name "python-pathpy")
4869 (version "11.0.1") 4955 (version "11.5.0")
4870 (source 4956 (source
4871 (origin 4957 (origin
4872 (method url-fetch) 4958 (method url-fetch)
4873 (uri (pypi-uri "path.py" version)) 4959 (uri (pypi-uri "path.py" version))
4874 (sha256 4960 (sha256
4875 (base32 "07x15v8c7ry9bvycw294c9yq6ky9v2b0dalvgi6rn38ilh69vsz7")))) 4961 (base32 "1jxkf91syzxlpiwgm83fjfz1m5xh3jrvv4iyl5wjsnkk599pls5n"))))
4876 ;; (outputs '("out" "doc")) 4962 (outputs '("out" "doc"))
4877 (build-system python-build-system) 4963 (build-system python-build-system)
4878 (propagated-inputs 4964 (propagated-inputs
4879 `(("python-appdirs" ,python-appdirs))) 4965 `(("python-appdirs" ,python-appdirs)))
@@ -4882,26 +4968,31 @@ them as the version argument or in a SCM managed file.")
4882 ("python-sphinx" ,python-sphinx) 4968 ("python-sphinx" ,python-sphinx)
4883 ("python-rst.linker" ,python-rst.linker) 4969 ("python-rst.linker" ,python-rst.linker)
4884 ("python-pytest" ,python-pytest) 4970 ("python-pytest" ,python-pytest)
4885 ("python-pytest-runner" ,python-pytest-runner))) 4971 ("python-pytest-runner" ,python-pytest-runner)
4972 ("python-jaraco-packaging" ,python-jaraco-packaging)))
4886 (arguments 4973 (arguments
4887 ;; FIXME: Documentation and tests require "jaraco.packaging". 4974 `(#:phases
4888 `(#:tests? #f)) 4975 (modify-phases %standard-phases
4889 ;; #:phases 4976 (add-after 'build 'build-doc
4890 ;; (modify-phases %standard-phases 4977 (lambda _
4891 ;; (add-after 'build 'build-doc 4978 (setenv "LANG" "en_US.UTF-8")
4892 ;; (lambda _ 4979 (invoke "python" "setup.py" "build_sphinx")))
4893 ;; (setenv "LANG" "en_US.UTF-8") 4980 (add-after 'install 'install-doc
4894 ;; (zero? (system* "python" "setup.py" "build_sphinx")))) 4981 (lambda* (#:key outputs #:allow-other-keys)
4895 ;; (add-after 'install 'install-doc 4982 (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
4896 ;; (lambda* (#:key outputs #:allow-other-keys) 4983 (doc (string-append data "/doc/" ,name "-" ,version))
4897 ;; (let* ((data (string-append (assoc-ref outputs "doc") "/share")) 4984 (html (string-append doc "/html")))
4898 ;; (doc (string-append data "/doc/" ,name "-" ,version)) 4985 (mkdir-p html)
4899 ;; (html (string-append doc "/html"))) 4986 (for-each (lambda (file)
4900 ;; (mkdir-p html) 4987 (copy-file file (string-append doc "/" file)))
4901 ;; (for-each (lambda (file) 4988 '("README.rst" "CHANGES.rst"))
4902 ;; (copy-file file (string-append doc "/" file))) 4989 (copy-recursively "build/sphinx/html" html)
4903 ;; '("README.rst" "CHANGES.rst")) 4990 #t)))
4904 ;; (copy-recursively "build/sphinx/html" html))))))) 4991 (replace 'check
4992 (lambda _
4993 ;; The import time test aborts if an import takes longer than
4994 ;; 100ms. It may very well take a little longer than that.
4995 (invoke "pytest" "-v" "-k" "not test_import_time"))))))
4905 (home-page "https://github.com/jaraco/path.py") 4996 (home-page "https://github.com/jaraco/path.py")
4906 (synopsis "Python module wrapper for built-in os.path") 4997 (synopsis "Python module wrapper for built-in os.path")
4907 (description 4998 (description
@@ -7898,6 +7989,27 @@ be set via config files and/or environment variables.")
7898@code{ArgumentParser} object.") 7989@code{ArgumentParser} object.")
7899 (license license:asl2.0))) 7990 (license license:asl2.0)))
7900 7991
7992(define-public python-contextlib2
7993 (package
7994 (name "python-contextlib2")
7995 (version "0.5.5")
7996 (source
7997 (origin
7998 (method url-fetch)
7999 (uri (pypi-uri "contextlib2" version))
8000 (sha256
8001 (base32
8002 "0j6ad6lwwyc9kv71skj098v5l7x5biyj2hs4lc5x1kcixqcr97sh"))))
8003 (build-system python-build-system)
8004 (home-page "http://contextlib2.readthedocs.org/")
8005 (synopsis "Tools for decorators and context managers")
8006 (description "This module is primarily a backport of the Python
80073.2 contextlib to earlier Python versions. Like contextlib, it
8008provides utilities for common tasks involving decorators and context
8009managers. It also contains additional features that are not part of
8010the standard library.")
8011 (license license:psfl)))
8012
7901(define-public python2-contextlib2 8013(define-public python2-contextlib2
7902 (package 8014 (package
7903 (name "python2-contextlib2") 8015 (name "python2-contextlib2")
@@ -9717,16 +9829,16 @@ format.")
9717(define-public python-twisted 9829(define-public python-twisted
9718 (package 9830 (package
9719 (name "python-twisted") 9831 (name "python-twisted")
9720 (version "19.2.0") 9832 (version "19.2.1")
9721 (source (origin 9833 (source (origin
9722 (method url-fetch) 9834 (method url-fetch)
9723 (uri (pypi-uri "Twisted" version ".tar.bz2")) 9835 (uri (pypi-uri "Twisted" version ".tar.bz2"))
9724 (sha256 9836 (sha256
9725 (base32 9837 (base32
9726 "1gmb8d57s13d8znvqnxi47vqzqz141z443dbxg9wjkp8ia9f220p")))) 9838 "0liymyd4pzphizjlpwkncxjpm9akyr3lkfkm77yfg6wasv108b7s"))))
9727 (build-system python-build-system) 9839 (build-system python-build-system)
9728 (arguments 9840 (arguments
9729 '(#:tests? #f)) ; FIXME: Some tests are failing. 9841 '(#:tests? #f)) ; FIXME: some tests fail
9730 (propagated-inputs 9842 (propagated-inputs
9731 `(("python-zope-interface" ,python-zope-interface) 9843 `(("python-zope-interface" ,python-zope-interface)
9732 ("python-pyhamcrest" ,python-pyhamcrest) 9844 ("python-pyhamcrest" ,python-pyhamcrest)
@@ -10349,14 +10461,14 @@ etc.")
10349(define-public python-stem 10461(define-public python-stem
10350 (package 10462 (package
10351 (name "python-stem") 10463 (name "python-stem")
10352 (version "1.7.0") 10464 (version "1.7.1")
10353 (source 10465 (source
10354 (origin 10466 (origin
10355 (method url-fetch) 10467 (method url-fetch)
10356 (uri (pypi-uri "stem" version)) 10468 (uri (pypi-uri "stem" version))
10357 (sha256 10469 (sha256
10358 (base32 10470 (base32
10359 "1awiglfiajnx2hva9aqpj3fmdvdb4qg7cwnlfyih827m68y3cq8v")))) 10471 "18lc95pmc7i089nlsb06dsxyjl5wbhxfqgdxbjcia35ndh8z7sn9"))))
10360 (build-system python-build-system) 10472 (build-system python-build-system)
10361 (arguments 10473 (arguments
10362 `(#:phases 10474 `(#:phases
@@ -13423,6 +13535,37 @@ belong to tagged versions.")
13423(define-public python2-setuptools-scm-git-archive 13535(define-public python2-setuptools-scm-git-archive
13424 (package-with-python2 python-setuptools-scm-git-archive)) 13536 (package-with-python2 python-setuptools-scm-git-archive))
13425 13537
13538(define-public python-setuptools-git
13539 (package
13540 (name "python-setuptools-git")
13541 (version "1.2")
13542 (source
13543 (origin
13544 (method url-fetch)
13545 (uri (pypi-uri "setuptools-git" version))
13546 (sha256
13547 (base32
13548 "0i84qjwp5m0l9qagdjww2frdh63r37km1c48mrvbmaqsl1ni6r7z"))))
13549 (build-system python-build-system)
13550 (arguments
13551 `(#:phases
13552 (modify-phases %standard-phases
13553 ;; This is needed for tests.
13554 (add-after 'unpack 'configure-git
13555 (lambda _
13556 (setenv "HOME" "/tmp")
13557 (invoke "git" "config" "--global" "user.email" "guix")
13558 (invoke "git" "config" "--global" "user.name" "guix")
13559 #t)))))
13560 (native-inputs
13561 `(("git" ,git-minimal)))
13562 (home-page "https://github.com/msabramo/setuptools-git")
13563 (synopsis "Setuptools revision control system plugin for Git")
13564 (description
13565 "This package provides a plugin for Setuptools for revision control with
13566Git.")
13567 (license license:bsd-3)))
13568
13426(define-public python-pyclipper 13569(define-public python-pyclipper
13427 (package 13570 (package
13428 (name "python-pyclipper") 13571 (name "python-pyclipper")
@@ -14026,6 +14169,51 @@ source bytes using the UTF-8 encoding and then rewrites Python 3.6 style
14026@code{f} strings.") 14169@code{f} strings.")
14027 (license license:expat))) 14170 (license license:expat)))
14028 14171
14172(define-public python-typed-ast
14173 (package
14174 (name "python-typed-ast")
14175 (version "1.3.5")
14176 (source
14177 (origin
14178 (method url-fetch)
14179 (uri (pypi-uri "typed-ast" version))
14180 (sha256
14181 (base32
14182 "1m7pr6qpana3cvqwiw7mlvrgvmw27ch5mx1592572xhlki8g85ak"))))
14183 (build-system python-build-system)
14184 (arguments
14185 `(#:modules ((guix build utils)
14186 (guix build python-build-system)
14187 (ice-9 ftw)
14188 (srfi srfi-1)
14189 (srfi srfi-26))
14190 #:phases
14191 (modify-phases %standard-phases
14192 (replace 'check
14193 (lambda _
14194 (let ((cwd (getcwd)))
14195 (setenv "PYTHONPATH"
14196 (string-append cwd "/build/"
14197 (find (cut string-prefix? "lib" <>)
14198 (scandir (string-append cwd "/build")))
14199 ":"
14200 (getenv "PYTHONPATH"))))
14201 (invoke "pytest")
14202 #t)))))
14203 (native-inputs `(("python-pytest" ,python-pytest)))
14204 (home-page "https://github.com/python/typed_ast")
14205 (synopsis "Fork of Python @code{ast} modules with type comment support")
14206 (description "This package provides a parser similar to the standard
14207@code{ast} library. Unlike @code{ast}, the parsers in @code{typed_ast}
14208include PEP 484 type comments and are independent of the version of Python
14209under which they are run. The @code{typed_ast} parsers produce the standard
14210Python AST (plus type comments), and are both fast and correct, as they are
14211based on the CPython 2.7 and 3.7 parsers.")
14212 ;; See the file "LICENSE" for the details.
14213 (license (list license:psfl
14214 license:asl2.0
14215 license:expat)))) ;ast27/Parser/spark.py
14216
14029(define-public python-typing 14217(define-public python-typing
14030 (package 14218 (package
14031 (name "python-typing") 14219 (name "python-typing")
@@ -15113,14 +15301,13 @@ append on old values. Partd excels at shuffling operations.")
15113(define-public python-dask 15301(define-public python-dask
15114 (package 15302 (package
15115 (name "python-dask") 15303 (name "python-dask")
15116 (version "1.2.0") 15304 (version "1.2.2")
15117 (source 15305 (source
15118 (origin 15306 (origin
15119 (method url-fetch) 15307 (method url-fetch)
15120 (uri (pypi-uri "dask" version)) 15308 (uri (pypi-uri "dask" version))
15121 (sha256 15309 (sha256
15122 (base32 15310 (base32 "0b29gvf96gmp20wicly3v3mhyc93zbm3mdv935fka6x0wax7cy2y"))))
15123 "1y0dqcp72ixwblgway0jpvfirlxfcmwrjiivdq96firj1hw127sd"))))
15124 (build-system python-build-system) 15311 (build-system python-build-system)
15125 ;; A single test out of 5000+ fails. This test is marked as xfail when 15312 ;; A single test out of 5000+ fails. This test is marked as xfail when
15126 ;; pytest-xdist is used. 15313 ;; pytest-xdist is used.
@@ -15331,16 +15518,15 @@ with the HTTP/2-based RPC framework gRPC.")
15331(define-public python-astunparse 15518(define-public python-astunparse
15332 (package 15519 (package
15333 (name "python-astunparse") 15520 (name "python-astunparse")
15334 (version "1.6.1") 15521 (version "1.6.2")
15335 (source 15522 (source
15336 (origin 15523 (origin
15337 (method url-fetch) 15524 (method url-fetch)
15338 (uri (pypi-uri "astunparse" version)) 15525 (uri (pypi-uri "astunparse" version))
15339 (sha256 15526 (sha256
15340 (base32 15527 (base32 "0rzbc44xcvzjhhiy7wac96mgal5mcjz1mfq8rmvgswskf4kf9cys"))))
15341 "1jhidwyrqn17avqh9xnnm3wd7q7aahaq009cba67g86y6gxicyyj"))))
15342 (build-system python-build-system) 15528 (build-system python-build-system)
15343 (arguments '(#:tests? #f)) ; there are none 15529 (arguments '(#:tests? #f)) ; there are none
15344 (propagated-inputs 15530 (propagated-inputs
15345 `(("python-six" ,python-six) 15531 `(("python-six" ,python-six)
15346 ("python-wheel" ,python-wheel))) 15532 ("python-wheel" ,python-wheel)))
@@ -15568,3 +15754,40 @@ by Igor Pavlov.")
15568 15754
15569(define-public python2-pylzma 15755(define-public python2-pylzma
15570 (package-with-python2 python-pylzma)) 15756 (package-with-python2 python-pylzma))
15757
15758(define-public python-bsddb3
15759 (package
15760 (name "python-bsddb3")
15761 (version "6.2.6")
15762 (source
15763 (origin
15764 (method url-fetch)
15765 (uri (pypi-uri "bsddb3" version))
15766 (sha256
15767 (base32
15768 "019db2y6bfmiqbrgg9x9f6h72qjmqh05czdn2v5sy9bl0gs23mj2"))))
15769 (build-system python-build-system)
15770 (inputs
15771 `(("bdb" ,bdb)))
15772 (arguments
15773 '(#:phases
15774 (modify-phases %standard-phases
15775 (add-after 'unpack 'configure-locations
15776 (lambda* (#:key inputs #:allow-other-keys)
15777 (setenv "BERKELEYDB_DIR" (assoc-ref inputs "bdb"))
15778 (setenv "YES_I_HAVE_THE_RIGHT_TO_USE_THIS_BERKELEY_DB_VERSION" "1")
15779 #t))
15780 (replace 'check
15781 (lambda _
15782 (invoke "python3" "test3.py" "-v"))))))
15783 (home-page "https://www.jcea.es/programacion/pybsddb.htm")
15784 (synopsis "Python bindings for Oracle Berkeley DB")
15785 (description
15786 "This module provides a nearly complete wrapping of the Oracle/Sleepycat
15787C API for the Database Environment, Database, Cursor, Log Cursor, Sequence and
15788Transaction objects, and each of these is exposed as a Python type in the
15789bsddb3.db module. The database objects can use various access methods: btree,
15790hash, recno, and queue. Complete support of Berkeley DB distributed
15791transactions. Complete support for Berkeley DB Replication Manager.
15792Complete support for Berkeley DB Base Replication. Support for RPC.")
15793 (license license:bsd-3)))
diff --git a/gnu/packages/sagemath.scm b/gnu/packages/sagemath.scm
index 63d12816685..43da5c636a7 100644
--- a/gnu/packages/sagemath.scm
+++ b/gnu/packages/sagemath.scm
@@ -1,5 +1,6 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2019 Andreas Enge <andreas@enge.fr> 2;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
3;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
3;;; 4;;;
4;;; This file is part of GNU Guix. 5;;; This file is part of GNU Guix.
5;;; 6;;;
@@ -24,6 +25,7 @@
24 #:use-module (guix git-download) 25 #:use-module (guix git-download)
25 #:use-module (guix packages) 26 #:use-module (guix packages)
26 #:use-module (guix utils) 27 #:use-module (guix utils)
28 #:use-module (gnu packages)
27 #:use-module (gnu packages algebra) 29 #:use-module (gnu packages algebra)
28 #:use-module (gnu packages autotools) 30 #:use-module (gnu packages autotools)
29 #:use-module (gnu packages bdw-gc) 31 #:use-module (gnu packages bdw-gc)
@@ -308,8 +310,19 @@ on numerical types, while GiNaC depends on CLN for this purpose.")
308 (invoke "make" "libzn_poly.so"))) 310 (invoke "make" "libzn_poly.so")))
309 (add-after 'install 'install-so 311 (add-after 'install 'install-so
310 (lambda* (#:key outputs #:allow-other-keys) 312 (lambda* (#:key outputs #:allow-other-keys)
311 (let ((lib (string-append (assoc-ref outputs "out") "/lib"))) 313 (let* ((out (assoc-ref outputs "out"))
312 (install-file "libzn_poly.so" lib))))))) 314 (lib (string-append out "/lib"))
315 (soname (string-append "libzn_poly-" ,version ".so"))
316 (target (string-append lib "/" soname)))
317 (install-file "libzn_poly.a" lib)
318 (install-file soname lib)
319 (symlink target
320 (string-append lib "/libzn_poly.so"))
321 (symlink target
322 (string-append lib "/libzn_poly-"
323 ,(version-major+minor version)
324 ".so")))
325 #t)))))
313 (synopsis "Arithmetic for polynomials over Z/NZ") 326 (synopsis "Arithmetic for polynomials over Z/NZ")
314 (description "zn_poly implements the arithmetic of polynomials the 327 (description "zn_poly implements the arithmetic of polynomials the
315coefficients of which are modular integers.") 328coefficients of which are modular integers.")
@@ -353,3 +366,109 @@ Boolean variables. As a unique approach, binary decision diagrams are
353used as internal storage type for polynomial structures.") 366used as internal storage type for polynomial structures.")
354 (license license:gpl2+) 367 (license license:gpl2+)
355 (home-page "https://gitlab.com/sagemath/zn_poly"))) 368 (home-page "https://gitlab.com/sagemath/zn_poly")))
369
370(define-public lcalc
371 (package
372 (name "lcalc")
373 (version "1.23")
374 ;; The original home page of the project has disappeared, as well as
375 ;; code hosted by the original author on Google Code. The latter has
376 ;; been copied to gitlab.com/sagemath and purportedly contains patches
377 ;; for a never released version 1.3, that supposedly follows 1.23.
378 ;; We use the tarball as well as the patches hosted inside the sage
379 ;; package system distributed with the sage tarball.
380 (source
381 (origin
382 (method url-fetch)
383 (uri (string-append "ftp://ftp.fu-berlin.de/unix/misc/sage/spkg/"
384 "upstream/lcalc/lcalc-1.23.tar.bz2"))
385 (sha256
386 (base32
387 "1c6dsdshgxhqppjxvxhp8yhpxaqvnz3d1mlh26r571gkq8z2bm43"))
388 (patches (search-patches "lcalc-lcommon-h.patch"
389 "lcalc-default-parameters-1.patch"
390 "lcalc-default-parameters-2.patch"
391 "lcalc-using-namespace-std.patch"))))
392 (build-system gnu-build-system)
393 (arguments
394 `(#:tests? #f ;no tests
395 #:phases
396 (modify-phases %standard-phases
397 (delete 'configure)
398 (add-before 'build 'prepare-build
399 (lambda* (#:key outputs #:allow-other-keys)
400 (chdir "src")
401 (let ((out (assoc-ref outputs "out")))
402 (substitute* "Makefile"
403 (("^INSTALL_DIR= /usr/local")
404 (string-append "INSTALL_DIR=" out))
405 ;; Sage renames the include directory, so we do it also.
406 (("include/Lfunction")
407 "include/libLfunction")
408 ;; Add --std=c++11 to be compatible with the "auto" keyword
409 ;; introduced by lcalc-using-namespace-std.patch.
410 (("^#EXTRA= -pg")
411 "EXTRA=--std=c++11")))
412 #t))
413 (add-before 'install 'make-output-dirs
414 (lambda* (#:key outputs #:allow-other-keys)
415 (let* ((out (assoc-ref outputs "out"))
416 (bin (string-append out "/bin"))
417 (lib (string-append out "/lib"))
418 (include (string-append out "/include")))
419 (mkdir-p bin)
420 (mkdir-p lib)
421 (mkdir-p include))
422 #t)))))
423 ;; FIXME:
424 ;; We need to add pari-gp and probably pari related patches from the
425 ;; sage project, as well as uncomment the line setting PARI_DEFINE in
426 ;; the Makefile to get the full functionality of this package.
427 ;; For the time being, we hope that sage can be compiled without.
428 (synopsis "C++ library for L-functions")
429 (description "Lcalc computes L-functions, in particular the Riemann
430zeta function and its twists by quadratic characters.")
431 (license license:gpl2+)
432 (home-page "https://gitlab.com/sagemath/sage")))
433
434(define-public ratpoints
435 (package
436 (name "ratpoints")
437 (version "2.1.3")
438 (source (origin
439 (method url-fetch)
440 (uri (string-append
441 "http://www.mathe2.uni-bayreuth.de/stoll/programs/"
442 "ratpoints-" version ".tar.gz"))
443 (sha256
444 (base32
445 "0zhad84sfds7izyksbqjmwpfw4rvyqk63yzdjd3ysd32zss5bgf4"))
446 (patches
447 ;; Taken from
448 ;; <https://git.sagemath.org/sage.git/plain/build/pkgs/ratpoints/patches/>
449 (search-patches "ratpoints-sturm_and_rp_private.patch"))))
450 (build-system gnu-build-system)
451 (arguments
452 `(#:test-target "test"
453 #:make-flags
454 (list (string-append "INSTALL_DIR=" (assoc-ref %outputs "out"))
455 "CCFLAGS=-fPIC")
456 #:phases
457 (modify-phases %standard-phases
458 (delete 'configure) ;no configure script
459 (add-before 'install 'create-install-directories
460 (lambda* (#:key outputs #:allow-other-keys)
461 (let ((out (assoc-ref outputs "out")))
462 (mkdir-p out)
463 (with-directory-excursion out
464 (for-each (lambda (d) (mkdir-p d))
465 '("bin" "include" "lib"))))
466 #t)))))
467 (inputs
468 `(("gmp" ,gmp)))
469 (home-page "http://www.mathe2.uni-bayreuth.de/stoll/programs/")
470 (synopsis "Find rational points on hyperelliptic curves")
471 (description "Ratpoints tries to find all rational points within
472a given height bound on a hyperelliptic curve in a very efficient way,
473by using an optimized quadratic sieve algorithm.")
474 (license license:gpl2+)))
diff --git a/gnu/packages/sawfish.scm b/gnu/packages/sawfish.scm
index 1ac72f2baa5..98b0cc70445 100644
--- a/gnu/packages/sawfish.scm
+++ b/gnu/packages/sawfish.scm
@@ -1,6 +1,8 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> 2;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
3;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> 3;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
4;;; Copyright © 2019 Benjamin Slade <slade@jnanam.net>
5;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
4;;; 6;;;
5;;; This file is part of GNU Guix. 7;;; This file is part of GNU Guix.
6;;; 8;;;
@@ -77,14 +79,14 @@ implementing both small and large scale systems.")
77(define-public rep-gtk 79(define-public rep-gtk
78 (package 80 (package
79 (name "rep-gtk") 81 (name "rep-gtk")
80 (version "0.90.8.2") 82 (version "0.90.8.3")
81 (source (origin 83 (source (origin
82 (method url-fetch) 84 (method url-fetch)
83 (uri (string-append "http://download.tuxfamily.org/librep/" 85 (uri (string-append "https://download.tuxfamily.org/librep/"
84 name "/" name "_" version ".tar.xz")) 86 name "/" name "_" version ".tar.xz"))
85 (sha256 87 (sha256
86 (base32 88 (base32
87 "0qslm2isyv22hffdpw0nh7xk8jw8cj3h5y7d40c9h5r833w7j6sz")) 89 "0hgkkywm8zczir3lqr727bn7ybgg71x9cwj1av8fykkr8pdpard9"))
88 (modules '((guix build utils))) 90 (modules '((guix build utils)))
89 (snippet 91 (snippet
90 '(begin 92 '(begin
@@ -94,14 +96,26 @@ implementing both small and large scale systems.")
94 "installdir=$(libdir)/rep")) 96 "installdir=$(libdir)/rep"))
95 #t)))) 97 #t))))
96 (build-system gnu-build-system) 98 (build-system gnu-build-system)
97 (arguments '(#:tests? #f)) ; no tests 99 (arguments
100 `(#:tests? #f ; no tests
101 #:phases
102 (modify-phases %standard-phases
103 (add-before 'bootstrap 'remove-autogen
104 (lambda _
105 ;; Remove autogen.sh so that the bootstrap phase can run
106 ;; autoreconf.
107 (delete-file "autogen.sh")
108 #t)))))
98 (native-inputs 109 (native-inputs
99 `(("pkg-config" ,pkg-config))) 110 `(("autoconf" ,autoconf)
111 ("automake" ,automake)
112 ("libtool" ,libtool)
113 ("pkg-config" ,pkg-config)))
100 (propagated-inputs 114 (propagated-inputs
101 ;; required by rep-gtk.pc. 115 ;; required by rep-gtk.pc.
102 `(("gtk+" ,gtk+-2) 116 `(("gtk+" ,gtk+-2)
103 ("librep" ,librep))) 117 ("librep" ,librep)))
104 (home-page "http://sawfish.wikia.com/wiki/Rep-GTK") 118 (home-page "https://sawfish.fandom.com/wiki/Rep-GTK")
105 (synopsis "GTK+ binding for librep") 119 (synopsis "GTK+ binding for librep")
106 (description 120 (description
107 "Rep-GTK is a GTK+ (and GLib, GDK) binding to the librep, and one of the 121 "Rep-GTK is a GTK+ (and GLib, GDK) binding to the librep, and one of the
@@ -111,14 +125,14 @@ backend of Sawfish.")
111(define-public sawfish 125(define-public sawfish
112 (package 126 (package
113 (name "sawfish") 127 (name "sawfish")
114 (version "1.11") 128 (version "1.12.0")
115 (source (origin 129 (source (origin
116 (method url-fetch) 130 (method url-fetch)
117 (uri (string-append "http://download.tuxfamily.org/sawfish/" 131 (uri (string-append "https://download.tuxfamily.org/sawfish/"
118 name "_" version ".tar.xz")) 132 name "_" version ".tar.xz"))
119 (sha256 133 (sha256
120 (base32 134 (base32
121 "0wp4m0p836a0rysbcdqb6z5hxlxqj3rgdbks3bs44rlssx0mcvyg")) 135 "1z7awzgw8d15aw17kpbj460pcxq8l2rhkaxk47w7yg9qrmg0xja4"))
122 (modules '((guix build utils))) 136 (modules '((guix build utils)))
123 (snippet 137 (snippet
124 '(begin 138 '(begin
@@ -172,7 +186,7 @@ backend of Sawfish.")
172 ("libxrandr" ,libxrandr) 186 ("libxrandr" ,libxrandr)
173 ("libxtst" ,libxtst) 187 ("libxtst" ,libxtst)
174 ("rep-gtk" ,rep-gtk))) 188 ("rep-gtk" ,rep-gtk)))
175 (home-page "http://sawfish.wikia.com/wiki/Main_Page") 189 (home-page "https://sawfish.tuxfamily.org")
176 (synopsis "Configurable window manager") 190 (synopsis "Configurable window manager")
177 (description 191 (description
178 "Sawfish is an extensible window manager using a Lisp-based scripting 192 "Sawfish is an extensible window manager using a Lisp-based scripting
diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index 51ed0317bca..faff25ddc1e 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -252,16 +252,14 @@ over the Internet in an HTTP and CDN friendly way;
252(define-public rclone 252(define-public rclone
253 (package 253 (package
254 (name "rclone") 254 (name "rclone")
255 (version "1.47.0") 255 (version "1.48.0")
256 (source (origin 256 (source
257 (method git-fetch) 257 (origin
258 (uri (git-reference 258 (method url-fetch)
259 (url "https://github.com/ncw/rclone.git") 259 (uri (string-append "https://github.com/ncw/rclone/releases/download/v"
260 (commit (string-append "v" version)))) 260 version "/rclone-v" version ".tar.gz"))
261 (file-name (git-file-name name version)) 261 (sha256
262 (sha256 262 (base32 "1r03rlsk0qpya1fl8xfhj5inccjywf2cqgkd8r6wfhf3w2qd1zlc"))))
263 (base32
264 "1nxwjr9jly6wh1ixr6a7zhlg4b3298v940040fsm0n3lcljd37zx"))))
265 ;; FIXME: Rclone bundles some libraries Guix already provides. Need to 263 ;; FIXME: Rclone bundles some libraries Guix already provides. Need to
266 ;; un-bundle them. 264 ;; un-bundle them.
267 (build-system go-build-system) 265 (build-system go-build-system)
diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm
index 69313b9bb63..21ca1850662 100644
--- a/gnu/packages/tcl.scm
+++ b/gnu/packages/tcl.scm
@@ -6,6 +6,7 @@
6;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> 6;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
7;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> 7;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
8;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> 8;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
9;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
9;;; 10;;;
10;;; This file is part of GNU Guix. 11;;; This file is part of GNU Guix.
11;;; 12;;;
@@ -25,8 +26,10 @@
25(define-module (gnu packages tcl) 26(define-module (gnu packages tcl)
26 #:use-module (guix packages) 27 #:use-module (guix packages)
27 #:use-module (guix download) 28 #:use-module (guix download)
29 #:use-module (guix git-download)
28 #:use-module (guix utils) 30 #:use-module (guix utils)
29 #:use-module (guix build-system gnu) 31 #:use-module (guix build-system gnu)
32 #:use-module (guix build-system go)
30 #:use-module (guix build-system perl) 33 #:use-module (guix build-system perl)
31 #:use-module (gnu packages) 34 #:use-module (gnu packages)
32 #:use-module (gnu packages image) 35 #:use-module (gnu packages image)
@@ -35,7 +38,7 @@
35 #:use-module (gnu packages pkg-config) 38 #:use-module (gnu packages pkg-config)
36 #:use-module (gnu packages xml) 39 #:use-module (gnu packages xml)
37 #:use-module (gnu packages xorg) 40 #:use-module (gnu packages xorg)
38 #:use-module (guix licenses)) 41 #:use-module ((guix licenses) #:prefix license:))
39 42
40(define-public tcl 43(define-public tcl
41 (package 44 (package
@@ -81,7 +84,7 @@
81 (home-page "http://www.tcl.tk/") 84 (home-page "http://www.tcl.tk/")
82 (synopsis "The Tcl scripting language") 85 (synopsis "The Tcl scripting language")
83 (description "The Tcl (Tool Command Language) scripting language.") 86 (description "The Tcl (Tool Command Language) scripting language.")
84 (license tcl/tk))) 87 (license license:tcl/tk)))
85 88
86 89
87(define-public expect 90(define-public expect
@@ -130,7 +133,7 @@ telnet, ftp, passwd, fsck, rlogin, tip, etc. Expect really makes this
130stuff trivial. Expect is also useful for testing these same 133stuff trivial. Expect is also useful for testing these same
131applications. And by adding Tk, you can wrap interactive applications in 134applications. And by adding Tk, you can wrap interactive applications in
132X11 GUIs.") 135X11 GUIs.")
133 (license public-domain))) ; as written in `license.terms' 136 (license license:public-domain))) ; as written in `license.terms'
134 137
135(define-public tk 138(define-public tk
136 (package 139 (package
@@ -230,7 +233,7 @@ interfaces (GUIs) in the Tcl language.")
230 ;; those of the orignal Tix4.1.3 or Tk8.4.* sources. See the files 233 ;; those of the orignal Tix4.1.3 or Tk8.4.* sources. See the files
231 ;; pTk/license.terms, pTk/license.html_lib, and pTk/Tix.license for 234 ;; pTk/license.terms, pTk/license.html_lib, and pTk/Tix.license for
232 ;; details of this license." 235 ;; details of this license."
233 (license perl-license))) 236 (license license:perl-license)))
234 237
235(define-public tcllib 238(define-public tcllib
236 (package 239 (package
@@ -344,7 +347,7 @@ modules for Tk, all written in high-level Tcl. Examples of provided widgets:
344application may register callback scripts for certain document features, and 347application may register callback scripts for certain document features, and
345when the parser encounters those features while parsing the document the 348when the parser encounters those features while parsing the document the
346callback is evaluated.") 349callback is evaluated.")
347 (license (non-copyleft 350 (license (license:non-copyleft
348 "file://LICENCE" 351 "file://LICENCE"
349 "See LICENCE in the distribution.")))) 352 "See LICENCE in the distribution."))))
350 353
@@ -378,4 +381,31 @@ callback is evaluated.")
378application development. TclX provides additional interfaces to the operating 381application development. TclX provides additional interfaces to the operating
379system, and adds many new programming constructs, text manipulation tools, and 382system, and adds many new programming constructs, text manipulation tools, and
380debugging tools.") 383debugging tools.")
381 (license tcl/tk))) 384 (license license:tcl/tk)))
385
386(define-public go-github.com-nsf-gothic
387 (let ((commit "97dfcc195b9de36c911a69a6ec2b5b2659c05652")
388 (revision "0"))
389 (package
390 (name "go-github.com-nsf-gothic")
391 (version (git-version "0.0.0" revision commit))
392 (source (origin
393 (method git-fetch)
394 (uri (git-reference
395 (url "https://github.com/nsf/gothic")
396 (commit commit)))
397 (sha256
398 (base32
399 "1lrhbml6r4sh22rrn3m9bck70pv0g0c1diprg7cil90x0jidxczr"))
400 (file-name (git-file-name name version))))
401 (build-system go-build-system)
402 (arguments
403 `(#:import-path "github.com/nsf/gothic"))
404 (propagated-inputs
405 `(("tk" ,tk)
406 ("tcl" ,tcl)))
407 (home-page "https://github.com/nsf/gothic")
408 (synopsis "Tcl/Tk Go bindings")
409 (description "Gothic contains Go bindings for Tcl/Tk. The package contains
410only one type and one function that can be used to create a Tk interpreter.")
411 (license license:expat))))
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 731bbc5d161..b35486ba594 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -7,6 +7,7 @@
7;;; Copyright © 2014 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.org> 7;;; Copyright © 2014 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.org>
8;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> 8;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
9;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> 9;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
10;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
10;;; 11;;;
11;;; This file is part of GNU Guix. 12;;; This file is part of GNU Guix.
12;;; 13;;;
@@ -36,15 +37,19 @@
36 #:use-module (gnu packages assembly) 37 #:use-module (gnu packages assembly)
37 #:use-module (gnu packages boost) 38 #:use-module (gnu packages boost)
38 #:use-module (gnu packages documentation) 39 #:use-module (gnu packages documentation)
40 #:use-module (gnu packages fontutils)
39 #:use-module (gnu packages gcc) 41 #:use-module (gnu packages gcc)
40 #:use-module (gnu packages glib) 42 #:use-module (gnu packages glib)
41 #:use-module (gnu packages gtk) 43 #:use-module (gnu packages gtk)
44 #:use-module (gnu packages guile)
42 #:use-module (gnu packages libbsd) 45 #:use-module (gnu packages libbsd)
43 #:use-module (gnu packages libreoffice) 46 #:use-module (gnu packages libreoffice)
44 #:use-module (gnu packages lua) 47 #:use-module (gnu packages lua)
45 #:use-module (gnu packages ncurses) 48 #:use-module (gnu packages ncurses)
46 #:use-module (gnu packages pcre) 49 #:use-module (gnu packages pcre)
50 #:use-module (gnu packages perl)
47 #:use-module (gnu packages pkg-config) 51 #:use-module (gnu packages pkg-config)
52 #:use-module (gnu packages python)
48 #:use-module (gnu packages qt) 53 #:use-module (gnu packages qt)
49 #:use-module (gnu packages regex) 54 #:use-module (gnu packages regex)
50 #:use-module (gnu packages ruby) 55 #:use-module (gnu packages ruby)
@@ -388,3 +393,47 @@ projects. The EditorConfig project maintains a file format and plugins for
388various text editors which allow this file format to be read and used by those 393various text editors which allow this file format to be read and used by those
389editors.") 394editors.")
390 (license license:bsd-2))) 395 (license license:bsd-2)))
396
397(define-public texmacs
398 (package
399 (name "texmacs")
400 (version "1.99.9")
401 (source
402 (origin
403 (method url-fetch)
404 (uri (string-append "https://www.texmacs.org/Download/ftp/tmftp/"
405 "source/TeXmacs-" version "-src.tar.gz"))
406 (sha256
407 (base32
408 "0i95sf9y8qpgxd8f39cprbp3s200nm9lml0xdpyn46n838acvw19"))
409 (modules '((guix build utils)))
410 (snippet
411 '(begin
412 (delete-file-recursively "3rdparty")
413 #t))))
414 (build-system gnu-build-system)
415 (native-inputs
416 `(("pkg-config" ,pkg-config)))
417 (inputs
418 `(("freetype" ,freetype)
419 ("guile" ,guile-1.8)
420 ("perl" ,perl)
421 ("python" ,python-wrapper)
422 ("qt" ,qt-4)))
423 (arguments
424 `(#:tests? #f ;no check target
425 #:phases
426 (modify-phases %standard-phases
427 (add-before 'configure 'gzip-flags
428 (lambda _
429 (substitute* "Makefile.in"
430 (("^GZIP = gzip -f") "GZIP = gzip -f -n")))))))
431 (synopsis "Editing platform with special features for scientists")
432 (description
433 "GNU TeXmacs is a text editing platform which is specialized for
434scientists. It is ideal for editing structured documents with different
435types of content. It has robust support for mathematical formulas and plots.
436 It can also act as an interface to external mathematical programs such as R
437and Octave. TeXmacs is completely extensible via Guile.")
438 (license license:gpl3+)
439 (home-page "https://www.texmacs.org/tmweb/home/welcome.en.html")))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 9859c55f98a..2b6d9f5b7e8 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1446,7 +1446,7 @@ access to mpv's powerful playback capabilities.")
1446(define-public youtube-dl 1446(define-public youtube-dl
1447 (package 1447 (package
1448 (name "youtube-dl") 1448 (name "youtube-dl")
1449 (version "2019.05.20") 1449 (version "2019.06.21")
1450 (source (origin 1450 (source (origin
1451 (method url-fetch) 1451 (method url-fetch)
1452 (uri (string-append "https://github.com/rg3/youtube-dl/releases/" 1452 (uri (string-append "https://github.com/rg3/youtube-dl/releases/"
@@ -1454,7 +1454,7 @@ access to mpv's powerful playback capabilities.")
1454 version ".tar.gz")) 1454 version ".tar.gz"))
1455 (sha256 1455 (sha256
1456 (base32 1456 (base32
1457 "18xwdfvpkqrnj0kb8xj8hgwhgiqpv7x7x7zzr4x3vynb9grcv9m8")))) 1457 "03a729198zzhixbn7xixi9bprmk3qqh5dsyh3dqhji6lmlijx1w5"))))
1458 (build-system python-build-system) 1458 (build-system python-build-system)
1459 (arguments 1459 (arguments
1460 ;; The problem here is that the directory for the man page and completion 1460 ;; The problem here is that the directory for the man page and completion
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 303171e61d2..a35f124f469 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -399,46 +399,48 @@ manage system or application containers.")
399(define-public libvirt 399(define-public libvirt
400 (package 400 (package
401 (name "libvirt") 401 (name "libvirt")
402 (version "4.10.0") 402 (version "5.4.0")
403 (source (origin 403 (source (origin
404 (method url-fetch) 404 (method url-fetch)
405 (uri (string-append "https://libvirt.org/sources/libvirt-" 405 (uri (string-append "https://libvirt.org/sources/libvirt-"
406 version ".tar.xz")) 406 version ".tar.xz"))
407 (sha256 407 (sha256
408 (base32 408 (base32
409 "0v17zzyyb25nn9l18v5244myg7590dp6ppwgi8xysipifc0q77bz")))) 409 "0ywf8m9yz2hxnic7fylzlmgy4m353r4vv5zsvp89zq5yh4h81yhw"))))
410 (build-system gnu-build-system) 410 (build-system gnu-build-system)
411 (arguments 411 (arguments
412 `(;; FAIL: virshtest 412 `(#:configure-flags
413 ;; FAIL: virfirewalltest
414 ;; FAIL: virkmodtest
415 ;; FAIL: virnetsockettest
416 ;; FAIL: networkxml2firewalltest
417 ;; FAIL: nwfilterebiptablestest
418 ;; FAIL: nwfilterxml2firewalltest
419 ;; Time-out while running commandtest.
420 #:tests? #f
421 #:configure-flags
422 (list "--with-polkit" 413 (list "--with-polkit"
414 (string-append "--docdir=" (assoc-ref %outputs "out") "/share/doc/"
415 ,name "-" ,version)
423 "--sysconfdir=/etc" 416 "--sysconfdir=/etc"
424 "--localstatedir=/var") 417 "--localstatedir=/var")
425 #:phases 418 #:phases
426 (modify-phases %standard-phases 419 (modify-phases %standard-phases
427 (add-after 'unpack 'fix-tests 420 (add-before 'configure 'fix-BOURNE_SHELL-definition
421 ;; BOURNE_SHELL is hard-#defined to ‘/bin/sh’, causing test failures.
428 (lambda _ 422 (lambda _
429 (substitute* '("tests/commandtest.c" 423 (substitute* "config.h.in"
430 "gnulib/tests/test-posix_spawn1.c"
431 "gnulib/tests/test-posix_spawn2.c")
432 (("/bin/sh") (which "sh"))) 424 (("/bin/sh") (which "sh")))
433 #t)) 425 #t))
426 (add-before 'configure 'disable-broken-tests
427 (lambda _
428 (let ((tests (list "commandtest" ; hangs idly
429 "virnetsockettest" ; tries to network
430 "virshtest"))) ; fails
431 (substitute* "tests/Makefile.in"
432 (((format #f "(~a)\\$\\(EXEEXT\\)" (string-join tests "|")))
433 ""))
434 #t)))
434 (replace 'install 435 (replace 'install
435 ;; Since the sysconfdir and localstatedir should be /etc and /var 436 ;; Since the sysconfdir and localstatedir should be /etc and /var
436 ;; at runtime, we must prevent writing to them at installation 437 ;; at runtime, we must prevent writing to them at installation
437 ;; time. 438 ;; time.
438 (lambda _ 439 (lambda* (#:key make-flags #:allow-other-keys)
439 (invoke "make" "install" 440 (apply invoke "make" "install"
440 "sysconfdir=/tmp/etc" 441 "sysconfdir=/tmp/etc"
441 "localstatedir=/tmp/var"))) 442 "localstatedir=/tmp/var"
443 make-flags)))
442 (add-after 'install 'wrap-libvirtd 444 (add-after 'install 'wrap-libvirtd
443 (lambda* (#:key inputs outputs #:allow-other-keys) 445 (lambda* (#:key inputs outputs #:allow-other-keys)
444 (let ((out (assoc-ref outputs "out"))) 446 (let ((out (assoc-ref outputs "out")))
@@ -458,7 +460,7 @@ manage system or application containers.")
458 ("libpcap" ,libpcap) 460 ("libpcap" ,libpcap)
459 ("libnl" ,libnl) 461 ("libnl" ,libnl)
460 ("libuuid" ,util-linux) 462 ("libuuid" ,util-linux)
461 ("lvm2" ,lvm2) ; for libdevmapper 463 ("lvm2" ,lvm2) ; for libdevmapper
462 ("curl" ,curl) 464 ("curl" ,curl)
463 ("openssl" ,openssl) 465 ("openssl" ,openssl)
464 ("cyrus-sasl" ,cyrus-sasl) 466 ("cyrus-sasl" ,cyrus-sasl)
@@ -534,13 +536,13 @@ three libraries:
534(define-public python-libvirt 536(define-public python-libvirt
535 (package 537 (package
536 (name "python-libvirt") 538 (name "python-libvirt")
537 (version "4.10.0") 539 (version "5.3.0")
538 (source (origin 540 (source (origin
539 (method url-fetch) 541 (method url-fetch)
540 (uri (pypi-uri "libvirt-python" version)) 542 (uri (pypi-uri "libvirt-python" version))
541 (sha256 543 (sha256
542 (base32 544 (base32
543 "11fipj9naihgc9afc8bz5hi05xa1shp4qcy170sa18p3sl4zljb9")))) 545 "1zrhkz68ka4f08wwm36y3zzwfn1r65h4nw1nm9qgg8jmrfazj4sj"))))
544 (build-system python-build-system) 546 (build-system python-build-system)
545 (arguments 547 (arguments
546 `(#:phases 548 `(#:phases
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 3b0cbae7a7a..6a820addcaa 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -3112,7 +3112,7 @@ select or poll.")
3112(define-public perl-libwww 3112(define-public perl-libwww
3113 (package 3113 (package
3114 (name "perl-libwww") 3114 (name "perl-libwww")
3115 (version "6.37") 3115 (version "6.39")
3116 (source (origin 3116 (source (origin
3117 (method url-fetch) 3117 (method url-fetch)
3118 (uri (string-append 3118 (uri (string-append
@@ -3120,7 +3120,7 @@ select or poll.")
3120 version ".tar.gz")) 3120 version ".tar.gz"))
3121 (sha256 3121 (sha256
3122 (base32 3122 (base32
3123 "04a24cx9gs070rvlwf5kanz03y7nnq9k2nmpr01plnm059iprvf6")))) 3123 "1mblfwz3g7vmyykmb0mcbmmad77rwx55fwaca9ymv9wajd3pg3cs"))))
3124 (build-system perl-build-system) 3124 (build-system perl-build-system)
3125 (native-inputs 3125 (native-inputs
3126 `(("perl-test-fatal" ,perl-test-fatal) 3126 `(("perl-test-fatal" ,perl-test-fatal)
@@ -3662,14 +3662,14 @@ applications.")
3662(define-public perl-uri 3662(define-public perl-uri
3663 (package 3663 (package
3664 (name "perl-uri") 3664 (name "perl-uri")
3665 (version "1.73") 3665 (version "1.76")
3666 (source (origin 3666 (source (origin
3667 (method url-fetch) 3667 (method url-fetch)
3668 (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/" 3668 (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/"
3669 "URI-" version ".tar.gz")) 3669 "URI-" version ".tar.gz"))
3670 (sha256 3670 (sha256
3671 (base32 3671 (base32
3672 "04z4xwiryrbxxi48bwbkgq9q9pwfgqry3wp0ramcrwv3dx5ap9yc")))) 3672 "0gj1aj18k43kmzc3y1zhj5giinf8rksacf757r475xfna0fqxjdj"))))
3673 (build-system perl-build-system) 3673 (build-system perl-build-system)
3674 (native-inputs 3674 (native-inputs
3675 ;; For tests. 3675 ;; For tests.
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 63916d1cc3c..72f0e1fd55b 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -310,7 +310,7 @@ integrate Windows applications into your desktop.")
310(define-public wine-staging-patchset-data 310(define-public wine-staging-patchset-data
311 (package 311 (package
312 (name "wine-staging-patchset-data") 312 (name "wine-staging-patchset-data")
313 (version "4.10") 313 (version "4.11")
314 (source 314 (source
315 (origin 315 (origin
316 (method git-fetch) 316 (method git-fetch)
@@ -320,7 +320,7 @@ integrate Windows applications into your desktop.")
320 (file-name (git-file-name name version)) 320 (file-name (git-file-name name version))
321 (sha256 321 (sha256
322 (base32 322 (base32
323 "0kl5718c4xk8d1va1jb5jaa2n0vw3l0hi6bpc7siaww1fp64hy98")))) 323 "0h8qldqr9w1kwn48qgg5m1cs2xqkv8xxg2c66cvfka91hy886jcf"))))
324 (build-system trivial-build-system) 324 (build-system trivial-build-system)
325 (native-inputs 325 (native-inputs
326 `(("bash" ,bash) 326 `(("bash" ,bash)
@@ -366,7 +366,7 @@ integrate Windows applications into your desktop.")
366 (file-name (string-append name "-" version ".tar.xz")) 366 (file-name (string-append name "-" version ".tar.xz"))
367 (sha256 367 (sha256
368 (base32 368 (base32
369 "041d3km85iqbshspy9av1fxjwq18xldrb18j04xl2fmpv1hq3pas")))) 369 "1rmyfwlynzs2niz7l2lwjs2axm6in6gb43ldbzyzsflxsmk5fl9f"))))
370 (inputs `(("autoconf" ,autoconf) ; for autoreconf 370 (inputs `(("autoconf" ,autoconf) ; for autoreconf
371 ("faudio" ,faudio) 371 ("faudio" ,faudio)
372 ("ffmpeg" ,ffmpeg) 372 ("ffmpeg" ,ffmpeg)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index d59041f6395..a9b96529cfe 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -519,6 +519,7 @@ move windows, switch between desktops, etc.).")
519 (git-reference 519 (git-reference
520 (url "https://github.com/resurrecting-open-source-projects/scrot.git") 520 (url "https://github.com/resurrecting-open-source-projects/scrot.git")
521 (commit version))) 521 (commit version)))
522 (file-name (git-file-name name version))
522 (sha256 523 (sha256
523 (base32 "1dg0pnmk09p7zlbyxv7d40vf54amrv73y976ds5p7096x6lmlndy")))) 524 (base32 "1dg0pnmk09p7zlbyxv7d40vf54amrv73y976ds5p7096x6lmlndy"))))
524 (build-system gnu-build-system) 525 (build-system gnu-build-system)
@@ -1178,7 +1179,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
1178(define-public rofi 1179(define-public rofi
1179 (package 1180 (package
1180 (name "rofi") 1181 (name "rofi")
1181 (version "1.5.2") 1182 (version "1.5.3")
1182 (source (origin 1183 (source (origin
1183 (method url-fetch) 1184 (method url-fetch)
1184 (uri (string-append "https://github.com/DaveDavenport/rofi/" 1185 (uri (string-append "https://github.com/DaveDavenport/rofi/"
@@ -1186,7 +1187,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
1186 version "/rofi-" version ".tar.xz")) 1187 version "/rofi-" version ".tar.xz"))
1187 (sha256 1188 (sha256
1188 (base32 1189 (base32
1189 "17faa0rj8vqidrijwx9jrq0c29003n8v3izvc66yssfljgb8kcpj")))) 1190 "0y78ya2va2lg3ww17n11y9awn8lhcp1px2d8gxaimxfqlxczs8la"))))
1190 (build-system gnu-build-system) 1191 (build-system gnu-build-system)
1191 (inputs 1192 (inputs
1192 `(("pango" ,pango) 1193 `(("pango" ,pango)
@@ -1206,7 +1207,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
1206 ("glib:bin" ,glib "bin") 1207 ("glib:bin" ,glib "bin")
1207 ("pkg-config" ,pkg-config))) 1208 ("pkg-config" ,pkg-config)))
1208 (arguments 1209 (arguments
1209 `(#:parallel-tests? #f ; May fail in some circumstances. 1210 `(#:parallel-tests? #f ; fails in some circumstances
1210 #:phases 1211 #:phases
1211 (modify-phases %standard-phases 1212 (modify-phases %standard-phases
1212 (add-before 'configure 'adjust-tests 1213 (add-before 'configure 'adjust-tests
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index c5185083600..2b4feb1c2d4 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -188,7 +188,7 @@ to share commonly used Xfce widgets among the Xfce applications.")
188(define-public exo 188(define-public exo
189 (package 189 (package
190 (name "exo") 190 (name "exo")
191 (version "0.12.5") 191 (version "0.12.6")
192 (source (origin 192 (source (origin
193 (method url-fetch) 193 (method url-fetch)
194 (uri (string-append "https://archive.xfce.org/src/xfce/" 194 (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -196,7 +196,7 @@ to share commonly used Xfce widgets among the Xfce applications.")
196 "exo-" version ".tar.bz2")) 196 "exo-" version ".tar.bz2"))
197 (sha256 197 (sha256
198 (base32 198 (base32
199 "1s23prcgall6r5dpn0qlrdq3zj13p95a5s0l2vflgrka8gb39x78")))) 199 "00qh8ihrf09jvd26kilybihkgvv6rvi0l1bvlldxc99jb7ygy5ql"))))
200 (build-system gnu-build-system) 200 (build-system gnu-build-system)
201 (native-inputs 201 (native-inputs
202 `(("pkg-config" ,pkg-config) 202 `(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index ee345742a54..bd84c1bf3e6 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -1780,17 +1780,14 @@ features and to query screensaver info on specific windows.")
1780(define-public sessreg 1780(define-public sessreg
1781 (package 1781 (package
1782 (name "sessreg") 1782 (name "sessreg")
1783 (version "1.1.1") 1783 (version "1.1.2")
1784 (source 1784 (source
1785 (origin 1785 (origin
1786 (method url-fetch) 1786 (method url-fetch)
1787 (uri (string-append 1787 (uri (string-append
1788 "mirror://xorg/individual/app/sessreg-" 1788 "mirror://xorg/individual/app/sessreg-" version ".tar.bz2"))
1789 version 1789 (sha256
1790 ".tar.bz2")) 1790 (base32 "0crczl25zynkrslmm8sjaxszhrh4i33m7h5fg4wfdb3k8aarxjyz"))))
1791 (sha256
1792 (base32
1793 "1qd66mg2bnppqz4xgdjzif2488zl82vx2c26ld3nb8pnyginm9vq"))))
1794 (build-system gnu-build-system) 1791 (build-system gnu-build-system)
1795 (inputs 1792 (inputs
1796 `(("xorgproto" ,xorgproto))) 1793 `(("xorgproto" ,xorgproto)))
@@ -2076,14 +2073,14 @@ legacy X clients.")
2076(define-public xcalc 2073(define-public xcalc
2077 (package 2074 (package
2078 (name "xcalc") 2075 (name "xcalc")
2079 (version "1.0.7") 2076 (version "1.1.0")
2080 (source 2077 (source
2081 (origin 2078 (origin
2082 (method url-fetch) 2079 (method url-fetch)
2083 (uri (string-append "mirror://xorg/individual/app/" 2080 (uri (string-append "mirror://xorg/individual/app/"
2084 "xcalc-" version ".tar.gz")) 2081 "xcalc-" version ".tar.gz"))
2085 (sha256 2082 (sha256
2086 (base32 "1xgih1iq9498m7vk22qrdsck1rb905sn395azjn4a6pmhfai401b")))) 2083 (base32 "0c768lh0nh28ram9ldldhaf51024fngc589v4pjmf3lxmzcihr58"))))
2087 (build-system gnu-build-system) 2084 (build-system gnu-build-system)
2088 (arguments 2085 (arguments
2089 `(#:phases (modify-phases %standard-phases 2086 `(#:phases (modify-phases %standard-phases
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 73acb3b17f5..13cffd9febd 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -895,11 +895,17 @@ and @command{wicd-curses} user interfaces."
895 (vpn-plugins network-manager-vpn-plugins ;list of <package> 895 (vpn-plugins network-manager-vpn-plugins ;list of <package>
896 (default '()))) 896 (default '())))
897 897
898(define %network-manager-activation 898(define network-manager-activation
899 ;; Activation gexp for NetworkManager. 899 ;; Activation gexp for NetworkManager
900 #~(begin 900 (match-lambda
901 (use-modules (guix build utils)) 901 (($ <network-manager-configuration> network-manager dns vpn-plugins)
902 (mkdir-p "/etc/NetworkManager/system-connections"))) 902 #~(begin
903 (use-modules (guix build utils))
904 (mkdir-p "/etc/NetworkManager/system-connections")
905 #$@(if (equal? dns "dnsmasq")
906 ;; create directory to store dnsmasq lease file
907 '((mkdir-p "/var/lib/misc"))
908 '())))))
903 909
904(define (vpn-plugin-directory plugins) 910(define (vpn-plugin-directory plugins)
905 "Return a directory containing PLUGINS, the NM VPN plugins." 911 "Return a directory containing PLUGINS, the NM VPN plugins."
@@ -949,7 +955,7 @@ and @command{wicd-curses} user interfaces."
949 (service-extension dbus-root-service-type config->package) 955 (service-extension dbus-root-service-type config->package)
950 (service-extension polkit-service-type config->package) 956 (service-extension polkit-service-type config->package)
951 (service-extension activation-service-type 957 (service-extension activation-service-type
952 (const %network-manager-activation)) 958 network-manager-activation)
953 (service-extension session-environment-service-type 959 (service-extension session-environment-service-type
954 network-manager-environment) 960 network-manager-environment)
955 ;; Add network-manager to the system profile. 961 ;; Add network-manager to the system profile.
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 656afd1ddb5..c90b87c0231 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -2,7 +2,7 @@
2;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
3;;; Copyright © 2016 Mark H Weaver <mhw@netris.org> 3;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
4;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> 4;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
5;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> 5;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
6;;; 6;;;
7;;; This file is part of GNU Guix. 7;;; This file is part of GNU Guix.
8;;; 8;;;
@@ -273,7 +273,10 @@ FILE-SYSTEMS."
273 (append-map (compose file-system-type-modules file-system-type) 273 (append-map (compose file-system-type-modules file-system-type)
274 file-systems)) 274 file-systems))
275 275
276(define* (default-initrd-modules #:optional (system (%current-system))) 276(define* (default-initrd-modules
277 #:optional
278 (system (or (%current-target-system)
279 (%current-system))))
277 "Return the list of modules included in the initrd by default." 280 "Return the list of modules included in the initrd by default."
278 (define virtio-modules 281 (define virtio-modules
279 ;; Modules for Linux para-virtualized devices, for use in QEMU guests. 282 ;; Modules for Linux para-virtualized devices, for use in QEMU guests.
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index 247f237622e..a8917118443 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -223,8 +223,8 @@ info --version")
223 (operating-system-user-accounts os)))) 223 (operating-system-user-accounts os))))
224 (marionette-eval 224 (marionette-eval
225 `(begin 225 `(begin
226 (use-modules (srfi srfi-1) (ice-9 ftw) 226 (use-modules (guix build utils) (srfi srfi-1)
227 (ice-9 match)) 227 (ice-9 ftw) (ice-9 match))
228 228
229 (every (match-lambda 229 (every (match-lambda
230 ((user home) 230 ((user home)
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index 7b5ee18505e..9f6baa1a485 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -79,6 +79,7 @@
79 (services (cons (service marionette-service-type 79 (services (cons (service marionette-service-type
80 (marionette-configuration 80 (marionette-configuration
81 (imported-modules '((gnu services herd) 81 (imported-modules '((gnu services herd)
82 (guix build utils)
82 (guix combinators))))) 83 (guix combinators)))))
83 %base-services)))) 84 %base-services))))
84 85
diff --git a/guix/build/compile.scm b/guix/build/compile.scm
index 794f12379c6..c8fe273f7e3 100644
--- a/guix/build/compile.scm
+++ b/guix/build/compile.scm
@@ -63,7 +63,8 @@
63 ;; strings" due to the fact that we use 'G_' instead of '_'. We'll need 63 ;; strings" due to the fact that we use 'G_' instead of '_'. We'll need
64 ;; help from Guile to solve this. 64 ;; help from Guile to solve this.
65 '(unsupported-warning unbound-variable arity-mismatch 65 '(unsupported-warning unbound-variable arity-mismatch
66 macro-use-before-definition)) ;new in 2.2 66 macro-use-before-definition ;new in 2.2
67 shadowed-toplevel)) ;new in 2.2.5
67 68
68(define (optimization-options file) 69(define (optimization-options file)
69 "Return the default set of optimizations options for FILE." 70 "Return the default set of optimizations options for FILE."
diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index 5c2eb3c14d8..eb045cbd1c5 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -146,6 +146,7 @@
146 window-size-y-pixels 146 window-size-y-pixels
147 terminal-window-size 147 terminal-window-size
148 terminal-columns 148 terminal-columns
149 terminal-rows
149 150
150 utmpx? 151 utmpx?
151 utmpx-login-type 152 utmpx-login-type
@@ -1871,23 +1872,17 @@ corresponds to the TIOCGWINSZ ioctl."
1871 (list (strerror err)) 1872 (list (strerror err))
1872 (list err))))) 1873 (list err)))))
1873 1874
1874(define* (terminal-columns #:optional (port (current-output-port))) 1875(define (terminal-dimension window-dimension port fall-back)
1875 "Return the best approximation of the number of columns of the terminal at 1876 "Return the terminal dimension defined by WINDOW-DIMENSION, one of
1876PORT, trying to guess a reasonable value if all else fails. The result is 1877'window-size-columns' or 'window-size-rows' for PORT. If PORT does not
1877always a positive integer." 1878correspond to a terminal, return the value returned by FALL-BACK."
1878 (define (fall-back)
1879 (match (and=> (getenv "COLUMNS") string->number)
1880 (#f 80)
1881 ((? number? columns)
1882 (if (> columns 0) columns 80))))
1883
1884 (catch 'system-error 1879 (catch 'system-error
1885 (lambda () 1880 (lambda ()
1886 (if (file-port? port) 1881 (if (file-port? port)
1887 (match (window-size-columns (terminal-window-size port)) 1882 (match (window-dimension (terminal-window-size port))
1888 ;; Things like Emacs shell-mode return 0, which is unreasonable. 1883 ;; Things like Emacs shell-mode return 0, which is unreasonable.
1889 (0 (fall-back)) 1884 (0 (fall-back))
1890 ((? number? columns) columns)) 1885 ((? number? n) n))
1891 (fall-back))) 1886 (fall-back)))
1892 (lambda args 1887 (lambda args
1893 (let ((errno (system-error-errno args))) 1888 (let ((errno (system-error-errno args)))
@@ -1900,6 +1895,24 @@ always a positive integer."
1900 (fall-back) 1895 (fall-back)
1901 (apply throw args)))))) 1896 (apply throw args))))))
1902 1897
1898(define* (terminal-columns #:optional (port (current-output-port)))
1899 "Return the best approximation of the number of columns of the terminal at
1900PORT, trying to guess a reasonable value if all else fails. The result is
1901always a positive integer."
1902 (define (fall-back)
1903 (match (and=> (getenv "COLUMNS") string->number)
1904 (#f 80)
1905 ((? number? columns)
1906 (if (> columns 0) columns 80))))
1907
1908 (terminal-dimension window-size-columns port fall-back))
1909
1910(define* (terminal-rows #:optional (port (current-output-port)))
1911 "Return the best approximation of the number of rows of the terminal at
1912PORT, trying to guess a reasonable value if all else fails. The result is
1913always a positive integer."
1914 (terminal-dimension window-size-rows port (const 25)))
1915
1903 1916
1904;;; 1917;;;
1905;;; utmpx. 1918;;; utmpx.
diff --git a/guix/derivations.scm b/guix/derivations.scm
index 8145d511437..433b4551a53 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -21,6 +21,7 @@
21 #:use-module (srfi srfi-1) 21 #:use-module (srfi srfi-1)
22 #:use-module (srfi srfi-9) 22 #:use-module (srfi srfi-9)
23 #:use-module (srfi srfi-9 gnu) 23 #:use-module (srfi srfi-9 gnu)
24 #:use-module (srfi srfi-11)
24 #:use-module (srfi srfi-26) 25 #:use-module (srfi srfi-26)
25 #:use-module (srfi srfi-34) 26 #:use-module (srfi srfi-34)
26 #:use-module (srfi srfi-35) 27 #:use-module (srfi srfi-35)
@@ -34,6 +35,7 @@
34 #:use-module (guix base16) 35 #:use-module (guix base16)
35 #:use-module (guix memoization) 36 #:use-module (guix memoization)
36 #:use-module (guix combinators) 37 #:use-module (guix combinators)
38 #:use-module (guix deprecation)
37 #:use-module (guix monads) 39 #:use-module (guix monads)
38 #:use-module (gcrypt hash) 40 #:use-module (gcrypt hash)
39 #:use-module (guix base32) 41 #:use-module (guix base32)
@@ -50,7 +52,8 @@
50 derivation-builder-environment-vars 52 derivation-builder-environment-vars
51 derivation-file-name 53 derivation-file-name
52 derivation-prerequisites 54 derivation-prerequisites
53 derivation-prerequisites-to-build 55 derivation-build-plan
56 derivation-prerequisites-to-build ;deprecated
54 57
55 <derivation-output> 58 <derivation-output>
56 derivation-output? 59 derivation-output?
@@ -61,6 +64,7 @@
61 64
62 <derivation-input> 65 <derivation-input>
63 derivation-input? 66 derivation-input?
67 derivation-input
64 derivation-input-path 68 derivation-input-path
65 derivation-input-derivation 69 derivation-input-derivation
66 derivation-input-sub-derivations 70 derivation-input-sub-derivations
@@ -148,14 +152,28 @@
148 (recursive? derivation-output-recursive?)) ; Boolean 152 (recursive? derivation-output-recursive?)) ; Boolean
149 153
150(define-immutable-record-type <derivation-input> 154(define-immutable-record-type <derivation-input>
151 (make-derivation-input path sub-derivations) 155 (make-derivation-input drv sub-derivations)
152 derivation-input? 156 derivation-input?
153 (path derivation-input-path) ; store path 157 (drv derivation-input-derivation) ; <derivation>
154 (sub-derivations derivation-input-sub-derivations)) ; list of strings 158 (sub-derivations derivation-input-sub-derivations)) ; list of strings
155 159
156(define (derivation-input-derivation input) 160
157 "Return the <derivation> object INPUT refers to." 161(define (derivation-input-path input)
158 (read-derivation-from-file (derivation-input-path input))) 162 "Return the file name of the derivation INPUT refers to."
163 (derivation-file-name (derivation-input-derivation input)))
164
165(define* (derivation-input drv #:optional
166 (outputs (derivation-output-names drv)))
167 "Return a <derivation-input> for the OUTPUTS of DRV."
168 ;; This is a public interface meant to be more convenient than
169 ;; 'make-derivation-input' and giving us more control.
170 (make-derivation-input drv outputs))
171
172(define (derivation-input-key input)
173 "Return an object for which 'equal?' and 'hash' are constant-time, and which
174can thus be used as a key for INPUT in lookup tables."
175 (cons (derivation-input-path input)
176 (derivation-input-sub-derivations input)))
159 177
160(set-record-type-printer! <derivation> 178(set-record-type-printer! <derivation>
161 (lambda (drv port) 179 (lambda (drv port)
@@ -197,8 +215,8 @@ download with a fixed hash (aka. `fetchurl')."
197 "Return the list of output paths corresponding to INPUT, a 215 "Return the list of output paths corresponding to INPUT, a
198<derivation-input>." 216<derivation-input>."
199 (match input 217 (match input
200 (($ <derivation-input> path sub-drvs) 218 (($ <derivation-input> drv sub-drvs)
201 (map (cut derivation-path->output-path path <>) 219 (map (cut derivation->output-path drv <>)
202 sub-drvs)))) 220 sub-drvs))))
203 221
204(define (valid-derivation-input? store input) 222(define (valid-derivation-input? store input)
@@ -213,20 +231,20 @@ they are coalesced, with their sub-derivations merged. This is needed because
213Nix itself keeps only one of them." 231Nix itself keeps only one of them."
214 (fold (lambda (input result) 232 (fold (lambda (input result)
215 (match input 233 (match input
216 (($ <derivation-input> path sub-drvs) 234 (($ <derivation-input> (= derivation-file-name path) sub-drvs)
217 ;; XXX: quadratic 235 ;; XXX: quadratic
218 (match (find (match-lambda 236 (match (find (match-lambda
219 (($ <derivation-input> p s) 237 (($ <derivation-input> (= derivation-file-name p)
238 s)
220 (string=? p path))) 239 (string=? p path)))
221 result) 240 result)
222 (#f 241 (#f
223 (cons input result)) 242 (cons input result))
224 ((and dup ($ <derivation-input> _ sub-drvs2)) 243 ((and dup ($ <derivation-input> drv sub-drvs2))
225 ;; Merge DUP with INPUT. 244 ;; Merge DUP with INPUT.
226 (let ((sub-drvs (delete-duplicates 245 (let ((sub-drvs (delete-duplicates
227 (append sub-drvs sub-drvs2)))) 246 (append sub-drvs sub-drvs2))))
228 (cons (make-derivation-input path 247 (cons (make-derivation-input drv (sort sub-drvs string<?))
229 (sort sub-drvs string<?))
230 (delq dup result)))))))) 248 (delq dup result))))))))
231 '() 249 '()
232 inputs)) 250 inputs))
@@ -242,12 +260,14 @@ result is the set of prerequisites of DRV not already in valid."
242 (result '()) 260 (result '())
243 (input-set (set))) 261 (input-set (set)))
244 (let ((inputs (remove (lambda (input) 262 (let ((inputs (remove (lambda (input)
245 (or (set-contains? input-set input) 263 (or (set-contains? input-set
264 (derivation-input-key input))
246 (cut? input))) 265 (cut? input)))
247 (derivation-inputs drv)))) 266 (derivation-inputs drv))))
248 (fold2 loop 267 (fold2 loop
249 (append inputs result) 268 (append inputs result)
250 (fold set-insert input-set inputs) 269 (fold set-insert input-set
270 (map derivation-input-key inputs))
251 (map derivation-input-derivation inputs))))) 271 (map derivation-input-derivation inputs)))))
252 272
253(define (offloadable-derivation? drv) 273(define (offloadable-derivation? drv)
@@ -333,87 +353,81 @@ substituter many times."
333 (#f #f) 353 (#f #f)
334 ((key . value) value))))) 354 ((key . value) value)))))
335 355
336(define* (derivation-prerequisites-to-build store drv 356(define* (derivation-build-plan store inputs
337 #:key 357 #:key
338 (mode (build-mode normal)) 358 (mode (build-mode normal))
339 (outputs 359 (substitutable-info
340 (derivation-output-names drv)) 360 (substitution-oracle
341 (substitutable-info 361 store
342 (substitution-oracle store 362 (map derivation-input-derivation
343 (list drv) 363 inputs)
344 #:mode mode))) 364 #:mode mode)))
345 "Return two values: the list of derivation-inputs required to build the 365 "Given INPUTS, a list of derivation-inputs, return two values: the list of
346OUTPUTS of DRV and not already available in STORE, recursively, and the list 366derivation to build, and the list of substitutable items that, together,
347of required store paths that can be substituted. SUBSTITUTABLE-INFO must be a 367allows INPUTS to be realized.
348one-argument procedure similar to that returned by 'substitution-oracle'." 368
349 (define built? 369SUBSTITUTABLE-INFO must be a one-argument procedure similar to that returned
350 (mlambda (item) 370by 'substitution-oracle'."
351 (valid-path? store item))) 371 (define (built? item)
352 372 (valid-path? store item))
353 (define input-built? 373
354 (compose (cut any built? <>) derivation-input-output-paths)) 374 (define (input-built? input)
355
356 (define input-substitutable?
357 ;; Return true if and only if all of SUB-DRVS are subsitutable. If at
358 ;; least one is missing, then everything must be rebuilt.
359 (compose (cut every substitutable-info <>) derivation-input-output-paths))
360
361 (define (derivation-built? drv* sub-drvs)
362 ;; In 'check' mode, assume that DRV is not built. 375 ;; In 'check' mode, assume that DRV is not built.
363 (and (not (and (eqv? mode (build-mode check)) 376 (and (not (and (eqv? mode (build-mode check))
364 (eq? drv* drv))) 377 (member input inputs)))
365 (every built? (derivation-output-paths drv* sub-drvs)))) 378 (every built? (derivation-input-output-paths input))))
366 379
367 (define (derivation-substitutable-info drv sub-drvs) 380 (define (input-substitutable-info input)
368 (and (substitutable-derivation? drv) 381 (and (substitutable-derivation? (derivation-input-derivation input))
369 (let ((info (filter-map substitutable-info 382 (let* ((items (derivation-input-output-paths input))
370 (derivation-output-paths drv sub-drvs)))) 383 (info (filter-map substitutable-info items)))
371 (and (= (length info) (length sub-drvs)) 384 (and (= (length info) (length items))
372 info)))) 385 info))))
373 386
374 (let loop ((drv drv) 387 (let loop ((inputs inputs) ;list of <derivation-input>
375 (sub-drvs outputs) 388 (build '()) ;list of <derivation>
376 (build '()) ;list of <derivation-input> 389 (substitute '()) ;list of <substitutable>
377 (substitute '())) ;list of <substitutable> 390 (visited (set))) ;set of <derivation-input>
378 (cond ((derivation-built? drv sub-drvs) 391 (match inputs
379 (values build substitute)) 392 (()
380 ((derivation-substitutable-info drv sub-drvs) 393 (values build substitute))
381 => 394 ((input rest ...)
382 (lambda (substitutables) 395 (let ((key (derivation-input-key input)))
383 (values build 396 (cond ((set-contains? visited key)
384 (append substitutables substitute)))) 397 (loop rest build substitute visited))
385 (else 398 ((input-built? input)
386 (let ((build (if (substitutable-derivation? drv) 399 (loop rest build substitute
387 build 400 (set-insert key visited)))
388 (cons (make-derivation-input 401 ((input-substitutable-info input)
389 (derivation-file-name drv) sub-drvs) 402 =>
390 build))) 403 (lambda (substitutables)
391 (inputs (remove (lambda (i) 404 (loop rest build
392 (or (member i build) ; XXX: quadratic 405 (append substitutables substitute)
393 (input-built? i) 406 (set-insert key visited))))
394 (input-substitutable? i))) 407 (else
395 (derivation-inputs drv)))) 408 (let ((deps (derivation-inputs
396 (fold2 loop 409 (derivation-input-derivation input))))
397 (append inputs build) 410 (loop (append deps rest)
398 (append (append-map (lambda (input) 411 (cons (derivation-input-derivation input) build)
399 (if (and (not (input-built? input)) 412 substitute
400 (input-substitutable? input)) 413 (set-insert key visited))))))))))
401 (map substitutable-info 414
402 (derivation-input-output-paths 415(define-deprecated (derivation-prerequisites-to-build store drv #:rest rest)
403 input)) 416 derivation-build-plan
404 '())) 417 (let-values (((build download)
405 (derivation-inputs drv)) 418 (apply derivation-build-plan store
406 substitute) 419 (list (derivation-input drv)) rest)))
407 (map (lambda (i) 420 (values (map derivation-input build) download)))
408 (read-derivation-from-file 421
409 (derivation-input-path i))) 422(define* (read-derivation drv-port
410 inputs) 423 #:optional (read-derivation-from-file
411 (map derivation-input-sub-derivations inputs))))))) 424 read-derivation-from-file))
412
413(define (read-derivation drv-port)
414 "Read the derivation from DRV-PORT and return the corresponding <derivation> 425 "Read the derivation from DRV-PORT and return the corresponding <derivation>
415object. Most of the time you'll want to use 'read-derivation-from-file', 426object. Call READ-DERIVATION-FROM-FILE to read derivations declared as inputs
416which caches things as appropriate and is thus more efficient." 427of the derivation being parsed.
428
429Most of the time you'll want to use 'read-derivation-from-file', which caches
430things as appropriate and is thus more efficient."
417 431
418 (define comma (string->symbol ",")) 432 (define comma (string->symbol ","))
419 433
@@ -449,8 +463,9 @@ which caches things as appropriate and is thus more efficient."
449 (fold-right (lambda (input result) 463 (fold-right (lambda (input result)
450 (match input 464 (match input
451 ((path (sub-drvs ...)) 465 ((path (sub-drvs ...))
452 (cons (make-derivation-input path sub-drvs) 466 (let ((drv (read-derivation-from-file path)))
453 result)))) 467 (cons (make-derivation-input drv sub-drvs)
468 result)))))
454 '() 469 '()
455 x)) 470 x))
456 471
@@ -552,9 +567,15 @@ that form."
552 567
553 (define (write-input input port) 568 (define (write-input input port)
554 (match input 569 (match input
555 (($ <derivation-input> path sub-drvs) 570 (($ <derivation-input> obj sub-drvs)
556 (display "(\"" port) 571 (display "(\"" port)
557 (display path port) 572
573 ;; 'derivation/masked-inputs' produces objects that contain a string
574 ;; instead of a <derivation>, so we need to account for that.
575 (display (if (derivation? obj)
576 (derivation-file-name obj)
577 obj)
578 port)
558 (display "\"," port) 579 (display "\"," port)
559 (write-string-list sub-drvs) 580 (write-string-list sub-drvs)
560 (display ")" port)))) 581 (display ")" port))))
@@ -645,13 +666,16 @@ name of each input with that input's hash."
645 (($ <derivation> outputs inputs sources 666 (($ <derivation> outputs inputs sources
646 system builder args env-vars) 667 system builder args env-vars)
647 (let ((inputs (map (match-lambda 668 (let ((inputs (map (match-lambda
648 (($ <derivation-input> path sub-drvs) 669 (($ <derivation-input> (= derivation-file-name path)
670 sub-drvs)
649 (let ((hash (derivation-path->base16-hash path))) 671 (let ((hash (derivation-path->base16-hash path)))
650 (make-derivation-input hash sub-drvs)))) 672 (make-derivation-input hash sub-drvs))))
651 inputs))) 673 inputs)))
652 (make-derivation outputs 674 (make-derivation outputs
653 (sort (coalesce-duplicate-inputs inputs) 675 (sort inputs
654 derivation-input<?) 676 (lambda (drv1 drv2)
677 (string<? (derivation-input-derivation drv1)
678 (derivation-input-derivation drv2))))
655 sources 679 sources
656 system builder args env-vars 680 system builder args env-vars
657 #f))))) 681 #f)))))
@@ -807,17 +831,19 @@ derivation. It is kept as-is, uninterpreted, in the derivation."
807 (define input->derivation-input 831 (define input->derivation-input
808 (match-lambda 832 (match-lambda
809 (((? derivation? drv)) 833 (((? derivation? drv))
810 (make-derivation-input (derivation-file-name drv) '("out"))) 834 (make-derivation-input drv '("out")))
811 (((? derivation? drv) sub-drvs ...) 835 (((? derivation? drv) sub-drvs ...)
812 (make-derivation-input (derivation-file-name drv) sub-drvs)) 836 (make-derivation-input drv sub-drvs))
813 (((? direct-store-path? input)) 837 (_ #f)))
814 (make-derivation-input input '("out"))) 838
815 (((? direct-store-path? input) sub-drvs ...) 839 (define input->source
816 (make-derivation-input input sub-drvs)) 840 (match-lambda
817 ((input . _) 841 (((? string? input) . _)
818 (let ((path (add-to-store store (basename input) 842 (if (direct-store-path? input)
819 #t "sha256" input))) 843 input
820 (make-derivation-input path '()))))) 844 (add-to-store store (basename input)
845 #t "sha256" input)))
846 (_ #f)))
821 847
822 ;; Note: lists are sorted alphabetically, to conform with the behavior of 848 ;; Note: lists are sorted alphabetically, to conform with the behavior of
823 ;; C++ `std::map' in Nix itself. 849 ;; C++ `std::map' in Nix itself.
@@ -828,32 +854,31 @@ derivation. It is kept as-is, uninterpreted, in the derivation."
828 (make-derivation-output "" hash-algo 854 (make-derivation-output "" hash-algo
829 hash recursive?))) 855 hash recursive?)))
830 (sort outputs string<?))) 856 (sort outputs string<?)))
857 (sources (sort (delete-duplicates
858 (filter-map input->source inputs))
859 string<?))
831 (inputs (sort (coalesce-duplicate-inputs 860 (inputs (sort (coalesce-duplicate-inputs
832 (map input->derivation-input 861 (filter-map input->derivation-input inputs))
833 (delete-duplicates inputs)))
834 derivation-input<?)) 862 derivation-input<?))
835 (env-vars (sort (env-vars-with-empty-outputs 863 (env-vars (sort (env-vars-with-empty-outputs
836 (user+system-env-vars)) 864 (user+system-env-vars))
837 (lambda (e1 e2) 865 (lambda (e1 e2)
838 (string<? (car e1) (car e2))))) 866 (string<? (car e1) (car e2)))))
839 (drv-masked (make-derivation outputs 867 (drv-masked (make-derivation outputs inputs sources
840 (filter (compose derivation-path?
841 derivation-input-path)
842 inputs)
843 (filter-map (lambda (i)
844 (let ((p (derivation-input-path i)))
845 (and (not (derivation-path? p))
846 p)))
847 inputs)
848 system builder args env-vars #f)) 868 system builder args env-vars #f))
849 (drv (add-output-paths drv-masked))) 869 (drv (add-output-paths drv-masked)))
850 870
851 (let* ((file (add-data-to-store store (string-append name ".drv") 871 (let* ((file (add-data-to-store store (string-append name ".drv")
852 (derivation->bytevector drv) 872 (derivation->bytevector drv)
853 (map derivation-input-path inputs))) 873 (append (map derivation-input-path inputs)
874 sources)))
854 (drv* (set-field drv (derivation-file-name) file))) 875 (drv* (set-field drv (derivation-file-name) file)))
855 (hash-set! %derivation-cache file drv*) 876 ;; Preserve pointer equality. This improves the performance of
856 drv*))) 877 ;; 'eq?'-memoization on derivations.
878 (or (hash-ref %derivation-cache file)
879 (begin
880 (hash-set! %derivation-cache file drv*)
881 drv*)))))
857 882
858(define (invalidate-derivation-caches!) 883(define (invalidate-derivation-caches!)
859 "Invalidate internal derivation caches. This is mostly useful for 884 "Invalidate internal derivation caches. This is mostly useful for
@@ -920,7 +945,8 @@ recursively."
920 ;; in the format used in 'derivation' calls. 945 ;; in the format used in 'derivation' calls.
921 (mlambda (input loop) 946 (mlambda (input loop)
922 (match input 947 (match input
923 (($ <derivation-input> path (sub-drvs ...)) 948 (($ <derivation-input> (= derivation-file-name path)
949 (sub-drvs ...))
924 (match (vhash-assoc path mapping) 950 (match (vhash-assoc path mapping)
925 ((_ . (? derivation? replacement)) 951 ((_ . (? derivation? replacement))
926 (cons replacement sub-drvs)) 952 (cons replacement sub-drvs))
@@ -990,6 +1016,11 @@ derivation/output pairs, using the specified MODE."
990 (build-things store (map (match-lambda 1016 (build-things store (map (match-lambda
991 ((? derivation? drv) 1017 ((? derivation? drv)
992 (derivation-file-name drv)) 1018 (derivation-file-name drv))
1019 ((? derivation-input? input)
1020 (cons (derivation-input-path input)
1021 (string-join
1022 (derivation-input-sub-derivations input)
1023 ",")))
993 ((? string? file) file) 1024 ((? string? file) file)
994 (((? derivation? drv) . output) 1025 (((? derivation? drv) . output)
995 (cons (derivation-file-name drv) 1026 (cons (derivation-file-name drv)
diff --git a/guix/progress.scm b/guix/progress.scm
index f150b081d61..349637dbcf1 100644
--- a/guix/progress.scm
+++ b/guix/progress.scm
@@ -197,7 +197,9 @@ object) and TRANSFERRED (a total number of bytes) to determine the
197throughput." 197throughput."
198 (define elapsed 198 (define elapsed
199 (duration->seconds 199 (duration->seconds
200 (time-difference (current-time time-monotonic) start-time))) 200 (time-difference (current-time (time-type start-time))
201 start-time)))
202
201 (if (and (number? size) (not (zero? size))) 203 (if (and (number? size) (not (zero? size)))
202 (let* ((% (* 100.0 (/ transferred size))) 204 (let* ((% (* 100.0 (/ transferred size)))
203 (throughput (/ transferred elapsed)) 205 (throughput (/ transferred elapsed))
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index 61ca4dca9fc..ec58ba871b3 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -836,11 +836,9 @@ build."
836 (#t 836 (#t
837 (match (package-source p) 837 (match (package-source p)
838 (#f 838 (#f
839 (format (current-error-port) 839 (warning (package-location p)
840 (G_ "~a: warning: \ 840 (G_ "package '~a' has no source~%")
841package '~a' has no source~%") 841 (package-name p))
842 (location->string (package-location p))
843 (package-name p))
844 '()) 842 '())
845 (s 843 (s
846 (list (package-source-derivation store s))))) 844 (list (package-source-derivation store s)))))
@@ -918,7 +916,8 @@ needed."
918 '()))) 916 '())))
919 (items (filter-map (match-lambda 917 (items (filter-map (match-lambda
920 (('argument . (? store-path? file)) 918 (('argument . (? store-path? file))
921 file) 919 (and (not (derivation-path? file))
920 file))
922 (_ #f)) 921 (_ #f))
923 opts)) 922 opts))
924 (roots (filter-map (match-lambda 923 (roots (filter-map (match-lambda
diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm
index 8fe81ad64b0..2e14857f1ea 100644
--- a/guix/scripts/graph.scm
+++ b/guix/scripts/graph.scm
@@ -254,8 +254,7 @@ GNU-BUILD-SYSTEM have zero dependencies."
254 "Return the <derivation> objects and store items corresponding to the 254 "Return the <derivation> objects and store items corresponding to the
255dependencies of OBJ, a <derivation> or store item." 255dependencies of OBJ, a <derivation> or store item."
256 (if (derivation? obj) 256 (if (derivation? obj)
257 (append (map (compose read-derivation-from-file derivation-input-path) 257 (append (map derivation-input-derivation (derivation-inputs obj))
258 (derivation-inputs obj))
259 (derivation-sources obj)) 258 (derivation-sources obj))
260 '())) 259 '()))
261 260
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index 57511235257..7b277b63f11 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -26,6 +26,7 @@
26(define-module (guix scripts package) 26(define-module (guix scripts package)
27 #:use-module (guix ui) 27 #:use-module (guix ui)
28 #:use-module ((guix status) #:select (with-status-verbosity)) 28 #:use-module ((guix status) #:select (with-status-verbosity))
29 #:use-module ((guix build syscalls) #:select (terminal-rows))
29 #:use-module (guix store) 30 #:use-module (guix store)
30 #:use-module (guix grafts) 31 #:use-module (guix grafts)
31 #:use-module (guix derivations) 32 #:use-module (guix derivations)
@@ -178,9 +179,9 @@ hooks\" run when building the profile."
178;;; 179;;;
179 180
180(define (find-packages-by-description regexps) 181(define (find-packages-by-description regexps)
181 "Return two values: the list of packages whose name, synopsis, description, 182 "Return a list of pairs: packages whose name, synopsis, description,
182or output matches at least one of REGEXPS sorted by relevance, and the list of 183or output matches at least one of REGEXPS sorted by relevance, and its
183relevance scores." 184non-zero relevance score."
184 (let ((matches (fold-packages (lambda (package result) 185 (let ((matches (fold-packages (lambda (package result)
185 (if (package-superseded package) 186 (if (package-superseded package)
186 result 187 result
@@ -189,19 +190,19 @@ relevance scores."
189 ((? zero?) 190 ((? zero?)
190 result) 191 result)
191 (score 192 (score
192 (cons (list package score) 193 (cons (cons package score)
193 result))))) 194 result)))))
194 '()))) 195 '())))
195 (unzip2 (sort matches 196 (sort matches
196 (lambda (m1 m2) 197 (lambda (m1 m2)
197 (match m1 198 (match m1
198 ((package1 score1) 199 ((package1 . score1)
199 (match m2 200 (match m2
200 ((package2 score2) 201 ((package2 . score2)
201 (if (= score1 score2) 202 (if (= score1 score2)
202 (string>? (package-full-name package1) 203 (string>? (package-full-name package1)
203 (package-full-name package2)) 204 (package-full-name package2))
204 (> score1 score2))))))))))) 205 (> score1 score2))))))))))
205 206
206(define (transaction-upgrade-entry entry transaction) 207(define (transaction-upgrade-entry entry transaction)
207 "Return a variant of TRANSACTION that accounts for the upgrade of ENTRY, a 208 "Return a variant of TRANSACTION that accounts for the upgrade of ENTRY, a
@@ -755,16 +756,10 @@ processed, #f otherwise."
755 (('query 'search rx) rx) 756 (('query 'search rx) rx)
756 (_ #f)) 757 (_ #f))
757 opts)) 758 opts))
758 (regexps (map (cut make-regexp* <> regexp/icase) patterns))) 759 (regexps (map (cut make-regexp* <> regexp/icase) patterns))
760 (matches (find-packages-by-description regexps)))
759 (leave-on-EPIPE 761 (leave-on-EPIPE
760 (let-values (((packages scores) 762 (display-search-results matches (current-output-port)))
761 (find-packages-by-description regexps)))
762 (for-each (lambda (package score)
763 (package->recutils package (current-output-port)
764 #:extra-fields
765 `((relevance . ,score))))
766 packages
767 scores)))
768 #t)) 763 #t))
769 764
770 (('show requested-name) 765 (('show requested-name)
diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm
index b4334b3f16e..c716998a5bb 100644
--- a/guix/scripts/publish.scm
+++ b/guix/scripts/publish.scm
@@ -724,6 +724,32 @@ example: \"/foo/bar\" yields '(\"foo\" \"bar\")."
724(define %http-write 724(define %http-write
725 (@@ (web server http) http-write)) 725 (@@ (web server http) http-write))
726 726
727(match (list (major-version) (minor-version) (micro-version))
728 (("2" "2" "5") ;Guile 2.2.5
729 (let ()
730 (define %read-line (@ (ice-9 rdelim) %read-line))
731 (define bad-header (@@ (web http) bad-header))
732
733 ;; XXX: Work around <https://bugs.gnu.org/36350> by reverting to the
734 ;; definition of 'read-header-line' as found in 2.2.4 and earlier.
735 (define (read-header-line port)
736 "Read an HTTP header line and return it without its final CRLF or LF.
737Raise a 'bad-header' exception if the line does not end in CRLF or LF,
738or if EOF is reached."
739 (match (%read-line port)
740 (((? string? line) . #\newline)
741 ;; '%read-line' does not consider #\return a delimiter; so if it's
742 ;; there, remove it. We are more tolerant than the RFC in that we
743 ;; tolerate LF-only endings.
744 (if (string-suffix? "\r" line)
745 (string-drop-right line 1)
746 line))
747 ((line . _) ;EOF or missing delimiter
748 (bad-header 'read-header-line line))))
749
750 (set! (@@ (web http) read-header-line) read-header-line)))
751 (_ #t))
752
727(define (strip-headers response) 753(define (strip-headers response)
728 "Return RESPONSE's headers minus 'Content-Length' and our internal headers." 754 "Return RESPONSE's headers minus 'Content-Length' and our internal headers."
729 (fold alist-delete 755 (fold alist-delete
diff --git a/guix/scripts/system/search.scm b/guix/scripts/system/search.scm
index 955cdd1e95f..5278062eddf 100644
--- a/guix/scripts/system/search.scm
+++ b/guix/scripts/system/search.scm
@@ -1,5 +1,5 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
3;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> 3;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
4;;; 4;;;
5;;; This file is part of GNU Guix. 5;;; This file is part of GNU Guix.
@@ -139,9 +139,8 @@ columns."
139 . 1))) 139 . 1)))
140 140
141(define (find-service-types regexps) 141(define (find-service-types regexps)
142 "Return two values: the list of service types whose name or description 142 "Return a list of service type/score pairs: service types whose name or
143matches at least one of REGEXPS sorted by relevance, and the list of relevance 143description matches REGEXPS sorted by relevance, and their score."
144scores."
145 (let ((matches (fold-service-types 144 (let ((matches (fold-service-types
146 (lambda (type result) 145 (lambda (type result)
147 (match (relevance type regexps 146 (match (relevance type regexps
@@ -149,30 +148,25 @@ scores."
149 ((? zero?) 148 ((? zero?)
150 result) 149 result)
151 (score 150 (score
152 (cons (list type score) result)))) 151 (cons (cons type score) result))))
153 '()))) 152 '())))
154 (unzip2 (sort matches 153 (sort matches
155 (lambda (m1 m2) 154 (lambda (m1 m2)
156 (match m1 155 (match m1
157 ((type1 score1) 156 ((type1 . score1)
158 (match m2 157 (match m2
159 ((type2 score2) 158 ((type2 . score2)
160 (if (= score1 score2) 159 (if (= score1 score2)
161 (string>? (service-type-name* type1) 160 (string>? (service-type-name* type1)
162 (service-type-name* type2)) 161 (service-type-name* type2))
163 (> score1 score2))))))))))) 162 (> score1 score2))))))))))
164 163
165 164
166(define (guix-system-search . args) 165(define (guix-system-search . args)
167 (with-error-handling 166 (with-error-handling
168 (let ((regexps (map (cut make-regexp* <> regexp/icase) args))) 167 (let* ((regexps (map (cut make-regexp* <> regexp/icase) args))
168 (matches (find-service-types regexps)))
169 (leave-on-EPIPE 169 (leave-on-EPIPE
170 (let-values (((services scores) 170 (display-search-results matches (current-output-port)
171 (find-service-types regexps))) 171 #:print service-type->recutils
172 (for-each (lambda (service score) 172 #:command "guix system search")))))
173 (service-type->recutils service
174 (current-output-port)
175 #:extra-fields
176 `((relevance . ,score))))
177 services
178 scores))))))
diff --git a/guix/ui.scm b/guix/ui.scm
index 0b4fe144b69..6d243ef041f 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -41,12 +41,12 @@
41 #:use-module (guix packages) 41 #:use-module (guix packages)
42 #:use-module (guix profiles) 42 #:use-module (guix profiles)
43 #:use-module (guix derivations) 43 #:use-module (guix derivations)
44 #:use-module (guix combinators)
45 #:use-module (guix build-system) 44 #:use-module (guix build-system)
46 #:use-module (guix serialization) 45 #:use-module (guix serialization)
47 #:use-module ((guix licenses) #:select (license? license-name)) 46 #:use-module ((guix licenses) #:select (license? license-name))
48 #:use-module ((guix build syscalls) 47 #:use-module ((guix build syscalls)
49 #:select (free-disk-space terminal-columns)) 48 #:select (free-disk-space terminal-columns
49 terminal-rows))
50 #:use-module ((guix build utils) 50 #:use-module ((guix build utils)
51 ;; XXX: All we need are the bindings related to 51 ;; XXX: All we need are the bindings related to
52 ;; '&invoke-error'. However, to work around the bug described 52 ;; '&invoke-error'. However, to work around the bug described
@@ -106,8 +106,11 @@
106 string->recutils 106 string->recutils
107 package->recutils 107 package->recutils
108 package-specification->name+version+output 108 package-specification->name+version+output
109
109 relevance 110 relevance
110 package-relevance 111 package-relevance
112 display-search-results
113
111 string->generations 114 string->generations
112 string->duration 115 string->duration
113 matching-generations 116 matching-generations
@@ -774,12 +777,19 @@ error."
774 str)))) 777 str))))
775 778
776(define (show-derivation-outputs derivation) 779(define (show-derivation-outputs derivation)
777 "Show the output file names of DERIVATION." 780 "Show the output file names of DERIVATION, which can be a derivation or a
778 (format #t "~{~a~%~}" 781derivation input."
779 (map (match-lambda 782 (define (show-outputs derivation outputs)
780 ((out-name . out) 783 (format #t "~{~a~%~}"
781 (derivation->output-path derivation out-name))) 784 (map (cut derivation->output-path derivation <>)
782 (derivation-outputs derivation)))) 785 outputs)))
786
787 (match derivation
788 ((? derivation?)
789 (show-outputs derivation (derivation-output-names derivation)))
790 ((? derivation-input? input)
791 (show-outputs (derivation-input-derivation input)
792 (derivation-input-sub-derivations input)))))
783 793
784(define* (check-available-space need 794(define* (check-available-space need
785 #:optional (directory (%store-prefix))) 795 #:optional (directory (%store-prefix)))
@@ -809,40 +819,31 @@ warning."
809 #:key dry-run? (use-substitutes? #t) 819 #:key dry-run? (use-substitutes? #t)
810 (mode (build-mode normal))) 820 (mode (build-mode normal)))
811 "Show what will or would (depending on DRY-RUN?) be built in realizing the 821 "Show what will or would (depending on DRY-RUN?) be built in realizing the
812derivations listed in DRV using MODE, a 'build-mode' value. Return #t if 822derivations listed in DRV using MODE, a 'build-mode' value. The elements of
813there's something to build, #f otherwise. When USE-SUBSTITUTES?, check and 823DRV can be either derivations or derivation inputs.
814report what is prerequisites are available for download." 824
825Return #t if there's something to build, #f otherwise. When USE-SUBSTITUTES?,
826check and report what is prerequisites are available for download."
827 (define inputs
828 (map (match-lambda
829 ((? derivation? drv) (derivation-input drv))
830 ((? derivation-input? input) input))
831 drv))
832
815 (define substitutable-info 833 (define substitutable-info
816 ;; Call 'substitutation-oracle' upfront so we don't end up launching the 834 ;; Call 'substitutation-oracle' upfront so we don't end up launching the
817 ;; substituter many times. This makes a big difference, especially when 835 ;; substituter many times. This makes a big difference, especially when
818 ;; DRV is a long list as is the case with 'guix environment'. 836 ;; DRV is a long list as is the case with 'guix environment'.
819 (if use-substitutes? 837 (if use-substitutes?
820 (substitution-oracle store drv #:mode mode) 838 (substitution-oracle store (map derivation-input-derivation inputs)
839 #:mode mode)
821 (const #f))) 840 (const #f)))
822 841
823 (define (built-or-substitutable? drv)
824 (or (null? (derivation-outputs drv))
825 (let ((out (derivation->output-path drv))) ;XXX: assume "out" exists
826 (or (valid-path? store out)
827 (substitutable-info out)))))
828
829 (let*-values (((build download) 842 (let*-values (((build download)
830 (fold2 (lambda (drv build download) 843 (derivation-build-plan store inputs
831 (let-values (((b d) 844 #:mode mode
832 (derivation-prerequisites-to-build 845 #:substitutable-info
833 store drv 846 substitutable-info))
834 #:mode mode
835 #:substitutable-info
836 substitutable-info)))
837 (values (append b build)
838 (append d download))))
839 '() '()
840 drv))
841 ((build) ; add the DRV themselves
842 (delete-duplicates
843 (append (map derivation-file-name
844 (remove built-or-substitutable? drv))
845 (map derivation-input-path build))))
846 ((download) ; add the references of DOWNLOAD 847 ((download) ; add the references of DOWNLOAD
847 (if use-substitutes? 848 (if use-substitutes?
848 (delete-duplicates 849 (delete-duplicates
@@ -856,8 +857,8 @@ report what is prerequisites are available for download."
856 download)))) 857 download))))
857 download)) 858 download))
858 ((graft hook build) 859 ((graft hook build)
859 (match (fold (lambda (file acc) 860 (match (fold (lambda (drv acc)
860 (let ((drv (read-derivation-from-file file))) 861 (let ((file (derivation-file-name drv)))
861 (match acc 862 (match acc
862 ((#:graft graft #:hook hook #:build build) 863 ((#:graft graft #:hook hook #:build build)
863 (cond 864 (cond
@@ -1246,6 +1247,11 @@ WIDTH columns. EXTRA-FIELDS is a list of symbol/value pairs to emit."
1246 extra-fields) 1247 extra-fields)
1247 (newline port)) 1248 (newline port))
1248 1249
1250
1251;;;
1252;;; Searching.
1253;;;
1254
1249(define (relevance obj regexps metrics) 1255(define (relevance obj regexps metrics)
1250 "Compute a \"relevance score\" for OBJ as a function of its number of 1256 "Compute a \"relevance score\" for OBJ as a function of its number of
1251matches of REGEXPS and accordingly to METRICS. METRICS is list of 1257matches of REGEXPS and accordingly to METRICS. METRICS is list of
@@ -1256,17 +1262,20 @@ weight of this field in the final score.
1256A score of zero means that OBJ does not match any of REGEXPS. The higher the 1262A score of zero means that OBJ does not match any of REGEXPS. The higher the
1257score, the more relevant OBJ is to REGEXPS." 1263score, the more relevant OBJ is to REGEXPS."
1258 (define (score str) 1264 (define (score str)
1259 (let ((counts (map (lambda (regexp) 1265 (define scores
1260 (match (fold-matches regexp str '() cons) 1266 (map (lambda (regexp)
1261 (() 0) 1267 (fold-matches regexp str 0
1262 ((m) (if (string=? (match:substring m) str) 1268 (lambda (m score)
1263 5 ;exact match 1269 (+ score
1264 1)) 1270 (if (string=? (match:substring m) str)
1265 (lst (length lst)))) 1271 5 ;exact match
1266 regexps))) 1272 1)))))
1267 ;; Compute a score that's proportional to the number of regexps matched 1273 regexps))
1268 ;; and to the number of matches for each regexp. 1274
1269 (* (length counts) (reduce + 0 counts)))) 1275 ;; Return zero if one of REGEXPS doesn't match.
1276 (if (any zero? scores)
1277 0
1278 (reduce + 0 scores)))
1270 1279
1271 (fold (lambda (metric relevance) 1280 (fold (lambda (metric relevance)
1272 (match metric 1281 (match metric
@@ -1312,6 +1321,45 @@ score, the more relevant OBJ is to REGEXPS."
1312zero means that PACKAGE does not match any of REGEXPS." 1321zero means that PACKAGE does not match any of REGEXPS."
1313 (relevance package regexps %package-metrics)) 1322 (relevance package regexps %package-metrics))
1314 1323
1324(define* (display-search-results matches port
1325 #:key
1326 (command "guix search")
1327 (print package->recutils))
1328 "Display MATCHES, a list of object/score pairs, by calling PRINT on each of
1329them. If PORT is a terminal, print at most a full screen of results."
1330 (define first-line
1331 (port-line port))
1332
1333 (define max-rows
1334 (and first-line (isatty? port)
1335 (terminal-rows port)))
1336
1337 (define (line-count str)
1338 (string-count str #\newline))
1339
1340 (let loop ((matches matches))
1341 (match matches
1342 (((package . score) rest ...)
1343 (let ((text (call-with-output-string
1344 (lambda (port)
1345 (print package port
1346 #:extra-fields
1347 `((relevance . ,score)))))))
1348 (if (and max-rows
1349 (> (port-line port) first-line) ;print at least one result
1350 (> (+ 4 (line-count text) (port-line port))
1351 max-rows))
1352 (unless (null? rest)
1353 (display-hint (format #f (G_ "Run @code{~a ... | less} \
1354to view all the results.")
1355 command)))
1356 (begin
1357 (display text port)
1358 (loop rest)))))
1359 (()
1360 #t))))
1361
1362
1315(define (string->generations str) 1363(define (string->generations str)
1316 "Return the list of generations matching a pattern in STR. This function 1364 "Return the list of generations matching a pattern in STR. This function
1317accepts the following patterns: \"1\", \"1,2,3\", \"1..9\", \"1..\", \"..9\"." 1365accepts the following patterns: \"1\", \"1,2,3\", \"1..9\", \"1..\", \"..9\"."
diff --git a/tests/derivations.scm b/tests/derivations.scm
index b0175d9fc5b..98018a45e3d 100644
--- a/tests/derivations.scm
+++ b/tests/derivations.scm
@@ -86,9 +86,11 @@
86(test-assert "parse & export" 86(test-assert "parse & export"
87 (let* ((f (search-path %load-path "tests/test.drv")) 87 (let* ((f (search-path %load-path "tests/test.drv"))
88 (b1 (call-with-input-file f get-bytevector-all)) 88 (b1 (call-with-input-file f get-bytevector-all))
89 (d1 (read-derivation (open-bytevector-input-port b1))) 89 (d1 (read-derivation (open-bytevector-input-port b1)
90 identity))
90 (b2 (call-with-bytevector-output-port (cut write-derivation d1 <>))) 91 (b2 (call-with-bytevector-output-port (cut write-derivation d1 <>)))
91 (d2 (read-derivation (open-bytevector-input-port b2)))) 92 (d2 (read-derivation (open-bytevector-input-port b2)
93 identity)))
92 (and (equal? b1 b2) 94 (and (equal? b1 b2)
93 (equal? d1 d2)))) 95 (equal? d1 d2))))
94 96
@@ -723,7 +725,7 @@
723(test-assert "build-expression->derivation and derivation-prerequisites" 725(test-assert "build-expression->derivation and derivation-prerequisites"
724 (let ((drv (build-expression->derivation %store "fail" #f))) 726 (let ((drv (build-expression->derivation %store "fail" #f)))
725 (any (match-lambda 727 (any (match-lambda
726 (($ <derivation-input> path) 728 (($ <derivation-input> (= derivation-file-name path))
727 (string=? path (derivation-file-name (%guile-for-build))))) 729 (string=? path (derivation-file-name (%guile-for-build)))))
728 (derivation-prerequisites drv)))) 730 (derivation-prerequisites drv))))
729 731
@@ -740,7 +742,7 @@
740 (match (derivation-prerequisites c 742 (match (derivation-prerequisites c
741 (cut valid-derivation-input? %store 743 (cut valid-derivation-input? %store
742 <>)) 744 <>))
743 ((($ <derivation-input> file ("out"))) 745 ((($ <derivation-input> (= derivation-file-name file) ("out")))
744 (string=? file (derivation-file-name b))) 746 (string=? file (derivation-file-name b)))
745 (x 747 (x
746 (pk 'fail x #f))))) 748 (pk 'fail x #f)))))
@@ -804,17 +806,20 @@
804 ;; Ask for nothing but the "out" output of DRV. 806 ;; Ask for nothing but the "out" output of DRV.
805 (build-derivations store `((,drv . "out"))) 807 (build-derivations store `((,drv . "out")))
806 808
809 ;; Synonymous:
810 (build-derivations store (list (derivation-input drv '("out"))))
811
807 (valid-path? store out) 812 (valid-path? store out)
808 (equal? (pk 'x content) (pk 'y (call-with-input-file out get-string-all))) 813 (equal? (pk 'x content)
809 ))))) 814 (pk 'y (call-with-input-file out get-string-all))))))))
810 815
811(test-assert "build-expression->derivation and derivation-prerequisites-to-build" 816(test-assert "build-expression->derivation and derivation-build-plan"
812 (let ((drv (build-expression->derivation %store "fail" #f))) 817 (let ((drv (build-expression->derivation %store "fail" #f)))
813 ;; The only direct dependency is (%guile-for-build) and it's already 818 ;; The only direct dependency is (%guile-for-build) and it's already
814 ;; built. 819 ;; built.
815 (null? (derivation-prerequisites-to-build %store drv)))) 820 (null? (derivation-build-plan %store (derivation-inputs drv)))))
816 821
817(test-assert "derivation-prerequisites-to-build when outputs already present" 822(test-assert "derivation-build-plan when outputs already present"
818 (let* ((builder `(begin ,(random-text) (mkdir %output) #t)) 823 (let* ((builder `(begin ,(random-text) (mkdir %output) #t))
819 (input-drv (build-expression->derivation %store "input" builder)) 824 (input-drv (build-expression->derivation %store "input" builder))
820 (input-path (derivation->output-path input-drv)) 825 (input-path (derivation->output-path input-drv))
@@ -827,9 +832,12 @@
827 (valid-path? %store output)) 832 (valid-path? %store output))
828 (error "things already built" input-drv)) 833 (error "things already built" input-drv))
829 834
830 (and (equal? (map derivation-input-path 835 (and (lset= equal?
831 (derivation-prerequisites-to-build %store drv)) 836 (map derivation-file-name
832 (list (derivation-file-name input-drv))) 837 (derivation-build-plan %store
838 (list (derivation-input drv))))
839 (list (derivation-file-name input-drv)
840 (derivation-file-name drv)))
833 841
834 ;; Build DRV and delete its input. 842 ;; Build DRV and delete its input.
835 (build-derivations %store (list drv)) 843 (build-derivations %store (list drv))
@@ -838,9 +846,10 @@
838 846
839 ;; Now INPUT-PATH is missing, yet it shouldn't be listed as a 847 ;; Now INPUT-PATH is missing, yet it shouldn't be listed as a
840 ;; prerequisite to build because DRV itself is already built. 848 ;; prerequisite to build because DRV itself is already built.
841 (null? (derivation-prerequisites-to-build %store drv))))) 849 (null? (derivation-build-plan %store
850 (list (derivation-input drv)))))))
842 851
843(test-assert "derivation-prerequisites-to-build and substitutes" 852(test-assert "derivation-build-plan and substitutes"
844 (let* ((store (open-connection)) 853 (let* ((store (open-connection))
845 (drv (build-expression->derivation store "prereq-subst" 854 (drv (build-expression->derivation store "prereq-subst"
846 (random 1000))) 855 (random 1000)))
@@ -852,17 +861,19 @@
852 861
853 (with-derivation-narinfo drv 862 (with-derivation-narinfo drv
854 (let-values (((build download) 863 (let-values (((build download)
855 (derivation-prerequisites-to-build store drv)) 864 (derivation-build-plan store
865 (list (derivation-input drv))))
856 ((build* download*) 866 ((build* download*)
857 (derivation-prerequisites-to-build store drv 867 (derivation-build-plan store
858 #:substitutable-info 868 (list (derivation-input drv))
859 (const #f)))) 869 #:substitutable-info
870 (const #f))))
860 (and (null? build) 871 (and (null? build)
861 (equal? (map substitutable-path download) (list output)) 872 (equal? (map substitutable-path download) (list output))
862 (null? download*) 873 (null? download*)
863 (null? build*)))))) 874 (equal? (list drv) build*))))))
864 875
865(test-assert "derivation-prerequisites-to-build and substitutes, non-substitutable build" 876(test-assert "derivation-build-plan and substitutes, non-substitutable build"
866 (let* ((store (open-connection)) 877 (let* ((store (open-connection))
867 (drv (build-expression->derivation store "prereq-no-subst" 878 (drv (build-expression->derivation store "prereq-no-subst"
868 (random 1000) 879 (random 1000)
@@ -875,16 +886,16 @@
875 886
876 (with-derivation-narinfo drv 887 (with-derivation-narinfo drv
877 (let-values (((build download) 888 (let-values (((build download)
878 (derivation-prerequisites-to-build store drv))) 889 (derivation-build-plan store
890 (list (derivation-input drv)))))
879 ;; Despite being available as a substitute, DRV will be built locally 891 ;; Despite being available as a substitute, DRV will be built locally
880 ;; due to #:substitutable? #f. 892 ;; due to #:substitutable? #f.
881 (and (null? download) 893 (and (null? download)
882 (match build 894 (match build
883 (((? derivation-input? input)) 895 (((= derivation-file-name build))
884 (string=? (derivation-input-path input) 896 (string=? build (derivation-file-name drv)))))))))
885 (derivation-file-name drv)))))))))
886 897
887(test-assert "derivation-prerequisites-to-build and substitutes, local build" 898(test-assert "derivation-build-plan and substitutes, local build"
888 (with-store store 899 (with-store store
889 (let* ((drv (build-expression->derivation store "prereq-subst-local" 900 (let* ((drv (build-expression->derivation store "prereq-subst-local"
890 (random 1000) 901 (random 1000)
@@ -897,7 +908,8 @@
897 908
898 (with-derivation-narinfo drv 909 (with-derivation-narinfo drv
899 (let-values (((build download) 910 (let-values (((build download)
900 (derivation-prerequisites-to-build store drv))) 911 (derivation-build-plan store
912 (list (derivation-input drv)))))
901 ;; #:local-build? is *not* synonymous with #:substitutable?, so we 913 ;; #:local-build? is *not* synonymous with #:substitutable?, so we
902 ;; must be able to substitute DRV's output. 914 ;; must be able to substitute DRV's output.
903 ;; See <http://bugs.gnu.org/18747>. 915 ;; See <http://bugs.gnu.org/18747>.
@@ -906,7 +918,7 @@
906 (((= substitutable-path item)) 918 (((= substitutable-path item))
907 (string=? item (derivation->output-path drv)))))))))) 919 (string=? item (derivation->output-path drv))))))))))
908 920
909(test-assert "derivation-prerequisites-to-build in 'check' mode" 921(test-assert "derivation-build-plan in 'check' mode"
910 (with-store store 922 (with-store store
911 (let* ((dep (build-expression->derivation store "dep" 923 (let* ((dep (build-expression->derivation store "dep"
912 `(begin ,(random-text) 924 `(begin ,(random-text)
@@ -918,13 +930,13 @@
918 (delete-paths store (list (derivation->output-path dep))) 930 (delete-paths store (list (derivation->output-path dep)))
919 931
920 ;; In 'check' mode, DEP must be rebuilt. 932 ;; In 'check' mode, DEP must be rebuilt.
921 (and (null? (derivation-prerequisites-to-build store drv)) 933 (and (null? (derivation-build-plan store
922 (match (derivation-prerequisites-to-build store drv 934 (list (derivation-input drv))))
923 #:mode (build-mode 935 (lset= equal?
924 check)) 936 (derivation-build-plan store
925 ((input) 937 (list (derivation-input drv))
926 (string=? (derivation-input-path input) 938 #:mode (build-mode check))
927 (derivation-file-name dep)))))))) 939 (list drv dep))))))
928 940
929(test-assert "substitution-oracle and #:substitute? #f" 941(test-assert "substitution-oracle and #:substitute? #f"
930 (with-store store 942 (with-store store
diff --git a/tests/grafts.scm b/tests/grafts.scm
index e5356decc5e..a12c6a5911b 100644
--- a/tests/grafts.scm
+++ b/tests/grafts.scm
@@ -44,9 +44,6 @@
44(define %mkdir 44(define %mkdir
45 (bootstrap-binary "mkdir")) 45 (bootstrap-binary "mkdir"))
46 46
47(define make-derivation-input
48 (@@ (guix derivations) make-derivation-input))
49
50 47
51(test-begin "grafts") 48(test-begin "grafts")
52 49
@@ -355,16 +352,11 @@
355 (p1r-inputs (filter (match-input p1r) inputs)) 352 (p1r-inputs (filter (match-input p1r) inputs))
356 (p2-inputs (filter (match-input p2) inputs))) 353 (p2-inputs (filter (match-input p2) inputs)))
357 (and (equal? p1-inputs 354 (and (equal? p1-inputs
358 (list (make-derivation-input (derivation-file-name p1) 355 (list (derivation-input p1 '("one"))))
359 '("one"))))
360 (equal? p1r-inputs 356 (equal? p1r-inputs
361 (list 357 (list (derivation-input p1r '("ONE"))))
362 (make-derivation-input (derivation-file-name p1r)
363 '("ONE"))))
364 (equal? p2-inputs 358 (equal? p2-inputs
365 (list 359 (list (derivation-input p2 '("aaa"))))
366 (make-derivation-input (derivation-file-name p2)
367 '("aaa"))))
368 (derivation-output-names p2g)))))) 360 (derivation-output-names p2g))))))
369 361
370(test-assert "graft-derivation, renaming" ;<http://bugs.gnu.org/23132> 362(test-assert "graft-derivation, renaming" ;<http://bugs.gnu.org/23132>
diff --git a/tests/guix-daemon.sh b/tests/guix-daemon.sh
index ca46e34ce96..758f18cc368 100644
--- a/tests/guix-daemon.sh
+++ b/tests/guix-daemon.sh
@@ -196,7 +196,7 @@ done
196 196
197# Make sure garbage collection from a TCP connection does not work. 197# Make sure garbage collection from a TCP connection does not work.
198 198
199tcp_socket="127.0.0.1:9999" 199tcp_socket="127.0.0.1:9998"
200guix-daemon --listen="$tcp_socket" & 200guix-daemon --listen="$tcp_socket" &
201daemon_pid=$! 201daemon_pid=$!
202 202
diff --git a/tests/packages.scm b/tests/packages.scm
index bd100bea5be..0478fff237e 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -1244,6 +1244,38 @@
1244 (lambda (key . args) 1244 (lambda (key . args)
1245 key))) 1245 key)))
1246 1246
1247(test-equal "specification->package+output"
1248 `((,coreutils "out") (,coreutils "debug"))
1249 (list (call-with-values (lambda ()
1250 (specification->package+output "coreutils"))
1251 list)
1252 (call-with-values (lambda ()
1253 (specification->package+output "coreutils:debug"))
1254 list)))
1255
1256(test-equal "specification->package+output invalid output"
1257 'error
1258 (catch 'quit
1259 (lambda ()
1260 (specification->package+output "coreutils:does-not-exist"))
1261 (lambda _
1262 'error)))
1263
1264(test-equal "specification->package+output no default output"
1265 `(,coreutils #f)
1266 (call-with-values
1267 (lambda ()
1268 (specification->package+output "coreutils" #f))
1269 list))
1270
1271(test-equal "specification->package+output invalid output, no default"
1272 'error
1273 (catch 'quit
1274 (lambda ()
1275 (specification->package+output "coreutils:does-not-exist" #f))
1276 (lambda _
1277 'error)))
1278
1247(test-equal "find-package-locations" 1279(test-equal "find-package-locations"
1248 (map (lambda (package) 1280 (map (lambda (package)
1249 (cons (package-version package) 1281 (cons (package-version package)
diff --git a/tests/syscalls.scm b/tests/syscalls.scm
index 3e267c9f011..eeb223b9504 100644
--- a/tests/syscalls.scm
+++ b/tests/syscalls.scm
@@ -1,5 +1,5 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
3;;; Copyright © 2015 David Thompson <davet@gnu.org> 3;;; Copyright © 2015 David Thompson <davet@gnu.org>
4;;; 4;;;
5;;; This file is part of GNU Guix. 5;;; This file is part of GNU Guix.
@@ -538,6 +538,9 @@
538 (> (terminal-columns (open-input-string "Join us now, share the software!")) 538 (> (terminal-columns (open-input-string "Join us now, share the software!"))
539 0)) 539 0))
540 540
541(test-assert "terminal-rows"
542 (> (terminal-rows) 0))
543
541(test-assert "utmpx-entries" 544(test-assert "utmpx-entries"
542 (match (utmpx-entries) 545 (match (utmpx-entries)
543 (((? utmpx? entries) ...) 546 (((? utmpx? entries) ...)
diff --git a/tests/ui.scm b/tests/ui.scm
index 1e98e3534be..2138e23369b 100644
--- a/tests/ui.scm
+++ b/tests/ui.scm
@@ -1,5 +1,5 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
3;;; 3;;;
4;;; This file is part of GNU Guix. 4;;; This file is part of GNU Guix.
5;;; 5;;;
@@ -22,10 +22,12 @@
22 #:use-module (guix profiles) 22 #:use-module (guix profiles)
23 #:use-module (guix store) 23 #:use-module (guix store)
24 #:use-module (guix derivations) 24 #:use-module (guix derivations)
25 #:use-module ((gnu packages) #:select (specification->package))
25 #:use-module (guix tests) 26 #:use-module (guix tests)
26 #:use-module (srfi srfi-1) 27 #:use-module (srfi srfi-1)
27 #:use-module (srfi srfi-11) 28 #:use-module (srfi srfi-11)
28 #:use-module (srfi srfi-19) 29 #:use-module (srfi srfi-19)
30 #:use-module (srfi srfi-26)
29 #:use-module (srfi srfi-64) 31 #:use-module (srfi srfi-64)
30 #:use-module (ice-9 regex)) 32 #:use-module (ice-9 regex))
31 33
@@ -260,4 +262,27 @@ Second line" 24))
260 "ISO-8859-1") 262 "ISO-8859-1")
261 (show-manifest-transaction store m t)))))))) 263 (show-manifest-transaction store m t))))))))
262 264
265(test-assert "package-relevance"
266 (let ((guile (specification->package "guile"))
267 (gcrypt (specification->package "guile-gcrypt"))
268 (go (specification->package "go"))
269 (gnugo (specification->package "gnugo"))
270 (rx (cut make-regexp <> regexp/icase))
271 (>0 (cut > <> 0))
272 (=0 zero?))
273 (and (>0 (package-relevance guile
274 (map rx '("scheme"))))
275 (>0 (package-relevance guile
276 (map rx '("scheme" "implementation"))))
277 (>0 (package-relevance gcrypt
278 (map rx '("guile" "crypto"))))
279 (=0 (package-relevance guile
280 (map rx '("guile" "crypto"))))
281 (>0 (package-relevance go
282 (map rx '("go"))))
283 (=0 (package-relevance go
284 (map rx '("go" "game"))))
285 (>0 (package-relevance gnugo
286 (map rx '("go" "game")))))))
287
263(test-end "ui") 288(test-end "ui")