me
/
guix
Archived
1
0
Fork 0

Merge branch 'master' into staging

master
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.service
/guix-daemon
/guix-register
/guix/config.scm
/libformat.a
/libstore.a
@ -147,3 +146,4 @@ tmp
/nix/scripts/download
/etc/indent-code.el
/.version
/doc/stamp-[0-9]

View File

@ -11,6 +11,7 @@
# Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
# Copyright © 2018 Nils Gillmann <ng0@n0.is>
# Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
# Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
#
# This file is part of GNU Guix.
#
@ -262,11 +263,7 @@ STORE_MODULES = \
guix/store/database.scm \
guix/store/deduplication.scm
if HAVE_GUILE_SQLITE3
MODULES += $(STORE_MODULES)
else
MODULES_NOT_COMPILED += $(STORE_MODULES)
endif !HAVE_GUILE_SQLITE3
# Internal modules with test suite support.
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)
nobase_dist_guilemodule_DATA = \
guix/store/schema.sql \
$(MODULES) $(MODULES_NOT_COMPILED) $(AUX_FILES) $(EXAMPLES) \
$(MISC_DISTRO_FILES)
nobase_nodist_guilemodule_DATA = guix/config.scm
@ -378,7 +376,9 @@ SCM_TESTS = \
tests/scripts-build.scm \
tests/containers.scm \
tests/pack.scm \
tests/import-utils.scm
tests/import-utils.scm \
tests/store-database.scm \
tests/store-deduplication.scm
if HAVE_GUILE_JSON
@ -390,14 +390,6 @@ SCM_TESTS += \
endif
if HAVE_GUILE_SQLITE3
SCM_TESTS += \
tests/store-database.scm \
tests/store-deduplication.scm
endif
SH_TESTS = \
tests/guix-build.sh \
tests/guix-download.sh \
@ -414,13 +406,6 @@ SH_TESTS = \
tests/guix-graph.sh \
tests/guix-lint.sh
if BUILD_DAEMON
SH_TESTS += tests/guix-register.sh
endif BUILD_DAEMON
TESTS = $(SCM_TESTS) $(SH_TESTS)
AM_TESTS_ENVIRONMENT = abs_top_srcdir="$(abs_top_srcdir)" GUILE_AUTO_COMPILE=0
@ -470,7 +455,8 @@ dist_pkgdata_DATA = \
berlin.guixsd.org.pub
# 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.
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://gnupg.org/][GNU libgcrypt]]
- [[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]]
- [[http://www.zlib.net/][zlib]]
- 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)
(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~%"
dir)
(set! %load-path (cons dir %load-path))))))

View File

@ -1,7 +1,7 @@
#!/bin/sh
# 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>
#
# 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@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
# modules, but we define them to be on the safe side in case of
# 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.
GUIX_CHECK_GUILE_SQLITE3
AM_CONDITIONAL([HAVE_GUILE_SQLITE3],
[test "x$guix_cv_have_recent_guile_sqlite3" = "xyes"])
if test "x$guix_cv_have_recent_guile_sqlite3" != "xyes"; then
AC_MSG_ERROR([A recent Guile-SQLite3 could not be found; please install it.])
fi
dnl Make sure we have a full-fledged Guile.
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.
@end table
All these branches are tracked by our build farm
and merged into @code{master} once
All these branches are @uref{https://hydra.gnu.org/project/gnu,
tracked by our build farm} and merged into @code{master} once
everything has been successfully built. This allows us to fix issues
before they hit users, and to reduce the window during which pre-built
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
@cindex determinism, of build processes
@cindex reproducible builds, checking

View File

