diff options
author | Marius Bakke <mbakke@fastmail.com> | 2018-06-18 15:29:38 +0200 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2018-06-18 15:29:38 +0200 |
commit | 6969c4de445a390eaa05de22bc5a537a76a76169 (patch) | |
tree | 9df3bdde497fdce705ae4eb66972f93a9ae111d9 /gnu | |
parent | 73d18915b597f2a386d6ae42930b49a13c8813b0 (diff) | |
parent | 32eb44240db23b2320a68a3ab17370531945587f (diff) | |
download | guix-6969c4de445a390eaa05de22bc5a537a76a76169.tar.gz |
Merge branch 'master' into staging
Diffstat (limited to 'gnu')
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" |