summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2018-06-18 15:29:38 +0200
committerMarius Bakke <mbakke@fastmail.com>2018-06-18 15:29:38 +0200
commit6969c4de445a390eaa05de22bc5a537a76a76169 (patch)
tree9df3bdde497fdce705ae4eb66972f93a9ae111d9 /gnu
parent73d18915b597f2a386d6ae42930b49a13c8813b0 (diff)
parent32eb44240db23b2320a68a3ab17370531945587f (diff)
downloadguix-patches-6969c4de445a390eaa05de22bc5a537a76a76169.tar
guix-patches-6969c4de445a390eaa05de22bc5a537a76a76169.tar.gz
Merge branch 'master' into staging
Diffstat (limited to 'gnu')
-rw-r--r--gnu/build/install.scm59
-rw-r--r--gnu/build/linux-modules.scm1
-rw-r--r--gnu/build/vm.scm6
-rw-r--r--gnu/local.mk10
-rw-r--r--gnu/packages/admin.scm80
-rw-r--r--gnu/packages/aidc.scm5
-rw-r--r--gnu/packages/audio.scm4
-rw-r--r--gnu/packages/backup.scm127
-rw-r--r--gnu/packages/base.scm11
-rw-r--r--gnu/packages/benchmark.scm10
-rw-r--r--gnu/packages/bioconductor.scm308
-rw-r--r--gnu/packages/bioinformatics.scm85
-rw-r--r--gnu/packages/bootloaders.scm23
-rw-r--r--gnu/packages/check.scm19
-rw-r--r--gnu/packages/compression.scm12
-rw-r--r--gnu/packages/cran.scm327
-rw-r--r--gnu/packages/crypto.scm27
-rw-r--r--gnu/packages/databases.scm4
-rw-r--r--gnu/packages/dav.scm5
-rw-r--r--gnu/packages/dns.scm2
-rw-r--r--gnu/packages/elixir.scm36
-rw-r--r--gnu/packages/emacs.scm139
-rw-r--r--gnu/packages/emulators.scm3
-rw-r--r--gnu/packages/erlang.scm24
-rw-r--r--gnu/packages/fcitx.scm18
-rw-r--r--gnu/packages/fonts.scm16
-rw-r--r--gnu/packages/games.scm165
-rw-r--r--gnu/packages/geo.scm4
-rw-r--r--gnu/packages/gnome.scm4
-rw-r--r--gnu/packages/gnupg.scm29
-rw-r--r--gnu/packages/golang.scm8
-rw-r--r--gnu/packages/graphics.scm4
-rw-r--r--gnu/packages/groovy.scm3
-rw-r--r--gnu/packages/gtk.scm2
-rw-r--r--gnu/packages/guile.scm18
-rw-r--r--gnu/packages/java.scm62
-rw-r--r--gnu/packages/libedit.scm4
-rw-r--r--gnu/packages/linux.scm59
-rw-r--r--gnu/packages/machine-learning.scm76
-rw-r--r--gnu/packages/mail.scm4
-rw-r--r--gnu/packages/maths.scm7
-rw-r--r--gnu/packages/maven.scm948
-rw-r--r--gnu/packages/mes.scm8
-rw-r--r--gnu/packages/networking.scm46
-rw-r--r--gnu/packages/nickle.scm5
-rw-r--r--gnu/packages/package-management.scm98
-rw-r--r--gnu/packages/password-utils.scm5
-rw-r--r--gnu/packages/patches/bind-CVE-2018-5738.patch100
-rw-r--r--gnu/packages/patches/binutils-aarch64-symbol-relocation.patch36
-rw-r--r--gnu/packages/patches/elixir-disable-failing-tests.patch284
-rw-r--r--gnu/packages/patches/flann-cmake-3.11.patch84
-rw-r--r--gnu/packages/patches/gnupg-1.4-CVE-2018-12020.patch50
-rw-r--r--gnu/packages/patches/password-store-gnupg-compat.patch28
-rw-r--r--gnu/packages/patches/perl-archive-tar-CVE-2018-12015.patch36
-rw-r--r--gnu/packages/patches/python-nose-timer-drop-ordereddict.patch44
-rw-r--r--gnu/packages/patches/strace-kernel-4.16.patch92
-rw-r--r--gnu/packages/patches/upx-fix-CVE-2017-15056.patch96
-rw-r--r--gnu/packages/perl-check.scm51
-rw-r--r--gnu/packages/perl.scm90
-rw-r--r--gnu/packages/python.scm158
-rw-r--r--gnu/packages/qt.scm50
-rw-r--r--gnu/packages/samba.scm9
-rw-r--r--gnu/packages/spice.scm4
-rw-r--r--gnu/packages/sssd.scm5
-rw-r--r--gnu/packages/statistics.scm21
-rw-r--r--gnu/packages/terminals.scm34
-rw-r--r--gnu/packages/tex.scm7
-rw-r--r--gnu/packages/time.scm4
-rw-r--r--gnu/packages/tls.scm83
-rw-r--r--gnu/packages/tor.scm4
-rw-r--r--gnu/packages/version-control.scm4
-rw-r--r--gnu/packages/video.scm4
-rw-r--r--gnu/packages/vim.scm95
-rw-r--r--gnu/packages/virtualization.scm110
-rw-r--r--gnu/packages/web.scm110
-rw-r--r--gnu/packages/wine.scm6
-rw-r--r--gnu/packages/xdisorg.scm4
-rw-r--r--gnu/packages/xml.scm20
-rw-r--r--gnu/packages/xorg.scm29
-rw-r--r--gnu/services/base.scm5
-rw-r--r--gnu/services/networking.scm6
-rw-r--r--gnu/services/web.scm9
-rw-r--r--gnu/system.scm8
-rw-r--r--gnu/system/file-systems.scm11
-rw-r--r--gnu/system/install.scm16
-rw-r--r--gnu/system/mapped-devices.scm16
-rw-r--r--gnu/system/vm.scm436
-rw-r--r--gnu/tests/admin.scm7
-rw-r--r--gnu/tests/base.scm62
-rw-r--r--gnu/tests/dict.scm7
-rw-r--r--gnu/tests/mail.scm13
-rw-r--r--gnu/tests/messaging.scm14
-rw-r--r--gnu/tests/nfs.scm7
-rw-r--r--gnu/tests/rsync.scm7
-rw-r--r--gnu/tests/ssh.scm8
-rw-r--r--gnu/tests/version-control.scm20
-rw-r--r--gnu/tests/web.scm8
97 files changed, 3981 insertions, 1351 deletions
diff --git a/gnu/build/install.scm b/gnu/build/install.scm
index 9e30c0d23e..5a5e703872 100644
--- a/gnu/build/install.scm
+++ b/gnu/build/install.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -18,6 +18,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu build install)
+ #:use-module (guix store database)
#:use-module (guix build utils)
#:use-module (guix build store-copy)
#:use-module (srfi srfi-26)
@@ -25,7 +26,6 @@
#:export (install-boot-config
evaluate-populate-directive
populate-root-file-system
- reset-timestamps
register-closure
populate-single-profile-directory))
@@ -110,9 +110,6 @@ STORE."
("/var/guix/gcroots/booted-system" -> "/run/booted-system")
("/var/guix/gcroots/current-system" -> "/run/current-system")
-
- ;; XXX: 'guix-register' creates this symlink with a wrong target, so
- ;; create it upfront to be sure.
("/var/guix/gcroots/profiles" -> "/var/guix/profiles")
(directory "/bin")
@@ -144,37 +141,27 @@ includes /etc, /var, /run, /bin/sh, etc., and all the symlinks to SYSTEM."
(try))
(apply throw args)))))))
-(define (reset-timestamps directory)
- "Reset the timestamps of all the files under DIRECTORY, so that they appear
-as created and modified at the Epoch."
- (display "clearing file timestamps...\n")
- (for-each (lambda (file)
- (let ((s (lstat file)))
- ;; XXX: Guile uses libc's 'utime' function (not 'futime'), so
- ;; the timestamp of symlinks cannot be changed, and there are
- ;; symlinks here pointing to /gnu/store, which is the host,
- ;; read-only store.
- (unless (eq? (stat:type s) 'symlink)
- (utime file 0 0 0 0))))
- (find-files directory #:directories? #t)))
-
-(define* (register-closure store closure
- #:key (deduplicate? #t))
- "Register CLOSURE in STORE, where STORE is the directory name of the target
-store and CLOSURE is the name of a file containing a reference graph as used
-by 'guix-register'. As a side effect, this resets timestamps on store files
-and, if DEDUPLICATE? is true, deduplicates files common to CLOSURE and the
-rest of STORE."
- (let ((status (apply system* "guix-register" "--prefix" store
- (append (if deduplicate? '() '("--no-deduplication"))
- (list closure)))))
- (unless (zero? status)
- (error "failed to register store items" closure))))
+(define* (register-closure prefix closure
+ #:key
+ (deduplicate? #t) (reset-timestamps? #t)
+ (schema (sql-schema)))
+ "Register CLOSURE in PREFIX, where PREFIX is the directory name of the
+target store and CLOSURE is the name of a file containing a reference graph as
+produced by #:references-graphs.. As a side effect, if RESET-TIMESTAMPS? is
+true, reset timestamps on store files and, if DEDUPLICATE? is true,
+deduplicates files common to CLOSURE and the rest of PREFIX."
+ (let ((items (call-with-input-file closure read-reference-graph)))
+ (register-items items
+ #:prefix prefix
+ #:deduplicate? deduplicate?
+ #:reset-timestamps? reset-timestamps?
+ #:registration-time %epoch
+ #:schema schema)))
(define* (populate-single-profile-directory directory
#:key profile closure
deduplicate?
- register?)
+ register? schema)
"Populate DIRECTORY with a store containing PROFILE, whose closure is given
in the file called CLOSURE (as generated by #:references-graphs.) DIRECTORY
is initialized to contain a single profile under /root pointing to PROFILE.
@@ -200,11 +187,11 @@ This is used to create the self-contained tarballs with 'guix pack'."
(when register?
(register-closure (canonicalize-path directory) closure
- #:deduplicate? deduplicate?)
+ #:deduplicate? deduplicate?
+ #:schema schema)
- ;; XXX: 'guix-register' registers profiles as GC roots but the symlink
- ;; target uses $TMPDIR. Fix that.
- (delete-file (scope "/var/guix/gcroots/profiles"))
+ (mkdir-p* "/var/guix/profiles")
+ (mkdir-p* "/var/guix/gcroots")
(symlink* "/var/guix/profiles"
"/var/guix/gcroots/profiles"))
diff --git a/gnu/build/linux-modules.scm b/gnu/build/linux-modules.scm
index 87d2e98edf..2ee2f1771f 100644
--- a/gnu/build/linux-modules.scm
+++ b/gnu/build/linux-modules.scm
@@ -32,6 +32,7 @@
ensure-dot-ko
module-aliases
module-dependencies
+ normalize-module-name
recursive-module-dependencies
modules-loaded
module-loaded?
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index fa3ce7790d..73d0191de7 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -25,6 +25,7 @@
#:use-module (guix build utils)
#:use-module (guix build store-copy)
#:use-module (guix build syscalls)
+ #:use-module ((guix store database) #:select (reset-timestamps))
#:use-module (gnu build linux-boot)
#:use-module (gnu build install)
#:use-module (gnu system uuid)
@@ -345,7 +346,7 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation."
;; Optionally, register the inputs in the image's store.
(when register-closures?
(unless copy-closures?
- ;; XXX: 'guix-register' wants to palpate the things it registers, so
+ ;; XXX: 'register-closure' wants to palpate the things it registers, so
;; bind-mount the store on the target.
(mkdir-p target-store)
(mount (%store-directory) target-store "" MS_BIND))
@@ -354,6 +355,7 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation."
(for-each (lambda (closure)
(register-closure target
(string-append "/xchg/" closure)
+ #:reset-timestamps? copy-closures?
#:deduplicate? deduplicate?))
closures)
(unless copy-closures?
@@ -363,7 +365,7 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation."
(display "populating...\n")
(populate-root-file-system system-directory target)
- ;; 'guix-register' resets timestamps and everything, so no need to do it
+ ;; 'register-closure' resets timestamps and everything, so no need to do it
;; once more in that case.
(unless register-closures?
(reset-timestamps target))))
diff --git a/gnu/local.mk b/gnu/local.mk
index e92b82b59d..dc63c72eb8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -581,6 +581,8 @@ dist_patch_DATA = \
%D%/packages/patches/azr3.patch \
%D%/packages/patches/bash-completion-directories.patch \
%D%/packages/patches/bazaar-CVE-2017-14176.patch \
+ %D%/packages/patches/bind-CVE-2018-5738.patch \
+ %D%/packages/patches/binutils-aarch64-symbol-relocation.patch \
%D%/packages/patches/binutils-loongson-workaround.patch \
%D%/packages/patches/blast+-fix-makefile.patch \
%D%/packages/patches/boost-fix-icu-build.patch \
@@ -641,7 +643,6 @@ dist_patch_DATA = \
%D%/packages/patches/e2fsprogs-glibc-2.27.patch \
%D%/packages/patches/eigen-arm-neon-fixes.patch \
%D%/packages/patches/elfutils-tests-ptrace.patch \
- %D%/packages/patches/elixir-disable-failing-tests.patch \
%D%/packages/patches/elogind-glibc-2.27.patch \
%D%/packages/patches/einstein-build.patch \
%D%/packages/patches/emacs-browse-at-remote-cgit-gnu.patch \
@@ -671,6 +672,7 @@ dist_patch_DATA = \
%D%/packages/patches/file-CVE-2017-1000249.patch \
%D%/packages/patches/findutils-localstatedir.patch \
%D%/packages/patches/findutils-test-xargs.patch \
+ %D%/packages/patches/flann-cmake-3.11.patch \
%D%/packages/patches/flint-ldconfig.patch \
%D%/packages/patches/fltk-shared-lib-defines.patch \
%D%/packages/patches/fltk-xfont-on-demand.patch \
@@ -744,7 +746,6 @@ dist_patch_DATA = \
%D%/packages/patches/gnome-todo-libical-compat.patch \
%D%/packages/patches/gnome-tweak-tool-search-paths.patch \
%D%/packages/patches/gnucash-price-quotes-perl.patch \
- %D%/packages/patches/gnupg-1.4-CVE-2018-12020.patch \
%D%/packages/patches/gnutls-skip-trust-store-test.patch \
%D%/packages/patches/gnutls-skip-pkgconfig-test.patch \
%D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
@@ -982,12 +983,12 @@ dist_patch_DATA = \
%D%/packages/patches/p7zip-CVE-2016-9296.patch \
%D%/packages/patches/p7zip-CVE-2017-17969.patch \
%D%/packages/patches/p7zip-remove-unused-code.patch \
- %D%/packages/patches/password-store-gnupg-compat.patch \
%D%/packages/patches/patchelf-page-size.patch \
%D%/packages/patches/patchelf-rework-for-arm.patch \
%D%/packages/patches/patchutils-xfail-gendiff-tests.patch \
%D%/packages/patches/patch-hurd-path-max.patch \
%D%/packages/patches/perf-gcc-ice.patch \
+ %D%/packages/patches/perl-archive-tar-CVE-2018-12015.patch \
%D%/packages/patches/perl-file-path-CVE-2017-6512.patch \
%D%/packages/patches/perl-autosplit-default-time.patch \
%D%/packages/patches/perl-dbd-mysql-CVE-2017-10788.patch \
@@ -1050,7 +1051,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-genshi-stripping-of-unsafe-script-tags.patch \
%D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
%D%/packages/patches/python-networkx2-reproducible-build.patch \
- %D%/packages/patches/python-nose-timer-drop-ordereddict.patch \
%D%/packages/patches/python-pillow-fix-failing-tests.patch \
%D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \
%D%/packages/patches/python-scikit-learn-fix-test-non-determinism.patch \
@@ -1111,7 +1111,6 @@ dist_patch_DATA = \
%D%/packages/patches/slim-login.patch \
%D%/packages/patches/sooperlooper-build-with-wx-30.patch \
%D%/packages/patches/steghide-fixes.patch \
- %D%/packages/patches/strace-kernel-4.16.patch \
%D%/packages/patches/superlu-dist-scotchmetis.patch \
%D%/packages/patches/swish-e-search.patch \
%D%/packages/patches/swish-e-format-security.patch \
@@ -1157,6 +1156,7 @@ dist_patch_DATA = \
%D%/packages/patches/ustr-fix-build-with-gcc-5.patch \
%D%/packages/patches/util-linux-tests.patch \
%D%/packages/patches/upower-builddir.patch \
+ %D%/packages/patches/upx-fix-CVE-2017-15056.patch \
%D%/packages/patches/valgrind-enable-arm.patch \
%D%/packages/patches/valgrind-glibc-compat.patch \
%D%/packages/patches/vinagre-revert-1.patch \
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 6b8df3fb9b..d1bc004410 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -21,6 +21,7 @@
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
+;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -822,41 +823,36 @@ by bandwidth they use.")
(define-public clusterssh
(package
(name "clusterssh")
- (version "3.28")
+ (version "4.13.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/clusterssh/"
- "1.%20ClusterSSH%20Series%203/" version
- "/clusterssh-" version ".tar.gz"))
+ "2.%20ClusterSSH%20Series%204/"
+ "App-ClusterSSH-v" version ".tar.gz"))
(sha256
(base32
- "1bwggpvaj2al5blg1ynapviv2kpydffpzq2zkhi81najnvzc1rr7"))))
- (build-system gnu-build-system)
- (inputs `(("perl" ,perl)))
- (propagated-inputs `(("xterm" ,xterm)
- ("perl-tk" ,perl-tk)
- ("perl-x11-protocol" ,perl-x11-protocol)))
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'install 'set-load-paths
- (lambda* (#:key inputs outputs #:allow-other-keys)
- ;; Put the perl-tk and perl-x11-protocol modules in the perl inc
- ;; path for PROG
- (let* ((out (assoc-ref outputs "out"))
- (prog (string-append out "/bin/cssh"))
- (perl-ver ,(package-version perl))
- (x11-inc (string-append
- (assoc-ref inputs "perl-x11-protocol")
- "/lib/perl5/site_perl/" perl-ver))
- (tk-inc (string-append
- (assoc-ref inputs "perl-tk")
- "/lib/perl5/site_perl/" perl-ver
- "/x86_64-linux")))
- (wrap-program
- prog
- `("PERL5LIB" ":" prefix (,x11-inc ,tk-inc))))
- #t)))))
+ "0rmk2p3f2wz1h092anidjclh212rv3gxyk0c641qk3frlrjnw6mp"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-cpan-changes" ,perl-cpan-changes)
+ ("perl-file-slurp" ,perl-file-slurp)
+ ("perl-file-which" ,perl-file-which)
+ ("perl-module-build" ,perl-module-build)
+ ("perl-readonly" ,perl-readonly)
+ ("perl-test-differences" ,perl-test-differences)
+ ("perl-test-distmanifest" ,perl-test-distmanifest)
+ ("perl-test-perltidy" ,perl-test-perltidy)
+ ("perl-test-pod" ,perl-test-pod)
+ ("perl-test-pod-coverage" ,perl-test-pod-coverage)
+ ("perl-test-trap" ,perl-test-trap)
+ ("perltidy" ,perltidy)))
+ (propagated-inputs
+ `(("xterm" ,xterm)
+ ("perl-exception-class" ,perl-exception-class)
+ ("perl-tk" ,perl-tk)
+ ("perl-try-tiny" ,perl-try-tiny)
+ ("perl-x11-protocol" ,perl-x11-protocol)
+ ("perl-x11-protocol-other" ,perl-x11-protocol-other)))
;; The clusterssh.sourceforge.net address requires login to view
(home-page "https://sourceforge.net/projects/clusterssh/")
(synopsis "Secure concurrent multi-server terminal control")
@@ -2359,11 +2355,23 @@ Intel DRM Driver.")
"13r0b0hllgf8j9rh6x1knmbgvingbdmx046aazv6vck2ll120mw1"))))
(build-system python-build-system)
(arguments
- `(#:python ,python-2)) ; Python 2 only
+ `(#:python ,python-2 ; Python 2 only
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke
+ "nosetests" "-v" "tests/"
+ ;; This test hangs indefinitely when run on a single core VM
+ ;; (see GNU bug #26647 and Debian bug #850230).
+ "--exclude=test_nested_execution_with_explicit_ports"
+ ;; This test randomly fails in certain environments causing too
+ ;; much noise to be useful (see Debian bug #854686).
+ "--exclude=test_should_use_sentinel_for_tasks_that_errored"))))))
(native-inputs
- `(("python2-fudge" ,python2-fudge)
- ("python2-jinja2" ,python2-jinja2)
- ("python2-nose" ,python2-nose)
+ `(("python2-fudge" ,python2-fudge) ; Requires < 1.0
+ ("python2-jinja2" ,python2-jinja2) ; Requires < 3.0
+ ("python2-nose" ,python2-nose) ; Requires < 2.0
("python2-pynacl" ,python2-pynacl)
("python2-bcrypt" ,python2-bcrypt)))
(propagated-inputs
@@ -2383,7 +2391,7 @@ tool for remote execution and deployment.")
(define-public neofetch
(package
(name "neofetch")
- (version "3.4.0")
+ (version "4.0.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/dylanaraps/neofetch/"
@@ -2391,7 +2399,7 @@ tool for remote execution and deployment.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "18rhamy910ig03rr55y9x5i6pf78yj9xc6jpm6nfh3gqja7340rb"))))
+ "014hlbzs6j4b669b64hnq8vc5knwiv9ncw9m9d193p9jsybxpm1w"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; there are no tests
diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm
index 4615b346d6..64d26548c4 100644
--- a/gnu/packages/aidc.scm
+++ b/gnu/packages/aidc.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2014 John Darringon <jmd@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -51,7 +52,7 @@ formats.")
(define-public qrencode
(package
(name "qrencode")
- (version "4.0.0")
+ (version "4.0.2")
(source (origin
(method url-fetch)
(uri (string-append
@@ -59,7 +60,7 @@ formats.")
".tar.bz2"))
(sha256
(base32
- "02vx69fl52jbcrmnydsaxcmy6nxqm9jyxzd7hr07s491d7hka069"))))
+ "1d2q5d3v8g3hsi3h5jq4n177bjhf3kawms09immw7p187f6jgjy9"))))
(build-system gnu-build-system)
(inputs `(("libpng" ,libpng)))
(native-inputs `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index d8dc1e3134..0664545e4a 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -1890,7 +1890,7 @@ lv2-c++-tools.")
(define-public openal
(package
(name "openal")
- (version "1.17.2")
+ (version "1.18.2")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1898,7 +1898,7 @@ lv2-c++-tools.")
version ".tar.bz2"))
(sha256
(base32
- "051k5fy8pk4fd9ha3qaqcv08xwbks09xl5qs4ijqq2qz5xaghhd3"))))
+ "10kydm8701a2kppiss9sdidn1820cmzhqgx1b2bsa5dsgzic32lz"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no check target
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 444559ea80..85764b073e 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -10,6 +10,7 @@
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -32,6 +33,7 @@
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system go)
#:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
@@ -45,6 +47,7 @@
#:use-module (gnu packages ftp)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
+ #:use-module (gnu packages golang)
#:use-module (gnu packages gperf)
#:use-module (gnu packages guile)
#:use-module (gnu packages linux)
@@ -472,13 +475,13 @@ detection, and lossless compression.")
(define-public borg
(package
(name "borg")
- (version "1.1.5")
+ (version "1.1.6")
(source
(origin
(method url-fetch)
(uri (pypi-uri "borgbackup" version))
(sha256
- (base32 "0gbdnq7ks46diz6y2pf6wpwkb9hy6hp3immi7jg3h7w72b3ycmj3"))
+ (base32 "0c09j46fi8i7klas0bh82a4whlwnajshk0izkgax6fjxr1sf9lm1"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -511,17 +514,6 @@ detection, and lossless compression.")
;; HOME=/homeless-shelter.
(setenv "HOME" "/tmp")
#t)))
- ;; Later versions of msgpack were disallowed to some warnings and lack
- ;; of support for Python versions that we don't support anyways. So,
- ;; it's okay to to keep using more recents versions of msgpack for
- ;; Borg. Also see the note about msgpack in the list of inputs.
- ;; https://github.com/borgbackup/borg/issues/3517#issuecomment-357221978
- (add-before 'build 'adjust-msgpack-dependency
- (lambda _
- (substitute* "setup.py"
- (("msgpack-python>=0.4.6,<0.5.0")
- "msgpack-python>=0.4.6"))
- #t))
;; The tests need to be run after Borg is installed.
(delete 'check)
(add-after 'install 'check
@@ -833,3 +825,112 @@ file systems with unattended creation and expiration. A dirvish backup vault
is like a time machine for your data. ")
(license (license:fsf-free "file://COPYING"
"Open Software License 2.0"))))
+
+(define-public restic ; bundled / vendored dependencies
+ (package
+ (name "restic")
+ (version "0.9.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/restic/restic/releases/download/"
+ "v" version "/restic-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "15f0rsm2lxk4lmn4773q28g49p68pqyyx0ccp7r556asan73p79m"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/restic/restic"
+ #:unpack-path "github.com/restic"
+ ;; We don't need to install the source code for end-user applications.
+ #:install-source? #f
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'build
+ (lambda* (#:key inputs #:allow-other-keys)
+ (with-directory-excursion (string-append
+ "src/github.com/restic/restic-"
+ ,version)
+ (invoke "go" "run" "build.go"))))
+
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (src (string-append "src/github.com/restic/restic-"
+ ,version)))
+ (install-file (string-append src "/restic")
+ (string-append out "/bin"))
+ #t)))
+
+ (add-after 'install 'install-docs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (man "/share/man")
+ (man-section (string-append man "/man"))
+ (src (string-append "src/github.com/restic/restic-"
+ ,version "/doc/man/")))
+ ;; Install all the man pages to "out".
+ (for-each
+ (lambda (file)
+ (install-file file
+ (string-append out man-section
+ (string-take-right file 1))))
+ (find-files src "\\.[1-9]"))
+ #t)))
+
+ (add-after 'install-docs 'install-shell-completion
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (etc (string-append out "/etc"))
+ (share (string-append out "/share")))
+ (for-each
+ (lambda (shell)
+ (let* ((shell-name (symbol->string shell))
+ (dir (string-append "etc/completion/" shell-name)))
+ (mkdir-p dir)
+ (invoke (string-append bin "/restic") "generate"
+ (string-append "--" shell-name "-completion")
+ (string-append dir "/"
+ (case shell
+ ((bash) "restic")
+ ((zsh) "_restic"))))))
+ '(bash zsh))
+ (with-directory-excursion "etc/completion"
+ (install-file "bash/restic"
+ (string-append etc "/bash_completion.d"))
+ (install-file "zsh/_restic"
+ (string-append share "/zsh/site-functions")))
+ #t))))))
+ (home-page "https://restic.net/")
+ (synopsis "Backup program with multiple revisions, encryption and more")
+ (description "Restic is a program that does backups right and was designed
+with the following principles in mind:
+
+@itemize
+@item Easy: Doing backups should be a frictionless process, otherwise you
+might be tempted to skip it. Restic should be easy to configure and use, so
+that, in the event of a data loss, you can just restore it. Likewise,
+restoring data should not be complicated.
+
+@item Fast: Backing up your data with restic should only be limited by your
+network or hard disk bandwidth so that you can backup your files every day.
+Nobody does backups if it takes too much time. Restoring backups should only
+transfer data that is needed for the files that are to be restored, so that
+this process is also fast.
+
+@item Verifiable: Much more important than backup is restore, so restic
+enables you to easily verify that all data can be restored. @item Secure:
+Restic uses cryptography to guarantee confidentiality and integrity of your
+data. The location the backup data is stored is assumed not to be a trusted
+environment (e.g. a shared space where others like system administrators are
+able to access your backups). Restic is built to secure your data against
+such attackers.
+
+@item Efficient: With the growth of data, additional snapshots should only
+take the storage of the actual increment. Even more, duplicate data should be
+de-duplicated before it is actually written to the storage back end to save
+precious backup space.
+@end itemize")
+ (license license:bsd-2)))
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index dfd9817e2d..de0aa92adb 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -480,6 +480,17 @@ included.")
(license gpl3+)
(home-page "https://www.gnu.org/software/binutils/")))
+(define-public binutils/fixed
+ ;; TODO: Incorporate this in binutils during the next rebuild cycle.
+ (hidden-package
+ (package
+ (inherit binutils)
+ (source (origin
+ (inherit (package-source binutils))
+ (patches (append (origin-patches (package-source binutils))
+ (search-patches
+ "binutils-aarch64-symbol-relocation.patch"))))))))
+
(define* (make-ld-wrapper name #:key
(target (const #f))
binutils
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index ebc8bdb5f2..be3662798b 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Dave Love <fx@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -34,15 +35,14 @@
(define-public fio
(package
(name "fio")
- (version "3.6")
+ (version "3.7")
(source (origin
(method url-fetch)
- (uri (string-append
- "http://brick.kernel.dk/snaps/"
- "fio-" version ".tar.bz2"))
+ (uri (string-append "http://brick.kernel.dk/snaps/"
+ "fio-" version ".tar.gz"))
(sha256
(base32
- "1d2jibp1b2dq97f22wj6pcjl7gbd2kmhfggj2c7q3j8v9axjqsh2"))))
+ "0rw9jf2ikm19lq4jizavdvvp3vfvlm3annq7jsxl2y5nf1pi2qr7"))))
(build-system gnu-build-system)
(arguments
'(#:test-target "test"
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index ed35b4c61a..a6a8216ccb 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -24,10 +24,11 @@
#:use-module (guix download)
#:use-module (guix build-system r)
#:use-module (gnu packages)
+ #:use-module (gnu packages bioinformatics)
#:use-module (gnu packages cran)
#:use-module (gnu packages compression)
- #:use-module (gnu packages statistics)
- #:use-module (gnu packages bioinformatics))
+ #:use-module (gnu packages graph)
+ #:use-module (gnu packages statistics))
(define-public r-bsgenome-dmelanogaster-ucsc-dm6
(package
@@ -61,6 +62,111 @@ melanogaster (Fly) as provided by UCSC (dm6) and stored in Biostrings
objects.")
(license license:artistic2.0)))
+(define-public r-bsgenome-dmelanogaster-ucsc-dm3-masked
+ (package
+ (name "r-bsgenome-dmelanogaster-ucsc-dm3-masked")
+ (version "1.3.99")
+ (source (origin
+ (method url-fetch)
+ ;; We cannot use bioconductor-uri here because this tarball is
+ ;; located under "data/annotation/" instead of "bioc/".
+ (uri (string-append "http://www.bioconductor.org/packages/"
+ "release/data/annotation/src/contrib/"
+ "BSgenome.Dmelanogaster.UCSC.dm3.masked_"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1756csb09f1br9rj1l3f08qyh4hlymdbd0cfn8x3fq39dn45m5ap"))))
+ (properties
+ `((upstream-name . "BSgenome.Dmelanogaster.UCSC.dm3.masked")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-bsgenome" ,r-bsgenome)
+ ("r-bsgenome-dmelanogaster-ucsc-dm3"
+ ,r-bsgenome-dmelanogaster-ucsc-dm3)))
+ (home-page "https://www.bioconductor.org/packages/BSgenome.Dmelanogaster.UCSC.dm3.masked/")
+ (synopsis "Full masked genome sequences for Fly")
+ (description
+ "This package provides full masked genome sequences for Drosophila
+melanogaster (Fly) as provided by UCSC (dm3, April 2006) and stored in
+Biostrings objects. The sequences are the same as in
+BSgenome.Dmelanogaster.UCSC.dm3, except that each of them has the 4 following
+masks on top: (1) the mask of assembly gaps (AGAPS mask), (2) the mask of
+intra-contig ambiguities (AMB mask), (3) the mask of repeats from
+RepeatMasker (RM mask), and (4) the mask of repeats from Tandem Repeats
+Finder (TRF mask). Only the AGAPS and AMB masks are \"active\" by default.")
+ (license license:artistic2.0)))
+
+(define-public r-bsgenome-hsapiens-ucsc-hg19-masked
+ (package
+ (name "r-bsgenome-hsapiens-ucsc-hg19-masked")
+ (version "1.3.99")
+ (source (origin
+ (method url-fetch)
+ ;; We cannot use bioconductor-uri here because this tarball is
+ ;; located under "data/annotation/" instead of "bioc/".
+ (uri (string-append "http://www.bioconductor.org/packages/"
+ "release/data/annotation/src/contrib/"
+ "BSgenome.Hsapiens.UCSC.hg19.masked_"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0452pyah0kv1vsrsjbrqw4k2rm8lc2vc771dzib45gnnfz86qxrr"))))
+ (properties
+ `((upstream-name . "BSgenome.Hsapiens.UCSC.hg19.masked")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-bsgenome" ,r-bsgenome)
+ ("r-bsgenome-hsapiens-ucsc-hg19"
+ ,r-bsgenome-hsapiens-ucsc-hg19)))
+ (home-page "https://bioconductor.org/packages/BSgenome.Hsapiens.UCSC.hg19.masked/")
+ (synopsis "Full masked genome sequences for Homo sapiens")
+ (description
+ "This package provides full genome sequences for Homo sapiens (Human) as
+provided by UCSC (hg19, Feb. 2009) and stored in Biostrings objects. The
+sequences are the same as in BSgenome.Hsapiens.UCSC.hg19, except that each of
+them has the 4 following masks on top: (1) the mask of assembly gaps (AGAPS
+mask), (2) the mask of intra-contig ambiguities (AMB mask), (3) the mask of
+repeats from RepeatMasker (RM mask), and (4) the mask of repeats from Tandem
+Repeats Finder (TRF mask). Only the AGAPS and AMB masks are \"active\" by
+default.")
+ (license license:artistic2.0)))
+
+(define-public r-bsgenome-mmusculus-ucsc-mm9-masked
+ (package
+ (name "r-bsgenome-mmusculus-ucsc-mm9-masked")
+ (version "1.3.99")
+ (source (origin
+ (method url-fetch)
+ ;; We cannot use bioconductor-uri here because this tarball is
+ ;; located under "data/annotation/" instead of "bioc/".
+ (uri (string-append "http://www.bioconductor.org/packages/"
+ "release/data/annotation/src/contrib/"
+ "BSgenome.Mmusculus.UCSC.mm9.masked_"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "00bpbm3havqcxr4g63zhllsbpd9q6svgihks7qp7x73nm4gvq7fn"))))
+ (properties
+ `((upstream-name . "BSgenome.Mmusculus.UCSC.mm9.masked")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-bsgenome" ,r-bsgenome)
+ ("r-bsgenome-mmusculus-ucsc-mm9"
+ ,r-bsgenome-mmusculus-ucsc-mm9)))
+ (home-page "http://bioconductor.org/packages/BSgenome.Mmusculus.UCSC.mm9.masked/")
+ (synopsis "Full masked genome sequences for Mouse")
+ (description
+ "This package provides full genome sequences for Mus musculus (Mouse) as
+provided by UCSC (mm9, Jul. 2007) and stored in Biostrings objects. The
+sequences are the same as in BSgenome.Mmusculus.UCSC.mm9, except that each of
+them has the 4 following masks on top: (1) the mask of assembly gaps (AGAPS
+mask), (2) the mask of intra-contig ambiguities (AMB mask), (3) the mask of
+repeats from RepeatMasker (RM mask), and (4) the mask of repeats from Tandem
+Repeats Finder (TRF mask). Only the AGAPS and AMB masks are \"active\" by
+default." )
+ (license license:artistic2.0)))
+
(define-public r-hpar
(package
(name "r-hpar")
@@ -371,3 +477,201 @@ filtered to remove spurious regions in the genome. Downstream steps of
segmentation and calling are also implemented via packages DNAcopy and CGHcall,
respectively.")
(license license:gpl2+)))
+
+(define-public r-bayseq
+ (package
+ (name "r-bayseq")
+ (version "2.14.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "baySeq" version))
+ (sha256
+ (base32
+ "0hbmm01a8libara9mbxknpk0wzarwfngnfwlmhpww91a0cmy5klg"))))
+ (properties `((upstream-name . "baySeq")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-abind" ,r-abind)
+ ("r-edger" ,r-edger)
+ ("r-genomicranges" ,r-genomicranges)))
+ (home-page "https://bioconductor.org/packages/baySeq/")
+ (synopsis "Bayesian analysis of differential expression patterns in count data")
+ (description
+ "This package identifies differential expression in high-throughput count
+data, such as that derived from next-generation sequencing machines,
+calculating estimated posterior likelihoods of differential expression (or
+more complex hypotheses) via empirical Bayesian methods.")
+ (license license:gpl3)))
+
+(define-public r-chipcomp
+ (package
+ (name "r-chipcomp")
+ (version "1.10.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "ChIPComp" version))
+ (sha256
+ (base32
+ "0j9nif7z33qdxf347r9wa62hhz8qs09r2p96x3hg5yz30a10ahqs"))))
+ (properties `((upstream-name . "ChIPComp")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-biocgenerics" ,r-biocgenerics)
+ ("r-bsgenome-hsapiens-ucsc-hg19" ,r-bsgenome-hsapiens-ucsc-hg19)
+ ("r-bsgenome-mmusculus-ucsc-mm9" ,r-bsgenome-mmusculus-ucsc-mm9)
+ ("r-genomeinfodb" ,r-genomeinfodb)
+ ("r-genomicranges" ,r-genomicranges)
+ ("r-iranges" ,r-iranges)
+ ("r-limma" ,r-limma)
+ ("r-rsamtools" ,r-rsamtools)
+ ("r-rtracklayer" ,r-rtracklayer)
+ ("r-s4vectors" ,r-s4vectors)))
+ (home-page "https://bioconductor.org/packages/ChIPComp")
+ (synopsis "Quantitative comparison of multiple ChIP-seq datasets")
+ (description
+ "ChIPComp implements a statistical method for quantitative comparison of
+multiple ChIP-seq datasets. It detects differentially bound sharp binding
+sites across multiple conditions considering matching control in ChIP-seq
+datasets.")
+ ;; Any version of the GPL.
+ (license license:gpl3+)))
+
+(define-public r-riboprofiling
+ (package
+ (name "r-riboprofiling")
+ (version "1.10.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "RiboProfiling" version))
+ (sha256
+ (base32
+ "04yjklqdjkim7yxyk3cyvf0mmwyxyfvw2mmfzgwaaqbiyg29sli0"))))
+ (properties `((upstream-name . "RiboProfiling")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-biocgenerics" ,r-biocgenerics)
+ ("r-biostrings" ,r-biostrings)
+ ("r-data-table" ,r-data-table)
+ ("r-genomeinfodb" ,r-genomeinfodb)
+ ("r-genomicalignments" ,r-genomicalignments)
+ ("r-genomicfeatures" ,r-genomicfeatures)
+ ("r-genomicranges" ,r-genomicranges)
+ ("r-ggbio" ,r-ggbio)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-iranges" ,r-iranges)
+ ("r-plyr" ,r-plyr)
+ ("r-reshape2" ,r-reshape2)
+ ("r-rsamtools" ,r-rsamtools)
+ ("r-rtracklayer" ,r-rtracklayer)
+ ("r-s4vectors" ,r-s4vectors)
+ ("r-sqldf" ,r-sqldf)))
+ (home-page "https://bioconductor.org/packages/RiboProfiling/")
+ (synopsis "Ribosome profiling data analysis")
+ (description "Starting with a BAM file, this package provides the
+necessary functions for quality assessment, read start position recalibration,
+the counting of genomic sequence reads on CDS, 3'UTR, and 5'UTR, and plotting
+of count data: pairs, log fold-change, codon frequency and coverage
+assessment, principal component analysis on codon coverage.")
+ (license license:gpl3)))
+
+(define-public r-riboseqr
+ (package
+ (name "r-riboseqr")
+ (version "1.14.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "riboSeqR" version))
+ (sha256
+ (base32
+ "0xavd1cdhi8qfjn9a1hjhflyg6jq1ydvv56z12gjz572pwz2knvn"))))
+ (properties `((upstream-name . "riboSeqR")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-abind" ,r-abind)
+ ("r-bayseq" ,r-bayseq)
+ ("r-genomeinfodb" ,r-genomeinfodb)
+ ("r-genomicranges" ,r-genomicranges)
+ ("r-iranges" ,r-iranges)
+ ("r-rsamtools" ,r-rsamtools)
+ ("r-seqlogo" ,r-seqlogo)))
+ (home-page "https://bioconductor.org/packages/riboSeqR/")
+ (synopsis "Analysis of sequencing data from ribosome profiling experiments")
+ (description
+ "This package provides plotting functions, frameshift detection and
+parsing of genetic sequencing data from ribosome profiling experiments.")
+ (license license:gpl3)))
+
+(define-public r-interactionset
+ (package
+ (name "r-interactionset")
+ (version "1.8.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "InteractionSet" version))
+ (sha256
+ (base32
+ "0xngraq7ic80jr98i1wqp8bxdgidq6py60m2wfk82n1ixpcdck8n"))))
+ (properties
+ `((upstream-name . "InteractionSet")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-biocgenerics" ,r-biocgenerics)
+ ("r-genomeinfodb" ,r-genomeinfodb)
+ ("r-genomicranges" ,r-genomicranges)
+ ("r-iranges" ,r-iranges)
+ ("r-matrix" ,r-matrix)
+ ("r-rcpp" ,r-rcpp)
+ ("r-s4vectors" ,r-s4vectors)
+ ("r-summarizedexperiment" ,r-summarizedexperiment)))
+ (home-page "https://bioconductor.org/packages/InteractionSet")
+ (synopsis "Base classes for storing genomic interaction data")
+ (description
+ "This packages provides the @code{GInteractions},
+@code{InteractionSet} and @code{ContactMatrix} objects and associated methods
+for storing and manipulating genomic interaction data from Hi-C and ChIA-PET
+experiments.")
+ (license license:gpl3)))
+
+(define-public r-genomicinteractions
+ (package
+ (name "r-genomicinteractions")
+ (version "1.14.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "GenomicInteractions" version))
+ (sha256
+ (base32
+ "0cnagprxj0b7p6s29iyhqwxj7hgmrh75gj52y4dlil790d1bmq2q"))))
+ (properties
+ `((upstream-name . "GenomicInteractions")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-biobase" ,r-biobase)
+ ("r-biocgenerics" ,r-biocgenerics)
+ ("r-data-table" ,r-data-table)
+ ("r-dplyr" ,r-dplyr)
+ ("r-genomeinfodb" ,r-genomeinfodb)
+ ("r-genomicranges" ,r-genomicranges)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-gridextra" ,r-gridextra)
+ ("r-gviz" ,r-gviz)
+ ("r-igraph" ,r-igraph)
+ ("r-interactionset" ,r-interactionset)
+ ("r-iranges" ,r-iranges)
+ ("r-rsamtools" ,r-rsamtools)
+ ("r-rtracklayer" ,r-rtracklayer)
+ ("r-s4vectors" ,r-s4vectors)
+ ("r-stringr" ,r-stringr)))
+ (home-page "https://github.com/ComputationalRegulatoryGenomicsICL/GenomicInteractions/")
+ (synopsis "R package for handling genomic interaction data")
+ (description
+ "This R package provides tools for handling genomic interaction data,
+such as ChIA-PET/Hi-C, annotating genomic features with interaction
+information and producing various plots and statistics.")
+ (license license:gpl3)))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index e93eeb5069..42bc67e808 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -6939,13 +6939,13 @@ Bioconductor, CRAN, and Github.")
(define-public r-biocviews
(package
(name "r-biocviews")
- (version "1.48.0")
+ (version "1.48.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "biocViews" version))
(sha256
(base32
- "1yx2lir67ny0j150wyfqca0wsxp84byri8nscbs9qlndkh2jppq9"))))
+ "1q5z6xxhjyibr165di7iyachw4gd4bdrxkd8rjkcklnngsrx1azm"))))
(properties
`((upstream-name . "biocViews")))
(build-system r-build-system)
@@ -7128,13 +7128,13 @@ abnormal copy number.")
(define-public r-s4vectors
(package
(name "r-s4vectors")
- (version "0.18.2")
+ (version "0.18.3")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "S4Vectors" version))
(sha256
(base32
- "0qvj2j0zl4djjl7vrwc6xak6h8dxr53iwypfbcvfb3sh7jwhdiz5"))))
+ "02bps2rpjqx2npwxq3x62ncwi9ggr165cwi56h6hld28bw2gddy8"))))
(properties
`((upstream-name . "S4Vectors")))
(build-system r-build-system)
@@ -9705,13 +9705,13 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
(define-public r-seurat
(package
(name "r-seurat")
- (version "2.3.1")
+ (version "2.3.2")
(source (origin
(method url-fetch)
(uri (cran-uri "Seurat" version))
(sha256
(base32
- "0hi59rgdrr2iqfvx5bq7yq02hbjxkjl1fzidqj14z0ypq0nzbjys"))
+ "1sjpy5rrpvlpm6hs7qy7qpglgbp7zrgfybcsalpmjb51rhxhgcg1"))
;; Delete pre-built jar.
(snippet
'(begin (delete-file "inst/java/ModularityOptimizer.jar")
@@ -9755,6 +9755,7 @@ Main-Class: ModularityOptimizer\n")))
("r-ggplot2" ,r-ggplot2)
("r-ggridges" ,r-ggridges)
("r-gplots" ,r-gplots)
+ ("r-hdf5r" ,r-hdf5r)
("r-hmisc" ,r-hmisc)
("r-ica" ,r-ica)
("r-igraph" ,r-igraph)
@@ -12905,7 +12906,7 @@ expression report comparing samples in an easily configurable manner.")
(define-public pigx-chipseq
(package
(name "pigx-chipseq")
- (version "0.0.15")
+ (version "0.0.16")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_chipseq/"
@@ -12913,7 +12914,7 @@ expression report comparing samples in an easily configurable manner.")
"/pigx_chipseq-" version ".tar.gz"))
(sha256
(base32
- "11v9v3vyda0sv4cl45nki7mm4v4bjfcdq7a70kcvi9h465nq66wg"))))
+ "0s53840z53pih0jkllmcfb2la7c36zxmf229fshhyq8n6a2hgr8f"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; parts of the tests rely on access to the network
@@ -12985,7 +12986,7 @@ in an easily configurable manner.")
(define-public pigx-bsseq
(package
(name "pigx-bsseq")
- (version "0.0.8")
+ (version "0.0.9")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_bsseq/"
@@ -12993,7 +12994,7 @@ in an easily configurable manner.")
"/pigx_bsseq-" version ".tar.gz"))
(sha256
(base32
- "0irlnlhhw9fd4ha7hksrxn3y7j76mz5qq1wjswbs9p364laqg69y"))))
+ "0j1dfjk8m1p1h6d5yw63scjlbx56z8gixmbw626w1vcyblg0frmz"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -13052,7 +13053,7 @@ methylation and segmentation.")
(define-public pigx-scrnaseq
(package
(name "pigx-scrnaseq")
- (version "0.0.4")
+ (version "0.0.5")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_scrnaseq/"
@@ -13060,7 +13061,7 @@ methylation and segmentation.")
"/pigx_scrnaseq-" version ".tar.gz"))
(sha256
(base32
- "1pvjm6f3mascprs65vflggwwg5v925knvgal7k7a6nnlmw5qndrf"))))
+ "0a73rilv0vnw42d5rsdq205h4f0x8j3jqv998janh4s324c6w2kj"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -13088,6 +13089,7 @@ methylation and segmentation.")
("python-wrapper" ,python-wrapper)
("python-pyyaml" ,python-pyyaml)
("python-pandas" ,python-pandas)
+ ("python-magic" ,python-magic)
("python-numpy" ,python-numpy)
("python-loompy" ,python-loompy)
("ghc-pandoc" ,ghc-pandoc-1)
@@ -13245,3 +13247,62 @@ rate speciation and extinction.")
junctions in RNA-seq data. It is annotation-agnostic and offset-aware. This
version does count multisplits.")
(license license:gpl3+))))
+
+(define-public minimap2
+ (package
+ (name "minimap2")
+ (version "2.10")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/lh3/minimap2/"
+ "releases/download/v" version "/"
+ "minimap2-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "080w9066irkbhbyr4nmf19pzkdd2s4v31hpzlajgq2y0drr6zcsj"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; there are none
+ #:make-flags
+ (list "CC=gcc"
+ (let ((system ,(or (%current-target-system)
+ (%current-system))))
+ (cond
+ ((string-prefix? "x86_64" system)
+ "all")
+ ((or (string-prefix? "armhf" system)
+ (string-prefix? "aarch64" system))
+ "arm_neon=1")
+ (_ "sse2only=1"))))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (man (string-append out "/share/man/man1")))
+ (install-file "minimap2" bin)
+ (mkdir-p man)
+ (install-file "minimap2.1" man))
+ #t)))))
+ (inputs
+ `(("zlib" ,zlib)))
+ (home-page "https://lh3.github.io/minimap2/")
+ (synopsis "Pairwise aligner for genomic and spliced nucleotide sequences")
+ (description "Minimap2 is a versatile sequence alignment program that
+aligns DNA or mRNA sequences against a large reference database. Typical use
+cases include:
+
+@enumerate
+@item mapping PacBio or Oxford Nanopore genomic reads to the human genome;
+@item finding overlaps between long reads with error rate up to ~15%;
+@item splice-aware alignment of PacBio Iso-Seq or Nanopore cDNA or Direct RNA
+ reads against a reference genome;
+@item aligning Illumina single- or paired-end reads;
+@item assembly-to-assembly alignment;
+@item full-genome alignment between two closely related species with
+ divergence below ~15%.
+@end enumerate\n")
+ (license license:expat)))
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index a86c73731e..eb1e433ba7 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
@@ -61,7 +61,8 @@
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (srfi srfi-1)
- #:use-module (srfi srfi-26))
+ #:use-module (srfi srfi-26)
+ #:use-module (ice-9 regex))
(define unifont
;; GNU Unifont, <http://gnu.org/s/unifont>.
@@ -144,6 +145,22 @@
("texinfo" ,texinfo)
("help2man" ,help2man)
+ ;; XXX: When building GRUB 2.02 on 32-bit x86, we need a binutils
+ ;; capable of assembling 64-bit instructions. However, our default
+ ;; binutils on 32-bit x86 is not 64-bit capable.
+ ,@(if (string-match "^i[3456]86-" (%current-system))
+ (let ((binutils (package/inherit
+ binutils
+ (name "binutils-i386")
+ (arguments
+ (substitute-keyword-arguments (package-arguments binutils)
+ ((#:configure-flags flags ''())
+ `(cons "--enable-64-bit-bfd" ,flags)))))))
+ `(("ld-wrapper" ,(make-ld-wrapper "ld-wrapper-i386"
+ #:binutils binutils))
+ ("binutils" ,binutils)))
+ '())
+
;; Dependencies for the test suite. The "real" QEMU is needed here,
;; because several targets are used.
("parted" ,parted)
@@ -439,7 +456,7 @@ def test_ctrl_c"))
also initializes the boards (RAM etc). This package provides its
board-independent tools.")))
-(define (make-u-boot-package board triplet)
+(define-public (make-u-boot-package board triplet)
"Returns a u-boot package for BOARD cross-compiled for TRIPLET."
(let ((same-arch? (if (string-prefix? (%current-system)
(gnu-triplet->nix-system triplet))
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 3e959bde92..42b90bc2b2 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -293,13 +293,13 @@ format.")
(define-public cppcheck
(package
(name "cppcheck")
- (version "1.83")
+ (version "1.84")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/danmar/cppcheck/archive/"
version ".tar.gz"))
(sha256
- (base32 "15ghxwmyy09cd9mi008k4jn09c441j86qyaa4dz0is7f5dv5cdkx"))
+ (base32 "1ibz07dgs1dpfb8bmjh3qsma37wl5p6s6b4qlv5ccpshj4yjk9ma"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system)
(home-page "http://cppcheck.sourceforge.net")
@@ -1902,19 +1902,14 @@ create data based on random numbers and yet remain repeatable.")
(define-public python-nose-timer
(package
(name "python-nose-timer")
- (version "0.7.0")
+ (version "0.7.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "nose-timer" version))
- (patches
- (search-patches
- ;; This patch will not be needed in the next version.
- ;; It is taken from the master branch.
- "python-nose-timer-drop-ordereddict.patch"))
(sha256
(base32
- "1s32ymsnby8lz2qk55ifj9zi50dqcg6swnj5cz2rmwxg2jsslsxp"))))
+ "0ywg223p528014z5s0vzck74r4xyw3kvcp2casfnc85dkvir1zj7"))))
(build-system python-build-system)
(propagated-inputs
`(("python-nose" ,python-nose)
@@ -1930,14 +1925,14 @@ create data based on random numbers and yet remain repeatable.")
(define-public python-freezegun
(package
(name "python-freezegun")
- (version "0.3.9")
+ (version "0.3.10")
(source
(origin
(method url-fetch)
(uri (pypi-uri "freezegun" version))
(sha256
(base32
- "1vhf3kgdy7gpy70n3bxa3y1n6aza316137md97z8p5k0gz6wqg3q"))))
+ "08m6b42yxb9hk5lv747v9n2qsxyadmkb0k6yg0gxdanwap0slg3h"))))
(build-system python-build-system)
(native-inputs
`(("python-mock" ,python-mock)
@@ -1953,7 +1948,7 @@ create data based on random numbers and yet remain repeatable.")
;; package does not include the Makefile.
(replace 'check
(lambda _
- (zero? (system* "nosetests" "./tests/")))))))
+ (invoke "nosetests" "./tests/"))))))
(home-page "https://github.com/spulec/freezegun")
(synopsis "Test utility for mocking the datetime module")
(description
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 2984e854ce..9cb0917dae 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -2111,7 +2111,7 @@ single-member files which can't be decompressed in parallel.")
(define-public innoextract
(package
(name "innoextract")
- (version "1.6")
+ (version "1.7")
(source
(origin
(method url-fetch)
@@ -2119,7 +2119,7 @@ single-member files which can't be decompressed in parallel.")
version ".tar.gz"))
(sha256
(base32
- "08sp5vbfjvq1irhhraqkn5m2x1z209r4axhx7laf1adcw30ccapi"))
+ "0khwi9f0q0h6xfbixrrc1rfpgj0b7ajwilq7yhmxnn5lpc807f6x"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system)
(arguments
@@ -2209,7 +2209,8 @@ decompression is a little bit slower.")
version "/" name "-" version "-src.tar.xz"))
(sha256
(base32
- "08anybdliqsbsl6x835iwzljahnm9i7v26icdjkcv33xmk6p5vw1"))))
+ "08anybdliqsbsl6x835iwzljahnm9i7v26icdjkcv33xmk6p5vw1"))
+ (patches (search-patches "upx-fix-CVE-2017-15056.patch"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl)
("ucl" ,ucl)))
@@ -2241,6 +2242,11 @@ decompression is a little bit slower.")
#t))
)))
(home-page "https://upx.github.io/")
+ ;; CVE-2017-16869 is about Mach-O files which is not of a big concern for Guix.
+ ;; See https://github.com/upx/upx/issues/146 and
+ ;; https://nvd.nist.gov/vuln/detail?vulnId=CVE-2017-16869.
+ ;; The issue will be fixed after version 3.94.
+ (properties `((lint-hidden-cve . ("CVE-2017-16869"))))
(synopsis "Compression tool for executables")
(description
"The Ultimate Packer for eXecutables (UPX) is an executable file
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 5d4af23227..aa5bdc958d 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -30,6 +30,7 @@
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system r)
+ #:use-module (gnu packages compression)
#:use-module (gnu packages gcc)
#:use-module (gnu packages machine-learning)
#:use-module (gnu packages maths)
@@ -556,14 +557,14 @@ ellipses, circles, cylinders, arrows, ...")
(define-public r-globaloptions
(package
(name "r-globaloptions")
- (version "0.0.13")
+ (version "0.1.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "GlobalOptions" version))
(sha256
(base32
- "04jvha0mafslqz5nr99xjylg9n2x31gj9v4mgyg7qcmfwpqyw3ch"))))
+ "1wlyqz1yhmhjwslrd7q69jbd9vsbjkjfc01g60kl3cdpyr8hlyjn"))))
(properties `((upstream-name . "GlobalOptions")))
(build-system r-build-system)
(home-page "https://github.com/jokergoo/GlobalOptions")
@@ -576,14 +577,14 @@ validation and filtering on the values, making options invisible or private.")
(define-public r-circlize
(package
(name "r-circlize")
- (version "0.4.3")
+ (version "0.4.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "circlize" version))
(sha256
(base32
- "0pg947gkryygikfbv6admx8gsg02b6g219j6a1sdnqij2908yxna"))))
+ "1l28maiqi549z191srncxgabx5fnvf0lld7smzwfd3vr5cx8nqww"))))
(build-system r-build-system)
(propagated-inputs
`(("r-colorspace" ,r-colorspace)
@@ -681,14 +682,14 @@ compare different dendrograms to one another.")
(define-public r-getoptlong
(package
(name "r-getoptlong")
- (version "0.1.6")
+ (version "0.1.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "GetoptLong" version))
(sha256
(base32
- "1d98gcvlvp9nz5lbnzr0kkpc2hbkx74hlhrnybqhg1gdwc3g09pm"))))
+ "1fl3w2n602ldybc5qj7qw4xmzzb804bsjkqwf6dswzj0vf0qiadr"))))
(properties `((upstream-name . "GetoptLong")))
(build-system r-build-system)
(inputs
@@ -896,14 +897,14 @@ most popular ones.")
(define-public r-sp
(package
(name "r-sp")
- (version "1.2-7")
+ (version "1.3-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "sp" version))
(sha256
(base32
- "0q04yfgyjannsrzl0ppwcv0simrxrrbx2iz5mzaafc5x38zf0q3d"))))
+ "17xm1ig80p9wc860hm3bgishz6lj9fxgwqidj7rkbk4ap99qp62p"))))
(build-system r-build-system)
(propagated-inputs
`(("r-lattice" ,r-lattice)))
@@ -1009,14 +1010,14 @@ SpatialVx.")
(define-public r-extremes
(package
(name "r-extremes")
- (version "2.0-8")
+ (version "2.0-9")
(source
(origin
(method url-fetch)
(uri (cran-uri "extRemes" version))
(sha256
(base32
- "0pnpib3g2r9x8hfqhvq23j8m3jh62lp28ipnqir5yadnzv850gfm"))))
+ "0cpvcajk9xyy7662nqkyx333vrxpwsc5nmv0bfnhsbgijz5y0hvm"))))
(properties `((upstream-name . "extRemes")))
(build-system r-build-system)
(propagated-inputs
@@ -1595,14 +1596,14 @@ Core algorithms are executed in parallel on systems supporting OpenMP.")
(define-public r-rcpproll
(package
(name "r-rcpproll")
- (version "0.2.2")
+ (version "0.3.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "RcppRoll" version))
(sha256
(base32
- "19xzvxym8zbighndygkq4imfwc0abh4hqyq3qrr8aakyd096iisi"))))
+ "0srzfhzkk42kzrdjnhbb37946jp1p688rgysy6k3i2is8jb21zyb"))))
(properties `((upstream-name . "RcppRoll")))
(build-system r-build-system)
(propagated-inputs
@@ -1822,14 +1823,14 @@ color labels, layout, etc.")
(define-public r-stringdist
(package
(name "r-stringdist")
- (version "0.9.4.7")
+ (version "0.9.5.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "stringdist" version))
(sha256
(base32
- "1qg80wmcrpkba9njvgjdg15bgw7ddks40kkfh5x61as9lhchy4i4"))))
+ "0gap1g9xwhp0zxqsznkc2carpvi80z03prr4q8m528684lznx2xa"))))
(build-system r-build-system)
(home-page "https://github.com/markvanderloo/stringdist")
(synopsis "Approximate string matching and string distance functions")
@@ -2718,17 +2719,19 @@ supports arbitrary vertex/edge/graph attributes.")
(define-public r-statnet-common
(package
(name "r-statnet-common")
- (version "4.0.0")
+ (version "4.1.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "statnet.common" version))
(sha256
(base32
- "0yw6l5b4qv0jqlg4zyczas7m12a5pyqghs6ydxy2f6v6vxkijvi0"))))
+ "0h3g687214rlycca0fjrpy1lqbqsrginxqhmhl2mb2jinqqxcfgd"))))
(properties
`((upstream-name . "statnet.common")))
(build-system r-build-system)
+ (propagated-inputs
+ `(("r-coda" ,r-coda)))
(home-page "https://statnet.org")
(synopsis "R scripts and utilities used by the Statnet software")
(description "This package provides non-statistical utilities used by the
@@ -2971,14 +2974,14 @@ Cryer and Kung-Sik Chan.")
(define-public r-extradistr
(package
(name "r-extradistr")
- (version "1.8.8")
+ (version "1.8.9")
(source
(origin
(method url-fetch)
(uri (cran-uri "extraDistr" version))
(sha256
(base32
- "0ywn4qwnamv36l1hw27l9y5kh3v6ha5781wsv2bz6szqjgg7kdb3"))))
+ "1fg8vjpal33y51iqzglk1yvy46d7js0l0wfbdy698lq8a06hq19p"))))
(properties `((upstream-name . "extraDistr")))
(build-system r-build-system)
(propagated-inputs
@@ -3041,14 +3044,14 @@ applied econometric analysis.")
(define-public r-cubature
(package
(name "r-cubature")
- (version "1.3-11")
+ (version "1.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "cubature" version))
(sha256
(base32
- "06f6gsvbb732p80r6hxvzh4ik546icxfvx21dyh65ypmw3kgm64k"))))
+ "1hd23b8v2kpqp5gr0va8p2q7j8w9rik6ks7zrr4b8mb2mwrakk74"))))
(build-system r-build-system)
(propagated-inputs
`(("r-rcpp" ,r-rcpp)))
@@ -3324,14 +3327,14 @@ environment within Shiny.")
(define-public r-radiant-data
(package
(name "r-radiant-data")
- (version "0.8.1")
+ (version "0.9.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "radiant.data" version))
(sha256
(base32
- "1ylina1jlrmvjkj8pwg0ip5jv1038vnzyckmf542xl7g11x8rvw1"))
+ "0mbxfqn79nphii4hb6kxl2wc0w0ra16y378rp2yw9a9926zdb7mb"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -3347,6 +3350,7 @@ environment within Shiny.")
("r-curl" ,r-curl)
("r-dplyr" ,r-dplyr)
("r-dt" ,r-dt)
+ ("r-glue" ,r-glue)
("r-ggplot2" ,r-ggplot2)
("r-gridextra" ,r-gridextra)
("r-import" ,r-import)
@@ -3355,16 +3359,19 @@ environment within Shiny.")
("r-lubridate" ,r-lubridate)
("r-magrittr" ,r-magrittr)
("r-markdown" ,r-markdown)
- ("r-pryr" ,r-pryr)
+ ("r-plotly" ,r-plotly)
("r-psych" ,r-psych)
("r-readr" ,r-readr)
+ ("r-readxl" ,r-readxl)
+ ("r-rlang" ,r-rlang)
("r-rmarkdown" ,r-rmarkdown)
("r-rstudioapi" ,r-rstudioapi)
("r-scales" ,r-scales)
("r-shiny" ,r-shiny)
("r-shinyace" ,r-shinyace)
("r-tibble" ,r-tibble)
- ("r-tidyr" ,r-tidyr)))
+ ("r-tidyr" ,r-tidyr)
+ ("r-writexl" ,r-writexl)))
(home-page "https://github.com/radiant-rstats/radiant.data")
(synopsis "Data menu for Radiant: business analytics using R and Shiny")
(description
@@ -3915,14 +3922,14 @@ exchanging spatial objects with other R packages.")
(define-public r-later
(package
(name "r-later")
- (version "0.7.2")
+ (version "0.7.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "later" version))
(sha256
(base32
- "0l5ln7sjyi2rj7bx8iamxykqlfarv05zb9882ikizppb1cr1hgyw"))))
+ "04j2phymxgkk4hv9pfa5w3s98w5d7fvm11blrdhxmray4n618msw"))))
(build-system r-build-system)
(propagated-inputs
`(("r-bh" ,r-bh)
@@ -4125,14 +4132,14 @@ obtain a better initial configuration in non-metric MDS.")
(define-public r-reticulate
(package
(name "r-reticulate")
- (version "1.7")
+ (version "1.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "reticulate" version))
(sha256
(base32
- "1ghhc4hbmwpp79ilbdbshynhs61i8sv8z6p1al04jy7ij0lcglxy"))))
+ "0zwb4ikf021nw7axdn7qlr6bq4xkph3anfy314idkspy1iil4nmr"))))
(build-system r-build-system)
(inputs `(("python" ,python)))
(propagated-inputs
@@ -4190,3 +4197,267 @@ generating multiple logo plots, and aiding the visualisation with annotations.
Sequence logos can easily be combined with other ggplot2 plots.")
;; Unspecified version of the LGPL.
(license license:lgpl3+)))
+
+(define-public r-ggsci
+ (package
+ (name "r-ggsci")
+ (version "2.9")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "ggsci" version))
+ (sha256
+ (base32
+ "0g73x6grbka7ahjh6z23m3wrcifp5rdfdiasbl8lq4sp6rplxwaa"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-ggplot2" ,r-ggplot2)
+ ("r-scales" ,r-scales)))
+ (home-page "https://nanx.me/ggsci/")
+ (synopsis "Scientific journal and sci-fi themed color palettes for ggplot2")
+ (description
+ "This package provides a collection of ggplot2 color palettes inspired by
+plots in scientific journals, data visualization libraries, science fiction
+movies, and TV shows.")
+ (license license:gpl3)))
+
+(define-public r-ggsignif
+ (package
+ (name "r-ggsignif")
+ (version "0.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "ggsignif" version))
+ (sha256
+ (base32
+ "1rn58d7pb3axk6chiihryykrzw76adaa2yiafq4d0j6qbhax78f7"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-ggplot2" ,r-ggplot2)))
+ (home-page "https://github.com/const-ae/ggsignif")
+ (synopsis "Significance brackets for ggplot2")
+ (description
+ "Enrich your ggplots with group-wise comparisons. This package provides
+an easy way to indicate if two groups are significantly different. Commonly
+this is shown by a bracket on top connecting the groups of interest which
+itself is annotated with the level of significance. The package provides a
+single layer that takes the groups for comparison and the test as arguments
+and adds the annotation to the plot.")
+ (license license:gpl3)))
+
+(define-public r-ggpubr
+ (package
+ (name "r-ggpubr")
+ (version "0.1.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "ggpubr" version))
+ (sha256
+ (base32
+ "0mvw215bj887958p34f0dzlrb8mgyfcz9b5zvsschvbhamqinqna"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-cowplot" ,r-cowplot)
+ ("r-dplyr" ,r-dplyr)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-ggrepel" ,r-ggrepel)
+ ("r-ggsci" ,r-ggsci)
+ ("r-ggsignif" ,r-ggsignif)
+ ("r-gridextra" ,r-gridextra)
+ ("r-magrittr" ,r-magrittr)
+ ("r-purrr" ,r-purrr)
+ ("r-scales" ,r-scales)
+ ("r-tidyr" ,r-tidyr)))
+ (home-page "http://www.sthda.com/english/rpkgs/ggpubr")
+ (synopsis "ggplot2-based publication-ready plots")
+ (description
+ "The ggplot2 package is an excellent and flexible package for elegant
+data visualization in R. However the default generated plots require some
+formatting before we can send them for publication. The ggpubr package
+provides some easy-to-use functions for creating and customizing ggplot2-based
+publication-ready plots.")
+ (license license:gpl2)))
+
+(define-public r-ellipse
+ (package
+ (name "r-ellipse")
+ (version "0.4.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "ellipse" version))
+ (sha256
+ (base32
+ "0g82vc51m3c1k0hnpp2zla6amxxgk2mmkl8ssnsc49jv3599r6hs"))))
+ (build-system r-build-system)
+ (home-page "https://cran.r-project.org/web/packages/ellipse/")
+ (synopsis "Functions for drawing ellipses and ellipse-like confidence regions")
+ (description
+ "This package contains various routines for drawing ellipses and
+ellipse-like confidence regions, implementing the plots described in Murdoch
+and Chow (1996), A graphical display of large correlation matrices, The
+American Statistician 50, 178-180. There are also routines implementing the
+profile plots described in Bates and Watts (1988), Nonlinear Regression
+Analysis and its Applications.")
+ (license license:gpl2+)))
+
+(define-public r-flashclust
+ (package
+ (name "r-flashclust")
+ (version "1.01-2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "flashClust" version))
+ (sha256
+ (base32
+ "0l4lpz451ll7f7lfxmb7ds24ppzhfg1c3ypvydglcc35p2dq99s8"))))
+ (properties `((upstream-name . "flashClust")))
+ (build-system r-build-system)
+ (native-inputs `(("gfortran" ,gfortran)))
+ (home-page "https://cran.r-project.org/web/packages/flashClust/")
+ (synopsis "Implementation of optimal hierarchical clustering")
+ (description
+ "This package provides a fast implementation of hierarchical
+clustering.")
+ (license license:gpl2+)))
+
+(define-public r-factominer
+ (package
+ (name "r-factominer")
+ (version "1.41")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "FactoMineR" version))
+ (sha256
+ (base32
+ "1h20hydav6l2b7bngqw1av4l5rrh0wk58nhailga1f4qw9lrv259"))))
+ (properties `((upstream-name . "FactoMineR")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-car" ,r-car)
+ ("r-cluster" ,r-cluster)
+ ("r-ellipse" ,r-ellipse)
+ ("r-flashclust" ,r-flashclust)
+ ("r-lattice" ,r-lattice)
+ ("r-leaps" ,r-leaps)
+ ("r-mass" ,r-mass)
+ ("r-scatterplot3d" ,r-scatterplot3d)))
+ (home-page "http://factominer.free.fr")
+ (synopsis "Multivariate exploratory data analysis and data mining")
+ (description
+ "This package provides exploratory data analysis methods to summarize,
+visualize and describe datasets. The main principal component methods are
+available, those with the largest potential in terms of applications:
+principal component analysis (PCA) when variables are quantitative,
+correspondence analysis (CA) and multiple correspondence analysis (MCA) when
+variables are categorical, Multiple Factor Analysis when variables are
+structured in groups, etc. and hierarchical cluster analysis.")
+ (license license:gpl2+)))
+
+(define-public r-factoextra
+ (package
+ (name "r-factoextra")
+ (version "1.0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "factoextra" version))
+ (sha256
+ (base32
+ "1l6m8k7qhdw8ndar8nhmym0lfyd1i2iszl1cicjax0vq23ss6xw1"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-abind" ,r-abind)
+ ("r-cluster" ,r-cluster)
+ ("r-dendextend" ,r-dendextend)
+ ("r-factominer" ,r-factominer)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-ggpubr" ,r-ggpubr)
+ ("r-ggrepel" ,r-ggrepel)
+ ("r-reshape2" ,r-reshape2)
+ ("r-tidyr" ,r-tidyr)))
+ (home-page "http://www.sthda.com/english/rpkgs/factoextra")
+ (synopsis "Extract and visualize the results of multivariate data analyses")
+ (description
+ "This package provides some easy-to-use functions to extract and
+visualize the output of multivariate data analyses, including
+@code{PCA} (Principal Component Analysis), @code{CA} (Correspondence
+Analysis), @code{MCA} (Multiple Correspondence Analysis), @code{FAMD} (Factor
+Analysis of Mixed Data), @code{MFA} (Multiple Factor Analysis) and
+@code{HMFA} (Hierarchical Multiple Factor Analysis) functions from different R
+packages. It contains also functions for simplifying some clustering analysis
+steps and provides ggplot2-based elegant data visualization.")
+ (license license:gpl2)))
+
+(define-public r-nbclust
+ (package
+ (name "r-nbclust")
+ (version "3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "NbClust" version))
+ (sha256
+ (base32
+ "1vwb48zy6ln1ddpqmfngii1i80n8qmqyxnzdp6gbaq96lakl3w3c"))))
+ (properties `((upstream-name . "NbClust")))
+ (build-system r-build-system)
+ (home-page "https://sites.google.com/site/malikacharrad/research/nbclust-package")
+ (synopsis "Determine the best number of clusters in a data set")
+ (description
+ "NbClust provides 30 indexes for determining the optimal number of
+clusters in a data set and offers the best clustering scheme from different
+results to the user.")
+ (license license:gpl2)))
+
+(define-public r-hdf5r
+ (package
+ (name "r-hdf5r")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "hdf5r" version))
+ (sha256
+ (base32
+ "1s6p4cj909kc635fh5xpl87bqlcdj3dn3r1wk5g40abimk2b0pva"))))
+ (build-system r-build-system)
+ (inputs
+ `(("hdf5" ,hdf5)
+ ("zlib" ,zlib)))
+ (propagated-inputs
+ `(("r-bit64" ,r-bit64)
+ ("r-r6" ,r-r6)))
+ (home-page "https://hhoeflin.github.io/hdf5r")
+ (synopsis "Interface to the HDF5 binary data format")
+ (description
+ "HDF5 is a data model, library and file format for storing and managing
+large amounts of data. This package provides a nearly feature complete,
+object oriented wrapper for the HDF5 API using R6 classes. Additionally,
+functionality is added so that HDF5 objects behave very similar to their
+corresponding R counterparts.")
+ (license license:asl2.0)))
+
+(define-public r-writexl
+ (package
+ (name "r-writexl")
+ (version "1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "writexl" version))
+ (sha256
+ (base32
+ "0r2v12dc4zqmr1agp6vbw0fc48i278018684x84psjjqfmnv14cf"))))
+ (build-system r-build-system)
+ (inputs `(("zlib" ,zlib)))
+ (home-page "https://github.com/ropensci/writexl")
+ (synopsis "Export data frames to xlsx format")
+ (description
+ "This package provides a data frame to xlsx exporter based on
+libxlsxwriter.")
+ (license license:bsd-2)))
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 929fbb5bc2..338db04f53 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -32,6 +32,7 @@
#:use-module (gnu packages attr)
#:use-module (gnu packages autotools)
#:use-module (gnu packages boost)
+ #:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cryptsetup)
#:use-module (gnu packages databases)
@@ -217,7 +218,7 @@ communication.")
(define-public encfs
(package
(name "encfs")
- (version "1.9.1")
+ (version "1.9.5")
(source
(origin
(method url-fetch)
@@ -226,13 +227,13 @@ communication.")
version "/encfs-" version ".tar.gz"))
(sha256
(base32
- "1906254dg5hwljh0h4gyrw09ms3b57dlhjfzhfzffv50yzpkl837"))
+ "0qzxavvv20577bxvly8s7d3y7bqasqclc2mllp0ddfncjm9z02a7"))
(modules '((guix build utils)))
;; Remove bundled dependencies in favour of proper inputs.
(snippet '(begin
(for-each delete-file-recursively
- (find-files "internal" "^tinyxml2-[0-9]"
- #:directories? #t))
+ '("vendor/github.com/leethomason/tinyxml2"
+ "vendor/github.com/google/googletest"))
#t))))
(build-system cmake-build-system)
(native-inputs
@@ -240,6 +241,7 @@ communication.")
;; Test dependencies.
("expect" ,expect)
+ ("googletest-source" ,(package-source googletest))
("perl" ,perl)))
(inputs
`(("attr" ,attr)
@@ -247,7 +249,18 @@ communication.")
("openssl" ,openssl)
("tinyxml2" ,tinyxml2)))
(arguments
- `(#:configure-flags (list "-DUSE_INTERNAL_TINYXML=OFF")))
+ `(#:configure-flags (list "-DUSE_INTERNAL_TINYXML=OFF")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'unpack-googletest
+ (lambda* (#:key inputs #:allow-other-keys)
+ (mkdir-p "vendor/github.com/google/googletest")
+ (invoke "tar" "xvf" (assoc-ref inputs "googletest-source")
+ "-C" "vendor/github.com/google/googletest"
+ "--strip-components=1")))
+ (add-before 'check 'make-unittests
+ (lambda _
+ (invoke "make" "unittests"))))))
(home-page "https://vgough.github.io/encfs")
(synopsis "Encrypted virtual file system")
(description
@@ -713,14 +726,14 @@ SHA256, SHA512, SHA3, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R
(define-public botan
(package
(name "botan")
- (version "2.5.0")
+ (version "2.6.0")
(source (origin
(method url-fetch)
(uri (string-append "https://botan.randombit.net/releases/"
"Botan-" version ".tgz"))
(sha256
(base32
- "06zvwknhwfrkdvq2sybqbqhnd2d4nq2cszlnsddql13z7vh1z8xq"))))
+ "1iawmymmnp5j2mcjj70slivn6bgg8gbpppldc1rjqw5sbdan3wn1"))))
(build-system gnu-build-system)
(arguments
'(#:phases
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index ab7aad3629..5fb501940a 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -1107,7 +1107,7 @@ extremely small.")
(define-public perl-dbi
(package
(name "perl-dbi")
- (version "1.637")
+ (version "1.641")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1115,7 +1115,7 @@ extremely small.")
version ".tar.gz"))
(sha256
(base32
- "1ikbsb6sb0bd2m1dqknl4vx7ikmnd41y0xq8np1l40g8jcjp2mr5"))))
+ "1hf2x29bnqf2x1v4bdhji802z7n2mbg7h1amv8gdkqyhrlrfa2am"))))
(build-system perl-build-system)
(synopsis "Database independent interface for Perl")
(description "This package provides an database interface for Perl.")
diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm
index 0c6c62d5a3..9d0479b1e1 100644
--- a/gnu/packages/dav.scm
+++ b/gnu/packages/dav.scm
@@ -57,13 +57,13 @@ clients.")
(define-public vdirsyncer
(package
(name "vdirsyncer")
- (version "0.16.4")
+ (version "0.16.6")
(source (origin
(method url-fetch)
(uri (pypi-uri name version))
(sha256
(base32
- "03wva48bgv1ad3df6plc9b8xxh6k8bcaxrhlzwh81c9mzn5bspzv"))))
+ "07iqq5c53cfrb5xnmam1rsl683hc3rykmdak896n2gm81r361c66"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@@ -76,7 +76,6 @@ clients.")
(zero? (system* "make" "test"))))
(add-after 'install 'manpage
(lambda* (#:key inputs outputs #:allow-other-keys)
- (add-installed-pythonpath inputs outputs)
(zero? (system* "make" "--directory=docs/" "man"))
(install-file
"docs/_build/man/vdirsyncer.1"
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 0b8d8be574..4fce4b34ba 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -50,6 +50,7 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
+ #:use-module (gnu packages)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
@@ -104,6 +105,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
(uri (string-append
"ftp://ftp.isc.org/isc/bind9/" version "/" name "-"
version ".tar.gz"))
+ (patches (search-patches "bind-CVE-2018-5738.patch"))
(sha256
(base32
"0a9dvyg1dk7vpqn9gz7p5jas3bz7z22bjd66b98g1qk16i2w7rqd"))))
diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm
index ceabc2a6c4..ed6bd00236 100644
--- a/gnu/packages/elixir.scm
+++ b/gnu/packages/elixir.scm
@@ -40,15 +40,7 @@
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0acnxfwvkx1m1d0h5z051mz95n35zm468hcvc3wpmn17c15h5ihg"))
- ;; FIXME: 27 tests (out of 4K) had to be disabled as
- ;; they fail in the build environment. Common failures
- ;; are:
- ;; - Mix.Shell.cmd() fails with error 130
- ;; - The git_repo fixture cannot be found
- ;; - Communication with spawned processes fails with EPIPE
- ;; - Failure to copy files
- (patches (search-patches "elixir-disable-failing-tests.patch"))))
+ "0acnxfwvkx1m1d0h5z051mz95n35zm468hcvc3wpmn17c15h5ihg"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
@@ -70,27 +62,6 @@
(("#!/usr/bin/env elixir")
(string-append "#!" out "/bin/elixir"))))
#t))
- (add-after 'unpack 'fix-or-disable-tests
- (lambda* (#:key inputs #:allow-other-keys)
- ;; Some tests require access to a home directory.
- (setenv "HOME" "/tmp")
-
- ;; FIXME: These tests fail because the "git_repo" fixture does
- ;; not exist or cannot be found.
- (delete-file "lib/mix/test/mix/tasks/deps.git_test.exs")
-
- ;; FIXME: Mix.Shell.cmd() always fails with error code 130.
- (delete-file "lib/mix/test/mix/shell_test.exs")
-
- ;; FIXME:
- ;; disabled failing impure tests to make it build again.
- ;; related discussion: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28034#14
- (delete-file "lib/elixir/test/elixir/kernel/cli_test.exs")
- (delete-file "lib/elixir/test/elixir/kernel/dialyzer_test.exs")
- (delete-file "lib/iex/test/iex/helpers_test.exs")
- (delete-file "lib/ex_unit/test/ex_unit/capture_io_test.exs")
-
- #t))
(add-before 'build 'make-current
;; The Elixir compiler checks whether or not to compile files by
;; inspecting their timestamps. When the timestamp is equal to the
@@ -102,6 +73,11 @@
(utime file recent recent 0 0)))
(find-files "." ".*"))
#t))
+ (add-before 'check 'set-home
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Some tests require access to a home directory.
+ (setenv "HOME" "/tmp")
+ #t))
(delete 'configure))))
(inputs
`(("erlang" ,erlang)
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 9caa01a0fd..3b2c41c5d8 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -436,7 +436,7 @@ on stdout instead of using a socket as the Emacsclient does.")
(define-public magit
(package
(name "magit")
- (version "2.12.1")
+ (version "2.13.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -444,7 +444,7 @@ on stdout instead of using a socket as the Emacsclient does.")
version "/" name "-" version ".tar.gz"))
(sha256
(base32
- "1czzknmhzbggcv3bxl5amvfpp0zrkdwl1x05qarsq6qakvc85xy3"))))
+ "1ygaah3dd3nxpyd17297xgvdcgr7pgzzwlmpnmchki0kiwgg3sbc"))))
(build-system gnu-build-system)
(native-inputs `(("texinfo" ,texinfo)
("emacs" ,emacs-minimal)))
@@ -3014,6 +3014,33 @@ This provides a basic API and common UI widgets such as popup tooltips
and popup menus.")
(license license:gpl3+)))
+(define-public emacs-puppet-mode
+ (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
+ (revision "1"))
+ (package
+ (name "emacs-puppet-mode")
+ ;; The last release, 0.3 was several years ago, and there have been many
+ ;; commits since
+ (version (git-version "0.3" revision commit))
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
+ commit "/puppet-mode.el"))
+ (sha256
+ (base32
+ "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/voxpupuli/puppet-mode")
+ (synopsis "Emacs major mode for the Puppet configuration language")
+ (description
+ "This package provides support for the Puppet configuration language,
+including syntax highlighting, indentation of expressions and statements,
+linting of manifests and integration with Puppet Debugger.")
+ ;; Also incorporates work covered by the Apache License, Version 2.0
+ (license license:gpl3+))))
+
(define-public emacs-god-mode
(let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
(revision "1"))
@@ -4797,7 +4824,7 @@ distribution, primarily targeting Clojure users")
(define-public emacs-orgalist
(package
(name "emacs-orgalist")
- (version "1.7")
+ (version "1.8")
(source
(origin
(method url-fetch)
@@ -4805,7 +4832,7 @@ distribution, primarily targeting Clojure users")
"orgalist-" version ".el"))
(sha256
(base32
- "13dl0l727vlny3y88gqpngcy90ly5r719s1pbmkva5gmcryb68xr"))))
+ "1wqwnmn08i0qkxm8b2iclvf6cydcn68h1p3h7r1kig2bdn5b8948"))))
(build-system emacs-build-system)
(home-page "http://elpa.gnu.org/packages/orgalist.html")
(synopsis "Manage Org-like lists in non-Org buffers")
@@ -5609,7 +5636,7 @@ highlights quasi-quoted expressions.")
(define-public emacspeak
(package
(name "emacspeak")
- (version "47.0")
+ (version "48.0")
(source
(origin
(method url-fetch)
@@ -5618,7 +5645,7 @@ highlights quasi-quoted expressions.")
version "/emacspeak-" version ".tar.bz2"))
(sha256
(base32
- "0xbcc266x752y68s3g096m161irzvsqym3axzqn8rb276a8x55n7"))))
+ "07imi3hji06b3r7v7v59978q76s8a7ynmxwfc9j03pgnv965lpjy"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags (list (string-append "prefix="
@@ -5626,30 +5653,35 @@ highlights quasi-quoted expressions.")
#:phases
(modify-phases %standard-phases
(replace 'configure
- (lambda _
- ;; Configure Emacspeak according to etc/install.org.
- (setenv "SHELL" (which "sh"))
- (zero? (system* "make" "config"))))
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lisp (string-append out
+ "/share/emacs/site-lisp/emacspeak")))
+ (setenv "SHELL" (which "sh"))
+ ;; Configure Emacspeak according to etc/install.org.
+ (invoke "make" "config"))))
(add-after 'build 'build-espeak
(lambda _
- (zero? (system* "make" "espeak"))))
+ (invoke "make" "espeak")))
(replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
+ (lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
- (info (string-append out "/share/info")))
+ (info (string-append out "/share/info"))
+ (emacs (string-append (assoc-ref inputs "emacs")
+ "/bin/emacs")))
;; According to etc/install.org, the Emacspeak directory should
;; be copied to its installation destination.
(for-each
(lambda (file)
(copy-recursively file (string-append lisp "/" file)))
- '("etc" "info" "lisp" "media" "servers" "sounds" "stumpwm"
- "xsl"))
+ '("etc" "info" "js" "lisp" "media" "scapes" "servers" "sounds"
+ "stumpwm" "xsl"))
;; Make sure emacspeak is loaded from the correct directory.
(substitute* "etc/emacspeak.sh"
- (("exec emacs.*$")
- (string-append "exec emacs -l " lisp
+ (("exec FLAVOR.*")
+ (string-append "exec " emacs " -l " lisp
"/lisp/emacspeak-setup.el $CL_ALL")))
;; Install the convenient startup script.
(mkdir-p bin)
@@ -5668,10 +5700,11 @@ highlights quasi-quoted expressions.")
#t))))
#:tests? #f)) ; no check target
(inputs
- `(("espeak" ,espeak)
+ `(("emacs" ,emacs)
+ ("espeak" ,espeak)
+ ("perl" ,perl)
("tcl" ,tcl)
("tclx" ,tclx)))
- (native-inputs `(("emacs" ,emacs-minimal)))
(home-page "http://emacspeak.sourceforge.net")
(synopsis "Audio desktop interface for Emacs")
(description
@@ -7917,7 +7950,7 @@ close, copy, cut, paste, undo, redo.")
(define-public emacs-password-store
(package
(name "emacs-password-store")
- (version "1.7.1")
+ (version "1.7.2")
(source (origin
(method url-fetch)
(uri
@@ -7925,7 +7958,7 @@ close, copy, cut, paste, undo, redo.")
"password-store-" version ".tar.xz"))
(sha256
(base32
- "0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn"))))
+ "1sl0d7nc85c6c2bmmmyb8rpmn47vhkj831l153mjlkawjvhwas27"))))
(build-system emacs-build-system)
(arguments
`(#:phases
@@ -7940,6 +7973,7 @@ close, copy, cut, paste, undo, redo.")
(propagated-inputs
`(("emacs-f" ,emacs-f)
("emacs-s" ,emacs-s)
+ ("emacs-with-editor" ,emacs-with-editor)
("password-store" ,password-store)))
(home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
(synopsis "Password store (pass) support for Emacs")
@@ -9934,11 +9968,11 @@ perform regression test for packages that provide font-lock rules.")
(license license:gpl3+))))
(define-public emacs-racket-mode
- (let ((commit "33877b1bb24faea68842e0396bd5718b84e47451")
+ (let ((commit "48f0cb99d3b2ca6066249546d2063d85437251c1")
(revision "1"))
(package
(name "emacs-racket-mode")
- (version (string-append "0.0.1" "-" revision "."
+ (version (string-append "0.0.2" "-" revision "."
(string-take commit 7)))
(source
(origin
@@ -9949,8 +9983,10 @@ perform regression test for packages that provide font-lock rules.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0681mzwx08zwbh8qg3s26jw1jn4fw2ljp1akxqkhy08sxhafqvb1"))))
+ "0fxky8xj639bjhiab9way9daqda22301b7w85vm4b4ydgjgnc59x"))))
(build-system emacs-build-system)
+ (arguments
+ `(#:include '("\\.el$" "\\.rkt$")))
(propagated-inputs
`(("emacs-faceup" ,emacs-faceup)
("emacs-s" ,emacs-s)))
@@ -10807,26 +10843,39 @@ Org-mode. It features:
(license license:gpl3+))))
(define-public emacs-fish-completion
- (package
- (name "emacs-fish-completion")
- (version "20180329")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/Ambrevar/emacs-fish-completion/archive/"
- "3e3ed1f19fa778b7c35ad88e033dce5a6b1fc153"
- ".tar.gz"))
- (sha256
- (base32
- "16329py7fvid0bap1qhqxhdc68m9qqy1p8gc2bhng81zhm5a5zsm"))))
- (build-system emacs-build-system)
- (propagated-inputs `(("fish" ,fish)))
- (home-page
- "https://github.com/Ambrevar/emacs-fish-completion")
- (synopsis "Fish completion for Emacs pcomplete")
- (description
- "This package provides completion for the Fish shell to pcomplete (used
+ (let ((commit "bac15fda1392a891070574dfe5d2d50b10831e8b"))
+ (package
+ (name "emacs-fish-completion")
+ (version (git-version "20180616" "1" commit))
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://gitlab.com/Ambrevar/emacs-fish-completion/repository/"
+ "archive.tar.gz?ref="
+ commit))
+ (sha256
+ (base32
+ "093qzdrbkl7dhjk16zq8i13kh1phyigkblcfrbgbrxjqd2ndrfdi"))))
+ (build-system emacs-build-system)
+ (inputs `(("fish" ,fish)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((fish (assoc-ref inputs "fish")))
+ ;; Specify the absolute file names of the various
+ ;; programs so that everything works out-of-the-box.
+ (emacs-substitute-variables
+ "fish-completion.el"
+ ("fish-completion-command"
+ (string-append fish "/bin/fish")))))))))
+ (home-page
+ "https://gitlab.com/Ambrevar/emacs-fish-completion")
+ (synopsis "Fish completion for Emacs pcomplete")
+ (description
+ "This package provides completion for the Fish shell to pcomplete (used
by shell and Eshell). You can set it up globally with:
@example
@@ -10841,7 +10890,7 @@ shell/Eshell mode hook.
The package @code{emacs-bash-completion} is an optional dependency: if available,
@code{fish-completion-complete} can be configured to fall back on bash to further
try completing. See @code{fish-completion-fallback-on-bash-p}.")
- (license license:gpl3+)))
+ (license license:gpl3+))))
(define-public emacs-gif-screencast
(let ((commit "825e606950ec842304bf75cf85baef707b853b03"))
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index a7c9104683..1687c9652f 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -1235,7 +1235,8 @@ play them on systems for which they were never designed!")
(find-files "keymaps" ".*LINUX\\.map")))
(let ((fonts (string-append share "/fonts")))
(install-file "uismall.bdf" fonts))
- (rename-file "mame64" "mame")
+ (when (file-exists? "mame64")
+ (rename-file "mame64" "mame"))
(install-file "mame" (string-append out "/bin")))
#t))
(add-after 'install 'install-documentation
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index 0e2b7b5bcb..1c18efe9da 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -89,6 +89,7 @@
(guix build gnu-build-system))
#:phases
(modify-phases %standard-phases
+ (delete 'bootstrap)
;; The are several code fragments that embed timestamps into the
;; output. Here, we alter those fragments to use the value of
;; SOURCE_DATE_EPOCH instead.
@@ -127,6 +128,29 @@
(date->string source-date-epoch
"{H,Mi,S} = {~H,~M,~S},")))
#t)))
+ (add-after 'unpack 'patch-/bin/sh
+ (lambda _
+ (substitute* "erts/etc/unix/run_erl.c"
+ (("sh = \"/bin/sh\";")
+ (string-append "sh = \""
+ (which "sh")
+ "\";")))
+
+ (substitute* "erts/emulator/sys/unix/sys_drivers.c"
+ (("SHELL \"/bin/sh\"")
+ (string-append "SHELL \""
+ (which "sh")
+ "\"")))
+ (substitute* "erts/emulator/sys/unix/erl_child_setup.c"
+ (("SHELL \"/bin/sh\"")
+ (string-append "SHELL \""
+ (which "sh")
+ "\"")))
+
+ (substitute* "lib/kernel/src/os.erl"
+ (("/bin/sh") (which "sh")))
+
+ #t))
(add-after 'patch-source-shebangs 'patch-source-env
(lambda _
(let ((escripts
diff --git a/gnu/packages/fcitx.scm b/gnu/packages/fcitx.scm
index fc55df14a6..bcd5f12dd1 100644
--- a/gnu/packages/fcitx.scm
+++ b/gnu/packages/fcitx.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -35,14 +36,14 @@
(define-public fcitx
(package
(name "fcitx")
- (version "4.2.8.6")
+ (version "4.2.9.6")
(source (origin
(method url-fetch)
(uri (string-append "http://download.fcitx-im.org/fcitx/"
name "-" version "_dict.tar.xz"))
(sha256
(base32
- "15ymd42kg920ri0f8fymq3i68g8k1kgpmdlnk9jf5fvnz6g4w0wi"))))
+ "0hyrh3v82a32ylnlvzrp6cmq56x4p1a42q5xc6njmmj2msxm34x5"))))
(build-system cmake-build-system)
(outputs '("out" "gtk2" "gtk3"))
(arguments
@@ -65,7 +66,12 @@
"-DENABLE_QT_IM_MODULE=OFF")))
(native-inputs
`(("doxygen" ,doxygen)
- ("glib:bin" ,glib "bin") ; for glib-genmarshal
+ ("extra-cmake-modules"
+ ;; XXX: We can't simply #:use-module due to a cycle somewhere.
+ ,(module-ref
+ (resolve-interface '(gnu packages kde-frameworks))
+ 'extra-cmake-modules))
+ ("glib:bin" ,glib "bin") ; for glib-genmarshal
("pkg-config" ,pkg-config)))
(inputs
`(("dbus" ,dbus)
@@ -78,7 +84,7 @@
("libxkbfile" ,libxkbfile)
("libxml2" ,libxml2)
("xkeyboard-config" ,xkeyboard-config)))
- (home-page "http://fcitx-im.org")
+ (home-page "https://fcitx-im.org")
(synopsis "Input method framework")
(description
"Fcitx is an input method framework with extension support. It has
@@ -89,14 +95,14 @@ built-in.")
(define-public fcitx-configtool
(package
(name "fcitx-configtool")
- (version "0.4.8")
+ (version "0.4.10")
(source (origin
(method url-fetch)
(uri (string-append "https://download.fcitx-im.org/fcitx-configtool/"
name "-" version ".tar.xz"))
(sha256
(base32
- "1vaim0namw58bfafbvws1vgd4010p19zwqfbx6bd1zi5sgchdg0f"))))
+ "1yyi9jhkwn49lx9a47k1zbvwgazv4y4z72gnqgzdpgdzfrlrgi5w"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 031df7faa7..204f23a804 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -617,7 +617,7 @@ languages, plus Greek and Cyrillic.")
(define-public font-gnu-unifont
(package
(name "font-gnu-unifont")
- (version "10.0.07")
+ (version "11.0.01")
(source (origin
(method url-fetch)
(uri (string-append
@@ -625,7 +625,7 @@ languages, plus Greek and Cyrillic.")
version ".tar.gz"))
(sha256
(base32
- "1js8dn4v4pv8jqprsxa1fv4fs3hqhm9x4dj19fg9qgc8fx7k0v0k"))))
+ "1nkapra0ic4fp3lmnvfc6jly62yskhcdkwrnq29hvh3xs51ncc52"))))
(build-system gnu-build-system)
(outputs '("out" ; TrueType version
"pcf" ; PCF (bitmap) version
@@ -650,12 +650,12 @@ languages, plus Greek and Cyrillic.")
(psf (string-append (assoc-ref outputs "psf")
"/share/consolefonts"))
(bin (assoc-ref outputs "bin")))
- (system* "make"
- (string-append "PREFIX=" bin)
- (string-append "TTFDEST=" ttf)
- (string-append "PCFDEST=" pcf)
- (string-append "CONSOLEDEST=" psf)
- "install")
+ (invoke "make"
+ (string-append "PREFIX=" bin)
+ (string-append "TTFDEST=" ttf)
+ (string-append "PCFDEST=" pcf)
+ (string-append "CONSOLEDEST=" psf)
+ "install")
;; Move Texinfo file to the right place.
(mkdir (string-append bin "/share/info"))
(rename-file (string-append bin "/share/unifont/unifont.info.gz")
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index c445154b69..06ac1b80bb 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -1822,7 +1822,7 @@ falling, themeable graphics and sounds, and replays.")
(define-public wesnoth
(package
(name "wesnoth")
- (version "1.14.1")
+ (version "1.14.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/wesnoth/wesnoth-"
@@ -1831,7 +1831,7 @@ falling, themeable graphics and sounds, and replays.")
name "-" version ".tar.bz2"))
(sha256
(base32
- "1mzrnbv71b4s41c5x8clhb53l8lidiwzny1hl828228pvys5bxkb"))))
+ "06648041nr77sgzr7jpmcn37cma3hp41qynp50xzddx28l17zwg9"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no check target
@@ -2229,6 +2229,88 @@ Transport Tycoon Deluxe.")
("opensfx" ,openttd-opensfx)
,@(package-native-inputs openttd-engine)))))
+(define openrct2-title-sequences
+ (package
+ (name "openrct2-title-sequences")
+ (version "0.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/OpenRCT2/title-sequences/releases/download/v"
+ version "/title-sequence-v" version ".zip"))
+ (file-name (string-append name "-" version ".zip"))
+ (sha256
+ (base32
+ "0qbyxrsw8hlgaq0r5d7lx7an3idy4qbfv7yiw9byhldk763n9cfw"))))
+ (build-system trivial-build-system)
+ (native-inputs
+ `(("bash" ,bash)
+ ("coreutils" ,coreutils)
+ ("unzip" ,unzip)))
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((out (assoc-ref %outputs "out"))
+ (openrct2-title-sequences (string-append out
+ "/share/openrct2/title-sequences"))
+ (source (assoc-ref %build-inputs "source"))
+ (unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip")))
+ (copy-file source (string-append ,name "-" ,version ".zip"))
+ (invoke unzip (string-append ,name "-" ,version ".zip"))
+ (delete-file (string-append ,name "-" ,version ".zip"))
+ (mkdir-p openrct2-title-sequences)
+ (copy-recursively "."
+ openrct2-title-sequences)
+ #t))))
+ (home-page "https://github.com/OpenRCT2/OpenRCT2")
+ (synopsis "Title sequences for OpenRCT2")
+ (description
+ "openrct2-title-sequences is a set of title sequences for OpenRCT2.")
+ (license license:gpl3+)))
+
+(define openrct2-objects
+ (package
+ (name "openrct2-objects")
+ (version "1.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/OpenRCT2/objects/releases/download/v"
+ version "/objects.zip"))
+ (file-name (string-append name "-" version ".zip"))
+ (sha256
+ (base32
+ "1z92afhbv13j1ig6fz0x8w9vdmfchssv16vwwhb0vj40pn1g1rwy"))))
+ (build-system trivial-build-system)
+ (native-inputs
+ `(("bash" ,bash)
+ ("coreutils" ,coreutils)
+ ("unzip" ,unzip)))
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((out (assoc-ref %outputs "out"))
+ (openrct2-objects (string-append out
+ "/share/openrct2/objects"))
+ (source (assoc-ref %build-inputs "source"))
+ (unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip")))
+ (copy-file source (string-append ,name "-" ,version ".zip"))
+ (invoke unzip (string-append ,name "-" ,version ".zip"))
+ (delete-file (string-append ,name "-" ,version ".zip"))
+ (mkdir-p openrct2-objects)
+ (copy-recursively "."
+ openrct2-objects)
+ #t))))
+ (home-page "https://github.com/OpenRCT2/OpenRCT2")
+ (synopsis "Objects for OpenRCT2")
+ (description
+ "openrct2-objects is a set of objects for OpenRCT2.")
+ (license license:gpl3+)))
+
(define-public openrct2
(package
(name "openrct2")
@@ -2244,35 +2326,39 @@ Transport Tycoon Deluxe.")
(file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ;; no tests available
+ `(#:configure-flags '("-DDOWNLOAD_TITLE_SEQUENCES=OFF")
+ #:tests? #f ; Tests require network.
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'fix-usr-share-paths
- (lambda* (#:key make-flags outputs #:allow-other-keys)
+ (add-after 'unpack 'fix-usr-share-paths&add-data
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((titles (assoc-ref inputs "openrct2-title-sequences"))
+ (objects (assoc-ref inputs "openrct2-objects")))
;; Fix some references to /usr/share.
+ ;; Change to Platform.Linux.cpp on 0.1.2+
(substitute* "src/openrct2/platform/linux.c"
(("/usr/share")
- (string-append (assoc-ref %outputs "out") "/share")))))
- (add-after 'build 'fix-cmake-install-file
- (lambda _
- ;; The build system tries to download a file and compare hashes.
- ;; Since we have no network, remove this so the install doesn't fail.
- (substitute* "cmake_install.cmake"
- (("EXPECTED_HASH SHA1=b587d83de508d0b104d14c599b76f8565900fce0")
- "")))))))
+ (string-append (assoc-ref %outputs "out") "/share")))
+ (copy-recursively (string-append titles
+ "/share/openrct2/title-sequences") "data/title")
+ (copy-recursively (string-append objects
+ "/share/openrct2/objects") "data/object")))))))
(inputs `(("curl" ,curl)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
+ ("icu4c" ,icu4c)
("jansson" ,jansson)
("libpng" ,libpng)
("libzip" ,libzip)
("mesa" ,mesa)
+ ("openrct2-objects" ,openrct2-objects)
+ ("openrct2-title-sequences" ,openrct2-title-sequences)
("openssl" ,openssl)
("sdl2" ,sdl2)
("speexdsp" ,speexdsp)
("zlib" ,zlib)))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ `(("pkg-config" ,pkg-config)))
(home-page "https://github.com/OpenRCT2/OpenRCT2")
(synopsis "Free software re-implementation of RollerCoaster Tycoon 2")
(description "OpenRCT2 is a free software re-implementation of
@@ -3166,53 +3252,6 @@ application that locks the keyboard and mouse and instead displays bright
colors, pictures, and sounds.")
(license license:gpl3+)))
-(define-public mrrescue
- (package
- (name "mrrescue")
- (version "1.02e")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/SimonLarsen/mrrescue/releases/"
- "download/" version "/" name version ".love"))
- (file-name (string-append name "-" version ".love"))
- (sha256
- (base32
- "0jwzbwkgp1l5ia6c7s760gmdirbsncp6nfqp7vqdqsfb63la9gl2"))))
- (build-system trivial-build-system)
- (arguments
- '(#:modules ((guix build utils))
- #:builder
- (begin
- (use-modules (guix build utils))
- (let* ((out (assoc-ref %outputs "out"))
- (bindir (string-append out "/bin"))
- (prog (string-append bindir "/mrrescue"))
- (source (assoc-ref %build-inputs "source"))
- (bash (string-append (assoc-ref %build-inputs "bash")
- "/bin/bash"))
- (love (string-append (assoc-ref %build-inputs "love")
- "/bin/love")))
- (mkdir-p bindir)
- (with-output-to-file prog
- (lambda ()
- (format #t "#!~a~%" bash)
- (format #t "exec -a mrrescue \"~a\" \"~a\"~%" love source)))
- (chmod prog #o755)
- #t))))
- (inputs
- `(("bash" ,bash)
- ("love" ,love)))
- (home-page "http://tangramgames.dk/games/mrrescue")
- (synopsis "Arcade-style fire fighting game")
- (description
- "Mr. Rescue is an arcade styled 2d action game centered around evacuating
-civilians from burning buildings. The game features fast paced fire
-extinguishing action, intense boss battles, a catchy soundtrack and lots of
-throwing people around in pseudo-randomly generated buildings.")
- (license (list license:zlib ; for source code
- license:cc-by-sa3.0)))) ; for graphics and music assets
-
(define-public hyperrogue
(package
(name "hyperrogue")
@@ -4481,7 +4520,7 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
(package
(inherit quakespasm)
(name "vkquake")
- (version "0.97.3")
+ (version "1.00.0")
(source
(origin
(method url-fetch)
@@ -4490,7 +4529,7 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1p0nh2v2ilylw62fxc5qpfcmyhs0s64w8sgh036nc6kn21kbjc0d"))))
+ "0bviv18jvp41jvrabgl7l5kq4n1p6p3rywij481yswawdw6l5idh"))))
(arguments
`(#:make-flags
(let ((vulkanlib (string-append (assoc-ref %build-inputs
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 4ba09f2a90..85bb0ccf9b 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -544,14 +544,14 @@ coordinates.")
(define-public r-rgooglemaps
(package
(name "r-rgooglemaps")
- (version "1.4.1")
+ (version "1.4.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "RgoogleMaps" version))
(sha256
(base32
- "0fsmlnhl4kw2j4972kfanzw9njhnzk695gsyw8g6yppsmz2clcaq"))))
+ "112mdm53qx92n2m4ms02sbppckp44l1z19vy99j6gw3jrdprjydl"))))
(properties `((upstream-name . "RgoogleMaps")))
(build-system r-build-system)
(propagated-inputs `(("r-png" ,r-png)))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 3a9f11bd0f..1d53af7515 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7140,7 +7140,7 @@ photo-booth-like software, such as Cheese.")
(define-public cheese
(package
(name "cheese")
- (version "3.26.0")
+ (version "3.28.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -7148,7 +7148,7 @@ photo-booth-like software, such as Cheese.")
version ".tar.xz"))
(sha256
(base32
- "01f6lsp9jkhq5v2zxlghw15bca4xqavkxqkl8977r0g13p22zxcf"))))
+ "06da5qc5hdvwwd5vkbgbx8pjx1l3mvr07yrnnv3v1hfc3wp7l7jw"))))
(arguments
;; Tests require GDK.
`(#:tests? #f
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 42b54c1ea0..da0c33565a 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -108,6 +108,7 @@ Daemon and possibly more in the future.")
(define-public libgcrypt
(package
+ (replacement libgcrypt/fixed)
(name "libgcrypt")
(version "1.8.2")
(source (origin
@@ -142,6 +143,19 @@ generation.")
(properties '((ftp-server . "ftp.gnupg.org")
(ftp-directory . "/gcrypt/libgcrypt")))))
+(define libgcrypt/fixed
+ (package
+ (inherit libgcrypt)
+ (name "libgcrypt")
+ (version "1.8.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "0z5gs1khzyknyfjr19k8gk4q148s6q987ya85cpn0iv70fz91v36"))))))
+
(define-public libassuan
(package
(name "libassuan")
@@ -349,15 +363,14 @@ libskba (working with X.509 certificates and CMS data).")
(define-public gnupg-1
(package (inherit gnupg)
- (version "1.4.22")
+ (version "1.4.23")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
".tar.bz2"))
- (patches (search-patches "gnupg-1.4-CVE-2018-12020.patch"))
(sha256
(base32
- "1d1hz4szh1kvwhsw7w2zxa6q5ndrk3qy6hj289l1b8k3xi5s554m"))))
+ "1fkq4sqldvf6a25mm2qz95swv1qjg464736091w51djiwqbjyin9"))))
(native-inputs '())
(inputs
`(("zlib" ,zlib)
@@ -508,14 +521,14 @@ decrypt messages using the OpenPGP format by making use of GPGME.")
(define-public python-gnupg
(package
(name "python-gnupg")
- (version "0.3.8")
+ (version "0.4.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-gnupg" version))
(sha256
(base32
- "0nkbs9c8f30lra7ca39kg91x8cyxn0jb61vih4qky839gpbwwwiq"))))
+ "03dc8whhvk7ccspbk8vzfhkxli8cd9zfbss5p597g4jldgy8s59d"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -523,16 +536,14 @@ decrypt messages using the OpenPGP format by making use of GPGME.")
(replace 'check
(lambda _
(substitute* "test_gnupg.py"
- ;; Exported keys don't have a version line!
- (("del k1\\[1\\]") "#")
;; Unsure why this test fails.
(("'test_search_keys'") "True")
(("def test_search_keys") "def disabled__search_keys"))
(setenv "USERNAME" "guixbuilder")
;; The doctests are extremely slow and sometimes time out,
;; so we disable them.
- (zero? (system* "python"
- "test_gnupg.py" "--no-doctests")))))))
+ (invoke "python"
+ "test_gnupg.py" "--no-doctests"))))))
(native-inputs
`(("gnupg" ,gnupg-1)))
(home-page "https://packages.python.org/python-gnupg/index.html")
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 1d8e80c8fe..a83cdcde83 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -215,7 +215,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(package
(inherit go-1.4)
(name "go")
- (version "1.9.6")
+ (version "1.9.7")
(source
(origin
(method url-fetch)
@@ -223,7 +223,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
name version ".src.tar.gz"))
(sha256
(base32
- "0a2qkvzr0g5cbd66wi7b6r40qyp9p55y0zz2j5qg1xsqwsdhbx1n"))))
+ "08kpy874x0rx43zpyv5kwd8xj2ma91xm33i0ka2v1v788px18a2q"))))
(arguments
(substitute-keyword-arguments (package-arguments go-1.4)
((#:phases phases)
@@ -384,7 +384,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(package
(inherit go-1.9)
(name "go")
- (version "1.10.2")
+ (version "1.10.3")
(source
(origin
(method url-fetch)
@@ -392,7 +392,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
name version ".src.tar.gz"))
(sha256
(base32
- "1gcqbac3wbhbcr0ri9zgfj6qkqbwf9fn116a0a7fvn4wdff60r32"))))
+ "1wjmw65nfkkzz084695gdgn13sbjcaafy2y5370d214pdk31qysn"))))
(arguments
(substitute-keyword-arguments (package-arguments go-1.9)
((#:phases phases)
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 439170c007..52f7ff3ba6 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -373,7 +373,7 @@ storage of the \"EXR\" file format for storing 16-bit floating-point images.")
(define-public openimageio
(package
(name "openimageio")
- (version "1.6.15")
+ (version "1.7.19")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/OpenImageIO/oiio/"
@@ -381,7 +381,7 @@ storage of the \"EXR\" file format for storing 16-bit floating-point images.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "144crq0205d0w5aq4iglh2rhzf54a8rv3pksy6d533b75w5d7rq7"))))
+ "1qlmfhvl2wva4aifyiq7c4sdy61ddl7wykwvlpfys9p701xghvj7"))))
(build-system cmake-build-system)
;; FIXME: To run all tests successfully, test image sets from multiple
;; third party sources have to be present. For details see
diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm
index 512f9c9edb..aaa524b1ba 100644
--- a/gnu/packages/groovy.scm
+++ b/gnu/packages/groovy.scm
@@ -1107,7 +1107,7 @@ and modify groovy's @dfn{Abstract Syntax Tree} (AST).")))
"groovy-jmx" "groovy-json" "groovy-jsr223"
"groovy-nio" "groovy-servlet" "groovy-sql"
"groovy-swing" "groovy-templates" "groovy-testng"
- "java-commons-cli" "java-asm"
+ "groovy-xml" "java-commons-cli" "java-asm"
"java-classpathx-servletapi" "java-xstream"
"java-jansi" "java-jline-2"))
;; antlr.jar is present twice in antlr2. Symlink doesn't like
@@ -1140,6 +1140,7 @@ and modify groovy's @dfn{Abstract Syntax Tree} (AST).")))
("groovy-swing" ,groovy-swing)
("groovy-templates" ,groovy-templates)
("groovy-testng" ,groovy-testng)
+ ("groovy-xml" ,groovy-xml)
("java-commons-cli" ,java-commons-cli)
("java-asm" ,java-asm)
("java-classpathx-servletapi" ,java-classpathx-servletapi)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index f7196611d6..2e641c61c5 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -8,7 +8,7 @@
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
-;;; Coypright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index a88d24885f..4cd26cf7f2 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -1786,7 +1786,7 @@ is no support for parsing block and inline level HTML.")
(define-public guile-bytestructures
(package
(name "guile-bytestructures")
- (version "1.0.1")
+ (version "1.0.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/TaylanUB/scheme-bytestructures"
@@ -1794,7 +1794,7 @@ is no support for parsing block and inline level HTML.")
"/bytestructures-" version ".tar.gz"))
(sha256
(base32
- "1lnfcy65mqj823lamy2n2vaghdz0g7mj011bgnhmd6hwpnaidnh2"))))
+ "0xf6s8gd3656j8k2ar6y7i62r68azawyzxhsagsk8nvldnrs1r18"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -2002,20 +2002,6 @@ is not available for Guile 2.0.")
"0z1dvn0scx59pbgjkpacam7p5n7630z4qm8fazim7ixq9xv3s8wx"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
- (arguments
- `(#:phases (modify-phases %standard-phases
- ;; FIXME: On i686, bytestructures miscalculates the offset
- ;; of the 'old-file' and 'new-file' fields within the
- ;; '%diff-delta' structure. See
- ;; <https://github.com/TaylanUB/scheme-bytestructures/issues/30>.
- ,@(if (string=? (%current-system) "x86_64-linux")
- '()
- '((add-before 'check 'skip-tests
- (lambda _
- (substitute* "Makefile"
- (("tests/status\\.scm")
- ""))
- #t)))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 5ee74251c4..5216b84abd 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -3304,6 +3304,39 @@ Compiler component.")))
This component decrypts a string passed to it.")
(license license:asl2.0)))
+(define-public java-plexus-cli
+ (package
+ (name "java-plexus-cli")
+ (version "1.7")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sonatype/plexus-cli")
+ (commit "a776afa6bca84e5107bedb69440329cdb24ed645")))
+ (file-name (string-append name "-" version))
+ (sha256
+ (base32
+ "0xjrlay605rypv3zd7y24vlwf0039bil3n2cqw54r1ddpysq46vx"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "plexus-cli.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ #:test-dir "src/test"))
+ (inputs
+ `(("java-commons-cli" ,java-commons-cli)
+ ("java-plexus-container-default" ,java-plexus-container-default)
+ ("java-plexus-classworlds" ,java-plexus-classworlds)))
+ (native-inputs
+ `(("java-plexus-utils" ,java-plexus-utils)
+ ("java-junit" ,java-junit)
+ ("java-guava" ,java-guava)))
+ (home-page "https://codehaus-plexus.github.io/plexus-cli")
+ (synopsis "CLI building library for plexus")
+ (description "This package is a library to help creating CLI around
+Plexus components.")
+ (license license:asl2.0)))
+
(define-public java-sisu-build-api
(package
(name "java-sisu-build-api")
@@ -10195,3 +10228,32 @@ This module can be assimilated to a significantly improved version of log4j.
Moreover, @code{logback-classic} natively implements the slf4j API so that you
can readily switch back and forth between logback and other logging frameworks
such as log4j or @code{java.util.logging} (JUL).")))
+
+(define-public java-qdox
+ (package
+ (name "java-qdox")
+ ; Newer version exists, but this version is required by java-plexus-component-metadata
+ (version "2.0-M2")
+ (source (origin
+ (method url-fetch)
+ ;; 2.0-M4, -M5 at https://github.com/paul-hammant/qdox
+ ;; Older releases at https://github.com/codehaus/qdox/
+ ;; Note: The release at maven is pre-generated. The release at
+ ;; github requires jflex.
+ (uri (string-append "http://central.maven.org/maven2/"
+ "com/thoughtworks/qdox/qdox/" version
+ "/qdox-" version "-sources.jar"))
+ (sha256
+ (base32
+ "10xxrcaicq6axszcr2jpygisa4ch4sinyx5q7kqqxv4lknrmxp5x"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "qdox.jar"
+ #:tests? #f)); no tests
+ (home-page "http://qdox.codehaus.org/")
+ (synopsis "Parse definitions from Java source files")
+ (description "QDox is a high speed, small footprint parser for extracting
+class/interface/method definitions from source files complete with JavaDoc
+@code{@@tags}. It is designed to be used by active code generators or
+documentation tools.")
+ (license license:asl2.0)))
diff --git a/gnu/packages/libedit.scm b/gnu/packages/libedit.scm
index 9f6f1d05ce..095749e868 100644
--- a/gnu/packages/libedit.scm
+++ b/gnu/packages/libedit.scm
@@ -28,7 +28,7 @@
(define-public libedit
(package
(name "libedit")
- (version "20170329-3.1")
+ (version "20180525-3.1")
(source
(origin
(method url-fetch)
@@ -36,7 +36,7 @@
"/" name "-" version ".tar.gz"))
(sha256
(base32
- "1gnlgl0x8g9ky59s70nriy5gv47676d1s4ypvbv8y11apl7xkwli"))))
+ "05iicng4kag5hxdc7adbyj1gm3qbmvcc33m9cyx5gys0s67yl6y4"))))
(build-system gnu-build-system)
(inputs
`(("ncurses" ,ncurses)))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index d2e76b17fd..8c240b5990 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -295,6 +295,12 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
(or (%current-target-system) (%current-system)))
((or "x86_64" "i386")
`(("gcc" ,gcc-7)))
+ ("arm64"
+ ;; Work around a binutils 2.30 bug where some kernel symbols would
+ ;; be incorrectly marked as relocatable:
+ ;; <https://sourceware.org/bugzilla/show_bug.cgi?id=22764>.
+ `(("ld-wrapper" ,(make-ld-wrapper "ld-wrapper"
+ #:binutils binutils/fixed))))
(_
'()))
,@(match (and configuration-file
@@ -395,8 +401,8 @@ It has been modified to remove all non-free binary blobs.")
;; supports qemu "virt" machine and possibly a large number of ARM boards.
;; See : https://wiki.debian.org/DebianKernel/ARMMP.
-(define %linux-libre-version "4.17")
-(define %linux-libre-hash "0abbqrq96kn97jr02mf4ahqg7hl9vhq95c1l2z0s7jqrmhv1n8pb")
+(define %linux-libre-version "4.17.2")
+(define %linux-libre-hash "0xkswi9vhbzi466pqvyli7glkvdyxhphn8yjg69kpw37rpw8ix5l")
(define-public linux-libre
(make-linux-libre %linux-libre-version
@@ -404,8 +410,8 @@ It has been modified to remove all non-free binary blobs.")
%linux-compatible-systems
#:configuration-file kernel-config))
-(define %linux-libre-4.14-version "4.14.48")
-(define %linux-libre-4.14-hash "011lkq30gpvbgvg2p1nw2kqkig9a3qridy678rkx3fpah0ya4rhd")
+(define %linux-libre-4.14-version "4.14.50")
+(define %linux-libre-4.14-hash "19k7s33dyykm2vh1zpxxh3qrbjcx2p2md2r8s8z5mbv8yaldgvmj")
(define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version
@@ -414,14 +420,14 @@ It has been modified to remove all non-free binary blobs.")
#:configuration-file kernel-config))
(define-public linux-libre-4.9
- (make-linux-libre "4.9.107"
- "0560sy53l42wi1jidwdbhjaa9p6kf46snk2hfcjk9f0ciiiiz5gi"
+ (make-linux-libre "4.9.109"
+ "1i27fmlr0b05n4qri2vxdbg0qddwk1clyaramwbl3w0w10k63qkc"
%intel-compatible-systems
#:configuration-file kernel-config))
(define-public linux-libre-4.4
- (make-linux-libre "4.4.136"
- "0bc278l9arl8bb2gvcg02x57h66b4r8iaan3r4kzqbmkfspkl2gi"
+ (make-linux-libre "4.4.138"
+ "1030ra5gn24qmx8lsnhr6kfnfm60avzs23r81dl7mvzr5dci8vsl"
%intel-compatible-systems
#:configuration-file kernel-config))
@@ -914,16 +920,15 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
(define-public strace
(package
(name "strace")
- (version "4.22")
+ (version "4.23")
(home-page "https://strace.io")
(source (origin
(method url-fetch)
(uri (string-append home-page "/files/" version
"/strace-" version ".tar.xz"))
- (patches (search-patches "strace-kernel-4.16.patch"))
(sha256
(base32
- "17dkpnsjxmys1ydidm9wcvc3wscsz44fmlxw3dclspn9cj9d1306"))))
+ "1bcsq2gbpcb81ayryvn56a6kjx42fc21la6qgds35n0xbybacq3q"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@@ -2995,7 +3000,10 @@ arrays when needed.")
(let ((lvm2 (assoc-ref inputs "lvm2"))
(udev (assoc-ref inputs "udev")))
(substitute* "Makefile.inc"
- (("\\$\\(prefix\\)/usr") "$(prefix)"))
+ (("\\$\\(prefix\\)/usr") "$(prefix)")
+ ;; Do not save timestamp to avoid gzip "timestamp
+ ;; out-of-range" warnings.
+ (("gzip -9") "gzip -9n"))
(substitute* '("kpartx/Makefile" "libmultipath/Makefile")
(("/usr/include/libdevmapper.h")
(string-append lvm2 "/include/libdevmapper.h"))
@@ -3364,7 +3372,7 @@ disks and SD cards. This package provides the userland utilities.")
(package
(inherit f2fs-tools-1.7)
(name "f2fs-tools")
- (version "1.8.0")
+ (version "1.10.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -3372,7 +3380,7 @@ disks and SD cards. This package provides the userland utilities.")
"/f2fs-tools.git/snapshot/" name "-" version ".tar.gz"))
(sha256
(base32
- "1bir9ladb58ijlcvrjrq1fb1xv5ys50zdjaq0yzliib0apsyrnyl"))))
+ "05ikaim0qq3dx9x3sp43ralwz43r3b0viv62n99kabp0vf3b0hg8"))))
(inputs
`(("libuuid" ,util-linux)))))
@@ -4033,26 +4041,27 @@ monitoring tools for Linux. These include @code{mpstat}, @code{iostat},
(define-public light
(package
(name "light")
- (version "1.0")
+ (version "1.1")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/haikarainen/" name
- "/archive/v" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/haikarainen/light")
+ (commit version)))
(sha256
(base32
- "0r5gn6c0jcxknzybl6059dplxv46dpahchqq4gymrs7z8bp0hilp"))
- (file-name (string-append name "-" version ".tar.gz"))))
+ "1qra8yzsga29bxlvq63v1db071a1xdji7i60p4kzrciidm1206js"))))
(build-system gnu-build-system)
(arguments
- '(#:tests? #f ; no tests
+ '(#:tests? #f ; no tests
#:make-flags (list "CC=gcc"
(string-append "PREFIX=" %output))
#:phases
(modify-phases %standard-phases
- (delete 'configure)
+ (delete 'configure) ; no configure script
(add-after 'unpack 'patch-makefile
(lambda _
- (substitute* "Makefile" (("chown") "#")))))))
+ (substitute* "Makefile" (("chown") "#"))
+ #t)))))
(native-inputs
`(("help2man" ,help2man)))
(home-page "https://haikarainen.github.io/light")
@@ -4405,14 +4414,14 @@ available in the kernel Linux.")
(define-public cpuid
(package
(name "cpuid")
- (version "20180419")
+ (version "20180519")
(source (origin
(method url-fetch)
(uri (string-append "http://www.etallen.com/cpuid/cpuid-"
version ".src.tar.gz"))
(sha256
(base32
- "0cnxj72pjalsszhn862r6shw64zbrkw0k3mm36fn93bivswjnj12"))))
+ "16pzwyifc9glpk1hm6bqb5d1a7cw0qnqiamh5sbvqg7j6sz26y4n"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags '("CC=gcc")
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 15e4d45749..59e38bb88e 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -47,6 +47,7 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages image)
#:use-module (gnu packages maths)
+ #:use-module (gnu packages mpi)
#:use-module (gnu packages ocaml)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@@ -786,3 +787,78 @@ main intended application of Autograd is gradient-based optimization.")
(define-public python2-autograd
(package-with-python2 python-autograd))
+
+(define-public lightgbm
+ (package
+ (name "lightgbm")
+ (version "2.0.12")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/Microsoft/LightGBM/archive/v"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "132zf0yk0545mg72hyzxm102g3hpb6ixx9hnf8zd2k55gas6cjj1"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-nose" ,python-nose)))
+ (inputs
+ `(("openmpi" ,openmpi)))
+ (propagated-inputs
+ `(("python-numpy" ,python-numpy)
+ ("python-scipy" ,python-scipy)))
+ (arguments
+ `(#:configure-flags
+ '("-DUSE_MPI=ON")
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key outputs #:allow-other-keys)
+ (with-directory-excursion ,(string-append "../LightGBM-" version)
+ (invoke "pytest" "tests/c_api_test/test_.py")))))))
+ (build-system cmake-build-system)
+ (home-page "https://github.com/Microsoft/LightGBM")
+ (synopsis "Gradient boosting framework based on decision tree algorithms")
+ (description "LightGBM is a gradient boosting framework that uses tree
+based learning algorithms. It is designed to be distributed and efficient with
+the following advantages:
+
+@itemize
+@item Faster training speed and higher efficiency
+@item Lower memory usage
+@item Better accuracy
+@item Parallel and GPU learning supported (not enabled in this package)
+@item Capable of handling large-scale data
+@end itemize\n")
+ (license license:expat)))
+
+(define-public vowpal-wabbit
+ ;; Language bindings not included.
+ (package
+ (name "vowpal-wabbit")
+ (version "8.5.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/JohnLangford/vowpal_wabbit/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0clp2kb7rk5sckhllxjr5a651awf4s8dgzg4659yh4hf5cqnf0gr"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (inputs
+ `(("boost" ,boost)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:configure-flags
+ (list (string-append "--with-boost="
+ (assoc-ref %build-inputs "boost")))))
+ (build-system gnu-build-system)
+ (home-page "https://github.com/JohnLangford/vowpal_wabbit")
+ (synopsis "Fast machine learning library for online learning")
+ (description "Vowpal Wabbit is a machine learning system with techniques
+such as online, hashing, allreduce, reductions, learning2search, active, and
+interactive learning.")
+ (license license:bsd-3)))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 57edc6f535..77e81acff4 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -491,7 +491,7 @@ and corrections. It is based on a Bayesian filter.")
(define-public offlineimap
(package
(name "offlineimap")
- (version "7.2.0")
+ (version "7.2.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/OfflineIMAP/offlineimap/"
@@ -499,7 +499,7 @@ and corrections. It is based on a Bayesian filter.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1i7pzm1vrj98jcyn1ygsg1yp0gqlsssnc25451icvivysvdwdj5n"))))
+ "1022xf2w1xax4vx4kzhlfbhaf0b72wkpvrcscvs4q8qk2ja68h8x"))))
(build-system python-build-system)
(native-inputs
`(("asciidoc" ,asciidoc)))
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 2111cd1b7b..a644468627 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -294,14 +294,14 @@ semiconductors.")
(define-public gsl
(package
(name "gsl")
- (version "2.4")
+ (version "2.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gsl/gsl-"
version ".tar.gz"))
(sha256
(base32
- "16yfs5n444s03np1naj6yp1fsysd42kdscxzkg0k2yvfjixx0ijd"))
+ "1395y9hlhqadn5g9j8q22224fds5sd92jxi9czfavjj24myasq04"))
(patches (search-patches "gsl-test-i686.patch"))))
(build-system gnu-build-system)
(arguments
@@ -3372,7 +3372,8 @@ in finite element programs.")
version "-src.zip"))
(sha256
(base32
- "022w8hph7bli5zbpnk3z1qh1c2sl5hm8fw2ccim651ynn0hr7fyz"))))
+ "022w8hph7bli5zbpnk3z1qh1c2sl5hm8fw2ccim651ynn0hr7fyz"))
+ (patches (search-patches "flann-cmake-3.11.patch"))))
(build-system cmake-build-system)
(outputs '("out"
"octave")) ;46 MiB .mex file that pulls Octave
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index 473847c044..070bd7131c 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -24,7 +24,54 @@
#:use-module (guix build-system ant)
#:use-module (gnu packages)
#:use-module (gnu packages compression)
- #:use-module (gnu packages java))
+ #:use-module (gnu packages java)
+ #:use-module (gnu packages web)
+ #:use-module (gnu packages xml))
+
+(define-public java-plexus-component-metadata
+ (package
+ (inherit java-plexus-container-default)
+ (name "java-plexus-component-metadata")
+ (arguments
+ `(#:jar-name "plexus-component-metadata.jar"
+ #:source-dir "src/main/java"
+ #:test-dir "src/test"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "plexus-component-metadata")
+ #t))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (copy-recursively "src/main/resources"
+ "build/classes/")
+ #t)))))
+ (inputs
+ `(("java-plexus-container-default" ,java-plexus-container-default)
+ ("java-plexu-component-annotations" ,java-plexus-component-annotations)
+ ("java-plexus-utils" ,java-plexus-utils)
+ ("java-plexus-cli" ,java-plexus-cli)
+ ("java-plexus-classworlds" ,java-plexus-classworlds)
+ ("maven-plugin-api" ,maven-plugin-api)
+ ("maven-plugin-annotations" ,maven-plugin-annotations)
+ ("maven-core-bootstrap" ,maven-core-bootstrap)
+ ("maven-model" ,maven-model)
+ ("java-commons-cli" ,java-commons-cli)
+ ("java-qdox" ,java-qdox)
+ ("java-jdom2" ,java-jdom2)
+ ("java-asm" ,java-asm)))
+ (native-inputs
+ `(("java-junit" ,java-junit)
+ ("java-guava" ,java-guava)
+ ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)))
+ (synopsis "Inversion-of-control container for Maven")
+ (description "The Plexus project provides a full software stack for creating
+and executing software projects. Based on the Plexus container, the
+applications can utilise component-oriented programming to build modular,
+reusable components that can easily be assembled and reused. This package
+provides the Maven plugin generating the component metadata.")))
(define-public maven-resolver-api
(package
@@ -190,6 +237,89 @@ for repositories using URI-based layouts.")))
("java-hamcrest-core" ,java-hamcrest-core)
("maven-resolver-test-util" ,maven-resolver-test-util)))))
+(define-public maven-resolver-transport-wagon
+ (package
+ (inherit maven-resolver-api)
+ (name "maven-resolver-transport-wagon")
+ (arguments
+ `(#:jar-name "maven-resolver-transport-wagon.jar"
+ #:source-dir "maven-resolver-transport-wagon/src/main/java"
+ #:test-dir "maven-resolver-transport-wagon/src/test"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'generate-sisu
+ (lambda _
+ (mkdir-p "build/classes/META-INF/sisu")
+ (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
+ (lambda _
+ (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
+ #t))
+ (add-before 'build 'generate-components.xml
+ (lambda _
+ (mkdir-p "build/classes/META-INF/plexus")
+ (with-output-to-file "build/classes/META-INF/plexus/components.xml"
+ (lambda _
+ (display
+ (string-append
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
+<component-set>
+ <components>
+ <component>
+ <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>
+ <role-hint>plexus</role-hint>
+ <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>
+ <description />
+ <isolated-realm>false</isolated-realm>
+ <requirements>
+ <requirement>
+ <role>org.codehaus.plexus.PlexusContainer</role>
+ <role-hint />
+ <field-name>container</field-name>
+ </requirement>
+ </requirements>
+ </component>
+ <component>
+ <role>org.eclipse.aether.transport.wagon.WagonProvider</role>
+ <role-hint>plexus</role-hint>
+ <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>
+ <description />
+ <isolated-realm>false</isolated-realm>
+ <requirements>
+ <requirement>
+ <role>org.codehaus.plexus.PlexusContainer</role>
+ <role-hint />
+ <field-name>container</field-name>
+ </requirement>
+ </requirements>
+ </component>
+ </components>
+</component-set>\n"))))
+ #t)))))
+ (inputs
+ `(("maven-resolver-api" ,maven-resolver-api)
+ ("maven-resolver-spi" ,maven-resolver-spi)
+ ("maven-resolver-util" ,maven-resolver-util)
+ ("java-javax-inject" ,java-javax-inject)
+ ("mavne-wagon-provider-api" ,maven-wagon-provider-api)
+ ("java-plexus-component-annotation" ,java-plexus-component-annotations)
+ ("java-plexus-classworld" ,java-plexus-classworlds)
+ ("java-plexus-plexus-util" ,java-plexus-utils)
+ ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
+ ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
+ (native-inputs
+ `(("java-junit" ,java-junit)
+ ("java-hamcrest-core" ,java-hamcrest-core)
+ ("maven-resolver-test-util" ,maven-resolver-test-util)
+ ("java-guava" ,java-guava)
+ ("java-cglib" ,java-cglib)
+ ("java-asm" ,java-asm)
+ ("java-aopalliance" ,java-aopalliance)
+ ("java-guice" ,java-guice)))
+ (synopsis "Transport implementation for Maven")
+ (description "This package contains a transport implementation based on
+Maven Wagon, for use in Maven.")))
+
(define-public maven-shared-utils
(package
(name "maven-shared-utils")
@@ -230,6 +360,317 @@ plexus-utils in Maven. It is not a 100% API compatible replacement but a
replacement with improvements.")
(license license:asl2.0)))
+(define-public maven-plugin-annotations
+ (package
+ (name "maven-plugin-annotations")
+ (version "3.5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://archive.apache.org/dist/maven/"
+ "plugin-tools/maven-plugin-tools-" version
+ "-source-release.zip"))
+ (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "maven-plugin-annotations.jar"
+ #:source-dir "maven-plugin-annotations/src/main/java"
+ #:tests? #f))
+ (inputs
+ `(("maven-artifact" ,maven-artifact)))
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
+ (synopsis "Java 5 annotations to use in Mojos")
+ (description "This package contains Java 5 annotations for use in Mojos.")
+ (license license:asl2.0)))
+
+(define-public maven-wagon-provider-api
+ (package
+ (name "maven-wagon-provider-api")
+ (version "3.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
+ "wagon-" version "-source-release.zip"))
+ (sha256 (base32 "1qb0q4m7vmf290xp3fnfdi3pwl3hkskia5g3z2v82q1ch3y2knqv"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "maven-wagon-provider-api.jar"
+ #:source-dir "wagon-provider-api/src/main/java"
+ #:test-dir "wagon-provider-api/src/test"))
+ (inputs
+ `(("java-plexus-utils" ,java-plexus-utils)))
+ (native-inputs
+ `(("unzip" ,unzip)
+ ("java-junit" ,java-junit)
+ ("java-easymock" ,java-easymock)))
+ (home-page "https://maven.apache.org/wagon")
+ (synopsis "Transport abstraction for Maven")
+ (description "Maven Wagon is a transport abstraction that is used in Maven's
+artifact and repository handling code.")
+ (license license:asl2.0)))
+
+(define-public maven-wagon-provider-test
+ (package
+ (inherit maven-wagon-provider-api)
+ (name "maven-wagon-provider-test")
+ (arguments
+ `(#:jar-name "maven-wagon-provider-test.jar"
+ #:source-dir "wagon-provider-test/src/main/java"
+ #:tests? #f; no tests
+ #:jdk ,icedtea-8))
+ (inputs
+ `(("java-plexus-utils" ,java-plexus-utils)
+ ("java-plexus-container-default" ,java-plexus-container-default)
+ ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
+ ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
+ ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
+ ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
+ ("java-slf4j-api" ,java-slf4j-api)
+ ("java-tomcat" ,java-tomcat)
+ ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
+ (synopsis "Test classes from maven-wagon")
+ (description "Maven Wagon is a transport abstraction that is used in Maven's
+artifact and repository handling code. This package contains common test
+classes used in multiple maven-wagon components.")))
+
+(define-public maven-wagon-file
+ (package
+ (inherit maven-wagon-provider-api)
+ (name "maven-wagon-file")
+ (arguments
+ `(#:jar-name "maven-wagon-file.jar"
+ #:source-dir "wagon-providers/wagon-file/src/main/java"
+ #:test-dir "wagon-providers/wagon-file/src/test"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'fix-paths
+ (lambda _
+ ;; Tests assume they are run by maven, which copies test resources
+ ;; to target. Our ant-build-system does the same, but with the
+ ;; build directory.
+ (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
+ (("target") "build"))
+ #t))
+ (add-after 'build 'generate-metadata
+ (lambda _
+ (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
+ "--source" "wagon-providers/wagon-file/src/main/java"
+ "--output" "build/classes/META-INF/plexus/components.xml"
+ "--classes" "build/classes"
+ "--descriptors" "build/classes/META-INF")
+ #t))
+ (add-after 'generate-metadata 'rebuild
+ (lambda _
+ (invoke "ant" "jar")
+ #t)))))
+ (inputs
+ `(("java-plexus-utils" ,java-plexus-utils)
+ ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
+ (native-inputs
+ `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
+ ("java-plexus-component-metadata" ,java-plexus-component-metadata)
+ ("java-plexus-component-annotations" ,java-plexus-component-annotations)
+ ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
+ ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
+ ("java-plexus-classworlds" ,java-plexus-classworlds)
+ ("java-guava" ,java-guava)
+ ("java-guice" ,java-guice)
+ ("java-javax-inject" ,java-javax-inject)
+ ("java-cglib" ,java-cglib)
+ ("java-slf4j-api" ,java-slf4j-api)
+ ("java-plexus-utils" ,java-plexus-utils)
+ ("java-plexus-cli" ,java-plexus-cli)
+ ("maven-plugin-api" ,maven-plugin-api)
+ ("maven-plugin-annotations" ,maven-plugin-annotations)
+ ("maven-core" ,maven-core)
+ ("maven-model" ,maven-model)
+ ("java-commons-cli" ,java-commons-cli)
+ ("java-qdox" ,java-qdox)
+ ("java-jdom2" ,java-jdom2)
+ ("java-asm" ,java-asm)
+ ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
+ ,@(package-native-inputs maven-wagon-provider-api)))
+ (synopsis "Wagon provider that gets and puts artifacts using the file system")
+ (description "Maven Wagon is a transport abstraction that is used in Maven's
+artifact and repository handling code. It uses providers, that are tools to
+manage artifacts and deployment. This package contains the file provider which
+gets and puts artifacts using the file system.")))
+
+(define-public maven-wagon-tck-http
+ (package
+ (inherit maven-wagon-provider-api)
+ (name "maven-wagon-tck-http")
+ (arguments
+ `(#:jar-name "maven-wagon-tck-http.jar"
+ #:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
+ #:tests? #f; no tests
+ #:jdk ,icedtea-8))
+ (inputs
+ `(("java-plexus-util" ,java-plexus-utils)
+ ("maven-wagon-provider-api" ,maven-wagon-provider-api)
+ ("java-tomcat" ,java-tomcat)
+ ("java-slf4j-api" ,java-slf4j-api)
+ ("java-commons-codec" ,java-commons-codec)
+ ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
+ ("java-plexus-classworlds" ,java-plexus-classworlds)
+ ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
+ ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
+ ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
+ ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
+ ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))
+ (synopsis "Wagon HTTP Test Compatibility Kit")
+ (description "Maven Wagon is a transport abstraction that is used in Maven's
+artifact and repository handling code. This package contains the HTTP
+Test Compatibility Kit.")))
+
+(define-public maven-wagon-http-shared
+ (package
+ (inherit maven-wagon-provider-api)
+ (name "maven-wagon-http-shared")
+ (arguments
+ `(#:jar-name "maven-wagon-http-shared.jar"
+ #:source-dir "wagon-providers/wagon-http-shared/src/main/java"
+ #:test-dir "wagon-providers/wagon-http-shared/src/test"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'build 'generate-metadata
+ (lambda _
+ (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
+ "--source" "wagon-providers/wagon-http-shared/src/main/java"
+ "--output" "build/classes/META-INF/plexus/components.xml"
+ "--classes" "build/classes"
+ "--descriptors" "build/classes/META-INF")
+ #t))
+ (add-after 'generate-metadata 'rebuild
+ (lambda _
+ (invoke "ant" "jar")
+ #t)))))
+ (inputs
+ `(("java-plexus-utils" ,java-plexus-utils)
+ ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
+ ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
+ ("java-commons-io" ,java-commons-io)
+ ("java-jsoup" ,java-jsoup)
+ ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
+ (native-inputs
+ `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
+ ("java-plexus-component-metadata" ,java-plexus-component-metadata)
+ ("java-plexus-component-annotations" ,java-plexus-component-annotations)
+ ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
+ ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
+ ("java-plexus-classworlds" ,java-plexus-classworlds)
+ ("java-guava" ,java-guava)
+ ("java-guice" ,java-guice)
+ ("java-javax-inject" ,java-javax-inject)
+ ("java-cglib" ,java-cglib)
+ ("java-slf4j-api" ,java-slf4j-api)
+ ("java-plexus-utils" ,java-plexus-utils)
+ ("java-plexus-cli" ,java-plexus-cli)
+ ("maven-plugin-api" ,maven-plugin-api)
+ ("maven-plugin-annotations" ,maven-plugin-annotations)
+ ("maven-core" ,maven-core)
+ ("maven-model" ,maven-model)
+ ("java-commons-cli" ,java-commons-cli)
+ ("java-qdox" ,java-qdox)
+ ("java-jdom2" ,java-jdom2)
+ ("java-asm" ,java-asm)
+ ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
+ ,@(package-native-inputs maven-wagon-provider-api)))
+ (synopsis "Shared Library for wagon providers supporting HTTP.")
+ (description "Maven Wagon is a transport abstraction that is used in Maven's
+artifact and repository handling code. It uses providers, that are tools to
+manage artifacts and deployment. This package contains a shared library for
+wagon providers supporting HTTP.")))
+
+(define-public maven-wagon-http
+ (package
+ (inherit maven-wagon-provider-api)
+ (name "maven-wagon-http")
+ (arguments
+ `(#:jar-name "maven-wagon-http.jar"
+ #:source-dir "wagon-providers/wagon-http/src/main/java"
+ #:test-dir "wagon-providers/wagon-http/src/test"
+ #:test-exclude (list
+ "**/Abstract*.java"
+ ;; FIXME: javax.net.ssl.SSLHandshakeException:
+ ;; sun.security.validator.ValidatorException:
+ ;; PKIX path building failed:
+ ;; sun.security.provider.certpath.SunCertPathBuilderException:
+ ;; unable to find valid certification path to requested target
+ "**/HttpsWagonPreemptiveTest.java"
+ "**/HttpsWagonTest.java"
+ ;; Injection errors
+ "**/TckTest.java")
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'copy-resources
+ (lambda _
+ (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
+ "build/classes/META-INF/plexus")
+ #t))
+ (add-before 'check 'fix-resource-path
+ (lambda _
+ (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
+ "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
+ (("src/test") "wagon-providers/wagon-http/src/test"))
+ #t)))))
+ (inputs
+ `(("java-plexus-utils" ,java-plexus-utils)
+ ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
+ ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
+ ("maven-wagon-http-shared" ,maven-wagon-http-shared)
+ ("maven-wagon-tck-http" ,maven-wagon-tck-http)
+ ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
+ (native-inputs
+ `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
+ ("java-plexus-component-metadata" ,java-plexus-component-metadata)
+ ("java-plexus-component-annotations" ,java-plexus-component-annotations)
+ ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
+ ("java-plexus-container-default" ,java-plexus-container-default)
+ ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
+ ("java-plexus-classworlds" ,java-plexus-classworlds)
+ ("java-guava" ,java-guava)
+ ("java-guice" ,java-guice)
+ ("java-inject" ,java-javax-inject)
+ ("java-cglib" ,java-cglib)
+ ("java-slf4j-api" ,java-slf4j-api)
+ ("java-plexus-utils" ,java-plexus-utils)
+ ("java-plexus-cli" ,java-plexus-cli)
+ ("maven-plugin-api" ,maven-plugin-api)
+ ("maven-plugin-annotations" ,maven-plugin-annotations)
+ ("maven-core" ,maven-core)
+ ("maven-model" ,maven-model)
+ ("java-commons-cli" ,java-commons-cli)
+ ("java-qdox" ,java-qdox)
+ ("java-jdom2" ,java-jdom2)
+ ("java-asm" ,java-asm)
+ ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
+ ("java-tomcat" ,java-tomcat)
+ ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
+ ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
+ ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
+ ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
+ ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
+ ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
+ ("java-hamcrest-core" ,java-hamcrest-core)
+ ("java-commons-logging-minimal" ,java-commons-logging-minimal)
+ ("java-commons-codec" ,java-commons-codec)
+ ("java-commons-io" ,java-commons-io)
+ ("java-jsoup" ,java-jsoup)
+ ("java-slf4j-simple" ,java-slf4j-simple)
+ ,@(package-native-inputs maven-wagon-provider-api)))
+ (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)")
+ (description "Maven Wagon is a transport abstraction that is used in Maven's
+artifact and repository handling code. It uses providers, that are tools to
+manage artifacts and deployment. This package contains a Wagon provider that
+gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
+
(define-public maven-artifact
(package
(name "maven-artifact")
@@ -562,3 +1003,508 @@ so really just plain objects.")))
("java-guava" ,java-guava)
("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
("java-javax-inject" ,java-javax-inject)))))
+
+(define-public maven-plugin-api
+ (package
+ (inherit maven-artifact)
+ (name "maven-plugin-api")
+ (arguments
+ `(#:jar-name "maven-plugin-api.jar"
+ #:source-dir "maven-plugin-api/src/main/java"
+ #:jdk ,icedtea-8
+ #:test-dir "maven-plugin-api/src/test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'generate-models
+ (lambda* (#:key inputs #:allow-other-keys)
+ (define (modello-single-mode file version mode)
+ (invoke "java" "org.codehaus.modello.ModelloCli"
+ file mode "maven-plugin-api/src/main/java" version
+ "false" "true"))
+ (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo"))
+ (modello-single-mode file "1.0.0" "java")
+ (modello-single-mode file "1.0.0" "xpp3-reader")
+ (modello-single-mode file "1.0.0" "xpp3-writer"))
+ #t)))))
+ (inputs
+ `(("maven-artifact" ,maven-artifact)
+ ("maven-model" ,maven-model)
+ ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
+ ("java-plexus-component-annotations" ,java-plexus-component-annotations)
+ ("guice" ,java-guice)
+ ("java-cglib" ,java-cglib)
+ ("java-asm" ,java-asm)
+ ("sisu-inject" ,java-eclipse-sisu-inject)
+ ("javax-inject" ,java-javax-inject)
+ ("utils" ,java-plexus-utils)))
+ (native-inputs
+ `(("modello" ,java-modello-core)
+ ;; for modello:
+ ("classworlds" ,java-plexus-classworlds)
+ ("guava" ,java-guava)
+ ("xbean" ,java-geronimo-xbean-reflect)
+ ("build-api" ,java-sisu-build-api)
+ ;; modello plugins:
+ ("java" ,java-modello-plugins-java)
+ ("xml" ,java-modello-plugins-xml)
+ ("xpp3" ,java-modello-plugins-xpp3)
+ ;; for tests
+ ("java-junit" ,java-junit)))
+ (description "Apache Maven is a software project management and comprehension
+tool. This package contains strictly the API for plugins -- composed of goals
+implemented by Mojos -- development.
+
+A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor,
+generally generated from plugin sources using maven-plugin-plugin.")))
+
+(define maven-core-bootstrap
+ (package
+ (inherit maven-artifact)
+ (name "maven-core")
+ (arguments
+ `(#:jar-name "maven-core.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ ;; Tests need maven-compat, which requires maven-core
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ ;; Required for generating components.xml in maven-core
+ (chdir "maven-core")
+ #t))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (mkdir-p "build/classes/")
+ (copy-recursively "src/main/resources" "build/classes")
+ #t))
+ (add-before 'build 'generate-sisu-named
+ (lambda _
+ (mkdir-p "build/classes/META-INF/sisu")
+ (chmod "../sisu.sh" #o755)
+ (invoke "../sisu.sh" "src/main/java"
+ "build/classes/META-INF/sisu/javax.inject.Named")
+ #t))
+ (add-before 'build 'generate-models
+ (lambda* (#:key inputs #:allow-other-keys)
+ (define (modello-single-mode file version mode)
+ (invoke "java" "org.codehaus.modello.ModelloCli"
+ file mode "src/main/java" version
+ "false" "true"))
+ (let ((file "src/main/mdo/toolchains.mdo"))
+ (modello-single-mode file "1.1.0" "java")
+ (modello-single-mode file "1.1.0" "xpp3-reader")
+ (modello-single-mode file "1.1.0" "xpp3-writer"))
+ #t)))))
+ (inputs
+ `(("maven-artifact" ,maven-artifact)
+ ("maven-resolver-provider" ,maven-resolver-provider)
+ ("maven-builder-support" ,maven-builder-support)
+ ("maven-model" ,maven-model)
+ ("maven-model-builder" ,maven-model-builder)
+ ("maven-settings" ,maven-settings)
+ ("maven-settings-builder" ,maven-settings-builder)
+ ("maven-plugin-api" ,maven-plugin-api)
+ ("maven-repository-metadata" ,maven-repository-metadata)
+ ("maven-shared-utils" ,maven-shared-utils)
+ ("java-plexus-component-annotations" ,java-plexus-component-annotations)
+ ("java-plexus-utils" ,java-plexus-utils)
+ ("java-commons-lang3" ,java-commons-lang3)
+ ("java-guava" ,java-guava)
+ ("java-guice" ,java-guice)
+ ("maven-resolver-api" ,maven-resolver-api)
+ ("maven-resolver-spi" ,maven-resolver-spi)
+ ("maven-resolver-util" ,maven-resolver-util)
+ ("maven-resolver-impl" ,maven-resolver-impl)
+ ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
+ ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
+ ("java-javax-inject" ,java-javax-inject)
+ ("java-plexus-classworld" ,java-plexus-classworlds)))
+ (native-inputs
+ `(("java-modello-core" ,java-modello-core)
+ ("java-cglib" ,java-cglib)
+ ("java-asm" ,java-asm)
+ ("java-plexus-classworlds" ,java-plexus-classworlds)
+ ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
+ ("java-sisu-build-api" ,java-sisu-build-api)
+ ("java-modello-plugins-java" ,java-modello-plugins-java)
+ ("java-modello-plugins-xml" ,java-modello-plugins-xml)
+ ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
+ ;; tests
+ ("java-junit" ,java-junit)
+ ("java-mockito-1" ,java-mockito-1)
+ ("java-commons-jxpath" ,java-commons-jxpath)))
+ (description "Apache Maven is a software project management and comprehension
+tool. This package contains the maven core classes managing the whole build
+process.")))
+
+(define-public maven-core
+ (package
+ (inherit maven-core-bootstrap)
+ (arguments
+ (substitute-keyword-arguments (package-arguments maven-core-bootstrap)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-before 'build 'modify-metainf
+ (lambda _
+ (substitute* "build.xml"
+ (("message=\"\"") "message=\"Implementation-Version: 3.5.3\n\""))
+ #t))
+ (add-before 'build 'add-maven-files
+ (lambda _
+ (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
+ (copy-file "pom.xml"
+ "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
+ (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
+ (lambda _
+ (format #t "version=~a~%
+groupId=org.apache.maven~%
+artifactId=maven-core" ,(package-version maven-core-bootstrap))))
+ #t))
+ (add-after 'build 'generate-metadata
+ (lambda _
+ (define (components file)
+ (let ((sxml (with-input-from-file file
+ (lambda _ (xml->sxml (current-input-port)
+ #:trim-whitespace? #t)))))
+ ;; Select the list of <component>s inside the <component-set>
+ ;; and <components>.
+ ((@ (ice-9 match) match) sxml
+ (('*TOP*
+ ('*PI* foo ...)
+ ('component-set
+ ('components x ...))) x))))
+ (use-modules (sxml simple))
+ (delete-file "build/classes/META-INF/plexus/components.xml")
+ (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
+ "--source" "build/classes/META-INF/plexus"
+ "--output" "build/classes/META-INF/plexus/components.t.xml"
+ "--classes" "build/classes"
+ "--descriptors" "build/classes")
+ ;; Now we merge all other components from hand-written xml
+ (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
+ (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
+ (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
+ (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
+ (with-output-to-file "build/classes/META-INF/plexus/components.xml"
+ (lambda _
+ (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
+ (sxml->xml
+ `(component-set
+ (components
+ ,@(append generated-xml components-xml
+ default-bindings-xml
+ artifact-handlers-xml)))))))
+ #t))
+ (add-after 'generate-metadata 'rebuild
+ (lambda _
+ (invoke "ant" "jar")
+ #t))))))
+ (native-inputs
+ `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
+ ("java-commons-cli" ,java-commons-cli)
+ ("java-plexus-cli" ,java-plexus-cli)
+ ("java-jdom2" ,java-jdom2)
+ ("java-qdox" ,java-qdox)
+ ("maven-core-boot" ,maven-core-bootstrap)
+ ,@(package-native-inputs maven-core-bootstrap)))))
+
+(define-public maven-embedder
+ (package
+ (inherit maven-artifact)
+ (name "maven-embedder")
+ (arguments
+ `(#:jar-name "maven-embedder.jar"
+ #:source-dir "maven-embedder/src/main/java"
+ #:test-dir "maven-embedder/src/test"
+ #:test-exclude (list "**/MavenCliTest.java")
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'generate-sisu-named
+ (lambda _
+ (mkdir-p "build/classes/META-INF/sisu")
+ (chmod "sisu.sh" #o755)
+ (invoke "./sisu.sh" "maven-embedder/src/main/java"
+ "build/classes/META-INF/sisu/javax.inject.Named")
+ #t))
+ (add-before 'build 'generate-models
+ (lambda* (#:key inputs #:allow-other-keys)
+ (define (modello-single-mode file version mode)
+ (invoke "java" "org.codehaus.modello.ModelloCli"
+ file mode "maven-embedder/src/main/java" version
+ "false" "true"))
+ (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
+ (modello-single-mode file "1.0.0" "java")
+ (modello-single-mode file "1.0.0" "xpp3-reader")
+ (modello-single-mode file "1.0.0" "xpp3-writer"))
+ #t))
+ (add-before 'check 'fix-test-paths
+ (lambda _
+ (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
+ (("target/test-classes") "build/test-classes"))
+ #t))
+ (add-before 'check 'fix-test-compilation
+ (lambda _
+ ;; Tests are in the java/ subdir. Other subdirectories contain
+ ;; additional test plugins, with duplicate classes, so we can't
+ ;; compile them. Also, they are meant to be built with maven, to
+ ;; test its build process.
+ (substitute* "build.xml"
+ (("srcdir=\"maven-embedder/src/test\"")
+ "srcdir=\"maven-embedder/src/test/java\""))
+ #t)))))
+ (inputs
+ `(("maven-core" ,maven-core)
+ ("maven-artifact" ,maven-artifact)
+ ("maven-plugin-api" ,maven-plugin-api)
+ ("maven-builder-support" ,maven-builder-support)
+ ("maven-model" ,maven-model)
+ ("maven-model-builder" ,maven-model-builder)
+ ("maven-settings" ,maven-settings)
+ ("maven-settings-builder" ,maven-settings-builder)
+ ("maven-shared-utils" ,maven-shared-utils)
+ ("java-plexus-classworlds" ,java-plexus-classworlds)
+ ("java-plexus-util" ,java-plexus-utils)
+ ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
+ ("java-plexus-cipher" ,java-plexus-cipher)
+ ("java-plexus-component-annotations" ,java-plexus-component-annotations)
+ ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
+ ("maven-resolevr-util" ,maven-resolver-util)
+ ("maven-resolevr-api" ,maven-resolver-api)
+ ("java-logback-core" ,java-logback-core)
+ ("java-logback-classic" ,java-logback-classic)
+ ("java-commons-cli" ,java-commons-cli)
+ ("java-commons-io" ,java-commons-io)
+ ("java-commons-lang3" ,java-commons-lang3)
+ ("java-guava" ,java-guava)
+ ("java-guice" ,java-guice)
+ ("java-javax-inject" ,java-javax-inject)
+ ("java-slf4j-api" ,java-slf4j-api)
+ ("java-slf4j-simple" ,java-slf4j-simple)))
+ (native-inputs
+ `(("java-modello-core" ,java-modello-core)
+ ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
+ ("java-sisu-build-api" ,java-sisu-build-api)
+ ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
+ ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
+ ("java-cglib" ,java-cglib)
+ ("java-asm" ,java-asm)
+ ("java-modello-plugins-java" ,java-modello-plugins-java)
+ ("java-modello-plugins-xml" ,java-modello-plugins-xml)
+ ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
+ ;; tests
+ ("java-junit" ,java-junit)
+ ("java-objenesis" ,java-objenesis)
+ ("java-mockito-1" ,java-mockito-1)
+ ("java-hamcrest-core" ,java-hamcrest-core)))
+ (description "Apache Maven is a software project management and comprehension
+tool. This package contains a Maven embeddable component, with CLI and
+logging support.")))
+
+(define-public maven-compat
+ (package
+ (inherit maven-artifact)
+ (name "maven-compat")
+ (arguments
+ `(#:jar-name "maven-compat.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ #:test-dir "src/test"
+ #:phases
+ (modify-phases %standard-phases
+ ;; Tests assume we're in this directory
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "maven-compat")
+ #t))
+ (add-before 'build 'generate-models
+ (lambda* (#:key inputs #:allow-other-keys)
+ (define (modello-single-mode file version mode)
+ (invoke "java" "org.codehaus.modello.ModelloCli"
+ file mode "src/main/java" version
+ "false" "true"))
+ (let ((file "src/main/mdo/profiles.mdo"))
+ (modello-single-mode file "1.0.0" "java")
+ (modello-single-mode file "1.0.0" "xpp3-reader")
+ (modello-single-mode file "1.0.0" "xpp3-writer"))
+ (let ((file "src/main/mdo/paramdoc.mdo"))
+ (modello-single-mode file "1.0.0" "java")
+ (modello-single-mode file "1.0.0" "xpp3-reader")
+ (modello-single-mode file "1.0.0" "xpp3-writer"))
+ #t))
+ (add-after 'build 'generate-metadata
+ (lambda _
+ (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
+ "--source" "src/main/java"
+ "--output" "build/classes/META-INF/plexus/components.xml"
+ "--classes" "build/classes"
+ "--descriptors" "build/classes/META-INF")
+ #t))
+ (add-before 'check 'build-tests
+ (lambda _
+ (invoke "ant" "compile-tests")
+ #t))
+ (add-after 'build-tests 'generate-test-metadata
+ (lambda _
+ (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
+ ":build/classes"
+ ":build/test-classes")
+ "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
+ "--source" "src/test/java"
+ "--output" "build/test-classes/META-INF/plexus/components.xml"
+ "--classes" "build/test-classes"
+ "--descriptors" "build/test-classes/META-INF")
+ #t))
+ (add-after 'generate-metadata 'rebuild
+ (lambda _
+ (invoke "ant" "jar")
+ #t)))))
+ (inputs
+ `(("maven-artifact" ,maven-artifact)
+ ("maven-repository-metadata" ,maven-repository-metadata)
+ ("maven-builder-support" ,maven-builder-support)
+ ("maven-model" ,maven-model)
+ ("maven-model-builder" ,maven-model-builder)
+ ("maven-settings" ,maven-settings)
+ ("maven-settings-builder" ,maven-settings-builder)
+ ("maven-core" ,maven-core)
+ ("maven-wagon-provider-api" ,maven-wagon-provider-api)
+ ("maven-wagon-file" ,maven-wagon-file)
+ ("maven-resolver-api" ,maven-resolver-api)
+ ("maven-resolver-util" ,maven-resolver-util)
+ ("maven-resolver-spi" ,maven-resolver-spi)
+ ("java-plexus-interpolation" ,java-plexus-interpolation)))
+ (native-inputs
+ `(("java-modello-core" ,java-modello-core)
+ ("java-plexus-utils" ,java-plexus-utils)
+ ("java-plexus-component-annotations" ,java-plexus-component-annotations)
+ ("java-plexus-classworlds" ,java-plexus-classworlds)
+ ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
+ ("java-sisu-build-api" ,java-sisu-build-api)
+ ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
+ ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
+ ("java-javax-inject" ,java-javax-inject)
+ ("java-guice" ,java-guice)
+ ("java-guava" ,java-guava)
+ ("java-cglib" ,java-cglib)
+ ("java-asm" ,java-asm)
+ ("java-modello-plugins-java" ,java-modello-plugins-java)
+ ("java-modello-plugins-xml" ,java-modello-plugins-xml)
+ ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
+ ;; metadata
+ ("java-plexus-component-metadata" ,java-plexus-component-metadata)
+ ("java-commons-cli" ,java-commons-cli)
+ ("java-plexus-cli" ,java-plexus-cli)
+ ("java-jdom2" ,java-jdom2)
+ ("maven-plugin-api" ,maven-plugin-api)
+ ("java-qdox" ,java-qdox)
+ ;; tests
+ ("java-plexus-cipher" ,java-plexus-cipher)
+ ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
+ ("java-jsr250", java-jsr250)
+ ("java-cdi-api" ,java-cdi-api)
+ ("java-junit" ,java-junit)
+ ("maven-resolver-impl" ,maven-resolver-impl)
+ ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
+ ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
+ ("java-commons-lang3" ,java-commons-lang3)
+ ("java-aop" ,java-aopalliance)
+ ("maven-resolver-provider" ,maven-resolver-provider)
+ ("java-slf4j-api" ,java-slf4j-api)
+ ("java-slf4j-simple" ,java-slf4j-simple)
+ ,@(package-inputs java-slf4j-api)))
+ (description "Apache Maven is a software project management and comprehension
+tool. This package contains Maven2 classes maintained as compatibility
+layer for plugins that need to keep Maven2 compatibility.")))
+
+(define-public maven
+ (package
+ (inherit maven-artifact)
+ (name "maven")
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'build
+ (lambda _
+ (substitute* "apache-maven/src/bin/mvn"
+ (("cygwin=false;")
+ (string-append
+ "CLASSPATH=" (getenv "CLASSPATH") "\n"
+ "cygwin=false;"))
+ (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
+ #t))
+ (delete 'check)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
+ (conf (string-append (assoc-ref outputs "out") "/conf/")))
+ (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
+ (for-each (lambda (file)
+ (install-file (string-append "apache-maven/src/bin/" file)
+ bin)
+ (chmod (string-append bin file) #o755))
+ '("mvn" "mvnDebug" "mvnyjp"))
+ (install-file "apache-maven/src/bin/m2.conf" bin)
+ (copy-recursively "apache-maven/src/conf" conf))
+ #t)))))
+ (inputs
+ `(("java-plexus-classworlds" ,java-plexus-classworlds)
+ ("maven-artifact" ,maven-artifact)
+ ("maven-embedder" ,maven-embedder)
+ ("maven-core" ,maven-core)
+ ("maven-compat" ,maven-compat)
+ ("maven-builder-support" ,maven-builder-support)
+ ("maven-model" ,maven-model)
+ ("maven-model-builder" ,maven-model-builder)
+ ("maven-settings" ,maven-settings)
+ ("maven-settings-builder" ,maven-settings-builder)
+ ("maven-plugin-api" ,maven-plugin-api)
+ ("maven-repository-metadata", maven-repository-metadata)
+ ("maven-shared-utils" ,maven-shared-utils)
+ ("maven-resolver-api" ,maven-resolver-api)
+ ("maven-resolver-spi" ,maven-resolver-spi)
+ ("maven-resolver-util" ,maven-resolver-util)
+ ("maven-resolver-impl" ,maven-resolver-impl)
+ ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
+ ("maven-resolver-provider" ,maven-resolver-provider)
+ ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
+ ("maven-wagon-provider-api" ,maven-wagon-provider-api)
+ ("maven-wagon-file" ,maven-wagon-file)
+ ("maven-wagon-http" ,maven-wagon-http)
+ ("java-commons-logging-minimal" ,java-commons-logging-minimal)
+ ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
+ ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
+ ("maven-wagon-http-shared" ,maven-wagon-http-shared)
+ ("maven-wagon-tck-http" ,maven-wagon-tck-http)
+ ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
+ ("java-guice" ,java-guice)
+ ("java-aopalliance" ,java-aopalliance)
+ ("java-cglib" ,java-cglib)
+ ("java-asm" ,java-asm)
+ ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
+ ("java-javax-inject" ,java-javax-inject)
+ ("java-plexus-component-annotations" ,java-plexus-component-annotations)
+ ("java-plexus-utils" ,java-plexus-utils)
+ ("java-plexus-interpolation" ,java-plexus-interpolation)
+ ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
+ ("java-plexus-cipher" ,java-plexus-cipher)
+ ("java-guava" ,java-guava)
+ ("java-jansi" ,java-jansi)
+ ("java-jsr250" ,java-jsr250)
+ ("java-cdi-api" ,java-cdi-api)
+ ("java-commons-cli" ,java-commons-cli)
+ ("java-commons-io" ,java-commons-io)
+ ("java-commons-lang3" ,java-commons-lang3)
+ ("java-slf4j-api" ,java-slf4j-api)
+ ;; TODO: replace with maven-slf4j-provider
+ ("java-slf4j-simple" ,java-slf4j-simple)))
+ (description "Apache Maven is a software project management and comprehension
+tool. Based on the concept of a project object model: builds, dependency
+management, documentation creation, site publication, and distribution
+publication are all controlled from the @file{pom.xml} declarative file. Maven
+can be extended by plugins to utilise a number of other development tools for
+reporting or the build process.")))
diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm
index a8a19854de..8183b2b827 100644
--- a/gnu/packages/mes.scm
+++ b/gnu/packages/mes.scm
@@ -73,7 +73,7 @@ extensive examples, including parsers for the Javascript and C99 languages.")
(let ((triplet "i686-unknown-linux-gnu"))
(package
(name "mes")
- (version "0.14")
+ (version "0.15")
(source (origin
(method url-fetch)
(uri (string-append "https://gitlab.com/janneke/mes"
@@ -81,7 +81,7 @@ extensive examples, including parsers for the Javascript and C99 languages.")
"/mes-" version ".tar.gz"))
(sha256
(base32
- "1i23jk61iibjza2s3lka56ry4ma424g2fyk8pjd5bd1dyjd0yrzf"))))
+ "0kj2ywgii1795gxj6k29zxa0848h2j0ihbwlgn55wdalswl165dq"))))
(build-system gnu-build-system)
(supported-systems '("i686-linux" "x86_64-linux"))
(propagated-inputs
@@ -98,9 +98,7 @@ extensive examples, including parsers for the Javascript and C99 languages.")
'())
("perl" ,perl))) ;build-aux/gitlog-to-changelog
(arguments
- `(#:make-flags (list
- (string-append "PREFIX=" (assoc-ref %outputs "out")))
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-before 'install 'generate-changelog
(lambda _
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 40e8f34443..5cdfec3431 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -1350,16 +1350,17 @@ networks.")
(define-public speedtest-cli
(package
(name "speedtest-cli")
- (version "2.0.0")
+ (version "2.0.2")
(source
(origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/sivel/speedtest-cli/archive/v" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sivel/speedtest-cli")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "16kcpba7nmszz2h0fq7qvv6src20syck2wlknaacg69kk88aybbk"))))
+ "0vv2z37g2kgm2dzkfa4bhri92hs0d1acxi8z66gznsl5148q7sdi"))))
(build-system python-build-system)
(home-page "https://github.com/sivel/speedtest-cli")
(synopsis "Internet bandwidth tester")
@@ -1901,3 +1902,36 @@ eight bytes) tools
low-level I/O programming that provides developers with a consistent
asynchronous model using a modern C++ approach.")
(license license:boost1.0)))
+
+(define-public shadowsocks
+ ;; There are some security fixes after the last release.
+ (let* ((commit "e332ec93e9c90f1cbee676b022bf2c5d5b7b1239")
+ (revision "0")
+ (version (git-version "2.8.2" revision commit)))
+ (package
+ (name "shadowsocks")
+ (version version)
+ (home-page "https://github.com/shadowsocks/shadowsocks")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit commit)))
+ (sha256
+ (base32
+ "1idd9b4f2pnhcpk1bh030hqg5zq25gkwxd53xi3c0cj242w7sp2j"))
+ (file-name (git-file-name name version))))
+ (build-system python-build-system)
+ (synopsis "Fast tunnel proxy that helps you bypass firewalls")
+ (description
+ "This package is a fast tunnel proxy that helps you bypass firewalls.
+
+Features:
+@itemize
+@item TCP & UDP support
+@item User management API
+@item TCP Fast Open
+@item Workers and graceful restart
+@item Destination IP blacklist
+@end itemize")
+ (license license:asl2.0))))
diff --git a/gnu/packages/nickle.scm b/gnu/packages/nickle.scm
index 4c2269635b..860c111f43 100644
--- a/gnu/packages/nickle.scm
+++ b/gnu/packages/nickle.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Nils Gillmann <ng0@n0.is>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,14 +28,14 @@
(define-public nickle
(package
(name "nickle")
- (version "2.77")
+ (version "2.81")
(source (origin
(method url-fetch)
(uri (string-append "https://nickle.org/release/nickle-"
version ".tar.gz"))
(sha256
(base32
- "0rhij7cn1zkn8wzxyjkamz9fs262zyg80p6v6i864hdalg4plpm3"))))
+ "1daqsflnqqgfkq6w6dknbm42avz70f5qxn7qidvgp472i4a37acr"))))
(build-system gnu-build-system)
(native-inputs
`(("readline" ,readline)))
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 18a848edc2..a9485a7e7a 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,9 +27,12 @@
(define-module (gnu packages package-management)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
+ #:use-module (gnu packages attr)
+ #:use-module (gnu packages avahi)
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages bdw-gc)
+ #:use-module (gnu packages bison)
#:use-module (gnu packages bootstrap) ;for 'bootstrap-guile-origin'
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
@@ -36,6 +40,7 @@
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
+ #:use-module (gnu packages docbook)
#:use-module (gnu packages file)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
@@ -208,12 +213,13 @@
(let* ((out (assoc-ref outputs "out"))
(guile (assoc-ref inputs "guile"))
(json (assoc-ref inputs "guile-json"))
+ (sqlite (assoc-ref inputs "guile-sqlite3"))
(git (assoc-ref inputs "guile-git"))
(bs (assoc-ref inputs
"guile-bytestructures"))
(ssh (assoc-ref inputs "guile-ssh"))
(gnutls (assoc-ref inputs "gnutls"))
- (deps (list json gnutls git bs ssh))
+ (deps (list json sqlite gnutls git bs ssh))
(effective
(read-line
(open-pipe* OPEN_READ
@@ -270,6 +276,7 @@
(propagated-inputs
`(("gnutls" ,gnutls)
("guile-json" ,guile-json)
+ ("guile-sqlite3" ,guile-sqlite3)
("guile-ssh" ,guile-ssh)
("guile-git" ,guile-git)))
@@ -287,23 +294,24 @@ the Nix package manager.")
;; Alias for backward compatibility.
(define-public guix-devel guix)
-(define-public guix-register
+(define-public guix-daemon
;; This package is for internal consumption: it allows us to quickly build
- ;; the 'guix-register' program, which is referred to by (guix config).
- ;; TODO: Remove this hack when 'guix-register' has been superseded by Scheme
- ;; code.
+ ;; the 'guix-daemon' program and use that in (guix self), used by 'guix
+ ;; pull'.
(package
(inherit guix)
(properties `((hidden? . #t)))
- (name "guix-register")
+ (name "guix-daemon")
;; Use a minimum set of dependencies.
(native-inputs
(fold alist-delete (package-native-inputs guix)
'("po4a" "graphviz" "help2man")))
- (propagated-inputs
+ (inputs
`(("gnutls" ,gnutls)
- ("guile-git" ,guile-git)))
+ ("guile-git" ,guile-git)
+ ,@(package-inputs guix)))
+ (propagated-inputs '())
(arguments
(substitute-keyword-arguments (package-arguments guix)
@@ -316,11 +324,21 @@ the Nix package manager.")
(invoke "make" "nix/libstore/schema.sql.hh")
(invoke "make" "-j" (number->string
(parallel-job-count))
- "guix-register")))
+ "guix-daemon")))
(delete 'copy-bootstrap-guile)
(replace 'install
- (lambda _
- (invoke "make" "install-sbinPROGRAMS")))
+ (lambda* (#:key outputs #:allow-other-keys)
+ (invoke "make" "install-binPROGRAMS"
+ "install-nodist_pkglibexecSCRIPTS")
+
+ ;; We need to tell 'guix-daemon' which 'guix' command to use.
+ ;; Here we use a questionable hack where we hard-code
+ ;; "~root/.config", which could be wrong (XXX).
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* (find-files (string-append out "/libexec"))
+ (("exec \".*/bin/guix\"")
+ "exec ~root/.config/current/bin/guix"))
+ #t)))
(delete 'wrap-program)))))))
(define-public guile2.0-guix
@@ -528,13 +546,13 @@ transactions from C or Python.")
(define-public diffoscope
(package
(name "diffoscope")
- (version "95")
+ (version "96")
(source (origin
(method url-fetch)
(uri (pypi-uri name version))
(sha256
(base32
- "0aksxxivxli6l3fylxgl771hw0h7l8x35l76cmj0d12zgx54w0a1"))))
+ "1x66f2x8miy3giff14higpcs70c0zb5d3gj6yn8ac6p183sngl72"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@@ -883,3 +901,57 @@ Microsoft cabinet (.@dfn{CAB}) files.")
and sign Windows@tie{}Installer (.@dfn{MSI}) files. It aims to be a solution
for packaging and deployment of cross-compiled Windows applications.")
(license license:lgpl2.1+)))
+
+(define-public libostree
+ (package
+ (name "libostree")
+ (version "2018.5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/ostreedev/ostree/releases/download/v"
+ version "/libostree-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0q82d6rvp119nx7ck7j63a591kz8vg7v465kf9ygh8kzg875l3xd"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'pre-check
+ (lambda _
+ ;; Don't try to use the non-existing '/var/tmp' as test
+ ;; directory.
+ (setenv "TEST_TMPDIR" (getenv "TMPDIR"))
+ #t)))
+ ;; XXX: fails with:
+ ;; tap-driver.sh: internal error getting exit status
+ ;; tap-driver.sh: fatal: I/O or internal error
+ #:tests? #f))
+ (native-inputs
+ `(("attr" ,attr) ; for tests
+ ("bison" ,bison)
+ ("glib:bin" ,glib "bin") ; for 'glib-mkenums'
+ ("gobject-introspection" ,gobject-introspection)
+ ("pkg-config" ,pkg-config)
+ ("xsltproc" ,libxslt)))
+ (inputs
+ `(("avahi" ,avahi)
+ ("docbook-xml" ,docbook-xml-4.2)
+ ("docbook-xsl" ,docbook-xsl)
+ ("e2fsprogs" ,e2fsprogs)
+ ("fuse" ,fuse)
+ ("glib" ,glib)
+ ("gpgme" ,gpgme)
+ ("libarchive" ,libarchive)
+ ("libsoup" ,libsoup)
+ ("nettle" ,nettle) ; required by 'libarchive.la'
+ ("util-linux" ,util-linux)))
+ (home-page "https://ostree.readthedocs.io/en/latest/")
+ (synopsis "Operating system and container binary deployment and upgrades")
+ (description
+ "@code{libostree} is both a shared library and suite of command line
+tools that combines a \"git-like\" model for committing and downloading
+bootable filesystem trees, along with a layer for deploying them and managing
+the bootloader configuration.")
+ (license license:lgpl2.0+)))
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 497963af63..9ac30420b7 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -358,7 +358,7 @@ any X11 window.")
(define-public password-store
(package
(name "password-store")
- (version "1.7.1")
+ (version "1.7.2")
(source (origin
(method url-fetch)
(uri
@@ -366,8 +366,7 @@ any X11 window.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn"))
- (patches (search-patches "password-store-gnupg-compat.patch"))))
+ "1sl0d7nc85c6c2bmmmyb8rpmn47vhkj831l153mjlkawjvhwas27"))))
(build-system gnu-build-system)
(arguments
'(#:phases
diff --git a/gnu/packages/patches/bind-CVE-2018-5738.patch b/gnu/packages/patches/bind-CVE-2018-5738.patch
new file mode 100644
index 0000000000..ddef014651
--- /dev/null
+++ b/gnu/packages/patches/bind-CVE-2018-5738.patch
@@ -0,0 +1,100 @@
+Fix CVE-2018-5738:
+
+https://kb.isc.org/article/AA-01616/0/CVE-2018-5738
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5738
+
+diff --git a/bin/named/server.c b/bin/named/server.c
+index f63554e..847c4ff 100644
+--- a/bin/named/server.c
++++ b/bin/named/server.c
+@@ -3725,10 +3725,6 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
+ CHECKM(named_config_getport(config, &port), "port");
+ dns_view_setdstport(view, port);
+
+- CHECK(configure_view_acl(vconfig, config, named_g_config,
+- "allow-query", NULL, actx,
+- named_g_mctx, &view->queryacl));
+-
+ /*
+ * Make the list of response policy zone names for a view that
+ * is used for real lookups and so cares about hints.
+@@ -4692,21 +4688,35 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
+ "allow-query-cache-on", NULL, actx,
+ named_g_mctx, &view->cacheonacl));
+ /*
+- * Set "allow-query-cache", "allow-recursion", and
+- * "allow-recursion-on" acls if configured in named.conf.
+- * (Ignore the global defaults for now, because these ACLs
+- * can inherit from each other when only some of them set at
+- * the options/view level.)
++ * Set the "allow-query", "allow-query-cache", "allow-recursion",
++ * and "allow-recursion-on" ACLs if configured in named.conf, but
++ * NOT from the global defaults. This is done by leaving the third
++ * argument to configure_view_acl() NULL.
++ *
++ * We ignore the global defaults here because these ACLs
++ * can inherit from each other. If any are still unset after
++ * applying the inheritance rules, we'll look up the defaults at
++ * that time.
+ */
+- CHECK(configure_view_acl(vconfig, config, NULL, "allow-query-cache",
+- NULL, actx, named_g_mctx, &view->cacheacl));
++
++ /* named.conf only */
++ CHECK(configure_view_acl(vconfig, config, NULL,
++ "allow-query", NULL, actx,
++ named_g_mctx, &view->queryacl));
++
++ /* named.conf only */
++ CHECK(configure_view_acl(vconfig, config, NULL,
++ "allow-query-cache", NULL, actx,
++ named_g_mctx, &view->cacheacl));
+
+ if (strcmp(view->name, "_bind") != 0 &&
+ view->rdclass != dns_rdataclass_chaos)
+ {
++ /* named.conf only */
+ CHECK(configure_view_acl(vconfig, config, NULL,
+ "allow-recursion", NULL, actx,
+ named_g_mctx, &view->recursionacl));
++ /* named.conf only */
+ CHECK(configure_view_acl(vconfig, config, NULL,
+ "allow-recursion-on", NULL, actx,
+ named_g_mctx, &view->recursiononacl));
+@@ -4744,18 +4754,21 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
+ * the global config.
+ */
+ if (view->recursionacl == NULL) {
++ /* global default only */
+ CHECK(configure_view_acl(NULL, NULL, named_g_config,
+ "allow-recursion", NULL,
+ actx, named_g_mctx,
+ &view->recursionacl));
+ }
+ if (view->recursiononacl == NULL) {
++ /* global default only */
+ CHECK(configure_view_acl(NULL, NULL, named_g_config,
+ "allow-recursion-on", NULL,
+ actx, named_g_mctx,
+ &view->recursiononacl));
+ }
+ if (view->cacheacl == NULL) {
++ /* global default only */
+ CHECK(configure_view_acl(NULL, NULL, named_g_config,
+ "allow-query-cache", NULL,
+ actx, named_g_mctx,
+@@ -4769,6 +4782,14 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
+ CHECK(dns_acl_none(mctx, &view->cacheacl));
+ }
+
++ if (view->queryacl == NULL) {
++ /* global default only */
++ CHECK(configure_view_acl(NULL, NULL, named_g_config,
++ "allow-query", NULL,
++ actx, named_g_mctx,
++ &view->queryacl));
++ }
++
+ /*
+ * Ignore case when compressing responses to the specified
+ * clients. This causes case not always to be preserved,
diff --git a/gnu/packages/patches/binutils-aarch64-symbol-relocation.patch b/gnu/packages/patches/binutils-aarch64-symbol-relocation.patch
new file mode 100644
index 0000000000..fbd596862b
--- /dev/null
+++ b/gnu/packages/patches/binutils-aarch64-symbol-relocation.patch
@@ -0,0 +1,36 @@
+Fix a regression in Binutils 2.30 where some symbols are incorrectly assumed
+to be addresses:
+
+https://sourceware.org/bugzilla/show_bug.cgi?id=22764
+
+Patch taken from upstream (with ChangeLog entries and tests omitted):
+
+https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=279b2f94168ee91e02ccd070d27c983fc001fe12
+
+diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
+index af448f9..2737773 100644
+--- a/bfd/elfnn-aarch64.c
++++ b/bfd/elfnn-aarch64.c
+@@ -7189,10 +7189,19 @@ elfNN_aarch64_check_relocs (bfd *abfd, struct bfd_link_info *info,
+ #if ARCH_SIZE == 64
+ case BFD_RELOC_AARCH64_32:
+ #endif
+- if (bfd_link_pic (info)
+- && (sec->flags & SEC_ALLOC) != 0
+- && (sec->flags & SEC_READONLY) != 0)
++ if (bfd_link_pic (info) && (sec->flags & SEC_ALLOC) != 0)
+ {
++ if (h != NULL
++ /* This is an absolute symbol. It represents a value instead
++ of an address. */
++ && ((h->root.type == bfd_link_hash_defined
++ && bfd_is_abs_section (h->root.u.def.section))
++ /* This is an undefined symbol. */
++ || h->root.type == bfd_link_hash_undefined))
++ break;
++
++ /* For local symbols, defined global symbols in a non-ABS section,
++ it is assumed that the value is an address. */
+ int howto_index = bfd_r_type - BFD_RELOC_AARCH64_RELOC_START;
+ _bfd_error_handler
+ /* xgettext:c-format */
diff --git a/gnu/packages/patches/elixir-disable-failing-tests.patch b/gnu/packages/patches/elixir-disable-failing-tests.patch
deleted file mode 100644
index 547598b292..0000000000
--- a/gnu/packages/patches/elixir-disable-failing-tests.patch
+++ /dev/null
@@ -1,284 +0,0 @@
-Most of these tests fail for unknown reasons when run in the chroot
-environment of a Guix build process.
-
-Common failures are:
-
- * Mix.Shell.cmd() fails with error 130
- * The git_repo fixture cannot be found
- * Communication with spawned processes fails with EPIPE
- * Failure to copy files
-
-
-diff --git a/lib/elixir/test/elixir/kernel/cli_test.exs b/lib/elixir/test/elixir/kernel/cli_test.exs
-index 3ffd56c..1232d19 100644
---- a/lib/elixir/test/elixir/kernel/cli_test.exs
-+++ b/lib/elixir/test/elixir/kernel/cli_test.exs
-@@ -39,6 +39,7 @@ end
- defmodule Kernel.CLI.OptionParsingTest do
- use ExUnit.Case, async: true
-
-+ @tag :skip
- test "properly parses paths" do
- root = fixture_path("../../..") |> to_charlist
- list = elixir('-pa "#{root}/*" -pz "#{root}/lib/*" -e "IO.inspect(:code.get_path, limit: :infinity)"')
-@@ -57,6 +58,7 @@ end
- defmodule Kernel.CLI.AtExitTest do
- use ExUnit.Case, async: true
-
-+ @tag :skip
- test "invokes at_exit callbacks" do
- assert elixir(fixture_path("at_exit.exs") |> to_charlist) ==
- 'goodbye cruel world with status 1\n'
-@@ -66,6 +68,7 @@ end
- defmodule Kernel.CLI.ErrorTest do
- use ExUnit.Case, async: true
-
-+ @tag :skip
- test "properly format errors" do
- assert :string.str('** (throw) 1', elixir('-e "throw 1"')) == 0
- assert :string.str('** (ErlangError) erlang error: 1', elixir('-e "error 1"')) == 0
-@@ -86,6 +89,7 @@ defmodule Kernel.CLI.CompileTest do
- {:ok, [tmp_dir_path: tmp_dir_path, beam_file_path: beam_file_path, fixture: fixture]}
- end
-
-+ @tag :skip
- test "compiles code", context do
- assert elixirc('#{context[:fixture]} -o #{context[:tmp_dir_path]}') == ''
- assert File.regular?(context[:beam_file_path])
-@@ -96,6 +100,7 @@ defmodule Kernel.CLI.CompileTest do
- Code.delete_path context[:tmp_dir_path]
- end
-
-+ @tag :skip
- test "fails on missing patterns", context do
- output = elixirc('#{context[:fixture]} non_existing.ex -o #{context[:tmp_dir_path]}')
- assert :string.str(output, 'non_existing.ex') > 0, "expected non_existing.ex to be mentioned"
-@@ -103,6 +108,7 @@ defmodule Kernel.CLI.CompileTest do
- refute File.exists?(context[:beam_file_path]), "expected the sample to not be compiled"
- end
-
-+ @tag :skip
- test "fails on missing write access to .beam file", context do
- compilation_args = '#{context[:fixture]} -o #{context[:tmp_dir_path]}'
-
-diff --git a/lib/elixir/test/elixir/kernel/dialyzer_test.exs b/lib/elixir/test/elixir/kernel/dialyzer_test.exs
-index 801d852..40fc5bc 100644
---- a/lib/elixir/test/elixir/kernel/dialyzer_test.exs
-+++ b/lib/elixir/test/elixir/kernel/dialyzer_test.exs
-@@ -60,16 +60,19 @@ defmodule Kernel.DialyzerTest do
- assert_dialyze_no_warnings! context
- end
-
-+ @tag :skip
- test "no warnings on rewrites", context do
- copy_beam! context, Dialyzer.Rewrite
- assert_dialyze_no_warnings! context
- end
-
-+ @tag :skip
- test "no warnings on raise", context do
- copy_beam! context, Dialyzer.Raise
- assert_dialyze_no_warnings! context
- end
-
-+ @tag :skip
- test "no warnings on macrocallback", context do
- copy_beam! context, Dialyzer.Macrocallback
- copy_beam! context, Dialyzer.Macrocallback.Impl
-diff --git a/lib/elixir/test/elixir/system_test.exs b/lib/elixir/test/elixir/system_test.exs
-index aafa559..0f9c178 100644
---- a/lib/elixir/test/elixir/system_test.exs
-+++ b/lib/elixir/test/elixir/system_test.exs
-@@ -53,7 +53,8 @@ defmodule SystemTest do
- assert System.endianness in [:little, :big]
- assert System.endianness == System.compiled_endianness
- end
--
-+
-+ @tag :skip
- test "argv/0" do
- list = elixir('-e "IO.inspect System.argv" -- -o opt arg1 arg2 --long-opt 10')
- {args, _} = Code.eval_string list, []
-diff --git a/lib/mix/test/mix/dep_test.exs b/lib/mix/test/mix/dep_test.exs
-index fff3351..d6ed1b3 100644
---- a/lib/mix/test/mix/dep_test.exs
-+++ b/lib/mix/test/mix/dep_test.exs
-@@ -244,6 +244,7 @@ defmodule Mix.DepTest do
- end
- end
-
-+ @tag :skip
- test "remote converger" do
- deps = [{:deps_repo, "0.1.0", path: "custom/deps_repo"},
- {:git_repo, "0.2.0", git: MixTest.Case.fixture_path("git_repo")}]
-@@ -301,6 +302,7 @@ defmodule Mix.DepTest do
- end
- end
-
-+ @tag :skip
- test "remote converger is not invoked if deps diverge" do
- deps = [{:deps_repo, "0.1.0", path: "custom/deps_repo"},
- {:git_repo, "0.2.0", git: MixTest.Case.fixture_path("git_repo"), only: :test}]
-
-diff --git a/lib/mix/test/mix/shell/io_test.exs b/lib/mix/test/mix/shell/io_test.exs
-index 9bfb6b4..d982ef3 100644
---- a/lib/mix/test/mix/shell/io_test.exs
-+++ b/lib/mix/test/mix/shell/io_test.exs
-@@ -29,6 +29,7 @@ defmodule Mix.Shell.IOTest do
- assert capture_io("", fn -> refute yes?("Ok?") end)
- end
-
-+ @tag :skip
- test "runs a given command" do
- assert capture_io("", fn -> assert cmd("echo hello") == 0 end) == "hello\n"
-
-diff --git a/lib/mix/test/mix/shell/quiet_test.exs b/lib/mix/test/mix/shell/quiet_test.exs
-index 626429b..99fab35 100644
---- a/lib/mix/test/mix/shell/quiet_test.exs
-+++ b/lib/mix/test/mix/shell/quiet_test.exs
-@@ -29,6 +29,7 @@ defmodule Mix.Shell.QuietTest do
- assert capture_io("", fn -> refute yes?("Ok?") end)
- end
-
-+ @tag :skip
- test "runs a given command" do
- assert capture_io("", fn -> assert cmd("echo hello") == 0 end) == ""
-
-diff --git a/lib/mix/test/mix/tasks/cmd_test.exs b/lib/mix/test/mix/tasks/cmd_test.exs
-index db4bf06..4d441f7 100644
---- a/lib/mix/test/mix/tasks/cmd_test.exs
-+++ b/lib/mix/test/mix/tasks/cmd_test.exs
-@@ -3,6 +3,7 @@ Code.require_file "../../test_helper.exs", __DIR__
- defmodule Mix.Tasks.CmdTest do
- use MixTest.Case
-
-+ @tag :skip
- test "runs the command for each app" do
- in_fixture "umbrella_dep/deps/umbrella", fn ->
- Mix.Project.in_project(:umbrella, ".", fn _ ->
-diff --git a/lib/mix/test/mix/tasks/deps.tree_test.exs b/lib/mix/test/mix/tasks/deps.tree_test.exs
-index 4f09ff3..c371997 100644
---- a/lib/mix/test/mix/tasks/deps.tree_test.exs
-+++ b/lib/mix/test/mix/tasks/deps.tree_test.exs
-@@ -29,6 +29,7 @@ defmodule Mix.Tasks.Deps.TreeTest do
- end
- end
-
-+ @tag :skip
- test "shows the dependency tree", context do
- Mix.Project.push ConvergedDepsApp
-
-@@ -109,6 +110,7 @@ defmodule Mix.Tasks.Deps.TreeTest do
- end
- end
-
-+ @tag :skip
- test "shows the dependency tree in DOT graph format", context do
- Mix.Project.push ConvergedDepsApp
-
-diff --git a/lib/mix/test/mix/tasks/deps_test.exs b/lib/mix/test/mix/tasks/deps_test.exs
-index b061777..cc45cf8 100644
---- a/lib/mix/test/mix/tasks/deps_test.exs
-+++ b/lib/mix/test/mix/tasks/deps_test.exs
-@@ -96,6 +96,7 @@
- end
- end
-
-+ @tag :skip
- test "prints list of dependencies and their lock status" do
- Mix.Project.push DepsApp
-
-@@ -409,6 +409,7 @@ defmodule Mix.Tasks.DepsTest do
- end
- end
-
-+ @tag :skip
- test "fails on diverged dependencies by requirement" do
- Mix.Project.push ConvergedDepsApp
-
-@@ -440,6 +441,7 @@ defmodule Mix.Tasks.DepsTest do
- end
- end
-
-+ @tag :skip
- test "fails on diverged dependencies even when optional" do
- Mix.Project.push ConvergedDepsApp
-
-@@ -469,6 +471,7 @@ defmodule Mix.Tasks.DepsTest do
- end
- end
-
-+ @tag :skip
- test "works with converged dependencies" do
- Mix.Project.push ConvergedDepsApp
-
-@@ -491,6 +494,7 @@ defmodule Mix.Tasks.DepsTest do
- purge [GitRepo, GitRepo.Mixfile]
- end
-
-+ @tag :skip
- test "works with overridden dependencies" do
- Mix.Project.push OverriddenDepsApp
-
-diff --git a/lib/mix/test/mix/umbrella_test.exs b/lib/mix/test/mix/umbrella_test.exs
-index 69f9428..406668a 100644
---- a/lib/mix/test/mix/umbrella_test.exs
-+++ b/lib/mix/test/mix/umbrella_test.exs
-@@ -98,6 +98,7 @@ defmodule Mix.UmbrellaTest do
- end
- end
-
-+ @tag :skip
- test "loads umbrella child dependencies in all environments" do
- in_fixture "umbrella_dep/deps/umbrella", fn ->
- Mix.Project.in_project :umbrella, ".", fn _ ->
-
-diff --git a/lib/elixir/test/elixir/kernel/dialyzer_test.exs b/lib/elixir/test/elixir/kernel/dialyzer_test.exs
-index 792222c..e90beb9 100644
---- a/lib/elixir/test/elixir/kernel/dialyzer_test.exs
-+++ b/lib/elixir/test/elixir/kernel/dialyzer_test.exs
-@@ -54,6 +54,7 @@ defmodule Kernel.DialyzerTest do
- {:ok, [outdir: dir, dialyzer: dialyzer]}
- end
-
-+ @tag :skip
- test "no warnings on valid remote calls", context do
- copy_beam! context, Dialyzer.RemoteCall
- assert_dialyze_no_warnings! context
-@@ -78,11 +79,13 @@ defmodule Kernel.DialyzerTest do
- assert_dialyze_no_warnings! context
- end
-
-+ @tag :skip
- test "no warnings on struct update", context do
- copy_beam! context, Dialyzer.StructUpdate
- assert_dialyze_no_warnings! context
- end
-
-+ @tag :skip
- test "no warnings on protocol calls with opaque types", context do
- copy_beam! context, Dialyzer.ProtocolOpaque
- copy_beam! context, Dialyzer.ProtocolOpaque.Entity
-@@ -90,6 +93,7 @@ defmodule Kernel.DialyzerTest do
- assert_dialyze_no_warnings! context
- end
-
-+ @tag :skip
- test "no warnings on and/2 and or/2", context do
- copy_beam! context, Dialyzer.BooleanCheck
- assert_dialyze_no_warnings! context
-
-diff --git a/Makefile b/Makefile
-index 2fc4f9a..aef8366 100644
---- a/Makefile
-+++ b/Makefile
-@@ -201,7 +201,7 @@ $(TEST_EBIN)/%.beam: $(TEST_ERL)/%.erl
- $(Q) mkdir -p $(TEST_EBIN)
- $(Q) $(ERLC) -o $(TEST_EBIN) $<
-
--test_elixir: test_stdlib test_ex_unit test_logger test_mix test_eex test_iex
-+test_elixir: test_stdlib test_ex_unit test_logger test_eex test_iex
-
- test_stdlib: compile
- @ echo "==> elixir (exunit)"
-
diff --git a/gnu/packages/patches/flann-cmake-3.11.patch b/gnu/packages/patches/flann-cmake-3.11.patch
new file mode 100644
index 0000000000..1fb76eca0a
--- /dev/null
+++ b/gnu/packages/patches/flann-cmake-3.11.patch
@@ -0,0 +1,84 @@
+Fixes this issue:
+ <https://github.com/mariusmuja/flann/issues/369>.
+Patch from Buildroot:
+ <https://github.com/buildroot/buildroot/commit/45a39b3e2ba42b72d19bfcef30db1b8da9ead51a>.
+
+From fa5ec96a94646492a3f908e12905b3e48a8e800b Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Wed, 18 Apr 2018 20:24:13 +0200
+Subject: [PATCH] src/cpp: fix cmake >= 3.11 build
+
+CMake < 3.11 doesn't support add_library() without any source file
+(i.e add_library(foo SHARED)). But flann CMake use a trick that use
+an empty string "" as source list (i.e add_library(foo SHARED "")).
+This look like a bug in CMake < 3.11.
+
+With CMake >= 3.11, the new behaviour of add_library() break the
+existing flann CMake code.
+
+From CMake Changelog [1]:
+"add_library() and add_executable() commands can now be called without
+ any sources and will not complain as long as sources are added later
+ via the target_sources() command."
+
+Note: flann CMake code doesn't use target_sources() since no source file
+are provided intentionally since the flann shared library is created by
+linking with the flann_cpp_s static library with this line:
+
+target_link_libraries(flann_cpp -Wl,-whole-archive flann_cpp_s -Wl,-no-whole-archive)
+
+If you try to use "add_library(flann_cpp SHARED ${CPP_SOURCES})" (as it should
+be normally done), the link fail due to already defined symbol.
+
+They are building the shared version using the static library "to speedup the
+build time" [3]
+
+This issue is already reported upstream [2] with a proposed solution.
+
+Upstream status: Pending
+
+Fixes:
+http://autobuild.buildroot.net/results/b2f/b2febfaf8c44ce477b3e4a5b9b976fd25e8d7454
+
+[1] https://cmake.org/cmake/help/v3.11/release/3.11.html
+[2] https://github.com/mariusmuja/flann/issues/369
+[3] https://github.com/mariusmuja/flann/commit/0fd62b43be2fbb0b8d791ee36290791224dc030c
+
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+---
+ src/cpp/CMakeLists.txt | 4 ++--
+ src/cpp/empty.cpp | 1 +
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+ create mode 100644 src/cpp/empty.cpp
+
+diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt
+index b44a735..a816863 100644
+--- a/src/cpp/CMakeLists.txt
++++ b/src/cpp/CMakeLists.txt
+@@ -29,7 +29,7 @@ if (BUILD_CUDA_LIB)
+ endif()
+
+ if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_COMPILER_IS_GNUCC)
+- add_library(flann_cpp SHARED "")
++ add_library(flann_cpp SHARED "empty.cpp")
+ set_target_properties(flann_cpp PROPERTIES LINKER_LANGUAGE CXX)
+ target_link_libraries(flann_cpp -Wl,-whole-archive flann_cpp_s -Wl,-no-whole-archive)
+
+@@ -85,7 +85,7 @@ if (BUILD_C_BINDINGS)
+ set_property(TARGET flann_s PROPERTY COMPILE_DEFINITIONS FLANN_STATIC)
+
+ if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_COMPILER_IS_GNUCC)
+- add_library(flann SHARED "")
++ add_library(flann SHARED "empty.cpp")
+ set_target_properties(flann PROPERTIES LINKER_LANGUAGE CXX)
+ target_link_libraries(flann -Wl,-whole-archive flann_s -Wl,-no-whole-archive)
+ else()
+diff --git a/src/cpp/empty.cpp b/src/cpp/empty.cpp
+new file mode 100644
+index 0000000..40a8c17
+--- /dev/null
++++ b/src/cpp/empty.cpp
+@@ -0,0 +1 @@
++/* empty */
+--
+2.14.3
diff --git a/gnu/packages/patches/gnupg-1.4-CVE-2018-12020.patch b/gnu/packages/patches/gnupg-1.4-CVE-2018-12020.patch
deleted file mode 100644
index 306d4d348b..0000000000
--- a/gnu/packages/patches/gnupg-1.4-CVE-2018-12020.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-Fix CVE-2018-12020:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-12020
-https://lists.gnupg.org/pipermail/gnupg-announce/2018q2/000425.html
-
-Patch copied from upstream source repository:
-
-https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commit;h=2326851c60793653069494379b16d84e4c10a0ac
-
-From 2326851c60793653069494379b16d84e4c10a0ac Mon Sep 17 00:00:00 2001
-From: Werner Koch <wk@gnupg.org>
-Date: Fri, 8 Jun 2018 10:45:21 +0200
-Subject: [PATCH] gpg: Sanitize diagnostic with the original file name.
-
-* g10/mainproc.c (proc_plaintext): Sanitize verbose output.
---
-
-This fixes a forgotten sanitation of user supplied data in a verbose
-mode diagnostic. The mention CVE is about using this to inject
-status-fd lines into the stderr output. Other harm good as well be
-done. Note that GPGME based applications are not affected because
-GPGME does not fold status output into stderr.
-
-CVE-id: CVE-2018-12020
-GnuPG-bug-id: 4012
-(cherry picked from commit 13f135c7a252cc46cff96e75968d92b6dc8dce1b)
----
- g10/mainproc.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/g10/mainproc.c b/g10/mainproc.c
-index 33a654b34..ffa7ef6d8 100644
---- a/g10/mainproc.c
-+++ b/g10/mainproc.c
-@@ -638,7 +638,11 @@ proc_plaintext( CTX c, PACKET *pkt )
- if( pt->namelen == 8 && !memcmp( pt->name, "_CONSOLE", 8 ) )
- log_info(_("NOTE: sender requested \"for-your-eyes-only\"\n"));
- else if( opt.verbose )
-- log_info(_("original file name='%.*s'\n"), pt->namelen, pt->name);
-+ {
-+ char *tmp = make_printable_string (pt->name, pt->namelen, 0);
-+ log_info (_("original file name='%.*s'\n"), (int)strlen (tmp), tmp);
-+ xfree (tmp);
-+ }
- free_md_filter_context( &c->mfx );
- c->mfx.md = md_open( 0, 0);
- /* fixme: we may need to push the textfilter if we have sigclass 1
---
-2.17.1
-
diff --git a/gnu/packages/patches/password-store-gnupg-compat.patch b/gnu/packages/patches/password-store-gnupg-compat.patch
deleted file mode 100644
index 75c6362021..0000000000
--- a/gnu/packages/patches/password-store-gnupg-compat.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Copied from upstream mailing list:
-https://lists.zx2c4.com/pipermail/password-store/2018-February/003216.html.
-
-From 9b0c86159d754cc88dd3642564eed527153dfb7f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?= <clement@lassieur.org>
-Date: Sat, 24 Feb 2018 12:05:46 +0100
-Subject: [PATCH] tests: fix compatibility with GnuPG 2.2.5
-
----
- tests/t0300-reencryption.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/t0300-reencryption.sh b/tests/t0300-reencryption.sh
-index 6d5811d..6d15364 100755
---- a/tests/t0300-reencryption.sh
-+++ b/tests/t0300-reencryption.sh
-@@ -10,7 +10,7 @@ canonicalize_gpg_keys() {
- $GPG --list-keys --with-colons "$@" | sed -n 's/sub:[^:]*:[^:]*:[^:]*:\([^:]*\):[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[a-zA-Z]*e[a-zA-Z]*:.*/\1/p' | LC_ALL=C sort -u
- }
- gpg_keys_from_encrypted_file() {
-- $GPG -v --no-secmem-warning --no-permission-warning --decrypt --list-only --keyid-format long "$1" 2>&1 | cut -d ' ' -f 5 | LC_ALL=C sort -u
-+ $GPG -v --no-secmem-warning --no-permission-warning --decrypt --list-only --keyid-format long "$1" 2>&1 | grep "public key is" | cut -d ' ' -f 5 | LC_ALL=C sort -u
- }
- gpg_keys_from_group() {
- local output="$($GPG --list-config --with-colons | sed -n "s/^cfg:group:$1:\\(.*\\)/\\1/p" | head -n 1)"
---
-2.16.2
-
diff --git a/gnu/packages/patches/perl-archive-tar-CVE-2018-12015.patch b/gnu/packages/patches/perl-archive-tar-CVE-2018-12015.patch
new file mode 100644
index 0000000000..6460cf5855
--- /dev/null
+++ b/gnu/packages/patches/perl-archive-tar-CVE-2018-12015.patch
@@ -0,0 +1,36 @@
+Fix CVE-2018-12015:
+
+https://security-tracker.debian.org/tracker/CVE-2018-12015
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-12015
+https://rt.cpan.org/Ticket/Display.html?id=125523
+
+Patch taken from this upstream commit and adapted to apply to
+the bundled copy in the Perl distribution:
+
+https://github.com/jib/archive-tar-new/commit/ae65651eab053fc6dc4590dbb863a268215c1fc5
+
+diff --git a/cpan/Archive-Tar/lib/Archive/Tar.pm b/cpan/Archive-Tar/lib/Archive/Tar.pm
+index 6244369..a83975f 100644
+--- a/cpan/Archive-Tar/lib/Archive/Tar.pm
++++ b/cpan/Archive-Tar/lib/Archive/Tar.pm
+@@ -845,6 +845,20 @@ sub _extract_file {
+ return;
+ }
+
++ ### If a file system already contains a block device with the same name as
++ ### the being extracted regular file, we would write the file's content
++ ### to the block device. So remove the existing file (block device) now.
++ ### If an archive contains multiple same-named entries, the last one
++ ### should replace the previous ones. So remove the old file now.
++ ### If the old entry is a symlink to a file outside of the CWD, the new
++ ### entry would create a file there. This is CVE-2018-12015
++ ### <https://rt.cpan.org/Ticket/Display.html?id=125523>.
++ if (-l $full || -e _) {
++ if (!unlink $full) {
++ $self->_error( qq[Could not remove old file '$full': $!] );
++ return;
++ }
++ }
+ if( length $entry->type && $entry->is_file ) {
+ my $fh = IO::File->new;
+ $fh->open( $full, '>' ) or (
diff --git a/gnu/packages/patches/python-nose-timer-drop-ordereddict.patch b/gnu/packages/patches/python-nose-timer-drop-ordereddict.patch
deleted file mode 100644
index e1e71a332a..0000000000
--- a/gnu/packages/patches/python-nose-timer-drop-ordereddict.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 700076019b5aff72aac7651cc830aaef21ee9a47 Mon Sep 17 00:00:00 2001
-From: jakirkham <jakirkham@gmail.com>
-Date: Fri, 7 Jul 2017 05:57:56 -0400
-Subject: [PATCH] Drop ordereddict requirement (#84)
-
-* Drop ordereddict requirement
-
-As Python 2.7 is the minimum Python supported, every version of Python
-should have `ordereddict` preincluded in the standard library one way or
-another. So we can drop this dependency and just handle the differences
-between Python 2 and Python 3.
----
- nosetimer/plugin.py | 5 +----
- setup.py | 1 -
- 2 files changed, 1 insertion(+), 5 deletions(-)
-
-diff --git a/nosetimer/plugin.py b/nosetimer/plugin.py
-index ef28e11..d093a51 100644
---- a/nosetimer/plugin.py
-+++ b/nosetimer/plugin.py
-@@ -12,10 +12,7 @@
- except ImportError:
- import queue as Queue
-
--try:
-- from collections import OrderedDict
--except ImportError:
-- from ordereddict import OrderedDict
-+from collections import OrderedDict
-
-
- # define constants
-diff --git a/setup.py b/setup.py
-index 6a55b82..d249325 100755
---- a/setup.py
-+++ b/setup.py
-@@ -27,7 +27,6 @@
- install_requires=[
- 'nose',
- 'termcolor',
-- 'ordereddict',
- ],
- license='MIT',
- entry_points={
diff --git a/gnu/packages/patches/strace-kernel-4.16.patch b/gnu/packages/patches/strace-kernel-4.16.patch
deleted file mode 100644
index e86d3be439..0000000000
--- a/gnu/packages/patches/strace-kernel-4.16.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-Fix test failure when using Linux-Libre >= 4.16.
-
-Taken from upstream:
-https://github.com/strace/strace/commit/bcff87c31c0f27c678a43d6b7f67dab363a974fa
-
-From bcff87c31c0f27c678a43d6b7f67dab363a974fa Mon Sep 17 00:00:00 2001
-From: Masatake YAMATO <yamato@redhat.com>
-Date: Wed, 2 May 2018 17:11:07 +0900
-Subject: [PATCH] tests/ioctl_kvm_run.c: handle cpuid at the end of vcpu dentry
-
-Since Linux 4.16, kernel appends the cpuid as suffix to the entry
-for a kvm vcpu in /proc/$pid/fd like:
-
- anon_inode:kvm-vcpu:0
-
-That was
-
- anon_inode:kvm-vcpu
-
-This kernel change causes the test case failure on newer kernels.
-Update the test to deal with the new name as well as the old one.
-
-* tests/ioctl_kvm_run.c: Include unistd.h for using readlink(2).
-(vcpu_dev_should_have_cpuid): New function for detecting whether
-a proc entry for given fd has the cpuid suffix or not.
-(main): Trim vcpu_dev to remove the cpuid suffix if needed.
-(vcpu_dev): Remove const modifier.
----
- tests/ioctl_kvm_run.c | 29 ++++++++++++++++++++++++++++-
- 1 file changed, 28 insertions(+), 1 deletion(-)
-
-diff --git a/tests/ioctl_kvm_run.c b/tests/ioctl_kvm_run.c
-index 179461430..e1bef5796 100644
---- a/tests/ioctl_kvm_run.c
-+++ b/tests/ioctl_kvm_run.c
-@@ -40,6 +40,7 @@
- # include <string.h>
- # include <sys/ioctl.h>
- # include <sys/mman.h>
-+# include <unistd.h>
- # include <linux/kvm.h>
-
- static int
-@@ -56,7 +57,7 @@ kvm_ioctl(int fd, unsigned long cmd, const char *cmd_str, void *arg)
-
- static const char dev[] = "/dev/kvm";
- static const char vm_dev[] = "anon_inode:kvm-vm";
--static const char vcpu_dev[] = "anon_inode:kvm-vcpu";
-+static char vcpu_dev[] = "anon_inode:kvm-vcpu:0";
- static size_t page_size;
-
- extern const char code[];
-@@ -165,6 +166,23 @@ run_kvm(const int vcpu_fd, struct kvm_run *const run, const size_t mmap_size,
- }
- }
-
-+static int
-+vcpu_dev_should_have_cpuid(int fd)
-+{
-+ int r = 0;
-+ char *filename = NULL;
-+ char buf[sizeof(vcpu_dev)];
-+
-+ if (asprintf(&filename, "/proc/%d/fd/%d", getpid(), fd) < 0)
-+ error_msg_and_fail("asprintf");
-+
-+ if (readlink(filename, buf, sizeof(buf)) == sizeof(buf) - 1
-+ && (memcmp(buf, vcpu_dev, sizeof(buf) - 1) == 0))
-+ r = 1;
-+ free(filename);
-+ return r;
-+}
-+
- int
- main(void)
- {
-@@ -208,6 +226,15 @@ main(void)
- (unsigned long) page_size, (unsigned long) page_size, mem);
-
- int vcpu_fd = KVM_IOCTL(vm_fd, KVM_CREATE_VCPU, NULL);
-+ if (!vcpu_dev_should_have_cpuid(vcpu_fd))
-+ /*
-+ * This is an older kernel that doesn't place a cpuid
-+ * at the end of the dentry associated with vcpu_fd.
-+ * Trim the cpuid part of vcpu_dev like:
-+ * "anon_inode:kvm-vcpu:0" -> "anon_inode:kvm-vcpu"
-+ */
-+ vcpu_dev[strlen (vcpu_dev) - 2] = '\0';
-+
- printf("ioctl(%d<%s>, KVM_CREATE_VCPU, 0) = %d<%s>\n",
- vm_fd, vm_dev, vcpu_fd, vcpu_dev);
-
diff --git a/gnu/packages/patches/upx-fix-CVE-2017-15056.patch b/gnu/packages/patches/upx-fix-CVE-2017-15056.patch
new file mode 100644
index 0000000000..525980e73e
--- /dev/null
+++ b/gnu/packages/patches/upx-fix-CVE-2017-15056.patch
@@ -0,0 +1,96 @@
+From 3e0c2966dffb5dadb512a476ef4be3d0cc51c2be Mon Sep 17 00:00:00 2001
+From: Pierre Neidhardt <ambrevar@gmail.com>
+Date: Sat, 16 Jun 2018 16:35:00 +0200
+Subject: [PATCH] Protect against bad crafted input
+
+Also check for wrap-around when checking oversize involving e_shoff and e_shnum.
+
+raised by https://github.com/upx/upx/pull/190
+ modified: p_lx_elf.cpp
+---
+ src/p_lx_elf.cpp | 30 ++++++++++++++++++++++++++++++
+ 1 file changed, 30 insertions(+)
+
+diff --git a/src/p_lx_elf.cpp b/src/p_lx_elf.cpp
+index 822a7652..41e805ee 100644
+--- a/src/p_lx_elf.cpp
++++ b/src/p_lx_elf.cpp
+@@ -235,8 +235,17 @@ PackLinuxElf32::PackLinuxElf32help1(InputFile *f)
+ sz_phdrs = 0;
+ return;
+ }
++ if (0==e_phnum) throwCantUnpack("0==e_phnum");
+ e_phoff = get_te32(&ehdri.e_phoff);
++ unsigned const last_Phdr = e_phoff + e_phnum * sizeof(Elf32_Phdr);
++ if (last_Phdr < e_phoff || (unsigned long)file_size < last_Phdr) {
++ throwCantUnpack("bad e_phoff");
++ }
+ e_shoff = get_te32(&ehdri.e_shoff);
++ unsigned const last_Shdr = e_shoff + e_shnum * sizeof(Elf32_Shdr);
++ if (last_Shdr < e_shoff || (unsigned long)file_size < last_Shdr) {
++ throwCantUnpack("bad e_shoff");
++ }
+ sz_phdrs = e_phnum * e_phentsize;
+
+ if (f && Elf32_Ehdr::ET_DYN!=e_type) {
+@@ -599,8 +608,17 @@ PackLinuxElf64::PackLinuxElf64help1(InputFile *f)
+ sz_phdrs = 0;
+ return;
+ }
++ if (0==e_phnum) throwCantUnpack("0==e_phnum");
+ e_phoff = get_te64(&ehdri.e_phoff);
++ upx_uint64_t const last_Phdr = e_phoff + e_phnum * sizeof(Elf64_Phdr);
++ if (last_Phdr < e_phoff || (unsigned long)file_size < last_Phdr) {
++ throwCantUnpack("bad e_phoff");
++ }
+ e_shoff = get_te64(&ehdri.e_shoff);
++ upx_uint64_t const last_Shdr = e_shoff + e_shnum * sizeof(Elf64_Shdr);
++ if (last_Shdr < e_shoff || (unsigned long)file_size < last_Shdr) {
++ throwCantUnpack("bad e_shoff");
++ }
+ sz_phdrs = e_phnum * e_phentsize;
+
+ if (f && Elf64_Ehdr::ET_DYN!=e_type) {
+@@ -3763,6 +3781,9 @@ void PackLinuxElf64::pack4(OutputFile *fo, Filter &ft)
+
+ void PackLinuxElf64::unpack(OutputFile *fo)
+ {
++ if (e_phoff != sizeof(Elf64_Ehdr)) {// Phdrs not contiguous with Ehdr
++ throwCantUnpack("bad e_phoff");
++ }
+ unsigned const c_phnum = get_te16(&ehdri.e_phnum);
+ upx_uint64_t old_data_off = 0;
+ upx_uint64_t old_data_len = 0;
+@@ -3828,6 +3849,9 @@ void PackLinuxElf64::unpack(OutputFile *fo)
+ unsigned total_out = 0;
+ unsigned c_adler = upx_adler32(NULL, 0);
+ unsigned u_adler = upx_adler32(NULL, 0);
++ if ((MAX_ELF_HDR - sizeof(Elf64_Ehdr))/sizeof(Elf64_Phdr) < u_phnum) {
++ throwCantUnpack("bad compressed e_phnum");
++ }
+
+ // Packed ET_EXE has no PT_DYNAMIC.
+ // Packed ET_DYN has original PT_DYNAMIC for info needed by rtld.
+@@ -4383,6 +4407,9 @@ Elf64_Sym const *PackLinuxElf64::elf_lookup(char const *name) const
+
+ void PackLinuxElf32::unpack(OutputFile *fo)
+ {
++ if (e_phoff != sizeof(Elf32_Ehdr)) {// Phdrs not contiguous with Ehdr
++ throwCantUnpack("bad e_phoff");
++ }
+ unsigned const c_phnum = get_te16(&ehdri.e_phnum);
+ unsigned old_data_off = 0;
+ unsigned old_data_len = 0;
+@@ -4449,6 +4476,9 @@ void PackLinuxElf32::unpack(OutputFile *fo)
+ unsigned total_out = 0;
+ unsigned c_adler = upx_adler32(NULL, 0);
+ unsigned u_adler = upx_adler32(NULL, 0);
++ if ((MAX_ELF_HDR - sizeof(Elf32_Ehdr))/sizeof(Elf32_Phdr) < u_phnum) {
++ throwCantUnpack("bad compressed e_phnum");
++ }
+
+ // Packed ET_EXE has no PT_DYNAMIC.
+ // Packed ET_DYN has original PT_DYNAMIC for info needed by rtld.
+--
+2.17.0
+
diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm
index a1be996e04..89a761f0a7 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -13,6 +13,7 @@
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
+;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -364,6 +365,30 @@ modified or tested with this API, making it simple to test both individual
files, as well as to verify that there are no missing or unknown files.")
(license perl-license)))
+(define-public perl-test-distmanifest
+ (package
+ (name "perl-test-distmanifest")
+ (version "1.014")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/E/ET/ETHER/Test-DistManifest-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "1ifpff5simjslabwy7ac6kdylv4c0b5b39fgpwf9ha16yh6w49ix"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)))
+ (propagated-inputs
+ `(("perl-module-manifest" ,perl-module-manifest)))
+ (home-page "https://github.com/jawnsy/Test-DistManifest")
+ (synopsis "Author test that validates a package @file{MANIFEST}")
+ (description
+ "@code{Test::DistManifest} provides a simple method of testing that a
+@file{MANIFEST} file matches its distribution.")
+ (license perl-license)))
+
(define-public perl-test-eol
(package
(name "perl-test-eol")
@@ -1140,6 +1165,32 @@ a minimum of effort.")
;; "Under the same license as Perl itself"
(license perl-license)))
+(define-public perl-test-perltidy
+ (package
+ (name "perl-test-perltidy")
+ (version "20130104")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/L/LA/LARRYL/Test-PerlTidy-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1j5rsb4km9rzcbd1ljavj8vm42bmilji40v2jj2k87l1ykrxj59z"))))
+ (build-system perl-build-system)
+ (propagated-inputs
+ `(("perl-file-finder" ,perl-file-finder)
+ ("perl-file-slurp" ,perl-file-slurp)
+ ("perltidy" ,perltidy)
+ ("perl-text-diff" ,perl-text-diff)))
+ (home-page "http://search.cpan.org/dist/Test-PerlTidy/")
+ (synopsis "Check that all your Perl files are tidy")
+ (description
+ "Using @code{Test::PerlTidy}, any file ending in .pl, .pm, .t or .PL will
+cause a test fail unless it is exactly as @code{perltidy} would like it to be.")
+ (license perl-license)))
+
(define-public perl-test-trap
(package
(name "perl-test-trap")
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 2d2bb62a78..afbe5979db 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -20,6 +20,7 @@
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
+;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -170,6 +171,8 @@
(inherit (package-source perl))
(uri (string-append "mirror://cpan/src/5.0/perl-"
version ".tar.gz"))
+ (patches (append (origin-patches (package-source perl))
+ (search-patches "perl-archive-tar-CVE-2018-12015.patch")))
(sha256
(base32
"03gpnxx1g6hvlh0v4aqx00580h787sfywp1vlvw64q2xcbm9qbsp"))))))
@@ -1522,6 +1525,27 @@ provides a means of converting those data streams back into into binary
data.")
(license perl-license)))
+(define-public perl-cpan-changes
+ (package
+ (name "perl-cpan-changes")
+ (version "0.400002")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/H/HA/HAARG/CPAN-Changes-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "13dy78amkhwg278sv5im0ylyskhxpfivyl2aissqqih71nlxxvh1"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/CPAN-Changes/")
+ (synopsis "Read and write @file{Changes} files")
+ (description
+ "@code{CPAN::Changes} helps users programmatically read and write
+@file{Changes} files that conform to a common specification.")
+ (license perl-license)))
+
(define-public perl-cpan-meta-check
(package
(name "perl-cpan-meta-check")
@@ -5213,6 +5237,36 @@ strictly correct manner with ExtUtils::MakeMaker, and will run on any Perl
installation version 5.005 or newer.")
(license (package-license perl))))
+(define-public perl-module-manifest
+ (package
+ (name "perl-module-manifest")
+ (version "1.09")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/E/ET/ETHER/Module-Manifest-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "16skpm804a19gsgxzn1wba3lmvc7cx5q8ly4srpyd82yy47zi5d3"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-test-exception" ,perl-test-exception)
+ ("perl-test-warn" ,perl-test-warn)))
+ (propagated-inputs
+ `(("perl-params-util" ,perl-params-util)))
+ (home-page "http://search.cpan.org/dist/Module-Manifest/")
+ (synopsis "Parse and examine a Perl distribution @file{MANIFEST} file")
+ (description
+ "@code{Module::Manifest} is a simple utility module created originally for
+use in @code{Module::Inspector}.
+
+It can load a @file{MANIFEST} file that comes in a Perl distribution tarball,
+examine the contents, and perform some simple tasks. It can also load the
+@file{MANIFEST.SKIP} file and check that.")
+ (license perl-license)))
+
(define-public perl-module-pluggable
(package
(name "perl-module-pluggable")
@@ -8461,14 +8515,14 @@ as exceptions to standard program flow.")
(define-public perltidy
(package
(name "perltidy")
- (version "20160302")
+ (version "20180220")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/perltidy/" version
"/Perl-Tidy-" version ".tar.gz"))
(sha256
(base32
- "19yw63yh5s3pq7k3nkw6nsamg5b8vvwyhgbizslgxg0mqgc4xl3d"))))
+ "0w1k5ffcrpx0fm9jgprrwy0290k6cmy7dyk83s61063migi3r5z9"))))
(build-system perl-build-system)
(home-page "http://perltidy.sourceforge.net/")
(synopsis "Perl script tidier")
@@ -9476,6 +9530,38 @@ File::Find replacement in Perl.")
interface to File::Find::Object.")
(license (package-license perl))))
+(define-public perl-file-finder
+ (package
+ (name "perl-file-finder")
+ (version "0.53")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/M/ME/MERLYN/File-Finder-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0x3a2xgzrka73lcmmwalq2mmpzxa7s6pm01ahxf677ksqsdc3jrf"))))
+ (build-system perl-build-system)
+ (propagated-inputs
+ `(("perl-text-glob" ,perl-text-glob)))
+ (home-page "http://search.cpan.org/dist/File-Finder/")
+ (synopsis "Wrapper for @code{File::Find} ala @code{find(1)}")
+ (description
+ "@code{File::Find} is great, but constructing the wanted routine can
+sometimes be a pain. @code{File::Finder} provides a wanted-writer, using
+syntax that is directly mappable to the @code{find(1)} command's syntax.
+
+A @code{File::Finder} object contains a hash of @code{File::Find} options, and
+a series of steps that mimic find's predicates. Initially, a
+@code{File::Finder} object has no steps. Each step method clones the previous
+object's options and steps, and then adds the new step, returning the new
+object. In this manner, an object can be grown, step by step, by chaining
+method calls. Furthermore, a partial sequence can be created and held, and
+used as the head of many different sequences.")
+ (license perl-license)))
+
(define-public perl-font-ttf
(package
(name "perl-font-ttf")
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 55dc6bc739..9c0ddd037e 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -53,6 +53,7 @@
;;; Copyright © 2016, 2018 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -4871,26 +4872,15 @@ computing.")
(define-public python-urwid
(package
(name "python-urwid")
- (version "1.3.1")
+ (version "2.0.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "urwid" version))
(sha256
(base32
- "18cnd1wdjcas08x5qwa5ayw6jsfcn33w4d9f7q3s29fy6qzc1kng"))))
+ "1g6cpicybvbananpjikmjk8npmjk4xvak1wjzji62wc600wkwkb4"))))
(build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- ;; Disable failing test. Bug filed upstream:
- ;; https://github.com/wardi/urwid/issues/164
- ;; TODO: check again for python-urwid > 1.3.1 or python > 3.4.3.
- (add-after 'unpack 'disable-failing-test
- (lambda _
- (substitute* "urwid/tests/test_event_loops.py"
- (("test_remove_watch_file")
- "disable_remove_watch_file")))))))
(home-page "http://urwid.org")
(synopsis "Console user interface library for Python")
(description
@@ -4899,22 +4889,7 @@ features useful for text console applications.")
(license license:lgpl2.1+)))
(define-public python2-urwid
- (let ((python2-urwid (package-with-python2 python-urwid)))
- (package
- (inherit python2-urwid)
- (arguments
- (append
- `(;; Explicitly using Python 2 is necessary due the argument list being
- ;; built from only the 'delete-test_vterm.py' phase and python-urwid's
- ;; package arguments, which by default assumes the use of Python 3.
- #:python ,python-2
- #:phases
- (modify-phases %standard-phases
- ;; Disable the vterm tests because of non-deterministic failures
- ;; with Python 2. See https://github.com/urwid/urwid/issues/230.
- (add-after 'unpack 'delete-test_vterm.py
- (delete-file "urwid/tests/test_vterm.py"))))
- (package-arguments python-urwid))))))
+ (package-with-python2 python-urwid))
(define-public python-urwidtrees
(package
@@ -6033,13 +6008,13 @@ should be stored on various operating systems.")
(define-public python-llfuse
(package
(name "python-llfuse")
- (version "1.3.2")
+ (version "1.3.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "llfuse" version ".tar.bz2"))
(sha256
(base32
- "0qxvnbz41bpvpc1vbi8qkhmpr9gj1qrrp5jdj085iqibd8l2l9cn"))))
+ "1rqww632y2zz71xmr6ch7yq80kvza9mhqr2z773k0d8l1lwzl575"))))
(build-system python-build-system)
(inputs
`(("fuse" ,fuse)
@@ -7285,13 +7260,13 @@ applications.")
(define-public python-click-log
(package
(name "python-click-log")
- (version "0.2.1")
+ (version "0.3.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "click-log" version))
(sha256
(base32
- "1r1x85023cslb2pwldd089jjk573mk3w78cnashs77wrx7yz8fj9"))))
+ "091i03bhxyzsdbc6kilxhivfda2f8ymz3b33xa6cj5kbzjiirz8n"))))
(build-system python-build-system)
(propagated-inputs
`(("python-click" ,python-click)))
@@ -13657,3 +13632,120 @@ introspection.")
(define-public python2-fasteners
(package-with-python2 python-fasteners))
+
+(define-public python-requests-file
+ (package
+ (name "python-requests-file")
+ (version "1.4.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "requests-file" version))
+ (sha256
+ (base32
+ "1yp2jaxg3v86pia0q512dg3hz6s9y5vzdivsgrba1kds05ial14g"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-requests" ,python-requests)
+ ("python-six" ,python-six)))
+ (home-page
+ "https://github.com/dashea/requests-file")
+ (synopsis "File transport adapter for Requests")
+ (description
+ "Requests-File is a transport adapter for use with the Requests Python
+library to allow local filesystem access via file:// URLs.")
+ (license license:asl2.0)))
+
+(define-public python2-requests-file
+ (package-with-python2 python-requests-file))
+
+(define-public python-tldextract
+ (package
+ (name "python-tldextract")
+ (version "2.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tldextract" version))
+ (sha256
+ (base32
+ "1d5s8v6kpsgazyahflhji1cfdcf89rv7l7z55v774bhzvcjp2y99"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-responses" ,python-responses)))
+ (propagated-inputs
+ `(("python-idna" ,python-idna)
+ ("python-requests" ,python-requests)
+ ("python-requests-file" ,python-requests-file)))
+ (home-page
+ "https://github.com/john-kurkowski/tldextract")
+ (synopsis
+ "Separate the TLD from the registered domain and subdomains of a URL")
+ (description
+ "TLDExtract accurately separates the TLD from the registered domain and
+subdomains of a URL, using the Public Suffix List. By default, this includes
+the public ICANN TLDs and their exceptions. It can optionally support the
+Public Suffix List's private domains as well.")
+ (license license:bsd-3)))
+
+(define-public python2-tldextract
+ (package-with-python2 python-tldextract))
+
+(define-public python-pynamecheap
+ (package
+ (name "python-pynamecheap")
+ (version "0.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "PyNamecheap" version))
+ (sha256
+ (base32
+ "0wkbwz208j8nfrsmzmclvxg22ymknn0mlz76wbdza9k2bx2zja6l"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-requests" ,python-requests)))
+ (home-page
+ "https://github.com/Bemmu/PyNamecheap")
+ (synopsis
+ "Namecheap API client in Python")
+ (description
+ "PyNamecheap is a Namecheap API client in Python.")
+ (license license:expat)))
+
+(define-public python2-pynamecheap
+ (package-with-python2 python-pynamecheap))
+
+(define-public python-dns-lexicon
+ (package
+ (name "python-dns-lexicon")
+ (version "2.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "dns-lexicon" version))
+ (sha256
+ (base32
+ "0jdn3ns71bsybr7njgsqr9xlxsqh7zh6phn4ld0liazqdn2l5f6m"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ;requires internet access
+ (propagated-inputs
+ `(("python-future" ,python-future)
+ ("python-pynamecheap" ,python-pynamecheap)
+ ("python-requests" ,python-requests)
+ ("python-tldextract" ,python-tldextract)
+ ("python-urllib3" ,python-urllib3)))
+ (home-page "https://github.com/AnalogJ/lexicon")
+ (synopsis
+ "Manipulate DNS records on various DNS providers")
+ (description
+ "Lexicon provides a way to manipulate DNS records on multiple DNS
+providers in a standardized way. It has a CLI but it can also be used as a
+Python library. It was designed to be used in automation, specifically with
+Let's Encrypt.")
+ (license license:expat)))
+
+(define-public python2-dns-lexicon
+ (package-with-python2 python-dns-lexicon))
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 7d323cd2d5..a15d6453c9 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2017 Quiliro <quiliro@fsfla.org>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2018 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1069,6 +1070,55 @@ between the host (QML/C++ application) and the client (HTML/JavaScript
application). The transport mechanism is supported out of the box by the two
popular web engines, Qt WebKit 2 and Qt WebEngine.")))
+(define-public qtwebglplugin
+ (package (inherit qtsvg)
+ (name "qtwebglplugin")
+ (version "5.11.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://download.qt.io/official_releases/qt/"
+ (version-major+minor version) "/" version
+ "/submodules/" name "-everywhere-src-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "1al7dv7i9rg4z4p8vnipbjbbgc6113lbfjggxxap3sn6hqs986fm"))))
+ (native-inputs '())
+ (inputs
+ `(("mesa" ,mesa)
+ ("qtbase" ,qtbase)
+ ("qtwebsockets" ,qtwebsockets)))
+ (synopsis "QPA plugin for running an application via a browser using
+streamed WebGL commands")
+ (description "Qt back end that uses WebGL for rendering. It allows Qt
+applications (with some limitations) to run in a web browser that supports
+WebGL. WebGL is a JavaScript API for rendering 2D and 3D graphics within any
+compatible web browser without the use of plug-ins. The API is similar to
+OpenGL ES 2.0 and can be used in HTML5 canvas elements")))
+
+(define-public qtwebview
+ (package (inherit qtsvg)
+ (name "qtwebview")
+ (version "5.11.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://download.qt.io/official_releases/qt/"
+ (version-major+minor version) "/" version
+ "/submodules/" name "-everywhere-src-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0a89v8mj5pb7a7whyhasf4ms0n34ghfmv2qp0pyxnq56f2bsjbl4"))))
+ (native-inputs
+ `(("perl" ,perl)))
+ (inputs
+ `(("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)))
+ (synopsis "Display web content in a QML application")
+ (description "Qt WebView provides a way to display web content in a QML
+application without necessarily including a full web browser stack by using
+native APIs where it makes sense.")))
+
(define-public qtlocation
(package (inherit qtsvg)
(name "qtlocation")
diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index abbfdd83c4..e10f00a83b 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -362,7 +362,10 @@ many event types, including timers, signals, and the classic file descriptor eve
#t))))
(build-system gnu-build-system)
(arguments
- '(#:phases
+ '(;; LMDB is only supported on 64-bit systems, yet the test suite
+ ;; requires it.
+ #:tests? (assoc-ref %build-inputs "lmdb")
+ #:phases
(modify-phases %standard-phases
(replace 'configure
;; ldb use a custom configuration script that runs waf.
@@ -382,7 +385,9 @@ many event types, including timers, signals, and the classic file descriptor eve
`(("talloc" ,talloc)
("tdb" ,tdb)))
(inputs
- `(("lmdb" ,lmdb)
+ `(,@(if (target-64bit?)
+ `(("lmdb" ,lmdb))
+ '())
("popt" ,popt)
("tevent" ,tevent)))
(synopsis "LDAP-like embedded database")
diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm
index 38d4a3a6bd..a648634646 100644
--- a/gnu/packages/spice.scm
+++ b/gnu/packages/spice.scm
@@ -128,7 +128,7 @@ system to use the host GPU to accelerate 3D rendering.")
(define-public spice-protocol
(package
(name "spice-protocol")
- (version "0.12.13")
+ (version "0.12.14")
(source (origin
(method url-fetch)
(uri (string-append
@@ -136,7 +136,7 @@ system to use the host GPU to accelerate 3D rendering.")
"spice-protocol-" version ".tar.bz2"))
(sha256
(base32
- "0cwrgkp558mblcf4vrhacb3iizz12khsrrl82w38w9nj0ar13vl9"))))
+ "170ckpgazvqv7hxy209myg67pqnd6c0gvr4ysbqgsfch6320nd90"))))
(build-system gnu-build-system)
(synopsis "Protocol headers for the SPICE protocol")
(description "SPICE (the Simple Protocol for Independent Computing
diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm
index 28a364ebd5..0ff94cdd24 100644
--- a/gnu/packages/sssd.scm
+++ b/gnu/packages/sssd.scm
@@ -81,14 +81,14 @@ fundamental object types for C.")
(define-public sssd
(package
(name "sssd")
- (version "1.16.1")
+ (version "1.16.2")
(source (origin
(method url-fetch)
(uri (string-append "http://releases.pagure.org/SSSD/sssd/"
"sssd-" version ".tar.gz"))
(sha256
(base32
- "0vjh1c5960wh86zjsamdjhljls7bb5fz5jpcazgzrpmga5w6ggrd"))))
+ "032ppk57qs1lnvz7pb7lw9ldwm9i1yagh9fzgqgn6na3bg61ynzy"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
@@ -165,6 +165,7 @@ fundamental object types for C.")
`(("check" ,check)
("docbook-xsl" ,docbook-xsl)
("docbook-xml" ,docbook-xml)
+ ("libxml2" ,libxml2) ; for xmllint
("libxslt" ,libxslt)
("pkg-config" ,pkg-config)
("util-linux" ,util-linux))) ; for uuid.h, reqired for KCM
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 4c9f1743f0..502ff9b2f9 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -835,13 +835,13 @@ see package vignette. To quote Rene Magritte, \"Ceci n'est pas un pipe.\"")
(define-public r-munsell
(package
(name "r-munsell")
- (version "0.4.3")
+ (version "0.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "munsell" version))
(sha256
- (base32 "0jdxlbjslkzaqgp058da1cgm85qvqi09wpcgpvp4hvwnmy83qz1r"))))
+ (base32 "16g1fzisbpqb15yh3pqf3iia4csppva5dnv1z88x9dg263xskwyh"))))
(build-system r-build-system)
(propagated-inputs
`(("r-colorspace" ,r-colorspace)))
@@ -960,14 +960,14 @@ solution for sending email, including attachments, from within R.")
(define-public r-stringi
(package
(name "r-stringi")
- (version "1.2.2")
+ (version "1.2.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "stringi" version))
(sha256
(base32
- "1z8yqnh3alq0xriz77vifgl27msf3av6maz07fld78m90ajb6y8r"))))
+ "1sgg4krw03qkz1n4dwiya0djggk7giwd0w21qlp0pfjqi0rxq6qx"))))
(build-system r-build-system)
(inputs `(("icu4c" ,icu4c)))
(native-inputs `(("pkg-config" ,pkg-config)))
@@ -1289,13 +1289,13 @@ There is also a Shiny app as a user interface in this package.")
(define-public r-highr
(package
(name "r-highr")
- (version "0.6")
+ (version "0.7")
(source (origin
(method url-fetch)
(uri (cran-uri "highr" version))
(sha256
(base32
- "0n9v44dxdy5fhkdmpbpa2p78whyd9z3rhhy42ipdz5m5vsr55qa3"))))
+ "1dzknqk4x7iiiq1jkh9bqm5qcvs7mbqxbkn5955050payavabfya"))))
(build-system r-build-system)
(home-page "https://github.com/yihui/highr")
(synopsis "Syntax highlighting for R source code")
@@ -2603,14 +2603,14 @@ certain criterion, e.g., it contains a certain regular file.")
(define-public r-rmarkdown
(package
(name "r-rmarkdown")
- (version "1.9")
+ (version "1.10")
(source
(origin
(method url-fetch)
(uri (cran-uri "rmarkdown" version))
(sha256
(base32
- "0wq6kbhrkv3fhcy4hg5yyv9gdvf8gr4nsjwdifs4ih8lnn0dmdyb"))))
+ "0mh2f3k98w7pgz0ri34149s4kx5y0kfm27nwq64k0qwxd16hwd9r"))))
(properties `((upstream-name . "rmarkdown")))
(build-system r-build-system)
(propagated-inputs
@@ -2622,6 +2622,7 @@ certain criterion, e.g., it contains a certain regular file.")
("r-mime" ,r-mime)
("r-rprojroot" ,r-rprojroot)
("r-stringr" ,r-stringr)
+ ("r-tinytex" ,r-tinytex)
("r-yaml" ,r-yaml)
;; rmarkdown works with the 2.x release of Pandoc, but with degraded
;; functionality. For example, tabbed plots do not currently work with
@@ -4222,13 +4223,13 @@ mechanism.")
(define-public r-zoo
(package
(name "r-zoo")
- (version "1.8-1")
+ (version "1.8-2")
(source (origin
(method url-fetch)
(uri (cran-uri "zoo" version))
(sha256
(base32
- "16nc5jnpkf5j9vgq3pzssv7knj30mi055wj7q3sygz3l0d88hgfr"))))
+ "1lpwigxmi5sc23xrha4gcsccsm4yfsg0sa97y6vac3pg1lliblvx"))))
(build-system r-build-system)
(propagated-inputs
`(("r-lattice" ,r-lattice)))
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 1cd00f4621..5cdc081398 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -10,6 +10,7 @@
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Petter <petter@mykolab.ch>
;;; Copyright © 2018 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -47,6 +48,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
@@ -55,6 +57,8 @@
#:use-module (gnu packages python)
#:use-module (gnu packages python-web)
#:use-module (gnu packages qt)
+ #:use-module (gnu packages serialization)
+ #:use-module (gnu packages ssh)
#:use-module (gnu packages textutils)
#:use-module (gnu packages wm)
#:use-module (gnu packages xdisorg)
@@ -845,3 +849,33 @@ per-line fullscreen terminal rendering, and keyboard input event reporting.")
(define-public python2-curtsies
(package-with-python2 python-curtsies))
+
+(define-public tmate
+ (package
+ (name "tmate")
+ (version "2.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/tmate-io/tmate/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "01f3hhm3x0sd6apyb1ajkjfdfvq5m2759w00yp2slr9fyicsrhnr"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libevent" ,libevent)
+ ("libssh" ,libssh)
+ ("msgpack" ,msgpack)
+ ("ncurses" ,ncurses)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://tmate.io/")
+ (synopsis "Terminal sharing application")
+ (description "tmate is a terminal sharing application that allows you to
+share your terminal with other users over the Internet. tmate is a fork of
+tmux.")
+ (license license:isc)))
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index b6bc9dda62..b290644aac 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -176,14 +176,17 @@
(string-prefix? "mips64" s))))
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'fix-unix-detection
+ (add-after 'unpack 'configure-ghostscript-executable
;; ps2eps.pl uses the "gswin32c" ghostscript executable on Windows,
;; and the "gs" ghostscript executable on Unix. It detects Unix by
;; checking for the existence of the /usr/bin directory. Since
;; GuixSD does not have /usr/bin, it is also detected as Windows.
- (lambda _
+ (lambda* (#:key inputs #:allow-other-keys)
(substitute* "utils/ps2eps/ps2eps-src/bin/ps2eps.pl"
(("gswin32c") "gs"))
+ (substitute* "texk/texlive/linked_scripts/epstopdf/epstopdf.pl"
+ (("\"gs\"")
+ (string-append "\"" (assoc-ref inputs "ghostscript") "/bin/gs\"")))
#t))
(add-after 'install 'postint
(lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm
index a2f8a80704..fc831ab6cc 100644
--- a/gnu/packages/time.scm
+++ b/gnu/packages/time.scm
@@ -287,14 +287,14 @@ value (in fractional seconds) of a clock which never goes backwards.")
(define-public python-pyrfc3339
(package
(name "python-pyrfc3339")
- (version "1.0")
+ (version "1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyRFC3339" version))
(sha256
(base32
- "0dgm4l9y8jiax5cp6yxjd2i27cq8h33sh81n1wfbmnmqb32cdywd"))))
+ "06jv7ar7lpvvk0dixzwdr3wgm0g1lipxs429s2z7knwwa7hwpf41"))))
(build-system python-build-system)
(propagated-inputs
`(("python-pytz" ,python-pytz)))
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index a934a50878..35134025b8 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -12,6 +12,7 @@
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -38,10 +39,14 @@
#:use-module (guix build-system python)
#:use-module (guix build-system cmake)
#:use-module (guix build-system haskell)
+ #:use-module (guix build-system trivial)
#:use-module (gnu packages compression)
#:use-module (gnu packages)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages check)
+ #:use-module (gnu packages curl)
#:use-module (gnu packages dns)
+ #:use-module (gnu packages gawk)
#:use-module (gnu packages guile)
#:use-module (gnu packages haskell)
#:use-module (gnu packages haskell-check)
@@ -459,14 +464,14 @@ required structures.")
(define-public libressl
(package
(name "libressl")
- (version "2.7.3")
+ (version "2.7.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://openbsd/LibreSSL/"
name "-" version ".tar.gz"))
(sha256
(base32
- "1597kj9jy3jyw52ys19sd4blg2gkam5q0rqdxbnrnvnyw67hviqn"))))
+ "19kxa5i97q7p6rrps9qm0nd8zqhdjvzx02j72400c73cl2nryfhy"))))
(build-system gnu-build-system)
(arguments
;; Do as if 'getentropy' was missing since older Linux kernels lack it
@@ -503,13 +508,13 @@ netcat implementation that supports TLS.")
(package
(name "python-acme")
;; Remember to update the hash of certbot when updating python-acme.
- (version "0.24.0")
+ (version "0.25.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "acme" version))
(sha256
(base32
- "1jq1nlly5146k08dw31fc1pw78plya5jswznnd512c08giif0mfn"))))
+ "0d177dhy8a7472pz9v4blrlk02d8fp6s52li7z8v3dv97pvz7da7"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -528,6 +533,7 @@ netcat implementation that supports TLS.")
;; TODO: Add optional inputs for testing.
(native-inputs
`(("python-mock" ,python-mock)
+ ("python-pytest" ,python-pytest)
;; For documentation
("python-sphinx" ,python-sphinx)
("python-sphinxcontrib-programoutput" ,python-sphinxcontrib-programoutput)
@@ -537,6 +543,7 @@ netcat implementation that supports TLS.")
`(("python-josepy" ,python-josepy)
("python-six" ,python-six)
("python-requests" ,python-requests)
+ ("python-requests-toolbelt" ,python-requests-toolbelt)
("python-pytz" ,python-pytz)
("python-pyrfc3339" ,python-pyrfc3339)
("python-pyasn1" ,python-pyasn1)
@@ -558,7 +565,7 @@ netcat implementation that supports TLS.")
(uri (pypi-uri name version))
(sha256
(base32
- "0w3dbz74rpabjnc3l3ybnzjdypbr65lsjqf9yn243b5kid9d8wm0"))))
+ "0kp56gwn1bnlrag9qidhm1i5ifdp5z6y1ravh3yimfrkc4cfa8sw"))))
(build-system python-build-system)
(arguments
`(,@(substitute-keyword-arguments (package-arguments python-acme)
@@ -873,3 +880,69 @@ implement the SSL3.0, TLS1.0, TLS1.1 and TLS1.2 protocol, and support RSA and
Ephemeral (Elliptic curve and regular) Diffie Hellman key exchanges, and many
extensions.")
(license license:bsd-3)))
+
+(define-public dehydrated
+ (package
+ (name "dehydrated")
+ (version "0.6.2")
+ (source (origin
+ (method url-fetch/tarbomb)
+ (uri (string-append
+ "https://github.com/lukas2511/dehydrated/archive/v"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "03p80yj6bnzjc6dkp5hb9wpplmlrla8n5src71cnzw4rj53q8cqn"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((source (assoc-ref %build-inputs "source"))
+ (out (assoc-ref %outputs "out"))
+ (bin (string-append out "/bin"))
+ (bash (in-vicinity (assoc-ref %build-inputs "bash") "bin")))
+ (mkdir-p bin)
+ (with-directory-excursion bin
+ (copy-file
+ (in-vicinity source (string-append "/dehydrated-" ,version
+ "/dehydrated"))
+ (in-vicinity bin "dehydrated"))
+ (patch-shebang "dehydrated" (list bash))
+
+ ;; Do not try to write in the store.
+ (substitute* "dehydrated"
+ (("SCRIPTDIR=\"\\$.*\"") "SCRIPTDIR=~/.dehydrated"))
+
+ (setenv "PATH" bash)
+ (wrap-program "dehydrated"
+ `("PATH" ":" prefix
+ ,(map (lambda (dir)
+ (string-append dir "/bin"))
+ (map (lambda (input)
+ (assoc-ref %build-inputs input))
+ '("coreutils"
+ "curl"
+ "diffutils"
+ "gawk"
+ "grep"
+ "openssl"
+ "sed"))))))
+ #t))))
+ (inputs
+ `(("bash" ,bash)
+ ("coreutils" ,coreutils)
+ ("curl" ,curl)
+ ("diffutils" ,diffutils)
+ ("gawk" ,gawk)
+ ("grep" ,grep)
+ ("openssl" ,openssl)
+ ("sed" ,sed)))
+ (home-page "https://dehydrated.io/")
+ (synopsis "Let's Encrypt/ACME client implemented as a shell script")
+ (description "Dehydrated is a client for signing certificates with an
+ACME-server (currently only provided by Let's Encrypt) implemented as a
+relatively simple Bash script.")
+ (license license:expat)))
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index b18673b81b..56269dd8cf 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -47,14 +47,14 @@
(define-public tor
(package
(name "tor")
- (version "0.3.3.6")
+ (version "0.3.3.7")
(source (origin
(method url-fetch)
(uri (string-append "https://dist.torproject.org/tor-"
version ".tar.gz"))
(sha256
(base32
- "1drk2h8zd05xrfpx7xn77pcxz0hs4nrq6figw56qk5gkvgv5kg4r"))))
+ "036ybfvldj7yfci9ipjki8smpzyxdg8c5r12bghc9yxdqh9basza"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list "--enable-gcc-hardening"
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 5487298929..378a6fcf09 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -1911,7 +1911,7 @@ network protocols, and core version control algorithms.")
(define-public gource
(package
(name "gource")
- (version "0.48")
+ (version "0.49")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1919,7 +1919,7 @@ network protocols, and core version control algorithms.")
"/gource-" version "/gource-" version ".tar.gz"))
(sha256
(base32
- "04qxcm05qiyr9rg2kv6abfy7kkzqr8ziw4iyp1d14lniv93m61dp"))))
+ "12hf5ipcsp9dxsqn84n4kr63xaiskrnf5a084wr29qk171lj7pd9"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 8cd7a3d57c..e31238243f 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -606,14 +606,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
(define-public ffmpeg
(package
(name "ffmpeg")
- (version "4.0")
+ (version "4.0.1")
(source (origin
(method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz"))
(sha256
(base32
- "0gx4ngnhi5glmxh38603qy5n6vq8bl1cr4sqd1xff95i82pmv57d"))))
+ "1vn04n0n46zdxq14cma3w8ml2ckh5jxwlybsc4xmvcqdqq0mqpv0"))))
(build-system gnu-build-system)
(inputs
`(("fontconfig" ,fontconfig)
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 76240d85f1..c6906b12cf 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -450,59 +450,57 @@ trouble using them, because you do not have to remember each snippet name.")
(home-page "https://github.com/Shougo/context_filetype.vim")
(license license:expat)))) ; ??? check again
-;; The 2.2 release was in 2015, no new releases planned.
(define-public vim-fugitive
- (let ((commit "de6c05720cdf74c0218218d7207f700232a5b6dc")
- (revision "1"))
- (package
- (name "vim-fugitive")
- (version (string-append "2.2-" revision "." (string-take commit 7)))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/tpope/vim-fugitive.git")
- (commit commit)))
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "0zg9vv7hirnx45vc2mwgg0xijmwwz55bssyd6cpdz71wbhrcpxxb"))))
- (build-system gnu-build-system)
- (arguments
- '(#:tests? #f
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (delete 'build)
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (vimfiles (string-append out "/share/vim/vimfiles"))
- (doc (string-append vimfiles "/doc"))
- (plugin (string-append vimfiles "/plugin")))
- (copy-recursively "doc" doc)
- (copy-recursively "plugin" plugin)
- #t))))))
- (home-page "https://github.com/tpope/vim-fugitive")
- (synopsis "Vim plugin to work with Git")
- (description "Vim-fugitive is a wrapper for Vim that complements the
+ (package
+ (name "vim-fugitive")
+ (version "2.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tpope/vim-fugitive.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "17s94a8g5z0lrs7yy4nyqyvp9ykys5ws2ar3m3c0bjsn0iazd7m3"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (vimfiles (string-append out "/share/vim/vimfiles"))
+ (doc (string-append vimfiles "/doc"))
+ (plugin (string-append vimfiles "/plugin")))
+ (copy-recursively "doc" doc)
+ (copy-recursively "plugin" plugin)
+ #t))))))
+ (home-page "https://github.com/tpope/vim-fugitive")
+ (synopsis "Vim plugin to work with Git")
+ (description "Vim-fugitive is a wrapper for Vim that complements the
command window, where you can stage and review your changes before the next
commit or run any Git arbitrary command.")
- (license license:vim)))) ; distributed under the same license as vim
+ (license license:vim))) ; distributed under the same license as vim
(define-public vim-airline
(package
(name "vim-airline")
- (version "0.8")
+ (version "0.9")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/vim-airline/vim-airline/"
- "archive/v" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/vim-airline/vim-airline")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "053sfq3jmgdc5y7zbg6jrk7r2hp0raj3y3mxa2h1c1bnkb6wvcaz"))))
+ "0hq3304rhakx7x1v7wll7gxinmfz6561bq97qpj8jrk19rhcab75"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
@@ -575,16 +573,17 @@ and powerline symbols, etc.")
(define-public vim-syntastic
(package
(name "vim-syntastic")
- (version "3.8.0")
+ (version "3.9.0")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/vim-syntastic/syntastic/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/vim-syntastic/syntastic")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0wsnd9bsp5x6yiw96h1bnd1vyxdkh130hb82kyyxydgsplx92ima"))))
+ "121a1mxgfng2y5zmivyyk02mca8pyw72crivf4f1q9nhn0barf57"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index d2419df980..61f0245289 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -45,6 +45,7 @@
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
@@ -52,6 +53,7 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
+ #:use-module (gnu packages package-management)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages polkit)
@@ -71,6 +73,7 @@
#:use-module (guix build-system go)
#:use-module (guix build-system python)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module ((guix licenses) #:select (gpl2 gpl2+ gpl3+ lgpl2.1 lgpl2.1+
asl2.0))
#:use-module (guix packages)
@@ -864,3 +867,110 @@ packaged according to the
Container Initiative (OCI) format} and is a compliant implementation of the
Open Container Initiative specification.")
(license asl2.0)))
+
+(define-public umoci
+ (package
+ (name "umoci")
+ (version "0.4.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/openSUSE/umoci/releases/download/v"
+ version "/umoci.tar.xz"))
+ (file-name (string-append "umoci-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0hg7hs4dagj2fgymm4b4s68k1v2k2093s3jg0d94j0ixhfmyg9nd"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/openSUSE/umoci"
+ #:install-source? #f
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'unpack
+ (lambda* (#:key source import-path #:allow-other-keys)
+ ;; Unpack the tarball into 'umoci' instead of "runc-${version}".
+ (let ((dest (string-append "src/" import-path)))
+ (mkdir-p dest)
+ (invoke "tar" "-C" (string-append "src/" import-path)
+ "--strip-components=1"
+ "-xvf" source))))
+ (replace 'build
+ (lambda* (#:key import-path #:allow-other-keys)
+ (chdir (string-append "src/" import-path))
+ ;; TODO: build manpages with 'go-md2man'.
+ (invoke "make" "SHELL=bash")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bindir (string-append out "/bin")))
+ (install-file "umoci" bindir)
+ #t))))))
+ (home-page "https://umo.ci/")
+ (synopsis "Tool for modifying Open Container images")
+ (description
+ "@command{umoci} is a tool that allows for high-level modification of an
+Open Container Initiative (OCI) image layout and its tagged images.")
+ (license asl2.0)))
+
+(define-public skopeo
+ (package
+ (name "skopeo")
+ (version "0.1.28")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/projectatomic/skopeo")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "068nwrr3nr27alravcq1sxyhdd5jjr24213vdgn1dqva3885gbi0"))))
+ (build-system go-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("btrfs-progs" ,btrfs-progs)
+ ("eudev" ,eudev)
+ ("libassuan" ,libassuan)
+ ("libselinux" ,libselinux)
+ ("libostree" ,libostree)
+ ("lvm2" ,lvm2)
+ ("glib" ,glib)
+ ("gpgme" ,gpgme)))
+ (arguments
+ '(#:import-path "github.com/projectatomic/skopeo"
+ #:install-source? #f
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'build
+ (lambda* (#:key import-path #:allow-other-keys)
+ (chdir (string-append "src/" import-path))
+ ;; TODO: build manpages with 'go-md2man'.
+ (invoke "make" "binary-local")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (invoke "make" "install-binary" "install-completions"
+ (string-append "PREFIX=" out))))))))
+ (home-page "https://github.com/projectatomic/skopeo")
+ (synopsis "Interact with container images and container image registries")
+ (description
+ "@command{skopeo} is a command line utility providing various operations
+with container images and container image registries. It can:
+@enumerate
+
+@item Copy container images between various containers image stores,
+converting them as necessary.
+
+@item Convert a Docker schema 2 or schema 1 container image to an OCI image.
+
+@item Inspect a repository on a container registry without needlessly pulling
+the image.
+
+@item Sign and verify container images.
+
+@item Delete container images from a remote container registry.
+
+@end enumerate")
+ (license asl2.0)))
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index d116011206..19058de2d3 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -4024,14 +4024,14 @@ objects in HTML format.")
(define-public r-rjson
(package
(name "r-rjson")
- (version "0.2.19")
+ (version "0.2.20")
(source
(origin
(method url-fetch)
(uri (cran-uri "rjson" version))
(sha256
(base32
- "1g29vp3gfbh73a5br68jydsrigia4vnr5avc84avgwl6353749jw"))))
+ "0v1zvdd3svnavklh7y5xbwrrkbvx6053r4c5hgnk7hz7bqg7qa1s"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/rjson")
(synopsis "JSON library for R")
@@ -6117,6 +6117,11 @@ infrastructure")))
(inherit java-eclipse-jetty-security)
(version (package-version java-eclipse-jetty-util-9.2))
(source (package-source java-eclipse-jetty-util-9.2))
+ (arguments
+ `(#:test-exclude
+ ;; This test fails.
+ (list "**/ConstraintTest.*")
+ ,@(package-arguments java-eclipse-jetty-security)))
(inputs
`(("util" ,java-eclipse-jetty-util-9.2)
("http" ,java-eclipse-jetty-http-9.2)
@@ -6182,6 +6187,107 @@ container.")))
("server" ,java-eclipse-jetty-server-9.2)
,@(package-inputs java-eclipse-jetty-util-9.2)))))
+(define-public java-eclipse-jetty-xml
+ (package
+ (inherit java-eclipse-jetty-util)
+ (name "java-eclipse-jetty-xml")
+ (arguments
+ `(#:jar-name "eclipse-jetty-xml.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ #:tests? #f; most tests require network
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "jetty-xml")
+ #t)))))
+ (inputs
+ `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)))
+ (native-inputs
+ `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
+ ,@(package-native-inputs java-eclipse-jetty-util)))))
+
+(define-public java-eclipse-jetty-xml-9.2
+ (package
+ (inherit java-eclipse-jetty-xml)
+ (version (package-version java-eclipse-jetty-util-9.2))
+ (source (package-source java-eclipse-jetty-util-9.2))
+ (arguments
+ `(#:jar-name "eclipse-jetty-xml.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ #:tests? #f; most tests require network
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "jetty-xml")
+ #t)))))
+ (inputs
+ `(("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
+ ,@(package-inputs java-eclipse-jetty-util-9.2)))
+ (native-inputs
+ `(("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
+ ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
+
+(define-public java-eclipse-jetty-webapp
+ (package
+ (inherit java-eclipse-jetty-util)
+ (name "java-eclipse-jetty-webapp")
+ (arguments
+ `(#:jar-name "eclipse-jetty-webapp.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ ;; One test fails
+ #:test-exclude (list "**/WebAppContextTest.java")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "jetty-webapp")
+ #t)))))
+ (inputs
+ `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)
+ ("java-eclipse-jetty-http" ,java-eclipse-jetty-http)
+ ("java-eclipse-jetty-server" ,java-eclipse-jetty-server)
+ ("java-eclipse-jetty-servlet" ,java-eclipse-jetty-servlet)
+ ("java-eclipse-jetty-security" ,java-eclipse-jetty-security)
+ ("java-eclipse-jetty-xml" ,java-eclipse-jetty-xml)
+ ("java-tomcat" ,java-tomcat)))
+ (native-inputs
+ `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
+ ,@(package-native-inputs java-eclipse-jetty-util)))))
+
+(define-public java-eclipse-jetty-webapp-9.2
+ (package
+ (inherit java-eclipse-jetty-webapp)
+ (version (package-version java-eclipse-jetty-util-9.2))
+ (source (package-source java-eclipse-jetty-util-9.2))
+ (arguments
+ `(#:jar-name "eclipse-jetty-webapp.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ #:test-exclude (list "**/WebAppContextTest.java")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "jetty-webapp")
+ #t)))))
+ (inputs
+ `(("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
+ ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
+ ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
+ ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
+ ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
+ ("java-eclipse-jetty-xml-9.2" ,java-eclipse-jetty-xml-9.2)
+ ("java-tomcat" ,java-tomcat)
+ ,@(package-inputs java-eclipse-jetty-util-9.2)))
+ (native-inputs
+ `(("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
+ ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
+
(define-public java-jsoup
(package
(name "java-jsoup")
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index bee6f0571f..6a936c7916 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -223,7 +223,7 @@ integrate Windows applications into your desktop.")
(define-public wine-staging-patchset-data
(package
(name "wine-staging-patchset-data")
- (version "3.9")
+ (version "3.10")
(source
(origin
(method url-fetch)
@@ -232,7 +232,7 @@ integrate Windows applications into your desktop.")
(file-name (string-append name "-" version ".zip"))
(sha256
(base32
- "0akccqrp1ymjrra2c99f6hxlaa77jyihfs3q8x93vkgb9c0lq5xx"))))
+ "14rf3g9szxygbd6ypg6zbqw1h84rn8gqgrzwi607xwgh8wm59sli"))))
(build-system trivial-build-system)
(native-inputs
`(("bash" ,bash)
@@ -279,7 +279,7 @@ integrate Windows applications into your desktop.")
(file-name (string-append name "-" version ".tar.xz"))
(sha256
(base32
- "0ddphvlp9lsjyqc6zckinc36bggpkg925v0x2vqr8nkdjs0w5bfc"))))
+ "1df6g8g5nfb4ca218m78giqp3k1fmv0grv26387rbn3wkk3mql6p"))))
(inputs `(("autoconf" ,autoconf) ; for autoreconf
("gtk+" ,gtk+)
("libva" ,libva)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 8ea44f59d2..dc38b41494 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -531,7 +531,7 @@ selection's dimensions to stdout.")
(define-public maim
(package
(name "maim")
- (version "5.5.1")
+ (version "5.5.2")
(source (origin
(method url-fetch)
(uri (string-append
@@ -540,7 +540,7 @@ selection's dimensions to stdout.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1dvw0axnr9hhjg6zdcq9lwvaq0x7vrzlz00p8n3hj25qzsi4z5as"))))
+ "14zdhsx1cndg5m8wbv1rqmza7wgknwfj5h0knzxg3p2jkjw66i95"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; no "check" target
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 5c31a9e669..9112d0273f 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -263,13 +263,11 @@ the @code{Graph} class and write it out in a specific file format.")
(getenv "PERL5LIB")))
#t)))))
(native-inputs
- `(("perl-datetime" ,perl-datetime)
- ;; TODO package: perl-datetime-format-atom
- ("perl-html-tagset" ,perl-html-tagset)
+ ;; TODO package: perl-datetime-format-atom
+ `(("perl-html-tagset" ,perl-html-tagset)
("perl-module-build-tiny" ,perl-module-build-tiny)
- ("perl-module-install" ,perl-module-install)
- ("perl-xml-xpath" ,perl-xml-xpath)))
- (inputs
+ ("perl-module-install" ,perl-module-install)))
+ (propagated-inputs
`(("perl-class-data-inheritable" ,perl-class-data-inheritable)
("perl-datetime" ,perl-datetime)
("perl-datetime-timezone" ,perl-datetime-timezone)
@@ -418,14 +416,14 @@ XML parser and the high performance DOM implementation.")
(define-public perl-xml-libxml-simple
(package
(name "perl-xml-libxml-simple")
- (version "0.97")
+ (version "0.99")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
"XML-LibXML-Simple-" version ".tar.gz"))
(sha256
(base32
- "1g8nlk3zdz2cclxf7azvsb3jfxmvy6ml8wmj774k4qjqcsqmzk0w"))))
+ "0i4ybiqdnvnbfxqslw2y392kvy7i752dl8n99bqiqv5kzk4lbzhl"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
@@ -815,18 +813,18 @@ RSS 0.91, RSS 1.0, RSS 2.0, Atom")
(define-public perl-xml-xpath
(package
(name "perl-xml-xpath")
- (version "1.40")
+ (version "1.42")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/"
"XML-XPath-" version ".tar.gz"))
(sha256
(base32
- "07pa0bl42jka8mj7jshjynx8vpfh8b4cdyiv4zlkqvkqz98nzxib"))))
+ "04mm91kxav598ax7nlg81dhnvanwvg6bkf30l0cgkmga5iyccsly"))))
(build-system perl-build-system)
(native-inputs
`(("perl-path-tiny" ,perl-path-tiny)))
- (inputs
+ (propagated-inputs
`(("perl-xml-parser" ,perl-xml-parser)))
(home-page "http://search.cpan.org/dist/XML-XPath")
(synopsis "Parse and evaluate XPath statements")
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 278d396400..db801fd268 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -15,6 +15,7 @@
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -5855,6 +5856,34 @@ perl programs to display windows and graphics on X11 servers.")
;; for details)."
(license license:perl-license)))
+(define-public perl-x11-protocol-other
+ (package
+ (name "perl-x11-protocol-other")
+ (version "30")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/K/KR/KRYDE/X11-Protocol-Other-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1mambi57cdkj82wiw1l8y2f70a60qsamdas0165hlj10drryfgrj"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-encode-hanextra" ,perl-encode-hanextra)
+ ("perl-module-util" ,perl-module-util)))
+ (propagated-inputs
+ `(("perl-x11-protocol" ,perl-x11-protocol)))
+ (home-page "http://search.cpan.org/dist/X11-Protocol-Other/")
+ (synopsis "Miscellaneous helpers for @code{X11::Protocol} connections")
+ (description
+ "@code{X11::Protocol::Other} contains window manager related functions for
+use by client programs, as per the @dfn{ICCCM} (Inter-Client Communication
+Conventions Manual) and some of the @dfn{EWMH}
+(Extended Window Manager Hints).")
+ (license license:gpl3+)))
+
(define-public xcompmgr
(package
(name "xcompmgr")
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index b34bb7132b..68411439db 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -1592,8 +1592,9 @@ failed to register hydra.gnu.org public key: ~a~%" status))))))))
(call-with-output-file #$output
(lambda (port)
- (write (call-with-input-file "graph"
- read-reference-graph)
+ (write (map store-info-item
+ (call-with-input-file "graph"
+ read-reference-graph))
port)))))
#:options `(#:local-build? #f
#:references-graphs (("graph" ,item))))
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index e4441f6475..d5d0cf9d1d 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -608,7 +609,7 @@ demand.")))
(call-with-output-file #$output
(lambda (port)
(display "\
-# The beginning was automatically added.
+### These lines were generated from your system configuration:
User tor
DataDirectory /var/lib/tor
Log notice syslog\n" port)
@@ -628,6 +629,9 @@ HiddenServicePort ~a ~a~%"
(cons name mapping)))
services))
+ (display "\
+### End of automatically generated lines.\n\n" port)
+
;; Append the user's config file.
(call-with-input-file #$config-file
(lambda (input)
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index aae2f3db0d..9a58eff5ef 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -77,6 +77,7 @@
nginx-configuration-upstream-blocks
nginx-configuration-server-names-hash-bucket-size
nginx-configuration-server-names-hash-bucket-max-size
+ nginx-configuration-extra-content
nginx-configuration-file
<nginx-server-configuration>
@@ -431,6 +432,8 @@
(default #f))
(server-names-hash-bucket-max-size nginx-configuration-server-names-hash-bucket-max-size
(default #f))
+ (extra-content nginx-configuration-extra-content
+ (default ""))
(file nginx-configuration-file ;#f | string | file-like
(default #f)))
@@ -521,7 +524,8 @@ of index files."
(nginx log-directory run-directory
server-blocks upstream-blocks
server-names-hash-bucket-size
- server-names-hash-bucket-max-size)
+ server-names-hash-bucket-max-size
+ extra-content)
(apply mixed-text-file "nginx.conf"
(flatten
"user nginx nginx;\n"
@@ -550,7 +554,8 @@ of index files."
"\n"
(map emit-nginx-upstream-config upstream-blocks)
(map emit-nginx-server-config server-blocks)
- "}\n"
+ extra-content
+ "\n}\n"
"events {}\n"))))
(define %nginx-accounts
diff --git a/gnu/system.scm b/gnu/system.scm
index e6118d3415..7cb12a8276 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -602,7 +602,7 @@ directory."
# because they would require combining both profiles.
# FIXME: See <http://bugs.gnu.org/20255>.
export MANPATH=$HOME/.guix-profile/share/man:/run/current-system/profile/share/man
-export INFOPATH=$HOME/.config/guix/current/share/info:$HOME/.guix-profile/share/info:/run/current-system/profile/share/info
+export INFOPATH=$HOME/.guix-profile/share/info:/run/current-system/profile/share/info
export XDG_DATA_DIRS=$HOME/.guix-profile/share:/run/current-system/profile/share
export XDG_CONFIG_DIRS=$HOME/.guix-profile/etc/xdg:/run/current-system/profile/etc/xdg
@@ -630,7 +630,8 @@ then
export `cat /etc/environment | cut -d= -f1`
fi
-for profile in \"$HOME/.config/guix/current\" \"$HOME/.guix-profile\"
+# Arrange so that ~/.config/guix/current comes first.
+for profile in \"$HOME/.guix-profile\" \"$HOME/.config/guix/current\"
do
if [ -f \"$profile/etc/profile\" ]
then
@@ -644,6 +645,9 @@ do
fi
done
+# Arrange so that ~/.config/guix/current/share/info comes first.
+export INFOPATH=\"$HOME/.config/guix/current/share/info:$INFOPATH\"
+
# Set the umask, notably for users logging in via 'lsh'.
# See <http://bugs.gnu.org/22650>.
umask 022
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index 2b5948256a..393dd0df70 100644
--- a/gnu/system/file-systems.scm
+++ b/gnu/system/file-systems.scm
@@ -194,10 +194,15 @@
;; differs from user to user.
(define (%store-prefix)
"Return the store prefix."
- (cond ((resolve-module '(guix store) #:ensure #f)
+ ;; Note: If we have (guix store database) in the search path and we do *not*
+ ;; have (guix store) proper, 'resolve-module' returns an empty (guix store)
+ ;; with one sub-module.
+ (cond ((and=> (resolve-module '(guix store) #:ensure #f)
+ (lambda (store)
+ (module-variable store '%store-prefix)))
=>
- (lambda (store)
- ((module-ref store '%store-prefix))))
+ (lambda (variable)
+ ((variable-ref variable))))
((getenv "NIX_STORE")
=> identity)
(else
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 35f4ba9c24..6a3ae1947b 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -54,7 +54,8 @@
novena-installation-os
pine64-plus-installation-os
rk3399-puma-installation-os
- wandboard-installation-os))
+ wandboard-installation-os
+ os-with-u-boot))
;;; Commentary:
;;;
@@ -386,6 +387,19 @@ You have been warned. Thanks for being so brave.\x1b[0m
nvi ;:wq!
%base-packages))))
+(define* (os-with-u-boot os board #:key (bootloader-target "/dev/mmcblk0")
+ (triplet "arm-linux-gnueabihf"))
+ "Given OS, amend it with the u-boot bootloader for BOARD,
+installed to BOOTLOADER-TARGET (a drive), compiled for TRIPLET.
+
+If you want a serial console, make sure to specify one in your
+operating-system's kernel-arguments (\"console=ttyS0\" or similar)."
+ (operating-system (inherit os)
+ (bootloader (bootloader-configuration
+ (bootloader (bootloader (inherit u-boot-bootloader)
+ (package (make-u-boot-package board triplet))))
+ (target bootloader-target)))))
+
(define* (embedded-installation-os bootloader bootloader-target tty
#:key (extra-modules '()))
"Return an installation os for embedded systems.
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm
index a2cca0a93b..c452bdd894 100644
--- a/gnu/system/mapped-devices.scm
+++ b/gnu/system/mapped-devices.scm
@@ -32,7 +32,8 @@
#:use-module (gnu system uuid)
#:autoload (gnu build file-systems) (find-partition-by-luks-uuid)
#:autoload (gnu build linux-modules)
- (device-module-aliases matching-modules known-module-aliases)
+ (device-module-aliases matching-modules known-module-aliases
+ normalize-module-name)
#:autoload (gnu packages cryptsetup) (cryptsetup-static)
#:autoload (gnu packages linux) (mdadm-static)
#:use-module (srfi srfi-1)
@@ -127,10 +128,15 @@ DEVICE must be a \"/dev\" file name."
(const #f)))
(when aliases
- (let ((modules (delete-duplicates
- (append-map (cut matching-modules <> aliases)
- (device-module-aliases device)))))
- (unless (every (cute member <> linux-modules) modules)
+ (let ((modules (delete-duplicates
+ (append-map (cut matching-modules <> aliases)
+ (device-module-aliases device))))
+
+ ;; Module names (not file names) are supposed to use underscores
+ ;; instead of hyphens. MODULES is a list of module names, whereas
+ ;; LINUX-MODULES is file names without '.ko', so normalize them.
+ (provided (map normalize-module-name linux-modules)))
+ (unless (every (cut member <> provided) modules)
(raise (condition
(&message
(message (format #f (G_ "you may need these modules \
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 544c0e294d..b505b0cf6b 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -34,6 +34,7 @@
#:use-module (guix utils)
#:use-module (guix hash)
#:use-module (guix base32)
+ #:use-module ((guix self) #:select (make-config.scm))
#:use-module ((gnu build vm)
#:select (qemu-command))
@@ -50,7 +51,6 @@
#:use-module (gnu packages disk)
#:use-module (gnu packages zile)
#:use-module (gnu packages linux)
- #:use-module (gnu packages package-management)
#:use-module ((gnu packages make-bootstrap)
#:select (%guile-static-stripped))
#:use-module (gnu packages admin)
@@ -116,6 +116,19 @@
(options "trans=virtio")
(check? #f))))
+(define not-config?
+ ;; Select (guix …) and (gnu …) modules, except (guix config).
+ (match-lambda
+ (('guix 'config) #f)
+ (('guix rest ...) #t)
+ (('gnu rest ...) #t)
+ (rest #f)))
+
+(define guile-sqlite3&co
+ ;; Guile-SQLite3 and its propagated inputs.
+ (cons guile-sqlite3
+ (package-transitive-propagated-inputs guile-sqlite3)))
+
(define* (expression->derivation-in-linux-vm name exp
#:key
(system (%current-system))
@@ -151,12 +164,28 @@ based on the size of the closure of REFERENCES-GRAPHS.
When REFERENCES-GRAPHS is true, it must be a list of file name/store path
pairs, as for `derivation'. The files containing the reference graphs are
made available under the /xchg CIFS share."
+ (define config
+ ;; (guix config) module for consumption by (guix gcrypt).
+ (make-config.scm #:libgcrypt libgcrypt))
+
+ (define user-builder
+ (program-file "builder-in-linux-vm" exp))
+
+ (define loader
+ ;; Invoke USER-BUILDER instead using 'primitive-load'. The reason for
+ ;; this is to allow USER-BUILDER to dlopen stuff by using a full-featured
+ ;; Guile, which it couldn't do using the statically-linked guile used in
+ ;; the initrd. See example at
+ ;; <https://lists.gnu.org/archive/html/guix-devel/2017-10/msg00233.html>.
+ (program-file "linux-vm-loader"
+ ;; When USER-BUILDER succeeds, reboot (indicating a
+ ;; success), otherwise die, which causes a kernel panic
+ ;; ("Attempted to kill init!").
+ #~(when (zero? (system* #$user-builder))
+ (reboot))))
+
(mlet* %store-monad
- ((user-builder (gexp->file "builder-in-linux-vm" exp))
- (loader (gexp->file "linux-vm-loader"
- #~(primitive-load #$user-builder)))
- (coreutils -> (canonical-package coreutils))
- (initrd (if initrd ; use the default initrd?
+ ((initrd (if initrd ; use the default initrd?
(return initrd)
(base-initrd file-systems
#:on-error 'backtrace
@@ -166,40 +195,44 @@ made available under the /xchg CIFS share."
(define builder
;; Code that launches the VM that evaluates EXP.
- (with-imported-modules (source-module-closure '((guix build utils)
- (gnu build vm)))
- #~(begin
- (use-modules (guix build utils)
- (gnu build vm))
-
- (let* ((inputs '#$(list qemu coreutils))
- (linux (string-append #$linux "/"
- #$(system-linux-image-file-name)))
- (initrd (string-append #$initrd "/initrd"))
- (loader #$loader)
- (graphs '#$(match references-graphs
- (((graph-files . _) ...) graph-files)
- (_ #f)))
- (size #$(if (eq? 'guess disk-image-size)
- #~(+ (* 70 (expt 2 20)) ;ESP
- (estimated-partition-size graphs))
- disk-image-size)))
-
- (set-path-environment-variable "PATH" '("bin") inputs)
-
- (load-in-linux-vm loader
- #:output #$output
- #:linux linux #:initrd initrd
- #:memory-size #$memory-size
- #:make-disk-image? #$make-disk-image?
- #:single-file-output? #$single-file-output?
- ;; FIXME: ‘target-arm32?’ may not operate on
- ;; the right system/target values. Rewrite
- ;; using ‘let-system’ when available.
- #:target-arm32? #$(target-arm32?)
- #:disk-image-format #$disk-image-format
- #:disk-image-size size
- #:references-graphs graphs)))))
+ (with-extensions guile-sqlite3&co
+ (with-imported-modules `(,@(source-module-closure
+ '((guix build utils)
+ (gnu build vm))
+ #:select? not-config?)
+ ((guix config) => ,config))
+ #~(begin
+ (use-modules (guix build utils)
+ (gnu build vm))
+
+ (let* ((inputs '#$(list qemu (canonical-package coreutils)))
+ (linux (string-append #$linux "/"
+ #$(system-linux-image-file-name)))
+ (initrd (string-append #$initrd "/initrd"))
+ (loader #$loader)
+ (graphs '#$(match references-graphs
+ (((graph-files . _) ...) graph-files)
+ (_ #f)))
+ (size #$(if (eq? 'guess disk-image-size)
+ #~(+ (* 70 (expt 2 20)) ;ESP
+ (estimated-partition-size graphs))
+ disk-image-size)))
+
+ (set-path-environment-variable "PATH" '("bin") inputs)
+
+ (load-in-linux-vm loader
+ #:output #$output
+ #:linux linux #:initrd initrd
+ #:memory-size #$memory-size
+ #:make-disk-image? #$make-disk-image?
+ #:single-file-output? #$single-file-output?
+ ;; FIXME: ‘target-arm32?’ may not operate on
+ ;; the right system/target values. Rewrite
+ ;; using ‘let-system’ when available.
+ #:target-arm32? #$(target-arm32?)
+ #:disk-image-format #$disk-image-format
+ #:disk-image-size size
+ #:references-graphs graphs))))))
(gexp->derivation name builder
;; TODO: Require the "kvm" feature.
@@ -222,43 +255,56 @@ made available under the /xchg CIFS share."
"Return a bootable, stand-alone iso9660 image.
INPUTS is a list of inputs (as for packages)."
+ (define config
+ (make-config.scm #:libgcrypt libgcrypt))
+
+ (define schema
+ (and register-closures?
+ (local-file (search-path %load-path
+ "guix/store/schema.sql"))))
+
(expression->derivation-in-linux-vm
name
- (with-imported-modules (source-module-closure '((gnu build vm)
- (guix build utils)))
- #~(begin
- (use-modules (gnu build vm)
- (guix build utils))
-
- (let ((inputs
- '#$(append (list qemu parted e2fsprogs dosfstools xorriso)
- (map canonical-package
- (list sed grep coreutils findutils gawk))
- (if register-closures? (list guix) '())))
-
-
- (graphs '#$(match inputs
- (((names . _) ...)
- names)))
- ;; This variable is unused but allows us to add INPUTS-TO-COPY
- ;; as inputs.
- (to-register
- '#$(map (match-lambda
- ((name thing) thing)
- ((name thing output) `(,thing ,output)))
- inputs)))
-
- (set-path-environment-variable "PATH" '("bin" "sbin") inputs)
- (make-iso9660-image #$(bootloader-package bootloader)
- #$bootcfg-drv
- #$os-drv
- "/xchg/guixsd.iso"
- #:register-closures? #$register-closures?
- #:closures graphs
- #:volume-id #$file-system-label
- #:volume-uuid #$(and=> file-system-uuid
- uuid-bytevector))
- (reboot))))
+ (with-extensions guile-sqlite3&co
+ (with-imported-modules `(,@(source-module-closure '((gnu build vm)
+ (guix store database)
+ (guix build utils))
+ #:select? not-config?)
+ ((guix config) => ,config))
+ #~(begin
+ (use-modules (gnu build vm)
+ (guix store database)
+ (guix build utils))
+
+ (sql-schema #$schema)
+
+ (let ((inputs
+ '#$(append (list qemu parted e2fsprogs dosfstools xorriso)
+ (map canonical-package
+ (list sed grep coreutils findutils gawk))))
+
+
+ (graphs '#$(match inputs
+ (((names . _) ...)
+ names)))
+ ;; This variable is unused but allows us to add INPUTS-TO-COPY
+ ;; as inputs.
+ (to-register
+ '#$(map (match-lambda
+ ((name thing) thing)
+ ((name thing output) `(,thing ,output)))
+ inputs)))
+
+ (set-path-environment-variable "PATH" '("bin" "sbin") inputs)
+ (make-iso9660-image #$(bootloader-package bootloader)
+ #$bootcfg-drv
+ #$os-drv
+ "/xchg/guixsd.iso"
+ #:register-closures? #$register-closures?
+ #:closures graphs
+ #:volume-id #$file-system-label
+ #:volume-uuid #$(and=> file-system-uuid
+ uuid-bytevector))))))
#:system system
;; Keep a local file system for /tmp so that we can populate it directly as
@@ -301,91 +347,104 @@ INPUTS is a list of inputs (as for packages). When COPY-INPUTS? is true, copy
all of INPUTS into the image being built. When REGISTER-CLOSURES? is true,
register INPUTS in the store database of the image so that Guix can be used in
the image."
+ (define config
+ (make-config.scm #:libgcrypt libgcrypt))
+
+ (define schema
+ (and register-closures?
+ (local-file (search-path %load-path
+ "guix/store/schema.sql"))))
+
(expression->derivation-in-linux-vm
name
- (with-imported-modules (source-module-closure '((gnu build bootloader)
- (gnu build vm)
- (guix build utils)))
- #~(begin
- (use-modules (gnu build bootloader)
- (gnu build vm)
- (guix build utils)
- (srfi srfi-26)
- (ice-9 binary-ports))
-
- (let ((inputs
- '#$(append (list qemu parted e2fsprogs dosfstools)
- (map canonical-package
- (list sed grep coreutils findutils gawk))
- (if register-closures? (list guix) '())))
-
- ;; This variable is unused but allows us to add INPUTS-TO-COPY
- ;; as inputs.
- (to-register
- '#$(map (match-lambda
- ((name thing) thing)
- ((name thing output) `(,thing ,output)))
- inputs)))
-
- (set-path-environment-variable "PATH" '("bin" "sbin") inputs)
-
- (let* ((graphs '#$(match inputs
- (((names . _) ...)
- names)))
- (initialize (root-partition-initializer
- #:closures graphs
- #:copy-closures? #$copy-inputs?
- #:register-closures? #$register-closures?
- #:system-directory #$os-drv))
- (root-size #$(if (eq? 'guess disk-image-size)
- #~(max
- ;; Minimum 20 MiB root size
- (* 20 (expt 2 20))
- (estimated-partition-size
- (map (cut string-append "/xchg/" <>)
- graphs)))
- (- disk-image-size
- (* 50 (expt 2 20)))))
- (partitions
- (append
- (list (partition
- (size root-size)
- (label #$file-system-label)
- (uuid #$(and=> file-system-uuid
- uuid-bytevector))
- (file-system #$file-system-type)
- (flags '(boot))
- (initializer initialize)))
- ;; Append a small EFI System Partition for use with UEFI
- ;; bootloaders if we are not targeting ARM because UEFI
- ;; support in U-Boot is experimental.
- ;;
- ;; FIXME: ‘target-arm32?’ may be not operate on the right
- ;; system/target values. Rewrite using ‘let-system’ when
- ;; available.
- (if #$(target-arm32?)
- '()
- (list (partition
- ;; The standalone grub image is about 10MiB, but
- ;; leave some room for custom or multiple images.
- (size (* 40 (expt 2 20)))
- (label "GNU-ESP") ;cosmetic only
- ;; Use "vfat" here since this property is used
- ;; when mounting. The actual FAT-ness is based
- ;; on file system size (16 in this case).
- (file-system "vfat")
- (flags '(esp))))))))
- (initialize-hard-disk "/dev/vda"
- #:partitions partitions
- #:grub-efi #$grub-efi
- #:bootloader-package
- #$(bootloader-package bootloader)
- #:bootcfg #$bootcfg-drv
- #:bootcfg-location
- #$(bootloader-configuration-file bootloader)
- #:bootloader-installer
- #$(bootloader-installer bootloader))
- (reboot)))))
+ (with-extensions guile-sqlite3&co
+ (with-imported-modules `(,@(source-module-closure '((gnu build vm)
+ (gnu build bootloader)
+ (guix store database)
+ (guix build utils))
+ #:select? not-config?)
+ ((guix config) => ,config))
+ #~(begin
+ (use-modules (gnu build bootloader)
+ (gnu build vm)
+ (guix store database)
+ (guix build utils)
+ (srfi srfi-26)
+ (ice-9 binary-ports))
+
+ (sql-schema #$schema)
+
+ (let ((inputs
+ '#$(append (list qemu parted e2fsprogs dosfstools)
+ (map canonical-package
+ (list sed grep coreutils findutils gawk))))
+
+ ;; This variable is unused but allows us to add INPUTS-TO-COPY
+ ;; as inputs.
+ (to-register
+ '#$(map (match-lambda
+ ((name thing) thing)
+ ((name thing output) `(,thing ,output)))
+ inputs)))
+
+ (set-path-environment-variable "PATH" '("bin" "sbin") inputs)
+
+ (let* ((graphs '#$(match inputs
+ (((names . _) ...)
+ names)))
+ (initialize (root-partition-initializer
+ #:closures graphs
+ #:copy-closures? #$copy-inputs?
+ #:register-closures? #$register-closures?
+ #:system-directory #$os-drv))
+ (root-size #$(if (eq? 'guess disk-image-size)
+ #~(max
+ ;; Minimum 20 MiB root size
+ (* 20 (expt 2 20))
+ (estimated-partition-size
+ (map (cut string-append "/xchg/" <>)
+ graphs)))
+ (- disk-image-size
+ (* 50 (expt 2 20)))))
+ (partitions
+ (append
+ (list (partition
+ (size root-size)
+ (label #$file-system-label)
+ (uuid #$(and=> file-system-uuid
+ uuid-bytevector))
+ (file-system #$file-system-type)
+ (flags '(boot))
+ (initializer initialize)))
+ ;; Append a small EFI System Partition for use with UEFI
+ ;; bootloaders if we are not targeting ARM because UEFI
+ ;; support in U-Boot is experimental.
+ ;;
+ ;; FIXME: ‘target-arm32?’ may be not operate on the right
+ ;; system/target values. Rewrite using ‘let-system’ when
+ ;; available.
+ (if #$(target-arm32?)
+ '()
+ (list (partition
+ ;; The standalone grub image is about 10MiB, but
+ ;; leave some room for custom or multiple images.
+ (size (* 40 (expt 2 20)))
+ (label "GNU-ESP") ;cosmetic only
+ ;; Use "vfat" here since this property is used
+ ;; when mounting. The actual FAT-ness is based
+ ;; on file system size (16 in this case).
+ (file-system "vfat")
+ (flags '(esp))))))))
+ (initialize-hard-disk "/dev/vda"
+ #:partitions partitions
+ #:grub-efi #$grub-efi
+ #:bootloader-package
+ #$(bootloader-package bootloader)
+ #:bootcfg #$bootcfg-drv
+ #:bootcfg-location
+ #$(bootloader-configuration-file bootloader)
+ #:bootloader-installer
+ #$(bootloader-installer bootloader)))))))
#:system system
#:make-disk-image? #t
#:disk-image-size disk-image-size
@@ -403,49 +462,41 @@ makes sense when you want to build a GuixSD Docker image that has Guix
installed inside of it. If you don't need Guix (e.g., your GuixSD Docker
image just contains a web server that is started by the Shepherd), then you
should set REGISTER-CLOSURES? to #f."
- (define not-config?
- (match-lambda
- (('guix 'config) #f)
- (('guix rest ...) #t)
- (('gnu rest ...) #t)
- (rest #f)))
-
(define config
;; (guix config) module for consumption by (guix gcrypt).
- (scheme-file "gcrypt-config.scm"
- #~(begin
- (define-module (guix config)
- #:export (%libgcrypt))
+ (make-config.scm #:libgcrypt libgcrypt))
- ;; XXX: Work around <http://bugs.gnu.org/15602>.
- (eval-when (expand load eval)
- (define %libgcrypt
- #+(file-append libgcrypt "/lib/libgcrypt"))))))
+ (define schema
+ (and register-closures?
+ (local-file (search-path %load-path
+ "guix/store/schema.sql"))))
(mlet %store-monad ((os-drv (operating-system-derivation os #:container? #t))
(name -> (string-append name ".tar.gz"))
(graph -> "system-graph"))
(define build
- (with-extensions (list guile-json) ;for (guix docker)
+ (with-extensions (cons guile-json ;for (guix docker)
+ guile-sqlite3&co) ;for (guix store database)
(with-imported-modules `(,@(source-module-closure
'((guix docker)
+ (guix store database)
(guix build utils)
+ (guix build store-copy)
(gnu build vm))
#:select? not-config?)
- (guix build store-copy)
((guix config) => ,config))
#~(begin
(use-modules (guix docker)
(guix build utils)
(gnu build vm)
(srfi srfi-19)
- (guix build store-copy))
+ (guix build store-copy)
+ (guix store database))
- (let* ((inputs '#$(append (list tar)
- (if register-closures?
- (list guix)
- '())))
- ;; This initializer requires elevated privileges that are
+ ;; Set the SQL schema location.
+ (sql-schema #$schema)
+
+ (let* (;; This initializer requires elevated privileges that are
;; not normally available in the build environment (e.g.,
;; it needs to create device nodes). In order to obtain
;; such privileges, we run it as root in a VM.
@@ -460,33 +511,22 @@ should set REGISTER-CLOSURES? to #f."
;; lack of privileges if we use a root-directory that is on
;; a file system that is shared with the host (e.g., /tmp).
(root-directory "/guixsd-system-root"))
- (set-path-environment-variable "PATH" '("bin" "sbin") inputs)
+ (set-path-environment-variable "PATH" '("bin" "sbin") '(#+tar))
(mkdir root-directory)
(initialize root-directory)
(build-docker-image
(string-append "/xchg/" #$name) ;; The output file.
(cons* root-directory
- (call-with-input-file (string-append "/xchg/" #$graph)
- read-reference-graph))
+ (map store-info-item
+ (call-with-input-file
+ (string-append "/xchg/" #$graph)
+ read-reference-graph)))
#$os-drv
#:compressor '(#+(file-append gzip "/bin/gzip") "-9n")
#:creation-time (make-time time-utc 0 1)
#:transformations `((,root-directory -> ""))))))))
(expression->derivation-in-linux-vm
- name
- ;; The VM's initrd Guile doesn't support dlopen, but our "build" gexp
- ;; needs to be run by a Guile that can dlopen libgcrypt. The following
- ;; hack works around that problem by putting the "build" gexp into an
- ;; executable script (created by program-file) which, when executed, will
- ;; run using a Guile that supports dlopen. That way, the VM's initrd
- ;; Guile can just execute it via invoke, without using dlopen. See:
- ;; https://lists.gnu.org/archive/html/guix-devel/2017-10/msg00233.html
- (with-imported-modules `((guix build utils))
- #~(begin
- (use-modules (guix build utils))
- ;; If we use execl instead of invoke here, the VM will crash with a
- ;; kernel panic.
- (invoke #$(program-file "build-docker-image" build))))
+ name build
#:make-disk-image? #f
#:single-file-output? #t
#:references-graphs `((,graph ,os-drv)))))
diff --git a/gnu/tests/admin.scm b/gnu/tests/admin.scm
index 3c7deb5426..a5abbe9ad4 100644
--- a/gnu/tests/admin.scm
+++ b/gnu/tests/admin.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
+;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -74,13 +75,11 @@ HTTP-PORT."
(test-begin "tailon")
- (test-eq "service running"
- 'running!
+ (test-assert "service running"
(marionette-eval
'(begin
(use-modules (gnu services herd))
- (start-service 'tailon)
- 'running!)
+ (start-service 'tailon))
marionette))
(define* (retry-on-error f #:key times delay)
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index 3faeddef6c..05c846264d 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -517,13 +518,11 @@ in a loop. See <http://bugs.gnu.org/26931>.")
(test-begin "mcron")
- (test-eq "service running"
- 'running!
+ (test-assert "service running"
(marionette-eval
'(begin
(use-modules (gnu services herd))
- (start-service 'mcron)
- 'running!)
+ (start-service 'mcron))
marionette))
;; Make sure root's mcron job runs, has its cwd set to "/root", and
@@ -619,32 +618,43 @@ in a loop. See <http://bugs.gnu.org/26931>.")
(test-begin "avahi")
- (test-assert "wait for services"
+ (test-assert "nscd PID file is created"
(marionette-eval
'(begin
(use-modules (gnu services herd))
+ (start-service 'nscd))
+ marionette))
+
+ (test-assert "nscd is listening on its socket"
+ (marionette-eval
+ ;; XXX: Work around a race condition in nscd: nscd creates its
+ ;; PID file before it is listening on its socket.
+ '(let ((sock (socket PF_UNIX SOCK_STREAM 0)))
+ (let try ()
+ (catch 'system-error
+ (lambda ()
+ (connect sock AF_UNIX "/var/run/nscd/socket")
+ (close-port sock)
+ (format #t "nscd is ready~%")
+ #t)
+ (lambda args
+ (format #t "waiting for nscd...~%")
+ (usleep 500000)
+ (try)))))
+ marionette))
+
+ (test-assert "avahi is running"
+ (marionette-eval
+ '(begin
+ (use-modules (gnu services herd))
+ (start-service 'avahi-daemon))
+ marionette))
- (start-service 'nscd)
-
- ;; XXX: Work around a race condition in nscd: nscd creates its
- ;; PID file before it is listening on its socket.
- (let ((sock (socket PF_UNIX SOCK_STREAM 0)))
- (let try ()
- (catch 'system-error
- (lambda ()
- (connect sock AF_UNIX "/var/run/nscd/socket")
- (close-port sock)
- (format #t "nscd is ready~%"))
- (lambda args
- (format #t "waiting for nscd...~%")
- (usleep 500000)
- (try)))))
-
- ;; Wait for the other useful things.
- (start-service 'avahi-daemon)
- (start-service 'networking)
-
- #t)
+ (test-assert "network is up"
+ (marionette-eval
+ '(begin
+ (use-modules (gnu services herd))
+ (start-service 'networking))
marionette))
(test-equal "avahi-resolve-host-name"
diff --git a/gnu/tests/dict.scm b/gnu/tests/dict.scm
index 4431e37dc1..dd60ffd464 100644
--- a/gnu/tests/dict.scm
+++ b/gnu/tests/dict.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -84,13 +85,11 @@
(test-begin "dicod")
;; Wait for the service to be started.
- (test-eq "service is running"
- 'running!
+ (test-assert "service is running"
(marionette-eval
'(begin
(use-modules (gnu services herd))
- (start-service 'dicod)
- 'running!)
+ (start-service 'dicod))
marionette))
;; Wait until dicod is actually listening.
diff --git a/gnu/tests/mail.scm b/gnu/tests/mail.scm
index 4de13b8684..5677969fac 100644
--- a/gnu/tests/mail.scm
+++ b/gnu/tests/mail.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -84,8 +85,7 @@ accept from any for local deliver to mbox
(marionette-eval
'(begin
(use-modules (gnu services herd))
- (start-service 'smtpd)
- #t)
+ (start-service 'smtpd))
marionette))
(test-assert "mbox is empty"
@@ -224,8 +224,7 @@ acl_check_data:
(marionette-eval
'(begin
(use-modules (gnu services herd))
- (start-service 'exim)
- #t)
+ (start-service 'exim))
marionette))
(sleep 1) ;; give the service time to start talking
@@ -330,13 +329,11 @@ Subject: Hello Nice to meet you!")
(test-begin "dovecot")
;; Wait for dovecot to be up and running.
- (test-eq "dovecot running"
- 'running!
+ (test-assert "dovecot running"
(marionette-eval
'(begin
(use-modules (gnu services herd))
- (start-service 'dovecot)
- 'running!)
+ (start-service 'dovecot))
marionette))
;; Check Dovecot service's PID.
diff --git a/gnu/tests/messaging.scm b/gnu/tests/messaging.scm
index f17dfe6265..f5f99b9f56 100644
--- a/gnu/tests/messaging.scm
+++ b/gnu/tests/messaging.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
@@ -102,13 +102,11 @@
(test-begin "xmpp")
;; Wait for XMPP service to be up and running.
- (test-eq "service running"
- 'running!
+ (test-assert "service running"
(marionette-eval
'(begin
(use-modules (gnu services herd))
- (start-service 'xmpp-daemon)
- 'running!)
+ (start-service 'xmpp-daemon))
marionette))
;; Check XMPP service's PID.
@@ -196,13 +194,11 @@
(test-begin "bitlbee")
- (test-eq "service started"
- 'running!
+ (test-assert "service started"
(marionette-eval
'(begin
(use-modules (gnu services herd))
- (start-service 'bitlbee)
- 'running!)
+ (start-service 'bitlbee))
marionette))
(test-equal "valid PID"
diff --git a/gnu/tests/nfs.scm b/gnu/tests/nfs.scm
index d58cf7aefd..140f03779b 100644
--- a/gnu/tests/nfs.scm
+++ b/gnu/tests/nfs.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -94,13 +95,11 @@
(test-begin "rpc-daemon")
;; Wait for the rpcbind daemon to be up and running.
- (test-eq "RPC service running"
- 'running!
+ (test-assert "RPC service running"
(marionette-eval
'(begin
(use-modules (gnu services herd))
- (start-service 'rpcbind-daemon)
- 'running!)
+ (start-service 'rpcbind-daemon))
marionette))
;; Check the socket file and that the service is still running.
diff --git a/gnu/tests/rsync.scm b/gnu/tests/rsync.scm
index c97836788b..a6f8fa2bd1 100644
--- a/gnu/tests/rsync.scm
+++ b/gnu/tests/rsync.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
+;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -59,13 +60,11 @@ PORT."
(test-begin "rsync")
;; Wait for rsync to be up and running.
- (test-eq "service running"
- 'running!
+ (test-assert "service running"
(marionette-eval
'(begin
(use-modules (gnu services herd))
- (start-service 'rsync)
- 'running!)
+ (start-service 'rsync))
marionette))
;; Make sure the PID file is created.
diff --git a/gnu/tests/ssh.scm b/gnu/tests/ssh.scm
index 9247a43e6d..2e40122add 100644
--- a/gnu/tests/ssh.scm
+++ b/gnu/tests/ssh.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -111,13 +111,11 @@ root with an empty password."
(test-begin "ssh-daemon")
;; Wait for sshd to be up and running.
- (test-eq "service running"
- 'running!
+ (test-assert "service running"
(marionette-eval
'(begin
(use-modules (gnu services herd))
- (start-service 'ssh-daemon)
- 'running!)
+ (start-service 'ssh-daemon))
marionette))
;; Check sshd's PID file.
diff --git a/gnu/tests/version-control.scm b/gnu/tests/version-control.scm
index 8024739734..3b935a1b48 100644
--- a/gnu/tests/version-control.scm
+++ b/gnu/tests/version-control.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -147,23 +147,19 @@ HTTP-PORT."
marionette))
;; Wait for nginx to be up and running.
- (test-eq "nginx running"
- 'running!
+ (test-assert "nginx running"
(marionette-eval
'(begin
(use-modules (gnu services herd))
- (start-service 'nginx)
- 'running!)
+ (start-service 'nginx))
marionette))
;; Wait for fcgiwrap to be up and running.
- (test-eq "fcgiwrap running"
- 'running!
+ (test-assert "fcgiwrap running"
(marionette-eval
'(begin
(use-modules (gnu services herd))
- (start-service 'fcgiwrap)
- 'running!)
+ (start-service 'fcgiwrap))
marionette))
;; Make sure the PID file is created.
@@ -272,13 +268,11 @@ HTTP-PORT."
(test-begin "git-http")
;; Wait for nginx to be up and running.
- (test-eq "nginx running"
- 'running!
+ (test-assert "nginx running"
(marionette-eval
'(begin
(use-modules (gnu services herd))
- (start-service 'nginx)
- 'running!)
+ (start-service 'nginx))
marionette))
;; Make sure Git test repository is created.
diff --git a/gnu/tests/web.scm b/gnu/tests/web.scm
index a6bf6efcfe..73d502dd0e 100644
--- a/gnu/tests/web.scm
+++ b/gnu/tests/web.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
-;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;;
;;; This file is part of GNU Guix.
@@ -245,13 +245,11 @@ HTTP-PORT, along with php-fpm."
((pid) (number? pid))))))
marionette))
- (test-eq "nginx running"
- 'running!
+ (test-assert "nginx running"
(marionette-eval
'(begin
(use-modules (gnu services herd))
- (start-service 'nginx)
- 'running!)
+ (start-service 'nginx))
marionette))
(test-equal "http-get"