aboutsummaryrefslogtreecommitdiff
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)
downloadguix-5cc1075a76392666d3d733837f5c6252b1e48002.tar
guix-5cc1075a76392666d3d733837f5c6252b1e48002.tar.gz
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 4259ea523c..e9f3e957d9 100644
--- a/build-aux/compile-all.scm
+++ b/build-aux/compile-all.scm
@@ -91,20 +91,45 @@ to 'make'."
(match (command-line)
((_ . files)
- (compile-files srcdir (getcwd)
- (filter file-needs-compilation? files)
- #:workers (parallel-job-count)
- #:host host
- #:report-load (lambda (file total completed)
- (when file
- (format #t "[~3d%] LOAD ~a~%"
- (% (+ 1 completed) (* 2 total))
- file)
- (force-output)))
- #:report-compilation (lambda (file total completed)
- (when file
- (format #t "[~3d%] GUILEC ~a~%"
- (% (+ total completed 1)
- (* 2 total))
- (scm->go file))
- (force-output))))))
+ (catch #t
+ (lambda ()
+ (compile-files srcdir (getcwd)
+ (filter file-needs-compilation? files)
+ #:workers (parallel-job-count)
+ #:host host
+ #:report-load (lambda (file total completed)
+ (when file
+ (format #t "[~3d%] LOAD ~a~%"
+ (% (+ 1 completed) (* 2 total))
+ file)
+ (force-output)))
+ #:report-compilation (lambda (file total completed)
+ (when file
+ (format #t "[~3d%] GUILEC ~a~%"
+ (% (+ total completed 1)
+ (* 2 total))
+ (scm->go file))
+ (force-output)))))
+ (lambda _
+ (primitive-exit 1))
+ (lambda args
+ ;; Try to report the error in an intelligible way.
+ (let* ((stack (make-stack #t))
+ (frame (if (> (stack-length stack) 1)
+ (stack-ref stack 1) ;skip the 'throw' frame
+ (stack-ref stack 0)))
+ (ui (false-if-exception
+ (resolve-module '(guix ui))))
+ (report (and ui
+ (false-if-exception
+ (module-ref ui 'report-load-error)))))
+ (if report
+ ;; In Guile <= 2.2.5, 'current-load-port' was not exported.
+ (let ((load-port ((module-ref (resolve-module '(ice-9 ports))
+ 'current-load-port))))
+ (report (or (and=> load-port port-filename) "?.scm")
+ args frame))
+ (begin
+ (print-exception (current-error-port) frame
+ (car args) (cdr args))
+ (display-backtrace stack (current-error-port)))))))))
diff --git a/doc/guix.texi b/doc/guix.texi
index 1d57546ac5..888be1521f 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
Boot the USB installation image in an VM:
@example
-qemu-system-x86_64 -m 1024 -smp 1 \
+qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm \
-net user -net nic,model=virtio -boot menu=on \
-drive file=guix-system-install-@value{VERSION}.@var{system}.iso \
-drive file=guixsd.img
@end example
-The ordering of the drives matters.
+The ordering of the drives matters. @code{-enable-kvm} is optional, but
+significantly improves performance, @pxref{Running Guix in a VM}.
In the VM console, quickly press the @kbd{F12} key to enter the boot
menu. 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
provided by currently active connections.
@item dnsmasq
-NetworkManager will run @code{dnsmasq} as a local caching nameserver,
-using a "split DNS" configuration if you are connected to a VPN, and
+NetworkManager will run @code{dnsmasq} as a local caching nameserver, using a
+@dfn{conditional forwarding} configuration if you are connected to a VPN, and
then update @code{resolv.conf} to point to the local nameserver.
+With this setting, you can share your network connection. For example when
+you want to share your network connection to another laptop @i{via} an
+Ethernet cable, you can open @command{nm-connection-editor} and configure the
+Wired connection's method for IPv4 and IPv6 to be ``Shared to other computers''
+and reestablish the connection (or reboot).
+
+You can also set up a @dfn{host-to-guest connection} to QEMU VMs
+(@pxref{Installing Guix in a VM}). With a host-to-guest connection, you can
+e.g.@: access a Web server running on the VM (@pxref{Web Services}) from a Web
+browser on your host system, or connect to the VM @i{via} SSH
+(@pxref{Networking Services, @code{openssh-service-type}}). To set up a
+host-to-guest connection, run this command once:
+
+@example
+nmcli connection add type tun \
+ connection.interface-name tap0 \
+ tun.mode tap tun.owner $(id -u) \
+ ipv4.method shared \
+ ipv4.addresses 172.28.112.1/24
+@end example
+
+Then each time you launch your QEMU VM (@pxref{Running Guix in a VM}), pass
+@option{-nic tap,ifname=tap0,script=no,downscript=no} to
+@command{qemu-system-...}.
+
@item none
NetworkManager will not modify @code{resolv.conf}.
@end table
diff --git a/gnu/build/accounts.scm b/gnu/build/accounts.scm
index b90149565f..5094456ab1 100644
--- a/gnu/build/accounts.scm
+++ b/gnu/build/accounts.scm
@@ -19,7 +19,6 @@
(define-module (gnu build accounts)
#:use-module (guix records)
#:use-module (guix combinators)
- #:use-module ((guix build syscalls) #:select (fdatasync))
#:use-module (gnu system accounts)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
@@ -231,14 +230,6 @@ each field."
;; grab this lock with 'with-file-lock' when they access the databases.
"/etc/.pwd.lock")
-(define-syntax-rule (catch-ENOSYS exp)
- (catch 'system-error
- (lambda () exp)
- (lambda args
- (if (= ENOSYS (system-error-errno args))
- #f
- (apply throw args)))))
-
(define (database-writer file mode entry->string)
(lambda* (entries #:optional (file-or-port file))
"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."
(chmod port mode)
(write-entries port)
- ;; XXX: When booting with the statically-linked Guile,
- ;; 'fdatasync' is unavailable.
- (catch-ENOSYS (fdatasync port))
-
+ (fsync port)
(close-port port)
(rename-file template file-or-port))
(lambda ()
diff --git a/gnu/build/linux-container.scm b/gnu/build/linux-container.scm
index 3d7b52f098..e86ac606c0 100644
--- a/gnu/build/linux-container.scm
+++ b/gnu/build/linux-container.scm
@@ -22,7 +22,6 @@
#:use-module (ice-9 match)
#:use-module (ice-9 rdelim)
#:use-module (srfi srfi-98)
- #:use-module (guix utils)
#:use-module (guix build utils)
#:use-module (guix build syscalls)
#:use-module (gnu system file-systems) ;<file-system>
@@ -279,6 +278,21 @@ that host UIDs (respectively GIDs) map to in the namespace."
(_ ;unexpected termination
#f)))))))))
+;; FIXME: This is copied from (guix utils), which we cannot use because it
+;; would pull (guix config) and all.
+(define (call-with-temporary-directory proc)
+ "Call PROC with a name of a temporary directory; close the directory and
+delete it when leaving the dynamic extent of this call."
+ (let* ((directory (or (getenv "TMPDIR") "/tmp"))
+ (template (string-append directory "/guix-directory.XXXXXX"))
+ (tmp-dir (mkdtemp! template)))
+ (dynamic-wind
+ (const #t)
+ (lambda ()
+ (proc tmp-dir))
+ (lambda ()
+ (false-if-exception (delete-file-recursively tmp-dir))))))
+
(define* (call-with-container mounts thunk #:key (namespaces %namespaces)
(host-uids 1) (guest-uid 0) (guest-gid 0))
"Run THUNK in a new container process and return its exit status.
diff --git a/gnu/local.mk b/gnu/local.mk
index d375b8cd1d..f90d0cf402 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -20,6 +20,7 @@
# Copyright © 2018, 2019 Oleg Pykhalov <go.wigust@gmail.com>
# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
# Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+# Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
#
# This file is part of GNU Guix.
#
@@ -195,6 +196,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/gcc.scm \
%D%/packages/gd.scm \
%D%/packages/gdb.scm \
+ %D%/packages/genealogy.scm \
%D%/packages/genimage.scm \
%D%/packages/geo.scm \
%D%/packages/gettext.scm \
@@ -956,7 +958,6 @@ dist_patch_DATA = \
%D%/packages/patches/java-xerces-xjavac_taskdef.patch \
%D%/packages/patches/jbig2dec-ignore-testtest.patch \
%D%/packages/patches/kdbusaddons-kinit-file-name.patch \
- %D%/packages/patches/khmer-use-libraries.patch \
%D%/packages/patches/libziparchive-add-includes.patch \
%D%/packages/patches/localed-xorg-keyboard.patch \
%D%/packages/patches/kiki-level-selection-crash.patch \
@@ -978,9 +979,14 @@ dist_patch_DATA = \
%D%/packages/patches/kodi-set-libcurl-ssl-parameters.patch \
%D%/packages/patches/kodi-skip-test-449.patch \
%D%/packages/patches/laby-make-install.patch \
+ %D%/packages/patches/lcalc-default-parameters-1.patch \
+ %D%/packages/patches/lcalc-default-parameters-2.patch \
+ %D%/packages/patches/lcalc-lcommon-h.patch \
+ %D%/packages/patches/lcalc-using-namespace-std.patch \
%D%/packages/patches/lcms-CVE-2018-16435.patch \
%D%/packages/patches/ldc-bootstrap-disable-tests.patch \
%D%/packages/patches/ldc-disable-phobos-tests.patch \
+ %D%/packages/patches/leela-zero-gtest.patch \
%D%/packages/patches/liba52-enable-pic.patch \
%D%/packages/patches/liba52-link-with-libm.patch \
%D%/packages/patches/liba52-set-soname.patch \
@@ -1040,6 +1046,7 @@ dist_patch_DATA = \
%D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \
%D%/packages/patches/llvm-for-extempore.patch \
%D%/packages/patches/lm-sensors-hwmon-attrs.patch \
+ %D%/packages/patches/lrcalc-includes.patch \
%D%/packages/patches/lrzip-CVE-2017-8842.patch \
%D%/packages/patches/lua-CVE-2014-5461.patch \
%D%/packages/patches/lua-pkgconfig.patch \
@@ -1208,6 +1215,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-mox3-python3.6-compat.patch \
%D%/packages/patches/python-testtools.patch \
%D%/packages/patches/python-paste-remove-timing-test.patch \
+ %D%/packages/patches/python-pyatspi-python-37.patch \
%D%/packages/patches/python-pycrypto-CVE-2013-7459.patch \
%D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
%D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
diff --git a/gnu/packages.scm b/gnu/packages.scm
index 2d7622d397..47e4f473b5 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:
guile@2.0.9:debug
If SPEC does not specify a version number, return the preferred newest
-version; if SPEC does not specify an output, return OUTPUT."
+version; if SPEC does not specify an output, return OUTPUT.
+
+When OUTPUT is false and SPEC does not specify any output, return #f as the
+output."
(let-values (((name version sub-drv)
(package-specification->name+version+output spec output)))
(match (%find-package spec name version)
(#f
(values #f #f))
(package
- (if (member sub-drv (package-outputs package))
+ (if (or (and (not output) (not sub-drv))
+ (member sub-drv (package-outputs package)))
(values package sub-drv)
(leave (G_ "package `~a' lacks output `~a'~%")
(package-full-name package)
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index c6ed4c6d4a..3d8c247f57 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -2251,7 +2251,7 @@ produce uniform output across heterogeneous networks.")
(define-public cbatticon
(package
(name "cbatticon")
- (version "1.6.8")
+ (version "1.6.9")
(source
(origin
(method git-fetch)
@@ -2259,7 +2259,7 @@ produce uniform output across heterogeneous networks.")
(url "https://github.com/valr/cbatticon.git")
(commit version)))
(sha256
- (base32 "16g26vin1693dbdr9qsnw36fdchx394lp79gvp7gcbw0w1ny9av6"))
+ (base32 "0kw09d678sd3m18fmi4380sl4a2m5lkfmq0kps16cdmq7z80rvaf"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 561347ad98..95189401f7 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -1333,47 +1333,6 @@ multiplication algorithm.")
(license license:gpl2+)
(home-page "https://bitbucket.org/malb/m4ri/")))
-(define-public ratpoints
- (package
- (name "ratpoints")
- (version "2.1.3")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "http://www.mathe2.uni-bayreuth.de/stoll/programs/"
- "ratpoints-" version ".tar.gz"))
- (sha256
- (base32
- "0zhad84sfds7izyksbqjmwpfw4rvyqk63yzdjd3ysd32zss5bgf4"))
- (patches
- ;; Taken from
- ;; <https://git.sagemath.org/sage.git/plain/build/pkgs/ratpoints/patches/>
- (search-patches "ratpoints-sturm_and_rp_private.patch"))))
- (build-system gnu-build-system)
- (arguments
- `(#:test-target "test"
- #:make-flags
- (list (string-append "INSTALL_DIR=" (assoc-ref %outputs "out")))
- #:phases
- (modify-phases %standard-phases
- (delete 'configure) ;no configure script
- (add-before 'install 'create-install-directories
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (mkdir-p out)
- (with-directory-excursion out
- (for-each (lambda (d) (mkdir-p d))
- '("bin" "include" "lib"))))
- #t)))))
- (inputs
- `(("gmp" ,gmp)))
- (home-page "http://www.mathe2.uni-bayreuth.de/stoll/programs/")
- (synopsis "Find rational points on hyperelliptic curves")
- (description "Ratpoints tries to find all rational points within
-a given height bound on a hyperelliptic curve in a very efficient way,
-by using an optimized quadratic sieve algorithm.")
- (license license:gpl2+)))
-
(define-public symmetrica
(package
(name "symmetrica")
@@ -1400,7 +1359,7 @@ by using an optimized quadratic sieve algorithm.")
(add-after 'unpack 'fix-makefile
(lambda _
(substitute* "makefile"
- (("cc -c") "gcc -c"))
+ (("cc -c") "gcc -c -fPIC"))
#t))
(add-after 'fix-makefile 'turn-off-banner
(lambda _
@@ -1503,7 +1462,8 @@ John Cremona to compute his elliptic curve database.")
(file-name (git-file-name name version))
(sha256
(base32
- "1c12d04jdyxkkav4ak8d1aqrv594gzihwhpxvc6p9js0ry1fahss"))))
+ "1c12d04jdyxkkav4ak8d1aqrv594gzihwhpxvc6p9js0ry1fahss"))
+ (patches (search-patches "lrcalc-includes.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
@@ -1547,6 +1507,7 @@ structure constants of Schubert polynomials.")
(arguments
`(#:configure-flags
(list
+ "--enable-shared"
(string-append "--with-gmp-include="
(assoc-ref %build-inputs "gmp") "/include")
(string-append "--with-gmp-lib="
diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index 8ab5377537..3c7ef447f3 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -90,6 +91,17 @@ use their packages mostly unmodified in our Android NDK build system.")
(define-public android-googletest
(package (inherit googletest)
(name "android-googletest")
+ (version "1.8.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/google/googletest.git")
+ (commit (string-append "release-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0bjlljmbf8glnd9qjabx73w6pd7ibv43yiyngqvmvgxsabzr8399"))))
(arguments
`(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")
#:phases
diff --git a/gnu/packages/apl.scm b/gnu/packages/apl.scm
index 88150dc4d0..badec04333 100644
--- a/gnu/packages/apl.scm
+++ b/gnu/packages/apl.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -25,25 +25,27 @@
#:use-module (guix build-system gnu)
#:use-module (gnu packages gettext)
#:use-module (gnu packages maths)
+ #:use-module (gnu packages pcre)
#:use-module (gnu packages readline)
#:use-module (gnu packages sqlite))
(define-public apl
(package
(name "apl")
- (version "1.7")
+ (version "1.8")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/apl/apl-" version ".tar.gz"))
(sha256
(base32
- "07xq8ddlmz8psvsmwr23gar108ri0lwmw0n6kpxcv8ypas1f5xlg"))))
+ "1jxvv2h3y1am1fw6r5sn3say1n0dj8shmscbybl0qhqdia2lqkql"))))
(build-system gnu-build-system)
(home-page "https://www.gnu.org/software/apl/")
(inputs
`(("gettext" ,gettext-minimal)
("lapack" ,lapack)
+ ("pcre" ,pcre2)
("sqlite" ,sqlite)
("readline" ,readline)))
(arguments
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 9ddb9e1d52..81c7481e0b 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019 by Amar Singh <nly@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,17 +23,27 @@
#:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (gnu packages autotools)
#:use-module (gnu packages image)
#:use-module (gnu packages compression)
#:use-module (gnu packages gettext)
+ #:use-module (gnu packages version-control)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages xiph)
+ #:use-module (gnu packages pretty-print)
+ #:use-module (gnu packages algebra)
+ #:use-module (gnu packages lua)
#:use-module (gnu packages perl)
#:use-module (gnu packages gl)
#:use-module (gnu packages qt)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages gnome)
#:use-module (gnu packages maths)
#:use-module (guix build-system cmake)
- #:use-module (guix build-system gnu))
+ #:use-module (guix build-system gnu)
+ #:use-module (srfi srfi-1))
(define-public cfitsio
(package
@@ -133,15 +144,15 @@ programs for the manipulation and analysis of astronomical data.")
(define-public stellarium
(package
(name "stellarium")
- (version "0.19.0")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/Stellarium/" name
- "/releases/download/v" version
- "/" name "-" version ".tar.gz"))
- (sha256
- (base32
- "1mjjqcpgm5a1022x0mpqj3v6qkvpm9wqm1hqyg0mlypc5681va8a"))))
+ (version "0.19.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/Stellarium/stellarium"
+ "/releases/download/v" version
+ "/stellarium-" version ".tar.gz"))
+ (sha256
+ (base32 "0s7v5iyhah258k83kvy2a91a3mdf34r150lcar4mmdsrrcmas98g"))))
(build-system cmake-build-system)
(inputs
`(("qtbase" ,qtbase)
@@ -151,9 +162,9 @@ programs for the manipulation and analysis of astronomical data.")
("qtserialport" ,qtserialport)
("zlib" ,zlib)))
(native-inputs
- `(("gettext" ,gettext-minimal) ; xgettext is used at compile time
- ("perl" ,perl) ; For pod2man
- ("qtbase" ,qtbase) ; Qt MOC is needed at compile time
+ `(("gettext" ,gettext-minimal) ; xgettext is used at compile time
+ ("perl" ,perl) ; For pod2man
+ ("qtbase" ,qtbase) ; Qt MOC is needed at compile time
("qttools" ,qttools)))
(arguments
`(#:test-target "test"
@@ -176,3 +187,65 @@ programs for the manipulation and analysis of astronomical data.")
can be used to control telescopes over a serial port for tracking celestial
objects.")
(license license:gpl2+)))
+
+(define-public celestia
+ (let ((commit "9dbdf29c4ac3d20afb2d9a80d3dff241ecf81dce"))
+ (package
+ (name "celestia")
+ (version (git-version "1.6.1" "815" commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/celestiaproject/celestia")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "00xibg87l1arzifakgj7s828x9pszcgx7x7ij88a561ig49ryh78"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("perl" ,perl)
+ ("libgit2" ,libgit2)
+ ("pkg-config" ,pkg-config)
+ ("libtool" ,libtool)
+ ("gettext" ,gettext-minimal)))
+ (inputs
+ `(("glu" ,glu)
+ ("glew" ,glew)
+ ("libtheora" ,libtheora)
+ ("libjpeg" ,libjpeg)
+ ("libpng" ,libpng)
+ ;; maybe required?
+ ("mesa" ,mesa)
+ ;; optional: fmtlib, Eigen3;
+ ("fmt" ,fmt)
+ ("eigen" ,eigen)
+ ;; glut: for glut interface
+ ("freeglut" ,freeglut)))
+ (propagated-inputs
+ `(("lua" ,lua)))
+ (arguments
+ `(#:configure-flags '("-DENABLE_GLUT=ON" "-DENABLE_QT=OFF")
+ #:tests? #f)) ;no tests
+ (home-page "https://celestia.space/")
+ (synopsis "Real-time 3D visualization of space")
+ (description
+ "This simulation program lets you explore our universe in three
+dimensions. Celestia simulates many different types of celestial objects.
+From planets and moons to star clusters and galaxies, you can visit every
+object in the expandable database and view it from any point in space and
+time. The position and movement of solar system objects is calculated
+accurately in real time at any rate desired.")
+ (license license:gpl2+))))
+
+(define-public celestia-gtk
+ (package
+ (inherit celestia)
+ (name "celestia-gtk")
+ (inputs
+ (append (alist-delete "freeglut" (package-inputs celestia))
+ `(("gtk2" ,gtk+-2)
+ ("gtkglext" ,gtkglext))))
+ (arguments
+ `(#:configure-flags '("-DENABLE_GTK=ON" "-DENABLE_QT=OFF")
+ #:tests? #f))))
diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index 31c9a8b0cf..d3abeec6e6 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2015, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -274,13 +275,16 @@ without modification.")
`(#:phases (modify-phases %standard-phases
(add-after
'install 'remove-redundant-completions
- (lambda* (#:key inputs outputs #:allow-other-keys)
+ (lambda* (#:key
+ inputs native-inputs
+ outputs #:allow-other-keys)
;; Util-linux comes with a bunch of completion files for
;; its own commands which are more sophisticated and
;; up-to-date than those of bash-completion. Remove those
;; from bash-completion.
(let* ((out (assoc-ref outputs "out"))
- (util-linux (assoc-ref inputs "util-linux"))
+ (util-linux (assoc-ref (or native-inputs inputs)
+ "util-linux"))
(completions (string-append out
"/share/bash-completion"
"/completions"))
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index a1f7b2d2a8..92f2e4f3ab 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
visualize the intersection of genomic sites/regions with genomic
annotations.")
(license license:gpl3)))
+
+(define-public r-rsubread
+ (package
+ (name "r-rsubread")
+ (version "1.34.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "Rsubread" version))
+ (sha256
+ (base32
+ "0bsrw61wcav0q22c5m6gr0vn1f3c3ld8gxj730wcab6dj196z6q3"))))
+ (properties `((upstream-name . "Rsubread")))
+ (build-system r-build-system)
+ (inputs `(("zlib" ,zlib)))
+ (home-page "https://bioconductor.org/packages/Rsubread/")
+ (synopsis "Subread sequence alignment and counting for R")
+ (description
+ "This package provides tools for alignment, quantification and analysis
+of second and third generation sequencing data. It includes functionality for
+read mapping, read counting, SNP calling, structural variant detection and
+gene fusion discovery. It can be applied to all major sequencing techologies
+and to both short and long sequence reads.")
+ (license license:gpl3)))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index f1a73bca7e..4f4d3d9839 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}.")
(define-public khmer
(package
(name "khmer")
- (version "2.1.2")
+ (version "3.0.0a3")
(source
(origin
(method git-fetch)
@@ -4178,8 +4178,7 @@ command, or queried for specific k-mers with @code{jellyfish query}.")
(file-name (git-file-name name version))
(sha256
(base32
- "02x38d9jw2r58y8dmnj4hffy9wxv1yc1jwbvdbhby9dxndv94r9m"))
- (patches (search-patches "khmer-use-libraries.patch"))
+ "01l4jczglkl7yfhgvzx8j0df7k54bk1r8sli9ll16i1mis0d8f37"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -4192,6 +4191,12 @@ command, or queried for specific k-mers with @code{jellyfish query}.")
;; https://lists.gnu.org/archive/html/guix-devel/2016-06/msg00977.html
(delete-file-recursively "third-party/zlib")
(delete-file-recursively "third-party/bzip2")
+ (delete-file-recursively "third-party/seqan")
+ (substitute* "setup.cfg"
+ (("# libraries = z,bz2")
+ "libraries = z,bz2")
+ (("include:third-party/zlib:third-party/bzip2")
+ "include:"))
#t))))
(build-system python-build-system)
(arguments
@@ -4208,6 +4213,7 @@ command, or queried for specific k-mers with @code{jellyfish query}.")
(inputs
`(("zlib" ,zlib)
("bzip2" ,bzip2)
+ ("seqan" ,seqan-1)
("python-screed" ,python-screed)
("python-bz2file" ,python-bz2file)))
(home-page "https://khmer.readthedocs.org/")
diff --git a/gnu/packages/calcurse.scm b/gnu/packages/calcurse.scm
index 559688470e..c28f1f5554 100644
--- a/gnu/packages/calcurse.scm
+++ b/gnu/packages/calcurse.scm
@@ -30,14 +30,14 @@
(define-public calcurse
(package
(name "calcurse")
- (version "4.4.0")
+ (version "4.5.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://calcurse.org/files/calcurse-"
version ".tar.gz"))
(sha256
- (base32 "0vw2xi6a2lrhrb8n55zq9lv4mzxhby4xdf3hmi1vlfpyrpdwkjzd"))))
+ (base32 "1vjwcmp51h7dsvwn0qx93w9chp3wp970v7d9mjhk7jyamcbfywn3"))))
(build-system gnu-build-system)
(inputs `(("ncurses" ,ncurses)))
(native-inputs `(("tzdata" ,tzdata-for-tests)))
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 284670af6b..2991916431 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.")
(home-page "https://github.com/smartystreets/goconvey")
(license license:expat)))
-;; XXX When updating, check whether ZNC's GOOGLETEST-SOURCES can be
-;; switched back to simply using (PACKAGE-SOURCE ...).
(define-public googletest
(package
(name "googletest")
- (version "1.8.0")
+ (version "1.8.1")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/google/googletest.git")
- (commit (string-append "release-" version))))
+ (url "https://github.com/google/googletest.git")
+ (commit (string-append "release-" version))))
(file-name (git-file-name name version))
(sha256
- (base32
- "0bjlljmbf8glnd9qjabx73w6pd7ibv43yiyngqvmvgxsabzr8399"))))
+ (base32 "0270msj6n7mggh4xqqjp54kswbl7mkcc8px1p5dqdpmw5ngh9fzk"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index a1e40b9ba0..e357556956 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -755,6 +755,11 @@ from forcing GEXP-PROMISE."
("udev" ,eudev)
("valgrind" ,valgrind)
("vulkan-headers" ,vulkan-headers)))
+
+ ;; Building Chromium with a single core takes around 6 hours on an x86_64
+ ;; system. Give some leeway for slower or busy machines.
+ (properties '((timeout . 64800))) ;18 hours
+
(home-page "https://github.com/Eloston/ungoogled-chromium")
(description
"Ungoogled-Chromium is the Chromium web browser, with some functionality
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index f4966276a0..db27110645 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -35,6 +35,7 @@
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
+;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -272,14 +273,14 @@ mapping from string keys to string values.")
(define-public memcached
(package
(name "memcached")
- (version "1.5.14")
+ (version "1.5.16")
(source
(origin
(method url-fetch)
(uri (string-append
"https://memcached.org/files/memcached-" version ".tar.gz"))
(sha256
- (base32 "1agj198rm5kc64z8qxck65kdzvw30pdfxalygipnryw0lwlxynww"))))
+ (base32 "0nnccb697jhdn5gqrh3phibzs6xr4nf4ryv7nmyv5vf11n4jr8j5"))))
(build-system gnu-build-system)
(inputs
`(("libevent" ,libevent)
@@ -846,6 +847,19 @@ TIMESTAMP. It also supports storage of binary large objects, including
pictures, sounds, or video.")
(license (license:x11-style "file://COPYRIGHT"))))
+(define-public postgresql-11
+ (package
+ (inherit postgresql)
+ (name "postgresql")
+ (version "11.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://ftp.postgresql.org/pub/source/v"
+ version "/postgresql-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "12ycjlqncijgmd5z078ybwda8ilas96lc7nxxmdq140mzpgjv002"))))))
+
(define-public postgresql-9.6
(package
(inherit postgresql)
@@ -2150,13 +2164,13 @@ etc., and an SQL engine for performing simple SQL queries.")
(define-public python-lmdb
(package
(name "python-lmdb")
- (version "0.94")
+ (version "0.95")
(source (origin
(method url-fetch)
(uri (pypi-uri "lmdb" version))
(sha256
(base32
- "1zh38gvkqw1jm5105if6rr7ccbgyxr7k2rm5ygb9ab3bq82pyaww"))
+ "0nx9f193gzl33r1lbqhb96h1igya7pz8wmahr8m9x5zgc05hal91"))
(modules '((guix build utils)))
(snippet
;; Delete bundled lmdb source files.
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 778529436b..06f4430b2d 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -439,15 +439,16 @@ a card with a smaller capacity than stated.")
(define-public python-parted
(package
(name "python-parted")
- (version "3.11.1")
+ (version "3.11.2")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/dcantrell/pyparted/archive/v"
- version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dcantrell/pyparted.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "0r1nyjj40nacnfnv17x2mnsj6ga1qplyxyza82v2809dfhim2fwq"))))
+ (base32 "0r6916n3w4vldxrq30a3z2iagvxgly4vfmlidjm65vwqnyv17bvn"))))
(build-system python-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 176aa90eab..34f56d8340 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.")
(define-public emacs-with-editor
(package
(name "emacs-with-editor")
- (version "2.8.0")
+ (version "2.8.3")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -245,7 +245,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
(file-name (git-file-name name version))
(sha256
(base32
- "1bbzvxnjpxqyvi808isld025b3pcidn4r2xf8hnk9bmzcfdvdr6q"))))
+ "1z2h9casyw1b93ikq2mf9xixyvbl90zddf0s66lqfiyj2y376pq3"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash" ,emacs-dash)))
@@ -3151,7 +3151,7 @@ build jobs.")
(define-public emacs-company
(package
(name "emacs-company")
- (version "0.9.7")
+ (version "0.9.10")
(source
(origin
(method git-fetch)
@@ -3160,7 +3160,7 @@ build jobs.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1gpapjxs4l6fmmj22q0q1pyhj1yd9j5iqfqnjf1abskkj69lqkpj"))))
+ (base32 "0shmv48bq9l5xm60dwx9lqyq6b39y3d7qjxdlah7dpipv5vhra42"))))
(build-system emacs-build-system)
(arguments
`(#:phases
@@ -4180,7 +4180,7 @@ them easier to distinguish from other, less important buffers.")
(define-public emacs-prescient
(package
(name "emacs-prescient")
- (version "2.2.2")
+ (version "3.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -4189,7 +4189,7 @@ them easier to distinguish from other, less important buffers.")
(file-name (git-file-name name version))
(sha256
(base32
- "1ncplx5p3cffyzg9ygzqqxj0vpvwrz9rp2n4z6c375a78fyydrk0"))))
+ "1cdjvlwlvxxazz7hlxgvdp0pznvj1gzqa2r6k4im0cpdrnnng6j6"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-company" ,emacs-company)
@@ -4615,29 +4615,34 @@ use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
(license license:gpl3+))))
(define-public emacs-ivy-rich
- (package
- (name "emacs-ivy-rich")
- (version "0.1.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/Yevgnen/ivy-rich.git")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0ayf3dwfhafcbqnckm65zy8nc1rv9ji939qfn53wbhxkrgqdicgz"))))
- (build-system emacs-build-system)
- (propagated-inputs
- `(("emacs-ivy" ,emacs-ivy)))
- (home-page "https://github.com/Yevgnen/ivy-rich")
- (synopsis "More friendly interface for @code{ivy}")
- (description
- "This package extends @code{ivy} by showing more information in the
+ ;; The latest release version has a small mistake that has since been fixed,
+ ;; so we use a more recent commit.
+ (let ((commit "f6bfa293c6df0b43cc411876b665816ec3f03d08")
+ (version "0.1.4")
+ (revision "1"))
+ (package
+ (name "emacs-ivy-rich")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Yevgnen/ivy-rich.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1s8nwwb1z6lkc58g02pi8w99qms948k8d02lw8k8cq47dw87i219"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-ivy" ,emacs-ivy)))
+ (home-page "https://github.com/Yevgnen/ivy-rich")
+ (synopsis "More friendly interface for @code{ivy}")
+ (description
+ "This package extends @code{ivy} by showing more information in the
minibuffer for each candidate. It adds columns showing buffer modes, file
sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
show icons as well.")
- (license license:gpl3+)))
+ (license license:gpl3+))))
(define-public emacs-avy
(package
@@ -5105,15 +5110,16 @@ strings, and code folding.")
(define-public emacs-nodejs-repl
(package
(name "emacs-nodejs-repl")
- (version "0.2.0")
+ (version "0.2.1")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/abicky/nodejs-repl.el"
- "/archive/" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/abicky/nodejs-repl.el")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0hq2cqdq2668yf48g7qnkci90nhih1gnhacsgz355jnib56lhmkz"))
- (file-name (string-append name "-" version ".tar.gz"))))
+ "05ccv87rnw7fss3lib8m9sywjrj6n92fnd7mmhmjh27g2klqc83z"))))
(build-system emacs-build-system)
(home-page "https://github.com/abicky/nodejs-repl.el")
(synopsis "Node.js REPL inside Emacs")
@@ -5133,14 +5139,14 @@ features:
(name "emacs-typescript-mode")
(version "0.3")
(source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/ananthakumaran/typescript.el"
- "/archive/v" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ananthakumaran/typescript.el")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1gqjirm8scf0wysm7x97zdfbs4qa5nqdl64jfbkd18iskv5mg3rj"))
- (file-name (string-append name "-" version ".tar.gz"))))
+ "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh"))))
(build-system emacs-build-system)
(home-page "https://github.com/ananthakumaran/typescript.el")
(synopsis "Emacs major mode for editing Typescript code")
@@ -5160,13 +5166,14 @@ indentation and filling of comments and C preprocessor fontification.")
(name "emacs-tide")
(version "3.2.3")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/ananthakumaran/tide"
- "/archive/v" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ananthakumaran/tide")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1c600myr2yqbkmy9lify38lz0zzjdqk1733db5n7vsay16vn6fzi"))
- (file-name (string-append name "-" version ".tar.gz"))))
+ "19kjq4kr2j853p5qp1s79zxmrfprli82lsnphbrlp9vbnib28xyd"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash" ,emacs-dash)
@@ -5761,14 +5768,14 @@ Dust.js, React/JSX, Angularjs, ejs, etc.")
(name "emacs-wgrep")
(version "2.3.0")
(source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/mhayashi1120/Emacs-wgrep/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mhayashi1120/Emacs-wgrep")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1cssqbg03fjb6xwf7idv1l3jjsh9r5r232ryi11czqlxfiv658bj"))))
+ "0pgyf9vfcahb495q01hi1mvkmv846w4rj6zyf52is8x7sjj7x44s"))))
(build-system emacs-build-system)
(home-page "https://github.com/mhayashi1120/Emacs-wgrep")
(synopsis "Edit a grep buffer and apply those changes to the files")
@@ -6760,7 +6767,7 @@ notifications.")
(define-public emacs-alert
(package
(name "emacs-alert")
- (version "1.2")
+ (version "1.3")
(source
(origin
(method git-fetch)
@@ -6769,7 +6776,7 @@ notifications.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1vpc3q40m6dcrslki4bg725j4kv6c6xfxwjjl1ilg7la49fwwf26"))))
+ (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-gntp" ,emacs-gntp)
@@ -6783,8 +6790,8 @@ customizable by the user.")
(license license:gpl2+)))
(define-public emacs-zones
- (let ((commit "353fc38a6544eb59887bee045e373406f1d038a5")
- (revision "1"))
+ (let ((commit "3169815c323966ff8e252b44e3558d6d045243fe")
+ (revision "2"))
(package
(name "emacs-zones")
(version (git-version "0" revision commit))
@@ -6797,7 +6804,7 @@ customizable by the user.")
(file-name (git-file-name name version))
(sha256
(base32
- "0gwnw2giii2a14nlh62xp45f47cw6ikqphhzpmcw6c7mn9x5z2ar"))
+ "039msns5596rz0my7fxpanpxwg1lkhpiibm9ppnlzaajx1hszbzl"))
(patches
(search-patches
"emacs-zones-called-interactively.patch"))))
@@ -7589,15 +7596,17 @@ and cangjie.")
(define-public emacs-posframe
(package
(name "emacs-posframe")
- (version "0.4.2")
+ (version "0.5.0")
(source
(origin
- (method url-fetch)
- (uri (string-append
- "https://elpa.gnu.org/packages/posframe-" version ".el"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tumashu/posframe")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1h8vvxvsg41vc1nnglqjs2q0k1yzfsn72skga9s76qa3zxmx6kds"))))
+ "1fhjxj7gi2pj5rdnmf0gddiwd8iifgjgjp01c01npz1gwwixyqh3"))))
(build-system emacs-build-system)
;; emacs-minimal does not include the function font-info
(arguments `(#:emacs ,emacs))
@@ -7878,6 +7887,37 @@ other operations.")
on mouse-control.")
(license license:gpl3+)))
+(define-public emacs-gnugo
+ (package
+ (name "emacs-gnugo")
+ (version "3.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
+ version ".tar"))
+ (sha256
+ (base32
+ "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1"))))
+ (build-system emacs-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'configure-default-gnugo-xpms-variable
+ (lambda _
+ (substitute* "gnugo.el"
+ (("defvar gnugo-xpms nil")
+ "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
+ #t)))))
+ (propagated-inputs
+ `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
+ ("emacs-xpm" ,emacs-xpm)))
+ (home-page "https://elpa.gnu.org/packages/gnugo.html")
+ (synopsis "Emacs major mode for playing GNU Go")
+ (description "This package provides an Emacs based interface for GNU Go.
+It has a graphical mode where the board and stones are drawn using XPM images
+and supports the use of a mouse.")
+ (license license:gpl3+)))
+
(define-public emacs-gnuplot
(package
(name "emacs-gnuplot")
@@ -7962,20 +8002,20 @@ pressed simultaneously or a single key quickly pressed twice.")
(define-public emacs-evil-surround
(package
(name "emacs-evil-surround")
- (version "1.0.0")
+ (version "1.0.4")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/timcharper/evil-surround.git")
- (commit (string-append "v" version))))
+ (url "https://github.com/emacs-evil/evil-surround")
+ (commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1smv7sqhm1l2bi9fmispnlmjssidblwkmiiycj1n3ag54q27z031"))))
+ (base32 "1ajsi6xn8mliwzl24h6pp9rd91z7f20yvkphr9q7k6zpjrd7fb9q"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-evil" ,emacs-evil)))
- (home-page "https://github.com/timcharper/evil-surround")
+ (home-page "https://github.com/emacs-evil/evil-surround")
(synopsis "Easily modify surrounding parentheses and quotes")
(description "@code{emacs-evil-surround} allows easy deletion, change and
addition 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
(version "1.3.3")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/leathekd/erc-hl-nicks"
- "/archive/" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/leathekd/erc-hl-nicks")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "1a1r2kc3688g8c2ybkpwh88kgmnqhg3h3032g2yn4zr9m0n3vpkr"))))
+ (base32 "0c82rxpl5v7bbxirf1ksg06xv5xcddh8nkrpj7i6nvfarwdfnk4f"))))
(build-system emacs-build-system)
(synopsis "Nickname highlighting for Emacs ERC")
(description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
@@ -8792,27 +8832,20 @@ an elisp expression.")
(define-public emacs-emojify
(package
(name "emacs-emojify")
- (version "0.4")
+ (version "1.2")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/iqbalansari/emacs-emojify/"
- "releases/download/v" version "/emojify-"
- version ".tar"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/iqbalansari/emacs-emojify")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0k84v2d2bkiwcky9fi1yyprgkj46g7wh6pyl9gzmcd7sqv051d5n"))))
+ "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
(build-system emacs-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'install 'install-data
- (lambda* (#:key outputs #:allow-other-keys)
- (copy-recursively "data"
- (string-append (assoc-ref outputs "out")
- "/share/emacs/site-lisp/guix.d/"
- "emojify-" ,version "/data"))
- #t)))))
+ `(#:include (cons "^data/" %default-include)))
(propagated-inputs
`(("emacs-ht" ,emacs-ht)))
(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
@code{emojify-mode} to enable the display of emojis in a buffer.")
(license license:gpl3+)))
+(define-public emacs-make-it-so
+ (let ((commit "bc3b01d6b9ed6ff66ebbd524234f9d6df60dd4be")
+ (version "0.1.0")
+ (revision "1"))
+ (package
+ (name "emacs-make-it-so")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/abo-abo/make-it-so")
+ (commit commit)))
+ (sha256
+ (base32
+ "0833bzlscpnkvjnrg3g54yr246afbjwri8n5wxk8drnsq6acvd8z"))))
+ (build-system emacs-build-system)
+ (arguments
+ `(#:include (cons "^recipes/" %default-include)))
+ (propagated-inputs
+ `(("emacs-ivy" ,emacs-ivy)))
+ (home-page "https://github.com/abo-abo/make-it-so")
+ (synopsis "Transform files with Makefile recipes")
+ (description "This package provides an interface for selecting from
+different conversion recipes, often including tools like @code{ffmpeg} or
+@code{convert}. The conversion command need only be written once, and
+subsequent invocations can be readily customized. Several recipes are
+included by default, and more can be readily added.")
+ (license license:gpl3+))))
+
(define-public emacs-websocket
(package
(name "emacs-websocket")
@@ -9186,7 +9249,7 @@ Feautures:
(define-public emacs-evil-matchit
(package
(name "emacs-evil-matchit")
- (version "2.2.9")
+ (version "2.3.0")
(source
(origin
(method git-fetch)
@@ -9195,7 +9258,7 @@ Feautures:
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "12if45pxfndy3d7r4gd3zx4d3jk4d64fdmwkhc3y5zhqq9h9iy4c"))))
+ (base32 "0y6q42hml7jgf060d83m7hf270h01858g5kxw12na9n4r4jjpdg1"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-evil" ,emacs-evil)))
@@ -9646,6 +9709,27 @@ matches\" in the mode line in various search modes. This is an Emacs port of
Anzu.zim.")
(license license:gpl3+)))
+(define-public emacs-ascii-art-to-unicode
+ (package
+ (name "emacs-ascii-art-to-unicode")
+ (version "1.12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
+ version ".el"))
+ (sha256
+ (base32
+ "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna"))))
+ (build-system emacs-build-system)
+ (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
+ (synopsis "ASCII to Unicode art converter for Emacs")
+ (description "This Emacs package provides the commands @command{aa2u} and
+@command{aa2u-rectangle}. Both of these commands can be used to convert
+simple ASCII art line drawings to Unicode; the former works on the active
+region of the buffer, while the latter works on rectangular selections.")
+ (license license:gpl3+)))
+
(define-public emacs-emmet-mode
(package
(name "emacs-emmet-mode")
@@ -9758,12 +9842,13 @@ and can be consulted and modified.")
(version "0.03")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/syohex/emacs-evil-anzu"
- "/archive/" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/syohex/emacs-evil-anzu")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "032hh2946z529cizqsg8pm6cpn5qdj8lfk3qskmx6xv3g2ra56ns"))))
+ (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-evil" ,emacs-evil)
@@ -10106,29 +10191,153 @@ text-mode (i.e. Org-mode).")
(license license:gpl3+))))
(define-public emacs-outshine
- (let ((commit "5f1a6b70231d2811c522e4e5e8c89ff461b311d6"))
+ (package
+ (name "emacs-outshine")
+ (version "3.0.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/alphapapa/outshine.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-outorg" ,emacs-outorg)))
+ (home-page "https://github.com/alphapapa/outshine")
+ (synopsis "Emacs outline with outshine")
+ (description "Outshine attempts to bring the look and feel of
+@code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
+of @code{outline-minor-mode} (@code{org-mode} itself derives from
+outline-mode), so there is no such thing like an outshine mode, only
+@code{outline-minor-mode} with outshine extensions loaded.")
+ (license license:gpl3+)))
+
+(define-public emacs-frecency
+ (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
+ (version "0.1-pre")
+ (revision "1"))
(package
- (name "emacs-outshine")
- (version (git-version "2.0" "1" commit))
+ (name "emacs-frecency")
+ (version (git-version version revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/alphapapa/outshine.git")
+ (url "https://github.com/alphapapa/frecency.el")
(commit commit)))
- (file-name (git-file-name name version))
(sha256
(base32
- "1l9v1dfhgg7il11ifbhvcvrg3acfjk9sdxlc3lja1k54d7dp60jv"))))
+ "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
+ (file-name (git-file-name name version))))
(build-system emacs-build-system)
(propagated-inputs
- `(("emacs-outorg" ,emacs-outorg)))
- (home-page "https://github.com/alphapapa/outshine")
- (synopsis "Emacs outline with outshine")
- (description "Outshine attempts to bring the look and feel of
-@code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
-of @code{outline-minor-mode} (@code{org-mode} itself derives from
-outline-mode), so there is no such thing like an outshine mode, only
-@code{outline-minor-mode} with outshine extensions loaded.")
+ `(("emacs-a" ,emacs-a)
+ ("emacs-dash" ,emacs-dash)))
+ (home-page "https://github.com/alphapapa/frecency.el")
+ (synopsis "Sort items by frequency and recency of access")
+ (description "This package provides a way of sorting items via
+a heuristic based on frequency and recency.")
+ (license license:gpl3+))))
+
+(define-public emacs-org-recent-headings
+ (package
+ (name "emacs-org-recent-headings")
+ (version "0.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/alphapapa/org-recent-headings.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-org" ,emacs-org)
+ ("emacs-dash" ,emacs-dash)
+ ("emacs-frecency" ,emacs-frecency)))
+ (home-page "https://github.com/alphapapa/org-recent-headings")
+ (synopsis "Navigate to recently used Org headings and lists")
+ (description "This package maintains a list of recently used Org headings,
+as well as functions for navigating between these headings.")
+ (license license:gpl3+)))
+
+(define-public emacs-org-super-agenda
+ (package
+ (name "emacs-org-super-agenda")
+ (version "1.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/alphapapa/org-super-agenda")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0vzf91lsxnhwf52kvm8ycpf0wb9c8l91689vyhwgv4wz8q6cvjwp"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-org" ,emacs-org)
+ ("emacs-dash" ,emacs-dash)
+ ("emacs-ht" ,emacs-ht)
+ ("emacs-s" ,emacs-s)))
+ (home-page "https://github.com/alphapapa/org-super-agenda")
+ (synopsis "Supercharged Org agenda")
+ (description "This package allows items in the Org agenda to be grouped
+into sections while preserving the structure imposed by any timestamps.")
+ (license license:gpl3+)))
+
+(define-public emacs-org-make-toc
+ (package
+ (name "emacs-org-make-toc")
+ (version "0.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/alphapapa/org-make-toc")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0syhj8q4pv33xgl5qa6x27yhwqvfhffw5xqp819hj4qs1ddlc7j5"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-org" ,emacs-org)
+ ("emacs-dash" ,emacs-dash)
+ ("emacs-s" ,emacs-s)))
+ (home-page "https://github.com/alphapapa/org-make-toc")
+ (synopsis "Maintain a table of contents for an Org file")
+ (description "This package facilitates the creation and maintenance of
+tables of contents.")
+ (license license:gpl3+)))
+
+(define-public emacs-org-ql
+ (let ((commit "0aec8ec60395197b2ef2b885c216cf84286efed9")
+ (version "0.1-pre")
+ (revision "1"))
+ (package
+ (name "emacs-org-ql")
+ (version (git-version version revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/alphapapa/org-ql")
+ (commit commit)))
+ (sha256
+ (base32
+ "0bj85hxhym7rvkaddcxybxdm7g7w439wij9f2w5ljz1hmvp55991"))
+ (file-name (git-file-name name version))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-s" ,emacs-s)
+ ("emacs-dash" ,emacs-dash)))
+ (home-page "https://github.com/alphapapa/org-ql")
+ (synopsis "Query language for Org buffers")
+ (description "This package provides a Lispy query language for Org
+files, allowing for actions to be performed based on search criteria.")
(license license:gpl3+))))
(define-public emacs-parsebib
@@ -11206,10 +11415,10 @@ You should really read org-ref.org in this package for details.")
;; This project is unmaintained. Please use emacs-org-re-reveal instead.
(define-public emacs-org-reveal
- (let ((commit "1cdd088ec5fab631c564dca7f9f74fd3e9b7d4d4"))
+ (let ((commit "9210413202a360a559a51e8275faa42be68cf44b"))
(package
(name "emacs-org-reveal")
- (version (git-version "0.1" "2" commit))
+ (version (git-version "0.1" "3" commit))
(source (origin
(method git-fetch)
(uri (git-reference
@@ -11218,7 +11427,7 @@ You should really read org-ref.org in this package for details.")
(file-name (git-file-name name version))
(sha256
(base32
- "1vjxjadq2i74p96y9jxnqj1yb86fsgxzmn7bjgnb88ay6nvc1l72"))))
+ "1wlfk823d3vrn480m38j7ncaqm193lvh6y22b92fx4b3yhdbndza"))))
(build-system emacs-build-system)
(home-page "https://github.com/yjwen/org-reveal")
(synopsis "Org and Reveal.js powered HTML presentation tool")
@@ -11382,7 +11591,7 @@ downloading manager for Emacs.")
(define-public emacs-helpful
(package
(name "emacs-helpful")
- (version "0.15")
+ (version "0.16")
(source
(origin
(method git-fetch)
@@ -11391,10 +11600,14 @@ downloading manager for Emacs.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1rqnx7672175288yqaslw0d9vw04j6psw7mys8j9zcp2i72hlvkn"))))
+ (base32 "1pzlx3galyryd3hd84hnd7r5s6yl9sdrfhy1s6dgz40glw41wmpr"))))
(build-system emacs-build-system)
(propagated-inputs
- `(("emacs-elisp-refs" ,emacs-elisp-refs)))
+ `(("emacs-elisp-refs" ,emacs-elisp-refs)
+ ("emacs-dash" ,emacs-dash)
+ ("emacs-s" ,emacs-s)
+ ("emacs-f" ,emacs-f)
+ ("emacs-shut-up" ,emacs-shut-up)))
(home-page "https://github.com/Wilfred/helpful")
(synopsis "More contextual information in Emacs help")
(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
using XML-RPC methods fairly transparent to the Lisp code.")
(license license:gpl3+))))
+(define-public emacs-xpm
+ (package
+ (name "emacs-xpm")
+ (version "1.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://elpa.gnu.org/packages/xpm-"
+ version ".tar"))
+ (sha256
+ (base32
+ "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh"))))
+ (build-system emacs-build-system)
+ (home-page "https://elpa.gnu.org/packages/xpm.html")
+ (synopsis "XPM image editing mode for Emacs")
+ (description "This Emacs package makes editing XPM images easy (and maybe
+fun). Editing is done directly on the (textual) image format, for maximal
+cohesion with the Emacs Way.")
+ (license license:gpl3+)))
+
(define-public emacs-fish-completion
(package
(name "emacs-fish-completion")
- (version "1.0")
+ (version "1.1")
(source
(origin
(method url-fetch)
@@ -12793,7 +13026,7 @@ using XML-RPC methods fairly transparent to the Lisp code.")
version))
(sha256
(base32
- "1hpma1c5j50ja03ibr7h1xmyv7k8j3rbvqivad47kwqhlsgw0jk0"))))
+ "0bpvifv6c2a65nks6kvarw0hhm37fnyy74wikwf9qq1i20va0fpv"))))
(build-system emacs-build-system)
(inputs `(("fish" ,fish)))
(arguments
@@ -13593,7 +13826,7 @@ buffers – other modes on the TODO list).
(define-public emacs-magit-todos
(package
(name "emacs-magit-todos")
- (version "1.1.7")
+ (version "1.2")
(source
(origin
(method git-fetch)
@@ -13603,7 +13836,7 @@ buffers – other modes on the TODO list).
(file-name (git-file-name name version))
(sha256
(base32
- "0qagdxpik64n4rw9scy451ws5sw00v64ri9g2dcw7b66bx2c6c6w"))))
+ "17a18gszbypz82bj36xbfyykc4s9rz83vwmpxvlf65svhd51c0nh"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-async" ,emacs-async)
@@ -14456,7 +14689,7 @@ to open SQLite databases.")
(define-public emacs-nix-mode
(package
(name "emacs-nix-mode")
- (version "1.2.2")
+ (version "1.4.1")
(source
(origin
(method git-fetch)
@@ -14465,10 +14698,11 @@ to open SQLite databases.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1vz3s2jx14nzy53f04d821n4f2s22ys5h9s7af6cnpynkwawyhhq"))))
+ (base32 "04xpgg9nba5m1bl7ci5l456whcb8nfhsbvgxyx89bp0zqgr005q7"))))
(build-system emacs-build-system)
(inputs
`(("emacs-company" ,emacs-company)
+ ("emacs-json-mode" ,emacs-json-mode)
("emacs-mmm-mode" ,emacs-mmm-mode)))
(home-page "https://github.com/NixOS/nix-mode")
(synopsis "Emacs major mode for editing Nix expressions")
@@ -14665,31 +14899,30 @@ recursively. The results are cached for speed.")
(license license:gpl3+)))
(define-public emacs-orgit
- (let ((commit "2456436a7e64d26bcf455b3890a586acaa3e7f93"))
- (package
- (name "emacs-orgit")
- (version (git-version "1.5.1" "2" commit))
- (home-page "https://github.com/magit/orgit")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url home-page)
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1i52dq2ynddb1irgigr5mdwfbfd3bvm1f29jnzd7nlc0nk186nvh"))))
- (build-system emacs-build-system)
- (propagated-inputs
- `(("emacs-dash" ,emacs-dash)
- ("emacs-magit" ,emacs-magit)))
- (synopsis "Support for Org links to Magit buffers")
- (description "This package defines several Org link types, which can be
+ (package
+ (name "emacs-orgit")
+ (version "1.5.3")
+ (home-page "https://github.com/magit/orgit")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1ywavzki510rslsgfm0cnn3mlh644p61ha2nfb715xhkg7cd3j9g"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-dash" ,emacs-dash)
+ ("emacs-magit" ,emacs-magit)))
+ (synopsis "Support for Org links to Magit buffers")
+ (description "This package defines several Org link types, which can be
used to link to certain Magit buffers. Use the command
@command{org-store-link} while such a buffer is current to store a link.
Later you can insert it into an Org buffer using the command
@code{org-insert-link}.")
- (license license:gpl3+))))
+ (license license:gpl3+)))
(define-public emacs-amx
(package
@@ -15616,7 +15849,7 @@ previewed by scrolling up and down within a @code{dired} buffer.")
(define-public emacs-counsel-etags
(package
(name "emacs-counsel-etags")
- (version "1.8.3")
+ (version "1.8.4")
(source
(origin
(method git-fetch)
@@ -15626,7 +15859,7 @@ previewed by scrolling up and down within a @code{dired} buffer.")
(file-name (git-file-name name version))
(sha256
(base32
- "1d8nlrbsyza6q7yqm9248bxxsf49qf6hchg3zwv0l11acn3w8np5"))))
+ "14my9jvxl26a5yn381h5pi5481y9d9gyk7wnxxd0s4sjc964c5h5"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-ivy" ,emacs-ivy)))
@@ -15636,6 +15869,32 @@ previewed by scrolling up and down within a @code{dired} buffer.")
and searching through @code{Ctags} files.")
(license license:gpl3+)))
+(define-public emacs-org-download
+ (let ((commit "ac72bf8fce3e855da60687027b6b8601cf1de480")
+ (version "0.1.0")
+ (revision "1"))
+ (package
+ (name "emacs-org-download")
+ (version (git-version version revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/abo-abo/org-download")
+ (commit commit)))
+ (sha256
+ (base32
+ "0ax5wd44765wnwabkam1g2r62gq8crx2qq733s2mg1z72cfvwxqb"))
+ (file-name (git-file-name name version))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-org" ,emacs-org)
+ ("emacs-async" ,emacs-async)))
+ (home-page "https://github.com/abo-abo/org-download")
+ (synopsis "Facilitate moving images")
+ (description "This package provides utilities for managing image files
+copied into @code{org-mode} buffers.")
+ (license license:gpl3+))))
+
(define-public emacs-helm-dash
(let ((commit "192b862185df661439a06de644791171e899348a")
(version "1.3.0")
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index c32569dd1b..c1ae14bc42 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -233,7 +233,7 @@ turbo speed, networked multiplayer, and graphical enhancements.")
(define-public dosbox
(package
(name "dosbox")
- (version "0.74-2")
+ (version "0.74-3")
(source (origin
(method url-fetch)
(uri (string-append "https://sourceforge.net/projects/dosbox"
@@ -242,7 +242,7 @@ turbo speed, networked multiplayer, and graphical enhancements.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1ksp1b5szi0vy4x55rm3j1y9wq5mlslpy8llpg87rpdyjlsk0xvh"))))
+ "02i648i50dwicv1vaql15rccv4g8h5blf5g6inv67lrfxpbkvlf0"))))
(build-system gnu-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/enchant.scm b/gnu/packages/enchant.scm
index 0392a709e2..ce148b47a5 100644
--- a/gnu/packages/enchant.scm
+++ b/gnu/packages/enchant.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Marek Benc <merkur32@gmail.com>
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -32,7 +33,7 @@
(define-public enchant
(package
(name "enchant")
- (version "2.2.3")
+ (version "2.2.4")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/AbiWord/enchant/releases"
@@ -40,7 +41,7 @@
version ".tar.gz"))
(sha256
(base32
- "0v87p1ls0gym95qirijpclk650sjbkcjjl6ssk059zswcwaykn5b"))))
+ "1p6a3qmrh8bjzds6x7rg9da0ir44gg804jzkf634h39wsa4vdmpm"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-static"
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 5b95bcb704..cd5d3b7d9a 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.")
(package
(inherit electrum)
(name "electron-cash")
- (version "4.0.1")
+ (version "4.0.7")
(source
(origin
(method url-fetch)
@@ -410,7 +410,7 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
".tar.gz"))
(sha256
(base32
- "16fi03f23yb5r9s64x1a9wrxnvivlbawvrbq4d486yclzl1r7y48"))
+ "0xswmr68cm1c77lzisi3z812jzqczm9dfrshfhdq42zz5kaz4gnn"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index b9527659db..4b37ffdf3c 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.")
(define-public weston
(package
(name "weston")
- (version "6.0.0")
+ (version "6.0.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -639,7 +639,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
"weston-" version ".tar.xz"))
(sha256
(base32
- "04p6hal5kalmdp5dxwh2h5qhkkb4dvbsk7l091zvvcq70slj6qsl"))))
+ "1d2m658ll8x7prlsfk71qgw89c7dz6y7d6nndfxwl49fmrd6sbxz"))))
(build-system meson-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 63ccd20470..05a68b717a 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.")
(define-public deutex
(package
(name "deutex")
- (version "5.1.2")
+ (version "5.2.0")
(source (origin
(method url-fetch)
- (uri (string-append "https://github.com/Doom-Utils/" name
+ (uri (string-append "https://github.com/Doom-Utils/deutex"
"/releases/download/v" version "/"
- name "-" version ".tar.xz"))
+ "deutex-" version ".tar.xz"))
(sha256
(base32
- "1rj3w4xa0n4jixy4j7p6gbclylbgxvhdnji7xnkydrqii9rxnbp4"))))
+ "1d536d3i78k4ch8mjg7lqnamnyfpp2x5x7mzx5smqi9ad8lb6hqz"))))
(build-system gnu-build-system)
(native-inputs `(("asciidoc" ,asciidoc)))
(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
upon which people base their games, ports to new platforms, and other
projects.")
(license license:gpl2))))
+
+(define-public openvr
+ (package
+ (name "openvr")
+ (version "1.4.18")
+ (home-page "https://github.com/ValveSoftware/openvr/")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0m92634j6g0f2xybbzklm79cnq20vidbk1jc62pnz12aabwixvyh"))))
+ (build-system cmake-build-system)
+ (arguments
+ ;; No tests.
+ '(#:tests? #f
+ #:configure-flags (list "-DBUILD_SHARED=1")))
+ (synopsis "Virtual reality software development kit")
+ (description "OpenVR is an API and runtime that allows access to VR
+hardware from multiple vendors without requiring that applications have
+specific knowledge of the hardware they are targeting.")
+ (license license:bsd-3)))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 8e8c6c8058..a102dc962f 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -42,6 +42,7 @@
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com>
;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
+;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -130,6 +131,7 @@
#:use-module (gnu packages netpbm)
#:use-module (gnu packages networking)
#:use-module (gnu packages ocaml)
+ #:use-module (gnu packages opencl)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
@@ -3542,7 +3544,7 @@ with the \"Stamp\" tool within Tux Paint.")
(description "SuperTux is a free classic 2D jump'n run sidescroller game
in a style similar to the original Super Mario games covered under
the GNU GPL.")
- (home-page "https://supertuxproject.org/")
+ (home-page "https://supertux.org/")
(license license:gpl3+)))
(define-public tintin++
@@ -7250,6 +7252,26 @@ the game avoids complex inventory management and character building, relying
on items and player adaptability for character progression.")
(license license:isc)))
+(define-public harmonist-tk
+ (package
+ (inherit harmonist)
+ (name "harmonist-tk")
+ (arguments
+ (append
+ (package-arguments harmonist)
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'build
+ (lambda _
+ (invoke "go" "install" "-v" "-x" "--tags" "tk"
+ "git.tuxfamily.org/harmonist/harmonist")))
+ (replace 'check
+ (lambda _
+ (invoke "go" "test" "--tags" "tk"
+ "git.tuxfamily.org/harmonist/harmonist")))))))
+ (inputs
+ `(("go-github.com-nsf-gothic" ,go-github.com-nsf-gothic)))))
+
(define-public drascula
(package
(name "drascula")
@@ -7556,3 +7578,52 @@ remake of that series or any other game.")
;; released under both gpl2 and cc-by-sa3.0. Bundled Gigi library is
;; released under lgpl2.1+.
(license (list license:gpl2 license:cc-by-sa3.0 license:lgpl2.1+))))
+
+(define-public leela-zero
+ (package
+ (name "leela-zero")
+ (version "0.17")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/leela-zero/leela-zero.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "17px5iny8mql5c01bymcli7zfssswkzvb2i8gnsmjcck6i2n8srl"))
+ (patches (search-patches "leela-zero-gtest.patch"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("googletest" ,googletest)))
+ (inputs
+ `(("boost" ,boost)
+ ("ocl-icd" ,ocl-icd)
+ ("openblas" ,openblas)
+ ("opencl-headers" ,opencl-headers)
+ ("qtbase" ,qtbase)
+ ("zlib" ,zlib)))
+ (arguments
+ '(#:configure-flags '("-DUSE_BLAS=YES")
+ #:phases (modify-phases %standard-phases
+ (add-before 'configure 'fix-tests
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((home (getcwd)))
+ (setenv "HOME" home)
+ (substitute* "src/tests/gtests.cpp"
+ (("\\.\\./src/tests/0k\\.txt")
+ (string-append home "/src/tests/0k.txt"))
+ (("cfg_gtp_mode = true;")
+ "cfg_gtp_mode = true; cfg_cpu_only = true;")))
+ #t))
+ (replace 'check
+ (lambda _
+ (invoke "./tests"))))))
+ (home-page "https://github.com/leela-zero/leela-zero")
+ (synopsis "Program playing the game of Go")
+ (description
+ "Leela-zero is a Go engine with no human-provided knowledge, modeled after
+the AlphaGo Zero paper. The current best network weights file for the engine
+can be downloaded from @url{https://zero.sjeng.org/best-network}.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/genealogy.scm b/gnu/packages/genealogy.scm
new file mode 100644
index 0000000000..2db3fdb918
--- /dev/null
+++ b/gnu/packages/genealogy.scm
@@ -0,0 +1,112 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages genealogy)
+ #:use-module (guix build-system python)
+ #:use-module (guix git-download)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (gnu packages fonts)
+ #:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages geo)
+ #:use-module (gnu packages gettext)
+ #:use-module (gnu packages ghostscript)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
+ #:use-module (gnu packages graphviz)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages sqlite)
+ #:use-module (gnu packages version-control))
+
+(define-public gramps
+ (package
+ (name "gramps")
+ (version "5.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gramps-project/gramps.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1jz1fbjj6byndvir7qxzhd2ryirrd5h2kwndxpp53xdc05z1i8g7"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("gettext" ,gettext-minimal)
+ ("intltool" ,intltool)))
+ (inputs
+ `(("font-gnu-freefont-ttf" ,font-gnu-freefont-ttf)
+ ("geocode-glib" ,geocode-glib)
+ ("gexiv2" ,gexiv2)
+ ("ghostscript" ,ghostscript)
+ ("gobject-introspection" ,gobject-introspection)
+ ("gtk+" ,gtk+)
+ ("gtkspell3" ,gtkspell3)
+ ("graphviz" ,graphviz)
+ ("librsvg" ,librsvg)
+ ("osm-gps-map" ,osm-gps-map)
+ ("pango" ,pango)
+ ("python-bsddb3" ,python-bsddb3)
+ ("python-pillow" ,python-pillow)
+ ("python-pycairo" ,python-pycairo)
+ ("python-pygobject" ,python-pygobject)
+ ("python-pyicu" ,python-pyicu)
+ ("rcs" ,rcs)
+ ("sqlite" ,sqlite)
+ ("xdg-utils" ,xdg-utils)))
+ (arguments
+ `(#:imported-modules ((guix build glib-or-gtk-build-system)
+ ,@%python-build-system-modules)
+ #:modules ((ice-9 match)
+ (guix build python-build-system)
+ ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+ (guix build utils))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'set-home-for-tests
+ (lambda _
+ (setenv "HOME" (getenv "TMPDIR"))
+ #t))
+ (add-before 'wrap 'wrap-with-GI_TYPELIB_PATH
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (paths (map (match-lambda
+ ((output . directory)
+ (let ((girepodir (string-append
+ directory
+ "/lib/girepository-1.0")))
+ (if (file-exists? girepodir)
+ girepodir
+ #f))))
+ inputs)))
+ (wrap-program (string-append out "/bin/gramps")
+ `("GI_TYPELIB_PATH" ":" prefix ,(filter identity paths))))
+ #t))
+ (add-after 'wrap 'glib-or-gtk-wrap
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
+ (home-page "https://gramps-project.org")
+ (synopsis "Genealogical research software")
+ (description
+ "Gramps is a free software project and community striving to produce
+a genealogy program that is both intuitive for hobbyists and feature-complete
+for professional genealogists.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 2c511c7193..2ee74794d8 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -872,3 +872,36 @@ dropping features at lower levels.")
OpenStreetMap project. They can be used to convert, filter and update
OpenStreetMap data files.")
(license license:agpl3)))
+
+(define-public osm-gps-map
+ (package
+ (name "osm-gps-map")
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/nzjrs/osm-gps-map/releases/download/"
+ version "/osm-gps-map-" version ".tar.gz"))
+ (sha256
+ (base32
+ "11imsf4cz1dpxdjh178k2s29axmq86rkfg1pqmn7incyxmjzhbwg"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("gnome-common" ,gnome-common)
+ ("gtk-doc" ,gtk-doc)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("cairo" ,cairo)
+ ("glib" ,glib)
+ ("gobject-introspection" ,gobject-introspection)
+ ("gtk+" ,gtk+)
+ ("libsoup" ,libsoup)))
+ (home-page "https://nzjrs.github.io/osm-gps-map/")
+ (synopsis "GTK+ widget for displaying OpenStreetMap tiles")
+ (description
+ "This package provides a GTK+ widget (and Python bindings) that when
+given GPS coordinates,draws a GPS track, and points of interest on a moving
+map display. Downloads map data from a number of websites, including
+@url{https://www.openstreetmap.org}.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 96e7fc7165..99d2ec6cdb 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
from software emulation to complete hardware acceleration for modern GPUs.")
(license license:x11)))
+(define-public mesa-opencl
+ (package
+ (inherit mesa)
+ (name "mesa-opencl")
+ (arguments
+ (substitute-keyword-arguments (package-arguments mesa)
+ ((#:configure-flags flags)
+ `(cons "-Dgallium-opencl=standalone" ,flags))))
+ (inputs
+ `(("libclc" ,libclc)
+ ,@(package-inputs mesa)))
+ (native-inputs
+ `(("clang" ,clang)
+ ,@(package-native-inputs mesa)))))
+
+(define-public mesa-opencl-icd
+ (package
+ (inherit mesa-opencl)
+ (name "mesa-opencl-icd")
+ (arguments
+ (substitute-keyword-arguments (package-arguments mesa)
+ ((#:configure-flags flags)
+ `(cons "-Dgallium-opencl=icd"
+ ,(delete "-Dgallium-opencl=standalone" flags)))))))
+
(define-public mesa-headers
(package
(inherit mesa)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index f8a6a774da..b7152a3aff 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7392,8 +7392,21 @@ kill/reinice processes.")
"/pyatspi-" version ".tar.xz"))
(sha256
(base32
- "0xdnix7gxzgf75xy9ris4dd6b05mqwicw190b98xqmypydyf95n6"))))
+ "0xdnix7gxzgf75xy9ris4dd6b05mqwicw190b98xqmypydyf95n6"))
+ ;; Patch from upstream, fixed in newer versions.
+ (patches (search-patches "python-pyatspi-python-37.patch"))))
(build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-atk-load
+ (lambda _
+ (substitute* "pyatspi/__init__.py"
+ (("from gi.repository import Atspi")
+ "gi.require_version('Gtk', '3.0')
+from gi.repository import Gtk
+from gi.repository import Atspi"))
+ #t)))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index ab75925a9d..00608c2c8b 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -377,15 +377,13 @@ libskba (working with X.509 certificates and CMS data).")
(define-public gpgme
(package
(name "gpgme")
- (version "1.13.0")
+ (version "1.13.1")
(source
(origin
(method url-fetch)
- (uri (string-append "mirror://gnupg/gpgme/gpgme-" version
- ".tar.bz2"))
+ (uri (string-append "mirror://gnupg/gpgme/gpgme-" version ".tar.bz2"))
(sha256
- (base32
- "0c6676g0yhfsmy32i1dgwh5cx0ja8vhcqf4k08zad177m53kxcnl"))))
+ (base32 "0imyjfryvvjdbai454p70zcr95m94j9xnzywrlilqdw2fqi0pqy4"))))
(build-system gnu-build-system)
(native-inputs
`(("gnupg" ,gnupg)))
@@ -669,17 +667,17 @@ PGP keysigning parties.")
(define-public signing-party
(package
(name "signing-party")
- (version "2.7")
- (home-page "https://salsa.debian.org/debian/signing-party")
+ (version "2.10")
+ (home-page "https://salsa.debian.org/signing-party-team/signing-party")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
- (commit (string-append "release-" version))))
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "1gx9017wag4bgc0h7kca9n3jwwdm7z77yv3viayhg62flbwkvbgb"))))
+ "0lq8nmwjmysry0n4jg6vb7bh0lagbyb9pa11ii3s41p1mhzchf2r"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf-wrapper)
@@ -691,7 +689,7 @@ PGP keysigning parties.")
("perl-net-idn-encode" ,perl-net-idn-encode)
("libmd" ,libmd)))
(arguments
- `(#:tests? #f
+ `(#:tests? #f ; no test suite
#:phases
(modify-phases %standard-phases
(replace 'configure
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index c2356f2a44..a874878fea 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -426,7 +426,7 @@ from forcing GEXP-PROMISE."
#:system system
#:guile-for-build guile)))
-(define %icecat-version "60.7.0-guix2")
+(define %icecat-version "60.7.2-guix1")
;; 'icecat-source' is a "computed" origin that generates an IceCat tarball
;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat'
@@ -448,7 +448,7 @@ from forcing GEXP-PROMISE."
"firefox-" upstream-firefox-version ".source.tar.xz"))
(sha256
(base32
- "08x0nijh0ja5jza95a8y030ibk756bn7zlw3a3c4750yilfhqpqa"))))
+ "1hkaq8mavmn2wphfbrlq3v56jvmvfi2nyvrkjgr28rc01jkqx4ca"))))
(upstream-icecat-base-version "60.7.0") ; maybe older than base-version
(upstream-icecat-gnu-version "1")
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 43888ab23f..e4d6af51c5 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -68,6 +68,7 @@
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages libffi)
+ #:use-module (gnu packages linux)
#:use-module (gnu packages pdf)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@@ -1687,12 +1688,12 @@ input.")
(origin
(method url-fetch)
(uri (string-append "https://alpha.gnu.org/gnu/ssw/"
- name "-" version ".tar.gz"))
+ "spread-sheet-widget-" version ".tar.gz"))
(sha256
(base32 "1h93yyh2by6yrmkwqg38nd5knids05k5nqzcihc1hdwgzg3c4b8y"))))
(build-system gnu-build-system)
(native-inputs
- `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
+ `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
("pkg-config" ,pkg-config)))
;; In 'Requires' of spread-sheet-widget.pc.
(propagated-inputs
@@ -1706,6 +1707,38 @@ viewing and manipulating 2 dimensional tabular data in a manner similar to many
popular spread sheet programs.")
(license license:gpl3+)))
+(define-public volumeicon
+ (package
+ (name "volumeicon")
+ (version "0.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://nullwise.com/files/volumeicon/volumeicon-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "182xl2w8syv6ky2h2bc9imc6ap8pzh0p7rp63hh8nw0xm38c3f14"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (list "--enable-notify"))) ; optional libnotify support
+ (native-inputs
+ `(("intltool" ,intltool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("gtk+" ,gtk+)
+ ("libnotify" ,libnotify)))
+ (home-page "http://nullwise.com/volumeicon.html")
+ (synopsis "System tray volume applet")
+ (description
+ "Volume Icon is a volume indicator and control applet for @acronym{the
+Advanced Linux Sound Architecture, ALSA}. It sits in the system tray,
+independent of your desktop environment, and supports global key bindings.")
+ (license (list license:expat ; src/{bind.c,keybinder.h}
+ license:isc ; src/alsa_volume_mapping.c
+ license:gpl3)))) ; the rest & combined work
+
(define-public yad
(package
(name "yad")
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index c02606f919..a8352380f7 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.")
(file-name (git-file-name name version))
(sha256
(base32
- "0z5nf377wh8yj6n3sx2ddn4bdx1qrqnw899dlqjhg0q69qzil522"))))
+ "0z5nf377wh8yj6n3sx2ddn4bdx1qrqnw899dlqjhg0q69qzil522"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Install .go files in the right place.
+ (substitute* "Makefile.am"
+ (("/ccache") "/site-ccache"))
+ #t))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -2163,8 +2170,8 @@ serializing continuations or delimited continuations.")
(license license:lgpl2.0+))))
(define-public python-on-guile
- (let ((commit "058c596cd3886447da31171e1026d4d19f5f5313")
- (revision "2"))
+ (let ((commit "00a51a23247f1edc4ae8eda72b30df5cd7d0015f")
+ (revision "3"))
(package
(name "python-on-guile")
(version (git-version "0.1.0" revision commit))
@@ -2176,16 +2183,27 @@ serializing continuations or delimited continuations.")
(file-name (git-file-name name version))
(sha256
(base32
- "0ppyh5kkhsph5kc091p2b5a3alnj3wnlx8jr5xpyhrsj0vx9cqph"))))
+ "03rpnqr08rqr3gay128g564rwk8w4jbj28ss6b46z1d4vjs4nk68"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-build? #f ; not supported
- #:make-flags
- '("GUILE_AUTO_COMPILE=0") ; to prevent guild errors
+ #:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings
+
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'chdir
- (lambda _ (chdir "modules") #t)))))
+ (lambda _ (chdir "modules") #t))
+ (add-after 'install 'wrap
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Wrap the 'python' executable so it can find its
+ ;; dependencies.
+ (let ((out (assoc-ref outputs "out")))
+ (wrap-program (string-append out "/bin/python")
+ `("GUILE_LOAD_PATH" ":" prefix
+ (,(getenv "GUILE_LOAD_PATH")))
+ `("GUILE_LOAD_COMPILED_PATH" ":" prefix
+ (,(getenv "GUILE_LOAD_COMPILED_PATH"))))
+ #t))))))
(inputs
`(("guile" ,guile-2.2)))
(propagated-inputs
@@ -2384,3 +2402,37 @@ and minor modes, etc., and can also be used as a pure Guile library. It
comes with a simple counter example using GLUT and browser examples in C
using gtk+-3 and webkitgtk.")
(license license:gpl3+))))
+
+(define-public guile-jpeg
+ (let ((commit "6a1673578b297c2c1b28e44a76bd5c49e76a5046")
+ (revision "0"))
+ (package
+ (name "guile-jpeg")
+ (version (git-version "0.0" revision commit))
+ (home-page "https://gitlab.com/wingo/guile-jpeg")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference (url home-page)
+ (commit commit)))
+ (sha256
+ (base32
+ "05z9m408w3h6aqb5k3r3qa7khir0k10rxwvsrzhkcq1hr5vbmr4m"))
+ (file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Install .go files in the right place.
+ (substitute* "Makefile.am"
+ (("/ccache") "/site-ccache"))
+ #t))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)
+ ("guile" ,guile-2.2)))
+ (synopsis "JPEG file parsing library for Guile")
+ (description
+ "Guile-JPEG is a Scheme library to parse JPEG image files and to
+perform geometrical transforms on JPEG images.")
+ (license license:gpl3+))))
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 390b74c333..0e5631bbe3 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -1006,27 +1006,19 @@ channels.")
(define-public exiv2
(package
(name "exiv2")
- (version "0.26")
- (source (origin
- (method url-fetch)
- (uri (list (string-append "https://www.exiv2.org/builds/exiv2-"
- version "-trunk.tar.gz")
- (string-append "https://www.exiv2.org/exiv2-"
- version ".tar.gz")
- (string-append "https://fossies.org/linux/misc/exiv2-"
- version ".tar.gz")))
- (patches (search-patches "exiv2-CVE-2017-14860.patch"
- "exiv2-CVE-2017-14859-14862-14864.patch"))
- (sha256
- (base32
- "1yza317qxd8yshvqnay164imm0ks7cvij8y8j86p1gqi1153qpn7"))))
- (build-system gnu-build-system)
- (arguments '(#:tests? #f)) ; no `check' target
+ (version "0.27.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.exiv2.org/builds/exiv2-" version
+ "-Source.tar.gz"))
+ (sha256
+ (base32 "109hbfk63dh14fz20ivq20gcclb9jj9jmh48w4lcn6zxh1ljh9gi"))))
+ (build-system cmake-build-system)
+ (arguments '(#:tests? #f)) ; no test suite
(propagated-inputs
`(("expat" ,expat)
("zlib" ,zlib)))
- (native-inputs
- `(("intltool" ,intltool)))
(home-page "https://www.exiv2.org/")
(synopsis "Library and command-line utility to manage image metadata")
(description
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 2dad131c00..403c446a82 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2096,6 +2096,50 @@ new Date();"))
"This package provides the Java development kit OpenJDK.")
(license license:gpl2+)))
+(define-public openjdk12
+ (package
+ (inherit openjdk11)
+ (name "openjdk")
+ (version "12.33")
+ (source (origin
+ (method url-fetch)
+ (uri "http://hg.openjdk.java.net/jdk/jdk/archive/0276cba45aac.tar.bz2")
+ (file-name (string-append name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0mbhdrk12b6878kby0flnbak7444dlpm0ihlmf92vk59y1c02bc2"))
+ (modules '((guix build utils)))
+ (snippet
+ `(begin
+ (for-each delete-file (find-files "." ".*.bin$"))
+ (for-each delete-file (find-files "." ".*.exe$"))
+ (for-each delete-file (find-files "." ".*.jar$"))
+ #t))))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("cups" ,cups)
+ ("fontconfig" ,fontconfig)
+ ("freetype" ,freetype)
+ ("giflib" ,giflib)
+ ("lcms" ,lcms)
+ ("libjpeg" ,libjpeg)
+ ("libpng" ,libpng)
+ ("libx11" ,libx11)
+ ("libxext" ,libxext)
+ ("libxrandr" ,libxrandr)
+ ("libxrender" ,libxrender)
+ ("libxt" ,libxt)
+ ("libxtst" ,libxtst)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("openjdk11" ,openjdk11)
+ ("openjdk11:jdk" ,openjdk11 "jdk")
+ ("pkg-config" ,pkg-config)
+ ("unzip" ,unzip)
+ ("which" ,which)
+ ("zip" ,zip)))
+ (home-page "https://openjdk.java.net/projects/jdk/12")))
+
(define-public icedtea icedtea-8)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index f0fa6bba92..f1fdcba311 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."
It has been modified to remove all non-free binary blobs.")
(license license:gpl2)))
-(define %linux-libre-version "5.1.11")
-(define %linux-libre-hash "15hmqycsggqd9bwrf229b7f0pfznzs03kpzcwrd9j867pvgwyl8c")
+(define %linux-libre-version "5.1.15")
+(define %linux-libre-hash "1f0hhyjsm4bl7k7w88aifvhmqmjkvkvlpd2b69y7s6csr22fk6v4")
(define %linux-libre-5.1-patches
(list %boot-logo-patch
@@ -439,8 +439,8 @@ It has been modified to remove all non-free binary blobs.")
(make-linux-libre-headers %linux-libre-version
%linux-libre-hash))
-(define %linux-libre-4.19-version "4.19.52")
-(define %linux-libre-4.19-hash "1wsrgrskmvipm7j4kzir93p9dp3iy49522163ghfxx71b1b2v4dg")
+(define %linux-libre-4.19-version "4.19.56")
+(define %linux-libre-4.19-hash "1zqiic55viy065lhnkmhn33sz3bbbr2ykbm5f92yzd8lpc9zl7yx")
(define %linux-libre-4.19-patches
(list %boot-logo-patch
@@ -457,8 +457,8 @@ It has been modified to remove all non-free binary blobs.")
(make-linux-libre-headers %linux-libre-4.19-version
%linux-libre-4.19-hash))
-(define %linux-libre-4.14-version "4.14.127")
-(define %linux-libre-4.14-hash "0dkzgxfzzc6n3k2x8nzzx98c6y3fhsr695rm46ahvg7fdg3vgcmi")
+(define %linux-libre-4.14-version "4.14.130")
+(define %linux-libre-4.14-hash "1fk6ds0q2rykr6byvfass8f5a9k6qq9sk261wjcfp1gn8b9wmxws")
(define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version
@@ -471,14 +471,14 @@ It has been modified to remove all non-free binary blobs.")
%linux-libre-4.14-hash))
(define-public linux-libre-4.9
- (make-linux-libre "4.9.182"
- "1615v8ywwdm204bimq2cf6qv0zas14yagpr8lk9a5zqxas4p4rns"
+ (make-linux-libre "4.9.183"
+ "1w3syih3fggwkpcl6zkmm9f6577r2jvack4br5ffccgcddkz52ia"
'("x86_64-linux" "i686-linux")
#:configuration-file kernel-config))
(define-public linux-libre-4.4
- (make-linux-libre "4.4.182"
- "0ggs5pyjr7a9mldskfbsybzxlb3lmfbhxg5q2qpzxnh1c8wcn53h"
+ (make-linux-libre "4.4.183"
+ "1v21n5kwnv9n18gfp2dz9hsdkwmfwigalr82xsnwbzhs0x561bxx"
'("x86_64-linux" "i686-linux")
#:configuration-file kernel-config
#:extra-options
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index dfc58d469f..58813c2d84 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -47,6 +47,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages bdw-gc)
#:use-module (gnu packages bison)
+ #:use-module (gnu packages c)
#:use-module (gnu packages compression)
#:use-module (gnu packages ed)
#:use-module (gnu packages flex)
@@ -65,6 +66,8 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
#:use-module (gnu packages sdl)
#:use-module (gnu packages sqlite)
@@ -5369,3 +5372,627 @@ command line, to data scanning and extracting scripts, to full application
development in a wide-range of areas.")
(home-page "https://nongnu.org/txr/")
(license license:bsd-2)))
+
+(define-public sbcl-clunit
+ (let ((commit "6f6d72873f0e1207f037470105969384f8380628")
+ (revision "1"))
+ (package
+ (name "sbcl-clunit")
+ (version (git-version "0.2.3" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tgutu/clunit.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1idf2xnqzlhi8rbrqmzpmb3i1l6pbdzhhajkmhwbp6qjkmxa4h85"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "CLUnit is a Common Lisp unit testing framework")
+ (description
+ "CLUnit is a Common Lisp unit testing framework. It is designed
+to be easy to use so that you can quickly start testing. CLUnit
+provides a rich set of features aimed at improving your unit testing
+experience.")
+ (home-page "http://tgutu.github.io/clunit/")
+ ;; MIT License
+ (license license:expat))))
+
+(define-public cl-clunit
+ (sbcl-package->cl-source-package sbcl-clunit))
+
+(define-public ecl-clunit
+ (sbcl-package->ecl-package sbcl-clunit))
+
+(define-public sbcl-py4cl
+ (let ((commit "4c8a2b0814fd311f978964f825ce012290f60136")
+ (revision "1"))
+ (package
+ (name "sbcl-py4cl")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bendudson/py4cl.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "15mk7qdqjkj56gdnbyrdyz6r7m1h26ldvn6ch96pmvg5vmr1m45r"))
+ (modules '((guix build utils)))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("sbcl-clunit" ,sbcl-clunit)))
+ (inputs
+ `(("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
+ (propagated-inputs
+ ;; This package doesn't do anything without python available
+ `(("python" ,python)
+ ;; For multi-dimensional array support
+ ("python-numpy" ,python-numpy)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'replace-*base-directory*-var
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; In the ASD, the author makes an attempt to
+ ;; programatically determine the location of the
+ ;; source-code so lisp can call into "py4cl.py". We can
+ ;; hard-code this since we know where this file will
+ ;; reside.
+ (substitute* "src/callpython.lisp"
+ (("py4cl/config:\\*base-directory\\*")
+ (string-append
+ "\""
+ (assoc-ref outputs "out")
+ "/share/common-lisp/sbcl-source/py4cl/"
+ "\""))))))))
+ (synopsis "Call python from Common Lisp")
+ (description
+ "Py4CL is a bridge between Common Lisp and Python, which enables Common
+Lisp to interact with Python code. It uses streams to communicate with a
+separate python process, the approach taken by cl4py. This is different to
+the CFFI approach used by burgled-batteries, but has the same goal.")
+ (home-page "https://github.com/bendudson/py4cl")
+ ;; MIT License
+ (license license:expat))))
+
+(define-public cl-py4cl
+ (sbcl-package->cl-source-package sbcl-py4cl))
+
+(define-public ecl-py4cl
+ (sbcl-package->ecl-package sbcl-py4cl))
+
+(define-public sbcl-parse-declarations
+ (package
+ (name "sbcl-parse-declarations")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://beta.quicklisp.org/archive/parse-declarations/"
+ "2010-10-06/parse-declarations-20101006-darcs.tgz"))
+ (sha256
+ (base32
+ "0r85b0jfacd28kr65kw9c13dx4i6id1dpmby68zjy63mqbnyawrd"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ `(#:asd-file "parse-declarations-1.0.asd"
+ #:asd-system-name "parse-declarations-1.0"))
+ (home-page "https://common-lisp.net/project/parse-declarations/")
+ (synopsis "Parse, filter, and build declarations")
+ (description
+ "Parse-Declarations is a Common Lisp library to help writing
+macros which establish bindings. To be semantically correct, such
+macros must take user declarations into account, as these may affect
+the bindings they establish. Yet the ANSI standard of Common Lisp does
+not provide any operators to work with declarations in a convenient,
+high-level way. This library provides such operators.")
+ ;; MIT License
+ (license license:expat)))
+
+(define-public cl-parse-declarations
+ (sbcl-package->cl-source-package sbcl-parse-declarations))
+
+(define-public ecl-parse-declarations
+ (sbcl-package->ecl-package sbcl-parse-declarations))
+
+(define-public sbcl-cl-quickcheck
+ (let ((commit "807b2792a30c883a2fbecea8e7db355b50ba662f")
+ (revision "1"))
+ (package
+ (name "sbcl-cl-quickcheck")
+ (version (git-version "0.0.4" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mcandre/cl-quickcheck.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "165lhypq5xkcys6hvzb3jq7ywnmqvzaflda29qk2cbs3ggas4767"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis
+ "Common Lisp port of the QuickCheck unit test framework")
+ (description
+ "Common Lisp port of the QuickCheck unit test framework")
+ (home-page "https://github.com/mcandre/cl-quickcheck")
+ ;; MIT
+ (license license:expat))))
+
+(define-public cl-cl-quickcheck
+ (sbcl-package->cl-source-package sbcl-cl-quickcheck))
+
+(define-public ecl-cl-quickcheck
+ (sbcl-package->ecl-package sbcl-cl-quickcheck))
+
+(define-public sbcl-burgled-batteries3
+ (let ((commit "9c0f6667e1a71ddf77e21793a0bea524710fef6e")
+ (revision "1"))
+ (package
+ (name "sbcl-burgled-batteries3")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/snmsts/burgled-batteries3.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0b726kz2xxcg5l930gz035rsdvhxrzmp05iwfwympnb4z4ammicb"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ '(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'set-*cpython-include-dir*-var
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "grovel-include-dir.lisp"
+ (("\\(defparameter \\*cpython-include-dir\\* \\(detect-python\\)\\)")
+ (string-append
+ "(defparameter *cpython-include-dir* \""
+ (assoc-ref inputs "python")
+ "/include/python3.7m"
+ "\")")))
+ (substitute* "ffi-interface.lisp"
+ (("\\*cpython-lib\\*")
+ (format #f "'(\"~a/lib/libpython3.so\")"
+ (assoc-ref inputs "python"))))
+ #t)))))
+ (native-inputs
+ `(("python" ,python)
+ ("sbcl-cl-fad" ,sbcl-cl-fad)
+ ("sbcl-lift" ,sbcl-lift)
+ ("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
+ (inputs
+ `(("sbcl-cffi" ,sbcl-cffi)
+ ("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
+ ("sbcl-alexandria" , sbcl-alexandria)
+ ("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
+ ("sbcl-trivial-garbage" ,sbcl-trivial-garbage)))
+ (synopsis "Bridge between Python and Lisp (FFI bindings, etc.)")
+ (description
+ "This package provides a shim between Python3 (specifically, the
+CPython implementation of Python) and Common Lisp.")
+ (home-page "https://github.com/snmsts/burgled-batteries3")
+ ;; MIT
+ (license license:expat))))
+
+(define-public cl-burgled-batteries3
+ (sbcl-package->cl-source-package sbcl-burgled-batteries3))
+
+(define-public ecl-burgled-batteries3
+ (sbcl-package->ecl-package sbcl-burgled-batteries3))
+
+(define-public sbcl-metabang-bind
+ (let ((commit "c93b7f7e1c18c954c2283efd6a7fdab36746ab5e")
+ (revision "1"))
+ (package
+ (name "sbcl-metabang-bind")
+ (version (git-version "0.8.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gwkkwg/metabang-bind.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0hd0kr91795v77akpbcyqiss9p0p7ypa9dznrllincnmgvsxlmf0"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("sbcl-lift" ,sbcl-lift)))
+ (synopsis "Macro that generalizes @code{multiple-value-bind} etc.")
+ (description
+ "Bind extends the idea of of let and destructing to provide a uniform
+syntax for all your accessor needs. It combines @code{let},
+@code{destructuring-bind}, @code{with-slots}, @code{with-accessors}, structure
+editing, property or association-lists, and @code{multiple-value-bind} and a
+whole lot more into a single form.")
+ (home-page "https://common-lisp.net/project/metabang-bind/")
+ ;; MIT License
+ (license license:expat))))
+
+(define-public cl-metabang-bind
+ (sbcl-package->cl-source-package sbcl-metabang-bind))
+
+(define-public ecl-metabang-bind
+ (sbcl-package->ecl-package sbcl-metabang-bind))
+
+(define-public sbcl-fare-utils
+ (let ((commit "66e9c6f1499140bc00ccc22febf2aa528cbb5724")
+ (revision "1"))
+ (package
+ (name "sbcl-fare-utils")
+ (version (git-version "1.0.0.5" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url
+ "https://gitlab.common-lisp.net/frideau/fare-utils.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "01wsr1aap3jdzhn4hrqjbhsjx6qci9dbd3gh4gayv1p49rbg8aqr"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ `(#:test-asd-file "test/fare-utils-test.asd"))
+ (native-inputs
+ `(("sbcl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil)))
+ (synopsis "Collection of utilities and data structures")
+ (description
+ "fare-utils is a small collection of utilities. It contains a lot of
+basic everyday functions and macros.")
+ (home-page "https://gitlab.common-lisp.net/frideau/fare-utils")
+ ;; MIT License
+ (license license:expat))))
+
+(define-public cl-fare-utils
+ (sbcl-package->cl-source-package sbcl-fare-utils))
+
+(define-public ecl-fare-utils
+ (sbcl-package->ecl-package sbcl-fare-utils))
+
+(define-public sbcl-idna
+ (package
+ (name "sbcl-idna")
+ (build-system asdf-build-system/sbcl)
+ (version "0.2.2")
+ (home-page "https://github.com/antifuchs/idna")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "00nbr3mffxhlq14gg9d16pa6691s4qh35inyw76v906s77khm5a2"))))
+ (inputs
+ `(("split-sequence" ,sbcl-split-sequence)))
+ (synopsis "IDNA string encoding and decoding routines for Common Lisp")
+ (description "This Common Lisp library provides string encoding and
+decoding routines for IDNA, the International Domain Names in Applications.")
+ (license license:expat)))
+
+(define-public cl-idna
+ (sbcl-package->cl-source-package sbcl-idna))
+
+(define-public ecl-idna
+ (sbcl-package->ecl-package sbcl-idna))
+
+(define-public sbcl-swap-bytes
+ (package
+ (name "sbcl-swap-bytes")
+ (build-system asdf-build-system/sbcl)
+ (version "1.1")
+ (home-page "https://github.com/sionescu/swap-bytes")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1qysbv0jngdfkv53y874qjhcxc4qi8ixaqq6j8bzxh5z0931wv55"))))
+ (inputs
+ `(("trivial-features" ,sbcl-trivial-features)))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (arguments
+ ;; TODO: Tests fail, why?
+ `(#:tests? #f))
+ (synopsis "Efficient endianness conversion for Common Lisp")
+ (description "This Common Lisp library provides optimized byte-swapping
+primitives. The library can change endianness of unsigned integers of length
+1/2/4/8. Very useful in implementing various network protocols and file
+formats.")
+ (license license:expat)))
+
+(define-public cl-swap-bytes
+ (sbcl-package->cl-source-package sbcl-swap-bytes))
+
+(define-public ecl-swap-bytes
+ (sbcl-package->ecl-package sbcl-swap-bytes))
+
+(define-public sbcl-iolib.asdf
+ ;; Latest release is from June 2017.
+ (let ((commit "81e20614c0d27f9605bf9766214e236fd31b99b4")
+ (revision "1"))
+ (package
+ (name "sbcl-iolib.asdf")
+ (build-system asdf-build-system/sbcl)
+ (version "0.8.3")
+ (home-page "https://github.com/sionescu/iolib")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1j81r0wm7nfbwl991f26s4npcy7kybzybd3m47rbxy31h0cfcmdm"))))
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)))
+ (arguments
+ '(#:asd-file "iolib.asdf.asd"))
+ (synopsis "ASDF component classes for IOLib, a Common Lisp I/O library")
+ (description "IOlib is to be a better and more modern I/O library than
+the standard Common Lisp library. It contains a socket library, a DNS
+resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
+and @code{kqueue(2)}), a pathname library and file-system utilities.")
+ (license license:expat))))
+
+(define-public sbcl-iolib.conf
+ (package
+ (inherit sbcl-iolib.asdf)
+ (name "sbcl-iolib.conf")
+ (inputs
+ `(("iolib.asdf" ,sbcl-iolib.asdf)))
+ (arguments
+ '(#:asd-file "iolib.conf.asd"))
+ (synopsis "Compile-time configuration for IOLib, a Common Lisp I/O library")))
+
+(define-public sbcl-iolib.common-lisp
+ (package
+ (inherit sbcl-iolib.asdf)
+ (name "sbcl-iolib.common-lisp")
+ (inputs
+ `(("iolib.asdf" ,sbcl-iolib.asdf)
+ ("iolib.conf" ,sbcl-iolib.conf)))
+ (arguments
+ '(#:asd-file "iolib.common-lisp.asd"))
+ (synopsis "Slightly modified Common Lisp for IOLib, a Common Lisp I/O library")))
+
+(define-public sbcl-iolib.base
+ (package
+ (inherit sbcl-iolib.asdf)
+ (name "sbcl-iolib.base")
+ (inputs
+ `(("iolib.asdf" ,sbcl-iolib.asdf)
+ ("iolib.conf" ,sbcl-iolib.conf)
+ ("iolib.common-lisp" ,sbcl-iolib.common-lisp)
+ ("split-sequence" ,sbcl-split-sequence)))
+ (arguments
+ '(#:asd-file "iolib.base.asd"))
+ (synopsis "Base package for IOLib, a Common Lisp I/O library")))
+
+(define-public sbcl-iolib.grovel
+ (package
+ (inherit sbcl-iolib.asdf)
+ (name "sbcl-iolib.grovel")
+ (inputs
+ `(("iolib.asdf" ,sbcl-iolib.asdf)
+ ("iolib.conf" ,sbcl-iolib.conf)
+ ("iolib.base", sbcl-iolib.base)
+ ("cffi", sbcl-cffi)))
+ (arguments
+ '(#:asd-file "iolib.grovel.asd"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-header
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; This header is required by sbcl-iolib.
+ (install-file "src/grovel/grovel-common.h"
+ (string-append (assoc-ref outputs "out")
+ "/lib/sbcl"))
+ #t)))))
+ (synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
+
+(define-public sbcl-iolib
+ (package
+ (inherit sbcl-iolib.asdf)
+ (name "sbcl-iolib")
+ (inputs
+ `(("iolib.asdf" ,sbcl-iolib.asdf)
+ ("iolib.conf" ,sbcl-iolib.conf)
+ ("iolib.grovel" ,sbcl-iolib.grovel)
+ ("iolib.base", sbcl-iolib.base)
+ ("bordeaux-threads", sbcl-bordeaux-threads)
+ ("idna", sbcl-idna)
+ ("swap-bytes", sbcl-swap-bytes)
+ ("libfixposix", libfixposix)))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (arguments
+ '(#:asd-file "iolib.asd"
+ #:asd-system-name "iolib"
+ #:test-asd-file "iolib.tests.asd"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/syscalls/ffi-functions-unix.lisp"
+ (("\\(:default \"libfixposix\"\\)")
+ (string-append
+ "(:default \""
+ (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
+ ;; Socket tests need Internet access, disable them.
+ (substitute* "iolib.tests.asd"
+ (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
+ "")))))))
+ (synopsis "Common Lisp I/O library")))
+
+(define sbcl-iolib+multiplex
+ (package
+ (inherit sbcl-iolib)
+ (name "sbcl-iolib+multiplex")
+ (arguments
+ (substitute-keyword-arguments (package-arguments sbcl-iolib)
+ ((#:asd-system-name _) "iolib/multiplex")))))
+
+(define sbcl-iolib+syscalls
+ (package
+ (inherit sbcl-iolib)
+ (name "sbcl-iolib+syscalls")
+ (arguments
+ (substitute-keyword-arguments (package-arguments sbcl-iolib)
+ ((#:asd-system-name _) "iolib/syscalls")))))
+
+(define sbcl-iolib+streams
+ (package
+ (inherit sbcl-iolib)
+ (name "sbcl-iolib+streams")
+ (arguments
+ (substitute-keyword-arguments (package-arguments sbcl-iolib)
+ ((#:asd-system-name _) "iolib/streams")))))
+
+(define sbcl-iolib+sockets
+ (package
+ (inherit sbcl-iolib)
+ (name "sbcl-iolib+sockets")
+ (arguments
+ (substitute-keyword-arguments (package-arguments sbcl-iolib)
+ ((#:asd-system-name _) "iolib/sockets")))))
+
+(define-public sbcl-ieee-floats
+ (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
+ (revision "1"))
+ (package
+ (name "sbcl-ieee-floats")
+ (build-system asdf-build-system/sbcl)
+ (version (git-version "20170924" revision commit))
+ (home-page "https://github.com/marijnh/ieee-floats/")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m"))))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (synopsis "IEEE 754 binary representation for floats in Common Lisp")
+ (description "This is a Common Lisp library that allows to convert
+floating point values to IEEE 754 binary representation.")
+ (license license:bsd-3))))
+
+(define sbcl-closure-common
+ (let ((commit "e3c5f5f454b72b01b89115e581c3c52a7e201e5c")
+ (revision "1"))
+ (package
+ (name "sbcl-closure-common")
+ (build-system asdf-build-system/sbcl)
+ (version (git-version "20101006" revision commit))
+ (home-page "https://github.com/sharplispers/closure-common")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n"))))
+ (inputs
+ `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
+ ("babel" ,sbcl-babel)))
+ (synopsis "Support Common Lisp library for CXML")
+ (description "Closure-common is an internal helper library. The name
+Closure is a reference to the web browser it was originally written for.")
+ ;; TODO: License?
+ (license #f))))
+
+(define-public sbcl-cl-reexport
+ (let ((commit "312f3661bbe187b5f28536cd7ec2956e91366c3b")
+ (revision "1"))
+ (package
+ (name "sbcl-cl-reexport")
+ (build-system asdf-build-system/sbcl)
+ (version (git-version "0.1" revision commit))
+ (home-page "https://github.com/takagi/cl-reexport")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1cwpn1m3wrl0fl9plznn7p464db646gnfc8zkyk97dyxski2aq0x"))))
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)))
+ (arguments
+ ;; TODO: Tests fail because cl-test-more is missing, but I can't find it online.
+ `(#:tests? #f))
+ (synopsis "HTTP cookie manager for Common Lisp")
+ (description "cl-cookie is a Common Lisp library featuring parsing of
+cookie headers, cookie creation, cookie jar creation and more.")
+ (license license:llgpl))))
+
+(define-public sbcl-cl-cookie
+ (let ((commit "cea55aed8b9ad25fafd13defbcb9fe8f41b29546")
+ (revision "1"))
+ (package
+ (name "sbcl-cl-cookie")
+ (build-system asdf-build-system/sbcl)
+ (version (git-version "0.9.10" revision commit))
+ (home-page "https://github.com/fukamachi/cl-cookie")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "090g7z75h98zvc1ldx0vh4jn4086dhjm2w30jcwkq553qmyxwl8h"))))
+ (inputs
+ `(("proc-parse" ,sbcl-proc-parse)
+ ("alexandria" ,sbcl-alexandria)
+ ("quri" ,sbcl-quri)
+ ("cl-ppcre" ,sbcl-cl-ppcre)
+ ("local-time" ,sbcl-local-time)))
+ (native-inputs
+ `(("prove-asdf" ,sbcl-prove-asdf)
+ ("prove" ,sbcl-prove)))
+ (arguments
+ ;; TODO: Tests fail because cl-cookie depends on cl-cookie-test.
+ `(#:tests? #f))
+ (synopsis "HTTP cookie manager for Common Lisp")
+ (description "cl-cookie is a Common Lisp library featuring parsing of
+cookie headers, cookie creation, cookie jar creation and more.")
+ (license license:bsd-2))))
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 8cb05a6cad..732ffc0823 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -31,6 +31,7 @@
#:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
@@ -273,7 +274,7 @@ code analysis tools.")
version "/libcxx-" version ".src.tar.xz"))
(sha256
(base32
- "1wdrxg365ig0kngx52pd0n820sncp24blb0zpalc579iidhh4002"))))
+ "1qlx3wlxrnc5cwc1fcfc2vhfsl7j4294hi8y5kxj8hy8wxsjd462"))))
(build-system cmake-build-system)
(native-inputs
`(("clang" ,clang)
@@ -285,6 +286,44 @@ code analysis tools.")
use with Clang, targeting C++11, C++14 and above.")
(license license:expat)))
+(define-public libclc
+ (package
+ (name "libclc")
+ (version (package-version llvm))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/llvm/llvm-project.git")
+ (commit (string-append "llvmorg-" version))))
+ (sha256
+ (base32
+ "052h16wjcnqginzp7ki4il2xmm25v9nyk0wcz7cg03gbryhl7aqa"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ (list (string-append "-DLLVM_CLANG="
+ (assoc-ref %build-inputs "clang")
+ "/bin/clang")
+ (string-append "-DPYTHON="
+ (assoc-ref %build-inputs "python")
+ "/bin/python3"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _ (chdir "libclc") #t)))))
+ (native-inputs
+ `(("clang" ,clang)
+ ("llvm" ,llvm)
+ ("python" ,python)))
+ (home-page "https://libclc.llvm.org")
+ (synopsis "Libraries for the OpenCL programming language")
+ (description
+ "This package provides an implementation of the OpenCL library
+requirements according to version 1.1 of the OpenCL specification.")
+ ;; Apache license 2.0 with LLVM exception
+ (license license:asl2.0)))
+
(define-public libomp
(package
(name "libomp")
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index bf35d943ce..1694b7c6b1 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.")
(define-public mutt
(package
(name "mutt")
- (version "1.12.0")
+ (version "1.12.1")
(source (origin
(method url-fetch)
(uri (string-append "https://bitbucket.org/mutt/mutt/downloads/"
"mutt-" version ".tar.gz"))
(sha256
(base32
- "13zr2fpql33sdbsjsiaa952js5bvphc1x4lqsj36qyzdhj3l84na"))
+ "0311sip2q90aqaxn7h3cck1zl98b4vifqi8bp5fsizy4dr06bi81"))
(patches (search-patches "mutt-store-references.patch"))))
(build-system gnu-build-system)
(inputs
@@ -1433,14 +1433,14 @@ hashing schemes plugin for @code{Dovecot}.")
(define-public isync
(package
(name "isync")
- (version "1.3.0")
+ (version "1.3.1")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/isync/isync/"
version "/isync-" version ".tar.gz"))
(sha256 (base32
- "173wd7x8y5sp94slzwlnb7zhgs32r57zl9xspl2rf4g3fqwmhpwd"))))
+ "1sphd30jplii58y2zmw365bckm6pszmapcy905zhjll1sm1ldjv8"))))
(build-system gnu-build-system)
(native-inputs
`(("perl" ,perl)))
diff --git a/gnu/packages/mastodon.scm b/gnu/packages/mastodon.scm
index 028745f681..cd12f5a7fd 100644
--- a/gnu/packages/mastodon.scm
+++ b/gnu/packages/mastodon.scm
@@ -42,6 +42,12 @@
'(#:phases
(modify-phases %standard-phases
(delete 'check)
+ ;; see https://github.com/ihabunek/toot/issues/91
+ (add-after 'unpack 'dont-install-Makefile
+ (lambda _
+ (substitute* "setup.py"
+ (("data_files.*" all) ""))
+ #t))
(add-after 'install 'check
(lambda* (#:key inputs outputs #:allow-other-keys)
(add-installed-pythonpath inputs outputs)
diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index c2a6aaf011..9e9fda0929 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 ng0 <ng0@n0.is>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com>
;;;
@@ -195,20 +195,19 @@ from Mint-X-F and Faenza-Fresh icon packs.")
(define-public mate-themes
(package
(name "mate-themes")
- (version "3.22.19")
+ (version "3.22.20")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://mate/themes/" (version-major+minor version)
"/mate-themes-" version ".tar.xz"))
- (sha256
- (base32
- "1ycb8b8r0s8d1h1477135mynr53s5781gdb2ap8xlvj2g58492wq"))))
+ (sha256
+ (base32 "0c3dhf8p9nc2maky4g9xr04iil9wwbdkmhpzynlc6lfg4ksqq2bx"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("intltool" ,intltool)
- ("gdk-pixbuf" ,gdk-pixbuf) ; gdk-pixbuf+svg isn't needed
+ ("gdk-pixbuf" ,gdk-pixbuf) ; gdk-pixbuf+svg isn't needed
("gtk" ,gtk+-2)))
(home-page "https://mate-desktop.org/")
(synopsis
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index d7ca43c5d7..c595103ac5 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -613,14 +613,14 @@ singular value problems.")
(define-public gnuplot
(package
(name "gnuplot")
- (version "5.2.6")
+ (version "5.2.7")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gnuplot/gnuplot/"
version "/gnuplot-"
version ".tar.gz"))
(sha256
- (base32 "1vllgap08nhvdmc03idmkdnk9cfl2bp81hps50q1pqrr640qzp9m"))))
+ (base32 "1vglp4la40f5dpj0zdj63zprrkyjgzy068p35bz5dqxjyczm1zlp"))))
(build-system gnu-build-system)
(inputs `(("readline" ,readline)
("cairo" ,cairo)
diff --git a/gnu/packages/mc.scm b/gnu/packages/mc.scm
index 3d6185ca78..76bf77d1c8 100644
--- a/gnu/packages/mc.scm
+++ b/gnu/packages/mc.scm
@@ -37,14 +37,14 @@
(define-public mc
(package
(name "mc")
- (version "4.8.22")
+ (version "4.8.23")
(source
(origin
(method url-fetch)
(uri (string-append "http://ftp.midnight-commander.org/mc-"
version ".tar.xz"))
(sha256
- (base32 "060kh3dmk8fmmsibn1l815qjazzfxzbhgqggrhncz604pbbnhy7f"))))
+ (base32 "077z7phzq3m1sxyz7li77lyzv4rjmmh3wp2vy86pnc4387kpqzyx"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("perl" ,perl)))
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 7d036ad473..503781a9eb 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -42,6 +42,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
+ #:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
@@ -490,56 +491,43 @@ compromised.")
(define-public znc
(package
(name "znc")
- (version "1.7.3")
+ (version "1.7.4")
(source (origin
(method url-fetch)
(uri (string-append "http://znc.in/releases/archive/znc-"
version ".tar.gz"))
(sha256
(base32
- "0g8i5hsl4kinpz1wp0a2zniidv3w2sd6awq8676fds516wcc6k0y"))))
- ;; TODO: autotools support has been deprecated, and new features like i18n
- ;; are only supported when building with cmake.
- (build-system gnu-build-system)
+ "0wcvqkpin8w4i72alnn0nxnrc9ih543qs34hqpk9xmz6m0hjk8xi"))))
+ (build-system cmake-build-system)
(arguments
- `(#:phases
+ `(#:configure-flags
+ (list "-DWANT_CYRUS=ON"
+ "-DWANT_I18N=ON"
+ "-DWANT_PERL=ON"
+ "-DWANT_PYTHON=ON")
+ #:phases
(modify-phases %standard-phases
(add-after 'unpack 'unpack-googletest
+ ;; Copy the googletest sources to where the CMake build expects them.
(lambda* (#:key inputs #:allow-other-keys)
- (mkdir-p "googletest")
- (copy-recursively (assoc-ref inputs "googletest-source")
- "googletest")
- #t)))
- #:configure-flags '("--enable-python"
- "--enable-perl"
- "--enable-cyrus"
- "--with-gmock=googletest/googlemock"
- "--with-gtest=googletest/googletest")
- #:test-target "test"))
+ (let ((source (assoc-ref inputs "googletest-source"))
+ (target "third_party/googletest"))
+ (mkdir-p target)
+ (copy-recursively source target)
+ #t))))))
(native-inputs
- `(("googletest-source"
- ;; ZNC 1.7 needs a newer, unreleased googletest (a release is planned
- ;; <https://github.com/google/googletest/issues/1583>, so don't update
- ;; the public GOOGLETEST to an unstable version). The commit is taken
- ;; from ‘third_party/googletest’ in the ZNC git repository.
- ,(let ((commit "9737e63c69e94ac5777caa0bc77c77d5206467f3"))
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/google/googletest")
- (commit commit)))
- (file-name (git-file-name "googletest-for-znc" commit))
- (sha256
- (base32
- "0ya36n8d62zbxk6p22yffgx43mqhx2fz41gqqwbpdshjryf3wvxj")))))
- ("pkg-config" ,pkg-config)
- ("perl" ,perl)
- ("python" ,python)))
+ `(("boost" ,boost)
+ ("gettext" ,gettext-minimal)
+ ("googletest-source" ,(package-source googletest))
+ ("pkg-config" ,pkg-config)))
(inputs
- `(("openssl" ,openssl)
- ("zlib" ,zlib)
+ `(("cyrus-sasl" ,cyrus-sasl)
("icu4c" ,icu4c)
- ("cyrus-sasl" ,cyrus-sasl)))
+ ("openssl" ,openssl)
+ ("perl" ,perl)
+ ("python" ,python)
+ ("zlib" ,zlib)))
(home-page "https://znc.in")
(synopsis "IRC network bouncer")
(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 461296f66b..c9cd7b1382 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -339,14 +339,14 @@ only provides @code{MPI_THREAD_FUNNELED}.")))
(define-public python-mpi4py
(package
(name "python-mpi4py")
- (version "3.0.1")
+ (version "3.0.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "mpi4py" version))
(sha256
(base32
- "0ld8rjmsjr0dklvj2g1gr3ax32sdq0xjxyh0cspknc1i36waajb5"))))
+ "1q28xl36difma1wq0acq111cqxjya32kn3lxp6fbidz3wg8jkmpq"))))
(build-system python-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 1c0a4f3982..ca9cbd3343 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -20,6 +20,7 @@
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
+;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -314,7 +315,7 @@ playing your music.")
(define-public cmus
(package
(name "cmus")
- (version "2.7.1")
+ (version "2.8.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -323,7 +324,7 @@ playing your music.")
(file-name (git-file-name name version))
(sha256
(base32
- "0xd96py21bl869qlv1353zw7xsgq6v5s8szr0ldr63zj5fgc2ps5"))))
+ "1ydnvq13ay8b8mfmmgwi5qsgyf220yi1d01acbnxqn775dghmwar"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; cmus does not include tests
@@ -1362,7 +1363,7 @@ users to select LV2 plugins and run them with jalv.")
(define-public synthv1
(package
(name "synthv1")
- (version "0.9.7")
+ (version "0.9.8")
(source (origin
(method url-fetch)
(uri
@@ -1370,12 +1371,10 @@ users to select LV2 plugins and run them with jalv.")
"/synthv1-" version ".tar.gz"))
(sha256
(base32
- "0i70wm430fvksi3g985farrkhgb7mwhi7j06dl66cdj1n12jzzk7"))))
+ "15kabmxp38wqvavs5hr1dqasjjf1j977kzqggxfmzyi3y5fan3hj"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; there are no tests
- #:configure-flags
- '("CXXFLAGS=-std=gnu++11")))
+ `(#:tests? #f)) ; there are no tests
(inputs
`(("jack" ,jack-1)
("lv2" ,lv2)
@@ -1396,7 +1395,7 @@ oscillators and stereo effects.")
(define-public drumkv1
(package
(name "drumkv1")
- (version "0.9.7")
+ (version "0.9.8")
(source (origin
(method url-fetch)
(uri
@@ -1404,12 +1403,10 @@ oscillators and stereo effects.")
"/drumkv1-" version ".tar.gz"))
(sha256
(base32
- "1361dqdasrc98q9hcjdwsjx6agfimwnay430887fryi3pslkyd81"))))
+ "010p8nwnmqgj5mw324psig3hxi1g2gylxrigd6sj6sgcpy3kdm23"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; there are no tests
- #:configure-flags
- '("CXXFLAGS=-std=gnu++11")))
+ `(#:tests? #f)) ; there are no tests
(inputs
`(("jack" ,jack-1)
("lv2" ,lv2)
@@ -1431,7 +1428,7 @@ effects.")
(define-public samplv1
(package
(name "samplv1")
- (version "0.9.7")
+ (version "0.9.8")
(source (origin
(method url-fetch)
(uri
@@ -1439,12 +1436,10 @@ effects.")
"/samplv1-" version ".tar.gz"))
(sha256
(base32
- "1vgmcjccpgqqlmmwfg6m91nph81p2xaxydjx82n4l1yrr9lidn9h"))))
+ "138kd9szgn3b97s7crhsyj8pgwb0bn4l9knd4zliqjgj2f1bs9x0"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; there are no tests
- #:configure-flags
- '("CXXFLAGS=-std=gnu++11")))
+ `(#:tests? #f)) ; there are no tests
(inputs
`(("jack" ,jack-1)
("lv2" ,lv2)
@@ -1466,7 +1461,7 @@ effects.")
(define-public padthv1
(package
(name "padthv1")
- (version "0.9.7")
+ (version "0.9.8")
(source (origin
(method url-fetch)
(uri
@@ -1474,12 +1469,10 @@ effects.")
"/padthv1-" version ".tar.gz"))
(sha256
(base32
- "1jd4bf6a1ipvg4yhb3xf3maqg68bx97ic9l57djmkirlrkh2a3wp"))))
+ "1k4p2ir12qjcs62knvw2s6qyvb46203yx22fnwp341cjk171cxji"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; there are no tests
- #:configure-flags
- '("CXXFLAGS=-std=gnu++11")))
+ `(#:tests? #f)) ; there are no tests
(inputs
`(("jack" ,jack-1)
("lv2" ,lv2)
@@ -2871,7 +2864,7 @@ for improved Amiga ProTracker 2/3 compatibility.")
(define-public schismtracker
(package
(name "schismtracker")
- (version "20181223")
+ (version "20190614")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2880,7 +2873,7 @@ for improved Amiga ProTracker 2/3 compatibility.")
(file-name (git-file-name name version))
(sha256
(base32
- "18k5j10zq39y2q294avdmar87x93k57wqmq8bpz562hdqki2mz1l"))
+ "0cg0q5bkn8a06v03vmj69xyhi4xxpl729k4008q4hiakh9gy2x49"))
(modules '((guix build utils)))
(snippet
;; Remove use of __DATE__ and __TIME__ for reproducibility.
@@ -2900,7 +2893,7 @@ for improved Amiga ProTracker 2/3 compatibility.")
("automake" ,automake)
("python" ,python)))
(inputs
- `(("alsa-lib" ,alsa-lib) ; for asound dependency
+ `(("alsa-lib" ,alsa-lib) ; for asound dependency
("libx11" ,libx11)
("libxext" ,libxext)
("sdl" ,sdl)))
diff --git a/gnu/packages/patches/emacs-zones-called-interactively.patch b/gnu/packages/patches/emacs-zones-called-interactively.patch
index b60f390a7e..eefcfdd12e 100644
--- a/gnu/packages/patches/emacs-zones-called-interactively.patch
+++ b/gnu/packages/patches/emacs-zones-called-interactively.patch
@@ -1,4 +1,4 @@
-From fb56fbb706804215ef9af0cc575db97c373046c6 Mon Sep 17 00:00:00 2001
+From 81603e53ebaae0f0b23c4c52c7dab83e808964ec Mon Sep 17 00:00:00 2001
From: Brian Leung <bkleung89@gmail.com>
Date: Sun, 17 Mar 2019 01:32:04 +0100
Subject: [PATCH] This patch silences the byte-compiler.
@@ -8,36 +8,36 @@ Subject: [PATCH] This patch silences the byte-compiler.
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/zones.el b/zones.el
-index 1bf94f0..94fa9a6 100644
+index ca88d48..594ea36 100644
--- a/zones.el
+++ b/zones.el
-@@ -1031,7 +1031,7 @@ You can use `C-x n x' to widen to a previous buffer restriction.
+@@ -1075,7 +1075,7 @@ You can use `C-x n x' to widen to a previous buffer restriction.
This is a destructive operation. The list structure of the variable
value can be modified."
- (zz-narrow-advice (interactive-p)))
-+ (zz-narrow-advice (called-interactively-p)))
++ (zz-narrow-advice (called-interactively-p 'interactive)))
(defadvice narrow-to-defun (after zz-add-zone--defun activate)
"Push the defun limits to the current `zz-izones-var'.
-@@ -1039,7 +1039,7 @@ You can use `C-x n x' to widen to a previous buffer restriction.
+@@ -1083,7 +1083,7 @@ You can use `C-x n x' to widen to a previous buffer restriction.
This is a destructive operation. The list structure of the variable
value can be modified."
- (zz-narrow-advice (interactive-p)))
-+ (zz-narrow-advice (called-interactively-p)))
++ (zz-narrow-advice (called-interactively-p 'interactive)))
;; Call `zz-add-zone' if interactive or `zz-add-zone-anyway-p'.
;;
-@@ -1049,7 +1049,7 @@ You can use `C-x n x' to widen to a previous buffer restriction.
+@@ -1093,7 +1093,7 @@ You can use `C-x n x' to widen to a previous buffer restriction.
This is a destructive operation. The list structure of the variable
value can be modified."
- (zz-narrow-advice (interactive-p)))
-+ (zz-narrow-advice (called-interactively-p)))
++ (zz-narrow-advice (called-interactively-p 'interactive)))
;;(@* "General Commands")
--
-2.21.0
+2.22.0
diff --git a/gnu/packages/patches/khmer-use-libraries.patch b/gnu/packages/patches/khmer-use-libraries.patch
deleted file mode 100644
index 47d163a99a..0000000000
--- a/gnu/packages/patches/khmer-use-libraries.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Change setup.cfg so that the bundled zlib and bzip2 are not used. This cannot
-currently be achieved using "--library z,bz2" as instructed in the setup.py.
-
-diff --git a/setup.cfg b/setup.cfg
-index c054092..080992e 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -1,7 +1,7 @@
- [build_ext]
- define = SEQAN_HAS_BZIP2,SEQAN_HAS_ZLIB
- undef = NO_UNIQUE_RC
--# libraries = z,bz2
-+libraries = z,bz2
- ## if using system libraries
- include-dirs = lib:third-party/zlib:third-party/bzip2:third-party/seqan/core/include:third-party/smhasher
- # 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 0000000000..19b0776320
--- /dev/null
+++ b/gnu/packages/patches/lcalc-default-parameters-1.patch
@@ -0,0 +1,26 @@
+Patch taken from the Sage packaging system.
+
+diff -Naur lcalc-1.23-vanilla/include/Ldirichlet_series.h lcalc-1.23-fixed-gcc.4.9/include/Ldirichlet_series.h
+--- lcalc-1.23-vanilla/include/Ldirichlet_series.h 2012-08-08 23:21:55.000000000 +0200
++++ lcalc-1.23-fixed-gcc.4.9/include/Ldirichlet_series.h 2014-04-21 14:37:59.027464849 +0200
+@@ -43,7 +43,7 @@
+ //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ template <class ttype>
+ Complex L_function <ttype>::
+-dirichlet_series(Complex s, long long N=-1)
++dirichlet_series(Complex s, long long N)
+ {
+ Complex z=0.;
+ long long m,n;
+diff -Naur lcalc-1.23-vanilla/include/L.h lcalc-1.23-fixed-gcc.4.9/include/L.h
+--- lcalc-1.23-vanilla/include/L.h 2012-08-08 23:21:55.000000000 +0200
++++ lcalc-1.23-fixed-gcc.4.9/include/L.h 2014-04-21 14:32:04.003467348 +0200
+@@ -491,7 +491,7 @@
+
+ //#include "Ldirichlet_series.h" //for computing Dirichlet series
+ Complex partial_dirichlet_series(Complex s, long long N1, long long N2);
+- Complex dirichlet_series(Complex s, long long N);
++ Complex dirichlet_series(Complex s, long long N=-1LL);
+
+ //#include "Ltaylor_series.h" //for computing taylor series for Dirichlet series
+ //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 0000000000..1d881ee0c4
--- /dev/null
+++ b/gnu/packages/patches/lcalc-default-parameters-2.patch
@@ -0,0 +1,58 @@
+Patch taken from the Sage packaging system.
+
+--- lcalc-1.23/include/Lgamma.h 2012-08-08 23:21:55.000000000 +0200
++++ lcalc-1.23/include/Lgamma.h 2014-05-18 21:15:27.786889718 +0200
+@@ -77,7 +77,7 @@
+ //n=0 should just give log_GAMMA(z)... thus making log_GAMMA
+ //code obsolete. But leave log_GAMMA intact anyways.
+ template <class ttype>
+-precise(ttype) log_GAMMA (ttype z,int n=0)
++precise(ttype) log_GAMMA (ttype z,int n)
+ {
+ int M;
+ precise(ttype) log_G,r,r2,y;
+@@ -230,7 +230,7 @@
+ //value exp_w which holds exp(-w)
+ //computes G(z,w), so there's an extra w^(-z) factor.
+ template <class ttype>
+-Complex inc_GAMMA (ttype z,ttype w, const char *method="temme", ttype exp_w = 0, bool recycle=false)
++Complex inc_GAMMA (ttype z,ttype w, const char *method, ttype exp_w, bool recycle)
+ {
+
+ Complex G;
+@@ -334,7 +334,7 @@
+
+
+ template <class ttype>
+-ttype cfrac_GAMMA (ttype z,ttype w, ttype exp_w=0, bool recycle=false) //computes G(z,w) via continued fraction
++ttype cfrac_GAMMA (ttype z,ttype w, ttype exp_w, bool recycle) //computes G(z,w) via continued fraction
+ {
+
+ ttype G;
+@@ -424,7 +424,7 @@
+ }
+
+ template <class ttype>
+-ttype asympt_GAMMA (ttype z,ttype w, ttype exp_w = 0, bool recycle=false) //computes G(z,w) via asymptotic series
++ttype asympt_GAMMA (ttype z,ttype w, ttype exp_w, bool recycle) //computes G(z,w) via asymptotic series
+ {
+
+ if(my_verbose>3) cout << "called asympt_GAMMA("<<z<<","<<w<<")"<< endl;
+@@ -446,7 +446,7 @@
+
+
+ template <class ttype>
+-ttype comp_inc_GAMMA (ttype z,ttype w,ttype exp_w = 0, bool recycle=false) //computes g(z,w)
++ttype comp_inc_GAMMA (ttype z,ttype w,ttype exp_w, bool recycle) //computes g(z,w)
+ {
+
+ ttype g;
+@@ -604,7 +604,7 @@
+ }
+
+ template <class ttype>
+-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")
++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)
+ {
+ Complex SUM=0;
+
diff --git a/gnu/packages/patches/lcalc-lcommon-h.patch b/gnu/packages/patches/lcalc-lcommon-h.patch
new file mode 100644
index 0000000000..897956de64
--- /dev/null
+++ b/gnu/packages/patches/lcalc-lcommon-h.patch
@@ -0,0 +1,13 @@
+Patch taken from the Sage packaging system.
+
+--- src/include/Lcommon.h 2010-01-31 15:16:45.000000000 +0000
++++ src/include/Lcommon.h 2011-03-08 21:19:11.849443238 +0000
+@@ -25,7 +25,7 @@
+ #ifdef USE_MPFR
+ inline double lcalc_to_double(const double& x) { return x; }
+ #endif
+-//inline double lcalc_to_double(const long double& x) { return x; }
++inline double lcalc_to_double(const long double& x) { return x; }
+ inline double lcalc_to_double(const int& x) { return x; }
+ inline double lcalc_to_double(const long long& x) { return x; }
+ 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 0000000000..6e0075fdc8
--- /dev/null
+++ b/gnu/packages/patches/lcalc-using-namespace-std.patch
@@ -0,0 +1,43 @@
+Patch taken from the Sage packaging system.
+
+diff --git a/include/Lcommon.h b/include/Lcommon.h
+index 1b3be43..bf40532 100644
+--- a/include/Lcommon.h
++++ b/include/Lcommon.h
+@@ -48,7 +48,7 @@ const bool outputSeries=true; // Whether to output the coefficients or just th
+
+ // Loop i from m to n
+ // Useful in tidying up most for loops
+-#define loop(i,m,n) for(typeof(m) i=(m); i!=(n); i++)
++#define loop(i,m,n) for(auto i=(m); i!=(n); i++)
+
+ // A class for calculations involving polynomials of small degree
+ // Not efficient enough for huge polynomials
+diff --git a/include/Lcommon_ld.h b/include/Lcommon_ld.h
+index 86ae4df..33c560c 100644
+--- a/include/Lcommon_ld.h
++++ b/include/Lcommon_ld.h
+@@ -53,7 +53,7 @@ const bool outputSeries=true; // Whether to output the coefficients or just th
+
+ // Loop i from m to n
+ // Useful in tidying up most for loops
+-#define loop(i,m,n) for(typeof(m) i=(m); i!=(n); i++)
++#define loop(i,m,n) for(auto i=(m); i!=(n); i++)
+
+ // A class for calculations involving polynomials of small degree
+ // Not efficient enough for huge polynomials
+diff --git a/include/Lglobals.h b/include/Lglobals.h
+index 60002e4..ca2606c 100644
+--- a/include/Lglobals.h
++++ b/include/Lglobals.h
+@@ -24,9 +24,9 @@
+ #ifndef Lglobals_H
+ #define Lglobals_H
+
++#include <valarray>
+ using namespace std;
+
+-#include <valarray>
+ #ifdef USE_MPFR
+ #include "Lgmpfrxx.h"
+ 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 0000000000..7291b4ab72
--- /dev/null
+++ b/gnu/packages/patches/leela-zero-gtest.patch
@@ -0,0 +1,40 @@
+Use shared gtest instead of submodule
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 617e4b2..2857875 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -18,7 +18,6 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
+ include(GNUInstallDirs)
+
+ project(leelaz)
+-add_subdirectory(gtest EXCLUDE_FROM_ALL) # We don't want to install gtest, exclude it from `all`
+
+ # Required Packages
+ set(Boost_MIN_VERSION "1.58.0")
+@@ -27,6 +26,7 @@ find_package(Boost 1.58.0 REQUIRED program_options filesystem)
+ find_package(Threads REQUIRED)
+ find_package(ZLIB REQUIRED)
+ find_package(OpenCL REQUIRED)
++find_package(GTest REQUIRED)
+ # We need OpenBLAS for now, because we make some specific
+ # calls. Ideally we'd use OpenBLAS is possible and fall back to
+ # not doing those calls if it's not present.
+@@ -93,6 +93,7 @@ include_directories(${IncludePath})
+ include_directories(${Boost_INCLUDE_DIRS})
+ include_directories(${OpenCL_INCLUDE_DIRS})
+ include_directories(${ZLIB_INCLUDE_DIRS})
++include_directories(${GTEST_INCLUDE_DIRS})
+
+ if((UNIX AND NOT APPLE) OR WIN32)
+ include_directories(${BLAS_INCLUDE_DIRS})
+@@ -141,7 +142,8 @@ target_link_libraries(tests ${Boost_LIBRARIES})
+ target_link_libraries(tests ${BLAS_LIBRARIES})
+ target_link_libraries(tests ${OpenCL_LIBRARIES})
+ target_link_libraries(tests ${ZLIB_LIBRARIES})
+-target_link_libraries(tests gtest_main ${CMAKE_THREAD_LIBS_INIT})
++target_link_libraries(tests ${GTEST_BOTH_LIBRARIES})
++target_link_libraries(tests ${CMAKE_THREAD_LIBS_INIT})
+
+ include(GetGitRevisionDescription)
+ 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 0000000000..e15286905b
--- /dev/null
+++ b/gnu/packages/patches/lrcalc-includes.patch
@@ -0,0 +1,92 @@
+Patch taken from the Sage packaging system.
+
+From 4a5e1c8c3c11efdb1cbb4239825a6bf4bf1c52f8 Mon Sep 17 00:00:00 2001
+From: Anders Skovsted Buch <asbuch@math.rutgers.edu>
+Date: Sun, 29 Nov 2015 16:25:56 -0500
+Subject: [PATCH] Patch by Jeroen Demeyer to change include <vector.h> to
+ "vector.h", plus similar cases.
+
+---
+ src/lrcalc.c | 2 +-
+ src/maple.c | 4 ++--
+ src/schublib.h | 2 +-
+ src/symfcn.c | 6 +++---
+ src/symfcn.h | 4 ++--
+ 5 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/src/lrcalc.c b/src/lrcalc.c
+index aff3f75..60df49e 100644
+--- a/src/lrcalc.c
++++ b/src/lrcalc.c
+@@ -8,7 +8,7 @@
+ #include <stdlib.h>
+ extern char *optarg;
+
+-#include <vectarg.h>
++#include "vectarg.h"
+
+ #include "symfcn.h"
+ #include "maple.h"
+diff --git a/src/maple.c b/src/maple.c
+index fdc0768..a5f4d14 100644
+--- a/src/maple.c
++++ b/src/maple.c
+@@ -4,8 +4,8 @@
+ */
+
+ #include <stdio.h>
+-#include <vector.h>
+-#include <hashtab.h>
++#include "vector.h"
++#include "hashtab.h"
+ #include "maple.h"
+
+
+diff --git a/src/schublib.h b/src/schublib.h
+index a8e8511..864850c 100644
+--- a/src/schublib.h
++++ b/src/schublib.h
+@@ -1,7 +1,7 @@
+ #ifndef _SCHUBLIB_H
+ #define _SCHUBLIB_H
+
+-#include <hashtab.h>
++#include "hashtab.h"
+
+ hashtab *trans(vector *w, int vars, hashtab *res);
+ hashtab *monk(int i, hashtab *slc, int rank);
+diff --git a/src/symfcn.c b/src/symfcn.c
+index 4ffbe4b..fd5df5d 100644
+--- a/src/symfcn.c
++++ b/src/symfcn.c
+@@ -5,9 +5,9 @@
+
+ #include <stdio.h>
+
+-#include <alloc.h>
+-#include <vector.h>
+-#include <hashtab.h>
++#include "alloc.h"
++#include "vector.h"
++#include "hashtab.h"
+
+ #include "symfcn.h"
+
+diff --git a/src/symfcn.h b/src/symfcn.h
+index b8543b1..29bb00d 100644
+--- a/src/symfcn.h
++++ b/src/symfcn.h
+@@ -1,8 +1,8 @@
+ #ifndef _SYMFCN_H
+ #define _SYMFCN_H
+
+-#include <hashtab.h>
+-#include <vector.h>
++#include "hashtab.h"
++#include "vector.h"
+
+ int part_itr_sz(vector *part);
+ int part_itr_sub(vector *part, vector *outer);
+--
+2.1.1.1.g1fb337f
+
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 0000000000..caa6aea39e
--- /dev/null
+++ b/gnu/packages/patches/python-pyatspi-python-37.patch
@@ -0,0 +1,82 @@
+From 29a7b929f7f1160b643dc5f5911533887173fcff Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
+Date: Thu, 28 Jun 2018 17:10:33 +0200
+Subject: [PATCH] Rename async to asynchronous, keep backwards comaptibility
+
+async is a keyword in Python 3.7 and keeping it results in SyntaxError.
+
+Fixes https://gitlab.gnome.org/GNOME/pyatspi2/issues/1
+---
+ pyatspi/registry.py | 35 +++++++++++++++++++++++++++--------
+ 1 file changed, 27 insertions(+), 8 deletions(-)
+
+diff --git a/pyatspi/registry.py b/pyatspi/registry.py
+index cb28395..f73ee16 100644
+--- a/pyatspi/registry.py
++++ b/pyatspi/registry.py
+@@ -50,9 +50,9 @@ class Registry(object):
+ reference to the Accessibility.Registry singleton. Doing so is harmless and
+ has no point.
+
+- @@ivar async: Should event dispatch to local listeners be decoupled from event
+- receiving from the registry?
+- @@type async: boolean
++ @@ivar asynchronous: Should event dispatch to local listeners be decoupled
++ from event receiving from the registry?
++ @@type asynchronous: boolean
+ @@ivar reg: Reference to the real, wrapped registry object
+ @@type reg: Accessibility.Registry
+ @@ivar dev: Reference to the device controller
+@@ -111,25 +111,44 @@ class Registry(object):
+
+ self.has_implementations = True
+
+- self.async = False # not fully supported yet
++ self.asynchronous = False # not fully supported yet
+ self.started = False
+ self.event_listeners = dict()
+
++ def __getattr__(self, name):
++ """
++ For backwards compatibility with old API
++ """
++ if name == 'async':
++ return self.asynchronous
++ return object.__getattr__(self, name)
++
++ def __setattr__(self, name, value):
++ """
++ For backwards compatibility with old API
++ """
++ if name == 'async':
++ self.asynchronous = value
++ object.__setattr__(self, name, value)
++
+ def _set_default_registry (self):
+ self._set_registry (MAIN_LOOP_GLIB)
+
+- def start(self, async=False, gil=True):
++ def start(self, asynchronous=False, gil=True, **kwargs):
+ """
+ Enter the main loop to start receiving and dispatching events.
+
+- @@param async: Should event dispatch be asynchronous (decoupled) from
+- event receiving from the AT-SPI registry?
+- @@type async: boolean
++ @@param asynchronous: Should event dispatch be asynchronous
++ (decoupled) from event receiving from the AT-SPI registry?
++ @@type asynchronous: boolean
+ @@param gil: Add an idle callback which releases the Python GIL for a few
+ milliseconds to allow other threads to run? Necessary if other threads
+ will be used in this process.
+ @@type gil: boolean
+ """
++ if 'async' in kwargs:
++ # support previous API
++ asynchronous = kwargs['async']
+ if not self.has_implementations:
+ self._set_default_registry ()
+ self.started = True
+--
+2.22.0
+
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 3690050944..6318a4b309 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -1039,7 +1039,7 @@ multiple files.")
(define-public pdfpc
(package
(name "pdfpc")
- (version "4.3.2")
+ (version "4.3.4")
(source
(origin
(method git-fetch)
@@ -1048,7 +1048,7 @@ multiple files.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "15y6g92fp6x6dwwhrhkfny5z20w7pq9c8w19fh2vzff9aa6m2h9z"))))
+ (base32 "07aafsm4jzdgpahz83p0ajv40hry7gviyadqi13ahr8xdhhwy2sd"))))
(build-system cmake-build-system)
(arguments '(#:tests? #f)) ; no test target
(inputs
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 6a4dbe8ed0..52b2bc2630 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -383,24 +383,7 @@ error when it would have happened.")
(license (package-license perl))))
(define-public perl-base
- (package
- (name "perl-base")
- (version "2.23")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
- "base-" version ".tar.gz"))
- (sha256
- (base32 "1pjxcbbcpwlgzm0fzsbqd58zn8cj9vwril1wn3xfd7ws550mixa0"))))
- (build-system perl-build-system)
- (home-page "https://metacpan.org/release/base")
- (synopsis "Establish an ISA relationship with base classes at compile time")
- (description "Allows you to both load one or more modules, while setting
-up inheritance from those modules at the same time. Unless you are using the
-fields pragma, consider this module discouraged in favor of the lighter-weight
-parent.")
- (license (package-license perl)))) ;See README
+ (deprecated-package "perl-base" perl))
(define-public perl-browser-open
(package
@@ -873,8 +856,6 @@ the Carp.pm module doesn't help.")
(build-system perl-build-system)
(native-inputs
`(("perl-sub-name" ,perl-sub-name)))
- (propagated-inputs
- `(("perl-base" ,perl-base)))
(home-page "https://metacpan.org/release/Class-Accessor")
(synopsis "Automated accessor generation")
(description "This module automagically generates accessors/mutators for
@@ -1605,14 +1586,14 @@ CPAN::Meta object are present.")
(define-public perl-cpanel-json-xs
(package
(name "perl-cpanel-json-xs")
- (version "4.10")
+ (version "4.12")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/R/RU/RURBAN/"
"Cpanel-JSON-XS-" version ".tar.gz"))
(sha256
- (base32 "1r92b03hkmqr0brp00cj67b1iklfd4yas481d6a5nx2941c03h3p"))))
+ (base32 "0n66da8s88srr591i7gm1d611z9jbcz488fhqxy604diiw8pnha9"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-common-sense" ,perl-common-sense)))
@@ -3764,14 +3745,14 @@ allows you to locate these files after installation.")
(define-public perl-file-slurp
(package
(name "perl-file-slurp")
- (version "9999.26")
+ (version "9999.27")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/C/CA/CAPOEIRAB/"
"File-Slurp-" version ".tar.gz"))
(sha256
- (base32 "0c09ivl50sg9j75si6cahfp1wgvhqawakb6h5j6hlca6vwjqs9qy"))))
+ (base32 "1x233kj1qifvii7j8d4wzarwhj5z11vnpxsqvdm98dsccr7qi79s"))))
(build-system perl-build-system)
(home-page "https://metacpan.org/release/File-Slurp")
(synopsis "Reading/Writing/Modifying of complete files")
@@ -3835,8 +3816,6 @@ slurping and spewing. All functions are optionally exported.")
(sha256
(base32 "0pr3wrxrk93wy7dz9gsb1sgl77icrs8rh2mah6wms5cdi2ll5ch1"))))
(build-system perl-build-system)
- (propagated-inputs
- `(("perl-parent" ,perl-parent)))
(home-page "https://metacpan.org/release/File-Temp")
(synopsis "Return name and handle of a temporary file safely")
(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.")
(define-public perl-mailtools
(package
(name "perl-mailtools")
- (version "2.20")
+ (version "2.21")
(source
(origin
(method url-fetch)
@@ -4979,7 +4958,7 @@ portions of this module couldn't be compiled on this machine.")
".tar.gz"))
(sha256
(base32
- "15iizg2x1w7ca0r8rn3wwhp7w160ljvf55prspljwd6cm7vhcmpm"))))
+ "1js43bp2dnd8n2rv8clsv749166jnyqnc91k4wkkmw5n4rlbvnaa"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-timedate" ,perl-timedate)))
@@ -5634,7 +5613,6 @@ Moose and is optimised for rapid startup.")
("perl-package-stash" ,perl-package-stash)
("perl-package-stash-xs" ,perl-package-stash-xs)
("perl-params-util" ,perl-params-util)
- ("perl-parent" ,perl-parent)
("perl-scalar-list-utils" ,perl-scalar-list-utils)
("perl-sub-exporter" ,perl-sub-exporter)
("perl-sub-name" ,perl-sub-name)
@@ -6964,22 +6942,7 @@ distributions.")
(license (package-license perl))))
(define-public perl-parent
- (package
- (name "perl-parent")
- (version "0.237")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://cpan/authors/id/C/CO/CORION/"
- "parent-" version ".tar.gz"))
- (sha256
- (base32 "1bnaadzf51g6zrpq6pvvgds2cc9d4w1vck7sapkd3hb5hmjdk28h"))))
- (build-system perl-build-system)
- (home-page "https://metacpan.org/release/parent")
- (synopsis "Establish an ISA relationship with base classes at compile time")
- (description "Allows you to both load one or more modules, while setting
-up inheritance from those modules at the same time.")
- (license (package-license perl))))
+ (deprecated-package "perl-parent" perl))
(define-public perl-path-class
(package
@@ -7951,14 +7914,14 @@ uplevel() are avoided.")
(define-public perl-super
(package
(name "perl-super")
- (version "1.20141117")
+ (version "1.20190531")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/C/CH/CHROMATIC/"
"SUPER-" version ".tar.gz"))
(sha256
- (base32 "1cn05kacg0xfbm1zzksm2yx2pnrzqja4d9163cxv3sdfc1yhwqhs"))))
+ (base32 "16nk2za9fwyg7mcifacr69qi075iz1yvy8r9jh3903kzdvkiwpb8"))))
(build-system perl-build-system)
(native-inputs
`(("perl-module-build" ,perl-module-build)))
@@ -9009,8 +8972,7 @@ simple n-ary tree.")
`(("perl-module-build" ,perl-module-build)
("perl-test-exception" ,perl-test-exception)))
(propagated-inputs
- `(("perl-tree-simple" ,perl-tree-simple)
- ("perl-base" ,perl-base)))
+ `(("perl-tree-simple" ,perl-tree-simple)))
(home-page "https://metacpan.org/release/Tree-Simple-VisitorFactory")
(synopsis "Factory object for dispensing Visitor objects")
(description "This module is a factory for dispensing
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 58a1022bc2..676dae5430 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
detect the absence of a cassette file and once again record all HTTP
interactions, which will update them to correspond to the new API.")
(license license:expat)))
+
+(define-public python-pytest-checkdocs
+ (package
+ (name "python-pytest-checkdocs")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-checkdocs" version))
+ (sha256
+ (base32
+ "07c27cdjcw6jph5kbgpxchrvwlps4ggwb2j6m7y64imnik0asrq8"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-importlib-metadata" ,python-importlib-metadata)))
+ (native-inputs
+ `(("python-setuptools-scm" ,python-setuptools-scm)))
+ (home-page "https://github.com/jaraco/pytest-checkdocs")
+ (synopsis "Check the README when running tests")
+ (description
+ "This package provides a pytest plugin that checks the long description
+of the project to ensure it renders properly.")
+ (license license:expat)))
+
+(define-public python-pytest-flake8
+ (package
+ (name "python-pytest-flake8")
+ (version "1.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-flake8" version))
+ (sha256
+ (base32
+ "1h30gd21fjsafqxwclf25sdh89vrdz7rsh4lzw11aiw7ww9mq8jd"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-flake8" ,python-flake8)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/tholo/pytest-flake8")
+ (synopsis "Pytest plugin to check FLAKE8 requirements")
+ (description
+ "This package provides a pytest plugin for efficiently checking PEP8
+compliance.")
+ (license license:bsd-3)))
+
+(define-public python-pytest-shutil
+ (package
+ (name "python-pytest-shutil")
+ (version "1.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-shutil" version))
+ (sha256
+ (base32
+ "0q8j0ayzmnvlraml6i977ybdq4xi096djhf30n2m1rvnvrhm45nq"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-tests
+ (lambda _
+ (mkdir "/tmp/bin")
+ (substitute* "tests/integration/test_cmdline_integration.py"
+ (("dirname = '/bin'")
+ "dirname = '/tmp/bin'")
+ (("bindir = os.path.realpath\\('/bin'\\)")
+ "bindir = os.path.realpath('/tmp/bin')"))
+ #t)))))
+ (propagated-inputs
+ `(("python-contextlib2" ,python-contextlib2)
+ ("python-execnet" ,python-execnet)
+ ("python-pathpy" ,python-pathpy)
+ ("python-termcolor" ,python-termcolor)))
+ (native-inputs
+ `(("python-mock" ,python-mock)
+ ("python-pytest" ,python-pytest)
+ ("python-setuptools-git" ,python-setuptools-git)))
+ (home-page "https://github.com/manahl/pytest-plugins")
+ (synopsis "Assorted shell and environment tools for py.test")
+ (description
+ "This package provides assorted shell and environment tools for the
+py.test testing framework.")
+ (license license:expat)))
+
+(define-public python-pytest-fixture-config
+ (package
+ (name "python-pytest-fixture-config")
+ (version "1.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-fixture-config" version))
+ (sha256
+ (base32
+ "13i1qpz22w3x4dmw8vih5jdnbqfqvl7jiqs0dg764s0zf8bp98a1"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-setuptools-git" ,python-setuptools-git)))
+ (home-page "https://github.com/manahl/pytest-plugins")
+ (synopsis "Fixture configuration utils for py.test")
+ (description
+ "This package provides fixture configuration utilities for the py.test
+testing framework.")
+ (license license:expat)))
+
+(define-public python-pytest-virtualenv
+ (package
+ (name "python-pytest-virtualenv")
+ (version "1.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-virtualenv" version))
+ (sha256
+ (base32
+ "03w2zz3crblj1p6i8nq17946hbn3zqp9z7cfnifw47hi4a4fww12"))))
+ (build-system python-build-system)
+ (arguments '(#:tests? #f)) ; one test fails; can't find virtualenv
+ (propagated-inputs
+ `(("python-virtualenv" ,python-virtualenv)
+ ("python-pytest-shutil" ,python-pytest-shutil)
+ ("python-pytest-fixture-config" ,python-pytest-fixture-config)))
+ (native-inputs
+ `(("python-mock" ,python-mock)
+ ("python-pytest" ,python-pytest)
+ ("python-setuptools-git" ,python-setuptools-git)))
+ (home-page "https://github.com/manahl/pytest-plugins")
+ (synopsis "Virtualenv fixture for py.test")
+ (description "This package provides a virtualenv fixture for the py.test
+framework.")
+ (license license:expat)))
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index 88f62d1934..705a7ffa3b 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 ng0 <ng0@n0.is>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
@@ -32,7 +32,8 @@
#:use-module (gnu packages check)
#:use-module (gnu packages maths)
#:use-module (gnu packages python)
- #:use-module (gnu packages python-xyz))
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages sphinx))
(define-public python-lzo
(package
@@ -205,3 +206,31 @@ install: libbitshuffle.so
#t))))))
(inputs '())
(native-inputs '())))
+
+(define-public python-zipp
+ (package
+ (name "python-zipp")
+ (version "0.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "zipp" version))
+ (sha256
+ (base32
+ "1hsv4zwy1pwnbrr63wjjkpwrmnk36ngbkkqw01bj5hcwh1z3m56a"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-contextlib2" ,python-contextlib2)
+ ("python-pathlib2" ,python-pathlib2)
+ ("python-rst.linker" ,python-rst.linker)))
+ (native-inputs
+ `(("python-setuptools-scm" ,python-setuptools-scm)
+ ("python-sphinx" ,python-sphinx)
+ ("python-unittest2" ,python-unittest2)))
+ (home-page "https://github.com/jaraco/zipp")
+ (synopsis
+ "Backport of pathlib-compatible object wrapper for zip files")
+ (description
+ "This package provides a @code{pathlib}-compatible @code{Zipfile} object
+wrapper. It provides a backport of the @code{Path} object.")
+ (license license:expat)))
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index d9065e8b15..88a00070a8 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.")
(define-public python-bcrypt
(package
(name "python-bcrypt")
- (version "3.1.6")
+ (version "3.1.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "bcrypt" version))
(sha256
- (base32
- "1sh2xh0iragdq8dhssc1cdd02nppjq7b5kmv0qladfi2s9cnfqs4"))))
+ (base32 "0hhywhxx301cxivgxrpslrangbfpccc8y83qbwn1f57cab3nj00b"))))
(build-system python-build-system)
(native-inputs
`(("python-pycparser" ,python-pycparser)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 660e5e40a9..e3e2b5f0d7 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -29,7 +29,7 @@
;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2016, 2017 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
-;;; Copyright © 2016, 2017 Alex Vong <alexvong1995@gmail.com>
+;;; Copyright © 2016, 2017, 2019 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2016, 2017, 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -60,6 +60,7 @@
;;; Copyright © 2019 Brett Gilio <brettg@posteo.net>
;;; Copyright © 2019 Sam <smbaines8@gmail.com>
;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us>
+;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -88,6 +89,7 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
+ #:use-module (gnu packages dbm)
#:use-module (gnu packages file)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gcc)
@@ -118,6 +120,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-check)
+ #:use-module (gnu packages python-compression)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages qt)
@@ -2692,7 +2695,7 @@ ecosystem, but can naturally be used also by other projects.")
(define-public python-robotframework
(package
(name "python-robotframework")
- (version "3.1.1")
+ (version "3.1.2")
;; There are no tests in the PyPI archive.
(source
(origin
@@ -2702,8 +2705,7 @@ ecosystem, but can naturally be used also by other projects.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32
- "1aaiamc9l35m5sf7xl2qc5q9308v7sz3p1qgzcslsjxzddphyn4v"))
+ (base32 "16gnxy0qinh8fhs0qvhff5z2xh49c3cqgm0d7bfjw120df6x7fym"))
(patches (search-patches
"python-robotframework-honor-source-date-epoch.patch"))))
(build-system python-build-system)
@@ -4863,17 +4865,101 @@ them as the version argument or in a SCM managed file.")
(define-public python2-setuptools-scm
(package-with-python2 python-setuptools-scm))
+(define-public python-pathlib2
+ (package
+ (name "python-pathlib2")
+ (version "2.3.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pathlib2" version))
+ (sha256
+ (base32
+ "0hpp92vqqgcd8h92msm9slv161b1q160igjwnkf2ag6cx0c96695"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-scandir" ,python-scandir)
+ ("python-six" ,python-six)))
+ (home-page "https://pypi.python.org/pypi/pathlib2/")
+ (synopsis "Object-oriented filesystem paths")
+ (description "The goal of pathlib2 is to provide a backport of the
+standard @code{pathlib} module which tracks the standard library module, so
+all the newest features of the standard @code{pathlib} can be used also on
+older Python versions.")
+ (license license:expat)))
+
+(define-public python-importlib-metadata
+ (package
+ (name "python-importlib-metadata")
+ (version "0.18")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "importlib_metadata" version))
+ (sha256
+ (base32
+ "1nqj6vj2z4byi8flzf2lbldhqgicsz9mkpv4k69kjd8p8qxy4vnb"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-configparser" ,python-configparser)
+ ("python-contextlib2" ,python-contextlib2)
+ ("python-docutils" ,python-docutils)
+ ("python-pathlib2" ,python-pathlib2)
+ ("python-rst.linker" ,python-rst.linker)
+ ("python-zipp" ,python-zipp)))
+ (native-inputs
+ `(("python-setuptools-scm" ,python-setuptools-scm)
+ ("python-sphinx" ,python-sphinx)))
+ (home-page "https://importlib-metadata.readthedocs.io/")
+ (synopsis "Read metadata from Python packages")
+ (description
+ "@code{importlib_metadata} is a library which provides an API for
+accessing an installed Python package's metadata, such as its entry points or
+its top-level name. This functionality intends to replace most uses of
+@code{pkg_resources} entry point API and metadata API. Along with
+@code{importlib.resources} in Python 3.7 and newer, this can eliminate the
+need to use the older and less efficient @code{pkg_resources} package.")
+ (license license:asl2.0)))
+
+(define-public python-jaraco-packaging
+ (package
+ (name "python-jaraco-packaging")
+ (version "6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jaraco.packaging" version))
+ (sha256
+ (base32
+ "0zimrnkh33b9g8ffw11mjh6kvs54cy5gcjw1h5cl1r7dc833dmkm"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-pytest-checkdocs" ,python-pytest-checkdocs)
+ ("python-pytest-flake8" ,python-pytest-flake8)
+ ("python-rst.linker" ,python-rst.linker)
+ ("python-setuptools" ,python-setuptools)
+ ("python-setuptools-scm" ,python-setuptools-scm)
+ ("python-six" ,python-six)
+ ("python-sphinx" ,python-sphinx)))
+ (home-page "https://github.com/jaraco/jaraco.packaging")
+ (synopsis "Tools to supplement packaging Python releases")
+ (description
+ "This package provides various tools to supplement packaging Python
+releases.")
+ (license license:expat)))
+
(define-public python-pathpy
(package
(name "python-pathpy")
- (version "11.0.1")
+ (version "11.5.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "path.py" version))
(sha256
- (base32 "07x15v8c7ry9bvycw294c9yq6ky9v2b0dalvgi6rn38ilh69vsz7"))))
- ;; (outputs '("out" "doc"))
+ (base32 "1jxkf91syzxlpiwgm83fjfz1m5xh3jrvv4iyl5wjsnkk599pls5n"))))
+ (outputs '("out" "doc"))
(build-system python-build-system)
(propagated-inputs
`(("python-appdirs" ,python-appdirs)))
@@ -4882,26 +4968,31 @@ them as the version argument or in a SCM managed file.")
("python-sphinx" ,python-sphinx)
("python-rst.linker" ,python-rst.linker)
("python-pytest" ,python-pytest)
- ("python-pytest-runner" ,python-pytest-runner)))
+ ("python-pytest-runner" ,python-pytest-runner)
+ ("python-jaraco-packaging" ,python-jaraco-packaging)))
(arguments
- ;; FIXME: Documentation and tests require "jaraco.packaging".
- `(#:tests? #f))
- ;; #:phases
- ;; (modify-phases %standard-phases
- ;; (add-after 'build 'build-doc
- ;; (lambda _
- ;; (setenv "LANG" "en_US.UTF-8")
- ;; (zero? (system* "python" "setup.py" "build_sphinx"))))
- ;; (add-after 'install 'install-doc
- ;; (lambda* (#:key outputs #:allow-other-keys)
- ;; (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
- ;; (doc (string-append data "/doc/" ,name "-" ,version))
- ;; (html (string-append doc "/html")))
- ;; (mkdir-p html)
- ;; (for-each (lambda (file)
- ;; (copy-file file (string-append doc "/" file)))
- ;; '("README.rst" "CHANGES.rst"))
- ;; (copy-recursively "build/sphinx/html" html)))))))
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'build 'build-doc
+ (lambda _
+ (setenv "LANG" "en_US.UTF-8")
+ (invoke "python" "setup.py" "build_sphinx")))
+ (add-after 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
+ (doc (string-append data "/doc/" ,name "-" ,version))
+ (html (string-append doc "/html")))
+ (mkdir-p html)
+ (for-each (lambda (file)
+ (copy-file file (string-append doc "/" file)))
+ '("README.rst" "CHANGES.rst"))
+ (copy-recursively "build/sphinx/html" html)
+ #t)))
+ (replace 'check
+ (lambda _
+ ;; The import time test aborts if an import takes longer than
+ ;; 100ms. It may very well take a little longer than that.
+ (invoke "pytest" "-v" "-k" "not test_import_time"))))))
(home-page "https://github.com/jaraco/path.py")
(synopsis "Python module wrapper for built-in os.path")
(description
@@ -7898,6 +7989,27 @@ be set via config files and/or environment variables.")
@code{ArgumentParser} object.")
(license license:asl2.0)))
+(define-public python-contextlib2
+ (package
+ (name "python-contextlib2")
+ (version "0.5.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "contextlib2" version))
+ (sha256
+ (base32
+ "0j6ad6lwwyc9kv71skj098v5l7x5biyj2hs4lc5x1kcixqcr97sh"))))
+ (build-system python-build-system)
+ (home-page "http://contextlib2.readthedocs.org/")
+ (synopsis "Tools for decorators and context managers")
+ (description "This module is primarily a backport of the Python
+3.2 contextlib to earlier Python versions. Like contextlib, it
+provides utilities for common tasks involving decorators and context
+managers. It also contains additional features that are not part of
+the standard library.")
+ (license license:psfl)))
+
(define-public python2-contextlib2
(package
(name "python2-contextlib2")
@@ -9717,16 +9829,16 @@ format.")
(define-public python-twisted
(package
(name "python-twisted")
- (version "19.2.0")
+ (version "19.2.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "Twisted" version ".tar.bz2"))
(sha256
(base32
- "1gmb8d57s13d8znvqnxi47vqzqz141z443dbxg9wjkp8ia9f220p"))))
+ "0liymyd4pzphizjlpwkncxjpm9akyr3lkfkm77yfg6wasv108b7s"))))
(build-system python-build-system)
(arguments
- '(#:tests? #f)) ; FIXME: Some tests are failing.
+ '(#:tests? #f)) ; FIXME: some tests fail
(propagated-inputs
`(("python-zope-interface" ,python-zope-interface)
("python-pyhamcrest" ,python-pyhamcrest)
@@ -10349,14 +10461,14 @@ etc.")
(define-public python-stem
(package
(name "python-stem")
- (version "1.7.0")
+ (version "1.7.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "stem" version))
(sha256
(base32
- "1awiglfiajnx2hva9aqpj3fmdvdb4qg7cwnlfyih827m68y3cq8v"))))
+ "18lc95pmc7i089nlsb06dsxyjl5wbhxfqgdxbjcia35ndh8z7sn9"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -13423,6 +13535,37 @@ belong to tagged versions.")
(define-public python2-setuptools-scm-git-archive
(package-with-python2 python-setuptools-scm-git-archive))
+(define-public python-setuptools-git
+ (package
+ (name "python-setuptools-git")
+ (version "1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "setuptools-git" version))
+ (sha256
+ (base32
+ "0i84qjwp5m0l9qagdjww2frdh63r37km1c48mrvbmaqsl1ni6r7z"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; This is needed for tests.
+ (add-after 'unpack 'configure-git
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (invoke "git" "config" "--global" "user.email" "guix")
+ (invoke "git" "config" "--global" "user.name" "guix")
+ #t)))))
+ (native-inputs
+ `(("git" ,git-minimal)))
+ (home-page "https://github.com/msabramo/setuptools-git")
+ (synopsis "Setuptools revision control system plugin for Git")
+ (description
+ "This package provides a plugin for Setuptools for revision control with
+Git.")
+ (license license:bsd-3)))
+
(define-public python-pyclipper
(package
(name "python-pyclipper")
@@ -14026,6 +14169,51 @@ source bytes using the UTF-8 encoding and then rewrites Python 3.6 style
@code{f} strings.")
(license license:expat)))
+(define-public python-typed-ast
+ (package
+ (name "python-typed-ast")
+ (version "1.3.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "typed-ast" version))
+ (sha256
+ (base32
+ "1m7pr6qpana3cvqwiw7mlvrgvmw27ch5mx1592572xhlki8g85ak"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:modules ((guix build utils)
+ (guix build python-build-system)
+ (ice-9 ftw)
+ (srfi srfi-1)
+ (srfi srfi-26))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (let ((cwd (getcwd)))
+ (setenv "PYTHONPATH"
+ (string-append cwd "/build/"
+ (find (cut string-prefix? "lib" <>)
+ (scandir (string-append cwd "/build")))
+ ":"
+ (getenv "PYTHONPATH"))))
+ (invoke "pytest")
+ #t)))))
+ (native-inputs `(("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/python/typed_ast")
+ (synopsis "Fork of Python @code{ast} modules with type comment support")
+ (description "This package provides a parser similar to the standard
+@code{ast} library. Unlike @code{ast}, the parsers in @code{typed_ast}
+include PEP 484 type comments and are independent of the version of Python
+under which they are run. The @code{typed_ast} parsers produce the standard
+Python AST (plus type comments), and are both fast and correct, as they are
+based on the CPython 2.7 and 3.7 parsers.")
+ ;; See the file "LICENSE" for the details.
+ (license (list license:psfl
+ license:asl2.0
+ license:expat)))) ;ast27/Parser/spark.py
+
(define-public python-typing
(package
(name "python-typing")
@@ -15113,14 +15301,13 @@ append on old values. Partd excels at shuffling operations.")
(define-public python-dask
(package
(name "python-dask")
- (version "1.2.0")
+ (version "1.2.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "dask" version))
(sha256
- (base32
- "1y0dqcp72ixwblgway0jpvfirlxfcmwrjiivdq96firj1hw127sd"))))
+ (base32 "0b29gvf96gmp20wicly3v3mhyc93zbm3mdv935fka6x0wax7cy2y"))))
(build-system python-build-system)
;; A single test out of 5000+ fails. This test is marked as xfail when
;; pytest-xdist is used.
@@ -15331,16 +15518,15 @@ with the HTTP/2-based RPC framework gRPC.")
(define-public python-astunparse
(package
(name "python-astunparse")
- (version "1.6.1")
+ (version "1.6.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "astunparse" version))
(sha256
- (base32
- "1jhidwyrqn17avqh9xnnm3wd7q7aahaq009cba67g86y6gxicyyj"))))
+ (base32 "0rzbc44xcvzjhhiy7wac96mgal5mcjz1mfq8rmvgswskf4kf9cys"))))
(build-system python-build-system)
- (arguments '(#:tests? #f)) ; there are none
+ (arguments '(#:tests? #f)) ; there are none
(propagated-inputs
`(("python-six" ,python-six)
("python-wheel" ,python-wheel)))
@@ -15568,3 +15754,40 @@ by Igor Pavlov.")
(define-public python2-pylzma
(package-with-python2 python-pylzma))
+
+(define-public python-bsddb3
+ (package
+ (name "python-bsddb3")
+ (version "6.2.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "bsddb3" version))
+ (sha256
+ (base32
+ "019db2y6bfmiqbrgg9x9f6h72qjmqh05czdn2v5sy9bl0gs23mj2"))))
+ (build-system python-build-system)
+ (inputs
+ `(("bdb" ,bdb)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'configure-locations
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "BERKELEYDB_DIR" (assoc-ref inputs "bdb"))
+ (setenv "YES_I_HAVE_THE_RIGHT_TO_USE_THIS_BERKELEY_DB_VERSION" "1")
+ #t))
+ (replace 'check
+ (lambda _
+ (invoke "python3" "test3.py" "-v"))))))
+ (home-page "https://www.jcea.es/programacion/pybsddb.htm")
+ (synopsis "Python bindings for Oracle Berkeley DB")
+ (description
+ "This module provides a nearly complete wrapping of the Oracle/Sleepycat
+C API for the Database Environment, Database, Cursor, Log Cursor, Sequence and
+Transaction objects, and each of these is exposed as a Python type in the
+bsddb3.db module. The database objects can use various access methods: btree,
+hash, recno, and queue. Complete support of Berkeley DB distributed
+transactions. Complete support for Berkeley DB Replication Manager.
+Complete support for Berkeley DB Base Replication. Support for RPC.")
+ (license license:bsd-3)))
diff --git a/gnu/packages/sagemath.scm b/gnu/packages/sagemath.scm
index 63d1281668..43da5c636a 100644
--- a/gnu/packages/sagemath.scm
+++ b/gnu/packages/sagemath.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,6 +25,7 @@
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix utils)
+ #:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bdw-gc)
@@ -308,8 +310,19 @@ on numerical types, while GiNaC depends on CLN for this purpose.")
(invoke "make" "libzn_poly.so")))
(add-after 'install 'install-so
(lambda* (#:key outputs #:allow-other-keys)
- (let ((lib (string-append (assoc-ref outputs "out") "/lib")))
- (install-file "libzn_poly.so" lib)))))))
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (soname (string-append "libzn_poly-" ,version ".so"))
+ (target (string-append lib "/" soname)))
+ (install-file "libzn_poly.a" lib)
+ (install-file soname lib)
+ (symlink target
+ (string-append lib "/libzn_poly.so"))
+ (symlink target
+ (string-append lib "/libzn_poly-"
+ ,(version-major+minor version)
+ ".so")))
+ #t)))))
(synopsis "Arithmetic for polynomials over Z/NZ")
(description "zn_poly implements the arithmetic of polynomials the
coefficients of which are modular integers.")
@@ -353,3 +366,109 @@ Boolean variables. As a unique approach, binary decision diagrams are
used as internal storage type for polynomial structures.")
(license license:gpl2+)
(home-page "https://gitlab.com/sagemath/zn_poly")))
+
+(define-public lcalc
+ (package
+ (name "lcalc")
+ (version "1.23")
+ ;; The original home page of the project has disappeared, as well as
+ ;; code hosted by the original author on Google Code. The latter has
+ ;; been copied to gitlab.com/sagemath and purportedly contains patches
+ ;; for a never released version 1.3, that supposedly follows 1.23.
+ ;; We use the tarball as well as the patches hosted inside the sage
+ ;; package system distributed with the sage tarball.
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "ftp://ftp.fu-berlin.de/unix/misc/sage/spkg/"
+ "upstream/lcalc/lcalc-1.23.tar.bz2"))
+ (sha256
+ (base32
+ "1c6dsdshgxhqppjxvxhp8yhpxaqvnz3d1mlh26r571gkq8z2bm43"))
+ (patches (search-patches "lcalc-lcommon-h.patch"
+ "lcalc-default-parameters-1.patch"
+ "lcalc-default-parameters-2.patch"
+ "lcalc-using-namespace-std.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ;no tests
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'build 'prepare-build
+ (lambda* (#:key outputs #:allow-other-keys)
+ (chdir "src")
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "Makefile"
+ (("^INSTALL_DIR= /usr/local")
+ (string-append "INSTALL_DIR=" out))
+ ;; Sage renames the include directory, so we do it also.
+ (("include/Lfunction")
+ "include/libLfunction")
+ ;; Add --std=c++11 to be compatible with the "auto" keyword
+ ;; introduced by lcalc-using-namespace-std.patch.
+ (("^#EXTRA= -pg")
+ "EXTRA=--std=c++11")))
+ #t))
+ (add-before 'install 'make-output-dirs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (lib (string-append out "/lib"))
+ (include (string-append out "/include")))
+ (mkdir-p bin)
+ (mkdir-p lib)
+ (mkdir-p include))
+ #t)))))
+ ;; FIXME:
+ ;; We need to add pari-gp and probably pari related patches from the
+ ;; sage project, as well as uncomment the line setting PARI_DEFINE in
+ ;; the Makefile to get the full functionality of this package.
+ ;; For the time being, we hope that sage can be compiled without.
+ (synopsis "C++ library for L-functions")
+ (description "Lcalc computes L-functions, in particular the Riemann
+zeta function and its twists by quadratic characters.")
+ (license license:gpl2+)
+ (home-page "https://gitlab.com/sagemath/sage")))
+
+(define-public ratpoints
+ (package
+ (name "ratpoints")
+ (version "2.1.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.mathe2.uni-bayreuth.de/stoll/programs/"
+ "ratpoints-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0zhad84sfds7izyksbqjmwpfw4rvyqk63yzdjd3ysd32zss5bgf4"))
+ (patches
+ ;; Taken from
+ ;; <https://git.sagemath.org/sage.git/plain/build/pkgs/ratpoints/patches/>
+ (search-patches "ratpoints-sturm_and_rp_private.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:test-target "test"
+ #:make-flags
+ (list (string-append "INSTALL_DIR=" (assoc-ref %outputs "out"))
+ "CCFLAGS=-fPIC")
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ;no configure script
+ (add-before 'install 'create-install-directories
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (mkdir-p out)
+ (with-directory-excursion out
+ (for-each (lambda (d) (mkdir-p d))
+ '("bin" "include" "lib"))))
+ #t)))))
+ (inputs
+ `(("gmp" ,gmp)))
+ (home-page "http://www.mathe2.uni-bayreuth.de/stoll/programs/")
+ (synopsis "Find rational points on hyperelliptic curves")
+ (description "Ratpoints tries to find all rational points within
+a given height bound on a hyperelliptic curve in a very efficient way,
+by using an optimized quadratic sieve algorithm.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/sawfish.scm b/gnu/packages/sawfish.scm
index 1ac72f2baa..98b0cc7044 100644
--- a/gnu/packages/sawfish.scm
+++ b/gnu/packages/sawfish.scm
@@ -1,6 +1,8 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Benjamin Slade <slade@jnanam.net>
+;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -77,14 +79,14 @@ implementing both small and large scale systems.")
(define-public rep-gtk
(package
(name "rep-gtk")
- (version "0.90.8.2")
+ (version "0.90.8.3")
(source (origin
(method url-fetch)
- (uri (string-append "http://download.tuxfamily.org/librep/"
+ (uri (string-append "https://download.tuxfamily.org/librep/"
name "/" name "_" version ".tar.xz"))
(sha256
(base32
- "0qslm2isyv22hffdpw0nh7xk8jw8cj3h5y7d40c9h5r833w7j6sz"))
+ "0hgkkywm8zczir3lqr727bn7ybgg71x9cwj1av8fykkr8pdpard9"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -94,14 +96,26 @@ implementing both small and large scale systems.")
"installdir=$(libdir)/rep"))
#t))))
(build-system gnu-build-system)
- (arguments '(#:tests? #f)) ; no tests
+ (arguments
+ `(#:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'bootstrap 'remove-autogen
+ (lambda _
+ ;; Remove autogen.sh so that the bootstrap phase can run
+ ;; autoreconf.
+ (delete-file "autogen.sh")
+ #t)))))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
(propagated-inputs
;; required by rep-gtk.pc.
`(("gtk+" ,gtk+-2)
("librep" ,librep)))
- (home-page "http://sawfish.wikia.com/wiki/Rep-GTK")
+ (home-page "https://sawfish.fandom.com/wiki/Rep-GTK")
(synopsis "GTK+ binding for librep")
(description
"Rep-GTK is a GTK+ (and GLib, GDK) binding to the librep, and one of the
@@ -111,14 +125,14 @@ backend of Sawfish.")
(define-public sawfish
(package
(name "sawfish")
- (version "1.11")
+ (version "1.12.0")
(source (origin
(method url-fetch)
- (uri (string-append "http://download.tuxfamily.org/sawfish/"
+ (uri (string-append "https://download.tuxfamily.org/sawfish/"
name "_" version ".tar.xz"))
(sha256
(base32
- "0wp4m0p836a0rysbcdqb6z5hxlxqj3rgdbks3bs44rlssx0mcvyg"))
+ "1z7awzgw8d15aw17kpbj460pcxq8l2rhkaxk47w7yg9qrmg0xja4"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -172,7 +186,7 @@ backend of Sawfish.")
("libxrandr" ,libxrandr)
("libxtst" ,libxtst)
("rep-gtk" ,rep-gtk)))
- (home-page "http://sawfish.wikia.com/wiki/Main_Page")
+ (home-page "https://sawfish.tuxfamily.org")
(synopsis "Configurable window manager")
(description
"Sawfish is an extensible window manager using a Lisp-based scripting
diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index 51ed0317bc..faff25ddc1 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;
(define-public rclone
(package
(name "rclone")
- (version "1.47.0")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/ncw/rclone.git")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1nxwjr9jly6wh1ixr6a7zhlg4b3298v940040fsm0n3lcljd37zx"))))
+ (version "1.48.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/ncw/rclone/releases/download/v"
+ version "/rclone-v" version ".tar.gz"))
+ (sha256
+ (base32 "1r03rlsk0qpya1fl8xfhj5inccjywf2cqgkd8r6wfhf3w2qd1zlc"))))
;; FIXME: Rclone bundles some libraries Guix already provides. Need to
;; un-bundle them.
(build-system go-build-system)
diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm
index 69313b9bb6..21ca185066 100644
--- a/gnu/packages/tcl.scm
+++ b/gnu/packages/tcl.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -25,8 +26,10 @@
(define-module (gnu packages tcl)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system go)
#:use-module (guix build-system perl)
#:use-module (gnu packages)
#:use-module (gnu packages image)
@@ -35,7 +38,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
- #:use-module (guix licenses))
+ #:use-module ((guix licenses) #:prefix license:))
(define-public tcl
(package
@@ -81,7 +84,7 @@
(home-page "http://www.tcl.tk/")
(synopsis "The Tcl scripting language")
(description "The Tcl (Tool Command Language) scripting language.")
- (license tcl/tk)))
+ (license license:tcl/tk)))
(define-public expect
@@ -130,7 +133,7 @@ telnet, ftp, passwd, fsck, rlogin, tip, etc. Expect really makes this
stuff trivial. Expect is also useful for testing these same
applications. And by adding Tk, you can wrap interactive applications in
X11 GUIs.")
- (license public-domain))) ; as written in `license.terms'
+ (license license:public-domain))) ; as written in `license.terms'
(define-public tk
(package
@@ -230,7 +233,7 @@ interfaces (GUIs) in the Tcl language.")
;; those of the orignal Tix4.1.3 or Tk8.4.* sources. See the files
;; pTk/license.terms, pTk/license.html_lib, and pTk/Tix.license for
;; details of this license."
- (license perl-license)))
+ (license license:perl-license)))
(define-public tcllib
(package
@@ -344,7 +347,7 @@ modules for Tk, all written in high-level Tcl. Examples of provided widgets:
application may register callback scripts for certain document features, and
when the parser encounters those features while parsing the document the
callback is evaluated.")
- (license (non-copyleft
+ (license (license:non-copyleft
"file://LICENCE"
"See LICENCE in the distribution."))))
@@ -378,4 +381,31 @@ callback is evaluated.")
application development. TclX provides additional interfaces to the operating
system, and adds many new programming constructs, text manipulation tools, and
debugging tools.")
- (license tcl/tk)))
+ (license license:tcl/tk)))
+
+(define-public go-github.com-nsf-gothic
+ (let ((commit "97dfcc195b9de36c911a69a6ec2b5b2659c05652")
+ (revision "0"))
+ (package
+ (name "go-github.com-nsf-gothic")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nsf/gothic")
+ (commit commit)))
+ (sha256
+ (base32
+ "1lrhbml6r4sh22rrn3m9bck70pv0g0c1diprg7cil90x0jidxczr"))
+ (file-name (git-file-name name version))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/nsf/gothic"))
+ (propagated-inputs
+ `(("tk" ,tk)
+ ("tcl" ,tcl)))
+ (home-page "https://github.com/nsf/gothic")
+ (synopsis "Tcl/Tk Go bindings")
+ (description "Gothic contains Go bindings for Tcl/Tk. The package contains
+only one type and one function that can be used to create a Tk interpreter.")
+ (license license:expat))))
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 731bbc5d16..b35486ba59 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2014 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.org>
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -36,15 +37,19 @@
#:use-module (gnu packages assembly)
#:use-module (gnu packages boost)
#:use-module (gnu packages documentation)
+ #:use-module (gnu packages fontutils)
#:use-module (gnu packages gcc)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages guile)
#:use-module (gnu packages libbsd)
#:use-module (gnu packages libreoffice)
#:use-module (gnu packages lua)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pcre)
+ #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python)
#:use-module (gnu packages qt)
#:use-module (gnu packages regex)
#:use-module (gnu packages ruby)
@@ -388,3 +393,47 @@ projects. The EditorConfig project maintains a file format and plugins for
various text editors which allow this file format to be read and used by those
editors.")
(license license:bsd-2)))
+
+(define-public texmacs
+ (package
+ (name "texmacs")
+ (version "1.99.9")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.texmacs.org/Download/ftp/tmftp/"
+ "source/TeXmacs-" version "-src.tar.gz"))
+ (sha256
+ (base32
+ "0i95sf9y8qpgxd8f39cprbp3s200nm9lml0xdpyn46n838acvw19"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (delete-file-recursively "3rdparty")
+ #t))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("freetype" ,freetype)
+ ("guile" ,guile-1.8)
+ ("perl" ,perl)
+ ("python" ,python-wrapper)
+ ("qt" ,qt-4)))
+ (arguments
+ `(#:tests? #f ;no check target
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'gzip-flags
+ (lambda _
+ (substitute* "Makefile.in"
+ (("^GZIP = gzip -f") "GZIP = gzip -f -n")))))))
+ (synopsis "Editing platform with special features for scientists")
+ (description
+ "GNU TeXmacs is a text editing platform which is specialized for
+scientists. It is ideal for editing structured documents with different
+types of content. It has robust support for mathematical formulas and plots.
+ It can also act as an interface to external mathematical programs such as R
+and Octave. TeXmacs is completely extensible via Guile.")
+ (license license:gpl3+)
+ (home-page "https://www.texmacs.org/tmweb/home/welcome.en.html")))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 9859c55f98..2b6d9f5b7e 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1446,7 +1446,7 @@ access to mpv's powerful playback capabilities.")
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2019.05.20")
+ (version "2019.06.21")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/rg3/youtube-dl/releases/"
@@ -1454,7 +1454,7 @@ access to mpv's powerful playback capabilities.")
version ".tar.gz"))
(sha256
(base32
- "18xwdfvpkqrnj0kb8xj8hgwhgiqpv7x7x7zzr4x3vynb9grcv9m8"))))
+ "03a729198zzhixbn7xixi9bprmk3qqh5dsyh3dqhji6lmlijx1w5"))))
(build-system python-build-system)
(arguments
;; 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 303171e61d..a35f124f46 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -399,46 +399,48 @@ manage system or application containers.")
(define-public libvirt
(package
(name "libvirt")
- (version "4.10.0")
+ (version "5.4.0")
(source (origin
(method url-fetch)
(uri (string-append "https://libvirt.org/sources/libvirt-"
version ".tar.xz"))
(sha256
(base32
- "0v17zzyyb25nn9l18v5244myg7590dp6ppwgi8xysipifc0q77bz"))))
+ "0ywf8m9yz2hxnic7fylzlmgy4m353r4vv5zsvp89zq5yh4h81yhw"))))
(build-system gnu-build-system)
(arguments
- `(;; FAIL: virshtest
- ;; FAIL: virfirewalltest
- ;; FAIL: virkmodtest
- ;; FAIL: virnetsockettest
- ;; FAIL: networkxml2firewalltest
- ;; FAIL: nwfilterebiptablestest
- ;; FAIL: nwfilterxml2firewalltest
- ;; Time-out while running commandtest.
- #:tests? #f
- #:configure-flags
+ `(#:configure-flags
(list "--with-polkit"
+ (string-append "--docdir=" (assoc-ref %outputs "out") "/share/doc/"
+ ,name "-" ,version)
"--sysconfdir=/etc"
"--localstatedir=/var")
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'fix-tests
+ (add-before 'configure 'fix-BOURNE_SHELL-definition
+ ;; BOURNE_SHELL is hard-#defined to ‘/bin/sh’, causing test failures.
(lambda _
- (substitute* '("tests/commandtest.c"
- "gnulib/tests/test-posix_spawn1.c"
- "gnulib/tests/test-posix_spawn2.c")
+ (substitute* "config.h.in"
(("/bin/sh") (which "sh")))
#t))
+ (add-before 'configure 'disable-broken-tests
+ (lambda _
+ (let ((tests (list "commandtest" ; hangs idly
+ "virnetsockettest" ; tries to network
+ "virshtest"))) ; fails
+ (substitute* "tests/Makefile.in"
+ (((format #f "(~a)\\$\\(EXEEXT\\)" (string-join tests "|")))
+ ""))
+ #t)))
(replace 'install
;; Since the sysconfdir and localstatedir should be /etc and /var
;; at runtime, we must prevent writing to them at installation
;; time.
- (lambda _
- (invoke "make" "install"
- "sysconfdir=/tmp/etc"
- "localstatedir=/tmp/var")))
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (apply invoke "make" "install"
+ "sysconfdir=/tmp/etc"
+ "localstatedir=/tmp/var"
+ make-flags)))
(add-after 'install 'wrap-libvirtd
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
@@ -458,7 +460,7 @@ manage system or application containers.")
("libpcap" ,libpcap)
("libnl" ,libnl)
("libuuid" ,util-linux)
- ("lvm2" ,lvm2) ; for libdevmapper
+ ("lvm2" ,lvm2) ; for libdevmapper
("curl" ,curl)
("openssl" ,openssl)
("cyrus-sasl" ,cyrus-sasl)
@@ -534,13 +536,13 @@ three libraries:
(define-public python-libvirt
(package
(name "python-libvirt")
- (version "4.10.0")
+ (version "5.3.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "libvirt-python" version))
(sha256
(base32
- "11fipj9naihgc9afc8bz5hi05xa1shp4qcy170sa18p3sl4zljb9"))))
+ "1zrhkz68ka4f08wwm36y3zzwfn1r65h4nw1nm9qgg8jmrfazj4sj"))))
(build-system python-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 3b0cbae7a7..6a820addca 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -3112,7 +3112,7 @@ select or poll.")
(define-public perl-libwww
(package
(name "perl-libwww")
- (version "6.37")
+ (version "6.39")
(source (origin
(method url-fetch)
(uri (string-append
@@ -3120,7 +3120,7 @@ select or poll.")
version ".tar.gz"))
(sha256
(base32
- "04a24cx9gs070rvlwf5kanz03y7nnq9k2nmpr01plnm059iprvf6"))))
+ "1mblfwz3g7vmyykmb0mcbmmad77rwx55fwaca9ymv9wajd3pg3cs"))))
(build-system perl-build-system)
(native-inputs
`(("perl-test-fatal" ,perl-test-fatal)
@@ -3662,14 +3662,14 @@ applications.")
(define-public perl-uri
(package
(name "perl-uri")
- (version "1.73")
+ (version "1.76")
(source (origin
(method url-fetch)
- (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
+ (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/"
"URI-" version ".tar.gz"))
(sha256
(base32
- "04z4xwiryrbxxi48bwbkgq9q9pwfgqry3wp0ramcrwv3dx5ap9yc"))))
+ "0gj1aj18k43kmzc3y1zhj5giinf8rksacf757r475xfna0fqxjdj"))))
(build-system perl-build-system)
(native-inputs
;; For tests.
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 63916d1cc3..72f0e1fd55 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -310,7 +310,7 @@ integrate Windows applications into your desktop.")
(define-public wine-staging-patchset-data
(package
(name "wine-staging-patchset-data")
- (version "4.10")
+ (version "4.11")
(source
(origin
(method git-fetch)
@@ -320,7 +320,7 @@ integrate Windows applications into your desktop.")
(file-name (git-file-name name version))
(sha256
(base32
- "0kl5718c4xk8d1va1jb5jaa2n0vw3l0hi6bpc7siaww1fp64hy98"))))
+ "0h8qldqr9w1kwn48qgg5m1cs2xqkv8xxg2c66cvfka91hy886jcf"))))
(build-system trivial-build-system)
(native-inputs
`(("bash" ,bash)
@@ -366,7 +366,7 @@ integrate Windows applications into your desktop.")
(file-name (string-append name "-" version ".tar.xz"))
(sha256
(base32
- "041d3km85iqbshspy9av1fxjwq18xldrb18j04xl2fmpv1hq3pas"))))
+ "1rmyfwlynzs2niz7l2lwjs2axm6in6gb43ldbzyzsflxsmk5fl9f"))))
(inputs `(("autoconf" ,autoconf) ; for autoreconf
("faudio" ,faudio)
("ffmpeg" ,ffmpeg)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index d59041f639..a9b96529cf 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -519,6 +519,7 @@ move windows, switch between desktops, etc.).")
(git-reference
(url "https://github.com/resurrecting-open-source-projects/scrot.git")
(commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32 "1dg0pnmk09p7zlbyxv7d40vf54amrv73y976ds5p7096x6lmlndy"))))
(build-system gnu-build-system)
@@ -1178,7 +1179,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
(define-public rofi
(package
(name "rofi")
- (version "1.5.2")
+ (version "1.5.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/DaveDavenport/rofi/"
@@ -1186,7 +1187,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
version "/rofi-" version ".tar.xz"))
(sha256
(base32
- "17faa0rj8vqidrijwx9jrq0c29003n8v3izvc66yssfljgb8kcpj"))))
+ "0y78ya2va2lg3ww17n11y9awn8lhcp1px2d8gxaimxfqlxczs8la"))))
(build-system gnu-build-system)
(inputs
`(("pango" ,pango)
@@ -1206,7 +1207,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
("glib:bin" ,glib "bin")
("pkg-config" ,pkg-config)))
(arguments
- `(#:parallel-tests? #f ; May fail in some circumstances.
+ `(#:parallel-tests? #f ; fails in some circumstances
#:phases
(modify-phases %standard-phases
(add-before 'configure 'adjust-tests
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index c518508360..2b4feb1c2d 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.")
(define-public exo
(package
(name "exo")
- (version "0.12.5")
+ (version "0.12.6")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -196,7 +196,7 @@ to share commonly used Xfce widgets among the Xfce applications.")
"exo-" version ".tar.bz2"))
(sha256
(base32
- "1s23prcgall6r5dpn0qlrdq3zj13p95a5s0l2vflgrka8gb39x78"))))
+ "00qh8ihrf09jvd26kilybihkgvv6rvi0l1bvlldxc99jb7ygy5ql"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index ee345742a5..bd84c1bf3e 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -1780,17 +1780,14 @@ features and to query screensaver info on specific windows.")
(define-public sessreg
(package
(name "sessreg")
- (version "1.1.1")
+ (version "1.1.2")
(source
- (origin
- (method url-fetch)
- (uri (string-append
- "mirror://xorg/individual/app/sessreg-"
- version
- ".tar.bz2"))
- (sha256
- (base32
- "1qd66mg2bnppqz4xgdjzif2488zl82vx2c26ld3nb8pnyginm9vq"))))
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://xorg/individual/app/sessreg-" version ".tar.bz2"))
+ (sha256
+ (base32 "0crczl25zynkrslmm8sjaxszhrh4i33m7h5fg4wfdb3k8aarxjyz"))))
(build-system gnu-build-system)
(inputs
`(("xorgproto" ,xorgproto)))
@@ -2076,14 +2073,14 @@ legacy X clients.")
(define-public xcalc
(package
(name "xcalc")
- (version "1.0.7")
+ (version "1.1.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://xorg/individual/app/"
"xcalc-" version ".tar.gz"))
(sha256
- (base32 "1xgih1iq9498m7vk22qrdsck1rb905sn395azjn4a6pmhfai401b"))))
+ (base32 "0c768lh0nh28ram9ldldhaf51024fngc589v4pjmf3lxmzcihr58"))))
(build-system gnu-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 73acb3b17f..13cffd9feb 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -895,11 +895,17 @@ and @command{wicd-curses} user interfaces."
(vpn-plugins network-manager-vpn-plugins ;list of <package>
(default '())))
-(define %network-manager-activation
- ;; Activation gexp for NetworkManager.
- #~(begin
- (use-modules (guix build utils))
- (mkdir-p "/etc/NetworkManager/system-connections")))
+(define network-manager-activation
+ ;; Activation gexp for NetworkManager
+ (match-lambda
+ (($ <network-manager-configuration> network-manager dns vpn-plugins)
+ #~(begin
+ (use-modules (guix build utils))
+ (mkdir-p "/etc/NetworkManager/system-connections")
+ #$@(if (equal? dns "dnsmasq")
+ ;; create directory to store dnsmasq lease file
+ '((mkdir-p "/var/lib/misc"))
+ '())))))
(define (vpn-plugin-directory plugins)
"Return a directory containing PLUGINS, the NM VPN plugins."
@@ -949,7 +955,7 @@ and @command{wicd-curses} user interfaces."
(service-extension dbus-root-service-type config->package)
(service-extension polkit-service-type config->package)
(service-extension activation-service-type
- (const %network-manager-activation))
+ network-manager-activation)
(service-extension session-environment-service-type
network-manager-environment)
;; Add network-manager to the system profile.
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 656afd1ddb..c90b87c023 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
-;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -273,7 +273,10 @@ FILE-SYSTEMS."
(append-map (compose file-system-type-modules file-system-type)
file-systems))
-(define* (default-initrd-modules #:optional (system (%current-system)))
+(define* (default-initrd-modules
+ #:optional
+ (system (or (%current-target-system)
+ (%current-system))))
"Return the list of modules included in the initrd by default."
(define virtio-modules
;; Modules for Linux para-virtualized devices, for use in QEMU guests.
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index 247f237622..a891711844 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -223,8 +223,8 @@ info --version")
(operating-system-user-accounts os))))
(marionette-eval
`(begin
- (use-modules (srfi srfi-1) (ice-9 ftw)
- (ice-9 match))
+ (use-modules (guix build utils) (srfi srfi-1)
+ (ice-9 ftw) (ice-9 match))
(every (match-lambda
((user home)
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index 7b5ee18505..9f6baa1a48 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -79,6 +79,7 @@
(services (cons (service marionette-service-type
(marionette-configuration
(imported-modules '((gnu services herd)
+ (guix build utils)
(guix combinators)))))
%base-services))))
diff --git a/guix/build/compile.scm b/guix/build/compile.scm
index 794f12379c..c8fe273f7e 100644
--- a/guix/build/compile.scm
+++ b/guix/build/compile.scm
@@ -63,7 +63,8 @@
;; strings" due to the fact that we use 'G_' instead of '_'. We'll need
;; help from Guile to solve this.
'(unsupported-warning unbound-variable arity-mismatch
- macro-use-before-definition)) ;new in 2.2
+ macro-use-before-definition ;new in 2.2
+ shadowed-toplevel)) ;new in 2.2.5
(define (optimization-options file)
"Return the default set of optimizations options for FILE."
diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index 5c2eb3c14d..eb045cbd1c 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -146,6 +146,7 @@
window-size-y-pixels
terminal-window-size
terminal-columns
+ terminal-rows
utmpx?
utmpx-login-type
@@ -1871,23 +1872,17 @@ corresponds to the TIOCGWINSZ ioctl."
(list (strerror err))
(list err)))))
-(define* (terminal-columns #:optional (port (current-output-port)))
- "Return the best approximation of the number of columns of the terminal at
-PORT, trying to guess a reasonable value if all else fails. The result is
-always a positive integer."
- (define (fall-back)
- (match (and=> (getenv "COLUMNS") string->number)
- (#f 80)
- ((? number? columns)
- (if (> columns 0) columns 80))))
-
+(define (terminal-dimension window-dimension port fall-back)
+ "Return the terminal dimension defined by WINDOW-DIMENSION, one of
+'window-size-columns' or 'window-size-rows' for PORT. If PORT does not
+correspond to a terminal, return the value returned by FALL-BACK."
(catch 'system-error
(lambda ()
(if (file-port? port)
- (match (window-size-columns (terminal-window-size port))
+ (match (window-dimension (terminal-window-size port))
;; Things like Emacs shell-mode return 0, which is unreasonable.
(0 (fall-back))
- ((? number? columns) columns))
+ ((? number? n) n))
(fall-back)))
(lambda args
(let ((errno (system-error-errno args)))
@@ -1900,6 +1895,24 @@ always a positive integer."
(fall-back)
(apply throw args))))))
+(define* (terminal-columns #:optional (port (current-output-port)))
+ "Return the best approximation of the number of columns of the terminal at
+PORT, trying to guess a reasonable value if all else fails. The result is
+always a positive integer."
+ (define (fall-back)
+ (match (and=> (getenv "COLUMNS") string->number)
+ (#f 80)
+ ((? number? columns)
+ (if (> columns 0) columns 80))))
+
+ (terminal-dimension window-size-columns port fall-back))
+
+(define* (terminal-rows #:optional (port (current-output-port)))
+ "Return the best approximation of the number of rows of the terminal at
+PORT, trying to guess a reasonable value if all else fails. The result is
+always a positive integer."
+ (terminal-dimension window-size-rows port (const 25)))
+
;;;
;;; utmpx.
diff --git a/guix/derivations.scm b/guix/derivations.scm
index 8145d51143..433b4551a5 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -21,6 +21,7 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-9 gnu)
+ #:use-module (srfi srfi-11)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
@@ -34,6 +35,7 @@
#:use-module (guix base16)
#:use-module (guix memoization)
#:use-module (guix combinators)
+ #:use-module (guix deprecation)
#:use-module (guix monads)
#:use-module (gcrypt hash)
#:use-module (guix base32)
@@ -50,7 +52,8 @@
derivation-builder-environment-vars
derivation-file-name
derivation-prerequisites
- derivation-prerequisites-to-build
+ derivation-build-plan
+ derivation-prerequisites-to-build ;deprecated
<derivation-output>
derivation-output?
@@ -61,6 +64,7 @@
<derivation-input>
derivation-input?
+ derivation-input
derivation-input-path
derivation-input-derivation
derivation-input-sub-derivations
@@ -148,14 +152,28 @@
(recursive? derivation-output-recursive?)) ; Boolean
(define-immutable-record-type <derivation-input>
- (make-derivation-input path sub-derivations)
+ (make-derivation-input drv sub-derivations)
derivation-input?
- (path derivation-input-path) ; store path
+ (drv derivation-input-derivation) ; <derivation>
(sub-derivations derivation-input-sub-derivations)) ; list of strings
-(define (derivation-input-derivation input)
- "Return the <derivation> object INPUT refers to."
- (read-derivation-from-file (derivation-input-path input)))
+
+(define (derivation-input-path input)
+ "Return the file name of the derivation INPUT refers to."
+ (derivation-file-name (derivation-input-derivation input)))
+
+(define* (derivation-input drv #:optional
+ (outputs (derivation-output-names drv)))
+ "Return a <derivation-input> for the OUTPUTS of DRV."
+ ;; This is a public interface meant to be more convenient than
+ ;; 'make-derivation-input' and giving us more control.
+ (make-derivation-input drv outputs))
+
+(define (derivation-input-key input)
+ "Return an object for which 'equal?' and 'hash' are constant-time, and which
+can thus be used as a key for INPUT in lookup tables."
+ (cons (derivation-input-path input)
+ (derivation-input-sub-derivations input)))
(set-record-type-printer! <derivation>
(lambda (drv port)
@@ -197,8 +215,8 @@ download with a fixed hash (aka. `fetchurl')."
"Return the list of output paths corresponding to INPUT, a
<derivation-input>."
(match input
- (($ <derivation-input> path sub-drvs)
- (map (cut derivation-path->output-path path <>)
+ (($ <derivation-input> drv sub-drvs)
+ (map (cut derivation->output-path drv <>)
sub-drvs))))
(define (valid-derivation-input? store input)
@@ -213,20 +231,20 @@ they are coalesced, with their sub-derivations merged. This is needed because
Nix itself keeps only one of them."
(fold (lambda (input result)
(match input
- (($ <derivation-input> path sub-drvs)
+ (($ <derivation-input> (= derivation-file-name path) sub-drvs)
;; XXX: quadratic
(match (find (match-lambda
- (($ <derivation-input> p s)
+ (($ <derivation-input> (= derivation-file-name p)
+ s)
(string=? p path)))
result)
(#f
(cons input result))
- ((and dup ($ <derivation-input> _ sub-drvs2))
+ ((and dup ($ <derivation-input> drv sub-drvs2))
;; Merge DUP with INPUT.
(let ((sub-drvs (delete-duplicates
(append sub-drvs sub-drvs2))))
- (cons (make-derivation-input path
- (sort sub-drvs string<?))
+ (cons (make-derivation-input drv (sort sub-drvs string<?))
(delq dup result))))))))
'()
inputs))
@@ -242,12 +260,14 @@ result is the set of prerequisites of DRV not already in valid."
(result '())
(input-set (set)))
(let ((inputs (remove (lambda (input)
- (or (set-contains? input-set input)
+ (or (set-contains? input-set
+ (derivation-input-key input))
(cut? input)))
(derivation-inputs drv))))
(fold2 loop
(append inputs result)
- (fold set-insert input-set inputs)
+ (fold set-insert input-set
+ (map derivation-input-key inputs))
(map derivation-input-derivation inputs)))))
(define (offloadable-derivation? drv)
@@ -333,87 +353,81 @@ substituter many times."
(#f #f)
((key . value) value)))))
-(define* (derivation-prerequisites-to-build store drv
- #:key
- (mode (build-mode normal))
- (outputs
- (derivation-output-names drv))
- (substitutable-info
- (substitution-oracle store
- (list drv)
- #:mode mode)))
- "Return two values: the list of derivation-inputs required to build the
-OUTPUTS of DRV and not already available in STORE, recursively, and the list
-of required store paths that can be substituted. SUBSTITUTABLE-INFO must be a
-one-argument procedure similar to that returned by 'substitution-oracle'."
- (define built?
- (mlambda (item)
- (valid-path? store item)))
-
- (define input-built?
- (compose (cut any built? <>) derivation-input-output-paths))
-
- (define input-substitutable?
- ;; Return true if and only if all of SUB-DRVS are subsitutable. If at
- ;; least one is missing, then everything must be rebuilt.
- (compose (cut every substitutable-info <>) derivation-input-output-paths))
-
- (define (derivation-built? drv* sub-drvs)
+(define* (derivation-build-plan store inputs
+ #:key
+ (mode (build-mode normal))
+ (substitutable-info
+ (substitution-oracle
+ store
+ (map derivation-input-derivation
+ inputs)
+ #:mode mode)))
+ "Given INPUTS, a list of derivation-inputs, return two values: the list of
+derivation to build, and the list of substitutable items that, together,
+allows INPUTS to be realized.
+
+SUBSTITUTABLE-INFO must be a one-argument procedure similar to that returned
+by 'substitution-oracle'."
+ (define (built? item)
+ (valid-path? store item))
+
+ (define (input-built? input)
;; In 'check' mode, assume that DRV is not built.
(and (not (and (eqv? mode (build-mode check))
- (eq? drv* drv)))
- (every built? (derivation-output-paths drv* sub-drvs))))
-
- (define (derivation-substitutable-info drv sub-drvs)
- (and (substitutable-derivation? drv)
- (let ((info (filter-map substitutable-info
- (derivation-output-paths drv sub-drvs))))
- (and (= (length info) (length sub-drvs))
+ (member input inputs)))
+ (every built? (derivation-input-output-paths input))))
+
+ (define (input-substitutable-info input)
+ (and (substitutable-derivation? (derivation-input-derivation input))
+ (let* ((items (derivation-input-output-paths input))
+ (info (filter-map substitutable-info items)))
+ (and (= (length info) (length items))
info))))
- (let loop ((drv drv)
- (sub-drvs outputs)
- (build '()) ;list of <derivation-input>
- (substitute '())) ;list of <substitutable>
- (cond ((derivation-built? drv sub-drvs)
- (values build substitute))
- ((derivation-substitutable-info drv sub-drvs)
- =>
- (lambda (substitutables)
- (values build
- (append substitutables substitute))))
- (else
- (let ((build (if (substitutable-derivation? drv)
- build
- (cons (make-derivation-input
- (derivation-file-name drv) sub-drvs)
- build)))
- (inputs (remove (lambda (i)
- (or (member i build) ; XXX: quadratic
- (input-built? i)
- (input-substitutable? i)))
- (derivation-inputs drv))))
- (fold2 loop
- (append inputs build)
- (append (append-map (lambda (input)
- (if (and (not (input-built? input))
- (input-substitutable? input))
- (map substitutable-info
- (derivation-input-output-paths
- input))
- '()))
- (derivation-inputs drv))
- substitute)
- (map (lambda (i)
- (read-derivation-from-file
- (derivation-input-path i)))
- inputs)
- (map derivation-input-sub-derivations inputs)))))))
-
-(define (read-derivation drv-port)
+ (let loop ((inputs inputs) ;list of <derivation-input>
+ (build '()) ;list of <derivation>
+ (substitute '()) ;list of <substitutable>
+ (visited (set))) ;set of <derivation-input>
+ (match inputs
+ (()
+ (values build substitute))
+ ((input rest ...)
+ (let ((key (derivation-input-key input)))
+ (cond ((set-contains? visited key)
+ (loop rest build substitute visited))
+ ((input-built? input)
+ (loop rest build substitute
+ (set-insert key visited)))
+ ((input-substitutable-info input)
+ =>
+ (lambda (substitutables)
+ (loop rest build
+ (append substitutables substitute)
+ (set-insert key visited))))
+ (else
+ (let ((deps (derivation-inputs
+ (derivation-input-derivation input))))
+ (loop (append deps rest)
+ (cons (derivation-input-derivation input) build)
+ substitute
+ (set-insert key visited))))))))))
+
+(define-deprecated (derivation-prerequisites-to-build store drv #:rest rest)
+ derivation-build-plan
+ (let-values (((build download)
+ (apply derivation-build-plan store
+ (list (derivation-input drv)) rest)))
+ (values (map derivation-input build) download)))
+
+(define* (read-derivation drv-port
+ #:optional (read-derivation-from-file
+ read-derivation-from-file))
"Read the derivation from DRV-PORT and return the corresponding <derivation>
-object. Most of the time you'll want to use 'read-derivation-from-file',
-which caches things as appropriate and is thus more efficient."
+object. Call READ-DERIVATION-FROM-FILE to read derivations declared as inputs
+of the derivation being parsed.
+
+Most of the time you'll want to use 'read-derivation-from-file', which caches
+things as appropriate and is thus more efficient."
(define comma (string->symbol ","))
@@ -449,8 +463,9 @@ which caches things as appropriate and is thus more efficient."
(fold-right (lambda (input result)
(match input
((path (sub-drvs ...))
- (cons (make-derivation-input path sub-drvs)
- result))))
+ (let ((drv (read-derivation-from-file path)))
+ (cons (make-derivation-input drv sub-drvs)
+ result)))))
'()
x))
@@ -552,9 +567,15 @@ that form."
(define (write-input input port)
(match input
- (($ <derivation-input> path sub-drvs)
+ (($ <derivation-input> obj sub-drvs)
(display "(\"" port)
- (display path port)
+
+ ;; 'derivation/masked-inputs' produces objects that contain a string
+ ;; instead of a <derivation>, so we need to account for that.
+ (display (if (derivation? obj)
+ (derivation-file-name obj)
+ obj)
+ port)
(display "\"," port)
(write-string-list sub-drvs)
(display ")" port))))
@@ -645,13 +666,16 @@ name of each input with that input's hash."
(($ <derivation> outputs inputs sources
system builder args env-vars)
(let ((inputs (map (match-lambda
- (($ <derivation-input> path sub-drvs)
+ (($ <derivation-input> (= derivation-file-name path)
+ sub-drvs)
(let ((hash (derivation-path->base16-hash path)))
(make-derivation-input hash sub-drvs))))
inputs)))
(make-derivation outputs
- (sort (coalesce-duplicate-inputs inputs)
- derivation-input<?)
+ (sort inputs
+ (lambda (drv1 drv2)
+ (string<? (derivation-input-derivation drv1)
+ (derivation-input-derivation drv2))))
sources
system builder args env-vars
#f)))))
@@ -807,17 +831,19 @@ derivation. It is kept as-is, uninterpreted, in the derivation."
(define input->derivation-input
(match-lambda
(((? derivation? drv))
- (make-derivation-input (derivation-file-name drv) '("out")))
+ (make-derivation-input drv '("out")))
(((? derivation? drv) sub-drvs ...)
- (make-derivation-input (derivation-file-name drv) sub-drvs))
- (((? direct-store-path? input))
- (make-derivation-input input '("out")))
- (((? direct-store-path? input) sub-drvs ...)
- (make-derivation-input input sub-drvs))
- ((input . _)
- (let ((path (add-to-store store (basename input)
- #t "sha256" input)))
- (make-derivation-input path '())))))
+ (make-derivation-input drv sub-drvs))
+ (_ #f)))
+
+ (define input->source
+ (match-lambda
+ (((? string? input) . _)
+ (if (direct-store-path? input)
+ input
+ (add-to-store store (basename input)
+ #t "sha256" input)))
+ (_ #f)))
;; Note: lists are sorted alphabetically, to conform with the behavior of
;; C++ `std::map' in Nix itself.
@@ -828,32 +854,31 @@ derivation. It is kept as-is, uninterpreted, in the derivation."
(make-derivation-output "" hash-algo
hash recursive?)))
(sort outputs string<?)))
+ (sources (sort (delete-duplicates
+ (filter-map input->source inputs))
+ string<?))
(inputs (sort (coalesce-duplicate-inputs
- (map input->derivation-input
- (delete-duplicates inputs)))
+ (filter-map input->derivation-input inputs))
derivation-input<?))
(env-vars (sort (env-vars-with-empty-outputs
(user+system-env-vars))
(lambda (e1 e2)
(string<? (car e1) (car e2)))))
- (drv-masked (make-derivation outputs
- (filter (compose derivation-path?
- derivation-input-path)
- inputs)
- (filter-map (lambda (i)
- (let ((p (derivation-input-path i)))
- (and (not (derivation-path? p))
- p)))
- inputs)
+ (drv-masked (make-derivation outputs inputs sources
system builder args env-vars #f))
(drv (add-output-paths drv-masked)))
(let* ((file (add-data-to-store store (string-append name ".drv")
(derivation->bytevector drv)
- (map derivation-input-path inputs)))
+ (append (map derivation-input-path inputs)
+ sources)))
(drv* (set-field drv (derivation-file-name) file)))
- (hash-set! %derivation-cache file drv*)
- drv*)))
+ ;; Preserve pointer equality. This improves the performance of
+ ;; 'eq?'-memoization on derivations.
+ (or (hash-ref %derivation-cache file)
+ (begin
+ (hash-set! %derivation-cache file drv*)
+ drv*)))))
(define (invalidate-derivation-caches!)
"Invalidate internal derivation caches. This is mostly useful for
@@ -920,7 +945,8 @@ recursively."
;; in the format used in 'derivation' calls.
(mlambda (input loop)
(match input
- (($ <derivation-input> path (sub-drvs ...))
+ (($ <derivation-input> (= derivation-file-name path)
+ (sub-drvs ...))
(match (vhash-assoc path mapping)
((_ . (? derivation? replacement))
(cons replacement sub-drvs))
@@ -990,6 +1016,11 @@ derivation/output pairs, using the specified MODE."
(build-things store (map (match-lambda
((? derivation? drv)
(derivation-file-name drv))
+ ((? derivation-input? input)
+ (cons (derivation-input-path input)
+ (string-join
+ (derivation-input-sub-derivations input)
+ ",")))
((? string? file) file)
(((? derivation? drv) . output)
(cons (derivation-file-name drv)
diff --git a/guix/progress.scm b/guix/progress.scm
index f150b081d6..349637dbcf 100644
--- a/guix/progress.scm
+++ b/guix/progress.scm
@@ -197,7 +197,9 @@ object) and TRANSFERRED (a total number of bytes) to determine the
throughput."
(define elapsed
(duration->seconds
- (time-difference (current-time time-monotonic) start-time)))
+ (time-difference (current-time (time-type start-time))
+ start-time)))
+
(if (and (number? size) (not (zero? size)))
(let* ((% (* 100.0 (/ transferred size)))
(throughput (/ transferred elapsed))
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index 61ca4dca9f..ec58ba871b 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -836,11 +836,9 @@ build."
(#t
(match (package-source p)
(#f
- (format (current-error-port)
- (G_ "~a: warning: \
-package '~a' has no source~%")
- (location->string (package-location p))
- (package-name p))
+ (warning (package-location p)
+ (G_ "package '~a' has no source~%")
+ (package-name p))
'())
(s
(list (package-source-derivation store s)))))
@@ -918,7 +916,8 @@ needed."
'())))
(items (filter-map (match-lambda
(('argument . (? store-path? file))
- file)
+ (and (not (derivation-path? file))
+ file))
(_ #f))
opts))
(roots (filter-map (match-lambda
diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm
index 8fe81ad64b..2e14857f1e 100644
--- a/guix/scripts/graph.scm
+++ b/guix/scripts/graph.scm
@@ -254,8 +254,7 @@ GNU-BUILD-SYSTEM have zero dependencies."
"Return the <derivation> objects and store items corresponding to the
dependencies of OBJ, a <derivation> or store item."
(if (derivation? obj)
- (append (map (compose read-derivation-from-file derivation-input-path)
- (derivation-inputs obj))
+ (append (map derivation-input-derivation (derivation-inputs obj))
(derivation-sources obj))
'()))
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index 5751123525..7b277b63f1 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -26,6 +26,7 @@
(define-module (guix scripts package)
#:use-module (guix ui)
#:use-module ((guix status) #:select (with-status-verbosity))
+ #:use-module ((guix build syscalls) #:select (terminal-rows))
#:use-module (guix store)
#:use-module (guix grafts)
#:use-module (guix derivations)
@@ -178,9 +179,9 @@ hooks\" run when building the profile."
;;;
(define (find-packages-by-description regexps)
- "Return two values: the list of packages whose name, synopsis, description,
-or output matches at least one of REGEXPS sorted by relevance, and the list of
-relevance scores."
+ "Return a list of pairs: packages whose name, synopsis, description,
+or output matches at least one of REGEXPS sorted by relevance, and its
+non-zero relevance score."
(let ((matches (fold-packages (lambda (package result)
(if (package-superseded package)
result
@@ -189,19 +190,19 @@ relevance scores."
((? zero?)
result)
(score
- (cons (list package score)
+ (cons (cons package score)
result)))))
'())))
- (unzip2 (sort matches
- (lambda (m1 m2)
- (match m1
- ((package1 score1)
- (match m2
- ((package2 score2)
- (if (= score1 score2)
- (string>? (package-full-name package1)
- (package-full-name package2))
- (> score1 score2)))))))))))
+ (sort matches
+ (lambda (m1 m2)
+ (match m1
+ ((package1 . score1)
+ (match m2
+ ((package2 . score2)
+ (if (= score1 score2)
+ (string>? (package-full-name package1)
+ (package-full-name package2))
+ (> score1 score2))))))))))
(define (transaction-upgrade-entry entry transaction)
"Return a variant of TRANSACTION that accounts for the upgrade of ENTRY, a
@@ -755,16 +756,10 @@ processed, #f otherwise."
(('query 'search rx) rx)
(_ #f))
opts))
- (regexps (map (cut make-regexp* <> regexp/icase) patterns)))
+ (regexps (map (cut make-regexp* <> regexp/icase) patterns))
+ (matches (find-packages-by-description regexps)))
(leave-on-EPIPE
- (let-values (((packages scores)
- (find-packages-by-description regexps)))
- (for-each (lambda (package score)
- (package->recutils package (current-output-port)
- #:extra-fields
- `((relevance . ,score))))
- packages
- scores)))
+ (display-search-results matches (current-output-port)))
#t))
(('show requested-name)
diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm
index b4334b3f16..c716998a5b 100644
--- a/guix/scripts/publish.scm
+++ b/guix/scripts/publish.scm
@@ -724,6 +724,32 @@ example: \"/foo/bar\" yields '(\"foo\" \"bar\")."
(define %http-write
(@@ (web server http) http-write))
+(match (list (major-version) (minor-version) (micro-version))
+ (("2" "2" "5") ;Guile 2.2.5
+ (let ()
+ (define %read-line (@ (ice-9 rdelim) %read-line))
+ (define bad-header (@@ (web http) bad-header))
+
+ ;; XXX: Work around <https://bugs.gnu.org/36350> by reverting to the
+ ;; definition of 'read-header-line' as found in 2.2.4 and earlier.
+ (define (read-header-line port)
+ "Read an HTTP header line and return it without its final CRLF or LF.
+Raise a 'bad-header' exception if the line does not end in CRLF or LF,
+or if EOF is reached."
+ (match (%read-line port)
+ (((? string? line) . #\newline)
+ ;; '%read-line' does not consider #\return a delimiter; so if it's
+ ;; there, remove it. We are more tolerant than the RFC in that we
+ ;; tolerate LF-only endings.
+ (if (string-suffix? "\r" line)
+ (string-drop-right line 1)
+ line))
+ ((line . _) ;EOF or missing delimiter
+ (bad-header 'read-header-line line))))
+
+ (set! (@@ (web http) read-header-line) read-header-line)))
+ (_ #t))
+
(define (strip-headers response)
"Return RESPONSE's headers minus 'Content-Length' and our internal headers."
(fold alist-delete
diff --git a/guix/scripts/system/search.scm b/guix/scripts/system/search.scm
index 955cdd1e95..5278062edd 100644
--- a/guix/scripts/system/search.scm
+++ b/guix/scripts/system/search.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
@@ -139,9 +139,8 @@ columns."
. 1)))
(define (find-service-types regexps)
- "Return two values: the list of service types whose name or description
-matches at least one of REGEXPS sorted by relevance, and the list of relevance
-scores."
+ "Return a list of service type/score pairs: service types whose name or
+description matches REGEXPS sorted by relevance, and their score."
(let ((matches (fold-service-types
(lambda (type result)
(match (relevance type regexps
@@ -149,30 +148,25 @@ scores."
((? zero?)
result)
(score
- (cons (list type score) result))))
+ (cons (cons type score) result))))
'())))
- (unzip2 (sort matches
- (lambda (m1 m2)
- (match m1
- ((type1 score1)
- (match m2
- ((type2 score2)
- (if (= score1 score2)
- (string>? (service-type-name* type1)
- (service-type-name* type2))
- (> score1 score2)))))))))))
+ (sort matches
+ (lambda (m1 m2)
+ (match m1
+ ((type1 . score1)
+ (match m2
+ ((type2 . score2)
+ (if (= score1 score2)
+ (string>? (service-type-name* type1)
+ (service-type-name* type2))
+ (> score1 score2))))))))))
(define (guix-system-search . args)
(with-error-handling
- (let ((regexps (map (cut make-regexp* <> regexp/icase) args)))
+ (let* ((regexps (map (cut make-regexp* <> regexp/icase) args))
+ (matches (find-service-types regexps)))
(leave-on-EPIPE
- (let-values (((services scores)
- (find-service-types regexps)))
- (for-each (lambda (service score)
- (service-type->recutils service
- (current-output-port)
- #:extra-fields
- `((relevance . ,score))))
- services
- scores))))))
+ (display-search-results matches (current-output-port)
+ #:print service-type->recutils
+ #:command "guix system search")))))
diff --git a/guix/ui.scm b/guix/ui.scm
index 0b4fe144b6..6d243ef041 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -41,12 +41,12 @@
#:use-module (guix packages)
#:use-module (guix profiles)
#:use-module (guix derivations)
- #:use-module (guix combinators)
#:use-module (guix build-system)
#:use-module (guix serialization)
#:use-module ((guix licenses) #:select (license? license-name))
#:use-module ((guix build syscalls)
- #:select (free-disk-space terminal-columns))
+ #:select (free-disk-space terminal-columns
+ terminal-rows))
#:use-module ((guix build utils)
;; XXX: All we need are the bindings related to
;; '&invoke-error'. However, to work around the bug described
@@ -106,8 +106,11 @@
string->recutils
package->recutils
package-specification->name+version+output
+
relevance
package-relevance
+ display-search-results
+
string->generations
string->duration
matching-generations
@@ -774,12 +777,19 @@ error."
str))))
(define (show-derivation-outputs derivation)
- "Show the output file names of DERIVATION."
- (format #t "~{~a~%~}"
- (map (match-lambda
- ((out-name . out)
- (derivation->output-path derivation out-name)))
- (derivation-outputs derivation))))
+ "Show the output file names of DERIVATION, which can be a derivation or a
+derivation input."
+ (define (show-outputs derivation outputs)
+ (format #t "~{~a~%~}"
+ (map (cut derivation->output-path derivation <>)
+ outputs)))
+
+ (match derivation
+ ((? derivation?)
+ (show-outputs derivation (derivation-output-names derivation)))
+ ((? derivation-input? input)
+ (show-outputs (derivation-input-derivation input)
+ (derivation-input-sub-derivations input)))))
(define* (check-available-space need
#:optional (directory (%store-prefix)))
@@ -809,40 +819,31 @@ warning."
#:key dry-run? (use-substitutes? #t)
(mode (build-mode normal)))
"Show what will or would (depending on DRY-RUN?) be built in realizing the
-derivations listed in DRV using MODE, a 'build-mode' value. Return #t if
-there's something to build, #f otherwise. When USE-SUBSTITUTES?, check and
-report what is prerequisites are available for download."
+derivations listed in DRV using MODE, a 'build-mode' value. The elements of
+DRV can be either derivations or derivation inputs.
+
+Return #t if there's something to build, #f otherwise. When USE-SUBSTITUTES?,
+check and report what is prerequisites are available for download."
+ (define inputs
+ (map (match-lambda
+ ((? derivation? drv) (derivation-input drv))
+ ((? derivation-input? input) input))
+ drv))
+
(define substitutable-info
;; Call 'substitutation-oracle' upfront so we don't end up launching the
;; substituter many times. This makes a big difference, especially when
;; DRV is a long list as is the case with 'guix environment'.
(if use-substitutes?
- (substitution-oracle store drv #:mode mode)
+ (substitution-oracle store (map derivation-input-derivation inputs)
+ #:mode mode)
(const #f)))
- (define (built-or-substitutable? drv)
- (or (null? (derivation-outputs drv))
- (let ((out (derivation->output-path drv))) ;XXX: assume "out" exists
- (or (valid-path? store out)
- (substitutable-info out)))))
-
(let*-values (((build download)
- (fold2 (lambda (drv build download)
- (let-values (((b d)
- (derivation-prerequisites-to-build
- store drv
- #:mode mode
- #:substitutable-info
- substitutable-info)))
- (values (append b build)
- (append d download))))
- '() '()
- drv))
- ((build) ; add the DRV themselves
- (delete-duplicates
- (append (map derivation-file-name
- (remove built-or-substitutable? drv))
- (map derivation-input-path build))))
+ (derivation-build-plan store inputs
+ #:mode mode
+ #:substitutable-info
+ substitutable-info))
((download) ; add the references of DOWNLOAD
(if use-substitutes?
(delete-duplicates
@@ -856,8 +857,8 @@ report what is prerequisites are available for download."
download))))
download))
((graft hook build)
- (match (fold (lambda (file acc)
- (let ((drv (read-derivation-from-file file)))
+ (match (fold (lambda (drv acc)
+ (let ((file (derivation-file-name drv)))
(match acc
((#:graft graft #:hook hook #:build build)
(cond
@@ -1246,6 +1247,11 @@ WIDTH columns. EXTRA-FIELDS is a list of symbol/value pairs to emit."
extra-fields)
(newline port))
+
+;;;
+;;; Searching.
+;;;
+
(define (relevance obj regexps metrics)
"Compute a \"relevance score\" for OBJ as a function of its number of
matches of REGEXPS and accordingly to METRICS. METRICS is list of
@@ -1256,17 +1262,20 @@ weight of this field in the final score.
A score of zero means that OBJ does not match any of REGEXPS. The higher the
score, the more relevant OBJ is to REGEXPS."
(define (score str)
- (let ((counts (map (lambda (regexp)
- (match (fold-matches regexp str '() cons)
- (() 0)
- ((m) (if (string=? (match:substring m) str)
- 5 ;exact match
- 1))
- (lst (length lst))))
- regexps)))
- ;; Compute a score that's proportional to the number of regexps matched
- ;; and to the number of matches for each regexp.
- (* (length counts) (reduce + 0 counts))))
+ (define scores
+ (map (lambda (regexp)
+ (fold-matches regexp str 0
+ (lambda (m score)
+ (+ score
+ (if (string=? (match:substring m) str)
+ 5 ;exact match
+ 1)))))
+ regexps))
+
+ ;; Return zero if one of REGEXPS doesn't match.
+ (if (any zero? scores)
+ 0
+ (reduce + 0 scores)))
(fold (lambda (metric relevance)
(match metric
@@ -1312,6 +1321,45 @@ score, the more relevant OBJ is to REGEXPS."
zero means that PACKAGE does not match any of REGEXPS."
(relevance package regexps %package-metrics))
+(define* (display-search-results matches port
+ #:key
+ (command "guix search")
+ (print package->recutils))
+ "Display MATCHES, a list of object/score pairs, by calling PRINT on each of
+them. If PORT is a terminal, print at most a full screen of results."
+ (define first-line
+ (port-line port))
+
+ (define max-rows
+ (and first-line (isatty? port)
+ (terminal-rows port)))
+
+ (define (line-count str)
+ (string-count str #\newline))
+
+ (let loop ((matches matches))
+ (match matches
+ (((package . score) rest ...)
+ (let ((text (call-with-output-string
+ (lambda (port)
+ (print package port
+ #:extra-fields
+ `((relevance . ,score)))))))
+ (if (and max-rows
+ (> (port-line port) first-line) ;print at least one result
+ (> (+ 4 (line-count text) (port-line port))
+ max-rows))
+ (unless (null? rest)
+ (display-hint (format #f (G_ "Run @code{~a ... | less} \
+to view all the results.")
+ command)))
+ (begin
+ (display text port)
+ (loop rest)))))
+ (()
+ #t))))
+
+
(define (string->generations str)
"Return the list of generations matching a pattern in STR. This function
accepts the following patterns: \"1\", \"1,2,3\", \"1..9\", \"1..\", \"..9\"."
diff --git a/tests/derivations.scm b/tests/derivations.scm
index b0175d9fc5..98018a45e3 100644
--- a/tests/derivations.scm
+++ b/tests/derivations.scm
@@ -86,9 +86,11 @@
(test-assert "parse & export"
(let* ((f (search-path %load-path "tests/test.drv"))
(b1 (call-with-input-file f get-bytevector-all))
- (d1 (read-derivation (open-bytevector-input-port b1)))
+ (d1 (read-derivation (open-bytevector-input-port b1)
+ identity))
(b2 (call-with-bytevector-output-port (cut write-derivation d1 <>)))
- (d2 (read-derivation (open-bytevector-input-port b2))))
+ (d2 (read-derivation (open-bytevector-input-port b2)
+ identity)))
(and (equal? b1 b2)
(equal? d1 d2))))
@@ -723,7 +725,7 @@
(test-assert "build-expression->derivation and derivation-prerequisites"
(let ((drv (build-expression->derivation %store "fail" #f)))
(any (match-lambda
- (($ <derivation-input> path)
+ (($ <derivation-input> (= derivation-file-name path))
(string=? path (derivation-file-name (%guile-for-build)))))
(derivation-prerequisites drv))))
@@ -740,7 +742,7 @@
(match (derivation-prerequisites c
(cut valid-derivation-input? %store
<>))
- ((($ <derivation-input> file ("out")))
+ ((($ <derivation-input> (= derivation-file-name file) ("out")))
(string=? file (derivation-file-name b)))
(x
(pk 'fail x #f)))))
@@ -804,17 +806,20 @@
;; Ask for nothing but the "out" output of DRV.
(build-derivations store `((,drv . "out")))
+ ;; Synonymous:
+ (build-derivations store (list (derivation-input drv '("out"))))
+
(valid-path? store out)
- (equal? (pk 'x content) (pk 'y (call-with-input-file out get-string-all)))
- )))))
+ (equal? (pk 'x content)
+ (pk 'y (call-with-input-file out get-string-all))))))))
-(test-assert "build-expression->derivation and derivation-prerequisites-to-build"
+(test-assert "build-expression->derivation and derivation-build-plan"
(let ((drv (build-expression->derivation %store "fail" #f)))
;; The only direct dependency is (%guile-for-build) and it's already
;; built.
- (null? (derivation-prerequisites-to-build %store drv))))
+ (null? (derivation-build-plan %store (derivation-inputs drv)))))
-(test-assert "derivation-prerequisites-to-build when outputs already present"
+(test-assert "derivation-build-plan when outputs already present"
(let* ((builder `(begin ,(random-text) (mkdir %output) #t))
(input-drv (build-expression->derivation %store "input" builder))
(input-path (derivation->output-path input-drv))
@@ -827,9 +832,12 @@
(valid-path? %store output))
(error "things already built" input-drv))
- (and (equal? (map derivation-input-path
- (derivation-prerequisites-to-build %store drv))
- (list (derivation-file-name input-drv)))
+ (and (lset= equal?
+ (map derivation-file-name
+ (derivation-build-plan %store
+ (list (derivation-input drv))))
+ (list (derivation-file-name input-drv)
+ (derivation-file-name drv)))
;; Build DRV and delete its input.
(build-derivations %store (list drv))
@@ -838,9 +846,10 @@
;; Now INPUT-PATH is missing, yet it shouldn't be listed as a
;; prerequisite to build because DRV itself is already built.
- (null? (derivation-prerequisites-to-build %store drv)))))
+ (null? (derivation-build-plan %store
+ (list (derivation-input drv)))))))
-(test-assert "derivation-prerequisites-to-build and substitutes"
+(test-assert "derivation-build-plan and substitutes"
(let* ((store (open-connection))
(drv (build-expression->derivation store "prereq-subst"
(random 1000)))
@@ -852,17 +861,19 @@
(with-derivation-narinfo drv
(let-values (((build download)
- (derivation-prerequisites-to-build store drv))
+ (derivation-build-plan store
+ (list (derivation-input drv))))
((build* download*)
- (derivation-prerequisites-to-build store drv
- #:substitutable-info
- (const #f))))
+ (derivation-build-plan store
+ (list (derivation-input drv))
+ #:substitutable-info
+ (const #f))))
(and (null? build)
(equal? (map substitutable-path download) (list output))
(null? download*)
- (null? build*))))))
+ (equal? (list drv) build*))))))
-(test-assert "derivation-prerequisites-to-build and substitutes, non-substitutable build"
+(test-assert "derivation-build-plan and substitutes, non-substitutable build"
(let* ((store (open-connection))
(drv (build-expression->derivation store "prereq-no-subst"
(random 1000)
@@ -875,16 +886,16 @@
(with-derivation-narinfo drv
(let-values (((build download)
- (derivation-prerequisites-to-build store drv)))
+ (derivation-build-plan store
+ (list (derivation-input drv)))))
;; Despite being available as a substitute, DRV will be built locally
;; due to #:substitutable? #f.
(and (null? download)
(match build
- (((? derivation-input? input))
- (string=? (derivation-input-path input)
- (derivation-file-name drv)))))))))
+ (((= derivation-file-name build))
+ (string=? build (derivation-file-name drv)))))))))
-(test-assert "derivation-prerequisites-to-build and substitutes, local build"
+(test-assert "derivation-build-plan and substitutes, local build"
(with-store store
(let* ((drv (build-expression->derivation store "prereq-subst-local"
(random 1000)
@@ -897,7 +908,8 @@
(with-derivation-narinfo drv
(let-values (((build download)
- (derivation-prerequisites-to-build store drv)))
+ (derivation-build-plan store
+ (list (derivation-input drv)))))
;; #:local-build? is *not* synonymous with #:substitutable?, so we
;; must be able to substitute DRV's output.
;; See <http://bugs.gnu.org/18747>.
@@ -906,7 +918,7 @@
(((= substitutable-path item))
(string=? item (derivation->output-path drv))))))))))
-(test-assert "derivation-prerequisites-to-build in 'check' mode"
+(test-assert "derivation-build-plan in 'check' mode"
(with-store store
(let* ((dep (build-expression->derivation store "dep"
`(begin ,(random-text)
@@ -918,13 +930,13 @@
(delete-paths store (list (derivation->output-path dep)))
;; In 'check' mode, DEP must be rebuilt.
- (and (null? (derivation-prerequisites-to-build store drv))
- (match (derivation-prerequisites-to-build store drv
- #:mode (build-mode
- check))
- ((input)
- (string=? (derivation-input-path input)
- (derivation-file-name dep))))))))
+ (and (null? (derivation-build-plan store
+ (list (derivation-input drv))))
+ (lset= equal?
+ (derivation-build-plan store
+ (list (derivation-input drv))
+ #:mode (build-mode check))
+ (list drv dep))))))
(test-assert "substitution-oracle and #:substitute? #f"
(with-store store
diff --git a/tests/grafts.scm b/tests/grafts.scm
index e5356decc5..a12c6a5911 100644
--- a/tests/grafts.scm
+++ b/tests/grafts.scm
@@ -44,9 +44,6 @@
(define %mkdir
(bootstrap-binary "mkdir"))
-(define make-derivation-input
- (@@ (guix derivations) make-derivation-input))
-
(test-begin "grafts")
@@ -355,16 +352,11 @@
(p1r-inputs (filter (match-input p1r) inputs))
(p2-inputs (filter (match-input p2) inputs)))
(and (equal? p1-inputs
- (list (make-derivation-input (derivation-file-name p1)
- '("one"))))
+ (list (derivation-input p1 '("one"))))
(equal? p1r-inputs
- (list
- (make-derivation-input (derivation-file-name p1r)
- '("ONE"))))
+ (list (derivation-input p1r '("ONE"))))
(equal? p2-inputs
- (list
- (make-derivation-input (derivation-file-name p2)
- '("aaa"))))
+ (list (derivation-input p2 '("aaa"))))
(derivation-output-names p2g))))))
(test-assert "graft-derivation, renaming" ;<http://bugs.gnu.org/23132>
diff --git a/tests/guix-daemon.sh b/tests/guix-daemon.sh
index ca46e34ce9..758f18cc36 100644
--- a/tests/guix-daemon.sh
+++ b/tests/guix-daemon.sh
@@ -196,7 +196,7 @@ done
# Make sure garbage collection from a TCP connection does not work.
-tcp_socket="127.0.0.1:9999"
+tcp_socket="127.0.0.1:9998"
guix-daemon --listen="$tcp_socket" &
daemon_pid=$!
diff --git a/tests/packages.scm b/tests/packages.scm
index bd100bea5b..0478fff237 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -1244,6 +1244,38 @@
(lambda (key . args)
key)))
+(test-equal "specification->package+output"
+ `((,coreutils "out") (,coreutils "debug"))
+ (list (call-with-values (lambda ()
+ (specification->package+output "coreutils"))
+ list)
+ (call-with-values (lambda ()
+ (specification->package+output "coreutils:debug"))
+ list)))
+
+(test-equal "specification->package+output invalid output"
+ 'error
+ (catch 'quit
+ (lambda ()
+ (specification->package+output "coreutils:does-not-exist"))
+ (lambda _
+ 'error)))
+
+(test-equal "specification->package+output no default output"
+ `(,coreutils #f)
+ (call-with-values
+ (lambda ()
+ (specification->package+output "coreutils" #f))
+ list))
+
+(test-equal "specification->package+output invalid output, no default"
+ 'error
+ (catch 'quit
+ (lambda ()
+ (specification->package+output "coreutils:does-not-exist" #f))
+ (lambda _
+ 'error)))
+
(test-equal "find-package-locations"
(map (lambda (package)
(cons (package-version package)
diff --git a/tests/syscalls.scm b/tests/syscalls.scm
index 3e267c9f01..eeb223b950 100644
--- a/tests/syscalls.scm
+++ b/tests/syscalls.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;;
;;; This file is part of GNU Guix.
@@ -538,6 +538,9 @@
(> (terminal-columns (open-input-string "Join us now, share the software!"))
0))
+(test-assert "terminal-rows"
+ (> (terminal-rows) 0))
+
(test-assert "utmpx-entries"
(match (utmpx-entries)
(((? utmpx? entries) ...)
diff --git a/tests/ui.scm b/tests/ui.scm
index 1e98e3534b..2138e23369 100644
--- a/tests/ui.scm
+++ b/tests/ui.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,10 +22,12 @@
#:use-module (guix profiles)
#:use-module (guix store)
#:use-module (guix derivations)
+ #:use-module ((gnu packages) #:select (specification->package))
#:use-module (guix tests)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-19)
+ #:use-module (srfi srfi-26)
#:use-module (srfi srfi-64)
#:use-module (ice-9 regex))
@@ -260,4 +262,27 @@ Second line" 24))
"ISO-8859-1")
(show-manifest-transaction store m t))))))))
+(test-assert "package-relevance"
+ (let ((guile (specification->package "guile"))
+ (gcrypt (specification->package "guile-gcrypt"))
+ (go (specification->package "go"))
+ (gnugo (specification->package "gnugo"))
+ (rx (cut make-regexp <> regexp/icase))
+ (>0 (cut > <> 0))
+ (=0 zero?))
+ (and (>0 (package-relevance guile
+ (map rx '("scheme"))))
+ (>0 (package-relevance guile
+ (map rx '("scheme" "implementation"))))
+ (>0 (package-relevance gcrypt
+ (map rx '("guile" "crypto"))))
+ (=0 (package-relevance guile
+ (map rx '("guile" "crypto"))))
+ (>0 (package-relevance go
+ (map rx '("go"))))
+ (=0 (package-relevance go
+ (map rx '("go" "game"))))
+ (>0 (package-relevance gnugo
+ (map rx '("go" "game")))))))
+
(test-end "ui")