Merge branch 'master' into staging

This commit is contained in:
Marius Bakke 2018-06-18 15:29:38 +02:00
commit 6969c4de44
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA
133 changed files with 8268 additions and 17063 deletions

2
.gitignore vendored
View file

@ -69,7 +69,6 @@
/etc/guix-publish.conf /etc/guix-publish.conf
/etc/guix-publish.service /etc/guix-publish.service
/guix-daemon /guix-daemon
/guix-register
/guix/config.scm /guix/config.scm
/libformat.a /libformat.a
/libstore.a /libstore.a
@ -147,3 +146,4 @@ tmp
/nix/scripts/download /nix/scripts/download
/etc/indent-code.el /etc/indent-code.el
/.version /.version
/doc/stamp-[0-9]

View file

@ -11,6 +11,7 @@
# Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> # Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
# Copyright © 2018 Nils Gillmann <ng0@n0.is> # Copyright © 2018 Nils Gillmann <ng0@n0.is>
# Copyright © 2018 Julien Lepiller <julien@lepiller.eu> # Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
# Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
# #
# This file is part of GNU Guix. # This file is part of GNU Guix.
# #
@ -262,11 +263,7 @@ STORE_MODULES = \
guix/store/database.scm \ guix/store/database.scm \
guix/store/deduplication.scm guix/store/deduplication.scm
if HAVE_GUILE_SQLITE3
MODULES += $(STORE_MODULES) MODULES += $(STORE_MODULES)
else
MODULES_NOT_COMPILED += $(STORE_MODULES)
endif !HAVE_GUILE_SQLITE3
# Internal modules with test suite support. # Internal modules with test suite support.
dist_noinst_DATA = guix/tests.scm guix/tests/http.scm dist_noinst_DATA = guix/tests.scm guix/tests/http.scm
@ -300,6 +297,7 @@ EXAMPLES = \
GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go $(dist_noinst_DATA:%.scm=%.go) GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go $(dist_noinst_DATA:%.scm=%.go)
nobase_dist_guilemodule_DATA = \ nobase_dist_guilemodule_DATA = \
guix/store/schema.sql \
$(MODULES) $(MODULES_NOT_COMPILED) $(AUX_FILES) $(EXAMPLES) \ $(MODULES) $(MODULES_NOT_COMPILED) $(AUX_FILES) $(EXAMPLES) \
$(MISC_DISTRO_FILES) $(MISC_DISTRO_FILES)
nobase_nodist_guilemodule_DATA = guix/config.scm nobase_nodist_guilemodule_DATA = guix/config.scm
@ -378,7 +376,9 @@ SCM_TESTS = \
tests/scripts-build.scm \ tests/scripts-build.scm \
tests/containers.scm \ tests/containers.scm \
tests/pack.scm \ tests/pack.scm \
tests/import-utils.scm tests/import-utils.scm \
tests/store-database.scm \
tests/store-deduplication.scm
if HAVE_GUILE_JSON if HAVE_GUILE_JSON
@ -390,14 +390,6 @@ SCM_TESTS += \
endif endif
if HAVE_GUILE_SQLITE3
SCM_TESTS += \
tests/store-database.scm \
tests/store-deduplication.scm
endif
SH_TESTS = \ SH_TESTS = \
tests/guix-build.sh \ tests/guix-build.sh \
tests/guix-download.sh \ tests/guix-download.sh \
@ -414,13 +406,6 @@ SH_TESTS = \
tests/guix-graph.sh \ tests/guix-graph.sh \
tests/guix-lint.sh tests/guix-lint.sh
if BUILD_DAEMON
SH_TESTS += tests/guix-register.sh
endif BUILD_DAEMON
TESTS = $(SCM_TESTS) $(SH_TESTS) TESTS = $(SCM_TESTS) $(SH_TESTS)
AM_TESTS_ENVIRONMENT = abs_top_srcdir="$(abs_top_srcdir)" GUILE_AUTO_COMPILE=0 AM_TESTS_ENVIRONMENT = abs_top_srcdir="$(abs_top_srcdir)" GUILE_AUTO_COMPILE=0
@ -470,7 +455,8 @@ dist_pkgdata_DATA = \
berlin.guixsd.org.pub berlin.guixsd.org.pub
# Bash completion file. # Bash completion file.
dist_bashcompletion_DATA = etc/completion/bash/guix dist_bashcompletion_DATA = etc/completion/bash/guix \
etc/completion/bash/guix-daemon
# Zsh completion file. # Zsh completion file.
dist_zshcompletion_DATA = etc/completion/zsh/_guix dist_zshcompletion_DATA = etc/completion/zsh/_guix

3
README
View file