@ -37,7 +37,7 @@ Copyright @copyright{} 2017 Carlo Zancanaro@*
Copyright @copyright{} 2017 Thomas Danckaert@*
Copyright @copyright{} 2017 humanitiesNerd@*
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 Maxim Cournoyer@*
Copyright @copyright{} 2017, 2018 Tobias Geerinckx-Rice@*
@ -615,6 +615,9 @@ later, including 2.2.x;
Guile,, gnutls-guile, GnuTLS-Guile});
@item
@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
2017 or later;
@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"
@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
created by @command{guix package} (@pxref{Invoking guix package}). That
is, you can list generations, roll back to the previous
generation---i.e., the previous Guix---and so on:
@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
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
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
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
Use the bootstrap Guile to build the latest Guix. This option is only
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
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
@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})
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 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
;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
;;;
;;; This file is part of GNU Guix.
@ -18,6 +18,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu build install)
#:use-module (guix store database)
#:use-module (guix build utils)
#:use-module (guix build store-copy)
#:use-module (srfi srfi-26)
@ -25,7 +26,6 @@
#:export (install-boot-config
evaluate-populate-directive
populate-root-file-system
reset-timestamps
register-closure
populate-single-profile-directory))
@ -110,9 +110,6 @@ STORE."
("/var/guix/gcroots/booted-system" -> "/run/booted-system")
("/var/guix/gcroots/current-system" -> "/run/current-system")
;; XXX: 'guix-register' creates this symlink with a wrong target, so
;; create it upfront to be sure.
("/var/guix/gcroots/profiles" -> "/var/guix/profiles")
(directory "/bin")
@ -144,37 +141,27 @@ includes /etc, /var, /run, /bin/sh, etc., and all the symlinks to SYSTEM."
(try))
(apply throw args)))))))
(define (reset-timestamps directory)
"Reset the timestamps of all the files under DIRECTORY, so that they appear
as created and modified at the Epoch."
(display "clearing file timestamps...\n")
(for-each (lambda (file)
(let ((s (lstat file)))
;; XXX: Guile uses libc's 'utime' function (not 'futime'), so
;; the timestamp of symlinks cannot be changed, and there are
;; symlinks here pointing to /gnu/store, which is the host,
;; read-only store.
(unless (eq? (stat:type s) 'symlink)
(utime file 0 0 0 0))))
(find-files directory #:directories? #t)))
(define* (register-closure store closure
#:key (deduplicate? #t))
"Register CLOSURE in STORE, where STORE is the directory name of the target
store and CLOSURE is the name of a file containing a reference graph as used
by 'guix-register'. As a side effect, this resets timestamps on store files
and, if DEDUPLICATE? is true, deduplicates files common to CLOSURE and the
rest of STORE."
(let ((status (apply system* "guix-register" "--prefix" store
(append (if deduplicate? '() '("--no-deduplication"))
(list closure)))))
(unless (zero? status)
(error "failed to register store items" closure))))
(define* (register-closure prefix closure
#:key
(deduplicate? #t) (reset-timestamps? #t)
(schema (sql-schema)))
"Register CLOSURE in PREFIX, where PREFIX is the directory name of the
target store and CLOSURE is the name of a file containing a reference graph as
produced by #:references-graphs.. As a side effect, if RESET-TIMESTAMPS? is
true, reset timestamps on store files and, if DEDUPLICATE? is true,
deduplicates files common to CLOSURE and the rest of PREFIX."
(let ((items (call-with-input-file closure read-reference-graph)))
(register-items items
#:prefix prefix
#:deduplicate? deduplicate?
#:reset-timestamps? reset-timestamps?
#:registration-time %epoch
#:schema schema)))
(define* (populate-single-profile-directory directory
#:key profile closure
deduplicate?
register?)
register? schema)
"Populate DIRECTORY with a store containing PROFILE, whose closure is given
in the file called CLOSURE (as generated by #:references-graphs.) DIRECTORY
is initialized to contain a single profile under /root pointing to PROFILE.
@ -200,11 +187,11 @@ This is used to create the self-contained tarballs with 'guix pack'."
(when register?
(register-closure (canonicalize-path directory) closure
#:deduplicate? deduplicate?)
#:deduplicate? deduplicate?
#:schema schema)
;; XXX: 'guix-register' registers profiles as GC roots but the symlink
;; target uses $TMPDIR. Fix that.
(delete-file (scope "/var/guix/gcroots/profiles"))
(mkdir-p* "/var/guix/profiles")
(mkdir-p* "/var/guix/gcroots")
(symlink* "/var/guix/profiles"
"/var/guix/gcroots/profiles"))

View File

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

View File

@ -25,6 +25,7 @@
#:use-module (guix build utils)
#:use-module (guix build store-copy)
#:use-module (guix build syscalls)
#:use-module ((guix store database) #:select (reset-timestamps))
#:use-module (gnu build linux-boot)
#:use-module (gnu build install)
#:use-module (gnu system uuid)
@ -345,7 +346,7 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation."
;; Optionally, register the inputs in the image's store.
(when register-closures?
(unless copy-closures?
;; XXX: 'guix-register' wants to palpate the things it registers, so
;; XXX: 'register-closure' wants to palpate the things it registers, so
;; bind-mount the store on the target.
(mkdir-p target-store)
(mount (%store-directory) target-store "" MS_BIND))
@ -354,6 +355,7 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation."
(for-each (lambda (closure)
(register-closure target
(string-append "/xchg/" closure)
#:reset-timestamps? copy-closures?
#:deduplicate? deduplicate?))
closures)
(unless copy-closures?
@ -363,7 +365,7 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation."
(display "populating...\n")
(populate-root-file-system system-directory target)
;; 'guix-register' resets timestamps and everything, so no need to do it
;; 'register-closure' resets timestamps and everything, so no need to do it
;; once more in that case.
(unless register-closures?
(reset-timestamps target))))

View File

@ -581,6 +581,8 @@ dist_patch_DATA = \
%D%/packages/patches/azr3.patch \
%D%/packages/patches/bash-completion-directories.patch \
%D%/packages/patches/bazaar-CVE-2017-14176.patch \
%D%/packages/patches/bind-CVE-2018-5738.patch \
%D%/packages/patches/binutils-aarch64-symbol-relocation.patch \
%D%/packages/patches/binutils-loongson-workaround.patch \
%D%/packages/patches/blast+-fix-makefile.patch \
%D%/packages/patches/boost-fix-icu-build.patch \
@ -641,7 +643,6 @@ dist_patch_DATA = \
%D%/packages/patches/e2fsprogs-glibc-2.27.patch \
%D%/packages/patches/eigen-arm-neon-fixes.patch \
%D%/packages/patches/elfutils-tests-ptrace.patch \
%D%/packages/patches/elixir-disable-failing-tests.patch \
%D%/packages/patches/elogind-glibc-2.27.patch \
%D%/packages/patches/einstein-build.patch \
%D%/packages/patches/emacs-browse-at-remote-cgit-gnu.patch \
@ -671,6 +672,7 @@ dist_patch_DATA = \
%D%/packages/patches/file-CVE-2017-1000249.patch \
%D%/packages/patches/findutils-localstatedir.patch \
%D%/packages/patches/findutils-test-xargs.patch \
%D%/packages/patches/flann-cmake-3.11.patch \
%D%/packages/patches/flint-ldconfig.patch \
%D%/packages/patches/fltk-shared-lib-defines.patch \
%D%/packages/patches/fltk-xfont-on-demand.patch \
@ -744,7 +746,6 @@ dist_patch_DATA = \
%D%/packages/patches/gnome-todo-libical-compat.patch \
%D%/packages/patches/gnome-tweak-tool-search-paths.patch \
%D%/packages/patches/gnucash-price-quotes-perl.patch \
%D%/packages/patches/gnupg-1.4-CVE-2018-12020.patch \
%D%/packages/patches/gnutls-skip-trust-store-test.patch \
%D%/packages/patches/gnutls-skip-pkgconfig-test.patch \
%D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
@ -982,12 +983,12 @@ dist_patch_DATA = \
%D%/packages/patches/p7zip-CVE-2016-9296.patch \
%D%/packages/patches/p7zip-CVE-2017-17969.patch \
%D%/packages/patches/p7zip-remove-unused-code.patch \
%D%/packages/patches/password-store-gnupg-compat.patch \
%D%/packages/patches/patchelf-page-size.patch \
%D%/packages/patches/patchelf-rework-for-arm.patch \
%D%/packages/patches/patchutils-xfail-gendiff-tests.patch \
%D%/packages/patches/patch-hurd-path-max.patch \
%D%/packages/patches/perf-gcc-ice.patch \
%D%/packages/patches/perl-archive-tar-CVE-2018-12015.patch \
%D%/packages/patches/perl-file-path-CVE-2017-6512.patch \
%D%/packages/patches/perl-autosplit-default-time.patch \
%D%/packages/patches/perl-dbd-mysql-CVE-2017-10788.patch \
@ -1050,7 +1051,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-genshi-stripping-of-unsafe-script-tags.patch \
%D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
%D%/packages/patches/python-networkx2-reproducible-build.patch \
%D%/packages/patches/python-nose-timer-drop-ordereddict.patch \
%D%/packages/patches/python-pillow-fix-failing-tests.patch \
%D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \
%D%/packages/patches/python-scikit-learn-fix-test-non-determinism.patch \
@ -1111,7 +1111,6 @@ dist_patch_DATA = \
%D%/packages/patches/slim-login.patch \
%D%/packages/patches/sooperlooper-build-with-wx-30.patch \
%D%/packages/patches/steghide-fixes.patch \
%D%/packages/patches/strace-kernel-4.16.patch \
%D%/packages/patches/superlu-dist-scotchmetis.patch \
%D%/packages/patches/swish-e-search.patch \
%D%/packages/patches/swish-e-format-security.patch \
@ -1157,6 +1156,7 @@ dist_patch_DATA = \
%D%/packages/patches/ustr-fix-build-with-gcc-5.patch \
%D%/packages/patches/util-linux-tests.patch \
%D%/packages/patches/upower-builddir.patch \
%D%/packages/patches/upx-fix-CVE-2017-15056.patch \
%D%/packages/patches/valgrind-enable-arm.patch \
%D%/packages/patches/valgrind-glibc-compat.patch \
%D%/packages/patches/vinagre-revert-1.patch \

View File

@ -21,6 +21,7 @@
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -822,41 +823,36 @@ by bandwidth they use.")
(define-public clusterssh
(package
(name "clusterssh")
(version "3.28")
(version "4.13.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/clusterssh/"
"1.%20ClusterSSH%20Series%203/" version
"/clusterssh-" version ".tar.gz"))
"2.%20ClusterSSH%20Series%204/"
"App-ClusterSSH-v" version ".tar.gz"))
(sha256
(base32
"1bwggpvaj2al5blg1ynapviv2kpydffpzq2zkhi81najnvzc1rr7"))))
(build-system gnu-build-system)
(inputs `(("perl" ,perl)))
(propagated-inputs `(("xterm" ,xterm)
("perl-tk" ,perl-tk)
("perl-x11-protocol" ,perl-x11-protocol)))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'install 'set-load-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Put the perl-tk and perl-x11-protocol modules in the perl inc
;; path for PROG
(let* ((out (assoc-ref outputs "out"))
(prog (string-append out "/bin/cssh"))
(perl-ver ,(package-version perl))
(x11-inc (string-append
(assoc-ref inputs "perl-x11-protocol")
"/lib/perl5/site_perl/" perl-ver))
(tk-inc (string-append
(assoc-ref inputs "perl-tk")
"/lib/perl5/site_perl/" perl-ver
"/x86_64-linux")))
(wrap-program
prog
`("PERL5LIB" ":" prefix (,x11-inc ,tk-inc))))
#t)))))
"0rmk2p3f2wz1h092anidjclh212rv3gxyk0c641qk3frlrjnw6mp"))))
(build-system perl-build-system)
(native-inputs
`(("perl-cpan-changes" ,perl-cpan-changes)
("perl-file-slurp" ,perl-file-slurp)
("perl-file-which" ,perl-file-which)
("perl-module-build" ,perl-module-build)
("perl-readonly" ,perl-readonly)
("perl-test-differences" ,perl-test-differences)
("perl-test-distmanifest" ,perl-test-distmanifest)
("perl-test-perltidy" ,perl-test-perltidy)
("perl-test-pod" ,perl-test-pod)
("perl-test-pod-coverage" ,perl-test-pod-coverage)
("perl-test-trap" ,perl-test-trap)
("perltidy" ,perltidy)))
(propagated-inputs
`(("xterm" ,xterm)
("perl-exception-class" ,perl-exception-class)
("perl-tk" ,perl-tk)
("perl-try-tiny" ,perl-try-tiny)
("perl-x11-protocol" ,perl-x11-protocol)
("perl-x11-protocol-other" ,perl-x11-protocol-other)))
;; The clusterssh.sourceforge.net address requires login to view
(home-page "https://sourceforge.net/projects/clusterssh/")
(synopsis "Secure concurrent multi-server terminal control")
@ -2359,11 +2355,23 @@ Intel DRM Driver.")
"13r0b0hllgf8j9rh6x1knmbgvingbdmx046aazv6vck2ll120mw1"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2)) ; Python 2 only
`(#:python ,python-2 ; Python 2 only
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(invoke
"nosetests" "-v" "tests/"
;; This test hangs indefinitely when run on a single core VM
;; (see GNU bug #26647 and Debian bug #850230).
"--exclude=test_nested_execution_with_explicit_ports"
;; This test randomly fails in certain environments causing too
;; much noise to be useful (see Debian bug #854686).
"--exclude=test_should_use_sentinel_for_tasks_that_errored"))))))
(native-inputs
`(("python2-fudge" ,python2-fudge)
("python2-jinja2" ,python2-jinja2)
("python2-nose" ,python2-nose)
`(("python2-fudge" ,python2-fudge) ; Requires < 1.0
("python2-jinja2" ,python2-jinja2) ; Requires < 3.0
("python2-nose" ,python2-nose) ; Requires < 2.0
("python2-pynacl" ,python2-pynacl)
("python2-bcrypt" ,python2-bcrypt)))
(propagated-inputs
@ -2383,7 +2391,7 @@ tool for remote execution and deployment.")
(define-public neofetch
(package
(name "neofetch")
(version "3.4.0")
(version "4.0.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/dylanaraps/neofetch/"
@ -2391,7 +2399,7 @@ tool for remote execution and deployment.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"18rhamy910ig03rr55y9x5i6pf78yj9xc6jpm6nfh3gqja7340rb"))))
"014hlbzs6j4b669b64hnq8vc5knwiv9ncw9m9d193p9jsybxpm1w"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; there are no tests

View File

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

View File

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

View File

@ -10,6 +10,7 @@
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -32,6 +33,7 @@
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
@ -45,6 +47,7 @@
#:use-module (gnu packages ftp)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages gperf)
#:use-module (gnu packages guile)
#:use-module (gnu packages linux)
@ -472,13 +475,13 @@ detection, and lossless compression.")
(define-public borg
(package
(name "borg")
(version "1.1.5")
(version "1.1.6")
(source
(origin
(method url-fetch)
(uri (pypi-uri "borgbackup" version))
(sha256
(base32 "0gbdnq7ks46diz6y2pf6wpwkb9hy6hp3immi7jg3h7w72b3ycmj3"))
(base32 "0c09j46fi8i7klas0bh82a4whlwnajshk0izkgax6fjxr1sf9lm1"))
(modules '((guix build utils)))
(snippet
'(begin
@ -511,17 +514,6 @@ detection, and lossless compression.")
;; HOME=/homeless-shelter.
(setenv "HOME" "/tmp")
#t)))
;; Later versions of msgpack were disallowed to some warnings and lack
;; of support for Python versions that we don't support anyways. So,
;; it's okay to to keep using more recents versions of msgpack for
;; Borg. Also see the note about msgpack in the list of inputs.
;; https://github.com/borgbackup/borg/issues/3517#issuecomment-357221978
(add-before 'build 'adjust-msgpack-dependency
(lambda _
(substitute* "setup.py"
(("msgpack-python>=0.4.6,<0.5.0")
"msgpack-python>=0.4.6"))
#t))
;; The tests need to be run after Borg is installed.
(delete 'check)
(add-after 'install 'check
@ -833,3 +825,112 @@ file systems with unattended creation and expiration. A dirvish backup vault
is like a time machine for your data. ")
(license (license:fsf-free "file://COPYING"
"Open Software License 2.0"))))
(define-public restic ; bundled / vendored dependencies
(package
(name "restic")
(version "0.9.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/restic/restic/releases/download/"
"v" version "/restic-" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"15f0rsm2lxk4lmn4773q28g49p68pqyyx0ccp7r556asan73p79m"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/restic/restic"
#:unpack-path "github.com/restic"
;; We don't need to install the source code for end-user applications.
#:install-source? #f
#:phases
(modify-phases %standard-phases
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion (string-append
"src/github.com/restic/restic-"
,version)
(invoke "go" "run" "build.go"))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(src (string-append "src/github.com/restic/restic-"
,version)))
(install-file (string-append src "/restic")
(string-append out "/bin"))
#t)))
(add-after 'install 'install-docs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(man "/share/man")
(man-section (string-append man "/man"))
(src (string-append "src/github.com/restic/restic-"
,version "/doc/man/")))
;; Install all the man pages to "out".
(for-each
(lambda (file)
(install-file file
(string-append out man-section
(string-take-right file 1))))
(find-files src "\\.[1-9]"))
#t)))
(add-after 'install-docs 'install-shell-completion
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(etc (string-append out "/etc"))
(share (string-append out "/share")))
(for-each
(lambda (shell)
(let* ((shell-name (symbol->string shell))
(dir (string-append "etc/completion/" shell-name)))
(mkdir-p dir)
(invoke (string-append bin "/restic") "generate"
(string-append "--" shell-name "-completion")
(string-append dir "/"
(case shell
((bash) "restic")
((zsh) "_restic"))))))
'(bash zsh))
(with-directory-excursion "etc/completion"
(install-file "bash/restic"
(string-append etc "/bash_completion.d"))
(install-file "zsh/_restic"
(string-append share "/zsh/site-functions")))
#t))))))
(home-page "https://restic.net/")
(synopsis "Backup program with multiple revisions, encryption and more")
(description "Restic is a program that does backups right and was designed
with the following principles in mind:
@itemize
@item Easy: Doing backups should be a frictionless process, otherwise you
might be tempted to skip it. Restic should be easy to configure and use, so
that, in the event of a data loss, you can just restore it. Likewise,
restoring data should not be complicated.
@item Fast: Backing up your data with restic should only be limited by your
network or hard disk bandwidth so that you can backup your files every day.
Nobody does backups if it takes too much time. Restoring backups should only
transfer data that is needed for the files that are to be restored, so that
this process is also fast.
@item Verifiable: Much more important than backup is restore, so restic
enables you to easily verify that all data can be restored. @item Secure:
Restic uses cryptography to guarantee confidentiality and integrity of your
data. The location the backup data is stored is assumed not to be a trusted
environment (e.g. a shared space where others like system administrators are
able to access your backups). Restic is built to secure your data against
such attackers.
@item Efficient: With the growth of data, additional snapshots should only
take the storage of the actual increment. Even more, duplicate data should be
de-duplicated before it is actually written to the storage back end to save
precious backup space.
@end itemize")
(license license:bsd-2)))

View File

@ -480,6 +480,17 @@ included.")
(license gpl3+)
(home-page "https://www.gnu.org/software/binutils/")))
(define-public binutils/fixed
;; TODO: Incorporate this in binutils during the next rebuild cycle.
(hidden-package
(package
(inherit binutils)
(source (origin
(inherit (package-source binutils))
(patches (append (origin-patches (package-source binutils))
(search-patches
"binutils-aarch64-symbol-relocation.patch"))))))))
(define* (make-ld-wrapper name #:key
(target (const #f))
binutils

View File

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

View File

@ -24,10 +24,11 @@
#:use-module (guix download)
#:use-module (guix build-system r)
#:use-module (gnu packages)
#:use-module (gnu packages bioinformatics)
#:use-module (gnu packages cran)
#:use-module (gnu packages compression)
#:use-module (gnu packages statistics)
#:use-module (gnu packages bioinformatics))
#:use-module (gnu packages graph)
#:use-module (gnu packages statistics))
(define-public r-bsgenome-dmelanogaster-ucsc-dm6
(package
@ -61,6 +62,111 @@ melanogaster (Fly) as provided by UCSC (dm6) and stored in Biostrings
objects.")
(license license:artistic2.0)))
(define-public r-bsgenome-dmelanogaster-ucsc-dm3-masked
(package
(name "r-bsgenome-dmelanogaster-ucsc-dm3-masked")
(version "1.3.99")
(source (origin
(method url-fetch)
;; We cannot use bioconductor-uri here because this tarball is
;; located under "data/annotation/" instead of "bioc/".
(uri (string-append "http://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"BSgenome.Dmelanogaster.UCSC.dm3.masked_"
version ".tar.gz"))
(sha256
(base32
"1756csb09f1br9rj1l3f08qyh4hlymdbd0cfn8x3fq39dn45m5ap"))))
(properties
`((upstream-name . "BSgenome.Dmelanogaster.UCSC.dm3.masked")))
(build-system r-build-system)
(propagated-inputs
`(("r-bsgenome" ,r-bsgenome)
("r-bsgenome-dmelanogaster-ucsc-dm3"
,r-bsgenome-dmelanogaster-ucsc-dm3)))
(home-page "https://www.bioconductor.org/packages/BSgenome.Dmelanogaster.UCSC.dm3.masked/")
(synopsis "Full masked genome sequences for Fly")
(description
"This package provides full masked genome sequences for Drosophila
melanogaster (Fly) as provided by UCSC (dm3, April 2006) and stored in
Biostrings objects. The sequences are the same as in
BSgenome.Dmelanogaster.UCSC.dm3, except that each of them has the 4 following
masks on top: (1) the mask of assembly gaps (AGAPS mask), (2) the mask of
intra-contig ambiguities (AMB mask), (3) the mask of repeats from
RepeatMasker (RM mask), and (4) the mask of repeats from Tandem Repeats
Finder (TRF mask). Only the AGAPS and AMB masks are \"active\" by default.")
(license license:artistic2.0)))
(define-public r-bsgenome-hsapiens-ucsc-hg19-masked
(package
(name "r-bsgenome-hsapiens-ucsc-hg19-masked")
(version "1.3.99")
(source (origin
(method url-fetch)
;; We cannot use bioconductor-uri here because this tarball is
;; located under "data/annotation/" instead of "bioc/".
(uri (string-append "http://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"BSgenome.Hsapiens.UCSC.hg19.masked_"
version ".tar.gz"))
(sha256
(base32
"0452pyah0kv1vsrsjbrqw4k2rm8lc2vc771dzib45gnnfz86qxrr"))))
(properties
`((upstream-name . "BSgenome.Hsapiens.UCSC.hg19.masked")))
(build-system r-build-system)
(propagated-inputs
`(("r-bsgenome" ,r-bsgenome)
("r-bsgenome-hsapiens-ucsc-hg19"
,r-bsgenome-hsapiens-ucsc-hg19)))
(home-page "https://bioconductor.org/packages/BSgenome.Hsapiens.UCSC.hg19.masked/")
(synopsis "Full masked genome sequences for Homo sapiens")
(description
"This package provides full genome sequences for Homo sapiens (Human) as
provided by UCSC (hg19, Feb. 2009) and stored in Biostrings objects. The
sequences are the same as in BSgenome.Hsapiens.UCSC.hg19, except that each of
them has the 4 following masks on top: (1) the mask of assembly gaps (AGAPS
mask), (2) the mask of intra-contig ambiguities (AMB mask), (3) the mask of
repeats from RepeatMasker (RM mask), and (4) the mask of repeats from Tandem
Repeats Finder (TRF mask). Only the AGAPS and AMB masks are \"active\" by
default.")
(license license:artistic2.0)))
(define-public r-bsgenome-mmusculus-ucsc-mm9-masked
(package
(name "r-bsgenome-mmusculus-ucsc-mm9-masked")
(version "1.3.99")
(source (origin
(method url-fetch)
;; We cannot use bioconductor-uri here because this tarball is
;; located under "data/annotation/" instead of "bioc/".
(uri (string-append "http://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"BSgenome.Mmusculus.UCSC.mm9.masked_"
version ".tar.gz"))
(sha256
(base32
"00bpbm3havqcxr4g63zhllsbpd9q6svgihks7qp7x73nm4gvq7fn"))))
(properties
`((upstream-name . "BSgenome.Mmusculus.UCSC.mm9.masked")))
(build-system r-build-system)
(propagated-inputs
`(("r-bsgenome" ,r-bsgenome)
("r-bsgenome-mmusculus-ucsc-mm9"
,r-bsgenome-mmusculus-ucsc-mm9)))
(home-page "http://bioconductor.org/packages/BSgenome.Mmusculus.UCSC.mm9.masked/")
(synopsis "Full masked genome sequences for Mouse")
(description
"This package provides full genome sequences for Mus musculus (Mouse) as
provided by UCSC (mm9, Jul. 2007) and stored in Biostrings objects. The
sequences are the same as in BSgenome.Mmusculus.UCSC.mm9, except that each of
them has the 4 following masks on top: (1) the mask of assembly gaps (AGAPS
mask), (2) the mask of intra-contig ambiguities (AMB mask), (3) the mask of
repeats from RepeatMasker (RM mask), and (4) the mask of repeats from Tandem
Repeats Finder (TRF mask). Only the AGAPS and AMB masks are \"active\" by
default." )
(license license:artistic2.0)))
(define-public r-hpar
(package
(name "r-hpar")
@ -371,3 +477,201 @@ filtered to remove spurious regions in the genome. Downstream steps of
segmentation and calling are also implemented via packages DNAcopy and CGHcall,
respectively.")
(license license:gpl2+)))
(define-public r-bayseq
(package
(name "r-bayseq")
(version "2.14.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "baySeq" version))
(sha256
(base32
"0hbmm01a8libara9mbxknpk0wzarwfngnfwlmhpww91a0cmy5klg"))))
(properties `((upstream-name . "baySeq")))
(build-system r-build-system)
(propagated-inputs
`(("r-abind" ,r-abind)
("r-edger" ,r-edger)
("r-genomicranges" ,r-genomicranges)))
(home-page "https://bioconductor.org/packages/baySeq/")
(synopsis "Bayesian analysis of differential expression patterns in count data")
(description
"This package identifies differential expression in high-throughput count
data, such as that derived from next-generation sequencing machines,
calculating estimated posterior likelihoods of differential expression (or
more complex hypotheses) via empirical Bayesian methods.")
(license license:gpl3)))
(define-public r-chipcomp
(package
(name "r-chipcomp")
(version "1.10.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "ChIPComp" version))
(sha256
(base32
"0j9nif7z33qdxf347r9wa62hhz8qs09r2p96x3hg5yz30a10ahqs"))))
(properties `((upstream-name . "ChIPComp")))
(build-system r-build-system)
(propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics)
("r-bsgenome-hsapiens-ucsc-hg19" ,r-bsgenome-hsapiens-ucsc-hg19)
("r-bsgenome-mmusculus-ucsc-mm9" ,r-bsgenome-mmusculus-ucsc-mm9)
("r-genomeinfodb" ,r-genomeinfodb)
("r-genomicranges" ,r-genomicranges)
("r-iranges" ,r-iranges)
("r-limma" ,r-limma)
("r-rsamtools" ,r-rsamtools)
("r-rtracklayer" ,r-rtracklayer)
("r-s4vectors" ,r-s4vectors)))
(home-page "https://bioconductor.org/packages/ChIPComp")
(synopsis "Quantitative comparison of multiple ChIP-seq datasets")
(description
"ChIPComp implements a statistical method for quantitative comparison of
multiple ChIP-seq datasets. It detects differentially bound sharp binding
sites across multiple conditions considering matching control in ChIP-seq
datasets.")
;; Any version of the GPL.
(license license:gpl3+)))
(define-public r-riboprofiling
(package
(name "r-riboprofiling")
(version "1.10.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "RiboProfiling" version))
(sha256
(base32
"04yjklqdjkim7yxyk3cyvf0mmwyxyfvw2mmfzgwaaqbiyg29sli0"))))
(properties `((upstream-name . "RiboProfiling")))
(build-system r-build-system)
(propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics)
("r-biostrings" ,r-biostrings)
("r-data-table" ,r-data-table)
("r-genomeinfodb" ,r-genomeinfodb)
("r-genomicalignments" ,r-genomicalignments)
("r-genomicfeatures" ,r-genomicfeatures)
("r-genomicranges" ,r-genomicranges)
("r-ggbio" ,r-ggbio)
("r-ggplot2" ,r-ggplot2)
("r-iranges" ,r-iranges)
("r-plyr" ,r-plyr)
("r-reshape2" ,r-reshape2)
("r-rsamtools" ,r-rsamtools)
("r-rtracklayer" ,r-rtracklayer)
("r-s4vectors" ,r-s4vectors)
("r-sqldf" ,r-sqldf)))
(home-page "https://bioconductor.org/packages/RiboProfiling/")
(synopsis "Ribosome profiling data analysis")
(description "Starting with a BAM file, this package provides the
necessary functions for quality assessment, read start position recalibration,
the counting of genomic sequence reads on CDS, 3'UTR, and 5'UTR, and plotting
of count data: pairs, log fold-change, codon frequency and coverage
assessment, principal component analysis on codon coverage.")
(license license:gpl3)))
(define-public r-riboseqr
(package
(name "r-riboseqr")
(version "1.14.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "riboSeqR" version))
(sha256
(base32
"0xavd1cdhi8qfjn9a1hjhflyg6jq1ydvv56z12gjz572pwz2knvn"))))
(properties `((upstream-name . "riboSeqR")))
(build-system r-build-system)
(propagated-inputs
`(("r-abind" ,r-abind)
("r-bayseq" ,r-bayseq)
("r-genomeinfodb" ,r-genomeinfodb)
("r-genomicranges" ,r-genomicranges)
("r-iranges" ,r-iranges)
("r-rsamtools" ,r-rsamtools)
("r-seqlogo" ,r-seqlogo)))
(home-page "https://bioconductor.org/packages/riboSeqR/")
(synopsis "Analysis of sequencing data from ribosome profiling experiments")
(description
"This package provides plotting functions, frameshift detection and
parsing of genetic sequencing data from ribosome profiling experiments.")
(license license:gpl3)))
(define-public r-interactionset
(package
(name "r-interactionset")
(version "1.8.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "InteractionSet" version))
(sha256
(base32
"0xngraq7ic80jr98i1wqp8bxdgidq6py60m2wfk82n1ixpcdck8n"))))
(properties
`((upstream-name . "InteractionSet")))
(build-system r-build-system)
(propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics)
("r-genomeinfodb" ,r-genomeinfodb)
("r-genomicranges" ,r-genomicranges)
("r-iranges" ,r-iranges)
("r-matrix" ,r-matrix)
("r-rcpp" ,r-rcpp)
("r-s4vectors" ,r-s4vectors)
("r-summarizedexperiment" ,r-summarizedexperiment)))
(home-page "https://bioconductor.org/packages/InteractionSet")
(synopsis "Base classes for storing genomic interaction data")
(description
"This packages provides the @code{GInteractions},
@code{InteractionSet} and @code{ContactMatrix} objects and associated methods
for storing and manipulating genomic interaction data from Hi-C and ChIA-PET
experiments.")
(license license:gpl3)))
(define-public r-genomicinteractions
(package
(name "r-genomicinteractions")
(version "1.14.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "GenomicInteractions" version))
(sha256
(base32
"0cnagprxj0b7p6s29iyhqwxj7hgmrh75gj52y4dlil790d1bmq2q"))))
(properties
`((upstream-name . "GenomicInteractions")))
(build-system r-build-system)
(propagated-inputs
`(("r-biobase" ,r-biobase)
("r-biocgenerics" ,r-biocgenerics)
("r-data-table" ,r-data-table)
("r-dplyr" ,r-dplyr)
("r-genomeinfodb" ,r-genomeinfodb)
("r-genomicranges" ,r-genomicranges)
("r-ggplot2" ,r-ggplot2)
("r-gridextra" ,r-gridextra)
("r-gviz" ,r-gviz)
("r-igraph" ,r-igraph)
("r-interactionset" ,r-interactionset)
("r-iranges" ,r-iranges)
("r-rsamtools" ,r-rsamtools)
("r-rtracklayer" ,r-rtracklayer)
("r-s4vectors" ,r-s4vectors)
("r-stringr" ,r-stringr)))
(home-page "https://github.com/ComputationalRegulatoryGenomicsICL/GenomicInteractions/")
(synopsis "R package for handling genomic interaction data")
(description
"This R package provides tools for handling genomic interaction data,
such as ChIA-PET/Hi-C, annotating genomic features with interaction
information and producing various plots and statistics.")
(license license:gpl3)))

View File

@ -6939,13 +6939,13 @@ Bioconductor, CRAN, and Github.")
(define-public r-biocviews
(package
(name "r-biocviews")
(version "1.48.0")
(version "1.48.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "biocViews" version))
(sha256
(base32
"1yx2lir67ny0j150wyfqca0wsxp84byri8nscbs9qlndkh2jppq9"))))
"1q5z6xxhjyibr165di7iyachw4gd4bdrxkd8rjkcklnngsrx1azm"))))
(properties
`((upstream-name . "biocViews")))
(build-system r-build-system)
@ -7128,13 +7128,13 @@ abnormal copy number.")
(define-public r-s4vectors
(package
(name "r-s4vectors")
(version "0.18.2")
(version "0.18.3")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "S4Vectors" version))
(sha256
(base32
"0qvj2j0zl4djjl7vrwc6xak6h8dxr53iwypfbcvfb3sh7jwhdiz5"))))
"02bps2rpjqx2npwxq3x62ncwi9ggr165cwi56h6hld28bw2gddy8"))))
(properties
`((upstream-name . "S4Vectors")))
(build-system r-build-system)
@ -9705,13 +9705,13 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
(define-public r-seurat
(package
(name "r-seurat")
(version "2.3.1")
(version "2.3.2")
(source (origin
(method url-fetch)
(uri (cran-uri "Seurat" version))
(sha256
(base32
"0hi59rgdrr2iqfvx5bq7yq02hbjxkjl1fzidqj14z0ypq0nzbjys"))
"1sjpy5rrpvlpm6hs7qy7qpglgbp7zrgfybcsalpmjb51rhxhgcg1"))
;; Delete pre-built jar.
(snippet
'(begin (delete-file "inst/java/ModularityOptimizer.jar")
@ -9755,6 +9755,7 @@ Main-Class: ModularityOptimizer\n")))
("r-ggplot2" ,r-ggplot2)
("r-ggridges" ,r-ggridges)
("r-gplots" ,r-gplots)
("r-hdf5r" ,r-hdf5r)
("r-hmisc" ,r-hmisc)
("r-ica" ,r-ica)
("r-igraph" ,r-igraph)
@ -12905,7 +12906,7 @@ expression report comparing samples in an easily configurable manner.")
(define-public pigx-chipseq
(package
(name "pigx-chipseq")
(version "0.0.15")
(version "0.0.16")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_chipseq/"
@ -12913,7 +12914,7 @@ expression report comparing samples in an easily configurable manner.")
"/pigx_chipseq-" version ".tar.gz"))
(sha256
(base32
"11v9v3vyda0sv4cl45nki7mm4v4bjfcdq7a70kcvi9h465nq66wg"))))
"0s53840z53pih0jkllmcfb2la7c36zxmf229fshhyq8n6a2hgr8f"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; parts of the tests rely on access to the network
@ -12985,7 +12986,7 @@ in an easily configurable manner.")
(define-public pigx-bsseq
(package
(name "pigx-bsseq")
(version "0.0.8")
(version "0.0.9")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_bsseq/"
@ -12993,7 +12994,7 @@ in an easily configurable manner.")
"/pigx_bsseq-" version ".tar.gz"))
(sha256
(base32
"0irlnlhhw9fd4ha7hksrxn3y7j76mz5qq1wjswbs9p364laqg69y"))))
"0j1dfjk8m1p1h6d5yw63scjlbx56z8gixmbw626w1vcyblg0frmz"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@ -13052,7 +13053,7 @@ methylation and segmentation.")
(define-public pigx-scrnaseq
(package
(name "pigx-scrnaseq")
(version "0.0.4")
(version "0.0.5")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_scrnaseq/"
@ -13060,7 +13061,7 @@ methylation and segmentation.")
"/pigx_scrnaseq-" version ".tar.gz"))
(sha256
(base32
"1pvjm6f3mascprs65vflggwwg5v925knvgal7k7a6nnlmw5qndrf"))))
"0a73rilv0vnw42d5rsdq205h4f0x8j3jqv998janh4s324c6w2kj"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -13088,6 +13089,7 @@ methylation and segmentation.")
("python-wrapper" ,python-wrapper)
("python-pyyaml" ,python-pyyaml)
("python-pandas" ,python-pandas)
("python-magic" ,python-magic)
("python-numpy" ,python-numpy)
("python-loompy" ,python-loompy)
("ghc-pandoc" ,ghc-pandoc-1)
@ -13245,3 +13247,62 @@ rate speciation and extinction.")
junctions in RNA-seq data. It is annotation-agnostic and offset-aware. This
version does count multisplits.")
(license license:gpl3+))))
(define-public minimap2
(package
(name "minimap2")
(version "2.10")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lh3/minimap2/"
"releases/download/v" version "/"
"minimap2-" version ".tar.bz2"))
(sha256
(base32
"080w9066irkbhbyr4nmf19pzkdd2s4v31hpzlajgq2y0drr6zcsj"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; there are none
#:make-flags
(list "CC=gcc"
(let ((system ,(or (%current-target-system)
(%current-system))))
(cond
((string-prefix? "x86_64" system)
"all")
((or (string-prefix? "armhf" system)
(string-prefix? "aarch64" system))
"arm_neon=1")
(_ "sse2only=1"))))
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(man (string-append out "/share/man/man1")))
(install-file "minimap2" bin)
(mkdir-p man)
(install-file "minimap2.1" man))
#t)))))
(inputs
`(("zlib" ,zlib)))
(home-page "https://lh3.github.io/minimap2/")
(synopsis "Pairwise aligner for genomic and spliced nucleotide sequences")
(description "Minimap2 is a versatile sequence alignment program that
aligns DNA or mRNA sequences against a large reference database. Typical use
cases include:
@enumerate
@item mapping PacBio or Oxford Nanopore genomic reads to the human genome;
@item finding overlaps between long reads with error rate up to ~15%;
@item splice-aware alignment of PacBio Iso-Seq or Nanopore cDNA or Direct RNA
reads against a reference genome;
@item aligning Illumina single- or paired-end reads;
@item assembly-to-assembly alignment;
@item full-genome alignment between two closely related species with
divergence below ~15%.
@end enumerate\n")
(license license:expat)))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
@ -61,7 +61,8 @@
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26))
#:use-module (srfi srfi-26)
#:use-module (ice-9 regex))
(define unifont
;; GNU Unifont, <http://gnu.org/s/unifont>.
@ -144,6 +145,22 @@
("texinfo" ,texinfo)
("help2man" ,help2man)
;; XXX: When building GRUB 2.02 on 32-bit x86, we need a binutils
;; capable of assembling 64-bit instructions. However, our default
;; binutils on 32-bit x86 is not 64-bit capable.
,@(if (string-match "^i[3456]86-" (%current-system))
(let ((binutils (package/inherit
binutils
(name "binutils-i386")
(arguments
(substitute-keyword-arguments (package-arguments binutils)
((#:configure-flags flags ''())
`(cons "--enable-64-bit-bfd" ,flags)))))))
`(("ld-wrapper" ,(make-ld-wrapper "ld-wrapper-i386"
#:binutils binutils))
("binutils" ,binutils)))
'())
;; Dependencies for the test suite. The "real" QEMU is needed here,
;; because several targets are used.
("parted" ,parted)
@ -439,7 +456,7 @@ def test_ctrl_c"))
also initializes the boards (RAM etc). This package provides its
board-independent tools.")))
(define (make-u-boot-package board triplet)
(define-public (make-u-boot-package board triplet)
"Returns a u-boot package for BOARD cross-compiled for TRIPLET."
(let ((same-arch? (if (string-prefix? (%current-system)
(gnu-triplet->nix-system triplet))

View File

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

View File

@ -2111,7 +2111,7 @@ single-member files which can't be decompressed in parallel.")
(define-public innoextract
(package
(name "innoextract")
(version "1.6")
(version "1.7")
(source
(origin
(method url-fetch)
@ -2119,7 +2119,7 @@ single-member files which can't be decompressed in parallel.")
version ".tar.gz"))
(sha256
(base32
"08sp5vbfjvq1irhhraqkn5m2x1z209r4axhx7laf1adcw30ccapi"))
"0khwi9f0q0h6xfbixrrc1rfpgj0b7ajwilq7yhmxnn5lpc807f6x"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system)
(arguments
@ -2209,7 +2209,8 @@ decompression is a little bit slower.")
version "/" name "-" version "-src.tar.xz"))
(sha256
(base32
"08anybdliqsbsl6x835iwzljahnm9i7v26icdjkcv33xmk6p5vw1"))))
"08anybdliqsbsl6x835iwzljahnm9i7v26icdjkcv33xmk6p5vw1"))
(patches (search-patches "upx-fix-CVE-2017-15056.patch"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl)
("ucl" ,ucl)))
@ -2241,6 +2242,11 @@ decompression is a little bit slower.")
#t))
)))
(home-page "https://upx.github.io/")
;; CVE-2017-16869 is about Mach-O files which is not of a big concern for Guix.
;; See https://github.com/upx/upx/issues/146 and
;; https://nvd.nist.gov/vuln/detail?vulnId=CVE-2017-16869.
;; The issue will be fixed after version 3.94.
(properties `((lint-hidden-cve . ("CVE-2017-16869"))))
(synopsis "Compression tool for executables")
(description
"The Ultimate Packer for eXecutables (UPX) is an executable file

View File

@ -30,6 +30,7 @@
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system r)
#:use-module (gnu packages compression)
#:use-module (gnu packages gcc)
#:use-module (gnu packages machine-learning)
#:use-module (gnu packages maths)
@ -556,14 +557,14 @@ ellipses, circles, cylinders, arrows, ...")
(define-public r-globaloptions
(package
(name "r-globaloptions")
(version "0.0.13")
(version "0.1.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "GlobalOptions" version))
(sha256
(base32
"04jvha0mafslqz5nr99xjylg9n2x31gj9v4mgyg7qcmfwpqyw3ch"))))
"1wlyqz1yhmhjwslrd7q69jbd9vsbjkjfc01g60kl3cdpyr8hlyjn"))))
(properties `((upstream-name . "GlobalOptions")))
(build-system r-build-system)
(home-page "https://github.com/jokergoo/GlobalOptions")
@ -576,14 +577,14 @@ validation and filtering on the values, making options invisible or private.")
(define-public r-circlize
(package
(name "r-circlize")
(version "0.4.3")
(version "0.4.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "circlize" version))
(sha256
(base32
"0pg947gkryygikfbv6admx8gsg02b6g219j6a1sdnqij2908yxna"))))
"1l28maiqi549z191srncxgabx5fnvf0lld7smzwfd3vr5cx8nqww"))))
(build-system r-build-system)
(propagated-inputs
`(("r-colorspace" ,r-colorspace)
@ -681,14 +682,14 @@ compare different dendrograms to one another.")
(define-public r-getoptlong
(package
(name "r-getoptlong")
(version "0.1.6")
(version "0.1.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "GetoptLong" version))
(sha256
(base32
"1d98gcvlvp9nz5lbnzr0kkpc2hbkx74hlhrnybqhg1gdwc3g09pm"))))
"1fl3w2n602ldybc5qj7qw4xmzzb804bsjkqwf6dswzj0vf0qiadr"))))
(properties `((upstream-name . "GetoptLong")))
(build-system r-build-system)
(inputs
@ -896,14 +897,14 @@ most popular ones.")
(define-public r-sp
(package
(name "r-sp")
(version "1.2-7")
(version "1.3-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "sp" version))
(sha256
(base32
"0q04yfgyjannsrzl0ppwcv0simrxrrbx2iz5mzaafc5x38zf0q3d"))))
"17xm1ig80p9wc860hm3bgishz6lj9fxgwqidj7rkbk4ap99qp62p"))))
(build-system r-build-system)
(propagated-inputs
`(("r-lattice" ,r-lattice)))
@ -1009,14 +1010,14 @@ SpatialVx.")
(define-public r-extremes
(package
(name "r-extremes")
(version "2.0-8")
(version "2.0-9")
(source
(origin
(method url-fetch)
(uri (cran-uri "extRemes" version))
(sha256
(base32
"0pnpib3g2r9x8hfqhvq23j8m3jh62lp28ipnqir5yadnzv850gfm"))))
"0cpvcajk9xyy7662nqkyx333vrxpwsc5nmv0bfnhsbgijz5y0hvm"))))
(properties `((upstream-name . "extRemes")))
(build-system r-build-system)
(propagated-inputs
@ -1595,14 +1596,14 @@ Core algorithms are executed in parallel on systems supporting OpenMP.")
(define-public r-rcpproll
(package
(name "r-rcpproll")
(version "0.2.2")
(version "0.3.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "RcppRoll" version))
(sha256
(base32
"19xzvxym8zbighndygkq4imfwc0abh4hqyq3qrr8aakyd096iisi"))))
"0srzfhzkk42kzrdjnhbb37946jp1p688rgysy6k3i2is8jb21zyb"))))
(properties `((upstream-name . "RcppRoll")))
(build-system r-build-system)
(propagated-inputs
@ -1822,14 +1823,14 @@ color labels, layout, etc.")
(define-public r-stringdist
(package
(name "r-stringdist")
(version "0.9.4.7")
(version "0.9.5.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "stringdist" version))
(sha256
(base32
"1qg80wmcrpkba9njvgjdg15bgw7ddks40kkfh5x61as9lhchy4i4"))))
"0gap1g9xwhp0zxqsznkc2carpvi80z03prr4q8m528684lznx2xa"))))
(build-system r-build-system)
(home-page "https://github.com/markvanderloo/stringdist")
(synopsis "Approximate string matching and string distance functions")
@ -2718,17 +2719,19 @@ supports arbitrary vertex/edge/graph attributes.")
(define-public r-statnet-common
(package
(name "r-statnet-common")
(version "4.0.0")
(version "4.1.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "statnet.common" version))
(sha256
(base32
"0yw6l5b4qv0jqlg4zyczas7m12a5pyqghs6ydxy2f6v6vxkijvi0"))))
"0h3g687214rlycca0fjrpy1lqbqsrginxqhmhl2mb2jinqqxcfgd"))))
(properties
`((upstream-name . "statnet.common")))
(build-system r-build-system)
(propagated-inputs
`(("r-coda" ,r-coda)))
(home-page "https://statnet.org")
(synopsis "R scripts and utilities used by the Statnet software")
(description "This package provides non-statistical utilities used by the
@ -2971,14 +2974,14 @@ Cryer and Kung-Sik Chan.")
(define-public r-extradistr
(package
(name "r-extradistr")
(version "1.8.8")
(version "1.8.9")
(source
(origin
(method url-fetch)
(uri (cran-uri "extraDistr" version))
(sha256
(base32
"0ywn4qwnamv36l1hw27l9y5kh3v6ha5781wsv2bz6szqjgg7kdb3"))))
"1fg8vjpal33y51iqzglk1yvy46d7js0l0wfbdy698lq8a06hq19p"))))
(properties `((upstream-name . "extraDistr")))
(build-system r-build-system)
(propagated-inputs
@ -3041,14 +3044,14 @@ applied econometric analysis.")
(define-public r-cubature
(package
(name "r-cubature")
(version "1.3-11")
(version "1.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "cubature" version))
(sha256
(base32
"06f6gsvbb732p80r6hxvzh4ik546icxfvx21dyh65ypmw3kgm64k"))))
"1hd23b8v2kpqp5gr0va8p2q7j8w9rik6ks7zrr4b8mb2mwrakk74"))))
(build-system r-build-system)
(propagated-inputs
`(("r-rcpp" ,r-rcpp)))
@ -3324,14 +3327,14 @@ environment within Shiny.")
(define-public r-radiant-data
(package
(name "r-radiant-data")
(version "0.8.1")
(version "0.9.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "radiant.data" version))
(sha256
(base32
"1ylina1jlrmvjkj8pwg0ip5jv1038vnzyckmf542xl7g11x8rvw1"))
"0mbxfqn79nphii4hb6kxl2wc0w0ra16y378rp2yw9a9926zdb7mb"))
(modules '((guix build utils)))
(snippet
'(begin
@ -3347,6 +3350,7 @@ environment within Shiny.")
("r-curl" ,r-curl)
("r-dplyr" ,r-dplyr)
("r-dt" ,r-dt)
("r-glue" ,r-glue)
("r-ggplot2" ,r-ggplot2)
("r-gridextra" ,r-gridextra)
("r-import" ,r-import)
@ -3355,16 +3359,19 @@ environment within Shiny.")
("r-lubridate" ,r-lubridate)
("r-magrittr" ,r-magrittr)
("r-markdown" ,r-markdown)
("r-pryr" ,r-pryr)
("r-plotly" ,r-plotly)
("r-psych" ,r-psych)
("r-readr" ,r-readr)
("r-readxl" ,r-readxl)
("r-rlang" ,r-rlang)
("r-rmarkdown" ,r-rmarkdown)
("r-rstudioapi" ,r-rstudioapi)
("r-scales" ,r-scales)
("r-shiny" ,r-shiny)
("r-shinyace" ,r-shinyace)
("r-tibble" ,r-tibble)
("r-tidyr" ,r-tidyr)))
("r-tidyr" ,r-tidyr)
("r-writexl" ,r-writexl)))
(home-page "https://github.com/radiant-rstats/radiant.data")
(synopsis "Data menu for Radiant: business analytics using R and Shiny")
(description
@ -3915,14 +3922,14 @@ exchanging spatial objects with other R packages.")
(define-public r-later
(package
(name "r-later")
(version "0.7.2")
(version "0.7.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "later" version))
(sha256
(base32
"0l5ln7sjyi2rj7bx8iamxykqlfarv05zb9882ikizppb1cr1hgyw"))))
"04j2phymxgkk4hv9pfa5w3s98w5d7fvm11blrdhxmray4n618msw"))))
(build-system r-build-system)
(propagated-inputs
`(("r-bh" ,r-bh)
@ -4125,14 +4132,14 @@ obtain a better initial configuration in non-metric MDS.")
(define-public r-reticulate
(package
(name "r-reticulate")
(version "1.7")
(version "1.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "reticulate" version))
(sha256
(base32
"1ghhc4hbmwpp79ilbdbshynhs61i8sv8z6p1al04jy7ij0lcglxy"))))
"0zwb4ikf021nw7axdn7qlr6bq4xkph3anfy314idkspy1iil4nmr"))))
(build-system r-build-system)
(inputs `(("python" ,python)))
(propagated-inputs
@ -4190,3 +4197,267 @@ generating multiple logo plots, and aiding the visualisation with annotations.
Sequence logos can easily be combined with other ggplot2 plots.")
;; Unspecified version of the LGPL.
(license license:lgpl3+)))
(define-public r-ggsci
(package
(name "r-ggsci")
(version "2.9")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggsci" version))
(sha256
(base32
"0g73x6grbka7ahjh6z23m3wrcifp5rdfdiasbl8lq4sp6rplxwaa"))))
(build-system r-build-system)
(propagated-inputs
`(("r-ggplot2" ,r-ggplot2)
("r-scales" ,r-scales)))
(home-page "https://nanx.me/ggsci/")
(synopsis "Scientific journal and sci-fi themed color palettes for ggplot2")
(description
"This package provides a collection of ggplot2 color palettes inspired by
plots in scientific journals, data visualization libraries, science fiction
movies, and TV shows.")
(license license:gpl3)))
(define-public r-ggsignif
(package
(name "r-ggsignif")
(version "0.4.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggsignif" version))
(sha256
(base32
"1rn58d7pb3axk6chiihryykrzw76adaa2yiafq4d0j6qbhax78f7"))))
(build-system r-build-system)
(propagated-inputs
`(("r-ggplot2" ,r-ggplot2)))
(home-page "https://github.com/const-ae/ggsignif")
(synopsis "Significance brackets for ggplot2")
(description
"Enrich your ggplots with group-wise comparisons. This package provides
an easy way to indicate if two groups are significantly different. Commonly
this is shown by a bracket on top connecting the groups of interest which
itself is annotated with the level of significance. The package provides a
single layer that takes the groups for comparison and the test as arguments
and adds the annotation to the plot.")
(license license:gpl3)))
(define-public r-ggpubr
(package
(name "r-ggpubr")
(version "0.1.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggpubr" version))
(sha256
(base32
"0mvw215bj887958p34f0dzlrb8mgyfcz9b5zvsschvbhamqinqna"))))
(build-system r-build-system)
(propagated-inputs
`(("r-cowplot" ,r-cowplot)
("r-dplyr" ,r-dplyr)
("r-ggplot2" ,r-ggplot2)
("r-ggrepel" ,r-ggrepel)
("r-ggsci" ,r-ggsci)
("r-ggsignif" ,r-ggsignif)
("r-gridextra" ,r-gridextra)
("r-magrittr" ,r-magrittr)
("r-purrr" ,r-purrr)
("r-scales" ,r-scales)
("r-tidyr" ,r-tidyr)))
(home-page "http://www.sthda.com/english/rpkgs/ggpubr")
(synopsis "ggplot2-based publication-ready plots")
(description
"The ggplot2 package is an excellent and flexible package for elegant
data visualization in R. However the default generated plots require some
formatting before we can send them for publication. The ggpubr package
provides some easy-to-use functions for creating and customizing ggplot2-based
publication-ready plots.")
(license license:gpl2)))
(define-public r-ellipse
(package
(name "r-ellipse")
(version "0.4.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "ellipse" version))
(sha256
(base32
"0g82vc51m3c1k0hnpp2zla6amxxgk2mmkl8ssnsc49jv3599r6hs"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/ellipse/")
(synopsis "Functions for drawing ellipses and ellipse-like confidence regions")
(description
"This package contains various routines for drawing ellipses and
ellipse-like confidence regions, implementing the plots described in Murdoch
and Chow (1996), A graphical display of large correlation matrices, The
American Statistician 50, 178-180. There are also routines implementing the
profile plots described in Bates and Watts (1988), Nonlinear Regression
Analysis and its Applications.")
(license license:gpl2+)))
(define-public r-flashclust
(package
(name "r-flashclust")
(version "1.01-2")
(source
(origin
(method url-fetch)
(uri (cran-uri "flashClust" version))
(sha256
(base32
"0l4lpz451ll7f7lfxmb7ds24ppzhfg1c3ypvydglcc35p2dq99s8"))))
(properties `((upstream-name . "flashClust")))
(build-system r-build-system)
(native-inputs `(("gfortran" ,gfortran)))
(home-page "https://cran.r-project.org/web/packages/flashClust/")
(synopsis "Implementation of optimal hierarchical clustering")
(description
"This package provides a fast implementation of hierarchical
clustering.")
(license license:gpl2+)))
(define-public r-factominer
(package
(name "r-factominer")
(version "1.41")
(source
(origin
(method url-fetch)
(uri (cran-uri "FactoMineR" version))
(sha256
(base32
"1h20hydav6l2b7bngqw1av4l5rrh0wk58nhailga1f4qw9lrv259"))))
(properties `((upstream-name . "FactoMineR")))
(build-system r-build-system)
(propagated-inputs
`(("r-car" ,r-car)
("r-cluster" ,r-cluster)
("r-ellipse" ,r-ellipse)
("r-flashclust" ,r-flashclust)
("r-lattice" ,r-lattice)
("r-leaps" ,r-leaps)
("r-mass" ,r-mass)
("r-scatterplot3d" ,r-scatterplot3d)))
(home-page "http://factominer.free.fr")
(synopsis "Multivariate exploratory data analysis and data mining")
(description
"This package provides exploratory data analysis methods to summarize,
visualize and describe datasets. The main principal component methods are
available, those with the largest potential in terms of applications:
principal component analysis (PCA) when variables are quantitative,
correspondence analysis (CA) and multiple correspondence analysis (MCA) when
variables are categorical, Multiple Factor Analysis when variables are
structured in groups, etc. and hierarchical cluster analysis.")
(license license:gpl2+)))
(define-public r-factoextra
(package
(name "r-factoextra")
(version "1.0.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "factoextra" version))
(sha256
(base32
"1l6m8k7qhdw8ndar8nhmym0lfyd1i2iszl1cicjax0vq23ss6xw1"))))
(build-system r-build-system)
(propagated-inputs
`(("r-abind" ,r-abind)
("r-cluster" ,r-cluster)
("r-dendextend" ,r-dendextend)
("r-factominer" ,r-factominer)
("r-ggplot2" ,r-ggplot2)
("r-ggpubr" ,r-ggpubr)
("r-ggrepel" ,r-ggrepel)
("r-reshape2" ,r-reshape2)
("r-tidyr" ,r-tidyr)))
(home-page "http://www.sthda.com/english/rpkgs/factoextra")
(synopsis "Extract and visualize the results of multivariate data analyses")
(description
"This package provides some easy-to-use functions to extract and
visualize the output of multivariate data analyses, including
@code{PCA} (Principal Component Analysis), @code{CA} (Correspondence
Analysis), @code{MCA} (Multiple Correspondence Analysis), @code{FAMD} (Factor
Analysis of Mixed Data), @code{MFA} (Multiple Factor Analysis) and
@code{HMFA} (Hierarchical Multiple Factor Analysis) functions from different R
packages. It contains also functions for simplifying some clustering analysis
steps and provides ggplot2-based elegant data visualization.")
(license license:gpl2)))
(define-public r-nbclust
(package
(name "r-nbclust")
(version "3.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "NbClust" version))
(sha256
(base32
"1vwb48zy6ln1ddpqmfngii1i80n8qmqyxnzdp6gbaq96lakl3w3c"))))
(properties `((upstream-name . "NbClust")))
(build-system r-build-system)
(home-page "https://sites.google.com/site/malikacharrad/research/nbclust-package")
(synopsis "Determine the best number of clusters in a data set")
(description
"NbClust provides 30 indexes for determining the optimal number of
clusters in a data set and offers the best clustering scheme from different
results to the user.")
(license license:gpl2)))
(define-public r-hdf5r
(package
(name "r-hdf5r")
(version "1.0.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "hdf5r" version))
(sha256
(base32
"1s6p4cj909kc635fh5xpl87bqlcdj3dn3r1wk5g40abimk2b0pva"))))
(build-system r-build-system)
(inputs
`(("hdf5" ,hdf5)
("zlib" ,zlib)))
(propagated-inputs
`(("r-bit64" ,r-bit64)
("r-r6" ,r-r6)))
(home-page "https://hhoeflin.github.io/hdf5r")
(synopsis "Interface to the HDF5 binary data format")
(description
"HDF5 is a data model, library and file format for storing and managing
large amounts of data. This package provides a nearly feature complete,
object oriented wrapper for the HDF5 API using R6 classes. Additionally,
functionality is added so that HDF5 objects behave very similar to their
corresponding R counterparts.")
(license license:asl2.0)))
(define-public r-writexl
(package
(name "r-writexl")
(version "1.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "writexl" version))
(sha256
(base32
"0r2v12dc4zqmr1agp6vbw0fc48i278018684x84psjjqfmnv14cf"))))
(build-system r-build-system)
(inputs `(("zlib" ,zlib)))
(home-page "https://github.com/ropensci/writexl")
(synopsis "Export data frames to xlsx format")
(description
"This package provides a data frame to xlsx exporter based on
libxlsxwriter.")
(license license:bsd-2)))

View File

@ -32,6 +32,7 @@
#:use-module (gnu packages attr)
#:use-module (gnu packages autotools)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cryptsetup)
#:use-module (gnu packages databases)
@ -217,7 +218,7 @@ communication.")
(define-public encfs
(package
(name "encfs")
(version "1.9.1")
(version "1.9.5")
(source
(origin
(method url-fetch)
@ -226,13 +227,13 @@ communication.")
version "/encfs-" version ".tar.gz"))
(sha256
(base32
"1906254dg5hwljh0h4gyrw09ms3b57dlhjfzhfzffv50yzpkl837"))
"0qzxavvv20577bxvly8s7d3y7bqasqclc2mllp0ddfncjm9z02a7"))
(modules '((guix build utils)))
;; Remove bundled dependencies in favour of proper inputs.
(snippet '(begin
(for-each delete-file-recursively
(find-files "internal" "^tinyxml2-[0-9]"
#:directories? #t))
'("vendor/github.com/leethomason/tinyxml2"
"vendor/github.com/google/googletest"))
#t))))
(build-system cmake-build-system)
(native-inputs
@ -240,6 +241,7 @@ communication.")
;; Test dependencies.
("expect" ,expect)
("googletest-source" ,(package-source googletest))
("perl" ,perl)))
(inputs
`(("attr" ,attr)
@ -247,7 +249,18 @@ communication.")
("openssl" ,openssl)
("tinyxml2" ,tinyxml2)))
(arguments
`(#:configure-flags (list "-DUSE_INTERNAL_TINYXML=OFF")))
`(#:configure-flags (list "-DUSE_INTERNAL_TINYXML=OFF")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'unpack-googletest
(lambda* (#:key inputs #:allow-other-keys)
(mkdir-p "vendor/github.com/google/googletest")
(invoke "tar" "xvf" (assoc-ref inputs "googletest-source")
"-C" "vendor/github.com/google/googletest"
"--strip-components=1")))
(add-before 'check 'make-unittests
(lambda _
(invoke "make" "unittests"))))))
(home-page "https://vgough.github.io/encfs")
(synopsis "Encrypted virtual file system")
(description
@ -713,14 +726,14 @@ SHA256, SHA512, SHA3, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R
(define-public botan
(package
(name "botan")
(version "2.5.0")
(version "2.6.0")
(source (origin
(method url-fetch)
(uri (string-append "https://botan.randombit.net/releases/"
"Botan-" version ".tgz"))
(sha256
(base32
"06zvwknhwfrkdvq2sybqbqhnd2d4nq2cszlnsddql13z7vh1z8xq"))))
"1iawmymmnp5j2mcjj70slivn6bgg8gbpppldc1rjqw5sbdan3wn1"))))
(build-system gnu-build-system)
(arguments
'(#:phases

View File

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

View File

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

View File

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

View File

@ -40,15 +40,7 @@
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0acnxfwvkx1m1d0h5z051mz95n35zm468hcvc3wpmn17c15h5ihg"))
;; FIXME: 27 tests (out of 4K) had to be disabled as
;; they fail in the build environment. Common failures
;; are:
;; - Mix.Shell.cmd() fails with error 130
;; - The git_repo fixture cannot be found
;; - Communication with spawned processes fails with EPIPE
;; - Failure to copy files
(patches (search-patches "elixir-disable-failing-tests.patch"))))
"0acnxfwvkx1m1d0h5z051mz95n35zm468hcvc3wpmn17c15h5ihg"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
@ -70,27 +62,6 @@
(("#!/usr/bin/env elixir")
(string-append "#!" out "/bin/elixir"))))
#t))
(add-after 'unpack 'fix-or-disable-tests
(lambda* (#:key inputs #:allow-other-keys)
;; Some tests require access to a home directory.
(setenv "HOME" "/tmp")
;; FIXME: These tests fail because the "git_repo" fixture does
;; not exist or cannot be found.
(delete-file "lib/mix/test/mix/tasks/deps.git_test.exs")
;; FIXME: Mix.Shell.cmd() always fails with error code 130.
(delete-file "lib/mix/test/mix/shell_test.exs")
;; FIXME:
;; disabled failing impure tests to make it build again.
;; related discussion: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28034#14
(delete-file "lib/elixir/test/elixir/kernel/cli_test.exs")
(delete-file "lib/elixir/test/elixir/kernel/dialyzer_test.exs")
(delete-file "lib/iex/test/iex/helpers_test.exs")
(delete-file "lib/ex_unit/test/ex_unit/capture_io_test.exs")
#t))
(add-before 'build 'make-current
;; The Elixir compiler checks whether or not to compile files by
;; inspecting their timestamps. When the timestamp is equal to the
@ -102,6 +73,11 @@
(utime file recent recent 0 0)))
(find-files "." ".*"))
#t))
(add-before 'check 'set-home
(lambda* (#:key inputs #:allow-other-keys)
;; Some tests require access to a home directory.
(setenv "HOME" "/tmp")
#t))
(delete 'configure))))
(inputs
`(("erlang" ,erlang)

View File

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

View File

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

View File

@ -89,6 +89,7 @@
(guix build gnu-build-system))
#:phases
(modify-phases %standard-phases
(delete 'bootstrap)
;; The are several code fragments that embed timestamps into the
;; output. Here, we alter those fragments to use the value of
;; SOURCE_DATE_EPOCH instead.
@ -127,6 +128,29 @@
(date->string source-date-epoch
"{H,Mi,S} = {~H,~M,~S},")))
#t)))
(add-after 'unpack 'patch-/bin/sh
(lambda _
(substitute* "erts/etc/unix/run_erl.c"
(("sh = \"/bin/sh\";")
(string-append "sh = \""
(which "sh")
"\";")))
(substitute* "erts/emulator/sys/unix/sys_drivers.c"
(("SHELL \"/bin/sh\"")
(string-append "SHELL \""
(which "sh")
"\"")))
(substitute* "erts/emulator/sys/unix/erl_child_setup.c"
(("SHELL \"/bin/sh\"")
(string-append "SHELL \""
(which "sh")
"\"")))
(substitute* "lib/kernel/src/os.erl"
(("/bin/sh") (which "sh")))
#t))
(add-after 'patch-source-shebangs 'patch-source-env
(lambda _
(let ((escripts

View File

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

View File

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

View File

@ -1822,7 +1822,7 @@ falling, themeable graphics and sounds, and replays.")
(define-public wesnoth
(package
(name "wesnoth")
(version "1.14.1")
(version "1.14.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/wesnoth/wesnoth-"
@ -1831,7 +1831,7 @@ falling, themeable graphics and sounds, and replays.")
name "-" version ".tar.bz2"))
(sha256
(base32
"1mzrnbv71b4s41c5x8clhb53l8lidiwzny1hl828228pvys5bxkb"))))
"06648041nr77sgzr7jpmcn37cma3hp41qynp50xzddx28l17zwg9"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no check target
@ -2229,6 +2229,88 @@ Transport Tycoon Deluxe.")
("opensfx" ,openttd-opensfx)
,@(package-native-inputs openttd-engine)))))
(define openrct2-title-sequences
(package
(name "openrct2-title-sequences")
(version "0.1.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/OpenRCT2/title-sequences/releases/download/v"
version "/title-sequence-v" version ".zip"))
(file-name (string-append name "-" version ".zip"))
(sha256
(base32
"0qbyxrsw8hlgaq0r5d7lx7an3idy4qbfv7yiw9byhldk763n9cfw"))))
(build-system trivial-build-system)
(native-inputs
`(("bash" ,bash)
("coreutils" ,coreutils)
("unzip" ,unzip)))
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let* ((out (assoc-ref %outputs "out"))
(openrct2-title-sequences (string-append out
"/share/openrct2/title-sequences"))
(source (assoc-ref %build-inputs "source"))
(unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip")))
(copy-file source (string-append ,name "-" ,version ".zip"))
(invoke unzip (string-append ,name "-" ,version ".zip"))
(delete-file (string-append ,name "-" ,version ".zip"))
(mkdir-p openrct2-title-sequences)
(copy-recursively "."
openrct2-title-sequences)
#t))))
(home-page "https://github.com/OpenRCT2/OpenRCT2")
(synopsis "Title sequences for OpenRCT2")
(description
"openrct2-title-sequences is a set of title sequences for OpenRCT2.")
(license license:gpl3+)))
(define openrct2-objects
(package
(name "openrct2-objects")
(version "1.0.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/OpenRCT2/objects/releases/download/v"
version "/objects.zip"))
(file-name (string-append name "-" version ".zip"))
(sha256
(base32
"1z92afhbv13j1ig6fz0x8w9vdmfchssv16vwwhb0vj40pn1g1rwy"))))
(build-system trivial-build-system)
(native-inputs
`(("bash" ,bash)
("coreutils" ,coreutils)
("unzip" ,unzip)))
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let* ((out (assoc-ref %outputs "out"))
(openrct2-objects (string-append out
"/share/openrct2/objects"))
(source (assoc-ref %build-inputs "source"))
(unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip")))
(copy-file source (string-append ,name "-" ,version ".zip"))
(invoke unzip (string-append ,name "-" ,version ".zip"))
(delete-file (string-append ,name "-" ,version ".zip"))
(mkdir-p openrct2-objects)
(copy-recursively "."
openrct2-objects)
#t))))
(home-page "https://github.com/OpenRCT2/OpenRCT2")
(synopsis "Objects for OpenRCT2")
(description
"openrct2-objects is a set of objects for OpenRCT2.")
(license license:gpl3+)))
(define-public openrct2
(package
(name "openrct2")
@ -2244,35 +2326,39 @@ Transport Tycoon Deluxe.")
(file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;; no tests available
`(#:configure-flags '("-DDOWNLOAD_TITLE_SEQUENCES=OFF")
#:tests? #f ; Tests require network.
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-usr-share-paths
(lambda* (#:key make-flags outputs #:allow-other-keys)
(add-after 'unpack 'fix-usr-share-paths&add-data
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((titles (assoc-ref inputs "openrct2-title-sequences"))
(objects (assoc-ref inputs "openrct2-objects")))
;; Fix some references to /usr/share.
;; Change to Platform.Linux.cpp on 0.1.2+
(substitute* "src/openrct2/platform/linux.c"
(("/usr/share")
(string-append (assoc-ref %outputs "out") "/share")))))
(add-after 'build 'fix-cmake-install-file
(lambda _
;; The build system tries to download a file and compare hashes.
;; Since we have no network, remove this so the install doesn't fail.
(substitute* "cmake_install.cmake"
(("EXPECTED_HASH SHA1=b587d83de508d0b104d14c599b76f8565900fce0")
"")))))))
(string-append (assoc-ref %outputs "out") "/share")))
(copy-recursively (string-append titles
"/share/openrct2/title-sequences") "data/title")
(copy-recursively (string-append objects
"/share/openrct2/objects") "data/object")))))))
(inputs `(("curl" ,curl)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("icu4c" ,icu4c)
("jansson" ,jansson)
("libpng" ,libpng)
("libzip" ,libzip)
("mesa" ,mesa)
("openrct2-objects" ,openrct2-objects)
("openrct2-title-sequences" ,openrct2-title-sequences)
("openssl" ,openssl)
("sdl2" ,sdl2)
("speexdsp" ,speexdsp)
("zlib" ,zlib)))
(native-inputs
`(("pkg-config" ,pkg-config)))
`(("pkg-config" ,pkg-config)))
(home-page "https://github.com/OpenRCT2/OpenRCT2")
(synopsis "Free software re-implementation of RollerCoaster Tycoon 2")
(description "OpenRCT2 is a free software re-implementation of
@ -3166,53 +3252,6 @@ application that locks the keyboard and mouse and instead displays bright
colors, pictures, and sounds.")
(license license:gpl3+)))
(define-public mrrescue
(package
(name "mrrescue")
(version "1.02e")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/SimonLarsen/mrrescue/releases/"
"download/" version "/" name version ".love"))
(file-name (string-append name "-" version ".love"))
(sha256
(base32
"0jwzbwkgp1l5ia6c7s760gmdirbsncp6nfqp7vqdqsfb63la9gl2"))))
(build-system trivial-build-system)
(arguments
'(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let* ((out (assoc-ref %outputs "out"))
(bindir (string-append out "/bin"))
(prog (string-append bindir "/mrrescue"))
(source (assoc-ref %build-inputs "source"))
(bash (string-append (assoc-ref %build-inputs "bash")
"/bin/bash"))
(love (string-append (assoc-ref %build-inputs "love")
"/bin/love")))
(mkdir-p bindir)
(with-output-to-file prog
(lambda ()
(format #t "#!~a~%" bash)
(format #t "exec -a mrrescue \"~a\" \"~a\"~%" love source)))
(chmod prog #o755)
#t))))
(inputs
`(("bash" ,bash)
("love" ,love)))
(home-page "http://tangramgames.dk/games/mrrescue")
(synopsis "Arcade-style fire fighting game")
(description
"Mr. Rescue is an arcade styled 2d action game centered around evacuating
civilians from burning buildings. The game features fast paced fire
extinguishing action, intense boss battles, a catchy soundtrack and lots of
throwing people around in pseudo-randomly generated buildings.")
(license (list license:zlib ; for source code
license:cc-by-sa3.0)))) ; for graphics and music assets
(define-public hyperrogue
(package
(name "hyperrogue")
@ -4481,7 +4520,7 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
(package
(inherit quakespasm)
(name "vkquake")
(version "0.97.3")
(version "1.00.0")
(source
(origin
(method url-fetch)
@ -4490,7 +4529,7 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1p0nh2v2ilylw62fxc5qpfcmyhs0s64w8sgh036nc6kn21kbjc0d"))))
"0bviv18jvp41jvrabgl7l5kq4n1p6p3rywij481yswawdw6l5idh"))))
(arguments
`(#:make-flags
(let ((vulkanlib (string-append (assoc-ref %build-inputs

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1786,7 +1786,7 @@ is no support for parsing block and inline level HTML.")
(define-public guile-bytestructures
(package
(name "guile-bytestructures")
(version "1.0.1")
(version "1.0.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/TaylanUB/scheme-bytestructures"
@ -1794,7 +1794,7 @@ is no support for parsing block and inline level HTML.")
"/bytestructures-" version ".tar.gz"))
(sha256
(base32
"1lnfcy65mqj823lamy2n2vaghdz0g7mj011bgnhmd6hwpnaidnh2"))))
"0xf6s8gd3656j8k2ar6y7i62r68azawyzxhsagsk8nvldnrs1r18"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@ -2002,20 +2002,6 @@ is not available for Guile 2.0.")
"0z1dvn0scx59pbgjkpacam7p5n7630z4qm8fazim7ixq9xv3s8wx"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
;; FIXME: On i686, bytestructures miscalculates the offset
;; of the 'old-file' and 'new-file' fields within the
;; '%diff-delta' structure. See
;; <https://github.com/TaylanUB/scheme-bytestructures/issues/30>.
,@(if (string=? (%current-system) "x86_64-linux")
'()
'((add-before 'check 'skip-tests
(lambda _
(substitute* "Makefile"
(("tests/status\\.scm")
""))
#t)))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)

View File

@ -3304,6 +3304,39 @@ Compiler component.")))
This component decrypts a string passed to it.")
(license license:asl2.0)))
(define-public java-plexus-cli
(package
(name "java-plexus-cli")
(version "1.7")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sonatype/plexus-cli")
(commit "a776afa6bca84e5107bedb69440329cdb24ed645")))
(file-name (string-append name "-" version))
(sha256
(base32
"0xjrlay605rypv3zd7y24vlwf0039bil3n2cqw54r1ddpysq46vx"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "plexus-cli.jar"
#:source-dir "src/main/java"
#:jdk ,icedtea-8
#:test-dir "src/test"))
(inputs
`(("java-commons-cli" ,java-commons-cli)
("java-plexus-container-default" ,java-plexus-container-default)
("java-plexus-classworlds" ,java-plexus-classworlds)))
(native-inputs
`(("java-plexus-utils" ,java-plexus-utils)
("java-junit" ,java-junit)
("java-guava" ,java-guava)))
(home-page "https://codehaus-plexus.github.io/plexus-cli")
(synopsis "CLI building library for plexus")
(description "This package is a library to help creating CLI around
Plexus components.")
(license license:asl2.0)))
(define-public java-sisu-build-api
(package
(name "java-sisu-build-api")
@ -10195,3 +10228,32 @@ This module can be assimilated to a significantly improved version of log4j.
Moreover, @code{logback-classic} natively implements the slf4j API so that you
can readily switch back and forth between logback and other logging frameworks
such as log4j or @code{java.util.logging} (JUL).")))
(define-public java-qdox
(package
(name "java-qdox")
; Newer version exists, but this version is required by java-plexus-component-metadata
(version "2.0-M2")
(source (origin
(method url-fetch)
;; 2.0-M4, -M5 at https://github.com/paul-hammant/qdox
;; Older releases at https://github.com/codehaus/qdox/
;; Note: The release at maven is pre-generated. The release at
;; github requires jflex.
(uri (string-append "http://central.maven.org/maven2/"
"com/thoughtworks/qdox/qdox/" version
"/qdox-" version "-sources.jar"))
(sha256
(base32
"10xxrcaicq6axszcr2jpygisa4ch4sinyx5q7kqqxv4lknrmxp5x"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "qdox.jar"
#:tests? #f)); no tests
(home-page "http://qdox.codehaus.org/")
(synopsis "Parse definitions from Java source files")
(description "QDox is a high speed, small footprint parser for extracting
class/interface/method definitions from source files complete with JavaDoc
@code{@@tags}. It is designed to be used by active code generators or
documentation tools.")
(license license:asl2.0)))

View File

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

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

View File

@ -47,6 +47,7 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages image)
#:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
#:use-module (gnu packages ocaml)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@ -786,3 +787,78 @@ main intended application of Autograd is gradient-based optimization.")
(define-public python2-autograd
(package-with-python2 python-autograd))
(define-public lightgbm
(package
(name "lightgbm")
(version "2.0.12")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/Microsoft/LightGBM/archive/v"
version ".tar.gz"))
(sha256
(base32
"132zf0yk0545mg72hyzxm102g3hpb6ixx9hnf8zd2k55gas6cjj1"))
(file-name (string-append name "-" version ".tar.gz"))))
(native-inputs
`(("python-pytest" ,python-pytest)
("python-nose" ,python-nose)))
(inputs
`(("openmpi" ,openmpi)))
(propagated-inputs
`(("python-numpy" ,python-numpy)
("python-scipy" ,python-scipy)))
(arguments
`(#:configure-flags
'("-DUSE_MPI=ON")
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key outputs #:allow-other-keys)
(with-directory-excursion ,(string-append "../LightGBM-" version)
(invoke "pytest" "tests/c_api_test/test_.py")))))))
(build-system cmake-build-system)
(home-page "https://github.com/Microsoft/LightGBM")
(synopsis "Gradient boosting framework based on decision tree algorithms")
(description "LightGBM is a gradient boosting framework that uses tree
based learning algorithms. It is designed to be distributed and efficient with
the following advantages:
@itemize
@item Faster training speed and higher efficiency
@item Lower memory usage
@item Better accuracy
@item Parallel and GPU learning supported (not enabled in this package)
@item Capable of handling large-scale data
@end itemize\n")
(license license:expat)))
(define-public vowpal-wabbit
;; Language bindings not included.
(package
(name "vowpal-wabbit")
(version "8.5.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/JohnLangford/vowpal_wabbit/archive/"
version ".tar.gz"))
(sha256
(base32
"0clp2kb7rk5sckhllxjr5a651awf4s8dgzg4659yh4hf5cqnf0gr"))
(file-name (string-append name "-" version ".tar.gz"))))
(inputs
`(("boost" ,boost)
("zlib" ,zlib)))
(arguments
`(#:configure-flags
(list (string-append "--with-boost="
(assoc-ref %build-inputs "boost")))))
(build-system gnu-build-system)
(home-page "https://github.com/JohnLangford/vowpal_wabbit")
(synopsis "Fast machine learning library for online learning")
(description "Vowpal Wabbit is a machine learning system with techniques
such as online, hashing, allreduce, reductions, learning2search, active, and
interactive learning.")
(license license:bsd-3)))

View File

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

View File

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

View File

@ -24,7 +24,54 @@
#:use-module (guix build-system ant)
#:use-module (gnu packages)
#:use-module (gnu packages compression)
#:use-module (gnu packages java))
#:use-module (gnu packages java)
#:use-module (gnu packages web)
#:use-module (gnu packages xml))
(define-public java-plexus-component-metadata
(package
(inherit java-plexus-container-default)
(name "java-plexus-component-metadata")
(arguments
`(#:jar-name "plexus-component-metadata.jar"
#:source-dir "src/main/java"
#:test-dir "src/test"
#:jdk ,icedtea-8
#:phases
(modify-phases %standard-phases
(add-before 'configure 'chdir
(lambda _
(chdir "plexus-component-metadata")
#t))
(add-before 'build 'copy-resources
(lambda _
(copy-recursively "src/main/resources"
"build/classes/")
#t)))))
(inputs
`(("java-plexus-container-default" ,java-plexus-container-default)
("java-plexu-component-annotations" ,java-plexus-component-annotations)
("java-plexus-utils" ,java-plexus-utils)
("java-plexus-cli" ,java-plexus-cli)
("java-plexus-classworlds" ,java-plexus-classworlds)
("maven-plugin-api" ,maven-plugin-api)
("maven-plugin-annotations" ,maven-plugin-annotations)
("maven-core-bootstrap" ,maven-core-bootstrap)
("maven-model" ,maven-model)
("java-commons-cli" ,java-commons-cli)
("java-qdox" ,java-qdox)
("java-jdom2" ,java-jdom2)
("java-asm" ,java-asm)))
(native-inputs
`(("java-junit" ,java-junit)
("java-guava" ,java-guava)
("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)))
(synopsis "Inversion-of-control container for Maven")
(description "The Plexus project provides a full software stack for creating
and executing software projects. Based on the Plexus container, the
applications can utilise component-oriented programming to build modular,
reusable components that can easily be assembled and reused. This package
provides the Maven plugin generating the component metadata.")))
(define-public maven-resolver-api
(package
@ -190,6 +237,89 @@ for repositories using URI-based layouts.")))
("java-hamcrest-core" ,java-hamcrest-core)
("maven-resolver-test-util" ,maven-resolver-test-util)))))
(define-public maven-resolver-transport-wagon
(package
(inherit maven-resolver-api)
(name "maven-resolver-transport-wagon")
(arguments
`(#:jar-name "maven-resolver-transport-wagon.jar"
#:source-dir "maven-resolver-transport-wagon/src/main/java"
#:test-dir "maven-resolver-transport-wagon/src/test"
#:jdk ,icedtea-8
#:phases
(modify-phases %standard-phases
(add-before 'build 'generate-sisu
(lambda _
(mkdir-p "build/classes/META-INF/sisu")
(with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
(lambda _
(display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
#t))
(add-before 'build 'generate-components.xml
(lambda _
(mkdir-p "build/classes/META-INF/plexus")
(with-output-to-file "build/classes/META-INF/plexus/components.xml"
(lambda _
(display
(string-append
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<component-set>
<components>
<component>
<role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>
<role-hint>plexus</role-hint>
<implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>
<description />
<isolated-realm>false</isolated-realm>
<requirements>
<requirement>
<role>org.codehaus.plexus.PlexusContainer</role>
<role-hint />
<field-name>container</field-name>
</requirement>
</requirements>
</component>
<component>
<role>org.eclipse.aether.transport.wagon.WagonProvider</role>
<role-hint>plexus</role-hint>
<implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>
<description />
<isolated-realm>false</isolated-realm>
<requirements>
<requirement>
<role>org.codehaus.plexus.PlexusContainer</role>
<role-hint />
<field-name>container</field-name>
</requirement>
</requirements>
</component>
</components>
</component-set>\n"))))
#t)))))
(inputs
`(("maven-resolver-api" ,maven-resolver-api)
("maven-resolver-spi" ,maven-resolver-spi)
("maven-resolver-util" ,maven-resolver-util)
("java-javax-inject" ,java-javax-inject)
("mavne-wagon-provider-api" ,maven-wagon-provider-api)
("java-plexus-component-annotation" ,java-plexus-component-annotations)
("java-plexus-classworld" ,java-plexus-classworlds)
("java-plexus-plexus-util" ,java-plexus-utils)
("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
(native-inputs
`(("java-junit" ,java-junit)
("java-hamcrest-core" ,java-hamcrest-core)
("maven-resolver-test-util" ,maven-resolver-test-util)
("java-guava" ,java-guava)
("java-cglib" ,java-cglib)
("java-asm" ,java-asm)
("java-aopalliance" ,java-aopalliance)
("java-guice" ,java-guice)))
(synopsis "Transport implementation for Maven")
(description "This package contains a transport implementation based on
Maven Wagon, for use in Maven.")))
(define-public maven-shared-utils
(package
(name "maven-shared-utils")
@ -230,6 +360,317 @@ plexus-utils in Maven. It is not a 100% API compatible replacement but a
replacement with improvements.")
(license license:asl2.0)))
(define-public maven-plugin-annotations
(package
(name "maven-plugin-annotations")
(version "3.5")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.apache.org/dist/maven/"
"plugin-tools/maven-plugin-tools-" version
"-source-release.zip"))
(sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "maven-plugin-annotations.jar"
#:source-dir "maven-plugin-annotations/src/main/java"
#:tests? #f))
(inputs
`(("maven-artifact" ,maven-artifact)))
(native-inputs
`(("unzip" ,unzip)))
(home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
(synopsis "Java 5 annotations to use in Mojos")
(description "This package contains Java 5 annotations for use in Mojos.")
(license license:asl2.0)))
(define-public maven-wagon-provider-api
(package
(name "maven-wagon-provider-api")
(version "3.0.0")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.apache.org/dist/maven/wagon/"
"wagon-" version "-source-release.zip"))
(sha256 (base32 "1qb0q4m7vmf290xp3fnfdi3pwl3hkskia5g3z2v82q1ch3y2knqv"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "maven-wagon-provider-api.jar"
#:source-dir "wagon-provider-api/src/main/java"
#:test-dir "wagon-provider-api/src/test"))
(inputs
`(("java-plexus-utils" ,java-plexus-utils)))
(native-inputs
`(("unzip" ,unzip)
("java-junit" ,java-junit)
("java-easymock" ,java-easymock)))
(home-page "https://maven.apache.org/wagon")
(synopsis "Transport abstraction for Maven")
(description "Maven Wagon is a transport abstraction that is used in Maven's
artifact and repository handling code.")
(license license:asl2.0)))
(define-public maven-wagon-provider-test
(package
(inherit maven-wagon-provider-api)
(name "maven-wagon-provider-test")
(arguments
`(#:jar-name "maven-wagon-provider-test.jar"
#:source-dir "wagon-provider-test/src/main/java"
#:tests? #f; no tests
#:jdk ,icedtea-8))
(inputs
`(("java-plexus-utils" ,java-plexus-utils)
("java-plexus-container-default" ,java-plexus-container-default)
("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
("java-slf4j-api" ,java-slf4j-api)
("java-tomcat" ,java-tomcat)
("maven-wagon-provider-api" ,maven-wagon-provider-api)))
(synopsis "Test classes from maven-wagon")
(description "Maven Wagon is a transport abstraction that is used in Maven's
artifact and repository handling code. This package contains common test
classes used in multiple maven-wagon components.")))
(define-public maven-wagon-file
(package
(inherit maven-wagon-provider-api)
(name "maven-wagon-file")
(arguments
`(#:jar-name "maven-wagon-file.jar"
#:source-dir "wagon-providers/wagon-file/src/main/java"
#:test-dir "wagon-providers/wagon-file/src/test"
#:jdk ,icedtea-8
#:phases
(modify-phases %standard-phases
(add-before 'check 'fix-paths
(lambda _
;; Tests assume they are run by maven, which copies test resources
;; to target. Our ant-build-system does the same, but with the
;; build directory.
(substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
(("target") "build"))
#t))
(add-after 'build 'generate-metadata
(lambda _
(invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
"org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
"--source" "wagon-providers/wagon-file/src/main/java"
"--output" "build/classes/META-INF/plexus/components.xml"
"--classes" "build/classes"
"--descriptors" "build/classes/META-INF")
#t))
(add-after 'generate-metadata 'rebuild
(lambda _
(invoke "ant" "jar")
#t)))))
(inputs
`(("java-plexus-utils" ,java-plexus-utils)
("maven-wagon-provider-api" ,maven-wagon-provider-api)))
(native-inputs
`(("maven-wagon-provider-test" ,maven-wagon-provider-test)
("java-plexus-component-metadata" ,java-plexus-component-metadata)
("java-plexus-component-annotations" ,java-plexus-component-annotations)
("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
("java-plexus-classworlds" ,java-plexus-classworlds)
("java-guava" ,java-guava)
("java-guice" ,java-guice)
("java-javax-inject" ,java-javax-inject)
("java-cglib" ,java-cglib)
("java-slf4j-api" ,java-slf4j-api)
("java-plexus-utils" ,java-plexus-utils)
("java-plexus-cli" ,java-plexus-cli)
("maven-plugin-api" ,maven-plugin-api)
("maven-plugin-annotations" ,maven-plugin-annotations)
("maven-core" ,maven-core)
("maven-model" ,maven-model)
("java-commons-cli" ,java-commons-cli)
("java-qdox" ,java-qdox)
("java-jdom2" ,java-jdom2)
("java-asm" ,java-asm)
("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
,@(package-native-inputs maven-wagon-provider-api)))
(synopsis "Wagon provider that gets and puts artifacts using the file system")
(description "Maven Wagon is a transport abstraction that is used in Maven's
artifact and repository handling code. It uses providers, that are tools to
manage artifacts and deployment. This package contains the file provider which
gets and puts artifacts using the file system.")))
(define-public maven-wagon-tck-http
(package
(inherit maven-wagon-provider-api)
(name "maven-wagon-tck-http")
(arguments
`(#:jar-name "maven-wagon-tck-http.jar"
#:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
#:tests? #f; no tests
#:jdk ,icedtea-8))
(inputs
`(("java-plexus-util" ,java-plexus-utils)
("maven-wagon-provider-api" ,maven-wagon-provider-api)
("java-tomcat" ,java-tomcat)
("java-slf4j-api" ,java-slf4j-api)
("java-commons-codec" ,java-commons-codec)
("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
("java-plexus-classworlds" ,java-plexus-classworlds)
("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))
(synopsis "Wagon HTTP Test Compatibility Kit")
(description "Maven Wagon is a transport abstraction that is used in Maven's
artifact and repository handling code. This package contains the HTTP
Test Compatibility Kit.")))
(define-public maven-wagon-http-shared
(package
(inherit maven-wagon-provider-api)
(name "maven-wagon-http-shared")
(arguments
`(#:jar-name "maven-wagon-http-shared.jar"
#:source-dir "wagon-providers/wagon-http-shared/src/main/java"
#:test-dir "wagon-providers/wagon-http-shared/src/test"
#:jdk ,icedtea-8
#:phases
(modify-phases %standard-phases
(add-after 'build 'generate-metadata
(lambda _
(invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
"org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
"--source" "wagon-providers/wagon-http-shared/src/main/java"
"--output" "build/classes/META-INF/plexus/components.xml"
"--classes" "build/classes"
"--descriptors" "build/classes/META-INF")
#t))
(add-after 'generate-metadata 'rebuild
(lambda _
(invoke "ant" "jar")
#t)))))
(inputs
`(("java-plexus-utils" ,java-plexus-utils)
("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
("java-commons-io" ,java-commons-io)
("java-jsoup" ,java-jsoup)
("maven-wagon-provider-api" ,maven-wagon-provider-api)))
(native-inputs
`(("maven-wagon-provider-test" ,maven-wagon-provider-test)
("java-plexus-component-metadata" ,java-plexus-component-metadata)
("java-plexus-component-annotations" ,java-plexus-component-annotations)
("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
("java-plexus-classworlds" ,java-plexus-classworlds)
("java-guava" ,java-guava)
("java-guice" ,java-guice)
("java-javax-inject" ,java-javax-inject)
("java-cglib" ,java-cglib)
("java-slf4j-api" ,java-slf4j-api)
("java-plexus-utils" ,java-plexus-utils)
("java-plexus-cli" ,java-plexus-cli)
("maven-plugin-api" ,maven-plugin-api)
("maven-plugin-annotations" ,maven-plugin-annotations)
("maven-core" ,maven-core)
("maven-model" ,maven-model)
("java-commons-cli" ,java-commons-cli)
("java-qdox" ,java-qdox)
("java-jdom2" ,java-jdom2)
("java-asm" ,java-asm)
("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
,@(package-native-inputs maven-wagon-provider-api)))
(synopsis "Shared Library for wagon providers supporting HTTP.")
(description "Maven Wagon is a transport abstraction that is used in Maven's
artifact and repository handling code. It uses providers, that are tools to
manage artifacts and deployment. This package contains a shared library for
wagon providers supporting HTTP.")))
(define-public maven-wagon-http
(package
(inherit maven-wagon-provider-api)
(name "maven-wagon-http")
(arguments
`(#:jar-name "maven-wagon-http.jar"
#:source-dir "wagon-providers/wagon-http/src/main/java"
#:test-dir "wagon-providers/wagon-http/src/test"
#:test-exclude (list
"**/Abstract*.java"
;; FIXME: javax.net.ssl.SSLHandshakeException:
;; sun.security.validator.ValidatorException:
;; PKIX path building failed:
;; sun.security.provider.certpath.SunCertPathBuilderException:
;; unable to find valid certification path to requested target
"**/HttpsWagonPreemptiveTest.java"
"**/HttpsWagonTest.java"
;; Injection errors
"**/TckTest.java")
#:jdk ,icedtea-8
#:phases
(modify-phases %standard-phases
(add-before 'build 'copy-resources
(lambda _
(install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
"build/classes/META-INF/plexus")
#t))
(add-before 'check 'fix-resource-path
(lambda _
(substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
"wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
(("src/test") "wagon-providers/wagon-http/src/test"))
#t)))))
(inputs
`(("java-plexus-utils" ,java-plexus-utils)
("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
("maven-wagon-http-shared" ,maven-wagon-http-shared)
("maven-wagon-tck-http" ,maven-wagon-tck-http)
("maven-wagon-provider-api" ,maven-wagon-provider-api)))
(native-inputs
`(("maven-wagon-provider-test" ,maven-wagon-provider-test)
("java-plexus-component-metadata" ,java-plexus-component-metadata)
("java-plexus-component-annotations" ,java-plexus-component-annotations)
("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
("java-plexus-container-default" ,java-plexus-container-default)
("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
("java-plexus-classworlds" ,java-plexus-classworlds)
("java-guava" ,java-guava)
("java-guice" ,java-guice)
("java-inject" ,java-javax-inject)
("java-cglib" ,java-cglib)
("java-slf4j-api" ,java-slf4j-api)
("java-plexus-utils" ,java-plexus-utils)
("java-plexus-cli" ,java-plexus-cli)
("maven-plugin-api" ,maven-plugin-api)
("maven-plugin-annotations" ,maven-plugin-annotations)
("maven-core" ,maven-core)
("maven-model" ,maven-model)
("java-commons-cli" ,java-commons-cli)
("java-qdox" ,java-qdox)
("java-jdom2" ,java-jdom2)
("java-asm" ,java-asm)
("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
("java-tomcat" ,java-tomcat)
("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
("java-hamcrest-core" ,java-hamcrest-core)
("java-commons-logging-minimal" ,java-commons-logging-minimal)
("java-commons-codec" ,java-commons-codec)
("java-commons-io" ,java-commons-io)
("java-jsoup" ,java-jsoup)
("java-slf4j-simple" ,java-slf4j-simple)
,@(package-native-inputs maven-wagon-provider-api)))
(synopsis "Wagon provider that gets and puts artifacts through HTTP(S)")
(description "Maven Wagon is a transport abstraction that is used in Maven's
artifact and repository handling code. It uses providers, that are tools to
manage artifacts and deployment. This package contains a Wagon provider that
gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
(define-public maven-artifact
(package
(name "maven-artifact")
@ -562,3 +1003,508 @@ so really just plain objects.")))
("java-guava" ,java-guava)
("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
("java-javax-inject" ,java-javax-inject)))))
(define-public maven-plugin-api
(package
(inherit maven-artifact)
(name "maven-plugin-api")
(arguments
`(#:jar-name "maven-plugin-api.jar"
#:source-dir "maven-plugin-api/src/main/java"
#:jdk ,icedtea-8
#:test-dir "maven-plugin-api/src/test"
#:phases
(modify-phases %standard-phases
(add-before 'build 'generate-models
(lambda* (#:key inputs #:allow-other-keys)
(define (modello-single-mode file version mode)
(invoke "java" "org.codehaus.modello.ModelloCli"
file mode "maven-plugin-api/src/main/java" version
"false" "true"))
(let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo"))
(modello-single-mode file "1.0.0" "java")
(modello-single-mode file "1.0.0" "xpp3-reader")
(modello-single-mode file "1.0.0" "xpp3-writer"))
#t)))))
(inputs
`(("maven-artifact" ,maven-artifact)
("maven-model" ,maven-model)
("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
("java-plexus-component-annotations" ,java-plexus-component-annotations)
("guice" ,java-guice)
("java-cglib" ,java-cglib)
("java-asm" ,java-asm)
("sisu-inject" ,java-eclipse-sisu-inject)
("javax-inject" ,java-javax-inject)
("utils" ,java-plexus-utils)))
(native-inputs
`(("modello" ,java-modello-core)
;; for modello:
("classworlds" ,java-plexus-classworlds)
("guava" ,java-guava)
("xbean" ,java-geronimo-xbean-reflect)
("build-api" ,java-sisu-build-api)
;; modello plugins:
("java" ,java-modello-plugins-java)
("xml" ,java-modello-plugins-xml)
("xpp3" ,java-modello-plugins-xpp3)
;; for tests
("java-junit" ,java-junit)))
(description "Apache Maven is a software project management and comprehension
tool. This package contains strictly the API for plugins -- composed of goals
implemented by Mojos -- development.
A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor,
generally generated from plugin sources using maven-plugin-plugin.")))
(define maven-core-bootstrap
(package
(inherit maven-artifact)
(name "maven-core")
(arguments
`(#:jar-name "maven-core.jar"
#:source-dir "src/main/java"
#:jdk ,icedtea-8
;; Tests need maven-compat, which requires maven-core
#:tests? #f
#:phases
(modify-phases %standard-phases
(add-before 'configure 'chdir
(lambda _
;; Required for generating components.xml in maven-core
(chdir "maven-core")
#t))
(add-before 'build 'copy-resources
(lambda _
(mkdir-p "build/classes/")
(copy-recursively "src/main/resources" "build/classes")
#t))
(add-before 'build 'generate-sisu-named
(lambda _
(mkdir-p "build/classes/META-INF/sisu")
(chmod "../sisu.sh" #o755)
(invoke "../sisu.sh" "src/main/java"
"build/classes/META-INF/sisu/javax.inject.Named")
#t))
(add-before 'build 'generate-models
(lambda* (#:key inputs #:allow-other-keys)
(define (modello-single-mode file version mode)
(invoke "java" "org.codehaus.modello.ModelloCli"
file mode "src/main/java" version
"false" "true"))
(let ((file "src/main/mdo/toolchains.mdo"))
(modello-single-mode file "1.1.0" "java")
(modello-single-mode file "1.1.0" "xpp3-reader")
(modello-single-mode file "1.1.0" "xpp3-writer"))
#t)))))
(inputs
`(("maven-artifact" ,maven-artifact)
("maven-resolver-provider" ,maven-resolver-provider)
("maven-builder-support" ,maven-builder-support)
("maven-model" ,maven-model)
("maven-model-builder" ,maven-model-builder)
("maven-settings" ,maven-settings)
("maven-settings-builder" ,maven-settings-builder)
("maven-plugin-api" ,maven-plugin-api)
("maven-repository-metadata" ,maven-repository-metadata)
("maven-shared-utils" ,maven-shared-utils)
("java-plexus-component-annotations" ,java-plexus-component-annotations)
("java-plexus-utils" ,java-plexus-utils)
("java-commons-lang3" ,java-commons-lang3)
("java-guava" ,java-guava)
("java-guice" ,java-guice)
("maven-resolver-api" ,maven-resolver-api)
("maven-resolver-spi" ,maven-resolver-spi)
("maven-resolver-util" ,maven-resolver-util)
("maven-resolver-impl" ,maven-resolver-impl)
("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
("java-javax-inject" ,java-javax-inject)
("java-plexus-classworld" ,java-plexus-classworlds)))
(native-inputs
`(("java-modello-core" ,java-modello-core)
("java-cglib" ,java-cglib)
("java-asm" ,java-asm)
("java-plexus-classworlds" ,java-plexus-classworlds)
("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
("java-sisu-build-api" ,java-sisu-build-api)
("java-modello-plugins-java" ,java-modello-plugins-java)
("java-modello-plugins-xml" ,java-modello-plugins-xml)
("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
;; tests
("java-junit" ,java-junit)
("java-mockito-1" ,java-mockito-1)
("java-commons-jxpath" ,java-commons-jxpath)))
(description "Apache Maven is a software project management and comprehension
tool. This package contains the maven core classes managing the whole build
process.")))
(define-public maven-core
(package
(inherit maven-core-bootstrap)
(arguments
(substitute-keyword-arguments (package-arguments maven-core-bootstrap)
((#:phases phases)
`(modify-phases ,phases
(add-before 'build 'modify-metainf
(lambda _
(substitute* "build.xml"
(("message=\"\"") "message=\"Implementation-Version: 3.5.3\n\""))
#t))
(add-before 'build 'add-maven-files
(lambda _
(mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
(copy-file "pom.xml"
"build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
(with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
(lambda _
(format #t "version=~a~%
groupId=org.apache.maven~%
artifactId=maven-core" ,(package-version maven-core-bootstrap))))
#t))
(add-after 'build 'generate-metadata
(lambda _
(define (components file)
(let ((sxml (with-input-from-file file
(lambda _ (xml->sxml (current-input-port)
#:trim-whitespace? #t)))))
;; Select the list of <component>s inside the <component-set>
;; and <components>.
((@ (ice-9 match) match) sxml
(('*TOP*
('*PI* foo ...)
('component-set
('components x ...))) x))))
(use-modules (sxml simple))
(delete-file "build/classes/META-INF/plexus/components.xml")
(invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
"org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
"--source" "build/classes/META-INF/plexus"
"--output" "build/classes/META-INF/plexus/components.t.xml"
"--classes" "build/classes"
"--descriptors" "build/classes")
;; Now we merge all other components from hand-written xml
(let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
(components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
(default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
(artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
(with-output-to-file "build/classes/META-INF/plexus/components.xml"
(lambda _
(display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
(sxml->xml
`(component-set
(components
,@(append generated-xml components-xml
default-bindings-xml
artifact-handlers-xml)))))))
#t))
(add-after 'generate-metadata 'rebuild
(lambda _
(invoke "ant" "jar")
#t))))))
(native-inputs
`(("java-plexus-component-metadata" ,java-plexus-component-metadata)
("java-commons-cli" ,java-commons-cli)
("java-plexus-cli" ,java-plexus-cli)
("java-jdom2" ,java-jdom2)
("java-qdox" ,java-qdox)
("maven-core-boot" ,maven-core-bootstrap)
,@(package-native-inputs maven-core-bootstrap)))))
(define-public maven-embedder
(package
(inherit maven-artifact)
(name "maven-embedder")
(arguments
`(#:jar-name "maven-embedder.jar"
#:source-dir "maven-embedder/src/main/java"
#:test-dir "maven-embedder/src/test"
#:test-exclude (list "**/MavenCliTest.java")
#:jdk ,icedtea-8
#:phases
(modify-phases %standard-phases
(add-before 'build 'generate-sisu-named
(lambda _
(mkdir-p "build/classes/META-INF/sisu")
(chmod "sisu.sh" #o755)
(invoke "./sisu.sh" "maven-embedder/src/main/java"
"build/classes/META-INF/sisu/javax.inject.Named")
#t))
(add-before 'build 'generate-models
(lambda* (#:key inputs #:allow-other-keys)
(define (modello-single-mode file version mode)
(invoke "java" "org.codehaus.modello.ModelloCli"
file mode "maven-embedder/src/main/java" version
"false" "true"))
(let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
(modello-single-mode file "1.0.0" "java")
(modello-single-mode file "1.0.0" "xpp3-reader")
(modello-single-mode file "1.0.0" "xpp3-writer"))
#t))
(add-before 'check 'fix-test-paths
(lambda _
(substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
(("target/test-classes") "build/test-classes"))
#t))
(add-before 'check 'fix-test-compilation
(lambda _
;; Tests are in the java/ subdir. Other subdirectories contain
;; additional test plugins, with duplicate classes, so we can't
;; compile them. Also, they are meant to be built with maven, to
;; test its build process.
(substitute* "build.xml"
(("srcdir=\"maven-embedder/src/test\"")
"srcdir=\"maven-embedder/src/test/java\""))
#t)))))
(inputs
`(("maven-core" ,maven-core)
("maven-artifact" ,maven-artifact)
("maven-plugin-api" ,maven-plugin-api)
("maven-builder-support" ,maven-builder-support)
("maven-model" ,maven-model)
("maven-model-builder" ,maven-model-builder)
("maven-settings" ,maven-settings)
("maven-settings-builder" ,maven-settings-builder)
("maven-shared-utils" ,maven-shared-utils)
("java-plexus-classworlds" ,java-plexus-classworlds)
("java-plexus-util" ,java-plexus-utils)
("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
("java-plexus-cipher" ,java-plexus-cipher)
("java-plexus-component-annotations" ,java-plexus-component-annotations)
("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
("maven-resolevr-util" ,maven-resolver-util)
("maven-resolevr-api" ,maven-resolver-api)
("java-logback-core" ,java-logback-core)
("java-logback-classic" ,java-logback-classic)
("java-commons-cli" ,java-commons-cli)
("java-commons-io" ,java-commons-io)
("java-commons-lang3" ,java-commons-lang3)
("java-guava" ,java-guava)
("java-guice" ,java-guice)
("java-javax-inject" ,java-javax-inject)
("java-slf4j-api" ,java-slf4j-api)
("java-slf4j-simple" ,java-slf4j-simple)))
(native-inputs
`(("java-modello-core" ,java-modello-core)
("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
("java-sisu-build-api" ,java-sisu-build-api)
("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
("java-cglib" ,java-cglib)
("java-asm" ,java-asm)
("java-modello-plugins-java" ,java-modello-plugins-java)
("java-modello-plugins-xml" ,java-modello-plugins-xml)
("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
;; tests
("java-junit" ,java-junit)
("java-objenesis" ,java-objenesis)
("java-mockito-1" ,java-mockito-1)
("java-hamcrest-core" ,java-hamcrest-core)))
(description "Apache Maven is a software project management and comprehension
tool. This package contains a Maven embeddable component, with CLI and
logging support.")))
(define-public maven-compat
(package
(inherit maven-artifact)
(name "maven-compat")
(arguments
`(#:jar-name "maven-compat.jar"
#:source-dir "src/main/java"
#:jdk ,icedtea-8
#:test-dir "src/test"
#:phases
(modify-phases %standard-phases
;; Tests assume we're in this directory
(add-before 'configure 'chdir
(lambda _
(chdir "maven-compat")
#t))
(add-before 'build 'generate-models
(lambda* (#:key inputs #:allow-other-keys)
(define (modello-single-mode file version mode)
(invoke "java" "org.codehaus.modello.ModelloCli"
file mode "src/main/java" version
"false" "true"))
(let ((file "src/main/mdo/profiles.mdo"))
(modello-single-mode file "1.0.0" "java")
(modello-single-mode file "1.0.0" "xpp3-reader")
(modello-single-mode file "1.0.0" "xpp3-writer"))
(let ((file "src/main/mdo/paramdoc.mdo"))
(modello-single-mode file "1.0.0" "java")
(modello-single-mode file "1.0.0" "xpp3-reader")
(modello-single-mode file "1.0.0" "xpp3-writer"))
#t))
(add-after 'build 'generate-metadata
(lambda _
(invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
"org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
"--source" "src/main/java"
"--output" "build/classes/META-INF/plexus/components.xml"
"--classes" "build/classes"
"--descriptors" "build/classes/META-INF")
#t))
(add-before 'check 'build-tests
(lambda _
(invoke "ant" "compile-tests")
#t))
(add-after 'build-tests 'generate-test-metadata
(lambda _
(invoke "java" "-cp" (string-append (getenv "CLASSPATH")
":build/classes"
":build/test-classes")
"org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
"--source" "src/test/java"
"--output" "build/test-classes/META-INF/plexus/components.xml"
"--classes" "build/test-classes"
"--descriptors" "build/test-classes/META-INF")
#t))
(add-after 'generate-metadata 'rebuild
(lambda _
(invoke "ant" "jar")
#t)))))
(inputs
`(("maven-artifact" ,maven-artifact)
("maven-repository-metadata" ,maven-repository-metadata)
("maven-builder-support" ,maven-builder-support)
("maven-model" ,maven-model)
("maven-model-builder" ,maven-model-builder)
("maven-settings" ,maven-settings)
("maven-settings-builder" ,maven-settings-builder)
("maven-core" ,maven-core)
("maven-wagon-provider-api" ,maven-wagon-provider-api)
("maven-wagon-file" ,maven-wagon-file)
("maven-resolver-api" ,maven-resolver-api)
("maven-resolver-util" ,maven-resolver-util)
("maven-resolver-spi" ,maven-resolver-spi)
("java-plexus-interpolation" ,java-plexus-interpolation)))
(native-inputs
`(("java-modello-core" ,java-modello-core)
("java-plexus-utils" ,java-plexus-utils)
("java-plexus-component-annotations" ,java-plexus-component-annotations)
("java-plexus-classworlds" ,java-plexus-classworlds)
("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
("java-sisu-build-api" ,java-sisu-build-api)
("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
("java-javax-inject" ,java-javax-inject)
("java-guice" ,java-guice)
("java-guava" ,java-guava)
("java-cglib" ,java-cglib)
("java-asm" ,java-asm)
("java-modello-plugins-java" ,java-modello-plugins-java)
("java-modello-plugins-xml" ,java-modello-plugins-xml)
("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
;; metadata
("java-plexus-component-metadata" ,java-plexus-component-metadata)
("java-commons-cli" ,java-commons-cli)
("java-plexus-cli" ,java-plexus-cli)
("java-jdom2" ,java-jdom2)
("maven-plugin-api" ,maven-plugin-api)
("java-qdox" ,java-qdox)
;; tests
("java-plexus-cipher" ,java-plexus-cipher)
("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
("java-jsr250", java-jsr250)
("java-cdi-api" ,java-cdi-api)
("java-junit" ,java-junit)
("maven-resolver-impl" ,maven-resolver-impl)
("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
("java-commons-lang3" ,java-commons-lang3)
("java-aop" ,java-aopalliance)
("maven-resolver-provider" ,maven-resolver-provider)
("java-slf4j-api" ,java-slf4j-api)
("java-slf4j-simple" ,java-slf4j-simple)
,@(package-inputs java-slf4j-api)))
(description "Apache Maven is a software project management and comprehension
tool. This package contains Maven2 classes maintained as compatibility
layer for plugins that need to keep Maven2 compatibility.")))
(define-public maven
(package
(inherit maven-artifact)
(name "maven")
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'build
(lambda _
(substitute* "apache-maven/src/bin/mvn"
(("cygwin=false;")
(string-append
"CLASSPATH=" (getenv "CLASSPATH") "\n"
"cygwin=false;"))
(("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
#t))
(delete 'check)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
(conf (string-append (assoc-ref outputs "out") "/conf/")))
(mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
(for-each (lambda (file)
(install-file (string-append "apache-maven/src/bin/" file)
bin)
(chmod (string-append bin file) #o755))
'("mvn" "mvnDebug" "mvnyjp"))
(install-file "apache-maven/src/bin/m2.conf" bin)
(copy-recursively "apache-maven/src/conf" conf))
#t)))))
(inputs
`(("java-plexus-classworlds" ,java-plexus-classworlds)
("maven-artifact" ,maven-artifact)
("maven-embedder" ,maven-embedder)
("maven-core" ,maven-core)
("maven-compat" ,maven-compat)
("maven-builder-support" ,maven-builder-support)
("maven-model" ,maven-model)
("maven-model-builder" ,maven-model-builder)
("maven-settings" ,maven-settings)
("maven-settings-builder" ,maven-settings-builder)
("maven-plugin-api" ,maven-plugin-api)
("maven-repository-metadata", maven-repository-metadata)
("maven-shared-utils" ,maven-shared-utils)
("maven-resolver-api" ,maven-resolver-api)
("maven-resolver-spi" ,maven-resolver-spi)
("maven-resolver-util" ,maven-resolver-util)
("maven-resolver-impl" ,maven-resolver-impl)
("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
("maven-resolver-provider" ,maven-resolver-provider)
("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
("maven-wagon-provider-api" ,maven-wagon-provider-api)
("maven-wagon-file" ,maven-wagon-file)
("maven-wagon-http" ,maven-wagon-http)
("java-commons-logging-minimal" ,java-commons-logging-minimal)
("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
("maven-wagon-http-shared" ,maven-wagon-http-shared)
("maven-wagon-tck-http" ,maven-wagon-tck-http)
("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
("java-guice" ,java-guice)
("java-aopalliance" ,java-aopalliance)
("java-cglib" ,java-cglib)
("java-asm" ,java-asm)
("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
("java-javax-inject" ,java-javax-inject)
("java-plexus-component-annotations" ,java-plexus-component-annotations)
("java-plexus-utils" ,java-plexus-utils)
("java-plexus-interpolation" ,java-plexus-interpolation)
("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
("java-plexus-cipher" ,java-plexus-cipher)
("java-guava" ,java-guava)
("java-jansi" ,java-jansi)
("java-jsr250" ,java-jsr250)
("java-cdi-api" ,java-cdi-api)
("java-commons-cli" ,java-commons-cli)
("java-commons-io" ,java-commons-io)
("java-commons-lang3" ,java-commons-lang3)
("java-slf4j-api" ,java-slf4j-api)
;; TODO: replace with maven-slf4j-provider
("java-slf4j-simple" ,java-slf4j-simple)))
(description "Apache Maven is a software project management and comprehension
tool. Based on the concept of a project object model: builds, dependency
management, documentation creation, site publication, and distribution
publication are all controlled from the @file{pom.xml} declarative file. Maven
can be extended by plugins to utilise a number of other development tools for
reporting or the build process.")))

View File

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

View File

@ -1350,16 +1350,17 @@ networks.")
(define-public speedtest-cli
(package
(name "speedtest-cli")
(version "2.0.0")
(version "2.0.2")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/sivel/speedtest-cli/archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/sivel/speedtest-cli")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"16kcpba7nmszz2h0fq7qvv6src20syck2wlknaacg69kk88aybbk"))))
"0vv2z37g2kgm2dzkfa4bhri92hs0d1acxi8z66gznsl5148q7sdi"))))
(build-system python-build-system)
(home-page "https://github.com/sivel/speedtest-cli")
(synopsis "Internet bandwidth tester")
@ -1901,3 +1902,36 @@ eight bytes) tools
low-level I/O programming that provides developers with a consistent
asynchronous model using a modern C++ approach.")
(license license:boost1.0)))
(define-public shadowsocks
;; There are some security fixes after the last release.
(let* ((commit "e332ec93e9c90f1cbee676b022bf2c5d5b7b1239")
(revision "0")
(version (git-version "2.8.2" revision commit)))
(package
(name "shadowsocks")
(version version)
(home-page "https://github.com/shadowsocks/shadowsocks")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit commit)))
(sha256
(base32
"1idd9b4f2pnhcpk1bh030hqg5zq25gkwxd53xi3c0cj242w7sp2j"))
(file-name (git-file-name name version))))
(build-system python-build-system)
(synopsis "Fast tunnel proxy that helps you bypass firewalls")
(description
"This package is a fast tunnel proxy that helps you bypass firewalls.
Features:
@itemize
@item TCP & UDP support
@item User management API
@item TCP Fast Open
@item Workers and graceful restart
@item Destination IP blacklist
@end itemize")
(license license:asl2.0))))

View File

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

View File

@ -7,6 +7,7 @@
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -26,9 +27,12 @@
(define-module (gnu packages package-management)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages attr)
#:use-module (gnu packages avahi)
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages bdw-gc)
#:use-module (gnu packages bison)
#:use-module (gnu packages bootstrap) ;for 'bootstrap-guile-origin'
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
@ -36,6 +40,7 @@
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages docbook)
#:use-module (gnu packages file)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
@ -208,12 +213,13 @@
(let* ((out (assoc-ref outputs "out"))
(guile (assoc-ref inputs "guile"))
(json (assoc-ref inputs "guile-json"))
(sqlite (assoc-ref inputs "guile-sqlite3"))
(git (assoc-ref inputs "guile-git"))
(bs (assoc-ref inputs
"guile-bytestructures"))
(ssh (assoc-ref inputs "guile-ssh"))
(gnutls (assoc-ref inputs "gnutls"))
(deps (list json gnutls git bs ssh))
(deps (list json sqlite gnutls git bs ssh))
(effective
(read-line
(open-pipe* OPEN_READ
@ -270,6 +276,7 @@
(propagated-inputs
`(("gnutls" ,gnutls)
("guile-json" ,guile-json)
("guile-sqlite3" ,guile-sqlite3)
("guile-ssh" ,guile-ssh)
("guile-git" ,guile-git)))
@ -287,23 +294,24 @@ the Nix package manager.")
;; Alias for backward compatibility.
(define-public guix-devel guix)
(define-public guix-register
(define-public guix-daemon
;; This package is for internal consumption: it allows us to quickly build
;; the 'guix-register' program, which is referred to by (guix config).
;; TODO: Remove this hack when 'guix-register' has been superseded by Scheme
;; code.
;; the 'guix-daemon' program and use that in (guix self), used by 'guix
;; pull'.
(package
(inherit guix)
(properties `((hidden? . #t)))
(name "guix-register")
(name "guix-daemon")
;; Use a minimum set of dependencies.
(native-inputs
(fold alist-delete (package-native-inputs guix)
'("po4a" "graphviz" "help2man")))
(propagated-inputs
(inputs
`(("gnutls" ,gnutls)
("guile-git" ,guile-git)))
("guile-git" ,guile-git)
,@(package-inputs guix)))
(propagated-inputs '())
(arguments
(substitute-keyword-arguments (package-arguments guix)
@ -316,11 +324,21 @@ the Nix package manager.")
(invoke "make" "nix/libstore/schema.sql.hh")
(invoke "make" "-j" (number->string
(parallel-job-count))
"guix-register")))
"guix-daemon")))
(delete 'copy-bootstrap-guile)
(replace 'install
(lambda _
(invoke "make" "install-sbinPROGRAMS")))
(lambda* (#:key outputs #:allow-other-keys)
(invoke "make" "install-binPROGRAMS"
"install-nodist_pkglibexecSCRIPTS")
;; We need to tell 'guix-daemon' which 'guix' command to use.
;; Here we use a questionable hack where we hard-code
;; "~root/.config", which could be wrong (XXX).
(let ((out (assoc-ref outputs "out")))
(substitute* (find-files (string-append out "/libexec"))
(("exec \".*/bin/guix\"")
"exec ~root/.config/current/bin/guix"))
#t)))
(delete 'wrap-program)))))))
(define-public guile2.0-guix
@ -528,13 +546,13 @@ transactions from C or Python.")
(define-public diffoscope
(package
(name "diffoscope")
(version "95")
(version "96")
(source (origin
(method url-fetch)
(uri (pypi-uri name version))
(sha256
(base32
"0aksxxivxli6l3fylxgl771hw0h7l8x35l76cmj0d12zgx54w0a1"))))
"1x66f2x8miy3giff14higpcs70c0zb5d3gj6yn8ac6p183sngl72"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@ -883,3 +901,57 @@ Microsoft cabinet (.@dfn{CAB}) files.")
and sign Windows@tie{}Installer (.@dfn{MSI}) files. It aims to be a solution
for packaging and deployment of cross-compiled Windows applications.")
(license license:lgpl2.1+)))
(define-public libostree
(package
(name "libostree")
(version "2018.5")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/ostreedev/ostree/releases/download/v"
version "/libostree-" version ".tar.xz"))
(sha256
(base32
"0q82d6rvp119nx7ck7j63a591kz8vg7v465kf9ygh8kzg875l3xd"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-before 'check 'pre-check
(lambda _
;; Don't try to use the non-existing '/var/tmp' as test
;; directory.
(setenv "TEST_TMPDIR" (getenv "TMPDIR"))
#t)))
;; XXX: fails with:
;; tap-driver.sh: internal error getting exit status
;; tap-driver.sh: fatal: I/O or internal error
#:tests? #f))
(native-inputs
`(("attr" ,attr) ; for tests
("bison" ,bison)
("glib:bin" ,glib "bin") ; for 'glib-mkenums'
("gobject-introspection" ,gobject-introspection)
("pkg-config" ,pkg-config)
("xsltproc" ,libxslt)))
(inputs
`(("avahi" ,avahi)
("docbook-xml" ,docbook-xml-4.2)
("docbook-xsl" ,docbook-xsl)
("e2fsprogs" ,e2fsprogs)
("fuse" ,fuse)
("glib" ,glib)
("gpgme" ,gpgme)
("libarchive" ,libarchive)
("libsoup" ,libsoup)
("nettle" ,nettle) ; required by 'libarchive.la'
("util-linux" ,util-linux)))
(home-page "https://ostree.readthedocs.io/en/latest/")
(synopsis "Operating system and container binary deployment and upgrades")
(description
"@code{libostree} is both a shared library and suite of command line
tools that combines a \"git-like\" model for committing and downloading
bootable filesystem trees, along with a layer for deploying them and managing
the bootloader configuration.")
(license license:lgpl2.0+)))

View File

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

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 © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -364,6 +365,30 @@ modified or tested with this API, making it simple to test both individual
files, as well as to verify that there are no missing or unknown files.")
(license perl-license)))
(define-public perl-test-distmanifest
(package
(name "perl-test-distmanifest")
(version "1.014")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://cpan/authors/id/E/ET/ETHER/Test-DistManifest-"
version ".tar.gz"))
(sha256
(base32 "1ifpff5simjslabwy7ac6kdylv4c0b5b39fgpwf9ha16yh6w49ix"))))
(build-system perl-build-system)
(native-inputs
`(("perl-module-build" ,perl-module-build)))
(propagated-inputs
`(("perl-module-manifest" ,perl-module-manifest)))
(home-page "https://github.com/jawnsy/Test-DistManifest")
(synopsis "Author test that validates a package @file{MANIFEST}")
(description
"@code{Test::DistManifest} provides a simple method of testing that a
@file{MANIFEST} file matches its distribution.")
(license perl-license)))
(define-public perl-test-eol
(package
(name "perl-test-eol")
@ -1140,6 +1165,32 @@ a minimum of effort.")
;; "Under the same license as Perl itself"
(license perl-license)))
(define-public perl-test-perltidy
(package
(name "perl-test-perltidy")
(version "20130104")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://cpan/authors/id/L/LA/LARRYL/Test-PerlTidy-"
version ".tar.gz"))
(sha256
(base32
"1j5rsb4km9rzcbd1ljavj8vm42bmilji40v2jj2k87l1ykrxj59z"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-file-finder" ,perl-file-finder)
("perl-file-slurp" ,perl-file-slurp)
("perltidy" ,perltidy)
("perl-text-diff" ,perl-text-diff)))
(home-page "http://search.cpan.org/dist/Test-PerlTidy/")
(synopsis "Check that all your Perl files are tidy")
(description
"Using @code{Test::PerlTidy}, any file ending in .pl, .pm, .t or .PL will
cause a test fail unless it is exactly as @code{perltidy} would like it to be.")
(license perl-license)))
(define-public perl-test-trap
(package
(name "perl-test-trap")

View File

@ -20,6 +20,7 @@
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -170,6 +171,8 @@
(inherit (package-source perl))
(uri (string-append "mirror://cpan/src/5.0/perl-"
version ".tar.gz"))
(patches (append (origin-patches (package-source perl))
(search-patches "perl-archive-tar-CVE-2018-12015.patch")))
(sha256
(base32
"03gpnxx1g6hvlh0v4aqx00580h787sfywp1vlvw64q2xcbm9qbsp"))))))
@ -1522,6 +1525,27 @@ provides a means of converting those data streams back into into binary
data.")
(license perl-license)))
(define-public perl-cpan-changes
(package
(name "perl-cpan-changes")
(version "0.400002")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://cpan/authors/id/H/HA/HAARG/CPAN-Changes-"
version ".tar.gz"))
(sha256
(base32
"13dy78amkhwg278sv5im0ylyskhxpfivyl2aissqqih71nlxxvh1"))))
(build-system perl-build-system)
(home-page "http://search.cpan.org/dist/CPAN-Changes/")
(synopsis "Read and write @file{Changes} files")
(description
"@code{CPAN::Changes} helps users programmatically read and write
@file{Changes} files that conform to a common specification.")
(license perl-license)))
(define-public perl-cpan-meta-check
(package
(name "perl-cpan-meta-check")
@ -5213,6 +5237,36 @@ strictly correct manner with ExtUtils::MakeMaker, and will run on any Perl
installation version 5.005 or newer.")
(license (package-license perl))))
(define-public perl-module-manifest
(package
(name "perl-module-manifest")
(version "1.09")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://cpan/authors/id/E/ET/ETHER/Module-Manifest-"
version ".tar.gz"))
(sha256
(base32
"16skpm804a19gsgxzn1wba3lmvc7cx5q8ly4srpyd82yy47zi5d3"))))
(build-system perl-build-system)
(native-inputs
`(("perl-test-exception" ,perl-test-exception)
("perl-test-warn" ,perl-test-warn)))
(propagated-inputs
`(("perl-params-util" ,perl-params-util)))
(home-page "http://search.cpan.org/dist/Module-Manifest/")
(synopsis "Parse and examine a Perl distribution @file{MANIFEST} file")
(description
"@code{Module::Manifest} is a simple utility module created originally for
use in @code{Module::Inspector}.
It can load a @file{MANIFEST} file that comes in a Perl distribution tarball,
examine the contents, and perform some simple tasks. It can also load the
@file{MANIFEST.SKIP} file and check that.")
(license perl-license)))
(define-public perl-module-pluggable
(package
(name "perl-module-pluggable")
@ -8461,14 +8515,14 @@ as exceptions to standard program flow.")
(define-public perltidy
(package
(name "perltidy")
(version "20160302")
(version "20180220")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/perltidy/" version
"/Perl-Tidy-" version ".tar.gz"))
(sha256
(base32
"19yw63yh5s3pq7k3nkw6nsamg5b8vvwyhgbizslgxg0mqgc4xl3d"))))
"0w1k5ffcrpx0fm9jgprrwy0290k6cmy7dyk83s61063migi3r5z9"))))
(build-system perl-build-system)
(home-page "http://perltidy.sourceforge.net/")
(synopsis "Perl script tidier")
@ -9476,6 +9530,38 @@ File::Find replacement in Perl.")
interface to File::Find::Object.")
(license (package-license perl))))
(define-public perl-file-finder
(package
(name "perl-file-finder")
(version "0.53")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://cpan/authors/id/M/ME/MERLYN/File-Finder-"
version ".tar.gz"))
(sha256
(base32
"0x3a2xgzrka73lcmmwalq2mmpzxa7s6pm01ahxf677ksqsdc3jrf"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-text-glob" ,perl-text-glob)))
(home-page "http://search.cpan.org/dist/File-Finder/")
(synopsis "Wrapper for @code{File::Find} ala @code{find(1)}")
(description
"@code{File::Find} is great, but constructing the wanted routine can
sometimes be a pain. @code{File::Finder} provides a wanted-writer, using
syntax that is directly mappable to the @code{find(1)} command's syntax.
A @code{File::Finder} object contains a hash of @code{File::Find} options, and
a series of steps that mimic find's predicates. Initially, a
@code{File::Finder} object has no steps. Each step method clones the previous
object's options and steps, and then adds the new step, returning the new
object. In this manner, an object can be grown, step by step, by chaining
method calls. Furthermore, a partial sequence can be created and held, and
used as the head of many different sequences.")
(license perl-license)))
(define-public perl-font-ttf
(package
(name "perl-font-ttf")

View File

@ -53,6 +53,7 @@
;;; Copyright © 2016, 2018 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -4871,26 +4872,15 @@ computing.")
(define-public python-urwid
(package
(name "python-urwid")
(version "1.3.1")
(version "2.0.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "urwid" version))
(sha256
(base32
"18cnd1wdjcas08x5qwa5ayw6jsfcn33w4d9f7q3s29fy6qzc1kng"))))
"1g6cpicybvbananpjikmjk8npmjk4xvak1wjzji62wc600wkwkb4"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
;; Disable failing test. Bug filed upstream:
;; https://github.com/wardi/urwid/issues/164
;; TODO: check again for python-urwid > 1.3.1 or python > 3.4.3.
(add-after 'unpack 'disable-failing-test
(lambda _
(substitute* "urwid/tests/test_event_loops.py"
(("test_remove_watch_file")
"disable_remove_watch_file")))))))
(home-page "http://urwid.org")
(synopsis "Console user interface library for Python")
(description
@ -4899,22 +4889,7 @@ features useful for text console applications.")
(license license:lgpl2.1+)))
(define-public python2-urwid
(let ((python2-urwid (package-with-python2 python-urwid)))
(package
(inherit python2-urwid)
(arguments
(append
`(;; Explicitly using Python 2 is necessary due the argument list being
;; built from only the 'delete-test_vterm.py' phase and python-urwid's
;; package arguments, which by default assumes the use of Python 3.
#:python ,python-2
#:phases
(modify-phases %standard-phases
;; Disable the vterm tests because of non-deterministic failures
;; with Python 2. See https://github.com/urwid/urwid/issues/230.
(add-after 'unpack 'delete-test_vterm.py
(delete-file "urwid/tests/test_vterm.py"))))
(package-arguments python-urwid))))))
(package-with-python2 python-urwid))
(define-public python-urwidtrees
(package
@ -6033,13 +6008,13 @@ should be stored on various operating systems.")
(define-public python-llfuse
(package
(name "python-llfuse")
(version "1.3.2")
(version "1.3.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "llfuse" version ".tar.bz2"))
(sha256
(base32
"0qxvnbz41bpvpc1vbi8qkhmpr9gj1qrrp5jdj085iqibd8l2l9cn"))))
"1rqww632y2zz71xmr6ch7yq80kvza9mhqr2z773k0d8l1lwzl575"))))
(build-system python-build-system)
(inputs
`(("fuse" ,fuse)
@ -7285,13 +7260,13 @@ applications.")
(define-public python-click-log
(package
(name "python-click-log")
(version "0.2.1")
(version "0.3.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "click-log" version))
(sha256
(base32
"1r1x85023cslb2pwldd089jjk573mk3w78cnashs77wrx7yz8fj9"))))
"091i03bhxyzsdbc6kilxhivfda2f8ymz3b33xa6cj5kbzjiirz8n"))))
(build-system python-build-system)
(propagated-inputs
`(("python-click" ,python-click)))
@ -13657,3 +13632,120 @@ introspection.")
(define-public python2-fasteners
(package-with-python2 python-fasteners))
(define-public python-requests-file
(package
(name "python-requests-file")
(version "1.4.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "requests-file" version))
(sha256
(base32
"1yp2jaxg3v86pia0q512dg3hz6s9y5vzdivsgrba1kds05ial14g"))))
(build-system python-build-system)
(propagated-inputs
`(("python-requests" ,python-requests)
("python-six" ,python-six)))
(home-page
"https://github.com/dashea/requests-file")
(synopsis "File transport adapter for Requests")
(description
"Requests-File is a transport adapter for use with the Requests Python
library to allow local filesystem access via file:// URLs.")
(license license:asl2.0)))
(define-public python2-requests-file
(package-with-python2 python-requests-file))
(define-public python-tldextract
(package
(name "python-tldextract")
(version "2.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "tldextract" version))
(sha256
(base32
"1d5s8v6kpsgazyahflhji1cfdcf89rv7l7z55v774bhzvcjp2y99"))))
(build-system python-build-system)
(native-inputs
`(("python-pytest" ,python-pytest)
("python-responses" ,python-responses)))
(propagated-inputs
`(("python-idna" ,python-idna)
("python-requests" ,python-requests)
("python-requests-file" ,python-requests-file)))
(home-page
"https://github.com/john-kurkowski/tldextract")
(synopsis
"Separate the TLD from the registered domain and subdomains of a URL")
(description
"TLDExtract accurately separates the TLD from the registered domain and
subdomains of a URL, using the Public Suffix List. By default, this includes
the public ICANN TLDs and their exceptions. It can optionally support the
Public Suffix List's private domains as well.")
(license license:bsd-3)))
(define-public python2-tldextract
(package-with-python2 python-tldextract))
(define-public python-pynamecheap
(package
(name "python-pynamecheap")
(version "0.0.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "PyNamecheap" version))
(sha256
(base32
"0wkbwz208j8nfrsmzmclvxg22ymknn0mlz76wbdza9k2bx2zja6l"))))
(build-system python-build-system)
(propagated-inputs
`(("python-requests" ,python-requests)))
(home-page
"https://github.com/Bemmu/PyNamecheap")
(synopsis
"Namecheap API client in Python")
(description
"PyNamecheap is a Namecheap API client in Python.")
(license license:expat)))
(define-public python2-pynamecheap
(package-with-python2 python-pynamecheap))
(define-public python-dns-lexicon
(package
(name "python-dns-lexicon")
(version "2.4.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "dns-lexicon" version))
(sha256
(base32
"0jdn3ns71bsybr7njgsqr9xlxsqh7zh6phn4ld0liazqdn2l5f6m"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ;requires internet access
(propagated-inputs
`(("python-future" ,python-future)
("python-pynamecheap" ,python-pynamecheap)
("python-requests" ,python-requests)
("python-tldextract" ,python-tldextract)
("python-urllib3" ,python-urllib3)))
(home-page "https://github.com/AnalogJ/lexicon")
(synopsis
"Manipulate DNS records on various DNS providers")
(description
"Lexicon provides a way to manipulate DNS records on multiple DNS
providers in a standardized way. It has a CLI but it can also be used as a
Python library. It was designed to be used in automation, specifically with
Let's Encrypt.")
(license license:expat)))
(define-public python2-dns-lexicon
(package-with-python2 python-dns-lexicon))

View File

@ -9,6 +9,7 @@
;;; Copyright © 2017 Quiliro <quiliro@fsfla.org>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1069,6 +1070,55 @@ between the host (QML/C++ application) and the client (HTML/JavaScript
application). The transport mechanism is supported out of the box by the two
popular web engines, Qt WebKit 2 and Qt WebEngine.")))
(define-public qtwebglplugin
(package (inherit qtsvg)
(name "qtwebglplugin")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"1al7dv7i9rg4z4p8vnipbjbbgc6113lbfjggxxap3sn6hqs986fm"))))
(native-inputs '())
(inputs
`(("mesa" ,mesa)
("qtbase" ,qtbase)
("qtwebsockets" ,qtwebsockets)))
(synopsis "QPA plugin for running an application via a browser using
streamed WebGL commands")
(description "Qt back end that uses WebGL for rendering. It allows Qt
applications (with some limitations) to run in a web browser that supports
WebGL. WebGL is a JavaScript API for rendering 2D and 3D graphics within any
compatible web browser without the use of plug-ins. The API is similar to
OpenGL ES 2.0 and can be used in HTML5 canvas elements")))
(define-public qtwebview
(package (inherit qtsvg)
(name "qtwebview")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"0a89v8mj5pb7a7whyhasf4ms0n34ghfmv2qp0pyxnq56f2bsjbl4"))))
(native-inputs
`(("perl" ,perl)))
(inputs
`(("qtbase" ,qtbase)
("qtdeclarative" ,qtdeclarative)))
(synopsis "Display web content in a QML application")
(description "Qt WebView provides a way to display web content in a QML
application without necessarily including a full web browser stack by using
native APIs where it makes sense.")))
(define-public qtlocation
(package (inherit qtsvg)
(name "qtlocation")

View File

@ -362,7 +362,10 @@ many event types, including timers, signals, and the classic file descriptor eve
#t))))
(build-system gnu-build-system)
(arguments
'(#:phases
'(;; LMDB is only supported on 64-bit systems, yet the test suite
;; requires it.
#:tests? (assoc-ref %build-inputs "lmdb")
#:phases
(modify-phases %standard-phases
(replace 'configure
;; ldb use a custom configuration script that runs waf.
@ -382,7 +385,9 @@ many event types, including timers, signals, and the classic file descriptor eve
`(("talloc" ,talloc)
("tdb" ,tdb)))
(inputs
`(("lmdb" ,lmdb)
`(,@(if (target-64bit?)
`(("lmdb" ,lmdb))
'())
("popt" ,popt)
("tevent" ,tevent)))
(synopsis "LDAP-like embedded database")

View File

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

View File

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

View File

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

View File

@ -10,6 +10,7 @@
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Petter <petter@mykolab.ch>
;;; Copyright © 2018 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -47,6 +48,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
@ -55,6 +57,8 @@
#:use-module (gnu packages python)
#:use-module (gnu packages python-web)
#:use-module (gnu packages qt)
#:use-module (gnu packages serialization)
#:use-module (gnu packages ssh)
#:use-module (gnu packages textutils)
#:use-module (gnu packages wm)
#:use-module (gnu packages xdisorg)
@ -845,3 +849,33 @@ per-line fullscreen terminal rendering, and keyboard input event reporting.")
(define-public python2-curtsies
(package-with-python2 python-curtsies))
(define-public tmate
(package
(name "tmate")
(version "2.2.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/tmate-io/tmate/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"01f3hhm3x0sd6apyb1ajkjfdfvq5m2759w00yp2slr9fyicsrhnr"))))
(build-system gnu-build-system)
(inputs
`(("libevent" ,libevent)
("libssh" ,libssh)
("msgpack" ,msgpack)
("ncurses" ,ncurses)))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("pkg-config" ,pkg-config)))
(home-page "https://tmate.io/")
(synopsis "Terminal sharing application")
(description "tmate is a terminal sharing application that allows you to
share your terminal with other users over the Internet. tmate is a fork of
tmux.")
(license license:isc)))

View File

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

View File

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

View File

@ -12,6 +12,7 @@
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -38,10 +39,14 @@
#:use-module (guix build-system python)
#:use-module (guix build-system cmake)
#:use-module (guix build-system haskell)
#:use-module (guix build-system trivial)
#:use-module (gnu packages compression)
#:use-module (gnu packages)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages dns)
#:use-module (gnu packages gawk)
#:use-module (gnu packages guile)
#:use-module (gnu packages haskell)
#:use-module (gnu packages haskell-check)
@ -459,14 +464,14 @@ required structures.")
(define-public libressl
(package
(name "libressl")
(version "2.7.3")
(version "2.7.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://openbsd/LibreSSL/"
name "-" version ".tar.gz"))
(sha256
(base32
"1597kj9jy3jyw52ys19sd4blg2gkam5q0rqdxbnrnvnyw67hviqn"))))
"19kxa5i97q7p6rrps9qm0nd8zqhdjvzx02j72400c73cl2nryfhy"))))
(build-system gnu-build-system)
(arguments
;; Do as if 'getentropy' was missing since older Linux kernels lack it
@ -503,13 +508,13 @@ netcat implementation that supports TLS.")
(package
(name "python-acme")
;; Remember to update the hash of certbot when updating python-acme.
(version "0.24.0")
(version "0.25.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "acme" version))
(sha256
(base32
"1jq1nlly5146k08dw31fc1pw78plya5jswznnd512c08giif0mfn"))))
"0d177dhy8a7472pz9v4blrlk02d8fp6s52li7z8v3dv97pvz7da7"))))
(build-system python-build-system)
(arguments
`(#:phases
@ -528,6 +533,7 @@ netcat implementation that supports TLS.")
;; TODO: Add optional inputs for testing.
(native-inputs
`(("python-mock" ,python-mock)
("python-pytest" ,python-pytest)
;; For documentation
("python-sphinx" ,python-sphinx)
("python-sphinxcontrib-programoutput" ,python-sphinxcontrib-programoutput)
@ -537,6 +543,7 @@ netcat implementation that supports TLS.")
`(("python-josepy" ,python-josepy)
("python-six" ,python-six)
("python-requests" ,python-requests)
("python-requests-toolbelt" ,python-requests-toolbelt)
("python-pytz" ,python-pytz)
("python-pyrfc3339" ,python-pyrfc3339)
("python-pyasn1" ,python-pyasn1)
@ -558,7 +565,7 @@ netcat implementation that supports TLS.")
(uri (pypi-uri name version))
(sha256
(base32
"0w3dbz74rpabjnc3l3ybnzjdypbr65lsjqf9yn243b5kid9d8wm0"))))
"0kp56gwn1bnlrag9qidhm1i5ifdp5z6y1ravh3yimfrkc4cfa8sw"))))
(build-system python-build-system)
(arguments
`(,@(substitute-keyword-arguments (package-arguments python-acme)
@ -873,3 +880,69 @@ implement the SSL3.0, TLS1.0, TLS1.1 and TLS1.2 protocol, and support RSA and
Ephemeral (Elliptic curve and regular) Diffie Hellman key exchanges, and many
extensions.")
(license license:bsd-3)))
(define-public dehydrated
(package
(name "dehydrated")
(version "0.6.2")
(source (origin
(method url-fetch/tarbomb)
(uri (string-append
"https://github.com/lukas2511/dehydrated/archive/v"
version ".tar.gz"))
(sha256
(base32
"03p80yj6bnzjc6dkp5hb9wpplmlrla8n5src71cnzw4rj53q8cqn"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let* ((source (assoc-ref %build-inputs "source"))
(out (assoc-ref %outputs "out"))
(bin (string-append out "/bin"))
(bash (in-vicinity (assoc-ref %build-inputs "bash") "bin")))
(mkdir-p bin)
(with-directory-excursion bin
(copy-file
(in-vicinity source (string-append "/dehydrated-" ,version
"/dehydrated"))
(in-vicinity bin "dehydrated"))
(patch-shebang "dehydrated" (list bash))
;; Do not try to write in the store.
(substitute* "dehydrated"
(("SCRIPTDIR=\"\\$.*\"") "SCRIPTDIR=~/.dehydrated"))
(setenv "PATH" bash)
(wrap-program "dehydrated"
`("PATH" ":" prefix
,(map (lambda (dir)
(string-append dir "/bin"))
(map (lambda (input)
(assoc-ref %build-inputs input))
'("coreutils"
"curl"
"diffutils"
"gawk"
"grep"
"openssl"
"sed"))))))
#t))))
(inputs
`(("bash" ,bash)
("coreutils" ,coreutils)
("curl" ,curl)
("diffutils" ,diffutils)
("gawk" ,gawk)
("grep" ,grep)
("openssl" ,openssl)
("sed" ,sed)))
(home-page "https://dehydrated.io/")
(synopsis "Let's Encrypt/ACME client implemented as a shell script")
(description "Dehydrated is a client for signing certificates with an
ACME-server (currently only provided by Let's Encrypt) implemented as a
relatively simple Bash script.")
(license license:expat)))

View File

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

View File

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

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
(package
(name "ffmpeg")
(version "4.0")
(version "4.0.1")
(source (origin
(method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz"))
(sha256
(base32
"0gx4ngnhi5glmxh38603qy5n6vq8bl1cr4sqd1xff95i82pmv57d"))))
"1vn04n0n46zdxq14cma3w8ml2ckh5jxwlybsc4xmvcqdqq0mqpv0"))))
(build-system gnu-build-system)
(inputs
`(("fontconfig" ,fontconfig)

View File

@ -450,59 +450,57 @@ trouble using them, because you do not have to remember each snippet name.")
(home-page "https://github.com/Shougo/context_filetype.vim")
(license license:expat)))) ; ??? check again
;; The 2.2 release was in 2015, no new releases planned.
(define-public vim-fugitive
(let ((commit "de6c05720cdf74c0218218d7207f700232a5b6dc")
(revision "1"))
(package
(name "vim-fugitive")
(version (string-append "2.2-" revision "." (string-take commit 7)))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tpope/vim-fugitive.git")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"0zg9vv7hirnx45vc2mwgg0xijmwwz55bssyd6cpdz71wbhrcpxxb"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(vimfiles (string-append out "/share/vim/vimfiles"))
(doc (string-append vimfiles "/doc"))
(plugin (string-append vimfiles "/plugin")))
(copy-recursively "doc" doc)
(copy-recursively "plugin" plugin)
#t))))))
(home-page "https://github.com/tpope/vim-fugitive")
(synopsis "Vim plugin to work with Git")
(description "Vim-fugitive is a wrapper for Vim that complements the
(package
(name "vim-fugitive")
(version "2.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tpope/vim-fugitive.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"17s94a8g5z0lrs7yy4nyqyvp9ykys5ws2ar3m3c0bjsn0iazd7m3"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(vimfiles (string-append out "/share/vim/vimfiles"))
(doc (string-append vimfiles "/doc"))
(plugin (string-append vimfiles "/plugin")))
(copy-recursively "doc" doc)
(copy-recursively "plugin" plugin)
#t))))))
(home-page "https://github.com/tpope/vim-fugitive")
(synopsis "Vim plugin to work with Git")
(description "Vim-fugitive is a wrapper for Vim that complements the
command window, where you can stage and review your changes before the next
commit or run any Git arbitrary command.")
(license license:vim)))) ; distributed under the same license as vim
(license license:vim))) ; distributed under the same license as vim
(define-public vim-airline
(package
(name "vim-airline")
(version "0.8")
(version "0.9")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/vim-airline/vim-airline/"
"archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/vim-airline/vim-airline")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"053sfq3jmgdc5y7zbg6jrk7r2hp0raj3y3mxa2h1c1bnkb6wvcaz"))))
"0hq3304rhakx7x1v7wll7gxinmfz6561bq97qpj8jrk19rhcab75"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
@ -575,16 +573,17 @@ and powerline symbols, etc.")
(define-public vim-syntastic
(package
(name "vim-syntastic")
(version "3.8.0")
(version "3.9.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/vim-syntastic/syntastic/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/vim-syntastic/syntastic")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0wsnd9bsp5x6yiw96h1bnd1vyxdkh130hb82kyyxydgsplx92ima"))))
"121a1mxgfng2y5zmivyyk02mca8pyw72crivf4f1q9nhn0barf57"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f

View File

@ -45,6 +45,7 @@
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
@ -52,6 +53,7 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
#:use-module (gnu packages package-management)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages polkit)
@ -71,6 +73,7 @@
#:use-module (guix build-system go)
#:use-module (guix build-system python)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:select (gpl2 gpl2+ gpl3+ lgpl2.1 lgpl2.1+
asl2.0))
#:use-module (guix packages)
@ -864,3 +867,110 @@ packaged according to the
Container Initiative (OCI) format} and is a compliant implementation of the
Open Container Initiative specification.")
(license asl2.0)))
(define-public umoci
(package
(name "umoci")
(version "0.4.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/openSUSE/umoci/releases/download/v"
version "/umoci.tar.xz"))
(file-name (string-append "umoci-" version ".tar.xz"))
(sha256
(base32
"0hg7hs4dagj2fgymm4b4s68k1v2k2093s3jg0d94j0ixhfmyg9nd"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/openSUSE/umoci"
#:install-source? #f
#:phases
(modify-phases %standard-phases
(replace 'unpack
(lambda* (#:key source import-path #:allow-other-keys)
;; Unpack the tarball into 'umoci' instead of "runc-${version}".
(let ((dest (string-append "src/" import-path)))
(mkdir-p dest)
(invoke "tar" "-C" (string-append "src/" import-path)
"--strip-components=1"
"-xvf" source))))
(replace 'build
(lambda* (#:key import-path #:allow-other-keys)
(chdir (string-append "src/" import-path))
;; TODO: build manpages with 'go-md2man'.
(invoke "make" "SHELL=bash")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bindir (string-append out "/bin")))
(install-file "umoci" bindir)
#t))))))
(home-page "https://umo.ci/")
(synopsis "Tool for modifying Open Container images")
(description
"@command{umoci} is a tool that allows for high-level modification of an
Open Container Initiative (OCI) image layout and its tagged images.")
(license asl2.0)))
(define-public skopeo
(package
(name "skopeo")
(version "0.1.28")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/projectatomic/skopeo")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"068nwrr3nr27alravcq1sxyhdd5jjr24213vdgn1dqva3885gbi0"))))
(build-system go-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("btrfs-progs" ,btrfs-progs)
("eudev" ,eudev)
("libassuan" ,libassuan)
("libselinux" ,libselinux)
("libostree" ,libostree)
("lvm2" ,lvm2)
("glib" ,glib)
("gpgme" ,gpgme)))
(arguments
'(#:import-path "github.com/projectatomic/skopeo"
#:install-source? #f
#:phases
(modify-phases %standard-phases
(replace 'build
(lambda* (#:key import-path #:allow-other-keys)
(chdir (string-append "src/" import-path))
;; TODO: build manpages with 'go-md2man'.
(invoke "make" "binary-local")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(invoke "make" "install-binary" "install-completions"
(string-append "PREFIX=" out))))))))
(home-page "https://github.com/projectatomic/skopeo")
(synopsis "Interact with container images and container image registries")
(description
"@command{skopeo} is a command line utility providing various operations
with container images and container image registries. It can:
@enumerate
@item Copy container images between various containers image stores,
converting them as necessary.
@item Convert a Docker schema 2 or schema 1 container image to an OCI image.
@item Inspect a repository on a container registry without needlessly pulling
the image.
@item Sign and verify container images.
@item Delete container images from a remote container registry.
@end enumerate")
(license asl2.0)))

View File

@ -4024,14 +4024,14 @@ objects in HTML format.")
(define-public r-rjson
(package
(name "r-rjson")
(version "0.2.19")
(version "0.2.20")
(source
(origin
(method url-fetch)
(uri (cran-uri "rjson" version))
(sha256
(base32
"1g29vp3gfbh73a5br68jydsrigia4vnr5avc84avgwl6353749jw"))))
"0v1zvdd3svnavklh7y5xbwrrkbvx6053r4c5hgnk7hz7bqg7qa1s"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/rjson")
(synopsis "JSON library for R")
@ -6117,6 +6117,11 @@ infrastructure")))
(inherit java-eclipse-jetty-security)
(version (package-version java-eclipse-jetty-util-9.2))
(source (package-source java-eclipse-jetty-util-9.2))
(arguments
`(#:test-exclude
;; This test fails.
(list "**/ConstraintTest.*")
,@(package-arguments java-eclipse-jetty-security)))
(inputs
`(("util" ,java-eclipse-jetty-util-9.2)
("http" ,java-eclipse-jetty-http-9.2)
@ -6182,6 +6187,107 @@ container.")))
("server" ,java-eclipse-jetty-server-9.2)
,@(package-inputs java-eclipse-jetty-util-9.2)))))
(define-public java-eclipse-jetty-xml
(package
(inherit java-eclipse-jetty-util)
(name "java-eclipse-jetty-xml")
(arguments
`(#:jar-name "eclipse-jetty-xml.jar"
#:source-dir "src/main/java"
#:jdk ,icedtea-8
#:tests? #f; most tests require network
#:phases
(modify-phases %standard-phases
(add-before 'configure 'chdir
(lambda _
(chdir "jetty-xml")
#t)))))
(inputs
`(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)))
(native-inputs
`(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
,@(package-native-inputs java-eclipse-jetty-util)))))
(define-public java-eclipse-jetty-xml-9.2
(package
(inherit java-eclipse-jetty-xml)
(version (package-version java-eclipse-jetty-util-9.2))
(source (package-source java-eclipse-jetty-util-9.2))
(arguments
`(#:jar-name "eclipse-jetty-xml.jar"
#:source-dir "src/main/java"
#:jdk ,icedtea-8
#:tests? #f; most tests require network
#:phases
(modify-phases %standard-phases
(add-before 'configure 'chdir
(lambda _
(chdir "jetty-xml")
#t)))))
(inputs
`(("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
,@(package-inputs java-eclipse-jetty-util-9.2)))
(native-inputs
`(("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
(define-public java-eclipse-jetty-webapp
(package
(inherit java-eclipse-jetty-util)
(name "java-eclipse-jetty-webapp")
(arguments
`(#:jar-name "eclipse-jetty-webapp.jar"
#:source-dir "src/main/java"
#:jdk ,icedtea-8
;; One test fails
#:test-exclude (list "**/WebAppContextTest.java")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'chdir
(lambda _
(chdir "jetty-webapp")
#t)))))
(inputs
`(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)
("java-eclipse-jetty-http" ,java-eclipse-jetty-http)
("java-eclipse-jetty-server" ,java-eclipse-jetty-server)
("java-eclipse-jetty-servlet" ,java-eclipse-jetty-servlet)
("java-eclipse-jetty-security" ,java-eclipse-jetty-security)
("java-eclipse-jetty-xml" ,java-eclipse-jetty-xml)
("java-tomcat" ,java-tomcat)))
(native-inputs
`(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
,@(package-native-inputs java-eclipse-jetty-util)))))
(define-public java-eclipse-jetty-webapp-9.2
(package
(inherit java-eclipse-jetty-webapp)
(version (package-version java-eclipse-jetty-util-9.2))
(source (package-source java-eclipse-jetty-util-9.2))
(arguments
`(#:jar-name "eclipse-jetty-webapp.jar"
#:source-dir "src/main/java"
#:jdk ,icedtea-8
#:test-exclude (list "**/WebAppContextTest.java")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'chdir
(lambda _
(chdir "jetty-webapp")
#t)))))
(inputs
`(("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
("java-eclipse-jetty-xml-9.2" ,java-eclipse-jetty-xml-9.2)
("java-tomcat" ,java-tomcat)
,@(package-inputs java-eclipse-jetty-util-9.2)))
(native-inputs
`(("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
(define-public java-jsoup
(package
(name "java-jsoup")

View File

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

View File

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

View File

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

View File

@ -15,6 +15,7 @@
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -5855,6 +5856,34 @@ perl programs to display windows and graphics on X11 servers.")
;; for details)."
(license license:perl-license)))
(define-public perl-x11-protocol-other
(package
(name "perl-x11-protocol-other")
(version "30")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://cpan/authors/id/K/KR/KRYDE/X11-Protocol-Other-"
version ".tar.gz"))
(sha256
(base32
"1mambi57cdkj82wiw1l8y2f70a60qsamdas0165hlj10drryfgrj"))))
(build-system perl-build-system)
(native-inputs
`(("perl-encode-hanextra" ,perl-encode-hanextra)
("perl-module-util" ,perl-module-util)))
(propagated-inputs
`(("perl-x11-protocol" ,perl-x11-protocol)))
(home-page "http://search.cpan.org/dist/X11-Protocol-Other/")
(synopsis "Miscellaneous helpers for @code{X11::Protocol} connections")
(description
"@code{X11::Protocol::Other} contains window manager related functions for
use by client programs, as per the @dfn{ICCCM} (Inter-Client Communication
Conventions Manual) and some of the @dfn{EWMH}
(Extended Window Manager Hints).")
(license license:gpl3+)))
(define-public xcompmgr
(package
(name "xcompmgr")

View File

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

View File

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

View File

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

View File

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

View File

@ -194,10 +194,15 @@
;; differs from user to user.
(define (%store-prefix)
"Return the store prefix."
(cond ((resolve-module '(guix store) #:ensure #f)
;; Note: If we have (guix store database) in the search path and we do *not*
;; have (guix store) proper, 'resolve-module' returns an empty (guix store)
;; with one sub-module.
(cond ((and=> (resolve-module '(guix store) #:ensure #f)
(lambda (store)
(module-variable store '%store-prefix)))
=>
(lambda (store)
((module-ref store '%store-prefix))))
(lambda (variable)
((variable-ref variable))))
((getenv "NIX_STORE")
=> identity)
(else

View File

@ -54,7 +54,8 @@
novena-installation-os
pine64-plus-installation-os
rk3399-puma-installation-os
wandboard-installation-os))
wandboard-installation-os
os-with-u-boot))
;;; Commentary:
;;;
@ -386,6 +387,19 @@ You have been warned. Thanks for being so brave.\x1b[0m
nvi ;:wq!
%base-packages))))
(define* (os-with-u-boot os board #:key (bootloader-target "/dev/mmcblk0")
(triplet "arm-linux-gnueabihf"))
"Given OS, amend it with the u-boot bootloader for BOARD,
installed to BOOTLOADER-TARGET (a drive), compiled for TRIPLET.
If you want a serial console, make sure to specify one in your
operating-system's kernel-arguments (\"console=ttyS0\" or similar)."
(operating-system (inherit os)
(bootloader (bootloader-configuration
(bootloader (bootloader (inherit u-boot-bootloader)
(package (make-u-boot-package board triplet))))
(target bootloader-target)))))
(define* (embedded-installation-os bootloader bootloader-target tty
#:key (extra-modules '()))
"Return an installation os for embedded systems.

View File

@ -32,7 +32,8 @@
#:use-module (gnu system uuid)
#:autoload (gnu build file-systems) (find-partition-by-luks-uuid)
#:autoload (gnu build linux-modules)
(device-module-aliases matching-modules known-module-aliases)
(device-module-aliases matching-modules known-module-aliases
normalize-module-name)
#:autoload (gnu packages cryptsetup) (cryptsetup-static)
#:autoload (gnu packages linux) (mdadm-static)
#:use-module (srfi srfi-1)
@ -127,10 +128,15 @@ DEVICE must be a \"/dev\" file name."
(const #f)))
(when aliases
(let ((modules (delete-duplicates
(append-map (cut matching-modules <> aliases)
(device-module-aliases device)))))
(unless (every (cute member <> linux-modules) modules)
(let ((modules (delete-duplicates
(append-map (cut matching-modules <> aliases)
(device-module-aliases device))))
;; Module names (not file names) are supposed to use underscores
;; instead of hyphens. MODULES is a list of module names, whereas
;; LINUX-MODULES is file names without '.ko', so normalize them.
(provided (map normalize-module-name linux-modules)))
(unless (every (cut member <> provided) modules)
(raise (condition
(&message
(message (format #f (G_ "you may need these modules \

View File

@ -34,6 +34,7 @@
#:use-module (guix utils)
#:use-module (guix hash)
#:use-module (guix base32)
#:use-module ((guix self) #:select (make-config.scm))
#:use-module ((gnu build vm)
#:select (qemu-command))
@ -50,7 +51,6 @@
#:use-module (gnu packages disk)
#:use-module (gnu packages zile)
#:use-module (gnu packages linux)
#:use-module (gnu packages package-management)
#:use-module ((gnu packages make-bootstrap)
#:select (%guile-static-stripped))
#:use-module (gnu packages admin)
@ -116,6 +116,19 @@
(options "trans=virtio")
(check? #f))))
(define not-config?
;; Select (guix …) and (gnu …) modules, except (guix config).
(match-lambda
(('guix 'config) #f)
(('guix rest ...) #t)
(('gnu rest ...) #t)
(rest #f)))
(define guile-sqlite3&co
;; Guile-SQLite3 and its propagated inputs.
(cons guile-sqlite3
(package-transitive-propagated-inputs guile-sqlite3)))
(define* (expression->derivation-in-linux-vm name exp
#:key
(system (%current-system))
@ -151,12 +164,28 @@ based on the size of the closure of REFERENCES-GRAPHS.
When REFERENCES-GRAPHS is true, it must be a list of file name/store path
pairs, as for `derivation'. The files containing the reference graphs are
made available under the /xchg CIFS share."
(define config
;; (guix config) module for consumption by (guix gcrypt).
(make-config.scm #:libgcrypt libgcrypt))
(define user-builder
(program-file "builder-in-linux-vm" exp))
(define loader
;; Invoke USER-BUILDER instead using 'primitive-load'. The reason for
;; this is to allow USER-BUILDER to dlopen stuff by using a full-featured
;; Guile, which it couldn't do using the statically-linked guile used in
;; the initrd. See example at
;; <https://lists.gnu.org/archive/html/guix-devel/2017-10/msg00233.html>.
(program-file "linux-vm-loader"
;; When USER-BUILDER succeeds, reboot (indicating a
;; success), otherwise die, which causes a kernel panic
;; ("Attempted to kill init!").
#~(when (zero? (system* #$user-builder))
(reboot))))
(mlet* %store-monad
((user-builder (gexp->file "builder-in-linux-vm" exp))
(loader (gexp->file "linux-vm-loader"
#~(primitive-load #$user-builder)))
(coreutils -> (canonical-package coreutils))
(initrd (if initrd ; use the default initrd?
((initrd (if initrd ; use the default initrd?
(return initrd)
(base-initrd file-systems
#:on-error 'backtrace
@ -166,40 +195,44 @@ made available under the /xchg CIFS share."
(define builder
;; Code that launches the VM that evaluates EXP.
(with-imported-modules (source-module-closure '((guix build utils)
(gnu build vm)))
#~(begin
(use-modules (guix build utils)
(gnu build vm))
(with-extensions guile-sqlite3&co
(with-imported-modules `(,@(source-module-closure
'((guix build utils)
(gnu build vm))
#:select? not-config?)
((guix config) => ,config))
#~(begin
(use-modules (guix build utils)
(gnu build vm))
(let* ((inputs '#$(list qemu coreutils))
(linux (string-append #$linux "/"
#$(system-linux-image-file-name)))
(initrd (string-append #$initrd "/initrd"))
(loader #$loader)
(graphs '#$(match references-graphs
(((graph-files . _) ...) graph-files)
(_ #f)))
(size #$(if (eq? 'guess disk-image-size)
#~(+ (* 70 (expt 2 20)) ;ESP
(estimated-partition-size graphs))
disk-image-size)))
(let* ((inputs '#$(list qemu (canonical-package coreutils)))
(linux (string-append #$linux "/"
#$(system-linux-image-file-name)))
(initrd (string-append #$initrd "/initrd"))
(loader #$loader)
(graphs '#$(match references-graphs
(((graph-files . _) ...) graph-files)
(_ #f)))
(size #$(if (eq? 'guess disk-image-size)
#~(+ (* 70 (expt 2 20)) ;ESP
(estimated-partition-size graphs))
disk-image-size)))
(set-path-environment-variable "PATH" '("bin") inputs)
(set-path-environment-variable "PATH" '("bin") inputs)
(load-in-linux-vm loader
#:output #$output
#:linux linux #:initrd initrd
#:memory-size #$memory-size
#:make-disk-image? #$make-disk-image?
#:single-file-output? #$single-file-output?
;; FIXME: target-arm32? may not operate on
;; the right system/target values. Rewrite
;; using let-system when available.
#:target-arm32? #$(target-arm32?)
#:disk-image-format #$disk-image-format
#:disk-image-size size
#:references-graphs graphs)))))
(load-in-linux-vm loader
#:output #$output
#:linux linux #:initrd initrd
#:memory-size #$memory-size
#:make-disk-image? #$make-disk-image?
#:single-file-output? #$single-file-output?
;; FIXME: target-arm32? may not operate on
;; the right system/target values. Rewrite
;; using let-system when available.
#:target-arm32? #$(target-arm32?)
#:disk-image-format #$disk-image-format
#:disk-image-size size
#:references-graphs graphs))))))
(gexp->derivation name builder
;; TODO: Require the "kvm" feature.
@ -222,43 +255,56 @@ made available under the /xchg CIFS share."
"Return a bootable, stand-alone iso9660 image.
INPUTS is a list of inputs (as for packages)."
(define config
(make-config.scm #:libgcrypt libgcrypt))
(define schema
(and register-closures?
(local-file (search-path %load-path
"guix/store/schema.sql"))))
(expression->derivation-in-linux-vm
name
(with-imported-modules (source-module-closure '((gnu build vm)
(guix build utils)))
#~(begin
(use-modules (gnu build vm)
(guix build utils))
(with-extensions guile-sqlite3&co
(with-imported-modules `(,@(source-module-closure '((gnu build vm)
(guix store database)
(guix build utils))
#:select? not-config?)
((guix config) => ,config))
#~(begin
(use-modules (gnu build vm)
(guix store database)
(guix build utils))
(let ((inputs
'#$(append (list qemu parted e2fsprogs dosfstools xorriso)
(map canonical-package
(list sed grep coreutils findutils gawk))
(if register-closures? (list guix) '())))
(sql-schema #$schema)
(let ((inputs
'#$(append (list qemu parted e2fsprogs dosfstools xorriso)
(map canonical-package
(list sed grep coreutils findutils gawk))))
(graphs '#$(match inputs
(((names . _) ...)
names)))
;; This variable is unused but allows us to add INPUTS-TO-COPY
;; as inputs.
(to-register
'#$(map (match-lambda
((name thing) thing)
((name thing output) `(,thing ,output)))
inputs)))
(graphs '#$(match inputs
(((names . _) ...)
names)))
;; This variable is unused but allows us to add INPUTS-TO-COPY
;; as inputs.
(to-register
'#$(map (match-lambda
((name thing) thing)
((name thing output) `(,thing ,output)))
inputs)))
(set-path-environment-variable "PATH" '("bin" "sbin") inputs)
(make-iso9660-image #$(bootloader-package bootloader)
#$bootcfg-drv
#$os-drv
"/xchg/guixsd.iso"
#:register-closures? #$register-closures?
#:closures graphs
#:volume-id #$file-system-label
#:volume-uuid #$(and=> file-system-uuid
uuid-bytevector))
(reboot))))
(set-path-environment-variable "PATH" '("bin" "sbin") inputs)
(make-iso9660-image #$(bootloader-package bootloader)
#$bootcfg-drv
#$os-drv
"/xchg/guixsd.iso"
#:register-closures? #$register-closures?
#:closures graphs
#:volume-id #$file-system-label
#:volume-uuid #$(and=> file-system-uuid
uuid-bytevector))))))
#:system system
;; Keep a local file system for /tmp so that we can populate it directly as
@ -301,91 +347,104 @@ INPUTS is a list of inputs (as for packages). When COPY-INPUTS? is true, copy
all of INPUTS into the image being built. When REGISTER-CLOSURES? is true,
register INPUTS in the store database of the image so that Guix can be used in
the image."
(define config
(make-config.scm #:libgcrypt libgcrypt))
(define schema
(and register-closures?
(local-file (search-path %load-path
"guix/store/schema.sql"))))
(expression->derivation-in-linux-vm
name
(with-imported-modules (source-module-closure '((gnu build bootloader)
(gnu build vm)
(guix build utils)))
#~(begin
(use-modules (gnu build bootloader)
(gnu build vm)
(guix build utils)
(srfi srfi-26)
(ice-9 binary-ports))
(with-extensions guile-sqlite3&co
(with-imported-modules `(,@(source-module-closure '((gnu build vm)
(gnu build bootloader)
(guix store database)
(guix build utils))
#:select? not-config?)
((guix config) => ,config))
#~(begin
(use-modules (gnu build bootloader)
(gnu build vm)
(guix store database)
(guix build utils)
(srfi srfi-26)
(ice-9 binary-ports))
(let ((inputs
'#$(append (list qemu parted e2fsprogs dosfstools)
(map canonical-package
(list sed grep coreutils findutils gawk))
(if register-closures? (list guix) '())))
(sql-schema #$schema)
;; This variable is unused but allows us to add INPUTS-TO-COPY
;; as inputs.
(to-register
'#$(map (match-lambda
((name thing) thing)
((name thing output) `(,thing ,output)))
inputs)))
(let ((inputs
'#$(append (list qemu parted e2fsprogs dosfstools)
(map canonical-package
(list sed grep coreutils findutils gawk))))
(set-path-environment-variable "PATH" '("bin" "sbin") inputs)
;; This variable is unused but allows us to add INPUTS-TO-COPY
;; as inputs.
(to-register
'#$(map (match-lambda
((name thing) thing)
((name thing output) `(,thing ,output)))
inputs)))
(let* ((graphs '#$(match inputs
(((names . _) ...)
names)))
(initialize (root-partition-initializer
#:closures graphs
#:copy-closures? #$copy-inputs?
#:register-closures? #$register-closures?
#:system-directory #$os-drv))
(root-size #$(if (eq? 'guess disk-image-size)
#~(max
;; Minimum 20 MiB root size
(* 20 (expt 2 20))
(estimated-partition-size
(map (cut string-append "/xchg/" <>)
graphs)))
(- disk-image-size
(* 50 (expt 2 20)))))
(partitions
(append
(list (partition
(size root-size)
(label #$file-system-label)
(uuid #$(and=> file-system-uuid
uuid-bytevector))
(file-system #$file-system-type)
(flags '(boot))
(initializer initialize)))
;; Append a small EFI System Partition for use with UEFI
;; bootloaders if we are not targeting ARM because UEFI
;; support in U-Boot is experimental.
;;
;; FIXME: target-arm32? may be not operate on the right
;; system/target values. Rewrite using let-system when
;; available.
(if #$(target-arm32?)
'()
(list (partition
;; The standalone grub image is about 10MiB, but
;; leave some room for custom or multiple images.
(size (* 40 (expt 2 20)))
(label "GNU-ESP") ;cosmetic only
;; Use "vfat" here since this property is used
;; when mounting. The actual FAT-ness is based
;; on file system size (16 in this case).
(file-system "vfat")
(flags '(esp))))))))
(initialize-hard-disk "/dev/vda"
#:partitions partitions
#:grub-efi #$grub-efi
#:bootloader-package
#$(bootloader-package bootloader)
#:bootcfg #$bootcfg-drv
#:bootcfg-location
#$(bootloader-configuration-file bootloader)
#:bootloader-installer
#$(bootloader-installer bootloader))
(reboot)))))
(set-path-environment-variable "PATH" '("bin" "sbin") inputs)
(let* ((graphs '#$(match inputs
(((names . _) ...)
names)))
(initialize (root-partition-initializer
#:closures graphs
#:copy-closures? #$copy-inputs?
#:register-closures? #$register-closures?
#:system-directory #$os-drv))
(root-size #$(if (eq? 'guess disk-image-size)
#~(max
;; Minimum 20 MiB root size
(* 20 (expt 2 20))
(estimated-partition-size
(map (cut string-append "/xchg/" <>)
graphs)))
(- disk-image-size
(* 50 (expt 2 20)))))
(partitions
(append
(list (partition
(size root-size)
(label #$file-system-label)
(uuid #$(and=> file-system-uuid
uuid-bytevector))
(file-system #$file-system-type)
(flags '(boot))
(initializer initialize)))
;; Append a small EFI System Partition for use with UEFI
;; bootloaders if we are not targeting ARM because UEFI
;; support in U-Boot is experimental.
;;
;; FIXME: target-arm32? may be not operate on the right
;; system/target values. Rewrite using let-system when
;; available.
(if #$(target-arm32?)
'()
(list (partition
;; The standalone grub image is about 10MiB, but
;; leave some room for custom or multiple images.
(size (* 40 (expt 2 20)))
(label "GNU-ESP") ;cosmetic only
;; Use "vfat" here since this property is used
;; when mounting. The actual FAT-ness is based
;; on file system size (16 in this case).
(file-system "vfat")
(flags '(esp))))))))
(initialize-hard-disk "/dev/vda"
#:partitions partitions
#:grub-efi #$grub-efi
#:bootloader-package
#$(bootloader-package bootloader)
#:bootcfg #$bootcfg-drv
#:bootcfg-location
#$(bootloader-configuration-file bootloader)
#:bootloader-installer
#$(bootloader-installer bootloader)))))))
#:system system
#:make-disk-image? #t
#:disk-image-size disk-image-size
@ -403,49 +462,41 @@ makes sense when you want to build a GuixSD Docker image that has Guix
installed inside of it. If you don't need Guix (e.g., your GuixSD Docker
image just contains a web server that is started by the Shepherd), then you
should set REGISTER-CLOSURES? to #f."
(define not-config?
(match-lambda
(('guix 'config) #f)
(('guix rest ...) #t)
(('gnu rest ...) #t)
(rest #f)))
(define config
;; (guix config) module for consumption by (guix gcrypt).
(scheme-file "gcrypt-config.scm"
#~(begin
(define-module (guix config)
#:export (%libgcrypt))
(make-config.scm #:libgcrypt libgcrypt))
;; XXX: Work around <http://bugs.gnu.org/15602>.
(eval-when (expand load eval)
(define %libgcrypt
#+(file-append libgcrypt "/lib/libgcrypt"))))))
(define schema
(and register-closures?
(local-file (search-path %load-path
"guix/store/schema.sql"))))
(mlet %store-monad ((os-drv (operating-system-derivation os #:container? #t))
(name -> (string-append name ".tar.gz"))
(graph -> "system-graph"))
(define build
(with-extensions (list guile-json) ;for (guix docker)
(with-extensions (cons guile-json ;for (guix docker)
guile-sqlite3&co) ;for (guix store database)
(with-imported-modules `(,@(source-module-closure
'((guix docker)
(guix store database)
(guix build utils)
(guix build store-copy)
(gnu build vm))
#:select? not-config?)
(guix build store-copy)
((guix config) => ,config))
#~(begin
(use-modules (guix docker)
(guix build utils)
(gnu build vm)
(srfi srfi-19)
(guix build store-copy))
(guix build store-copy)
(guix store database))
(let* ((inputs '#$(append (list tar)
(if register-closures?
(list guix)
'())))
;; This initializer requires elevated privileges that are
;; Set the SQL schema location.
(sql-schema #$schema)
(let* (;; This initializer requires elevated privileges that are
;; not normally available in the build environment (e.g.,
;; it needs to create device nodes). In order to obtain
;; such privileges, we run it as root in a VM.
@ -460,33 +511,22 @@ should set REGISTER-CLOSURES? to #f."
;; lack of privileges if we use a root-directory that is on
;; a file system that is shared with the host (e.g., /tmp).
(root-directory "/guixsd-system-root"))
(set-path-environment-variable "PATH" '("bin" "sbin") inputs)
(set-path-environment-variable "PATH" '("bin" "sbin") '(#+tar))
(mkdir root-directory)
(initialize root-directory)
(build-docker-image
(string-append "/xchg/" #$name) ;; The output file.
(cons* root-directory
(call-with-input-file (string-append "/xchg/" #$graph)
read-reference-graph))
(map store-info-item
(call-with-input-file
(string-append "/xchg/" #$graph)
read-reference-graph)))
#$os-drv
#:compressor '(#+(file-append gzip "/bin/gzip") "-9n")
#:creation-time (make-time time-utc 0 1)
#:transformations `((,root-directory -> ""))))))))
(expression->derivation-in-linux-vm
name
;; The VM's initrd Guile doesn't support dlopen, but our "build" gexp
;; needs to be run by a Guile that can dlopen libgcrypt. The following
;; hack works around that problem by putting the "build" gexp into an
;; executable script (created by program-file) which, when executed, will
;; run using a Guile that supports dlopen. That way, the VM's initrd
;; Guile can just execute it via invoke, without using dlopen. See:
;; https://lists.gnu.org/archive/html/guix-devel/2017-10/msg00233.html
(with-imported-modules `((guix build utils))
#~(begin
(use-modules (guix build utils))
;; If we use execl instead of invoke here, the VM will crash with a
;; kernel panic.
(invoke #$(program-file "build-docker-image" build))))
name build
#:make-disk-image? #f
#:single-file-output? #t
#:references-graphs `((,graph ,os-drv)))))

View File

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

View File

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

View File

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

View File

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

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