@ -23,7 +23,8 @@ GNU Guix currently depends on the following packages:
- [[https://gnu.org/software/guile/][GNU Guile 2.2.x or 2.0.x]], version 2.0.13 or later - [[https://gnu.org/software/guile/][GNU Guile 2.2.x or 2.0.x]], version 2.0.13 or later
- [[https://gnupg.org/][GNU libgcrypt]] - [[https://gnupg.org/][GNU libgcrypt]]
- [[https://www.gnu.org/software/make/][GNU Make]] - [[https://www.gnu.org/software/make/][GNU Make]]
- [[https://www.gnutls.org][GnuTLS]] compiled with guile support enabled. - [[https://www.gnutls.org][GnuTLS]] compiled with guile support enabled
- [[https://notabug.org/civodul/guile-sqlite3][Guile-SQLite3]]
- [[https://gitlab.com/guile-git/guile-git][Guile-Git]] - [[https://gitlab.com/guile-git/guile-git][Guile-Git]]
- [[http://www.zlib.net/][zlib]] - [[http://www.zlib.net/][zlib]]
- optionally [[https://savannah.nongnu.org/projects/guile-json/][Guile-JSON]], for the 'guix import pypi' command - optionally [[https://savannah.nongnu.org/projects/guile-json/][Guile-JSON]], for the 'guix import pypi' command

View file

@ -43,7 +43,8 @@
(and=> (assoc-ref (current-source-location) 'filename) (and=> (assoc-ref (current-source-location) 'filename)
(lambda (file) (lambda (file)
(let ((dir (string-append (dirname file) "/../.."))) (let ((dir (canonicalize-path
(string-append (dirname file) "/../.."))))
(format (current-error-port) "prepending ~s to the load path~%" (format (current-error-port) "prepending ~s to the load path~%"
dir) dir)
(set! %load-path (cons dir %load-path)))))) (set! %load-path (cons dir %load-path))))))

View file

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# GNU Guix --- Functional package management for GNU # GNU Guix --- Functional package management for GNU
# Copyright © 2012, 2013, 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org> # Copyright © 2012, 2013, 2014, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2017 Eric Bavier <bavier@cray.com> # Copyright © 2017 Eric Bavier <bavier@cray.com>
# #
# This file is part of GNU Guix. # This file is part of GNU Guix.
@ -55,10 +55,6 @@ NIX_BUILD_HOOK="$abs_top_builddir/nix/scripts/offload"
@BUILD_DAEMON_OFFLOAD_FALSE@# No offloading support. @BUILD_DAEMON_OFFLOAD_FALSE@# No offloading support.
@BUILD_DAEMON_OFFLOAD_FALSE@unset NIX_BUILD_HOOK @BUILD_DAEMON_OFFLOAD_FALSE@unset NIX_BUILD_HOOK
# The 'guix-register' program.
GUIX_REGISTER="$abs_top_builddir/guix-register"
export GUIX_REGISTER
# The following variables need only be defined when compiling Guix # The following variables need only be defined when compiling Guix
# modules, but we define them to be on the safe side in case of # modules, but we define them to be on the safe side in case of
# auto-compilation. # auto-compilation.

View file

@ -126,8 +126,9 @@ AM_CONDITIONAL([HAVE_GUILE_JSON], [test "x$have_guile_json" = "xyes"])
dnl Guile-Sqlite3 is used by the (guix store ...) modules. dnl Guile-Sqlite3 is used by the (guix store ...) modules.
GUIX_CHECK_GUILE_SQLITE3 GUIX_CHECK_GUILE_SQLITE3
AM_CONDITIONAL([HAVE_GUILE_SQLITE3], if test "x$guix_cv_have_recent_guile_sqlite3" != "xyes"; then
[test "x$guix_cv_have_recent_guile_sqlite3" = "xyes"]) AC_MSG_ERROR([A recent Guile-SQLite3 could not be found; please install it.])
fi
dnl Make sure we have a full-fledged Guile. dnl Make sure we have a full-fledged Guile.
GUIX_ASSERT_GUILE_FEATURES([regex posix socket net-db threads]) GUIX_ASSERT_GUILE_FEATURES([regex posix socket net-db threads])

View file

@ -407,12 +407,19 @@ changes). This branch is intended to be merged in @code{master} every
2.5 months or so. 2.5 months or so.
@end table @end table
All these branches are tracked by our build farm All these branches are @uref{https://hydra.gnu.org/project/gnu,
and merged into @code{master} once tracked by our build farm} and merged into @code{master} once
everything has been successfully built. This allows us to fix issues everything has been successfully built. This allows us to fix issues
before they hit users, and to reduce the window during which pre-built before they hit users, and to reduce the window during which pre-built
binaries are not available. binaries are not available.
Generally, branches other than @code{master} are considered
@emph{frozen} if there has been a recent evaluation, or there is a
corresponding @code{-next} branch. Please ask on the mailing list or
IRC if unsure where to place a patch.
@c TODO: It would be good with badges on the website that tracks these
@c branches. Or maybe even a status page.
@item @item
@cindex determinism, of build processes @cindex determinism, of build processes
@cindex reproducible builds, checking @cindex reproducible builds, checking

View file

@ -37,7 +37,7 @@ Copyright @copyright{} 2017 Carlo Zancanaro@*
Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 Thomas Danckaert@*
Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 humanitiesNerd@*
Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017 Christopher Allan Webber@*
Copyright @copyright{} 2017 Marius Bakke@* Copyright @copyright{} 2017, 2018 Marius Bakke@*
Copyright @copyright{} 2017 Hartmut Goebel@* Copyright @copyright{} 2017 Hartmut Goebel@*
Copyright @copyright{} 2017 Maxim Cournoyer@* Copyright @copyright{} 2017 Maxim Cournoyer@*
Copyright @copyright{} 2017, 2018 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017, 2018 Tobias Geerinckx-Rice@*
@ -615,6 +615,9 @@ later, including 2.2.x;
Guile,, gnutls-guile, GnuTLS-Guile}); Guile,, gnutls-guile, GnuTLS-Guile});
@item @item
@c FIXME: Specify a version number once a release has been made. @c FIXME: Specify a version number once a release has been made.
@uref{https://notabug.org/civodul/guile-sqlite3, Guile-SQLite3};
@item
@c FIXME: Specify a version number once a release has been made.
@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August @uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August
2017 or later; 2017 or later;
@item @url{http://zlib.net, zlib}; @item @url{http://zlib.net, zlib};
@ -2756,25 +2759,40 @@ export PATH="$HOME/.config/guix/current/bin:$PATH"
export INFOPATH="$HOME/.config/guix/current/share/info:$INFOPATH" export INFOPATH="$HOME/.config/guix/current/share/info:$INFOPATH"
@end example @end example
The @code{--list-generations} or @code{-l} option lists past generations
produced by @command{guix pull}, along with details about their provenance:
@example
$ guix pull -l
Generation 1 Jun 10 2018 00:18:18
guix 65956ad
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: origin/master
commit: 65956ad3526ba09e1f7a40722c96c6ef7c0936fe
Generation 2 Jun 11 2018 11:02:49
guix e0cc7f6
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: origin/master
commit: e0cc7f669bec22c37481dd03a7941c7d11a64f1d
Generation 3 Jun 13 2018 23:31:07 (current)
guix 844cc1c
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: origin/master
commit: 844cc1c8f394f03b404c5bb3aee086922373490c
@end example
This @code{~/.config/guix/current} profile works like any other profile This @code{~/.config/guix/current} profile works like any other profile
created by @command{guix package} (@pxref{Invoking guix package}). That created by @command{guix package} (@pxref{Invoking guix package}). That
is, you can list generations, roll back to the previous is, you can list generations, roll back to the previous
generation---i.e., the previous Guix---and so on: generation---i.e., the previous Guix---and so on:
@example @example
$ guix package -p ~/.config/guix/current -l
Generation 1 May 25 2018 10:06:41
guix 221951a out /gnu/store/i4dfk7vw5k112s49jrhl6hwsfnh6wr7l-guix-221951af4
Generation 2 May 27 2018 19:07:47
+ guix 2fbae00 out /gnu/store/44cv9hyvxg34xf5kblf5dz57hc52y4bm-guix-2fbae006f
- guix 221951a out /gnu/store/i4dfk7vw5k112s49jrhl6hwsfnh6wr7l-guix-221951af4
Generation 3 May 30 2018 16:11:39 (current)
+ guix a076f19 out /gnu/store/332czkicwwg6lc3x4aqbw5q2mq12s7fj-guix-a076f1990
- guix 2fbae00 out /gnu/store/44cv9hyvxg34xf5kblf5dz57hc52y4bm-guix-2fbae006f
$ guix package -p ~/.config/guix/current --roll-back $ guix package -p ~/.config/guix/current --roll-back
switched from generation 3 to 2 switched from generation 3 to 2
$ guix package -p ~/.config/guix/current --delete-generations=1
deleting /home/charlie/.config/guix/current-1-link
@end example @end example
The @command{guix pull} command is usually invoked with no arguments, The @command{guix pull} command is usually invoked with no arguments,
@ -2800,6 +2818,13 @@ string.
Deploy the tip of @var{branch}, the name of a Git branch available on Deploy the tip of @var{branch}, the name of a Git branch available on
the repository at @var{url}. the repository at @var{url}.
@item --list-generations[=@var{pattern}]
@itemx -l [@var{pattern}]
List all the generations of @file{~/.config/guix/current} or, if @var{pattern}
is provided, the subset of generations that match @var{pattern}.
The syntax of @var{pattern} is the same as with @code{guix package
--list-generations} (@pxref{Invoking guix package}).
@item --bootstrap @item --bootstrap
Use the bootstrap Guile to build the latest Guix. This option is only Use the bootstrap Guile to build the latest Guix. This option is only
useful to Guix developers. useful to Guix developers.
@ -8856,6 +8881,22 @@ Have a look at @file{gnu/system/install.scm} in the source tree,
and see also @ref{Invoking guix system} for more information and see also @ref{Invoking guix system} for more information
about the installation image. about the installation image.
@subsection Building the Installation Image for ARM Boards
Many ARM boards require a specific variant of the
@uref{http://www.denx.de/wiki/U-Boot/, U-Boot} bootloader.
If you build a disk image and the bootloader is not available otherwise
(on another boot drive etc), it's advisable to build an image that
includes the bootloader, specifically:
@example
guix system disk-image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) "A20-OLinuXino-Lime2")'
@end example
@code{A20-OLinuXino-Lime2} is the name of the board. If you specify an invalid
board, a list of possible boards will be printed.
@node System Configuration @node System Configuration
@section System Configuration @section System Configuration
@ -15938,6 +15979,10 @@ use the size of the processors cache line.
@item @code{server-names-hash-bucket-max-size} (default: @code{#f}) @item @code{server-names-hash-bucket-max-size} (default: @code{#f})
Maximum bucket size for the server names hash tables. Maximum bucket size for the server names hash tables.
@item @code{extra-content} (default: @code{""})
Extra content for the @code{http} block. Should be string or a string
valued G-expression.
@end table @end table
@end deffn @end deffn

View file

@ -0,0 +1,30 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
#
# This file is part of GNU Guix.
#
# GNU Guix is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or (at
# your option) any later version.
#
# GNU Guix is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
# Bash completion for guix-daemon command.
_guix_daemon_complete ()
{
local options="$(${COMP_WORDS[0]} --help 2> /dev/null \
| grep '^ \+-' \
| sed -e's/^.*--\([a-zA-Z0-9_-]\+\)\(=\?\).*/--\1\2/g')"
compopt -o nospace
COMPREPLY=($(compgen -W "$options" -- "${COMP_WORDS[${#COMP_WORDS[*]} - 1]}"))
}
complete -F _guix_daemon_complete guix-daemon

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; 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> ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -18,6 +18,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu build install) (define-module (gnu build install)
#:use-module (guix store database)
#:use-module (guix build utils) #:use-module (guix build utils)
#:use-module (guix build store-copy) #:use-module (guix build store-copy)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
@ -25,7 +26,6 @@
#:export (install-boot-config #:export (install-boot-config
evaluate-populate-directive evaluate-populate-directive
populate-root-file-system populate-root-file-system
reset-timestamps
register-closure register-closure
populate-single-profile-directory)) populate-single-profile-directory))
@ -110,9 +110,6 @@ STORE."
("/var/guix/gcroots/booted-system" -> "/run/booted-system") ("/var/guix/gcroots/booted-system" -> "/run/booted-system")
("/var/guix/gcroots/current-system" -> "/run/current-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") ("/var/guix/gcroots/profiles" -> "/var/guix/profiles")
(directory "/bin") (directory "/bin")
@ -144,37 +141,27 @@ includes /etc, /var, /run, /bin/sh, etc., and all the symlinks to SYSTEM."
(try)) (try))
(apply throw args))))))) (apply throw args)))))))
(define (reset-timestamps directory) (define* (register-closure prefix closure
"Reset the timestamps of all the files under DIRECTORY, so that they appear #:key
as created and modified at the Epoch." (deduplicate? #t) (reset-timestamps? #t)
(display "clearing file timestamps...\n") (schema (sql-schema)))
(for-each (lambda (file) "Register CLOSURE in PREFIX, where PREFIX is the directory name of the
(let ((s (lstat file))) target store and CLOSURE is the name of a file containing a reference graph as
;; XXX: Guile uses libc's 'utime' function (not 'futime'), so produced by #:references-graphs.. As a side effect, if RESET-TIMESTAMPS? is
;; the timestamp of symlinks cannot be changed, and there are true, reset timestamps on store files and, if DEDUPLICATE? is true,
;; symlinks here pointing to /gnu/store, which is the host, deduplicates files common to CLOSURE and the rest of PREFIX."
;; read-only store. (let ((items (call-with-input-file closure read-reference-graph)))
(unless (eq? (stat:type s) 'symlink) (register-items items
(utime file 0 0 0 0)))) #:prefix prefix
(find-files directory #:directories? #t))) #:deduplicate? deduplicate?
#:reset-timestamps? reset-timestamps?
(define* (register-closure store closure #:registration-time %epoch
#:key (deduplicate? #t)) #:schema schema)))
"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* (populate-single-profile-directory directory (define* (populate-single-profile-directory directory
#:key profile closure #:key profile closure
deduplicate? deduplicate?
register?) register? schema)
"Populate DIRECTORY with a store containing PROFILE, whose closure is given "Populate DIRECTORY with a store containing PROFILE, whose closure is given
in the file called CLOSURE (as generated by #:references-graphs.) DIRECTORY in the file called CLOSURE (as generated by #:references-graphs.) DIRECTORY
is initialized to contain a single profile under /root pointing to PROFILE. 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? (when register?
(register-closure (canonicalize-path directory) closure (register-closure (canonicalize-path directory) closure
#:deduplicate? deduplicate?) #:deduplicate? deduplicate?
#:schema schema)
;; XXX: 'guix-register' registers profiles as GC roots but the symlink (mkdir-p* "/var/guix/profiles")
;; target uses $TMPDIR. Fix that. (mkdir-p* "/var/guix/gcroots")
(delete-file (scope "/var/guix/gcroots/profiles"))
(symlink* "/var/guix/profiles" (symlink* "/var/guix/profiles"
"/var/guix/gcroots/profiles")) "/var/guix/gcroots/profiles"))

View file

@ -32,6 +32,7 @@
ensure-dot-ko ensure-dot-ko
module-aliases module-aliases
module-dependencies module-dependencies
normalize-module-name
recursive-module-dependencies recursive-module-dependencies
modules-loaded modules-loaded
module-loaded? module-loaded?

View file

@ -25,6 +25,7 @@
#:use-module (guix build utils) #:use-module (guix build utils)
#:use-module (guix build store-copy) #:use-module (guix build store-copy)
#:use-module (guix build syscalls) #:use-module (guix build syscalls)
#:use-module ((guix store database) #:select (reset-timestamps))
#:use-module (gnu build linux-boot) #:use-module (gnu build linux-boot)
#:use-module (gnu build install) #:use-module (gnu build install)
#:use-module (gnu system uuid) #: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. ;; Optionally, register the inputs in the image's store.
(when register-closures? (when register-closures?
(unless copy-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. ;; bind-mount the store on the target.
(mkdir-p target-store) (mkdir-p target-store)
(mount (%store-directory) target-store "" MS_BIND)) (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) (for-each (lambda (closure)
(register-closure target (register-closure target
(string-append "/xchg/" closure) (string-append "/xchg/" closure)
#:reset-timestamps? copy-closures?
#:deduplicate? deduplicate?)) #:deduplicate? deduplicate?))
closures) closures)
(unless copy-closures? (unless copy-closures?
@ -363,7 +365,7 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation."
(display "populating...\n") (display "populating...\n")
(populate-root-file-system system-directory target) (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. ;; once more in that case.
(unless register-closures? (unless register-closures?
(reset-timestamps target)))) (reset-timestamps target))))

View file

@ -581,6 +581,8 @@ dist_patch_DATA = \
%D%/packages/patches/azr3.patch \ %D%/packages/patches/azr3.patch \
%D%/packages/patches/bash-completion-directories.patch \ %D%/packages/patches/bash-completion-directories.patch \
%D%/packages/patches/bazaar-CVE-2017-14176.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/binutils-loongson-workaround.patch \
%D%/packages/patches/blast+-fix-makefile.patch \ %D%/packages/patches/blast+-fix-makefile.patch \
%D%/packages/patches/boost-fix-icu-build.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/e2fsprogs-glibc-2.27.patch \
%D%/packages/patches/eigen-arm-neon-fixes.patch \ %D%/packages/patches/eigen-arm-neon-fixes.patch \
%D%/packages/patches/elfutils-tests-ptrace.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/elogind-glibc-2.27.patch \
%D%/packages/patches/einstein-build.patch \ %D%/packages/patches/einstein-build.patch \
%D%/packages/patches/emacs-browse-at-remote-cgit-gnu.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/file-CVE-2017-1000249.patch \
%D%/packages/patches/findutils-localstatedir.patch \ %D%/packages/patches/findutils-localstatedir.patch \
%D%/packages/patches/findutils-test-xargs.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/flint-ldconfig.patch \
%D%/packages/patches/fltk-shared-lib-defines.patch \ %D%/packages/patches/fltk-shared-lib-defines.patch \
%D%/packages/patches/fltk-xfont-on-demand.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-todo-libical-compat.patch \
%D%/packages/patches/gnome-tweak-tool-search-paths.patch \ %D%/packages/patches/gnome-tweak-tool-search-paths.patch \
%D%/packages/patches/gnucash-price-quotes-perl.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-trust-store-test.patch \
%D%/packages/patches/gnutls-skip-pkgconfig-test.patch \ %D%/packages/patches/gnutls-skip-pkgconfig-test.patch \
%D%/packages/patches/gobject-introspection-absolute-shlib-path.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-2016-9296.patch \
%D%/packages/patches/p7zip-CVE-2017-17969.patch \ %D%/packages/patches/p7zip-CVE-2017-17969.patch \
%D%/packages/patches/p7zip-remove-unused-code.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-page-size.patch \
%D%/packages/patches/patchelf-rework-for-arm.patch \ %D%/packages/patches/patchelf-rework-for-arm.patch \
%D%/packages/patches/patchutils-xfail-gendiff-tests.patch \ %D%/packages/patches/patchutils-xfail-gendiff-tests.patch \
%D%/packages/patches/patch-hurd-path-max.patch \ %D%/packages/patches/patch-hurd-path-max.patch \
%D%/packages/patches/perf-gcc-ice.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-file-path-CVE-2017-6512.patch \
%D%/packages/patches/perl-autosplit-default-time.patch \ %D%/packages/patches/perl-autosplit-default-time.patch \
%D%/packages/patches/perl-dbd-mysql-CVE-2017-10788.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/python-genshi-stripping-of-unsafe-script-tags.patch \
%D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \ %D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
%D%/packages/patches/python-networkx2-reproducible-build.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/python-pillow-fix-failing-tests.patch \
%D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \ %D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \
%D%/packages/patches/python-scikit-learn-fix-test-non-determinism.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/slim-login.patch \
%D%/packages/patches/sooperlooper-build-with-wx-30.patch \ %D%/packages/patches/sooperlooper-build-with-wx-30.patch \
%D%/packages/patches/steghide-fixes.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/superlu-dist-scotchmetis.patch \
%D%/packages/patches/swish-e-search.patch \ %D%/packages/patches/swish-e-search.patch \
%D%/packages/patches/swish-e-format-security.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/ustr-fix-build-with-gcc-5.patch \
%D%/packages/patches/util-linux-tests.patch \ %D%/packages/patches/util-linux-tests.patch \
%D%/packages/patches/upower-builddir.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-enable-arm.patch \
%D%/packages/patches/valgrind-glibc-compat.patch \ %D%/packages/patches/valgrind-glibc-compat.patch \
%D%/packages/patches/vinagre-revert-1.patch \ %D%/packages/patches/vinagre-revert-1.patch \

View file

@ -21,6 +21,7 @@
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -822,41 +823,36 @@ by bandwidth they use.")
(define-public clusterssh (define-public clusterssh
(package (package
(name "clusterssh") (name "clusterssh")
(version "3.28") (version "4.13.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/clusterssh/" (uri (string-append "mirror://sourceforge/clusterssh/"
"1.%20ClusterSSH%20Series%203/" version "2.%20ClusterSSH%20Series%204/"
"/clusterssh-" version ".tar.gz")) "App-ClusterSSH-v" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1bwggpvaj2al5blg1ynapviv2kpydffpzq2zkhi81najnvzc1rr7")))) "0rmk2p3f2wz1h092anidjclh212rv3gxyk0c641qk3frlrjnw6mp"))))
(build-system gnu-build-system) (build-system perl-build-system)
(inputs `(("perl" ,perl))) (native-inputs
(propagated-inputs `(("xterm" ,xterm) `(("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-tk" ,perl-tk)
("perl-x11-protocol" ,perl-x11-protocol))) ("perl-try-tiny" ,perl-try-tiny)
(arguments ("perl-x11-protocol" ,perl-x11-protocol)
`(#:phases ("perl-x11-protocol-other" ,perl-x11-protocol-other)))
(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)))))
;; The clusterssh.sourceforge.net address requires login to view ;; The clusterssh.sourceforge.net address requires login to view
(home-page "https://sourceforge.net/projects/clusterssh/") (home-page "https://sourceforge.net/projects/clusterssh/")
(synopsis "Secure concurrent multi-server terminal control") (synopsis "Secure concurrent multi-server terminal control")
@ -2359,11 +2355,23 @@ Intel DRM Driver.")
"13r0b0hllgf8j9rh6x1knmbgvingbdmx046aazv6vck2ll120mw1")))) "13r0b0hllgf8j9rh6x1knmbgvingbdmx046aazv6vck2ll120mw1"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (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 (native-inputs
`(("python2-fudge" ,python2-fudge) `(("python2-fudge" ,python2-fudge) ; Requires < 1.0
("python2-jinja2" ,python2-jinja2) ("python2-jinja2" ,python2-jinja2) ; Requires < 3.0
("python2-nose" ,python2-nose) ("python2-nose" ,python2-nose) ; Requires < 2.0
("python2-pynacl" ,python2-pynacl) ("python2-pynacl" ,python2-pynacl)
("python2-bcrypt" ,python2-bcrypt))) ("python2-bcrypt" ,python2-bcrypt)))
(propagated-inputs (propagated-inputs
@ -2383,7 +2391,7 @@ tool for remote execution and deployment.")
(define-public neofetch (define-public neofetch
(package (package
(name "neofetch") (name "neofetch")
(version "3.4.0") (version "4.0.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/dylanaraps/neofetch/" (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")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"18rhamy910ig03rr55y9x5i6pf78yj9xc6jpm6nfh3gqja7340rb")))) "014hlbzs6j4b669b64hnq8vc5knwiv9ncw9m9d193p9jsybxpm1w"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; there are no tests `(#:tests? #f ; there are no tests

View file

@ -2,6 +2,7 @@
;;; Copyright © 2014 John Darringon <jmd@gnu.org> ;;; Copyright © 2014 John Darringon <jmd@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -51,7 +52,7 @@ formats.")
(define-public qrencode (define-public qrencode
(package (package
(name "qrencode") (name "qrencode")
(version "4.0.0") (version "4.0.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -59,7 +60,7 @@ formats.")
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"02vx69fl52jbcrmnydsaxcmy6nxqm9jyxzd7hr07s491d7hka069")))) "1d2q5d3v8g3hsi3h5jq4n177bjhf3kawms09immw7p187f6jgjy9"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("libpng" ,libpng))) (inputs `(("libpng" ,libpng)))
(native-inputs `(("pkg-config" ,pkg-config))) (native-inputs `(("pkg-config" ,pkg-config)))

View file

@ -1890,7 +1890,7 @@ lv2-c++-tools.")
(define-public openal (define-public openal
(package (package
(name "openal") (name "openal")
(version "1.17.2") (version "1.18.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1898,7 +1898,7 @@ lv2-c++-tools.")
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"051k5fy8pk4fd9ha3qaqcv08xwbks09xl5qs4ijqq2qz5xaghhd3")))) "10kydm8701a2kppiss9sdidn1820cmzhqgx1b2bsa5dsgzic32lz"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f ; no check target `(#:tests? #f ; no check target

View file

@ -10,6 +10,7 @@
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -32,6 +33,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages acl) #:use-module (gnu packages acl)
@ -45,6 +47,7 @@
#:use-module (gnu packages ftp) #:use-module (gnu packages ftp)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnupg) #:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages gperf) #:use-module (gnu packages gperf)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
@ -472,13 +475,13 @@ detection, and lossless compression.")
(define-public borg (define-public borg
(package (package
(name "borg") (name "borg")
(version "1.1.5") (version "1.1.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "borgbackup" version)) (uri (pypi-uri "borgbackup" version))
(sha256 (sha256
(base32 "0gbdnq7ks46diz6y2pf6wpwkb9hy6hp3immi7jg3h7w72b3ycmj3")) (base32 "0c09j46fi8i7klas0bh82a4whlwnajshk0izkgax6fjxr1sf9lm1"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -511,17 +514,6 @@ detection, and lossless compression.")
;; HOME=/homeless-shelter. ;; HOME=/homeless-shelter.
(setenv "HOME" "/tmp") (setenv "HOME" "/tmp")
#t))) #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. ;; The tests need to be run after Borg is installed.
(delete 'check) (delete 'check)
(add-after 'install '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. ") is like a time machine for your data. ")
(license (license:fsf-free "file://COPYING" (license (license:fsf-free "file://COPYING"
"Open Software License 2.0")))) "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)))

View file

@ -480,6 +480,17 @@ included.")
(license gpl3+) (license gpl3+)
(home-page "https://www.gnu.org/software/binutils/"))) (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 (define* (make-ld-wrapper name #:key
(target (const #f)) (target (const #f))
binutils binutils

View file

@ -2,6 +2,7 @@
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Dave Love <fx@gnu.org> ;;; Copyright © 2017 Dave Love <fx@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -34,15 +35,14 @@
(define-public fio (define-public fio
(package (package
(name "fio") (name "fio")
(version "3.6") (version "3.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append "http://brick.kernel.dk/snaps/"
"http://brick.kernel.dk/snaps/" "fio-" version ".tar.gz"))
"fio-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1d2jibp1b2dq97f22wj6pcjl7gbd2kmhfggj2c7q3j8v9axjqsh2")))) "0rw9jf2ikm19lq4jizavdvvp3vfvlm3annq7jsxl2y5nf1pi2qr7"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:test-target "test" '(#:test-target "test"

View file

@ -24,10 +24,11 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build-system r) #:use-module (guix build-system r)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages bioinformatics)
#:use-module (gnu packages cran) #:use-module (gnu packages cran)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages statistics) #:use-module (gnu packages graph)
#:use-module (gnu packages bioinformatics)) #:use-module (gnu packages statistics))
(define-public r-bsgenome-dmelanogaster-ucsc-dm6 (define-public r-bsgenome-dmelanogaster-ucsc-dm6
(package (package
@ -61,6 +62,111 @@ melanogaster (Fly) as provided by UCSC (dm6) and stored in Biostrings
objects.") objects.")
(license license:artistic2.0))) (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 (define-public r-hpar
(package (package
(name "r-hpar") (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, segmentation and calling are also implemented via packages DNAcopy and CGHcall,
respectively.") respectively.")
(license license:gpl2+))) (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)))

View file

@ -6939,13 +6939,13 @@ Bioconductor, CRAN, and Github.")
(define-public r-biocviews (define-public r-biocviews
(package (package
(name "r-biocviews") (name "r-biocviews")
(version "1.48.0") (version "1.48.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "biocViews" version)) (uri (bioconductor-uri "biocViews" version))
(sha256 (sha256
(base32 (base32
"1yx2lir67ny0j150wyfqca0wsxp84byri8nscbs9qlndkh2jppq9")))) "1q5z6xxhjyibr165di7iyachw4gd4bdrxkd8rjkcklnngsrx1azm"))))
(properties (properties
`((upstream-name . "biocViews"))) `((upstream-name . "biocViews")))
(build-system r-build-system) (build-system r-build-system)
@ -7128,13 +7128,13 @@ abnormal copy number.")
(define-public r-s4vectors (define-public r-s4vectors
(package (package
(name "r-s4vectors") (name "r-s4vectors")
(version "0.18.2") (version "0.18.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "S4Vectors" version)) (uri (bioconductor-uri "S4Vectors" version))
(sha256 (sha256
(base32 (base32
"0qvj2j0zl4djjl7vrwc6xak6h8dxr53iwypfbcvfb3sh7jwhdiz5")))) "02bps2rpjqx2npwxq3x62ncwi9ggr165cwi56h6hld28bw2gddy8"))))
(properties (properties
`((upstream-name . "S4Vectors"))) `((upstream-name . "S4Vectors")))
(build-system r-build-system) (build-system r-build-system)
@ -9705,13 +9705,13 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
(define-public r-seurat (define-public r-seurat
(package (package
(name "r-seurat") (name "r-seurat")
(version "2.3.1") (version "2.3.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "Seurat" version)) (uri (cran-uri "Seurat" version))
(sha256 (sha256
(base32 (base32
"0hi59rgdrr2iqfvx5bq7yq02hbjxkjl1fzidqj14z0ypq0nzbjys")) "1sjpy5rrpvlpm6hs7qy7qpglgbp7zrgfybcsalpmjb51rhxhgcg1"))
;; Delete pre-built jar. ;; Delete pre-built jar.
(snippet (snippet
'(begin (delete-file "inst/java/ModularityOptimizer.jar") '(begin (delete-file "inst/java/ModularityOptimizer.jar")
@ -9755,6 +9755,7 @@ Main-Class: ModularityOptimizer\n")))
("r-ggplot2" ,r-ggplot2) ("r-ggplot2" ,r-ggplot2)
("r-ggridges" ,r-ggridges) ("r-ggridges" ,r-ggridges)
("r-gplots" ,r-gplots) ("r-gplots" ,r-gplots)
("r-hdf5r" ,r-hdf5r)
("r-hmisc" ,r-hmisc) ("r-hmisc" ,r-hmisc)
("r-ica" ,r-ica) ("r-ica" ,r-ica)
("r-igraph" ,r-igraph) ("r-igraph" ,r-igraph)
@ -12905,7 +12906,7 @@ expression report comparing samples in an easily configurable manner.")
(define-public pigx-chipseq (define-public pigx-chipseq
(package (package
(name "pigx-chipseq") (name "pigx-chipseq")
(version "0.0.15") (version "0.0.16")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_chipseq/" (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")) "/pigx_chipseq-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"11v9v3vyda0sv4cl45nki7mm4v4bjfcdq7a70kcvi9h465nq66wg")))) "0s53840z53pih0jkllmcfb2la7c36zxmf229fshhyq8n6a2hgr8f"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; parts of the tests rely on access to the network `(#: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 (define-public pigx-bsseq
(package (package
(name "pigx-bsseq") (name "pigx-bsseq")
(version "0.0.8") (version "0.0.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_bsseq/" (uri (string-append "https://github.com/BIMSBbioinfo/pigx_bsseq/"
@ -12993,7 +12994,7 @@ in an easily configurable manner.")
"/pigx_bsseq-" version ".tar.gz")) "/pigx_bsseq-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0irlnlhhw9fd4ha7hksrxn3y7j76mz5qq1wjswbs9p364laqg69y")))) "0j1dfjk8m1p1h6d5yw63scjlbx56z8gixmbw626w1vcyblg0frmz"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -13052,7 +13053,7 @@ methylation and segmentation.")
(define-public pigx-scrnaseq (define-public pigx-scrnaseq
(package (package
(name "pigx-scrnaseq") (name "pigx-scrnaseq")
(version "0.0.4") (version "0.0.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_scrnaseq/" (uri (string-append "https://github.com/BIMSBbioinfo/pigx_scrnaseq/"
@ -13060,7 +13061,7 @@ methylation and segmentation.")
"/pigx_scrnaseq-" version ".tar.gz")) "/pigx_scrnaseq-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1pvjm6f3mascprs65vflggwwg5v925knvgal7k7a6nnlmw5qndrf")))) "0a73rilv0vnw42d5rsdq205h4f0x8j3jqv998janh4s324c6w2kj"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -13088,6 +13089,7 @@ methylation and segmentation.")
("python-wrapper" ,python-wrapper) ("python-wrapper" ,python-wrapper)
("python-pyyaml" ,python-pyyaml) ("python-pyyaml" ,python-pyyaml)
("python-pandas" ,python-pandas) ("python-pandas" ,python-pandas)
("python-magic" ,python-magic)
("python-numpy" ,python-numpy) ("python-numpy" ,python-numpy)
("python-loompy" ,python-loompy) ("python-loompy" ,python-loompy)
("ghc-pandoc" ,ghc-pandoc-1) ("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 junctions in RNA-seq data. It is annotation-agnostic and offset-aware. This
version does count multisplits.") version does count multisplits.")
(license license:gpl3+)))) (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)))

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; 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, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name> ;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
@ -61,7 +61,8 @@
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)) #:use-module (srfi srfi-26)
#:use-module (ice-9 regex))
(define unifont (define unifont
;; GNU Unifont, <http://gnu.org/s/unifont>. ;; GNU Unifont, <http://gnu.org/s/unifont>.
@ -144,6 +145,22 @@
("texinfo" ,texinfo) ("texinfo" ,texinfo)
("help2man" ,help2man) ("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, ;; Dependencies for the test suite. The "real" QEMU is needed here,
;; because several targets are used. ;; because several targets are used.
("parted" ,parted) ("parted" ,parted)
@ -439,7 +456,7 @@ def test_ctrl_c"))
also initializes the boards (RAM etc). This package provides its also initializes the boards (RAM etc). This package provides its
board-independent tools."))) 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." "Returns a u-boot package for BOARD cross-compiled for TRIPLET."
(let ((same-arch? (if (string-prefix? (%current-system) (let ((same-arch? (if (string-prefix? (%current-system)
(gnu-triplet->nix-system triplet)) (gnu-triplet->nix-system triplet))

View file

@ -293,13 +293,13 @@ format.")
(define-public cppcheck (define-public cppcheck
(package (package
(name "cppcheck") (name "cppcheck")
(version "1.83") (version "1.84")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/danmar/cppcheck/archive/" (uri (string-append "https://github.com/danmar/cppcheck/archive/"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 "15ghxwmyy09cd9mi008k4jn09c441j86qyaa4dz0is7f5dv5cdkx")) (base32 "1ibz07dgs1dpfb8bmjh3qsma37wl5p6s6b4qlv5ccpshj4yjk9ma"))
(file-name (string-append name "-" version ".tar.gz")))) (file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(home-page "http://cppcheck.sourceforge.net") (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 (define-public python-nose-timer
(package (package
(name "python-nose-timer") (name "python-nose-timer")
(version "0.7.0") (version "0.7.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "nose-timer" version)) (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 (sha256
(base32 (base32
"1s32ymsnby8lz2qk55ifj9zi50dqcg6swnj5cz2rmwxg2jsslsxp")))) "0ywg223p528014z5s0vzck74r4xyw3kvcp2casfnc85dkvir1zj7"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs (propagated-inputs
`(("python-nose" ,python-nose) `(("python-nose" ,python-nose)
@ -1930,14 +1925,14 @@ create data based on random numbers and yet remain repeatable.")
(define-public python-freezegun (define-public python-freezegun
(package (package
(name "python-freezegun") (name "python-freezegun")
(version "0.3.9") (version "0.3.10")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "freezegun" version)) (uri (pypi-uri "freezegun" version))
(sha256 (sha256
(base32 (base32
"1vhf3kgdy7gpy70n3bxa3y1n6aza316137md97z8p5k0gz6wqg3q")))) "08m6b42yxb9hk5lv747v9n2qsxyadmkb0k6yg0gxdanwap0slg3h"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python-mock" ,python-mock) `(("python-mock" ,python-mock)
@ -1953,7 +1948,7 @@ create data based on random numbers and yet remain repeatable.")
;; package does not include the Makefile. ;; package does not include the Makefile.
(replace 'check (replace 'check
(lambda _ (lambda _
(zero? (system* "nosetests" "./tests/"))))))) (invoke "nosetests" "./tests/"))))))
(home-page "https://github.com/spulec/freezegun") (home-page "https://github.com/spulec/freezegun")
(synopsis "Test utility for mocking the datetime module") (synopsis "Test utility for mocking the datetime module")
(description (description

View file

@ -2111,7 +2111,7 @@ single-member files which can't be decompressed in parallel.")
(define-public innoextract (define-public innoextract
(package (package
(name "innoextract") (name "innoextract")
(version "1.6") (version "1.7")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -2119,7 +2119,7 @@ single-member files which can't be decompressed in parallel.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"08sp5vbfjvq1irhhraqkn5m2x1z209r4axhx7laf1adcw30ccapi")) "0khwi9f0q0h6xfbixrrc1rfpgj0b7ajwilq7yhmxnn5lpc807f6x"))
(file-name (string-append name "-" version ".tar.gz")))) (file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
@ -2209,7 +2209,8 @@ decompression is a little bit slower.")
version "/" name "-" version "-src.tar.xz")) version "/" name "-" version "-src.tar.xz"))
(sha256 (sha256
(base32 (base32
"08anybdliqsbsl6x835iwzljahnm9i7v26icdjkcv33xmk6p5vw1")))) "08anybdliqsbsl6x835iwzljahnm9i7v26icdjkcv33xmk6p5vw1"))
(patches (search-patches "upx-fix-CVE-2017-15056.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("perl" ,perl) (native-inputs `(("perl" ,perl)
("ucl" ,ucl))) ("ucl" ,ucl)))
@ -2241,6 +2242,11 @@ decompression is a little bit slower.")
#t)) #t))
))) )))
(home-page "https://upx.github.io/") (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") (synopsis "Compression tool for executables")
(description (description
"The Ultimate Packer for eXecutables (UPX) is an executable file "The Ultimate Packer for eXecutables (UPX) is an executable file

View file

@ -30,6 +30,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix build-system r) #:use-module (guix build-system r)
#:use-module (gnu packages compression)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages machine-learning) #:use-module (gnu packages machine-learning)
#:use-module (gnu packages maths) #:use-module (gnu packages maths)
@ -556,14 +557,14 @@ ellipses, circles, cylinders, arrows, ...")
(define-public r-globaloptions (define-public r-globaloptions
(package (package
(name "r-globaloptions") (name "r-globaloptions")
(version "0.0.13") (version "0.1.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "GlobalOptions" version)) (uri (cran-uri "GlobalOptions" version))
(sha256 (sha256
(base32 (base32
"04jvha0mafslqz5nr99xjylg9n2x31gj9v4mgyg7qcmfwpqyw3ch")))) "1wlyqz1yhmhjwslrd7q69jbd9vsbjkjfc01g60kl3cdpyr8hlyjn"))))
(properties `((upstream-name . "GlobalOptions"))) (properties `((upstream-name . "GlobalOptions")))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://github.com/jokergoo/GlobalOptions") (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 (define-public r-circlize
(package (package
(name "r-circlize") (name "r-circlize")
(version "0.4.3") (version "0.4.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "circlize" version)) (uri (cran-uri "circlize" version))
(sha256 (sha256
(base32 (base32
"0pg947gkryygikfbv6admx8gsg02b6g219j6a1sdnqij2908yxna")))) "1l28maiqi549z191srncxgabx5fnvf0lld7smzwfd3vr5cx8nqww"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-colorspace" ,r-colorspace) `(("r-colorspace" ,r-colorspace)
@ -681,14 +682,14 @@ compare different dendrograms to one another.")
(define-public r-getoptlong (define-public r-getoptlong
(package (package
(name "r-getoptlong") (name "r-getoptlong")
(version "0.1.6") (version "0.1.7")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "GetoptLong" version)) (uri (cran-uri "GetoptLong" version))
(sha256 (sha256
(base32 (base32
"1d98gcvlvp9nz5lbnzr0kkpc2hbkx74hlhrnybqhg1gdwc3g09pm")))) "1fl3w2n602ldybc5qj7qw4xmzzb804bsjkqwf6dswzj0vf0qiadr"))))
(properties `((upstream-name . "GetoptLong"))) (properties `((upstream-name . "GetoptLong")))
(build-system r-build-system) (build-system r-build-system)
(inputs (inputs
@ -896,14 +897,14 @@ most popular ones.")
(define-public r-sp (define-public r-sp
(package (package
(name "r-sp") (name "r-sp")
(version "1.2-7") (version "1.3-1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "sp" version)) (uri (cran-uri "sp" version))
(sha256 (sha256
(base32 (base32
"0q04yfgyjannsrzl0ppwcv0simrxrrbx2iz5mzaafc5x38zf0q3d")))) "17xm1ig80p9wc860hm3bgishz6lj9fxgwqidj7rkbk4ap99qp62p"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-lattice" ,r-lattice))) `(("r-lattice" ,r-lattice)))
@ -1009,14 +1010,14 @@ SpatialVx.")
(define-public r-extremes (define-public r-extremes
(package (package
(name "r-extremes") (name "r-extremes")
(version "2.0-8") (version "2.0-9")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "extRemes" version)) (uri (cran-uri "extRemes" version))
(sha256 (sha256
(base32 (base32
"0pnpib3g2r9x8hfqhvq23j8m3jh62lp28ipnqir5yadnzv850gfm")))) "0cpvcajk9xyy7662nqkyx333vrxpwsc5nmv0bfnhsbgijz5y0hvm"))))
(properties `((upstream-name . "extRemes"))) (properties `((upstream-name . "extRemes")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -1595,14 +1596,14 @@ Core algorithms are executed in parallel on systems supporting OpenMP.")
(define-public r-rcpproll (define-public r-rcpproll
(package (package
(name "r-rcpproll") (name "r-rcpproll")
(version "0.2.2") (version "0.3.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "RcppRoll" version)) (uri (cran-uri "RcppRoll" version))
(sha256 (sha256
(base32 (base32
"19xzvxym8zbighndygkq4imfwc0abh4hqyq3qrr8aakyd096iisi")))) "0srzfhzkk42kzrdjnhbb37946jp1p688rgysy6k3i2is8jb21zyb"))))
(properties `((upstream-name . "RcppRoll"))) (properties `((upstream-name . "RcppRoll")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -1822,14 +1823,14 @@ color labels, layout, etc.")
(define-public r-stringdist (define-public r-stringdist
(package (package
(name "r-stringdist") (name "r-stringdist")
(version "0.9.4.7") (version "0.9.5.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "stringdist" version)) (uri (cran-uri "stringdist" version))
(sha256 (sha256
(base32 (base32
"1qg80wmcrpkba9njvgjdg15bgw7ddks40kkfh5x61as9lhchy4i4")))) "0gap1g9xwhp0zxqsznkc2carpvi80z03prr4q8m528684lznx2xa"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://github.com/markvanderloo/stringdist") (home-page "https://github.com/markvanderloo/stringdist")
(synopsis "Approximate string matching and string distance functions") (synopsis "Approximate string matching and string distance functions")
@ -2718,17 +2719,19 @@ supports arbitrary vertex/edge/graph attributes.")
(define-public r-statnet-common (define-public r-statnet-common
(package (package
(name "r-statnet-common") (name "r-statnet-common")
(version "4.0.0") (version "4.1.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "statnet.common" version)) (uri (cran-uri "statnet.common" version))
(sha256 (sha256
(base32 (base32
"0yw6l5b4qv0jqlg4zyczas7m12a5pyqghs6ydxy2f6v6vxkijvi0")))) "0h3g687214rlycca0fjrpy1lqbqsrginxqhmhl2mb2jinqqxcfgd"))))
(properties (properties
`((upstream-name . "statnet.common"))) `((upstream-name . "statnet.common")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs
`(("r-coda" ,r-coda)))
(home-page "https://statnet.org") (home-page "https://statnet.org")
(synopsis "R scripts and utilities used by the Statnet software") (synopsis "R scripts and utilities used by the Statnet software")
(description "This package provides non-statistical utilities used by the (description "This package provides non-statistical utilities used by the
@ -2971,14 +2974,14 @@ Cryer and Kung-Sik Chan.")
(define-public r-extradistr (define-public r-extradistr
(package (package
(name "r-extradistr") (name "r-extradistr")
(version "1.8.8") (version "1.8.9")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "extraDistr" version)) (uri (cran-uri "extraDistr" version))
(sha256 (sha256
(base32 (base32
"0ywn4qwnamv36l1hw27l9y5kh3v6ha5781wsv2bz6szqjgg7kdb3")))) "1fg8vjpal33y51iqzglk1yvy46d7js0l0wfbdy698lq8a06hq19p"))))
(properties `((upstream-name . "extraDistr"))) (properties `((upstream-name . "extraDistr")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -3041,14 +3044,14 @@ applied econometric analysis.")
(define-public r-cubature (define-public r-cubature
(package (package
(name "r-cubature") (name "r-cubature")
(version "1.3-11") (version "1.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "cubature" version)) (uri (cran-uri "cubature" version))
(sha256 (sha256
(base32 (base32
"06f6gsvbb732p80r6hxvzh4ik546icxfvx21dyh65ypmw3kgm64k")))) "1hd23b8v2kpqp5gr0va8p2q7j8w9rik6ks7zrr4b8mb2mwrakk74"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-rcpp" ,r-rcpp))) `(("r-rcpp" ,r-rcpp)))
@ -3324,14 +3327,14 @@ environment within Shiny.")
(define-public r-radiant-data (define-public r-radiant-data
(package (package
(name "r-radiant-data") (name "r-radiant-data")
(version "0.8.1") (version "0.9.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "radiant.data" version)) (uri (cran-uri "radiant.data" version))
(sha256 (sha256
(base32 (base32
"1ylina1jlrmvjkj8pwg0ip5jv1038vnzyckmf542xl7g11x8rvw1")) "0mbxfqn79nphii4hb6kxl2wc0w0ra16y378rp2yw9a9926zdb7mb"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -3347,6 +3350,7 @@ environment within Shiny.")
("r-curl" ,r-curl) ("r-curl" ,r-curl)
("r-dplyr" ,r-dplyr) ("r-dplyr" ,r-dplyr)
("r-dt" ,r-dt) ("r-dt" ,r-dt)
("r-glue" ,r-glue)
("r-ggplot2" ,r-ggplot2) ("r-ggplot2" ,r-ggplot2)
("r-gridextra" ,r-gridextra) ("r-gridextra" ,r-gridextra)
("r-import" ,r-import) ("r-import" ,r-import)
@ -3355,16 +3359,19 @@ environment within Shiny.")
("r-lubridate" ,r-lubridate) ("r-lubridate" ,r-lubridate)
("r-magrittr" ,r-magrittr) ("r-magrittr" ,r-magrittr)
("r-markdown" ,r-markdown) ("r-markdown" ,r-markdown)
("r-pryr" ,r-pryr) ("r-plotly" ,r-plotly)
("r-psych" ,r-psych) ("r-psych" ,r-psych)
("r-readr" ,r-readr) ("r-readr" ,r-readr)
("r-readxl" ,r-readxl)
("r-rlang" ,r-rlang)
("r-rmarkdown" ,r-rmarkdown) ("r-rmarkdown" ,r-rmarkdown)
("r-rstudioapi" ,r-rstudioapi) ("r-rstudioapi" ,r-rstudioapi)
("r-scales" ,r-scales) ("r-scales" ,r-scales)
("r-shiny" ,r-shiny) ("r-shiny" ,r-shiny)
("r-shinyace" ,r-shinyace) ("r-shinyace" ,r-shinyace)
("r-tibble" ,r-tibble) ("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") (home-page "https://github.com/radiant-rstats/radiant.data")
(synopsis "Data menu for Radiant: business analytics using R and Shiny") (synopsis "Data menu for Radiant: business analytics using R and Shiny")
(description (description
@ -3915,14 +3922,14 @@ exchanging spatial objects with other R packages.")
(define-public r-later (define-public r-later
(package (package
(name "r-later") (name "r-later")
(version "0.7.2") (version "0.7.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "later" version)) (uri (cran-uri "later" version))
(sha256 (sha256
(base32 (base32
"0l5ln7sjyi2rj7bx8iamxykqlfarv05zb9882ikizppb1cr1hgyw")))) "04j2phymxgkk4hv9pfa5w3s98w5d7fvm11blrdhxmray4n618msw"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-bh" ,r-bh) `(("r-bh" ,r-bh)
@ -4125,14 +4132,14 @@ obtain a better initial configuration in non-metric MDS.")
(define-public r-reticulate (define-public r-reticulate
(package (package
(name "r-reticulate") (name "r-reticulate")
(version "1.7") (version "1.8")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "reticulate" version)) (uri (cran-uri "reticulate" version))
(sha256 (sha256
(base32 (base32
"1ghhc4hbmwpp79ilbdbshynhs61i8sv8z6p1al04jy7ij0lcglxy")))) "0zwb4ikf021nw7axdn7qlr6bq4xkph3anfy314idkspy1iil4nmr"))))
(build-system r-build-system) (build-system r-build-system)
(inputs `(("python" ,python))) (inputs `(("python" ,python)))
(propagated-inputs (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.") Sequence logos can easily be combined with other ggplot2 plots.")
;; Unspecified version of the LGPL. ;; Unspecified version of the LGPL.
(license license:lgpl3+))) (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)))

View file

@ -32,6 +32,7 @@
#:use-module (gnu packages attr) #:use-module (gnu packages attr)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages cryptsetup) #:use-module (gnu packages cryptsetup)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
@ -217,7 +218,7 @@ communication.")
(define-public encfs (define-public encfs
(package (package
(name "encfs") (name "encfs")
(version "1.9.1") (version "1.9.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -226,13 +227,13 @@ communication.")
version "/encfs-" version ".tar.gz")) version "/encfs-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1906254dg5hwljh0h4gyrw09ms3b57dlhjfzhfzffv50yzpkl837")) "0qzxavvv20577bxvly8s7d3y7bqasqclc2mllp0ddfncjm9z02a7"))
(modules '((guix build utils))) (modules '((guix build utils)))
;; Remove bundled dependencies in favour of proper inputs. ;; Remove bundled dependencies in favour of proper inputs.
(snippet '(begin (snippet '(begin
(for-each delete-file-recursively (for-each delete-file-recursively
(find-files "internal" "^tinyxml2-[0-9]" '("vendor/github.com/leethomason/tinyxml2"
#:directories? #t)) "vendor/github.com/google/googletest"))
#t)))) #t))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs
@ -240,6 +241,7 @@ communication.")
;; Test dependencies. ;; Test dependencies.
("expect" ,expect) ("expect" ,expect)
("googletest-source" ,(package-source googletest))
("perl" ,perl))) ("perl" ,perl)))
(inputs (inputs
`(("attr" ,attr) `(("attr" ,attr)
@ -247,7 +249,18 @@ communication.")
("openssl" ,openssl) ("openssl" ,openssl)
("tinyxml2" ,tinyxml2))) ("tinyxml2" ,tinyxml2)))
(arguments (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") (home-page "https://vgough.github.io/encfs")
(synopsis "Encrypted virtual file system") (synopsis "Encrypted virtual file system")
(description (description
@ -713,14 +726,14 @@ SHA256, SHA512, SHA3, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R
(define-public botan (define-public botan
(package (package
(name "botan") (name "botan")
(version "2.5.0") (version "2.6.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://botan.randombit.net/releases/" (uri (string-append "https://botan.randombit.net/releases/"
"Botan-" version ".tgz")) "Botan-" version ".tgz"))
(sha256 (sha256
(base32 (base32
"06zvwknhwfrkdvq2sybqbqhnd2d4nq2cszlnsddql13z7vh1z8xq")))) "1iawmymmnp5j2mcjj70slivn6bgg8gbpppldc1rjqw5sbdan3wn1"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases '(#:phases

View file

@ -1107,7 +1107,7 @@ extremely small.")
(define-public perl-dbi (define-public perl-dbi
(package (package
(name "perl-dbi") (name "perl-dbi")
(version "1.637") (version "1.641")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1115,7 +1115,7 @@ extremely small.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1ikbsb6sb0bd2m1dqknl4vx7ikmnd41y0xq8np1l40g8jcjp2mr5")))) "1hf2x29bnqf2x1v4bdhji802z7n2mbg7h1amv8gdkqyhrlrfa2am"))))
(build-system perl-build-system) (build-system perl-build-system)
(synopsis "Database independent interface for Perl") (synopsis "Database independent interface for Perl")
(description "This package provides an database interface for Perl.") (description "This package provides an database interface for Perl.")

View file

@ -57,13 +57,13 @@ clients.")
(define-public vdirsyncer (define-public vdirsyncer
(package (package
(name "vdirsyncer") (name "vdirsyncer")
(version "0.16.4") (version "0.16.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri name version)) (uri (pypi-uri name version))
(sha256 (sha256
(base32 (base32
"03wva48bgv1ad3df6plc9b8xxh6k8bcaxrhlzwh81c9mzn5bspzv")))) "07iqq5c53cfrb5xnmam1rsl683hc3rykmdak896n2gm81r361c66"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases
@ -76,7 +76,6 @@ clients.")
(zero? (system* "make" "test")))) (zero? (system* "make" "test"))))
(add-after 'install 'manpage (add-after 'install 'manpage
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(add-installed-pythonpath inputs outputs)
(zero? (system* "make" "--directory=docs/" "man")) (zero? (system* "make" "--directory=docs/" "man"))
(install-file (install-file
"docs/_build/man/vdirsyncer.1" "docs/_build/man/vdirsyncer.1"

View file

@ -50,6 +50,7 @@
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages web) #:use-module (gnu packages web)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
@ -104,6 +105,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
(uri (string-append (uri (string-append
"ftp://ftp.isc.org/isc/bind9/" version "/" name "-" "ftp://ftp.isc.org/isc/bind9/" version "/" name "-"
version ".tar.gz")) version ".tar.gz"))
(patches (search-patches "bind-CVE-2018-5738.patch"))
(sha256 (sha256
(base32 (base32
"0a9dvyg1dk7vpqn9gz7p5jas3bz7z22bjd66b98g1qk16i2w7rqd")))) "0a9dvyg1dk7vpqn9gz7p5jas3bz7z22bjd66b98g1qk16i2w7rqd"))))

View file

@ -40,15 +40,7 @@
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0acnxfwvkx1m1d0h5z051mz95n35zm468hcvc3wpmn17c15h5ihg")) "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"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:test-target "test" `(#:test-target "test"
@ -70,27 +62,6 @@
(("#!/usr/bin/env elixir") (("#!/usr/bin/env elixir")
(string-append "#!" out "/bin/elixir")))) (string-append "#!" out "/bin/elixir"))))
#t)) #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 (add-before 'build 'make-current
;; The Elixir compiler checks whether or not to compile files by ;; The Elixir compiler checks whether or not to compile files by
;; inspecting their timestamps. When the timestamp is equal to the ;; inspecting their timestamps. When the timestamp is equal to the
@ -102,6 +73,11 @@
(utime file recent recent 0 0))) (utime file recent recent 0 0)))
(find-files "." ".*")) (find-files "." ".*"))
#t)) #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)))) (delete 'configure))))
(inputs (inputs
`(("erlang" ,erlang) `(("erlang" ,erlang)

View file

@ -436,7 +436,7 @@ on stdout instead of using a socket as the Emacsclient does.")
(define-public magit (define-public magit
(package (package
(name "magit") (name "magit")
(version "2.12.1") (version "2.13.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -444,7 +444,7 @@ on stdout instead of using a socket as the Emacsclient does.")
version "/" name "-" version ".tar.gz")) version "/" name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1czzknmhzbggcv3bxl5amvfpp0zrkdwl1x05qarsq6qakvc85xy3")))) "1ygaah3dd3nxpyd17297xgvdcgr7pgzzwlmpnmchki0kiwgg3sbc"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("texinfo" ,texinfo) (native-inputs `(("texinfo" ,texinfo)
("emacs" ,emacs-minimal))) ("emacs" ,emacs-minimal)))
@ -3014,6 +3014,33 @@ This provides a basic API and common UI widgets such as popup tooltips
and popup menus.") and popup menus.")
(license license:gpl3+))) (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 (define-public emacs-god-mode
(let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964") (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
(revision "1")) (revision "1"))
@ -4797,7 +4824,7 @@ distribution, primarily targeting Clojure users")
(define-public emacs-orgalist (define-public emacs-orgalist
(package (package
(name "emacs-orgalist") (name "emacs-orgalist")
(version "1.7") (version "1.8")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -4805,7 +4832,7 @@ distribution, primarily targeting Clojure users")
"orgalist-" version ".el")) "orgalist-" version ".el"))
(sha256 (sha256
(base32 (base32
"13dl0l727vlny3y88gqpngcy90ly5r719s1pbmkva5gmcryb68xr")))) "1wqwnmn08i0qkxm8b2iclvf6cydcn68h1p3h7r1kig2bdn5b8948"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "http://elpa.gnu.org/packages/orgalist.html") (home-page "http://elpa.gnu.org/packages/orgalist.html")
(synopsis "Manage Org-like lists in non-Org buffers") (synopsis "Manage Org-like lists in non-Org buffers")
@ -5609,7 +5636,7 @@ highlights quasi-quoted expressions.")
(define-public emacspeak (define-public emacspeak
(package (package
(name "emacspeak") (name "emacspeak")
(version "47.0") (version "48.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -5618,7 +5645,7 @@ highlights quasi-quoted expressions.")
version "/emacspeak-" version ".tar.bz2")) version "/emacspeak-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0xbcc266x752y68s3g096m161irzvsqym3axzqn8rb276a8x55n7")))) "07imi3hji06b3r7v7v59978q76s8a7ynmxwfc9j03pgnv965lpjy"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:make-flags (list (string-append "prefix=" '(#:make-flags (list (string-append "prefix="
@ -5626,30 +5653,35 @@ highlights quasi-quoted expressions.")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'configure (replace 'configure
(lambda _ (lambda* (#:key outputs #:allow-other-keys)
;; Configure Emacspeak according to etc/install.org. (let* ((out (assoc-ref outputs "out"))
(lisp (string-append out
"/share/emacs/site-lisp/emacspeak")))
(setenv "SHELL" (which "sh")) (setenv "SHELL" (which "sh"))
(zero? (system* "make" "config")))) ;; Configure Emacspeak according to etc/install.org.
(invoke "make" "config"))))
(add-after 'build 'build-espeak (add-after 'build 'build-espeak
(lambda _ (lambda _
(zero? (system* "make" "espeak")))) (invoke "make" "espeak")))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")) (bin (string-append out "/bin"))
(lisp (string-append out "/share/emacs/site-lisp/emacspeak")) (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 ;; According to etc/install.org, the Emacspeak directory should
;; be copied to its installation destination. ;; be copied to its installation destination.
(for-each (for-each
(lambda (file) (lambda (file)
(copy-recursively file (string-append lisp "/" file))) (copy-recursively file (string-append lisp "/" file)))
'("etc" "info" "lisp" "media" "servers" "sounds" "stumpwm" '("etc" "info" "js" "lisp" "media" "scapes" "servers" "sounds"
"xsl")) "stumpwm" "xsl"))
;; Make sure emacspeak is loaded from the correct directory. ;; Make sure emacspeak is loaded from the correct directory.
(substitute* "etc/emacspeak.sh" (substitute* "etc/emacspeak.sh"
(("exec emacs.*$") (("exec FLAVOR.*")
(string-append "exec emacs -l " lisp (string-append "exec " emacs " -l " lisp
"/lisp/emacspeak-setup.el $CL_ALL"))) "/lisp/emacspeak-setup.el $CL_ALL")))
;; Install the convenient startup script. ;; Install the convenient startup script.
(mkdir-p bin) (mkdir-p bin)
@ -5668,10 +5700,11 @@ highlights quasi-quoted expressions.")
#t)))) #t))))
#:tests? #f)) ; no check target #:tests? #f)) ; no check target
(inputs (inputs
`(("espeak" ,espeak) `(("emacs" ,emacs)
("espeak" ,espeak)
("perl" ,perl)
("tcl" ,tcl) ("tcl" ,tcl)
("tclx" ,tclx))) ("tclx" ,tclx)))
(native-inputs `(("emacs" ,emacs-minimal)))
(home-page "http://emacspeak.sourceforge.net") (home-page "http://emacspeak.sourceforge.net")
(synopsis "Audio desktop interface for Emacs") (synopsis "Audio desktop interface for Emacs")
(description (description
@ -7917,7 +7950,7 @@ close, copy, cut, paste, undo, redo.")
(define-public emacs-password-store (define-public emacs-password-store
(package (package
(name "emacs-password-store") (name "emacs-password-store")
(version "1.7.1") (version "1.7.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -7925,7 +7958,7 @@ close, copy, cut, paste, undo, redo.")
"password-store-" version ".tar.xz")) "password-store-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn")))) "1sl0d7nc85c6c2bmmmyb8rpmn47vhkj831l153mjlkawjvhwas27"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -7940,6 +7973,7 @@ close, copy, cut, paste, undo, redo.")
(propagated-inputs (propagated-inputs
`(("emacs-f" ,emacs-f) `(("emacs-f" ,emacs-f)
("emacs-s" ,emacs-s) ("emacs-s" ,emacs-s)
("emacs-with-editor" ,emacs-with-editor)
("password-store" ,password-store))) ("password-store" ,password-store)))
(home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs") (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
(synopsis "Password store (pass) support for 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+)))) (license license:gpl3+))))
(define-public emacs-racket-mode (define-public emacs-racket-mode
(let ((commit "33877b1bb24faea68842e0396bd5718b84e47451") (let ((commit "48f0cb99d3b2ca6066249546d2063d85437251c1")
(revision "1")) (revision "1"))
(package (package
(name "emacs-racket-mode") (name "emacs-racket-mode")
(version (string-append "0.0.1" "-" revision "." (version (string-append "0.0.2" "-" revision "."
(string-take commit 7))) (string-take commit 7)))
(source (source
(origin (origin
@ -9949,8 +9983,10 @@ perform regression test for packages that provide font-lock rules.")
(file-name (string-append name "-" version "-checkout")) (file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 (base32
"0681mzwx08zwbh8qg3s26jw1jn4fw2ljp1akxqkhy08sxhafqvb1")))) "0fxky8xj639bjhiab9way9daqda22301b7w85vm4b4ydgjgnc59x"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments
`(#:include '("\\.el$" "\\.rkt$")))
(propagated-inputs (propagated-inputs
`(("emacs-faceup" ,emacs-faceup) `(("emacs-faceup" ,emacs-faceup)
("emacs-s" ,emacs-s))) ("emacs-s" ,emacs-s)))
@ -10807,23 +10843,36 @@ Org-mode. It features:
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-fish-completion (define-public emacs-fish-completion
(let ((commit "bac15fda1392a891070574dfe5d2d50b10831e8b"))
(package (package
(name "emacs-fish-completion") (name "emacs-fish-completion")
(version "20180329") (version (git-version "20180616" "1" commit))
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://github.com/Ambrevar/emacs-fish-completion/archive/" "https://gitlab.com/Ambrevar/emacs-fish-completion/repository/"
"3e3ed1f19fa778b7c35ad88e033dce5a6b1fc153" "archive.tar.gz?ref="
".tar.gz")) commit))
(sha256 (sha256
(base32 (base32
"16329py7fvid0bap1qhqxhdc68m9qqy1p8gc2bhng81zhm5a5zsm")))) "093qzdrbkl7dhjk16zq8i13kh1phyigkblcfrbgbrxjqd2ndrfdi"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs `(("fish" ,fish))) (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 (home-page
"https://github.com/Ambrevar/emacs-fish-completion") "https://gitlab.com/Ambrevar/emacs-fish-completion")
(synopsis "Fish completion for Emacs pcomplete") (synopsis "Fish completion for Emacs pcomplete")
(description (description
"This package provides completion for the Fish shell to pcomplete (used "This package provides completion for the Fish shell to pcomplete (used
@ -10841,7 +10890,7 @@ shell/Eshell mode hook.
The package @code{emacs-bash-completion} is an optional dependency: if available, 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 @code{fish-completion-complete} can be configured to fall back on bash to further
try completing. See @code{fish-completion-fallback-on-bash-p}.") try completing. See @code{fish-completion-fallback-on-bash-p}.")
(license license:gpl3+))) (license license:gpl3+))))
(define-public emacs-gif-screencast (define-public emacs-gif-screencast
(let ((commit "825e606950ec842304bf75cf85baef707b853b03")) (let ((commit "825e606950ec842304bf75cf85baef707b853b03"))

View file

@ -1235,7 +1235,8 @@ play them on systems for which they were never designed!")
(find-files "keymaps" ".*LINUX\\.map"))) (find-files "keymaps" ".*LINUX\\.map")))
(let ((fonts (string-append share "/fonts"))) (let ((fonts (string-append share "/fonts")))
(install-file "uismall.bdf" 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"))) (install-file "mame" (string-append out "/bin")))
#t)) #t))
(add-after 'install 'install-documentation (add-after 'install 'install-documentation

View file

@ -89,6 +89,7 @@
(guix build gnu-build-system)) (guix build gnu-build-system))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'bootstrap)
;; The are several code fragments that embed timestamps into the ;; The are several code fragments that embed timestamps into the
;; output. Here, we alter those fragments to use the value of ;; output. Here, we alter those fragments to use the value of
;; SOURCE_DATE_EPOCH instead. ;; SOURCE_DATE_EPOCH instead.
@ -127,6 +128,29 @@
(date->string source-date-epoch (date->string source-date-epoch
"{H,Mi,S} = {~H,~M,~S},"))) "{H,Mi,S} = {~H,~M,~S},")))
#t))) #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 (add-after 'patch-source-shebangs 'patch-source-env
(lambda _ (lambda _
(let ((escripts (let ((escripts

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -35,14 +36,14 @@
(define-public fcitx (define-public fcitx
(package (package
(name "fcitx") (name "fcitx")
(version "4.2.8.6") (version "4.2.9.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://download.fcitx-im.org/fcitx/" (uri (string-append "http://download.fcitx-im.org/fcitx/"
name "-" version "_dict.tar.xz")) name "-" version "_dict.tar.xz"))
(sha256 (sha256
(base32 (base32
"15ymd42kg920ri0f8fymq3i68g8k1kgpmdlnk9jf5fvnz6g4w0wi")))) "0hyrh3v82a32ylnlvzrp6cmq56x4p1a42q5xc6njmmj2msxm34x5"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(outputs '("out" "gtk2" "gtk3")) (outputs '("out" "gtk2" "gtk3"))
(arguments (arguments
@ -65,6 +66,11 @@
"-DENABLE_QT_IM_MODULE=OFF"))) "-DENABLE_QT_IM_MODULE=OFF")))
(native-inputs (native-inputs
`(("doxygen" ,doxygen) `(("doxygen" ,doxygen)
("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 ("glib:bin" ,glib "bin") ; for glib-genmarshal
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)))
(inputs (inputs
@ -78,7 +84,7 @@
("libxkbfile" ,libxkbfile) ("libxkbfile" ,libxkbfile)
("libxml2" ,libxml2) ("libxml2" ,libxml2)
("xkeyboard-config" ,xkeyboard-config))) ("xkeyboard-config" ,xkeyboard-config)))
(home-page "http://fcitx-im.org") (home-page "https://fcitx-im.org")
(synopsis "Input method framework") (synopsis "Input method framework")
(description (description
"Fcitx is an input method framework with extension support. It has "Fcitx is an input method framework with extension support. It has
@ -89,14 +95,14 @@ built-in.")
(define-public fcitx-configtool (define-public fcitx-configtool
(package (package
(name "fcitx-configtool") (name "fcitx-configtool")
(version "0.4.8") (version "0.4.10")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://download.fcitx-im.org/fcitx-configtool/" (uri (string-append "https://download.fcitx-im.org/fcitx-configtool/"
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1vaim0namw58bfafbvws1vgd4010p19zwqfbx6bd1zi5sgchdg0f")))) "1yyi9jhkwn49lx9a47k1zbvwgazv4y4z72gnqgzdpgdzfrlrgi5w"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags

View file

@ -617,7 +617,7 @@ languages, plus Greek and Cyrillic.")
(define-public font-gnu-unifont (define-public font-gnu-unifont
(package (package
(name "font-gnu-unifont") (name "font-gnu-unifont")
(version "10.0.07") (version "11.0.01")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -625,7 +625,7 @@ languages, plus Greek and Cyrillic.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1js8dn4v4pv8jqprsxa1fv4fs3hqhm9x4dj19fg9qgc8fx7k0v0k")))) "1nkapra0ic4fp3lmnvfc6jly62yskhcdkwrnq29hvh3xs51ncc52"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" ; TrueType version (outputs '("out" ; TrueType version
"pcf" ; PCF (bitmap) version "pcf" ; PCF (bitmap) version
@ -650,7 +650,7 @@ languages, plus Greek and Cyrillic.")
(psf (string-append (assoc-ref outputs "psf") (psf (string-append (assoc-ref outputs "psf")
"/share/consolefonts")) "/share/consolefonts"))
(bin (assoc-ref outputs "bin"))) (bin (assoc-ref outputs "bin")))
(system* "make" (invoke "make"
(string-append "PREFIX=" bin) (string-append "PREFIX=" bin)
(string-append "TTFDEST=" ttf) (string-append "TTFDEST=" ttf)
(string-append "PCFDEST=" pcf) (string-append "PCFDEST=" pcf)

View file

@ -1822,7 +1822,7 @@ falling, themeable graphics and sounds, and replays.")
(define-public wesnoth (define-public wesnoth
(package (package
(name "wesnoth") (name "wesnoth")
(version "1.14.1") (version "1.14.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/wesnoth/wesnoth-" (uri (string-append "mirror://sourceforge/wesnoth/wesnoth-"
@ -1831,7 +1831,7 @@ falling, themeable graphics and sounds, and replays.")
name "-" version ".tar.bz2")) name "-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1mzrnbv71b4s41c5x8clhb53l8lidiwzny1hl828228pvys5bxkb")))) "06648041nr77sgzr7jpmcn37cma3hp41qynp50xzddx28l17zwg9"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f)) ; no check target `(#:tests? #f)) ; no check target
@ -2229,6 +2229,88 @@ Transport Tycoon Deluxe.")
("opensfx" ,openttd-opensfx) ("opensfx" ,openttd-opensfx)
,@(package-native-inputs openttd-engine))))) ,@(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 (define-public openrct2
(package (package
(name "openrct2") (name "openrct2")
@ -2244,29 +2326,33 @@ Transport Tycoon Deluxe.")
(file-name (string-append name "-" version ".tar.gz")))) (file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f ;; no tests available `(#:configure-flags '("-DDOWNLOAD_TITLE_SEQUENCES=OFF")
#:tests? #f ; Tests require network.
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'fix-usr-share-paths (add-after 'unpack 'fix-usr-share-paths&add-data
(lambda* (#:key make-flags outputs #:allow-other-keys) (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. ;; Fix some references to /usr/share.
;; Change to Platform.Linux.cpp on 0.1.2+
(substitute* "src/openrct2/platform/linux.c" (substitute* "src/openrct2/platform/linux.c"
(("/usr/share") (("/usr/share")
(string-append (assoc-ref %outputs "out") "/share"))))) (string-append (assoc-ref %outputs "out") "/share")))
(add-after 'build 'fix-cmake-install-file (copy-recursively (string-append titles
(lambda _ "/share/openrct2/title-sequences") "data/title")
;; The build system tries to download a file and compare hashes. (copy-recursively (string-append objects
;; Since we have no network, remove this so the install doesn't fail. "/share/openrct2/objects") "data/object")))))))
(substitute* "cmake_install.cmake"
(("EXPECTED_HASH SHA1=b587d83de508d0b104d14c599b76f8565900fce0")
"")))))))
(inputs `(("curl" ,curl) (inputs `(("curl" ,curl)
("fontconfig" ,fontconfig) ("fontconfig" ,fontconfig)
("freetype" ,freetype) ("freetype" ,freetype)
("icu4c" ,icu4c)
("jansson" ,jansson) ("jansson" ,jansson)
("libpng" ,libpng) ("libpng" ,libpng)
("libzip" ,libzip) ("libzip" ,libzip)
("mesa" ,mesa) ("mesa" ,mesa)
("openrct2-objects" ,openrct2-objects)
("openrct2-title-sequences" ,openrct2-title-sequences)
("openssl" ,openssl) ("openssl" ,openssl)
("sdl2" ,sdl2) ("sdl2" ,sdl2)
("speexdsp" ,speexdsp) ("speexdsp" ,speexdsp)
@ -3166,53 +3252,6 @@ application that locks the keyboard and mouse and instead displays bright
colors, pictures, and sounds.") colors, pictures, and sounds.")
(license license:gpl3+))) (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 (define-public hyperrogue
(package (package
(name "hyperrogue") (name "hyperrogue")
@ -4481,7 +4520,7 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
(package (package
(inherit quakespasm) (inherit quakespasm)
(name "vkquake") (name "vkquake")
(version "0.97.3") (version "1.00.0")
(source (source
(origin (origin
(method url-fetch) (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")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1p0nh2v2ilylw62fxc5qpfcmyhs0s64w8sgh036nc6kn21kbjc0d")))) "0bviv18jvp41jvrabgl7l5kq4n1p6p3rywij481yswawdw6l5idh"))))
(arguments (arguments
`(#:make-flags `(#:make-flags
(let ((vulkanlib (string-append (assoc-ref %build-inputs (let ((vulkanlib (string-append (assoc-ref %build-inputs

View file

@ -544,14 +544,14 @@ coordinates.")
(define-public r-rgooglemaps (define-public r-rgooglemaps
(package (package
(name "r-rgooglemaps") (name "r-rgooglemaps")
(version "1.4.1") (version "1.4.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "RgoogleMaps" version)) (uri (cran-uri "RgoogleMaps" version))
(sha256 (sha256
(base32 (base32
"0fsmlnhl4kw2j4972kfanzw9njhnzk695gsyw8g6yppsmz2clcaq")))) "112mdm53qx92n2m4ms02sbppckp44l1z19vy99j6gw3jrdprjydl"))))
(properties `((upstream-name . "RgoogleMaps"))) (properties `((upstream-name . "RgoogleMaps")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs `(("r-png" ,r-png))) (propagated-inputs `(("r-png" ,r-png)))

View file

@ -7140,7 +7140,7 @@ photo-booth-like software, such as Cheese.")
(define-public cheese (define-public cheese
(package (package
(name "cheese") (name "cheese")
(version "3.26.0") (version "3.28.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/" (uri (string-append "mirror://gnome/sources/" name "/"
@ -7148,7 +7148,7 @@ photo-booth-like software, such as Cheese.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"01f6lsp9jkhq5v2zxlghw15bca4xqavkxqkl8977r0g13p22zxcf")))) "06da5qc5hdvwwd5vkbgbx8pjx1l3mvr07yrnnv3v1hfc3wp7l7jw"))))
(arguments (arguments
;; Tests require GDK. ;; Tests require GDK.
`(#:tests? #f `(#:tests? #f

View file

@ -108,6 +108,7 @@ Daemon and possibly more in the future.")
(define-public libgcrypt (define-public libgcrypt
(package (package
(replacement libgcrypt/fixed)
(name "libgcrypt") (name "libgcrypt")
(version "1.8.2") (version "1.8.2")
(source (origin (source (origin
@ -142,6 +143,19 @@ generation.")
(properties '((ftp-server . "ftp.gnupg.org") (properties '((ftp-server . "ftp.gnupg.org")
(ftp-directory . "/gcrypt/libgcrypt"))))) (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 (define-public libassuan
(package (package
(name "libassuan") (name "libassuan")
@ -349,15 +363,14 @@ libskba (working with X.509 certificates and CMS data).")
(define-public gnupg-1 (define-public gnupg-1
(package (inherit gnupg) (package (inherit gnupg)
(version "1.4.22") (version "1.4.23")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
".tar.bz2")) ".tar.bz2"))
(patches (search-patches "gnupg-1.4-CVE-2018-12020.patch"))
(sha256 (sha256
(base32 (base32
"1d1hz4szh1kvwhsw7w2zxa6q5ndrk3qy6hj289l1b8k3xi5s554m")))) "1fkq4sqldvf6a25mm2qz95swv1qjg464736091w51djiwqbjyin9"))))
(native-inputs '()) (native-inputs '())
(inputs (inputs
`(("zlib" ,zlib) `(("zlib" ,zlib)
@ -508,14 +521,14 @@ decrypt messages using the OpenPGP format by making use of GPGME.")
(define-public python-gnupg (define-public python-gnupg
(package (package
(name "python-gnupg") (name "python-gnupg")
(version "0.3.8") (version "0.4.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "python-gnupg" version)) (uri (pypi-uri "python-gnupg" version))
(sha256 (sha256
(base32 (base32
"0nkbs9c8f30lra7ca39kg91x8cyxn0jb61vih4qky839gpbwwwiq")))) "03dc8whhvk7ccspbk8vzfhkxli8cd9zfbss5p597g4jldgy8s59d"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -523,16 +536,14 @@ decrypt messages using the OpenPGP format by making use of GPGME.")
(replace 'check (replace 'check
(lambda _ (lambda _
(substitute* "test_gnupg.py" (substitute* "test_gnupg.py"
;; Exported keys don't have a version line!
(("del k1\\[1\\]") "#")
;; Unsure why this test fails. ;; Unsure why this test fails.
(("'test_search_keys'") "True") (("'test_search_keys'") "True")
(("def test_search_keys") "def disabled__search_keys")) (("def test_search_keys") "def disabled__search_keys"))
(setenv "USERNAME" "guixbuilder") (setenv "USERNAME" "guixbuilder")
;; The doctests are extremely slow and sometimes time out, ;; The doctests are extremely slow and sometimes time out,
;; so we disable them. ;; so we disable them.
(zero? (system* "python" (invoke "python"
"test_gnupg.py" "--no-doctests"))))))) "test_gnupg.py" "--no-doctests"))))))
(native-inputs (native-inputs
`(("gnupg" ,gnupg-1))) `(("gnupg" ,gnupg-1)))
(home-page "https://packages.python.org/python-gnupg/index.html") (home-page "https://packages.python.org/python-gnupg/index.html")

View file

@ -215,7 +215,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(package (package
(inherit go-1.4) (inherit go-1.4)
(name "go") (name "go")
(version "1.9.6") (version "1.9.7")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -223,7 +223,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
name version ".src.tar.gz")) name version ".src.tar.gz"))
(sha256 (sha256
(base32 (base32
"0a2qkvzr0g5cbd66wi7b6r40qyp9p55y0zz2j5qg1xsqwsdhbx1n")))) "08kpy874x0rx43zpyv5kwd8xj2ma91xm33i0ka2v1v788px18a2q"))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments go-1.4) (substitute-keyword-arguments (package-arguments go-1.4)
((#:phases phases) ((#:phases phases)
@ -384,7 +384,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(package (package
(inherit go-1.9) (inherit go-1.9)
(name "go") (name "go")
(version "1.10.2") (version "1.10.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -392,7 +392,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
name version ".src.tar.gz")) name version ".src.tar.gz"))
(sha256 (sha256
(base32 (base32
"1gcqbac3wbhbcr0ri9zgfj6qkqbwf9fn116a0a7fvn4wdff60r32")))) "1wjmw65nfkkzz084695gdgn13sbjcaafy2y5370d214pdk31qysn"))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments go-1.9) (substitute-keyword-arguments (package-arguments go-1.9)
((#:phases phases) ((#:phases phases)

View file

@ -373,7 +373,7 @@ storage of the \"EXR\" file format for storing 16-bit floating-point images.")
(define-public openimageio (define-public openimageio
(package (package
(name "openimageio") (name "openimageio")
(version "1.6.15") (version "1.7.19")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/OpenImageIO/oiio/" (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")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"144crq0205d0w5aq4iglh2rhzf54a8rv3pksy6d533b75w5d7rq7")))) "1qlmfhvl2wva4aifyiq7c4sdy61ddl7wykwvlpfys9p701xghvj7"))))
(build-system cmake-build-system) (build-system cmake-build-system)
;; FIXME: To run all tests successfully, test image sets from multiple ;; FIXME: To run all tests successfully, test image sets from multiple
;; third party sources have to be present. For details see ;; third party sources have to be present. For details see

View file

@ -1107,7 +1107,7 @@ and modify groovy's @dfn{Abstract Syntax Tree} (AST).")))
"groovy-jmx" "groovy-json" "groovy-jsr223" "groovy-jmx" "groovy-json" "groovy-jsr223"
"groovy-nio" "groovy-servlet" "groovy-sql" "groovy-nio" "groovy-servlet" "groovy-sql"
"groovy-swing" "groovy-templates" "groovy-testng" "groovy-swing" "groovy-templates" "groovy-testng"
"java-commons-cli" "java-asm" "groovy-xml" "java-commons-cli" "java-asm"
"java-classpathx-servletapi" "java-xstream" "java-classpathx-servletapi" "java-xstream"
"java-jansi" "java-jline-2")) "java-jansi" "java-jline-2"))
;; antlr.jar is present twice in antlr2. Symlink doesn't like ;; 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-swing" ,groovy-swing)
("groovy-templates" ,groovy-templates) ("groovy-templates" ,groovy-templates)
("groovy-testng" ,groovy-testng) ("groovy-testng" ,groovy-testng)
("groovy-xml" ,groovy-xml)
("java-commons-cli" ,java-commons-cli) ("java-commons-cli" ,java-commons-cli)
("java-asm" ,java-asm) ("java-asm" ,java-asm)
("java-classpathx-servletapi" ,java-classpathx-servletapi) ("java-classpathx-servletapi" ,java-classpathx-servletapi)

View file

@ -8,7 +8,7 @@
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.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, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de> ;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>

View file

@ -1786,7 +1786,7 @@ is no support for parsing block and inline level HTML.")
(define-public guile-bytestructures (define-public guile-bytestructures
(package (package
(name "guile-bytestructures") (name "guile-bytestructures")
(version "1.0.1") (version "1.0.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/TaylanUB/scheme-bytestructures" (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")) "/bytestructures-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1lnfcy65mqj823lamy2n2vaghdz0g7mj011bgnhmd6hwpnaidnh2")))) "0xf6s8gd3656j8k2ar6y7i62r68azawyzxhsagsk8nvldnrs1r18"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
@ -2002,20 +2002,6 @@ is not available for Guile 2.0.")
"0z1dvn0scx59pbgjkpacam7p5n7630z4qm8fazim7ixq9xv3s8wx")) "0z1dvn0scx59pbgjkpacam7p5n7630z4qm8fazim7ixq9xv3s8wx"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system gnu-build-system) (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 (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
("automake" ,automake) ("automake" ,automake)

View file

@ -3304,6 +3304,39 @@ Compiler component.")))
This component decrypts a string passed to it.") This component decrypts a string passed to it.")
(license license:asl2.0))) (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 (define-public java-sisu-build-api
(package (package
(name "java-sisu-build-api") (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 Moreover, @code{logback-classic} natively implements the slf4j API so that you
can readily switch back and forth between logback and other logging frameworks can readily switch back and forth between logback and other logging frameworks
such as log4j or @code{java.util.logging} (JUL)."))) 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)))

View file

@ -28,7 +28,7 @@
(define-public libedit (define-public libedit
(package (package
(name "libedit") (name "libedit")
(version "20170329-3.1") (version "20180525-3.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -36,7 +36,7 @@
"/" name "-" version ".tar.gz")) "/" name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1gnlgl0x8g9ky59s70nriy5gv47676d1s4ypvbv8y11apl7xkwli")))) "05iicng4kag5hxdc7adbyj1gm3qbmvcc33m9cyx5gys0s67yl6y4"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("ncurses" ,ncurses))) `(("ncurses" ,ncurses)))

View file

@ -295,6 +295,12 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
(or (%current-target-system) (%current-system))) (or (%current-target-system) (%current-system)))
((or "x86_64" "i386") ((or "x86_64" "i386")
`(("gcc" ,gcc-7))) `(("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 ,@(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. ;; supports qemu "virt" machine and possibly a large number of ARM boards.
;; See : https://wiki.debian.org/DebianKernel/ARMMP. ;; See : https://wiki.debian.org/DebianKernel/ARMMP.
(define %linux-libre-version "4.17") (define %linux-libre-version "4.17.2")
(define %linux-libre-hash "0abbqrq96kn97jr02mf4ahqg7hl9vhq95c1l2z0s7jqrmhv1n8pb") (define %linux-libre-hash "0xkswi9vhbzi466pqvyli7glkvdyxhphn8yjg69kpw37rpw8ix5l")
(define-public linux-libre (define-public linux-libre
(make-linux-libre %linux-libre-version (make-linux-libre %linux-libre-version
@ -404,8 +410,8 @@ It has been modified to remove all non-free binary blobs.")
%linux-compatible-systems %linux-compatible-systems
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define %linux-libre-4.14-version "4.14.48") (define %linux-libre-4.14-version "4.14.50")
(define %linux-libre-4.14-hash "011lkq30gpvbgvg2p1nw2kqkig9a3qridy678rkx3fpah0ya4rhd") (define %linux-libre-4.14-hash "19k7s33dyykm2vh1zpxxh3qrbjcx2p2md2r8s8z5mbv8yaldgvmj")
(define-public linux-libre-4.14 (define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version (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)) #:configuration-file kernel-config))
(define-public linux-libre-4.9 (define-public linux-libre-4.9
(make-linux-libre "4.9.107" (make-linux-libre "4.9.109"
"0560sy53l42wi1jidwdbhjaa9p6kf46snk2hfcjk9f0ciiiiz5gi" "1i27fmlr0b05n4qri2vxdbg0qddwk1clyaramwbl3w0w10k63qkc"
%intel-compatible-systems %intel-compatible-systems
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define-public linux-libre-4.4 (define-public linux-libre-4.4
(make-linux-libre "4.4.136" (make-linux-libre "4.4.138"
"0bc278l9arl8bb2gvcg02x57h66b4r8iaan3r4kzqbmkfspkl2gi" "1030ra5gn24qmx8lsnhr6kfnfm60avzs23r81dl7mvzr5dci8vsl"
%intel-compatible-systems %intel-compatible-systems
#:configuration-file kernel-config)) #:configuration-file kernel-config))
@ -914,16 +920,15 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
(define-public strace (define-public strace
(package (package
(name "strace") (name "strace")
(version "4.22") (version "4.23")
(home-page "https://strace.io") (home-page "https://strace.io")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append home-page "/files/" version (uri (string-append home-page "/files/" version
"/strace-" version ".tar.xz")) "/strace-" version ".tar.xz"))
(patches (search-patches "strace-kernel-4.16.patch"))
(sha256 (sha256
(base32 (base32
"17dkpnsjxmys1ydidm9wcvc3wscsz44fmlxw3dclspn9cj9d1306")))) "1bcsq2gbpcb81ayryvn56a6kjx42fc21la6qgds35n0xbybacq3q"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases '(#:phases
@ -2995,7 +3000,10 @@ arrays when needed.")
(let ((lvm2 (assoc-ref inputs "lvm2")) (let ((lvm2 (assoc-ref inputs "lvm2"))
(udev (assoc-ref inputs "udev"))) (udev (assoc-ref inputs "udev")))
(substitute* "Makefile.inc" (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") (substitute* '("kpartx/Makefile" "libmultipath/Makefile")
(("/usr/include/libdevmapper.h") (("/usr/include/libdevmapper.h")
(string-append lvm2 "/include/libdevmapper.h")) (string-append lvm2 "/include/libdevmapper.h"))
@ -3364,7 +3372,7 @@ disks and SD cards. This package provides the userland utilities.")
(package (package
(inherit f2fs-tools-1.7) (inherit f2fs-tools-1.7)
(name "f2fs-tools") (name "f2fs-tools")
(version "1.8.0") (version "1.10.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (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")) "/f2fs-tools.git/snapshot/" name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1bir9ladb58ijlcvrjrq1fb1xv5ys50zdjaq0yzliib0apsyrnyl")))) "05ikaim0qq3dx9x3sp43ralwz43r3b0viv62n99kabp0vf3b0hg8"))))
(inputs (inputs
`(("libuuid" ,util-linux))))) `(("libuuid" ,util-linux)))))
@ -4033,15 +4041,15 @@ monitoring tools for Linux. These include @code{mpstat}, @code{iostat},
(define-public light (define-public light
(package (package
(name "light") (name "light")
(version "1.0") (version "1.1")
(source (origin (source (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://github.com/haikarainen/" name (uri (git-reference
"/archive/v" version ".tar.gz")) (url "https://github.com/haikarainen/light")
(commit version)))
(sha256 (sha256
(base32 (base32
"0r5gn6c0jcxknzybl6059dplxv46dpahchqq4gymrs7z8bp0hilp")) "1qra8yzsga29bxlvq63v1db071a1xdji7i60p4kzrciidm1206js"))))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f ; no tests '(#:tests? #f ; no tests
@ -4049,10 +4057,11 @@ monitoring tools for Linux. These include @code{mpstat}, @code{iostat},
(string-append "PREFIX=" %output)) (string-append "PREFIX=" %output))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure) (delete 'configure) ; no configure script
(add-after 'unpack 'patch-makefile (add-after 'unpack 'patch-makefile
(lambda _ (lambda _
(substitute* "Makefile" (("chown") "#"))))))) (substitute* "Makefile" (("chown") "#"))
#t)))))
(native-inputs (native-inputs
`(("help2man" ,help2man))) `(("help2man" ,help2man)))
(home-page "https://haikarainen.github.io/light") (home-page "https://haikarainen.github.io/light")
@ -4405,14 +4414,14 @@ available in the kernel Linux.")
(define-public cpuid (define-public cpuid
(package (package
(name "cpuid") (name "cpuid")
(version "20180419") (version "20180519")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://www.etallen.com/cpuid/cpuid-" (uri (string-append "http://www.etallen.com/cpuid/cpuid-"
version ".src.tar.gz")) version ".src.tar.gz"))
(sha256 (sha256
(base32 (base32
"0cnxj72pjalsszhn862r6shw64zbrkw0k3mm36fn93bivswjnj12")))) "16pzwyifc9glpk1hm6bqb5d1a7cw0qnqiamh5sbvqg7j6sz26y4n"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:make-flags '("CC=gcc") '(#:make-flags '("CC=gcc")

View file

@ -47,6 +47,7 @@
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages maths) #:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
#:use-module (gnu packages ocaml) #:use-module (gnu packages ocaml)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
@ -786,3 +787,78 @@ main intended application of Autograd is gradient-based optimization.")
(define-public python2-autograd (define-public python2-autograd
(package-with-python2 python-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)))

View file

@ -491,7 +491,7 @@ and corrections. It is based on a Bayesian filter.")
(define-public offlineimap (define-public offlineimap
(package (package
(name "offlineimap") (name "offlineimap")
(version "7.2.0") (version "7.2.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/OfflineIMAP/offlineimap/" (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")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1i7pzm1vrj98jcyn1ygsg1yp0gqlsssnc25451icvivysvdwdj5n")))) "1022xf2w1xax4vx4kzhlfbhaf0b72wkpvrcscvs4q8qk2ja68h8x"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("asciidoc" ,asciidoc))) `(("asciidoc" ,asciidoc)))

View file

@ -294,14 +294,14 @@ semiconductors.")
(define-public gsl (define-public gsl
(package (package
(name "gsl") (name "gsl")
(version "2.4") (version "2.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/gsl/gsl-" (uri (string-append "mirror://gnu/gsl/gsl-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"16yfs5n444s03np1naj6yp1fsysd42kdscxzkg0k2yvfjixx0ijd")) "1395y9hlhqadn5g9j8q22224fds5sd92jxi9czfavjj24myasq04"))
(patches (search-patches "gsl-test-i686.patch")))) (patches (search-patches "gsl-test-i686.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
@ -3372,7 +3372,8 @@ in finite element programs.")
version "-src.zip")) version "-src.zip"))
(sha256 (sha256
(base32 (base32
"022w8hph7bli5zbpnk3z1qh1c2sl5hm8fw2ccim651ynn0hr7fyz")))) "022w8hph7bli5zbpnk3z1qh1c2sl5hm8fw2ccim651ynn0hr7fyz"))
(patches (search-patches "flann-cmake-3.11.patch"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(outputs '("out" (outputs '("out"
"octave")) ;46 MiB .mex file that pulls Octave "octave")) ;46 MiB .mex file that pulls Octave

View file

@ -24,7 +24,54 @@
#:use-module (guix build-system ant) #:use-module (guix build-system ant)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages compression) #: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 (define-public maven-resolver-api
(package (package
@ -190,6 +237,89 @@ for repositories using URI-based layouts.")))
("java-hamcrest-core" ,java-hamcrest-core) ("java-hamcrest-core" ,java-hamcrest-core)
("maven-resolver-test-util" ,maven-resolver-test-util))))) ("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 (define-public maven-shared-utils
(package (package
(name "maven-shared-utils") (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.") replacement with improvements.")
(license license:asl2.0))) (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 (define-public maven-artifact
(package (package
(name "maven-artifact") (name "maven-artifact")
@ -562,3 +1003,508 @@ so really just plain objects.")))
("java-guava" ,java-guava) ("java-guava" ,java-guava)
("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
("java-javax-inject" ,java-javax-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.")))

View file

@ -73,7 +73,7 @@ extensive examples, including parsers for the Javascript and C99 languages.")
(let ((triplet "i686-unknown-linux-gnu")) (let ((triplet "i686-unknown-linux-gnu"))
(package (package
(name "mes") (name "mes")
(version "0.14") (version "0.15")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://gitlab.com/janneke/mes" (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")) "/mes-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1i23jk61iibjza2s3lka56ry4ma424g2fyk8pjd5bd1dyjd0yrzf")))) "0kj2ywgii1795gxj6k29zxa0848h2j0ihbwlgn55wdalswl165dq"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(supported-systems '("i686-linux" "x86_64-linux")) (supported-systems '("i686-linux" "x86_64-linux"))
(propagated-inputs (propagated-inputs
@ -98,9 +98,7 @@ extensive examples, including parsers for the Javascript and C99 languages.")
'()) '())
("perl" ,perl))) ;build-aux/gitlog-to-changelog ("perl" ,perl))) ;build-aux/gitlog-to-changelog
(arguments (arguments
`(#:make-flags (list `(#:phases
(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'install 'generate-changelog (add-before 'install 'generate-changelog
(lambda _ (lambda _

View file

@ -1350,16 +1350,17 @@ networks.")
(define-public speedtest-cli (define-public speedtest-cli
(package (package
(name "speedtest-cli") (name "speedtest-cli")
(version "2.0.0") (version "2.0.2")
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (string-append (uri (git-reference
"https://github.com/sivel/speedtest-cli/archive/v" version ".tar.gz")) (url "https://github.com/sivel/speedtest-cli")
(file-name (string-append name "-" version ".tar.gz")) (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"16kcpba7nmszz2h0fq7qvv6src20syck2wlknaacg69kk88aybbk")))) "0vv2z37g2kgm2dzkfa4bhri92hs0d1acxi8z66gznsl5148q7sdi"))))
(build-system python-build-system) (build-system python-build-system)
(home-page "https://github.com/sivel/speedtest-cli") (home-page "https://github.com/sivel/speedtest-cli")
(synopsis "Internet bandwidth tester") (synopsis "Internet bandwidth tester")
@ -1901,3 +1902,36 @@ eight bytes) tools
low-level I/O programming that provides developers with a consistent low-level I/O programming that provides developers with a consistent
asynchronous model using a modern C++ approach.") asynchronous model using a modern C++ approach.")
(license license:boost1.0))) (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))))

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2016 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -27,14 +28,14 @@
(define-public nickle (define-public nickle
(package (package
(name "nickle") (name "nickle")
(version "2.77") (version "2.81")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://nickle.org/release/nickle-" (uri (string-append "https://nickle.org/release/nickle-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0rhij7cn1zkn8wzxyjkamz9fs262zyg80p6v6i864hdalg4plpm3")))) "1daqsflnqqgfkq6w6dknbm42avz70f5qxn7qidvgp472i4a37acr"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("readline" ,readline))) `(("readline" ,readline)))

View file

@ -7,6 +7,7 @@
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -26,9 +27,12 @@
(define-module (gnu packages package-management) (define-module (gnu packages package-management)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages acl) #:use-module (gnu packages acl)
#:use-module (gnu packages attr)
#:use-module (gnu packages avahi)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages backup) #:use-module (gnu packages backup)
#:use-module (gnu packages bdw-gc) #:use-module (gnu packages bdw-gc)
#:use-module (gnu packages bison)
#:use-module (gnu packages bootstrap) ;for 'bootstrap-guile-origin' #:use-module (gnu packages bootstrap) ;for 'bootstrap-guile-origin'
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
@ -36,6 +40,7 @@
#:use-module (gnu packages crypto) #:use-module (gnu packages crypto)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages docbook)
#:use-module (gnu packages file) #:use-module (gnu packages file)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
@ -208,12 +213,13 @@
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(guile (assoc-ref inputs "guile")) (guile (assoc-ref inputs "guile"))
(json (assoc-ref inputs "guile-json")) (json (assoc-ref inputs "guile-json"))
(sqlite (assoc-ref inputs "guile-sqlite3"))
(git (assoc-ref inputs "guile-git")) (git (assoc-ref inputs "guile-git"))
(bs (assoc-ref inputs (bs (assoc-ref inputs
"guile-bytestructures")) "guile-bytestructures"))
(ssh (assoc-ref inputs "guile-ssh")) (ssh (assoc-ref inputs "guile-ssh"))
(gnutls (assoc-ref inputs "gnutls")) (gnutls (assoc-ref inputs "gnutls"))
(deps (list json gnutls git bs ssh)) (deps (list json sqlite gnutls git bs ssh))
(effective (effective
(read-line (read-line
(open-pipe* OPEN_READ (open-pipe* OPEN_READ
@ -270,6 +276,7 @@
(propagated-inputs (propagated-inputs
`(("gnutls" ,gnutls) `(("gnutls" ,gnutls)
("guile-json" ,guile-json) ("guile-json" ,guile-json)
("guile-sqlite3" ,guile-sqlite3)
("guile-ssh" ,guile-ssh) ("guile-ssh" ,guile-ssh)
("guile-git" ,guile-git))) ("guile-git" ,guile-git)))
@ -287,23 +294,24 @@ the Nix package manager.")
;; Alias for backward compatibility. ;; Alias for backward compatibility.
(define-public guix-devel guix) (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 ;; This package is for internal consumption: it allows us to quickly build
;; the 'guix-register' program, which is referred to by (guix config). ;; the 'guix-daemon' program and use that in (guix self), used by 'guix
;; TODO: Remove this hack when 'guix-register' has been superseded by Scheme ;; pull'.
;; code.
(package (package
(inherit guix) (inherit guix)
(properties `((hidden? . #t))) (properties `((hidden? . #t)))
(name "guix-register") (name "guix-daemon")
;; Use a minimum set of dependencies. ;; Use a minimum set of dependencies.
(native-inputs (native-inputs
(fold alist-delete (package-native-inputs guix) (fold alist-delete (package-native-inputs guix)
'("po4a" "graphviz" "help2man"))) '("po4a" "graphviz" "help2man")))
(propagated-inputs (inputs
`(("gnutls" ,gnutls) `(("gnutls" ,gnutls)
("guile-git" ,guile-git))) ("guile-git" ,guile-git)
,@(package-inputs guix)))
(propagated-inputs '())
(arguments (arguments
(substitute-keyword-arguments (package-arguments guix) (substitute-keyword-arguments (package-arguments guix)
@ -316,11 +324,21 @@ the Nix package manager.")
(invoke "make" "nix/libstore/schema.sql.hh") (invoke "make" "nix/libstore/schema.sql.hh")
(invoke "make" "-j" (number->string (invoke "make" "-j" (number->string
(parallel-job-count)) (parallel-job-count))
"guix-register"))) "guix-daemon")))
(delete 'copy-bootstrap-guile) (delete 'copy-bootstrap-guile)
(replace 'install (replace 'install
(lambda _ (lambda* (#:key outputs #:allow-other-keys)
(invoke "make" "install-sbinPROGRAMS"))) (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))))))) (delete 'wrap-program)))))))
(define-public guile2.0-guix (define-public guile2.0-guix
@ -528,13 +546,13 @@ transactions from C or Python.")
(define-public diffoscope (define-public diffoscope
(package (package
(name "diffoscope") (name "diffoscope")
(version "95") (version "96")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri name version)) (uri (pypi-uri name version))
(sha256 (sha256
(base32 (base32
"0aksxxivxli6l3fylxgl771hw0h7l8x35l76cmj0d12zgx54w0a1")))) "1x66f2x8miy3giff14higpcs70c0zb5d3gj6yn8ac6p183sngl72"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#: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 and sign Windows@tie{}Installer (.@dfn{MSI}) files. It aims to be a solution
for packaging and deployment of cross-compiled Windows applications.") for packaging and deployment of cross-compiled Windows applications.")
(license license:lgpl2.1+))) (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+)))

View file

@ -358,7 +358,7 @@ any X11 window.")
(define-public password-store (define-public password-store
(package (package
(name "password-store") (name "password-store")
(version "1.7.1") (version "1.7.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -366,8 +366,7 @@ any X11 window.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn")) "1sl0d7nc85c6c2bmmmyb8rpmn47vhkj831l153mjlkawjvhwas27"))))
(patches (search-patches "password-store-gnupg-compat.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases '(#:phases

View file

@ -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,

View file

@ -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 */

View file

@ -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)"

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 (

View file

@ -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={

View file

@ -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);

View file

@ -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

View file

@ -13,6 +13,7 @@
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com> ;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; 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.") files, as well as to verify that there are no missing or unknown files.")
(license perl-license))) (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 (define-public perl-test-eol
(package (package
(name "perl-test-eol") (name "perl-test-eol")
@ -1140,6 +1165,32 @@ a minimum of effort.")
;; "Under the same license as Perl itself" ;; "Under the same license as Perl itself"
(license perl-license))) (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 (define-public perl-test-trap
(package (package
(name "perl-test-trap") (name "perl-test-trap")

View file

@ -20,6 +20,7 @@
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com> ;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -170,6 +171,8 @@
(inherit (package-source perl)) (inherit (package-source perl))
(uri (string-append "mirror://cpan/src/5.0/perl-" (uri (string-append "mirror://cpan/src/5.0/perl-"
version ".tar.gz")) version ".tar.gz"))
(patches (append (origin-patches (package-source perl))
(search-patches "perl-archive-tar-CVE-2018-12015.patch")))
(sha256 (sha256
(base32 (base32
"03gpnxx1g6hvlh0v4aqx00580h787sfywp1vlvw64q2xcbm9qbsp")))))) "03gpnxx1g6hvlh0v4aqx00580h787sfywp1vlvw64q2xcbm9qbsp"))))))
@ -1522,6 +1525,27 @@ provides a means of converting those data streams back into into binary
data.") data.")
(license perl-license))) (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 (define-public perl-cpan-meta-check
(package (package
(name "perl-cpan-meta-check") (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.") installation version 5.005 or newer.")
(license (package-license perl)))) (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 (define-public perl-module-pluggable
(package (package
(name "perl-module-pluggable") (name "perl-module-pluggable")
@ -8461,14 +8515,14 @@ as exceptions to standard program flow.")
(define-public perltidy (define-public perltidy
(package (package
(name "perltidy") (name "perltidy")
(version "20160302") (version "20180220")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/perltidy/" version (uri (string-append "mirror://sourceforge/perltidy/" version
"/Perl-Tidy-" version ".tar.gz")) "/Perl-Tidy-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"19yw63yh5s3pq7k3nkw6nsamg5b8vvwyhgbizslgxg0mqgc4xl3d")))) "0w1k5ffcrpx0fm9jgprrwy0290k6cmy7dyk83s61063migi3r5z9"))))
(build-system perl-build-system) (build-system perl-build-system)
(home-page "http://perltidy.sourceforge.net/") (home-page "http://perltidy.sourceforge.net/")
(synopsis "Perl script tidier") (synopsis "Perl script tidier")
@ -9476,6 +9530,38 @@ File::Find replacement in Perl.")
interface to File::Find::Object.") interface to File::Find::Object.")
(license (package-license perl)))) (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 (define-public perl-font-ttf
(package (package
(name "perl-font-ttf") (name "perl-font-ttf")

View file

@ -53,6 +53,7 @@
;;; Copyright © 2016, 2018 Tomáš Čech <sleep_walker@gnu.org> ;;; Copyright © 2016, 2018 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -4871,26 +4872,15 @@ computing.")
(define-public python-urwid (define-public python-urwid
(package (package
(name "python-urwid") (name "python-urwid")
(version "1.3.1") (version "2.0.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "urwid" version)) (uri (pypi-uri "urwid" version))
(sha256 (sha256
(base32 (base32
"18cnd1wdjcas08x5qwa5ayw6jsfcn33w4d9f7q3s29fy6qzc1kng")))) "1g6cpicybvbananpjikmjk8npmjk4xvak1wjzji62wc600wkwkb4"))))
(build-system python-build-system) (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") (home-page "http://urwid.org")
(synopsis "Console user interface library for Python") (synopsis "Console user interface library for Python")
(description (description
@ -4899,22 +4889,7 @@ features useful for text console applications.")
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
(define-public python2-urwid (define-public python2-urwid
(let ((python2-urwid (package-with-python2 python-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))))))
(define-public python-urwidtrees (define-public python-urwidtrees
(package (package
@ -6033,13 +6008,13 @@ should be stored on various operating systems.")
(define-public python-llfuse (define-public python-llfuse
(package (package
(name "python-llfuse") (name "python-llfuse")
(version "1.3.2") (version "1.3.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "llfuse" version ".tar.bz2")) (uri (pypi-uri "llfuse" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0qxvnbz41bpvpc1vbi8qkhmpr9gj1qrrp5jdj085iqibd8l2l9cn")))) "1rqww632y2zz71xmr6ch7yq80kvza9mhqr2z773k0d8l1lwzl575"))))
(build-system python-build-system) (build-system python-build-system)
(inputs (inputs
`(("fuse" ,fuse) `(("fuse" ,fuse)
@ -7285,13 +7260,13 @@ applications.")
(define-public python-click-log (define-public python-click-log
(package (package
(name "python-click-log") (name "python-click-log")
(version "0.2.1") (version "0.3.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "click-log" version)) (uri (pypi-uri "click-log" version))
(sha256 (sha256
(base32 (base32
"1r1x85023cslb2pwldd089jjk573mk3w78cnashs77wrx7yz8fj9")))) "091i03bhxyzsdbc6kilxhivfda2f8ymz3b33xa6cj5kbzjiirz8n"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs (propagated-inputs
`(("python-click" ,python-click))) `(("python-click" ,python-click)))
@ -13657,3 +13632,120 @@ introspection.")
(define-public python2-fasteners (define-public python2-fasteners
(package-with-python2 python-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))

View file

@ -9,6 +9,7 @@
;;; Copyright © 2017 Quiliro <quiliro@fsfla.org> ;;; Copyright © 2017 Quiliro <quiliro@fsfla.org>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; 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 application). The transport mechanism is supported out of the box by the two
popular web engines, Qt WebKit 2 and Qt WebEngine."))) 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 (define-public qtlocation
(package (inherit qtsvg) (package (inherit qtsvg)
(name "qtlocation") (name "qtlocation")

View file

@ -362,7 +362,10 @@ many event types, including timers, signals, and the classic file descriptor eve
#t)))) #t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (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 (modify-phases %standard-phases
(replace 'configure (replace 'configure
;; ldb use a custom configuration script that runs waf. ;; 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) `(("talloc" ,talloc)
("tdb" ,tdb))) ("tdb" ,tdb)))
(inputs (inputs
`(("lmdb" ,lmdb) `(,@(if (target-64bit?)
`(("lmdb" ,lmdb))
'())
("popt" ,popt) ("popt" ,popt)
("tevent" ,tevent))) ("tevent" ,tevent)))
(synopsis "LDAP-like embedded database") (synopsis "LDAP-like embedded database")

View file

@ -128,7 +128,7 @@ system to use the host GPU to accelerate 3D rendering.")
(define-public spice-protocol (define-public spice-protocol
(package (package
(name "spice-protocol") (name "spice-protocol")
(version "0.12.13") (version "0.12.14")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -136,7 +136,7 @@ system to use the host GPU to accelerate 3D rendering.")
"spice-protocol-" version ".tar.bz2")) "spice-protocol-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0cwrgkp558mblcf4vrhacb3iizz12khsrrl82w38w9nj0ar13vl9")))) "170ckpgazvqv7hxy209myg67pqnd6c0gvr4ysbqgsfch6320nd90"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(synopsis "Protocol headers for the SPICE protocol") (synopsis "Protocol headers for the SPICE protocol")
(description "SPICE (the Simple Protocol for Independent Computing (description "SPICE (the Simple Protocol for Independent Computing

View file

@ -81,14 +81,14 @@ fundamental object types for C.")
(define-public sssd (define-public sssd
(package (package
(name "sssd") (name "sssd")
(version "1.16.1") (version "1.16.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://releases.pagure.org/SSSD/sssd/" (uri (string-append "http://releases.pagure.org/SSSD/sssd/"
"sssd-" version ".tar.gz")) "sssd-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0vjh1c5960wh86zjsamdjhljls7bb5fz5jpcazgzrpmga5w6ggrd")))) "032ppk57qs1lnvz7pb7lw9ldwm9i1yagh9fzgqgn6na3bg61ynzy"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:make-flags `(#:make-flags
@ -165,6 +165,7 @@ fundamental object types for C.")
`(("check" ,check) `(("check" ,check)
("docbook-xsl" ,docbook-xsl) ("docbook-xsl" ,docbook-xsl)
("docbook-xml" ,docbook-xml) ("docbook-xml" ,docbook-xml)
("libxml2" ,libxml2) ; for xmllint
("libxslt" ,libxslt) ("libxslt" ,libxslt)
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("util-linux" ,util-linux))) ; for uuid.h, reqired for KCM ("util-linux" ,util-linux))) ; for uuid.h, reqired for KCM

View file

@ -835,13 +835,13 @@ see package vignette. To quote Rene Magritte, \"Ceci n'est pas un pipe.\"")
(define-public r-munsell (define-public r-munsell
(package (package
(name "r-munsell") (name "r-munsell")
(version "0.4.3") (version "0.5.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "munsell" version)) (uri (cran-uri "munsell" version))
(sha256 (sha256
(base32 "0jdxlbjslkzaqgp058da1cgm85qvqi09wpcgpvp4hvwnmy83qz1r")))) (base32 "16g1fzisbpqb15yh3pqf3iia4csppva5dnv1z88x9dg263xskwyh"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-colorspace" ,r-colorspace))) `(("r-colorspace" ,r-colorspace)))
@ -960,14 +960,14 @@ solution for sending email, including attachments, from within R.")
(define-public r-stringi (define-public r-stringi
(package (package
(name "r-stringi") (name "r-stringi")
(version "1.2.2") (version "1.2.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "stringi" version)) (uri (cran-uri "stringi" version))
(sha256 (sha256
(base32 (base32
"1z8yqnh3alq0xriz77vifgl27msf3av6maz07fld78m90ajb6y8r")))) "1sgg4krw03qkz1n4dwiya0djggk7giwd0w21qlp0pfjqi0rxq6qx"))))
(build-system r-build-system) (build-system r-build-system)
(inputs `(("icu4c" ,icu4c))) (inputs `(("icu4c" ,icu4c)))
(native-inputs `(("pkg-config" ,pkg-config))) (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 (define-public r-highr
(package (package
(name "r-highr") (name "r-highr")
(version "0.6") (version "0.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "highr" version)) (uri (cran-uri "highr" version))
(sha256 (sha256
(base32 (base32
"0n9v44dxdy5fhkdmpbpa2p78whyd9z3rhhy42ipdz5m5vsr55qa3")))) "1dzknqk4x7iiiq1jkh9bqm5qcvs7mbqxbkn5955050payavabfya"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://github.com/yihui/highr") (home-page "https://github.com/yihui/highr")
(synopsis "Syntax highlighting for R source code") (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 (define-public r-rmarkdown
(package (package
(name "r-rmarkdown") (name "r-rmarkdown")
(version "1.9") (version "1.10")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "rmarkdown" version)) (uri (cran-uri "rmarkdown" version))
(sha256 (sha256
(base32 (base32
"0wq6kbhrkv3fhcy4hg5yyv9gdvf8gr4nsjwdifs4ih8lnn0dmdyb")))) "0mh2f3k98w7pgz0ri34149s4kx5y0kfm27nwq64k0qwxd16hwd9r"))))
(properties `((upstream-name . "rmarkdown"))) (properties `((upstream-name . "rmarkdown")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -2622,6 +2622,7 @@ certain criterion, e.g., it contains a certain regular file.")
("r-mime" ,r-mime) ("r-mime" ,r-mime)
("r-rprojroot" ,r-rprojroot) ("r-rprojroot" ,r-rprojroot)
("r-stringr" ,r-stringr) ("r-stringr" ,r-stringr)
("r-tinytex" ,r-tinytex)
("r-yaml" ,r-yaml) ("r-yaml" ,r-yaml)
;; rmarkdown works with the 2.x release of Pandoc, but with degraded ;; rmarkdown works with the 2.x release of Pandoc, but with degraded
;; functionality. For example, tabbed plots do not currently work with ;; functionality. For example, tabbed plots do not currently work with
@ -4222,13 +4223,13 @@ mechanism.")
(define-public r-zoo (define-public r-zoo
(package (package
(name "r-zoo") (name "r-zoo")
(version "1.8-1") (version "1.8-2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "zoo" version)) (uri (cran-uri "zoo" version))
(sha256 (sha256
(base32 (base32
"16nc5jnpkf5j9vgq3pzssv7knj30mi055wj7q3sygz3l0d88hgfr")))) "1lpwigxmi5sc23xrha4gcsccsm4yfsg0sa97y6vac3pg1lliblvx"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-lattice" ,r-lattice))) `(("r-lattice" ,r-lattice)))

View file

@ -10,6 +10,7 @@
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Petter <petter@mykolab.ch> ;;; Copyright © 2017 Petter <petter@mykolab.ch>
;;; Copyright © 2018 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2018 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -47,6 +48,7 @@
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
@ -55,6 +57,8 @@
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)
#:use-module (gnu packages qt) #:use-module (gnu packages qt)
#:use-module (gnu packages serialization)
#:use-module (gnu packages ssh)
#:use-module (gnu packages textutils) #:use-module (gnu packages textutils)
#:use-module (gnu packages wm) #:use-module (gnu packages wm)
#:use-module (gnu packages xdisorg) #:use-module (gnu packages xdisorg)
@ -845,3 +849,33 @@ per-line fullscreen terminal rendering, and keyboard input event reporting.")
(define-public python2-curtsies (define-public python2-curtsies
(package-with-python2 python-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)))

View file

@ -176,14 +176,17 @@
(string-prefix? "mips64" s)))) (string-prefix? "mips64" s))))
#:phases #:phases
(modify-phases %standard-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, ;; ps2eps.pl uses the "gswin32c" ghostscript executable on Windows,
;; and the "gs" ghostscript executable on Unix. It detects Unix by ;; and the "gs" ghostscript executable on Unix. It detects Unix by
;; checking for the existence of the /usr/bin directory. Since ;; checking for the existence of the /usr/bin directory. Since
;; GuixSD does not have /usr/bin, it is also detected as Windows. ;; 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" (substitute* "utils/ps2eps/ps2eps-src/bin/ps2eps.pl"
(("gswin32c") "gs")) (("gswin32c") "gs"))
(substitute* "texk/texlive/linked_scripts/epstopdf/epstopdf.pl"
(("\"gs\"")
(string-append "\"" (assoc-ref inputs "ghostscript") "/bin/gs\"")))
#t)) #t))
(add-after 'install 'postint (add-after 'install 'postint
(lambda* (#:key inputs outputs #:allow-other-keys #:rest args) (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)

View file

@ -287,14 +287,14 @@ value (in fractional seconds) of a clock which never goes backwards.")
(define-public python-pyrfc3339 (define-public python-pyrfc3339
(package (package
(name "python-pyrfc3339") (name "python-pyrfc3339")
(version "1.0") (version "1.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pyRFC3339" version)) (uri (pypi-uri "pyRFC3339" version))
(sha256 (sha256
(base32 (base32
"0dgm4l9y8jiax5cp6yxjd2i27cq8h33sh81n1wfbmnmqb32cdywd")))) "06jv7ar7lpvvk0dixzwdr3wgm0g1lipxs429s2z7knwwa7hwpf41"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs (propagated-inputs
`(("python-pytz" ,python-pytz))) `(("python-pytz" ,python-pytz)))

View file

@ -12,6 +12,7 @@
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -38,10 +39,14 @@
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system haskell) #:use-module (guix build-system haskell)
#:use-module (guix build-system trivial)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages bash)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages dns) #:use-module (gnu packages dns)
#:use-module (gnu packages gawk)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages haskell) #:use-module (gnu packages haskell)
#:use-module (gnu packages haskell-check) #:use-module (gnu packages haskell-check)
@ -459,14 +464,14 @@ required structures.")
(define-public libressl (define-public libressl
(package (package
(name "libressl") (name "libressl")
(version "2.7.3") (version "2.7.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://openbsd/LibreSSL/" (uri (string-append "mirror://openbsd/LibreSSL/"
name "-" version ".tar.gz")) name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1597kj9jy3jyw52ys19sd4blg2gkam5q0rqdxbnrnvnyw67hviqn")))) "19kxa5i97q7p6rrps9qm0nd8zqhdjvzx02j72400c73cl2nryfhy"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
;; Do as if 'getentropy' was missing since older Linux kernels lack it ;; Do as if 'getentropy' was missing since older Linux kernels lack it
@ -503,13 +508,13 @@ netcat implementation that supports TLS.")
(package (package
(name "python-acme") (name "python-acme")
;; Remember to update the hash of certbot when updating python-acme. ;; Remember to update the hash of certbot when updating python-acme.
(version "0.24.0") (version "0.25.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "acme" version)) (uri (pypi-uri "acme" version))
(sha256 (sha256
(base32 (base32
"1jq1nlly5146k08dw31fc1pw78plya5jswznnd512c08giif0mfn")))) "0d177dhy8a7472pz9v4blrlk02d8fp6s52li7z8v3dv97pvz7da7"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -528,6 +533,7 @@ netcat implementation that supports TLS.")
;; TODO: Add optional inputs for testing. ;; TODO: Add optional inputs for testing.
(native-inputs (native-inputs
`(("python-mock" ,python-mock) `(("python-mock" ,python-mock)
("python-pytest" ,python-pytest)
;; For documentation ;; For documentation
("python-sphinx" ,python-sphinx) ("python-sphinx" ,python-sphinx)
("python-sphinxcontrib-programoutput" ,python-sphinxcontrib-programoutput) ("python-sphinxcontrib-programoutput" ,python-sphinxcontrib-programoutput)
@ -537,6 +543,7 @@ netcat implementation that supports TLS.")
`(("python-josepy" ,python-josepy) `(("python-josepy" ,python-josepy)
("python-six" ,python-six) ("python-six" ,python-six)
("python-requests" ,python-requests) ("python-requests" ,python-requests)
("python-requests-toolbelt" ,python-requests-toolbelt)
("python-pytz" ,python-pytz) ("python-pytz" ,python-pytz)
("python-pyrfc3339" ,python-pyrfc3339) ("python-pyrfc3339" ,python-pyrfc3339)
("python-pyasn1" ,python-pyasn1) ("python-pyasn1" ,python-pyasn1)
@ -558,7 +565,7 @@ netcat implementation that supports TLS.")
(uri (pypi-uri name version)) (uri (pypi-uri name version))
(sha256 (sha256
(base32 (base32
"0w3dbz74rpabjnc3l3ybnzjdypbr65lsjqf9yn243b5kid9d8wm0")))) "0kp56gwn1bnlrag9qidhm1i5ifdp5z6y1ravh3yimfrkc4cfa8sw"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(,@(substitute-keyword-arguments (package-arguments python-acme) `(,@(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 Ephemeral (Elliptic curve and regular) Diffie Hellman key exchanges, and many
extensions.") extensions.")
(license license:bsd-3))) (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)))

View file

@ -47,14 +47,14 @@
(define-public tor (define-public tor
(package (package
(name "tor") (name "tor")
(version "0.3.3.6") (version "0.3.3.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://dist.torproject.org/tor-" (uri (string-append "https://dist.torproject.org/tor-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1drk2h8zd05xrfpx7xn77pcxz0hs4nrq6figw56qk5gkvgv5kg4r")))) "036ybfvldj7yfci9ipjki8smpzyxdg8c5r12bghc9yxdqh9basza"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags (list "--enable-gcc-hardening" `(#:configure-flags (list "--enable-gcc-hardening"

View file

@ -1911,7 +1911,7 @@ network protocols, and core version control algorithms.")
(define-public gource (define-public gource
(package (package
(name "gource") (name "gource")
(version "0.48") (version "0.49")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1919,7 +1919,7 @@ network protocols, and core version control algorithms.")
"/gource-" version "/gource-" version ".tar.gz")) "/gource-" version "/gource-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"04qxcm05qiyr9rg2kv6abfy7kkzqr8ziw4iyp1d14lniv93m61dp")))) "12hf5ipcsp9dxsqn84n4kr63xaiskrnf5a084wr29qk171lj7pd9"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags

View file

@ -606,14 +606,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
(define-public ffmpeg (define-public ffmpeg
(package (package
(name "ffmpeg") (name "ffmpeg")
(version "4.0") (version "4.0.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-" (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0gx4ngnhi5glmxh38603qy5n6vq8bl1cr4sqd1xff95i82pmv57d")))) "1vn04n0n46zdxq14cma3w8ml2ckh5jxwlybsc4xmvcqdqq0mqpv0"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("fontconfig" ,fontconfig) `(("fontconfig" ,fontconfig)

View file

@ -450,23 +450,20 @@ trouble using them, because you do not have to remember each snippet name.")
(home-page "https://github.com/Shougo/context_filetype.vim") (home-page "https://github.com/Shougo/context_filetype.vim")
(license license:expat)))) ; ??? check again (license license:expat)))) ; ??? check again
;; The 2.2 release was in 2015, no new releases planned.
(define-public vim-fugitive (define-public vim-fugitive
(let ((commit "de6c05720cdf74c0218218d7207f700232a5b6dc")
(revision "1"))
(package (package
(name "vim-fugitive") (name "vim-fugitive")
(version (string-append "2.2-" revision "." (string-take commit 7))) (version "2.3")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/tpope/vim-fugitive.git") (url "https://github.com/tpope/vim-fugitive.git")
(commit commit))) (commit (string-append "v" version))))
(file-name (string-append name "-" version "-checkout")) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0zg9vv7hirnx45vc2mwgg0xijmwwz55bssyd6cpdz71wbhrcpxxb")))) "17s94a8g5z0lrs7yy4nyqyvp9ykys5ws2ar3m3c0bjsn0iazd7m3"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f '(#:tests? #f
@ -488,21 +485,22 @@ trouble using them, because you do not have to remember each snippet name.")
(description "Vim-fugitive is a wrapper for Vim that complements the (description "Vim-fugitive is a wrapper for Vim that complements the
command window, where you can stage and review your changes before the next command window, where you can stage and review your changes before the next
commit or run any Git arbitrary command.") 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 (define-public vim-airline
(package (package
(name "vim-airline") (name "vim-airline")
(version "0.8") (version "0.9")
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://github.com/vim-airline/vim-airline/" (uri (git-reference
"archive/v" version ".tar.gz")) (url "https://github.com/vim-airline/vim-airline")
(file-name (string-append name "-" version ".tar.gz")) (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"053sfq3jmgdc5y7zbg6jrk7r2hp0raj3y3mxa2h1c1bnkb6wvcaz")))) "0hq3304rhakx7x1v7wll7gxinmfz6561bq97qpj8jrk19rhcab75"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f `(#:tests? #f
@ -575,16 +573,17 @@ and powerline symbols, etc.")
(define-public vim-syntastic (define-public vim-syntastic
(package (package
(name "vim-syntastic") (name "vim-syntastic")
(version "3.8.0") (version "3.9.0")
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://github.com/vim-syntastic/syntastic/archive/" (uri (git-reference
version ".tar.gz")) (url "https://github.com/vim-syntastic/syntastic")
(file-name (string-append name "-" version ".tar.gz")) (commit version)))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0wsnd9bsp5x6yiw96h1bnd1vyxdkh130hb82kyyxydgsplx92ima")))) "121a1mxgfng2y5zmivyyk02mca8pyw72crivf4f1q9nhn0barf57"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f `(#:tests? #f

View file

@ -45,6 +45,7 @@
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang) #:use-module (gnu packages golang)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages image) #:use-module (gnu packages image)
@ -52,6 +53,7 @@
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages networking) #:use-module (gnu packages networking)
#:use-module (gnu packages package-management)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages polkit) #:use-module (gnu packages polkit)
@ -71,6 +73,7 @@
#:use-module (guix build-system go) #:use-module (guix build-system go)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:select (gpl2 gpl2+ gpl3+ lgpl2.1 lgpl2.1+ #:use-module ((guix licenses) #:select (gpl2 gpl2+ gpl3+ lgpl2.1 lgpl2.1+
asl2.0)) asl2.0))
#:use-module (guix packages) #:use-module (guix packages)
@ -864,3 +867,110 @@ packaged according to the
Container Initiative (OCI) format} and is a compliant implementation of the Container Initiative (OCI) format} and is a compliant implementation of the
Open Container Initiative specification.") Open Container Initiative specification.")
(license asl2.0))) (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)))

View file

@ -4024,14 +4024,14 @@ objects in HTML format.")
(define-public r-rjson (define-public r-rjson
(package (package
(name "r-rjson") (name "r-rjson")
(version "0.2.19") (version "0.2.20")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "rjson" version)) (uri (cran-uri "rjson" version))
(sha256 (sha256
(base32 (base32
"1g29vp3gfbh73a5br68jydsrigia4vnr5avc84avgwl6353749jw")))) "0v1zvdd3svnavklh7y5xbwrrkbvx6053r4c5hgnk7hz7bqg7qa1s"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/rjson") (home-page "https://cran.r-project.org/web/packages/rjson")
(synopsis "JSON library for R") (synopsis "JSON library for R")
@ -6117,6 +6117,11 @@ infrastructure")))
(inherit java-eclipse-jetty-security) (inherit java-eclipse-jetty-security)
(version (package-version java-eclipse-jetty-util-9.2)) (version (package-version java-eclipse-jetty-util-9.2))
(source (package-source 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 (inputs
`(("util" ,java-eclipse-jetty-util-9.2) `(("util" ,java-eclipse-jetty-util-9.2)
("http" ,java-eclipse-jetty-http-9.2) ("http" ,java-eclipse-jetty-http-9.2)
@ -6182,6 +6187,107 @@ container.")))
("server" ,java-eclipse-jetty-server-9.2) ("server" ,java-eclipse-jetty-server-9.2)
,@(package-inputs java-eclipse-jetty-util-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 (define-public java-jsoup
(package (package
(name "java-jsoup") (name "java-jsoup")

View file

@ -223,7 +223,7 @@ integrate Windows applications into your desktop.")
(define-public wine-staging-patchset-data (define-public wine-staging-patchset-data
(package (package
(name "wine-staging-patchset-data") (name "wine-staging-patchset-data")
(version "3.9") (version "3.10")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -232,7 +232,7 @@ integrate Windows applications into your desktop.")
(file-name (string-append name "-" version ".zip")) (file-name (string-append name "-" version ".zip"))
(sha256 (sha256
(base32 (base32
"0akccqrp1ymjrra2c99f6hxlaa77jyihfs3q8x93vkgb9c0lq5xx")))) "14rf3g9szxygbd6ypg6zbqw1h84rn8gqgrzwi607xwgh8wm59sli"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(native-inputs (native-inputs
`(("bash" ,bash) `(("bash" ,bash)
@ -279,7 +279,7 @@ integrate Windows applications into your desktop.")
(file-name (string-append name "-" version ".tar.xz")) (file-name (string-append name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0ddphvlp9lsjyqc6zckinc36bggpkg925v0x2vqr8nkdjs0w5bfc")))) "1df6g8g5nfb4ca218m78giqp3k1fmv0grv26387rbn3wkk3mql6p"))))
(inputs `(("autoconf" ,autoconf) ; for autoreconf (inputs `(("autoconf" ,autoconf) ; for autoreconf
("gtk+" ,gtk+) ("gtk+" ,gtk+)
("libva" ,libva) ("libva" ,libva)

View file

@ -531,7 +531,7 @@ selection's dimensions to stdout.")
(define-public maim (define-public maim
(package (package
(name "maim") (name "maim")
(version "5.5.1") (version "5.5.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -540,7 +540,7 @@ selection's dimensions to stdout.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1dvw0axnr9hhjg6zdcq9lwvaq0x7vrzlz00p8n3hj25qzsi4z5as")))) "14zdhsx1cndg5m8wbv1rqmza7wgknwfj5h0knzxg3p2jkjw66i95"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:tests? #f)) ; no "check" target '(#:tests? #f)) ; no "check" target

View file

@ -263,13 +263,11 @@ the @code{Graph} class and write it out in a specific file format.")
(getenv "PERL5LIB"))) (getenv "PERL5LIB")))
#t))))) #t)))))
(native-inputs (native-inputs
`(("perl-datetime" ,perl-datetime)
;; TODO package: perl-datetime-format-atom ;; TODO package: perl-datetime-format-atom
("perl-html-tagset" ,perl-html-tagset) `(("perl-html-tagset" ,perl-html-tagset)
("perl-module-build-tiny" ,perl-module-build-tiny) ("perl-module-build-tiny" ,perl-module-build-tiny)
("perl-module-install" ,perl-module-install) ("perl-module-install" ,perl-module-install)))
("perl-xml-xpath" ,perl-xml-xpath))) (propagated-inputs
(inputs
`(("perl-class-data-inheritable" ,perl-class-data-inheritable) `(("perl-class-data-inheritable" ,perl-class-data-inheritable)
("perl-datetime" ,perl-datetime) ("perl-datetime" ,perl-datetime)
("perl-datetime-timezone" ,perl-datetime-timezone) ("perl-datetime-timezone" ,perl-datetime-timezone)
@ -418,14 +416,14 @@ XML parser and the high performance DOM implementation.")
(define-public perl-xml-libxml-simple (define-public perl-xml-libxml-simple
(package (package
(name "perl-xml-libxml-simple") (name "perl-xml-libxml-simple")
(version "0.97") (version "0.99")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/" (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
"XML-LibXML-Simple-" version ".tar.gz")) "XML-LibXML-Simple-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1g8nlk3zdz2cclxf7azvsb3jfxmvy6ml8wmj774k4qjqcsqmzk0w")))) "0i4ybiqdnvnbfxqslw2y392kvy7i752dl8n99bqiqv5kzk4lbzhl"))))
(build-system perl-build-system) (build-system perl-build-system)
(propagated-inputs (propagated-inputs
`(("perl-file-slurp-tiny" ,perl-file-slurp-tiny) `(("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 (define-public perl-xml-xpath
(package (package
(name "perl-xml-xpath") (name "perl-xml-xpath")
(version "1.40") (version "1.42")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/" (uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/"
"XML-XPath-" version ".tar.gz")) "XML-XPath-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"07pa0bl42jka8mj7jshjynx8vpfh8b4cdyiv4zlkqvkqz98nzxib")))) "04mm91kxav598ax7nlg81dhnvanwvg6bkf30l0cgkmga5iyccsly"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-path-tiny" ,perl-path-tiny))) `(("perl-path-tiny" ,perl-path-tiny)))
(inputs (propagated-inputs
`(("perl-xml-parser" ,perl-xml-parser))) `(("perl-xml-parser" ,perl-xml-parser)))
(home-page "http://search.cpan.org/dist/XML-XPath") (home-page "http://search.cpan.org/dist/XML-XPath")
(synopsis "Parse and evaluate XPath statements") (synopsis "Parse and evaluate XPath statements")

View file

@ -15,6 +15,7 @@
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -5855,6 +5856,34 @@ perl programs to display windows and graphics on X11 servers.")
;; for details)." ;; for details)."
(license license:perl-license))) (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 (define-public xcompmgr
(package (package
(name "xcompmgr") (name "xcompmgr")

View file

@ -1592,8 +1592,9 @@ failed to register hydra.gnu.org public key: ~a~%" status))))))))
(call-with-output-file #$output (call-with-output-file #$output
(lambda (port) (lambda (port)
(write (call-with-input-file "graph" (write (map store-info-item
read-reference-graph) (call-with-input-file "graph"
read-reference-graph))
port))))) port)))))
#:options `(#:local-build? #f #:options `(#:local-build? #f
#:references-graphs (("graph" ,item)))) #:references-graphs (("graph" ,item))))

View file

@ -6,6 +6,7 @@
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -608,7 +609,7 @@ demand.")))
(call-with-output-file #$output (call-with-output-file #$output
(lambda (port) (lambda (port)
(display "\ (display "\
# The beginning was automatically added. ### These lines were generated from your system configuration:
User tor User tor
DataDirectory /var/lib/tor DataDirectory /var/lib/tor
Log notice syslog\n" port) Log notice syslog\n" port)
@ -628,6 +629,9 @@ HiddenServicePort ~a ~a~%"
(cons name mapping))) (cons name mapping)))
services)) services))
(display "\
### End of automatically generated lines.\n\n" port)
;; Append the user's config file. ;; Append the user's config file.
(call-with-input-file #$config-file (call-with-input-file #$config-file
(lambda (input) (lambda (input)

View file

@ -77,6 +77,7 @@
nginx-configuration-upstream-blocks nginx-configuration-upstream-blocks
nginx-configuration-server-names-hash-bucket-size nginx-configuration-server-names-hash-bucket-size
nginx-configuration-server-names-hash-bucket-max-size nginx-configuration-server-names-hash-bucket-max-size
nginx-configuration-extra-content
nginx-configuration-file nginx-configuration-file
<nginx-server-configuration> <nginx-server-configuration>
@ -431,6 +432,8 @@
(default #f)) (default #f))
(server-names-hash-bucket-max-size nginx-configuration-server-names-hash-bucket-max-size (server-names-hash-bucket-max-size nginx-configuration-server-names-hash-bucket-max-size
(default #f)) (default #f))
(extra-content nginx-configuration-extra-content
(default ""))
(file nginx-configuration-file ;#f | string | file-like (file nginx-configuration-file ;#f | string | file-like
(default #f))) (default #f)))
@ -521,7 +524,8 @@ of index files."
(nginx log-directory run-directory (nginx log-directory run-directory
server-blocks upstream-blocks server-blocks upstream-blocks
server-names-hash-bucket-size 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" (apply mixed-text-file "nginx.conf"
(flatten (flatten
"user nginx nginx;\n" "user nginx nginx;\n"
@ -550,7 +554,8 @@ of index files."
"\n" "\n"
(map emit-nginx-upstream-config upstream-blocks) (map emit-nginx-upstream-config upstream-blocks)
(map emit-nginx-server-config server-blocks) (map emit-nginx-server-config server-blocks)
"}\n" extra-content
"\n}\n"
"events {}\n")))) "events {}\n"))))
(define %nginx-accounts (define %nginx-accounts

View file

@ -602,7 +602,7 @@ directory."
# because they would require combining both profiles. # because they would require combining both profiles.
# FIXME: See <http://bugs.gnu.org/20255>. # FIXME: See <http://bugs.gnu.org/20255>.
export MANPATH=$HOME/.guix-profile/share/man:/run/current-system/profile/share/man 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_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 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` export `cat /etc/environment | cut -d= -f1`
fi 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 do
if [ -f \"$profile/etc/profile\" ] if [ -f \"$profile/etc/profile\" ]
then then
@ -644,6 +645,9 @@ do
fi fi
done 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'. # Set the umask, notably for users logging in via 'lsh'.
# See <http://bugs.gnu.org/22650>. # See <http://bugs.gnu.org/22650>.
umask 022 umask 022

View file

@ -194,10 +194,15 @@
;; differs from user to user. ;; differs from user to user.
(define (%store-prefix) (define (%store-prefix)
"Return the 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) (lambda (store)
((module-ref store '%store-prefix)))) (module-variable store '%store-prefix)))
=>
(lambda (variable)
((variable-ref variable))))
((getenv "NIX_STORE") ((getenv "NIX_STORE")
=> identity) => identity)
(else (else

View file

@ -54,7 +54,8 @@
novena-installation-os novena-installation-os
pine64-plus-installation-os pine64-plus-installation-os
rk3399-puma-installation-os rk3399-puma-installation-os
wandboard-installation-os)) wandboard-installation-os
os-with-u-boot))
;;; Commentary: ;;; Commentary:
;;; ;;;
@ -386,6 +387,19 @@ You have been warned. Thanks for being so brave.\x1b[0m
nvi ;:wq! nvi ;:wq!
%base-packages)))) %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 (define* (embedded-installation-os bootloader bootloader-target tty
#:key (extra-modules '())) #:key (extra-modules '()))
"Return an installation os for embedded systems. "Return an installation os for embedded systems.

View file

@ -32,7 +32,8 @@
#:use-module (gnu system uuid) #:use-module (gnu system uuid)
#:autoload (gnu build file-systems) (find-partition-by-luks-uuid) #:autoload (gnu build file-systems) (find-partition-by-luks-uuid)
#:autoload (gnu build linux-modules) #: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 cryptsetup) (cryptsetup-static)
#:autoload (gnu packages linux) (mdadm-static) #:autoload (gnu packages linux) (mdadm-static)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
@ -129,8 +130,13 @@ DEVICE must be a \"/dev\" file name."
(when aliases (when aliases
(let ((modules (delete-duplicates (let ((modules (delete-duplicates
(append-map (cut matching-modules <> aliases) (append-map (cut matching-modules <> aliases)
(device-module-aliases device))))) (device-module-aliases device))))
(unless (every (cute member <> linux-modules) modules)
;; 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 (raise (condition
(&message (&message
(message (format #f (G_ "you may need these modules \ (message (format #f (G_ "you may need these modules \

View file

@ -34,6 +34,7 @@
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix hash) #:use-module (guix hash)
#:use-module (guix base32) #:use-module (guix base32)
#:use-module ((guix self) #:select (make-config.scm))
#:use-module ((gnu build vm) #:use-module ((gnu build vm)
#:select (qemu-command)) #:select (qemu-command))
@ -50,7 +51,6 @@
#:use-module (gnu packages disk) #:use-module (gnu packages disk)
#:use-module (gnu packages zile) #:use-module (gnu packages zile)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages package-management)
#:use-module ((gnu packages make-bootstrap) #:use-module ((gnu packages make-bootstrap)
#:select (%guile-static-stripped)) #:select (%guile-static-stripped))
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
@ -116,6 +116,19 @@
(options "trans=virtio") (options "trans=virtio")
(check? #f)))) (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 (define* (expression->derivation-in-linux-vm name exp
#:key #:key
(system (%current-system)) (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 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 pairs, as for `derivation'. The files containing the reference graphs are
made available under the /xchg CIFS share." 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 (mlet* %store-monad
((user-builder (gexp->file "builder-in-linux-vm" exp)) ((initrd (if initrd ; use the default initrd?
(loader (gexp->file "linux-vm-loader"
#~(primitive-load #$user-builder)))
(coreutils -> (canonical-package coreutils))
(initrd (if initrd ; use the default initrd?
(return initrd) (return initrd)
(base-initrd file-systems (base-initrd file-systems
#:on-error 'backtrace #:on-error 'backtrace
@ -166,13 +195,17 @@ made available under the /xchg CIFS share."
(define builder (define builder
;; Code that launches the VM that evaluates EXP. ;; Code that launches the VM that evaluates EXP.
(with-imported-modules (source-module-closure '((guix build utils) (with-extensions guile-sqlite3&co
(gnu build vm))) (with-imported-modules `(,@(source-module-closure
'((guix build utils)
(gnu build vm))
#:select? not-config?)
((guix config) => ,config))
#~(begin #~(begin
(use-modules (guix build utils) (use-modules (guix build utils)
(gnu build vm)) (gnu build vm))
(let* ((inputs '#$(list qemu coreutils)) (let* ((inputs '#$(list qemu (canonical-package coreutils)))
(linux (string-append #$linux "/" (linux (string-append #$linux "/"
#$(system-linux-image-file-name))) #$(system-linux-image-file-name)))
(initrd (string-append #$initrd "/initrd")) (initrd (string-append #$initrd "/initrd"))
@ -199,7 +232,7 @@ made available under the /xchg CIFS share."
#:target-arm32? #$(target-arm32?) #:target-arm32? #$(target-arm32?)
#:disk-image-format #$disk-image-format #:disk-image-format #$disk-image-format
#:disk-image-size size #:disk-image-size size
#:references-graphs graphs))))) #:references-graphs graphs))))))
(gexp->derivation name builder (gexp->derivation name builder
;; TODO: Require the "kvm" feature. ;; TODO: Require the "kvm" feature.
@ -222,19 +255,33 @@ made available under the /xchg CIFS share."
"Return a bootable, stand-alone iso9660 image. "Return a bootable, stand-alone iso9660 image.
INPUTS is a list of inputs (as for packages)." 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 (expression->derivation-in-linux-vm
name name
(with-imported-modules (source-module-closure '((gnu build vm) (with-extensions guile-sqlite3&co
(guix build utils))) (with-imported-modules `(,@(source-module-closure '((gnu build vm)
(guix store database)
(guix build utils))
#:select? not-config?)
((guix config) => ,config))
#~(begin #~(begin
(use-modules (gnu build vm) (use-modules (gnu build vm)
(guix store database)
(guix build utils)) (guix build utils))
(sql-schema #$schema)
(let ((inputs (let ((inputs
'#$(append (list qemu parted e2fsprogs dosfstools xorriso) '#$(append (list qemu parted e2fsprogs dosfstools xorriso)
(map canonical-package (map canonical-package
(list sed grep coreutils findutils gawk)) (list sed grep coreutils findutils gawk))))
(if register-closures? (list guix) '())))
(graphs '#$(match inputs (graphs '#$(match inputs
@ -257,8 +304,7 @@ INPUTS is a list of inputs (as for packages)."
#:closures graphs #:closures graphs
#:volume-id #$file-system-label #:volume-id #$file-system-label
#:volume-uuid #$(and=> file-system-uuid #:volume-uuid #$(and=> file-system-uuid
uuid-bytevector)) uuid-bytevector))))))
(reboot))))
#:system system #:system system
;; Keep a local file system for /tmp so that we can populate it directly as ;; Keep a local file system for /tmp so that we can populate it directly as
@ -301,23 +347,37 @@ 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, 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 register INPUTS in the store database of the image so that Guix can be used in
the image." 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 (expression->derivation-in-linux-vm
name name
(with-imported-modules (source-module-closure '((gnu build bootloader) (with-extensions guile-sqlite3&co
(gnu build vm) (with-imported-modules `(,@(source-module-closure '((gnu build vm)
(guix build utils))) (gnu build bootloader)
(guix store database)
(guix build utils))
#:select? not-config?)
((guix config) => ,config))
#~(begin #~(begin
(use-modules (gnu build bootloader) (use-modules (gnu build bootloader)
(gnu build vm) (gnu build vm)
(guix store database)
(guix build utils) (guix build utils)
(srfi srfi-26) (srfi srfi-26)
(ice-9 binary-ports)) (ice-9 binary-ports))
(sql-schema #$schema)
(let ((inputs (let ((inputs
'#$(append (list qemu parted e2fsprogs dosfstools) '#$(append (list qemu parted e2fsprogs dosfstools)
(map canonical-package (map canonical-package
(list sed grep coreutils findutils gawk)) (list sed grep coreutils findutils gawk))))
(if register-closures? (list guix) '())))
;; This variable is unused but allows us to add INPUTS-TO-COPY ;; This variable is unused but allows us to add INPUTS-TO-COPY
;; as inputs. ;; as inputs.
@ -384,8 +444,7 @@ the image."
#:bootcfg-location #:bootcfg-location
#$(bootloader-configuration-file bootloader) #$(bootloader-configuration-file bootloader)
#:bootloader-installer #:bootloader-installer
#$(bootloader-installer bootloader)) #$(bootloader-installer bootloader)))))))
(reboot)))))
#:system system #:system system
#:make-disk-image? #t #:make-disk-image? #t
#:disk-image-size disk-image-size #: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 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 image just contains a web server that is started by the Shepherd), then you
should set REGISTER-CLOSURES? to #f." should set REGISTER-CLOSURES? to #f."
(define not-config?
(match-lambda
(('guix 'config) #f)
(('guix rest ...) #t)
(('gnu rest ...) #t)
(rest #f)))
(define config (define config
;; (guix config) module for consumption by (guix gcrypt). ;; (guix config) module for consumption by (guix gcrypt).
(scheme-file "gcrypt-config.scm" (make-config.scm #:libgcrypt libgcrypt))
#~(begin
(define-module (guix config)
#:export (%libgcrypt))
;; XXX: Work around <http://bugs.gnu.org/15602>. (define schema
(eval-when (expand load eval) (and register-closures?
(define %libgcrypt (local-file (search-path %load-path
#+(file-append libgcrypt "/lib/libgcrypt")))))) "guix/store/schema.sql"))))
(mlet %store-monad ((os-drv (operating-system-derivation os #:container? #t)) (mlet %store-monad ((os-drv (operating-system-derivation os #:container? #t))
(name -> (string-append name ".tar.gz")) (name -> (string-append name ".tar.gz"))
(graph -> "system-graph")) (graph -> "system-graph"))
(define build (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 (with-imported-modules `(,@(source-module-closure
'((guix docker) '((guix docker)
(guix store database)
(guix build utils) (guix build utils)
(guix build store-copy)
(gnu build vm)) (gnu build vm))
#:select? not-config?) #:select? not-config?)
(guix build store-copy)
((guix config) => ,config)) ((guix config) => ,config))
#~(begin #~(begin
(use-modules (guix docker) (use-modules (guix docker)
(guix build utils) (guix build utils)
(gnu build vm) (gnu build vm)
(srfi srfi-19) (srfi srfi-19)
(guix build store-copy)) (guix build store-copy)
(guix store database))
(let* ((inputs '#$(append (list tar) ;; Set the SQL schema location.
(if register-closures? (sql-schema #$schema)
(list guix)
'()))) (let* (;; This initializer requires elevated privileges that are
;; This initializer requires elevated privileges that are
;; not normally available in the build environment (e.g., ;; not normally available in the build environment (e.g.,
;; it needs to create device nodes). In order to obtain ;; it needs to create device nodes). In order to obtain
;; such privileges, we run it as root in a VM. ;; 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 ;; lack of privileges if we use a root-directory that is on
;; a file system that is shared with the host (e.g., /tmp). ;; a file system that is shared with the host (e.g., /tmp).
(root-directory "/guixsd-system-root")) (root-directory "/guixsd-system-root"))
(set-path-environment-variable "PATH" '("bin" "sbin") inputs) (set-path-environment-variable "PATH" '("bin" "sbin") '(#+tar))
(mkdir root-directory) (mkdir root-directory)
(initialize root-directory) (initialize root-directory)
(build-docker-image (build-docker-image
(string-append "/xchg/" #$name) ;; The output file. (string-append "/xchg/" #$name) ;; The output file.
(cons* root-directory (cons* root-directory
(call-with-input-file (string-append "/xchg/" #$graph) (map store-info-item
read-reference-graph)) (call-with-input-file
(string-append "/xchg/" #$graph)
read-reference-graph)))
#$os-drv #$os-drv
#:compressor '(#+(file-append gzip "/bin/gzip") "-9n") #:compressor '(#+(file-append gzip "/bin/gzip") "-9n")
#:creation-time (make-time time-utc 0 1) #:creation-time (make-time time-utc 0 1)
#:transformations `((,root-directory -> "")))))))) #:transformations `((,root-directory -> ""))))))))
(expression->derivation-in-linux-vm (expression->derivation-in-linux-vm
name name build
;; 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))))
#:make-disk-image? #f #:make-disk-image? #f
#:single-file-output? #t #:single-file-output? #t
#:references-graphs `((,graph ,os-drv))))) #:references-graphs `((,graph ,os-drv)))))

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net> ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -74,13 +75,11 @@ HTTP-PORT."
(test-begin "tailon") (test-begin "tailon")
(test-eq "service running" (test-assert "service running"
'running!
(marionette-eval (marionette-eval
'(begin '(begin
(use-modules (gnu services herd)) (use-modules (gnu services herd))
(start-service 'tailon) (start-service 'tailon))
'running!)
marionette)) marionette))
(define* (retry-on-error f #:key times delay) (define* (retry-on-error f #:key times delay)

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; 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. ;;; This file is part of GNU Guix.
;;; ;;;
@ -517,13 +518,11 @@ in a loop. See <http://bugs.gnu.org/26931>.")
(test-begin "mcron") (test-begin "mcron")
(test-eq "service running" (test-assert "service running"
'running!
(marionette-eval (marionette-eval
'(begin '(begin
(use-modules (gnu services herd)) (use-modules (gnu services herd))
(start-service 'mcron) (start-service 'mcron))
'running!)
marionette)) marionette))
;; Make sure root's mcron job runs, has its cwd set to "/root", and ;; 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-begin "avahi")
(test-assert "wait for services" (test-assert "nscd PID file is created"
(marionette-eval (marionette-eval
'(begin '(begin
(use-modules (gnu services herd)) (use-modules (gnu services herd))
(start-service 'nscd))
marionette))
(start-service 'nscd) (test-assert "nscd is listening on its socket"
(marionette-eval
;; XXX: Work around a race condition in nscd: nscd creates its ;; XXX: Work around a race condition in nscd: nscd creates its
;; PID file before it is listening on its socket. ;; PID file before it is listening on its socket.
(let ((sock (socket PF_UNIX SOCK_STREAM 0))) '(let ((sock (socket PF_UNIX SOCK_STREAM 0)))
(let try () (let try ()
(catch 'system-error (catch 'system-error
(lambda () (lambda ()
(connect sock AF_UNIX "/var/run/nscd/socket") (connect sock AF_UNIX "/var/run/nscd/socket")
(close-port sock) (close-port sock)
(format #t "nscd is ready~%")) (format #t "nscd is ready~%")
#t)
(lambda args (lambda args
(format #t "waiting for nscd...~%") (format #t "waiting for nscd...~%")
(usleep 500000) (usleep 500000)
(try))))) (try)))))
marionette))
;; Wait for the other useful things. (test-assert "avahi is running"
(start-service 'avahi-daemon) (marionette-eval
(start-service 'networking) '(begin
(use-modules (gnu services herd))
(start-service 'avahi-daemon))
marionette))
#t) (test-assert "network is up"
(marionette-eval
'(begin
(use-modules (gnu services herd))
(start-service 'networking))
marionette)) marionette))
(test-equal "avahi-resolve-host-name" (test-equal "avahi-resolve-host-name"

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -84,13 +85,11 @@
(test-begin "dicod") (test-begin "dicod")
;; Wait for the service to be started. ;; Wait for the service to be started.
(test-eq "service is running" (test-assert "service is running"
'running!
(marionette-eval (marionette-eval
'(begin '(begin
(use-modules (gnu services herd)) (use-modules (gnu services herd))
(start-service 'dicod) (start-service 'dicod))
'running!)
marionette)) marionette))
;; Wait until dicod is actually listening. ;; Wait until dicod is actually listening.

View file

@ -3,6 +3,7 @@
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au> ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -84,8 +85,7 @@ accept from any for local deliver to mbox
(marionette-eval (marionette-eval
'(begin '(begin
(use-modules (gnu services herd)) (use-modules (gnu services herd))
(start-service 'smtpd) (start-service 'smtpd))
#t)
marionette)) marionette))
(test-assert "mbox is empty" (test-assert "mbox is empty"
@ -224,8 +224,7 @@ acl_check_data:
(marionette-eval (marionette-eval
'(begin '(begin
(use-modules (gnu services herd)) (use-modules (gnu services herd))
(start-service 'exim) (start-service 'exim))
#t)
marionette)) marionette))
(sleep 1) ;; give the service time to start talking (sleep 1) ;; give the service time to start talking
@ -330,13 +329,11 @@ Subject: Hello Nice to meet you!")
(test-begin "dovecot") (test-begin "dovecot")
;; Wait for dovecot to be up and running. ;; Wait for dovecot to be up and running.
(test-eq "dovecot running" (test-assert "dovecot running"
'running!
(marionette-eval (marionette-eval
'(begin '(begin
(use-modules (gnu services herd)) (use-modules (gnu services herd))
(start-service 'dovecot) (start-service 'dovecot))
'running!)
marionette)) marionette))
;; Check Dovecot service's PID. ;; Check Dovecot service's PID.

Some files were not shown because too many files have changed in this diff Show more