aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am6
-rw-r--r--build-aux/build-self.scm1
-rw-r--r--build-aux/compile-all.scm125
-rw-r--r--build-aux/download.scm73
-rw-r--r--build-aux/test-env.in16
-rw-r--r--doc/guix.texi148
-rw-r--r--gnu/local.mk74
-rw-r--r--gnu/packages/acl.scm19
-rw-r--r--gnu/packages/admin.scm21
-rw-r--r--gnu/packages/animation.scm71
-rw-r--r--gnu/packages/audio.scm59
-rw-r--r--gnu/packages/autotools.scm109
-rw-r--r--gnu/packages/backup.scm180
-rw-r--r--gnu/packages/base.scm146
-rw-r--r--gnu/packages/bioinformatics.scm178
-rw-r--r--gnu/packages/bootstrap.scm83
-rw-r--r--gnu/packages/check.scm4
-rw-r--r--gnu/packages/commencement.scm122
-rw-r--r--gnu/packages/compression.scm45
-rw-r--r--gnu/packages/cran.scm26
-rw-r--r--gnu/packages/cross-base.scm1
-rw-r--r--gnu/packages/crypto.scm32
-rw-r--r--gnu/packages/curl.scm29
-rw-r--r--gnu/packages/databases.scm32
-rw-r--r--gnu/packages/display-managers.scm9
-rw-r--r--gnu/packages/django.scm3
-rw-r--r--gnu/packages/dns.scm10
-rw-r--r--gnu/packages/emacs.scm32
-rw-r--r--gnu/packages/embedded.scm65
-rw-r--r--gnu/packages/engineering.scm2
-rw-r--r--gnu/packages/erlang.scm2
-rw-r--r--gnu/packages/file.scm14
-rw-r--r--gnu/packages/fonts.scm21
-rw-r--r--gnu/packages/game-development.scm5
-rw-r--r--gnu/packages/games.scm25
-rw-r--r--gnu/packages/gcc.scm38
-rw-r--r--gnu/packages/ghostscript.scm59
-rw-r--r--gnu/packages/glib.scm85
-rw-r--r--gnu/packages/gnome.scm15
-rw-r--r--gnu/packages/gnunet.scm4
-rw-r--r--gnu/packages/gnupg.scm147
-rw-r--r--gnu/packages/gnuzilla.scm11
-rw-r--r--gnu/packages/golang.scm6
-rw-r--r--gnu/packages/graph.scm30
-rw-r--r--gnu/packages/graphics.scm2
-rw-r--r--gnu/packages/graphviz.scm5
-rw-r--r--gnu/packages/groff.scm9
-rw-r--r--gnu/packages/gtk.scm16
-rw-r--r--gnu/packages/haskell.scm1120
-rw-r--r--gnu/packages/icu4c.scm10
-rw-r--r--gnu/packages/image.scm4
-rw-r--r--gnu/packages/irc.scm4
-rw-r--r--gnu/packages/java.scm215
-rw-r--r--gnu/packages/kde-frameworks.scm2
-rw-r--r--gnu/packages/kerberos.scm18
-rw-r--r--gnu/packages/libidn.scm19
-rw-r--r--gnu/packages/lighting.scm5
-rw-r--r--gnu/packages/linux.scm100
-rw-r--r--gnu/packages/lxqt.scm56
-rw-r--r--gnu/packages/mail.scm6
-rw-r--r--gnu/packages/mate.scm28
-rw-r--r--gnu/packages/maths.scm47
-rw-r--r--gnu/packages/messaging.scm4
-rw-r--r--gnu/packages/mp3.scm8
-rw-r--r--gnu/packages/multiprecision.scm4
-rw-r--r--gnu/packages/music.scm78
-rw-r--r--gnu/packages/musl.scm5
-rw-r--r--gnu/packages/networking.scm49
-rw-r--r--gnu/packages/ocaml.scm76
-rw-r--r--gnu/packages/package-management.scm47
-rw-r--r--gnu/packages/password-utils.scm5
-rw-r--r--gnu/packages/patches/automake-regexp-syntax.patch34
-rw-r--r--gnu/packages/patches/automake-test-gzip-warning.patch17
-rw-r--r--gnu/packages/patches/coreutils-cut-huge-range-test.patch33
-rw-r--r--gnu/packages/patches/crypto++-fix-dos-in-asn.1-decoders.patch65
-rw-r--r--gnu/packages/patches/gcc-asan-powerpc-missing-include.patch20
-rw-r--r--gnu/packages/patches/gcc-fix-texi2pod.patch19
-rw-r--r--gnu/packages/patches/ghostscript-CVE-2017-8291.patch195
-rw-r--r--gnu/packages/patches/glib-respect-datadir.patch21
-rw-r--r--gnu/packages/patches/glibc-CVE-2017-15670-15671.patch27
-rw-r--r--gnu/packages/patches/grep-gnulib-lock.patch32
-rw-r--r--gnu/packages/patches/icu4c-CVE-2017-14952.patch18
-rw-r--r--gnu/packages/patches/libvirt-CVE-2017-1000256.patch84
-rw-r--r--gnu/packages/patches/libxml2-CVE-2016-4658.patch257
-rw-r--r--gnu/packages/patches/libxml2-CVE-2016-5131.patch218
-rw-r--r--gnu/packages/patches/libxml2-CVE-2017-0663.patch53
-rw-r--r--gnu/packages/patches/libxml2-CVE-2017-7375.patch45
-rw-r--r--gnu/packages/patches/libxml2-CVE-2017-7376.patch41
-rw-r--r--gnu/packages/patches/libxml2-CVE-2017-9047+CVE-2017-9048.patch130
-rw-r--r--gnu/packages/patches/libxml2-CVE-2017-9049+CVE-2017-9050.patch319
-rw-r--r--gnu/packages/patches/libxslt-CVE-2016-4738.patch39
-rw-r--r--gnu/packages/patches/mupdf-CVE-2017-14685.patch34
-rw-r--r--gnu/packages/patches/mupdf-CVE-2017-14686.patch34
-rw-r--r--gnu/packages/patches/mupdf-CVE-2017-14687.patch130
-rw-r--r--gnu/packages/patches/musl-CVE-2016-8859.patch81
-rw-r--r--gnu/packages/patches/pcre-CVE-2017-7186.patch56
-rw-r--r--gnu/packages/patchutils.scm2
-rw-r--r--gnu/packages/pcre.scm22
-rw-r--r--gnu/packages/pdf.scm42
-rw-r--r--gnu/packages/perl.scm673
-rw-r--r--gnu/packages/protobuf.scm14
-rw-r--r--gnu/packages/python.scm40
-rw-r--r--gnu/packages/qt.scm14
-rw-r--r--gnu/packages/ruby.scm1
-rw-r--r--gnu/packages/screen.scm4
-rw-r--r--gnu/packages/serialization.scm2
-rw-r--r--gnu/packages/spice.scm4
-rw-r--r--gnu/packages/sssd.scm15
-rw-r--r--gnu/packages/statistics.scm27
-rw-r--r--gnu/packages/syncthing.scm39
-rw-r--r--gnu/packages/texinfo.scm20
-rw-r--r--gnu/packages/textutils.scm41
-rw-r--r--gnu/packages/tls.scm11
-rw-r--r--gnu/packages/tor.scm4
-rw-r--r--gnu/packages/version-control.scm8
-rw-r--r--gnu/packages/video.scm91
-rw-r--r--gnu/packages/vim.scm4
-rw-r--r--gnu/packages/virtualization.scm133
-rw-r--r--gnu/packages/web.scm653
-rw-r--r--gnu/packages/webkit.scm4
-rw-r--r--gnu/packages/xiph.scm13
-rw-r--r--gnu/packages/xml.scm205
-rw-r--r--gnu/packages/xorg.scm16
-rw-r--r--gnu/services.scm37
-rw-r--r--gnu/services/base.scm17
-rw-r--r--gnu/system/vm.scm10
-rw-r--r--guix/build-system/go.scm2
-rw-r--r--guix/build-system/r.scm2
-rw-r--r--guix/build/compile.scm165
-rw-r--r--guix/build/download-nar.scm125
-rw-r--r--guix/build/download.scm216
-rw-r--r--guix/build/go-build-system.scm10
-rw-r--r--guix/build/pull.scm115
-rw-r--r--guix/build/utils.scm1
-rw-r--r--guix/cvs-download.scm38
-rw-r--r--guix/discovery.scm8
-rw-r--r--guix/download.scm110
-rw-r--r--guix/gexp.scm52
-rw-r--r--guix/git-download.scm37
-rw-r--r--guix/hg-download.scm36
-rw-r--r--guix/import/cran.scm8
-rw-r--r--guix/modules.scm10
-rw-r--r--guix/progress.scm228
-rw-r--r--guix/scripts/download.scm4
-rwxr-xr-xguix/scripts/substitute.scm5
-rw-r--r--guix/utils.scm28
146 files changed, 6208 insertions, 3285 deletions
diff --git a/Makefile.am b/Makefile.am
index efbd07a351..affeb8dda7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -47,6 +47,7 @@ MODULES = \
guix/hash.scm \
guix/pk-crypto.scm \
guix/pki.scm \
+ guix/progress.scm \
guix/combinators.scm \
guix/memoization.scm \
guix/utils.scm \
@@ -105,6 +106,7 @@ MODULES = \
guix/ui.scm \
guix/build/ant-build-system.scm \
guix/build/download.scm \
+ guix/build/download-nar.scm \
guix/build/cargo-build-system.scm \
guix/build/cmake-build-system.scm \
guix/build/dub-build-system.scm \
@@ -131,6 +133,7 @@ MODULES = \
guix/build/utils.scm \
guix/build/union.scm \
guix/build/profiles.scm \
+ guix/build/compile.scm \
guix/build/pull.scm \
guix/build/rpath.scm \
guix/build/cvs.scm \
@@ -399,7 +402,7 @@ check-local:
endif !CAN_RUN_TESTS
-check-system: $(GOBJECTS) $(BOOTSTRAP_GUILE_TARBALLS)
+check-system: $(GOBJECTS)
$(AM_V_at)$(top_builddir)/pre-inst-env \
$(GUILE) --no-auto-compile \
-e '(@@ (run-system-tests) run-system-tests)' \
@@ -429,7 +432,6 @@ EXTRA_DIST = \
build-aux/hydra/guix.scm \
build-aux/check-available-binaries.scm \
build-aux/check-final-inputs-self-contained.scm \
- build-aux/download.scm \
build-aux/generate-authors.scm \
build-aux/test-driver.scm \
build-aux/update-guix-package.scm \
diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm
index 4933e02712..ed8ff5f4ce 100644
--- a/build-aux/build-self.scm
+++ b/build-aux/build-self.scm
@@ -245,6 +245,7 @@ Please upgrade to an intermediate version first, for instance with:
(gexp->derivation "guix-latest" builder
#:modules '((guix build pull)
(guix build utils)
+ (guix build compile)
;; Closure of (guix modules).
(guix modules)
diff --git a/build-aux/compile-all.scm b/build-aux/compile-all.scm
index fe25c5d065..c7ca5a6f67 100644
--- a/build-aux/compile-all.scm
+++ b/build-aux/compile-all.scm
@@ -17,21 +17,13 @@
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
-(use-modules (system base target)
- (system base message)
- (ice-9 match)
+(use-modules (ice-9 match)
(ice-9 threads)
+ (srfi srfi-1)
+ (guix build compile)
(guix build utils))
-(define warnings
- ;; FIXME: 'format' is missing because it reports "non-literal format
- ;; strings" due to the fact that we use 'G_' instead of '_'. We'll need
- ;; help from Guile to solve this.
- '(unsupported-warning unbound-variable arity-mismatch
- macro-use-before-definition)) ;new in 2.2
-
(define host (getenv "host"))
-
(define srcdir (getenv "srcdir"))
(define (relative-file file)
@@ -53,61 +45,38 @@
(or (not (file-exists? go))
(file-mtime<? go file))))
-(define (file->module file)
- (let* ((relative (relative-file file))
- (module-path (string-drop-right relative 4)))
- (map string->symbol
- (string-split module-path #\/))))
-
-;;; To work around <http://bugs.gnu.org/15602> (FIXME), we want to load all
-;;; files to be compiled first. We do this via resolve-interface so that the
-;;; top-level of each file (module) is only executed once.
-(define (load-module-file file)
- (let ((module (file->module file)))
- (format #t " LOAD ~a~%" module)
- (resolve-interface module)))
-
-(cond-expand
- (guile-2.2 (use-modules (language tree-il optimize)
- (language cps optimize)))
- (else #f))
-
-(define %default-optimizations
- ;; Default optimization options (equivalent to -O2 on Guile 2.2).
- (cond-expand
- (guile-2.2 (append (tree-il-default-optimization-options)
- (cps-default-optimization-options)))
- (else '())))
-
-(define %lightweight-optimizations
- ;; Lightweight optimizations (like -O0, but with partial evaluation).
- (let loop ((opts %default-optimizations)
- (result '()))
- (match opts
- (() (reverse result))
- ((#:partial-eval? _ rest ...)
- (loop rest `(#t #:partial-eval? ,@result)))
- ((kw _ rest ...)
- (loop rest `(#f ,kw ,@result))))))
-
-(define (optimization-options file)
- (if (string-contains file "gnu/packages/")
- %lightweight-optimizations ;build faster
- '()))
-
-(define (compile-file* file output-mutex)
- (let ((go (scm->go file)))
- (with-mutex output-mutex
- (format #t " GUILEC ~a~%" go)
- (force-output))
- (mkdir-p (dirname go))
- (with-fluids ((*current-warning-prefix* ""))
- (with-target host
- (lambda ()
- (compile-file file
- #:output-file go
- #:opts `(#:warnings ,warnings
- ,@(optimization-options file))))))))
+(define* (parallel-job-count #:optional (flags (getenv "MAKEFLAGS")))
+ "Return the number of parallel jobs as determined by FLAGS, the flags passed
+to 'make'."
+ (match flags
+ (#f (current-processor-count))
+ (flags
+ (let ((initial-flags (string-tokenize flags)))
+ (let loop ((flags initial-flags))
+ (match flags
+ (()
+ ;; Note: GNU make prior to version 4.2 would hide "-j" flags from
+ ;; $MAKEFLAGS. Thus, check for a "--jobserver" flag here and
+ ;; assume we're using all cores if specified.
+ (if (any (lambda (flag)
+ (string-prefix? "--jobserver" flag))
+ initial-flags)
+ (current-processor-count) ;GNU make < 4.2
+ 1)) ;sequential make
+ (("-j" (= string->number count) _ ...)
+ (if (integer? count)
+ count
+ (current-processor-count)))
+ ((head tail ...)
+ (if (string-prefix? "-j" head)
+ (match (string-drop head 2)
+ (""
+ (current-processor-count))
+ ((= string->number count)
+ (if (integer? count)
+ count
+ (current-processor-count))))
+ (loop tail)))))))))
;; Install a SIGINT handler to give unwind handlers in 'compile-file' an
;; opportunity to run upon SIGINT and to remove temporary output files.
@@ -117,16 +86,14 @@
(match (command-line)
((_ . files)
- (let ((files (filter file-needs-compilation? files)))
- (for-each load-module-file files)
- (let ((mutex (make-mutex)))
- ;; Make sure compilation related modules are loaded before starting to
- ;; compile files in parallel.
- (compile #f)
- (par-for-each (lambda (file)
- (compile-file* file mutex))
- files)))))
-
-;;; Local Variables:
-;;; eval: (put 'with-target 'scheme-indent-function 1)
-;;; End:
+ (compile-files srcdir (getcwd)
+ (filter file-needs-compilation? files)
+ #:workers (parallel-job-count)
+ #:host host
+ #:report-load (lambda (file total completed)
+ (when file
+ (format #t " LOAD ~a~%" file)))
+ #:report-compilation (lambda (file total completed)
+ (when file
+ (format #t " GUILEC ~a~%"
+ (scm->go file)))))))
diff --git a/build-aux/download.scm b/build-aux/download.scm
deleted file mode 100644
index 8dfa914603..0000000000
--- a/build-aux/download.scm
+++ /dev/null
@@ -1,73 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2017 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
-;;;
-;;; 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/>.
-
-;;;
-;;; Download a binary file from an external source.
-;;;
-
-(use-modules (ice-9 match)
- (web uri)
- (web client)
- (rnrs io ports)
- (srfi srfi-11)
- (guix base16)
- (guix hash))
-
-(define %url-base
- "http://alpha.gnu.org/gnu/guix/bootstrap"
-
- ;; Alternately:
- ;;"http://www.fdn.fr/~lcourtes/software/guix/packages"
- )
-
-(define (file-name->uri file)
- "Return the URI for FILE."
- (match (string-tokenize file (char-set-complement (char-set #\/)))
- ((_ ... system basename)
- (string->uri
- (string-append %url-base "/" system
- (match system
- ("aarch64-linux"
- "/20170217/")
- ("armhf-linux"
- "/20150101/")
- (_
- "/20131110/"))
- basename)))))
-
-(match (command-line)
- ((_ file expected-hash)
- (let ((uri (file-name->uri file)))
- (format #t "downloading file `~a'~%from `~a'...~%"
- file (uri->string uri))
- (let*-values (((resp data) (http-get uri #:decode-body? #f))
- ((hash) (bytevector->base16-string (sha256 data)))
- ((part) (string-append file ".part")))
- (if (string=? expected-hash hash)
- (begin
- (call-with-output-file part
- (lambda (port)
- (put-bytevector port data)))
- (rename-file part file))
- (begin
- (format (current-error-port)
- "file at `~a' has SHA256 ~a; expected ~a~%"
- (uri->string uri) hash expected-hash)
- (exit 1)))))))
diff --git a/build-aux/test-env.in b/build-aux/test-env.in
index 1657556b19..4a422cf607 100644
--- a/build-aux/test-env.in
+++ b/build-aux/test-env.in
@@ -1,7 +1,7 @@
#!/bin/sh
# GNU Guix --- Functional package management for GNU
-# Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
#
# This file is part of GNU Guix.
#
@@ -110,6 +110,20 @@ then
daemon_pid=$!
trap "kill $daemon_pid ; rm -rf $NIX_STATE_DIR" EXIT
+
+ # The test suite expects the 'guile-bootstrap' package to be available.
+ # Normally the Guile bootstrap tarball is downloaded by a fixed-output
+ # derivation but when network access is missing we allow users to drop
+ # the tarball in 'gnu/packages/bootstrap/SYSTEM' and "intern" it here.
+ bootstrap_directory="@abs_top_builddir@/gnu/packages/bootstrap/@guix_system@"
+ if [ -d "$bootstrap_directory" ]
+ then
+ for file in "$bootstrap_directory"/guile-*
+ do
+ "@abs_top_builddir@/pre-inst-env" \
+ guix download "file://$file" > /dev/null
+ done
+ fi
fi
# Avoid issues that could stem from l10n, such as language/encoding
diff --git a/doc/guix.texi b/doc/guix.texi
index b7f4f88f92..d7fabe9599 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -4990,6 +4990,34 @@ as in:
This is the declarative counterpart of @code{text-file*}.
@end deffn
+@deffn {Scheme Procedure} file-union @var{name} @var{files}
+Return a @code{<computed-file>} that builds a directory containing all of @var{files}.
+Each item in @var{files} must be a two-element list where the first element is the
+file name to use in the new directory, and the second element is a gexp
+denoting the target file. Here's an example:
+
+@example
+(file-union "etc"
+ `(("hosts" ,(plain-file "hosts"
+ "127.0.0.1 localhost"))
+ ("bashrc" ,(plain-file "bashrc"
+ "alias ls='ls --color'"))))
+@end example
+
+This yields an @code{etc} directory containing these two files.
+@end deffn
+
+@deffn {Scheme Procedure} directory-union @var{name} @var{things}
+Return a directory that is the union of @var{things}, where @var{things} is a list of
+file-like objects denoting directories. For example:
+
+@example
+(directory-union "guile+emacs" (list guile emacs))
+@end example
+
+yields a directory that is the union of the @code{guile} and @code{emacs} packages.
+@end deffn
+
@deffn {Scheme Procedure} file-append @var{obj} @var{suffix} @dots{}
Return a file-like object that expands to the concatenation of @var{obj}
and @var{suffix}, where @var{obj} is a lowerable object and each
@@ -5881,7 +5909,7 @@ dependency graph of the given upstream package recursively and generate
package expressions for all those packages that are not yet in Guix.
When @code{--archive=bioconductor} is added, metadata is imported from
-@uref{http://www.bioconductor.org/, Bioconductor}, a repository of R
+@uref{https://www.bioconductor.org/, Bioconductor}, a repository of R
packages for for the analysis and comprehension of high-throughput
genomic data in bioinformatics.
@@ -6236,7 +6264,7 @@ the updater for @uref{http://elpa.gnu.org/, ELPA} packages;
@item cran
the updater for @uref{http://cran.r-project.org/, CRAN} packages;
@item bioconductor
-the updater for @uref{http://www.bioconductor.org/, Bioconductor} R packages;
+the updater for @uref{https://www.bioconductor.org/, Bioconductor} R packages;
@item cpan
the updater for @uref{http://www.cpan.org/, CPAN} packages;
@item pypi
@@ -9790,35 +9818,112 @@ Return a service that runs the Guix build daemon according to
@var{config}.
@end deffn
-@cindex udev-service
-@cindex udev-rule
-@deffn {Scheme Procedure} udev-service [#:udev @var{udev}] [#:rules @var{'()}]
+@deffn {Scheme Procedure} udev-service [#:udev @var{eudev} #:rules @code{'()}]
Run @var{udev}, which populates the @file{/dev} directory dynamically.
-Additional udev rules can be provided as a list of files through the
-@var{rules} variable. The procedure @var{udev-rule} simplifies the
-creation of these rule files.
+udev rules can be provided as a list of files through the @var{rules}
+variable. The procedures @var{udev-rule} and @var{file->udev-rule} from
+@code{(gnu services base)} simplify the creation of such rule files.
+
+@deffn {Scheme Procedure} udev-rule [@var{file-name} @var{contents}]
+Return a udev-rule file named @var{file-name} containing the rules
+defined by the @var{contents} literal.
In the following example, a rule for a USB device is defined to be
-stored in the file @file{90-usb-thing.rules}, and the default
-@var{udev-service} is extended with it. The rule runs a script upon
-detecting a USB device with a given product identifier.
+stored in the file @file{90-usb-thing.rules}. The rule runs a script
+upon detecting a USB device with a given product identifier.
@example
(define %example-udev-rule
- (udev-rule "90-usb-thing.rules"
- "ACTION==\"add\", SUBSYSTEM==\"usb\", ATTR@{product@}==\"Example\", RUN+=\"/path/to/script\""))
+ (udev-rule
+ "90-usb-thing.rules"
+ (string-append "ACTION==\"add\", SUBSYSTEM==\"usb\", "
+ "ATTR@{product@}==\"Example\", "
+ "RUN+=\"/path/to/script\"")))
+@end example
+@end deffn
+
+Here we show how the default @var{udev-service} can be extended with it.
+
+@example
+(operating-system
+ ;; @dots{}
+ (services
+ (modify-services %desktop-services
+ (udev-service-type config =>
+ (udev-configuration (inherit config)
+ (rules (append (udev-configuration-rules config)
+ (list %example-udev-rule))))))))
+@end example
+
+@deffn {Scheme Procedure} file->udev-rule [@var{file-name} @var{file}]
+Return a udev file named @var{file-name} containing the rules defined
+within @var{file}, a file-like object.
+
+The following example showcases how we can use an existing rule file.
+
+@example
+(use-modules (guix download) ;for url-fetch
+ (guix packages) ;for origin
+ ;; @dots{})
+
+(define %android-udev-rules
+ (file->udev-rule
+ "51-android-udev.rules"
+ (let ((version "20170910"))
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://raw.githubusercontent.com/M0Rf30/"
+ "android-udev-rules/" version "/51-android.rules"))
+ (sha256
+ (base32 "0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003"))))))
+@end example
+@end deffn
+
+Additionally, Guix package definitions can be included in @var{rules} in
+order to extend the udev rules with the definitions found under their
+@file{lib/udev/rules.d} sub-directory. In lieu of the previous
+@var{file->udev-rule} example, we could have used the
+@var{android-udev-rules} package which exists in Guix in the @code{(gnu
+packages android)} module.
+
+The following example shows how to use the @var{android-udev-rules}
+package so that the Android tool @command{adb} can detect devices
+without root privileges. It also details how to create the
+@code{adbusers} group, which is required for the proper functioning of
+the rules defined within the @var{android-udev-rules} package. To
+create such a group, we must define it both as part of the
+@var{supplementary-groups} of our @var{user-account} declaration, as
+well as in the @var{groups} field of the @var{operating-system} record.
+
+@example
+(use-modules (gnu packages android) ;for android-udev-rules
+ (gnu system shadow) ;for user-group
+ ;; @dots{})
(operating-system
;; @dots{}
- (services (modify-services %desktop-services
- (udev-service-type config =>
- (udev-configuration (inherit config)
- (rules (append (udev-configuration-rules config)
- (list %example-udev-rule))))))))
+ (users (cons (user-acount
+ ;; @dots{}
+ (supplementary-groups
+ '("adbusers" ;for adb
+ "wheel" "netdev" "audio" "video"))
+ ;; @dots{})))
+
+ (groups (cons (user-group (system? #t) (name "adbusers"))
+ %base-groups))
+
+ ;; @dots{}
+
+ (services
+ (modify-services %desktop-services
+ (udev-service-type config =>
+ (udev-configuration (inherit config)
+ (rules (cons* android-udev-rules
+ (udev-configuration-rules config))))))))
@end example
@end deffn
-@deffn {Scheme Procedure} urandom-seed-service @var{#f}
+@deffn {Scheme Procedure} urandom-seed-service
Save some entropy in @var{%random-seed-file} to seed @file{/dev/urandom}
when rebooting.
@end deffn
@@ -9930,7 +10035,7 @@ to add @var{device} to the kernel's entropy pool. The service will fail if
@cindex session limits
@cindex ulimit
@cindex priority
-@deffn {Scheme Procedure} pam-limits-service [#:limits @var{limits}]
+@deffn {Scheme Procedure} pam-limits-service [#:limits @code{'()}]
Return a service that installs a configuration file for the
@uref{http://linux-pam.org/Linux-PAM-html/sag-pam_limits.html,
@@ -18605,7 +18710,8 @@ The boot script is what the initial RAM disk runs when booting.
@end defvr
@defvr {Scheme Variable} etc-service-type
-The type of the @file{/etc} service. This service can be extended by
+The type of the @file{/etc} service. This service is used to create
+files under @file{/etc} and can be extended by
passing it name/file tuples such as:
@example
diff --git a/gnu/local.mk b/gnu/local.mk
index 28ee2606a8..329a71f214 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -535,8 +535,6 @@ dist_patch_DATA = \
%D%/packages/patches/ath9k-htc-firmware-gcc.patch \
%D%/packages/patches/ath9k-htc-firmware-objcopy.patch \
%D%/packages/patches/automake-skip-amhello-tests.patch \
- %D%/packages/patches/automake-regexp-syntax.patch \
- %D%/packages/patches/automake-test-gzip-warning.patch \
%D%/packages/patches/avahi-localstatedir.patch \
%D%/packages/patches/avidemux-install-to-lib.patch \
%D%/packages/patches/awesome-reproducible-png.patch \
@@ -571,7 +569,6 @@ dist_patch_DATA = \
%D%/packages/patches/cool-retro-term-fix-array-size.patch \
%D%/packages/patches/cool-retro-term-memory-leak-1.patch \
%D%/packages/patches/cool-retro-term-remove-non-free-fonts.patch \
- %D%/packages/patches/coreutils-cut-huge-range-test.patch \
%D%/packages/patches/cpio-CVE-2016-2037.patch \
%D%/packages/patches/cpufrequtils-fix-aclocal.patch \
%D%/packages/patches/cracklib-CVE-2016-6318.patch \
@@ -579,6 +576,7 @@ dist_patch_DATA = \
%D%/packages/patches/crawl-upgrade-saves.patch \
%D%/packages/patches/crda-optional-gcrypt.patch \
%D%/packages/patches/crossmap-allow-system-pysam.patch \
+ %D%/packages/patches/crypto++-fix-dos-in-asn.1-decoders.patch \
%D%/packages/patches/clucene-contribs-lib.patch \
%D%/packages/patches/cube-nocheck.patch \
%D%/packages/patches/cursynth-wave-rand.patch \
@@ -629,8 +627,8 @@ dist_patch_DATA = \
%D%/packages/patches/gawk-shell.patch \
%D%/packages/patches/gcc-arm-bug-71399.patch \
%D%/packages/patches/gcc-arm-link-spec-fix.patch \
- %D%/packages/patches/gcc-asan-powerpc-missing-include.patch \
%D%/packages/patches/gcc-cross-environment-variables.patch \
+ %D%/packages/patches/gcc-fix-texi2pod.patch \
%D%/packages/patches/gcc-libvtv-runpath.patch \
%D%/packages/patches/gcc-strmov-store-file-names.patch \
%D%/packages/patches/gcc-4.6-gnu-inline.patch \
@@ -650,12 +648,12 @@ dist_patch_DATA = \
%D%/packages/patches/gettext-multi-core.patch \
%D%/packages/patches/gettext-gnulib-multi-core.patch \
%D%/packages/patches/ghc-dont-pass-linker-flags-via-response-files.patch \
- %D%/packages/patches/ghostscript-CVE-2017-8291.patch \
%D%/packages/patches/ghostscript-no-header-id.patch \
%D%/packages/patches/ghostscript-no-header-uuid.patch \
%D%/packages/patches/ghostscript-no-header-creationdate.patch \
%D%/packages/patches/ghostscript-runpath.patch \
%D%/packages/patches/glib-networking-ssl-cert-file.patch \
+ %D%/packages/patches/glib-respect-datadir.patch \
%D%/packages/patches/glib-tests-timer.patch \
%D%/packages/patches/glibc-CVE-2015-5180.patch \
%D%/packages/patches/glibc-CVE-2015-7547.patch \
@@ -665,6 +663,7 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-CVE-2017-1000366-pt1.patch \
%D%/packages/patches/glibc-CVE-2017-1000366-pt2.patch \
%D%/packages/patches/glibc-CVE-2017-1000366-pt3.patch \
+ %D%/packages/patches/glibc-CVE-2017-15670-15671.patch \
%D%/packages/patches/glibc-bootstrap-system.patch \
%D%/packages/patches/glibc-ldd-x86_64.patch \
%D%/packages/patches/glibc-locales.patch \
@@ -692,7 +691,6 @@ dist_patch_DATA = \
%D%/packages/patches/graphicsmagick-CVE-2017-14165.patch \
%D%/packages/patches/graphicsmagick-CVE-2017-14649.patch \
%D%/packages/patches/graphite2-ffloat-store.patch \
- %D%/packages/patches/grep-gnulib-lock.patch \
%D%/packages/patches/grep-timing-sensitive-test.patch \
%D%/packages/patches/groff-source-date-epoch.patch \
%D%/packages/patches/gsl-test-i686.patch \
@@ -733,6 +731,7 @@ dist_patch_DATA = \
%D%/packages/patches/hydra-disable-darcs-test.patch \
%D%/packages/patches/icecat-avoid-bundled-libraries.patch \
%D%/packages/patches/icu4c-CVE-2017-7867-CVE-2017-7868.patch \
+ %D%/packages/patches/icu4c-CVE-2017-14952.patch \
%D%/packages/patches/icu4c-reset-keyword-list-iterator.patch \
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
%D%/packages/patches/ilmbase-fix-tests.patch \
@@ -815,20 +814,13 @@ dist_patch_DATA = \
%D%/packages/patches/libunistring-gnulib-multi-core.patch \
%D%/packages/patches/libusb-0.1-disable-tests.patch \
%D%/packages/patches/libusb-for-axoloti.patch \
+ %D%/packages/patches/libvirt-CVE-2017-1000256.patch \
%D%/packages/patches/libvisio-fix-tests.patch \
%D%/packages/patches/libvpx-CVE-2016-2818.patch \
%D%/packages/patches/libxcb-python-3.5-compat.patch \
%D%/packages/patches/libxfont-CVE-2017-13720.patch \
%D%/packages/patches/libxfont-CVE-2017-13722.patch \
- %D%/packages/patches/libxml2-CVE-2016-4658.patch \
- %D%/packages/patches/libxml2-CVE-2016-5131.patch \
- %D%/packages/patches/libxml2-CVE-2017-0663.patch \
- %D%/packages/patches/libxml2-CVE-2017-7375.patch \
- %D%/packages/patches/libxml2-CVE-2017-7376.patch \
- %D%/packages/patches/libxml2-CVE-2017-9047+CVE-2017-9048.patch \
- %D%/packages/patches/libxml2-CVE-2017-9049+CVE-2017-9050.patch \
%D%/packages/patches/libxslt-generated-ids.patch \
- %D%/packages/patches/libxslt-CVE-2016-4738.patch \
%D%/packages/patches/libxt-guix-search-paths.patch \
%D%/packages/patches/lierolibre-check-unaligned-access.patch \
%D%/packages/patches/lierolibre-is-free-software.patch \
@@ -877,9 +869,11 @@ dist_patch_DATA = \
%D%/packages/patches/mozjs38-version-detection.patch \
%D%/packages/patches/mumps-build-parallelism.patch \
%D%/packages/patches/mupdf-build-with-openjpeg-2.1.patch \
+ %D%/packages/patches/mupdf-CVE-2017-14685.patch \
+ %D%/packages/patches/mupdf-CVE-2017-14686.patch \
+ %D%/packages/patches/mupdf-CVE-2017-14687.patch \
%D%/packages/patches/mupdf-CVE-2017-15587.patch \
%D%/packages/patches/mupen64plus-ui-console-notice.patch \
- %D%/packages/patches/musl-CVE-2016-8859.patch \
%D%/packages/patches/mutt-store-references.patch \
%D%/packages/patches/ncurses-CVE-2017-10684-10685.patch \
%D%/packages/patches/net-tools-bitrot.patch \
@@ -922,7 +916,6 @@ dist_patch_DATA = \
%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/pcre-CVE-2017-7186.patch \
%D%/packages/patches/pcre2-CVE-2017-7186.patch \
%D%/packages/patches/pcre2-CVE-2017-8786.patch \
%D%/packages/patches/perl-file-path-CVE-2017-6512.patch \
@@ -1177,56 +1170,7 @@ dist_bootstrap_mips64el_linux_DATA = \
%D%/packages/bootstrap/mips64el-linux/tar \
%D%/packages/bootstrap/mips64el-linux/xz
-# Big bootstrap binaries are not included in the tarball. Instead, they
-# are downloaded.
-nodist_bootstrap_x86_64_linux_DATA = \
- %D%/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz
-nodist_bootstrap_i686_linux_DATA = \
- %D%/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz
-nodist_bootstrap_armhf_linux_DATA = \
- %D%/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz
-nodist_bootstrap_aarch64_linux_DATA = \
- %D%/packages/bootstrap/aarch64-linux/guile-2.0.14.tar.xz
-nodist_bootstrap_mips64el_linux_DATA = \
- %D%/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz
-
# Those files must remain executable, so they remain executable once
# imported into the store.
set-bootstrap-executable-permissions:
chmod +x $(DESTDIR)$(bootstrapdir)/*/{bash,mkdir,tar,xz}
-
-BOOTSTRAP_GUILE_TARBALLS = \
- $(nodist_bootstrap_x86_64_linux_DATA) \
- $(nodist_bootstrap_i686_linux_DATA) \
- $(nodist_bootstrap_armhf_linux_DATA) \
- $(nodist_bootstrap_aarch64_linux_DATA) \
- $(nodist_bootstrap_mips64el_linux_DATA)
-
-DISTCLEANFILES = $(BOOTSTRAP_GUILE_TARBALLS)
-
-# Method to download a file from an external source.
-DOWNLOAD_FILE = \
- GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH" \
- $(GUILE) --no-auto-compile -L "$(top_builddir)" -L "$(top_srcdir)" \
- "$(top_srcdir)/build-aux/download.scm"
-
-%D%/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz:
- $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \
- $(DOWNLOAD_FILE) "$@" \
- "037b103522a2d0d7d69c7ffd8de683dfe5bb4b59c1fafd70b4ffd397fd2f57f0"
-%D%/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz:
- $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \
- $(DOWNLOAD_FILE) "$@" \
- "b757cd46bf13ecac83fb8e955fb50096ac2d17bb610ca8eb816f29302a00a846"
-%D%/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz:
- $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \
- $(DOWNLOAD_FILE) "$@" \
- "e551d05d4d385d6706ab8d574856a087758294dc90ab4c06e70a157a685e23d6"
-%D%/packages/bootstrap/aarch64-linux/guile-2.0.14.tar.xz:
- $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \
- $(DOWNLOAD_FILE) "$@" \
- "3939909f24dcb955621aa7f81ecde6844bea8a083969c2d275c55699af123ebe"
-%D%/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz:
- $(AM_V_DL)$(MKDIR_P) `dirname "$@"`; \
- $(DOWNLOAD_FILE) "$@" \
- "994680f0001346864aa2c2cc5110f380ee7518dcd701c614291682b8e948f73b"
diff --git a/gnu/packages/acl.scm b/gnu/packages/acl.scm
index ae6764993b..35bafc4c14 100644
--- a/gnu/packages/acl.scm
+++ b/gnu/packages/acl.scm
@@ -47,16 +47,15 @@
`(#:tests? #f ; FIXME: Investigate test suite failures
#:test-target "tests"
#:phases
- (alist-cons-after
- 'build 'patch-exec-bin-sh
- (lambda _
- (substitute* "test/run"
- (("/bin/sh") (which "sh"))))
- (alist-replace
- 'install
- (lambda _
- (zero? (system* "make" "install" "install-lib" "install-dev")))
- %standard-phases))))
+ (modify-phases %standard-phases
+ (add-after 'build 'patch-exec-bin-sh
+ (lambda _
+ (substitute* "test/run"
+ (("/bin/sh") (which "sh")))
+ #t))
+ (replace 'install
+ (lambda _
+ (zero? (system* "make" "install" "install-lib" "install-dev")))))))
(inputs `(("attr" ,attr)))
(native-inputs
`(("gettext" ,gettext-minimal)
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 23024fc363..cb5e86d39a 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -783,6 +783,11 @@ over ssh connections.")
"/etc"))
#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+ (lambda _
+ (substitute* "rc/rc"
+ (("/usr/sbin/sendmail") "sendmail"))
+ #t))
(add-after 'build 'set-packdir
(lambda _
;; Set a default location for archived logs.
@@ -2139,7 +2144,7 @@ tool for remote execution and deployment.")
(define-public neofetch
(package
(name "neofetch")
- (version "3.2.0")
+ (version "3.3.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/dylanaraps/neofetch/"
@@ -2147,10 +2152,10 @@ tool for remote execution and deployment.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "07a32rzmch51znxspzyc7zyaldmr383v70b49wmnjdjs2qfdbv3a"))))
+ "15p69q0jchfms1fpb4i7kq8b28w2xpgh2zmynln618qxv1myf228"))))
(build-system gnu-build-system)
(arguments
- '(#:tests? #f ; there are no tests
+ `(#:tests? #f ; there are no tests
#:make-flags
(list (string-append "PREFIX=" %output))
#:phases
@@ -2167,7 +2172,15 @@ tool for remote execution and deployment.")
(("\"/usr/share/neofetch")
(string-append "\"" out "/share/neofetch"))))
#t))
- (delete 'configure))))
+ (delete 'configure) ; no configure script
+ (replace 'install
+ (lambda* (#:key make-flags outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (doc (string-append out "/share/doc/" ,name "-" ,version))
+ (etc (string-append doc "/examples/etc")))
+ (zero? (apply system* `("make" ,@make-flags
+ ,(string-append "SYSCONFDIR=" etc)
+ "install")))))))))
(home-page "https://github.com/dylanaraps/neofetch")
(synopsis "System info script")
(description "Neofetch is a CLI system information tool written in Bash.
diff --git a/gnu/packages/animation.scm b/gnu/packages/animation.scm
index faa0d17230..952d3bab0d 100644
--- a/gnu/packages/animation.scm
+++ b/gnu/packages/animation.scm
@@ -19,6 +19,7 @@
(define-module (gnu packages animation)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix utils)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system gnu)
@@ -34,6 +35,8 @@
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pulseaudio)
+ #:use-module (gnu packages qt)
#:use-module (gnu packages video))
(define-public etl
@@ -185,3 +188,71 @@ be capable of producing feature-film quality animation. It eliminates the
need for tweening, preventing the need to hand-draw each frame. This package
contains the graphical user interface for synfig.")
(license license:gpl3+)))
+
+(define-public papagayo
+ (let ((commit "e143684b30e59fe4a554f965cb655d23cbe93ee7")
+ (revision "1"))
+ (package
+ (name "papagayo")
+ (version (string-append "2.0b1-" revision "." (string-take commit 9)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/LostMoho/Papagayo.git")
+ (commit commit)))
+ (sha256
+ (base32
+ "1p9gffjhbph34jhrvgpg93yha75bf88vkvlnk06x1r9601ph5321"))
+ (modules '((guix build utils)))
+ ;; Delete bundled libsndfile sources.
+ (snippet
+ '(begin
+ (delete-file-recursively "libsndfile_1.0.19")
+ (delete-file-recursively "libsndfile_1.0.25")
+ #t))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((libsndfile (assoc-ref inputs "libsndfile")))
+ ;; Do not use bundled libsndfile sources
+ (substitute* "Papagayo.pro"
+ (("else \\{")
+ (string-append "\nINCLUDEPATH += " libsndfile
+ "/include"
+ "\nLIBS +=" libsndfile
+ "/lib/libsndfile.so\n"
+ "win32 {"))))
+ (zero? (system* "qmake"
+ (string-append "DESTDIR="
+ (assoc-ref outputs "out")
+ "/bin")))))
+ ;; Ensure that all required Qt plugins are found at runtime.
+ (add-after 'install 'wrap-executable
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (qt '("qt" "qtmultimedia")))
+ (wrap-program (string-append out "/bin/Papagayo")
+ `("QT_PLUGIN_PATH" ":" prefix
+ ,(map (lambda (label)
+ (string-append (assoc-ref inputs label)
+ "/lib/qt5/plugins/"))
+ qt)))
+ #t))))))
+ (inputs
+ `(("qt" ,qtbase)
+ ("qtmultimedia" ,qtmultimedia)
+ ("libsndfile" ,libsndfile)))
+ (native-inputs
+ `(("qttools" ,qttools)))
+ (home-page "http://www.lostmarble.com/papagayo/")
+ (synopsis "Lip-syncing for animations")
+ (description
+ "Papagayo is a lip-syncing program designed to help you line up
+phonemes with the actual recorded sound of actors speaking. Papagayo makes it
+easy to lip sync animated characters by making the process very simple – just
+type in the words being spoken, then drag the words on top of the sound’s
+waveform until they line up with the proper sounds.")
+ (license license:gpl3+))))
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index e0aa1705e2..35b60511bc 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -580,7 +580,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0f67vyy3r29hn26qkkcwnizrnzzy8p7gmg3say5q3wjhxns3b5yl"))))
+ "0xqpqws4jsv7fyawcjzwaw544qbfh29xq164kdf30a9v1n3yklp4"))))
(build-system cmake-build-system)
(inputs
`(("alsa-lib" ,alsa-lib)
@@ -1065,20 +1065,35 @@ PS, and DAB+.")
(define-public faust-2
(package
(inherit faust)
- (version "2.0.a51")
+ (version "2.1.0")
(source (origin
- (method url-fetch)
- (uri (string-append
- "mirror://sourceforge/faudiostream/faust-" version ".tgz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/grame-cncm/faust.git")
+ (commit (string-append "v"
+ (string-map (lambda (c)
+ (if (char=? c #\.) #\- c))
+ version)))))
(sha256
(base32
- "1yryjqfqmxs7lxy95hjgmrncvl9kig3rcsmg0v49ghzz7vs7haxf"))))
+ "06km0ygwxxwgw1lqldccqidxhmjfz8ck0wnbd95qk5sg8sbpc068"))))
(build-system gnu-build-system)
(arguments
(substitute-keyword-arguments (package-arguments faust)
((#:make-flags flags)
`(list (string-append "prefix=" (assoc-ref %outputs "out"))
- "world"))))
+ "world"))
+ ((#:phases phases)
+ `(modify-phases ,phases
+ ;; Files appear under $out/share/faust that are read-only. The
+ ;; install phase tries to overwrite them and fails, so we change
+ ;; the permissions first.
+ (add-before 'install 'fix-permissions
+ (lambda* (#:key outputs #:allow-other-keys)
+ (for-each (lambda (file)
+ (chmod file #o644))
+ (find-files "architecture/max-msp" ".*"))
+ #t))))))
(native-inputs
`(("llvm" ,llvm-with-rtti)
("which" ,which)
@@ -1660,6 +1675,21 @@ add functionality to support the needs of increasingly powerful audio
software.")
(license license:isc)))
+(define-public lv2-devel
+ (let ((commit "39c7c726cd52b2863fcea356cafe1bcab2ba7f37")
+ (revision "1"))
+ (package (inherit lv2)
+ (name "lv2-devel")
+ (version (string-append "1.15.3-" revision "." (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "http://lv2plug.in/git/lv2.git")
+ (commit commit)))
+ (sha256
+ (base32
+ "1gp2rd99dfmpibvpixrqn115mrhybzf3if3h8bssf6siyi13f29r")))))))
+
(define-public lv2-mda-piano
(package
(name "lv2-mda-piano")
@@ -1916,11 +1946,11 @@ aimed at audio/musical applications.")
(license license:gpl2+)))
(define-public raul-devel
- (let ((commit "f8bf77d3c3b77830aedafb9ebb5cdadfea7ed07a")
+ (let ((commit "4db870b2b20b0a608ec0283139056b836c5b1624")
(revision "1"))
(package (inherit raul)
(name "raul")
- (version (string-append "0.8.4-" revision "."
+ (version (string-append "0.8.9-" revision "."
(string-take commit 9)))
(source (origin
(method git-fetch)
@@ -1930,7 +1960,7 @@ aimed at audio/musical applications.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "1lby508fb0n8ks6iz959sh18fc37br39d6pbapwvbcw5nckdrxwj")))))))
+ "04fajrass3ymr72flx5js5vxc601ccrmx8ny8scp0rw7j0igyjdr")))))))
(define-public rubberband
(package
@@ -2040,14 +2070,14 @@ the Turtle syntax.")
(define-public suil
(package
(name "suil")
- (version "0.8.4")
+ (version "0.10.0")
(source (origin
(method url-fetch)
(uri (string-append "http://download.drobilla.net/suil-"
version ".tar.bz2"))
(sha256
(base32
- "1kji3lhha26qr6xm9j8ic5c40zbrrb5qnwm2qxzmsfxgmrz29wkf"))))
+ "0j489gm3fhnmwmbgw30bvd4byw1vsy4yazdlnji8jzhcz0qwb5cq"))))
(build-system waf-build-system)
(arguments
`(#:tests? #f ; no check target
@@ -2055,7 +2085,8 @@ the Turtle syntax.")
'("CXXFLAGS=-std=gnu++11")))
(inputs
`(("lv2" ,lv2)
- ("gtk+-2" ,gtk+-2)
+ ("gtk+" ,gtk+-2)
+ ("gtk+" ,gtk+)
("qt" ,qtbase)))
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -2069,7 +2100,7 @@ toolkit. The API is designed such that hosts do not need to explicitly
support specific toolkits – if Suil supports a particular toolkit, then UIs in
that toolkit will work in all hosts that use Suil automatically.
-Suil currently supports every combination of Gtk 2, Qt 4, and X11.")
+Suil currently supports every combination of Gtk, Qt, and X11.")
(license license:isc)))
(define-public timidity++
diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm
index 79ef31fc1b..6cba9ee2df 100644
--- a/gnu/packages/autotools.scm
+++ b/gnu/packages/autotools.scm
@@ -238,21 +238,18 @@ output is indexed in many ways to simplify browsing.")
(license gpl3+)))
(define-public automake
- ;; Replace with 'automake/latest' on the next rebuild cycle.
(package
(name "automake")
- (version "1.15")
+ (version "1.15.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/automake/automake-"
version ".tar.xz"))
(sha256
(base32
- "0dl6vfi2lzz8alnklwxzfz624b95hb1ipjvd3mk177flmddcf24r"))
+ "1bzd9g32dfm4rsbw93ld9x7b5nc1y6i4m6zp032qf1i28a8s6sxg"))
(patches
- (search-patches "automake-regexp-syntax.patch"
- "automake-skip-amhello-tests.patch"
- "automake-test-gzip-warning.patch"))))
+ (search-patches "automake-skip-amhello-tests.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,(autoconf-wrapper))
@@ -267,47 +264,47 @@ output is indexed in many ways to simplify browsing.")
(srfi srfi-1)
(srfi srfi-26)
(rnrs io ports))
- #:phases (alist-cons-before
- 'patch-source-shebangs 'patch-tests-shebangs
- (lambda _
- (let ((sh (which "sh")))
- (substitute* (find-files "t" "\\.(sh|tap)$")
- (("#![[:blank:]]?/bin/sh")
- (string-append "#!" sh)))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'patch-source-shebangs 'patch-tests-shebangs
+ (lambda _
+ (let ((sh (which "sh")))
+ (substitute* (find-files "t" "\\.(sh|tap)$")
+ (("#![[:blank:]]?/bin/sh")
+ (string-append "#!" sh)))
- ;; Set these variables for all the `configure' runs
- ;; that occur during the test suite.
- (setenv "SHELL" sh)
- (setenv "CONFIG_SHELL" sh)))
+ ;; Set these variables for all the `configure' runs
+ ;; that occur during the test suite.
+ (setenv "SHELL" sh)
+ (setenv "CONFIG_SHELL" sh)
+ #t)))
- ;; Files like `install-sh', `mdate.sh', etc. must use
- ;; #!/bin/sh, otherwise users could leak erroneous shebangs
- ;; in the wild. See <http://bugs.gnu.org/14201> for an
- ;; example.
- (alist-cons-after
- 'install 'unpatch-shebangs
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (dir (string-append out "/share")))
- (define (starts-with-shebang? file)
- (equal? (call-with-input-file file
- (lambda (p)
- (list (get-u8 p) (get-u8 p))))
- (map char->integer '(#\# #\!))))
+ ;; Files like `install-sh', `mdate.sh', etc. must use
+ ;; #!/bin/sh, otherwise users could leak erroneous shebangs
+ ;; in the wild. See <http://bugs.gnu.org/14201> for an
+ ;; example.
+ (add-after 'install 'unpatch-shebangs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (dir (string-append out "/share")))
+ (define (starts-with-shebang? file)
+ (equal? (call-with-input-file file
+ (lambda (p)
+ (list (get-u8 p) (get-u8 p))))
+ (map char->integer '(#\# #\!))))
- (for-each (lambda (file)
- (when (and (starts-with-shebang? file)
- (executable-file? file))
- (format #t "restoring shebang on `~a'~%"
- file)
- (substitute* file
- (("^#!.*/bin/sh")
- "#!/bin/sh")
- (("^#!.*/bin/env(.*)$" _ args)
- (string-append "#!/usr/bin/env"
- args)))))
- (find-files dir ".*"))))
- %standard-phases))))
+ (for-each (lambda (file)
+ (when (and (starts-with-shebang? file)
+ (executable-file? file))
+ (format #t "restoring shebang on `~a'~%"
+ file)
+ (substitute* file
+ (("^#!.*/bin/sh")
+ "#!/bin/sh")
+ (("^#!.*/bin/env(.*)$" _ args)
+ (string-append "#!/usr/bin/env"
+ args)))))
+ (find-files dir ".*"))))))))
(home-page "https://www.gnu.org/software/automake/")
(synopsis "Making GNU standards-compliant Makefiles")
(description
@@ -317,22 +314,6 @@ intuitive format and then Automake works with Autoconf to produce a robust
Makefile, simplifying the entire process for the developer.")
(license gpl2+))) ; some files are under GPLv3+
-
-(define-public automake/latest
- ;; Merge with 'automake' on the next rebuild cycle.
- (package
- (inherit automake)
- (version "1.15.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/automake/automake-"
- version ".tar.xz"))
- (sha256
- (base32
- "1bzd9g32dfm4rsbw93ld9x7b5nc1y6i4m6zp032qf1i28a8s6sxg"))
- (patches
- (search-patches "automake-skip-amhello-tests.patch"))))))
-
(define-public libtool
(package
(name "libtool")
@@ -410,11 +391,9 @@ complexity of working with shared libraries across platforms.")
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--enable-ltdl-install") ;really install it
- #:phases (alist-cons-before
- 'configure 'change-directory
- (lambda _
- (chdir "libltdl"))
- %standard-phases)))
+ #:phases (modify-phases %standard-phases
+ (add-before 'configure 'change-directory
+ (lambda _ (chdir "libltdl") #t)))))
(synopsis "System-independent dlopen wrapper of GNU libtool")
(description (package-description libtool))
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 6215541524..895b3b168d 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -6,6 +6,8 @@
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -184,16 +186,16 @@ backups (called chunks) to allow easy burning to CD/DVD.")
(define-public libarchive
(package
(name "libarchive")
- (replacement libarchive-3.3.2)
- (version "3.3.1")
+ (version "3.3.2")
(source
(origin
(method url-fetch)
(uri (string-append "http://libarchive.org/downloads/libarchive-"
version ".tar.gz"))
+ (patches (search-patches "libarchive-CVE-2017-14166.patch"))
(sha256
(base32
- "1rr40hxlm9vy5z2zb5w7pyfkgd1a4s061qapm83s19accb8mpji9"))))
+ "1km0mzfl6in7l5vz9kl09a88ajx562rw93ng9h2jqavrailvsbgd"))))
(build-system gnu-build-system)
;; TODO: Add -L/path/to/nettle in libarchive.pc.
(inputs
@@ -205,26 +207,25 @@ backups (called chunks) to allow easy burning to CD/DVD.")
("xz" ,xz)))
(arguments
`(#:phases
- (alist-cons-before
- 'build 'patch-pwd
- (lambda _
- (substitute* "Makefile"
- (("/bin/pwd") (which "pwd"))))
- (alist-replace
- 'check
- (lambda _
- ;; XXX: The test_owner_parse, test_read_disk, and
- ;; test_write_disk_lookup tests expect user 'root' to exist, but
- ;; the chroot's /etc/passwd doesn't have it. Turn off those tests.
- ;;
- ;; The tests allow one to disable tests matching a globbing pattern.
- (and (zero? (system* "make"
- "libarchive_test" "bsdcpio_test" "bsdtar_test"))
- ;; XXX: This glob disables too much.
- (zero? (system* "./libarchive_test" "^test_*_disk*"))
- (zero? (system* "./bsdcpio_test" "^test_owner_parse"))
- (zero? (system* "./bsdtar_test"))))
- %standard-phases))
+ (modify-phases %standard-phases
+ (add-before 'build 'patch-pwd
+ (lambda _
+ (substitute* "Makefile"
+ (("/bin/pwd") (which "pwd"))
+ #t)))
+ (replace 'check
+ (lambda _
+ ;; XXX: The test_owner_parse, test_read_disk, and
+ ;; test_write_disk_lookup tests expect user 'root' to exist, but
+ ;; the chroot's /etc/passwd doesn't have it. Turn off those tests.
+ ;;
+ ;; The tests allow one to disable tests matching a globbing pattern.
+ (and (zero? (system* "make"
+ "libarchive_test" "bsdcpio_test" "bsdtar_test"))
+ ;; XXX: This glob disables too much.
+ (zero? (system* "./libarchive_test" "^test_*_disk*"))
+ (zero? (system* "./bsdcpio_test" "^test_owner_parse"))
+ (zero? (system* "./bsdtar_test"))))))
;; libarchive/test/test_write_format_gnutar_filenames.c needs to be
;; compiled with C99 or C11 or a gnu variant.
#:configure-flags '("CFLAGS=-O2 -g -std=c99")))
@@ -240,20 +241,6 @@ archive. In particular, note that there is currently no built-in support for
random access nor for in-place modification.")
(license license:bsd-2)))
-(define libarchive-3.3.2
- (package
- (inherit libarchive)
- (version "3.3.2")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "http://libarchive.org/downloads/libarchive-"
- version ".tar.gz"))
- (patches (search-patches "libarchive-CVE-2017-14166.patch"))
- (sha256
- (base32
- "1km0mzfl6in7l5vz9kl09a88ajx562rw93ng9h2jqavrailvsbgd"))))))
-
(define-public rdup
(package
(name "rdup")
@@ -462,13 +449,13 @@ detection, and lossless compression.")
(define-public borg
(package
(name "borg")
- (version "1.1.0")
+ (version "1.1.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "borgbackup" version))
(sha256
(base32
- "0vwyg0b4kxb0rspqwhvgi5c78dzimgkydf03wif27a40qhh1235l"))
+ "0iik5lq349cl87imlwra2pp0j36wjhpn8r1d3778azvvqpyjq2d5"))
(modules '((guix build utils)))
(snippet
'(for-each
@@ -518,7 +505,7 @@ detection, and lossless compression.")
"and not test_fuse "
"and not test_fuse_allow_damaged_files"))))))
(add-after 'install 'install-doc
- (lambda* (#:key outputs #:allow-other-keys)
+ (lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(man (string-append out "/share/man/man1"))
(misc (string-append out "/share/borg/misc")))
@@ -526,11 +513,11 @@ detection, and lossless compression.")
'("docs/misc/create_chunker-params.txt"
"docs/misc/internals-picture.txt"
"docs/misc/prune-example.txt"))
+ (add-installed-pythonpath inputs outputs)
(and
- (zero? (system* "python3" "setup.py" "build_ext" "--inplace"))
- (zero? (system* "make" "-C" "docs" "man"))
+ (zero? (system* "python3" "setup.py" "build_man"))
(begin
- (install-file "docs/_build/man/borg.1" man)
+ (copy-recursively "docs/man" man)
#t))))))))
(native-inputs
`(("python-cython" ,python-cython)
@@ -688,3 +675,110 @@ using GnuPG. Backups can be stored on local hard disks, or online via
the SSH SFTP protocol. The backup server, if used, does not require
any special software, on top of SSH.")
(license license:gpl3+)))
+
+(define-public dirvish
+ (package
+ (name "dirvish")
+ (version "1.2.1")
+ (build-system gnu-build-system)
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://dirvish.org/dirvish-" version ".tgz"))
+ (sha256
+ (base32
+ "1kbxa1irszp2zw8hd5qzqnrrzb4vxfivs1vn64yxnj0lak1jjzvb"))))
+ (arguments
+ `(#:modules ((ice-9 match) (ice-9 rdelim)
+ ,@%gnu-build-system-modules)
+ #:phases
+ ;; This mostly mirrors the steps taken in the install.sh that ships
+ ;; with dirvish, but simplified because we aren't prompting interactively
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (delete 'check)
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; These are mostly the same steps the install.sh that comes with
+ ;; dirvish does
+ (let* (;; Files we'll be copying
+ (executables
+ '("dirvish" "dirvish-runall"
+ "dirvish-expire" "dirvish-locate"))
+ (man-pages
+ '(("dirvish" "8") ("dirvish-runall" "8")
+ ("dirvish-expire" "8") ("dirvish-locate" "8")
+ ("dirvish.conf" "5")))
+
+ (output-dir
+ (assoc-ref outputs "out"))
+
+ ;; Just a default... not so useful on guixsd though
+ ;; You probably want to a service with file(s) to point to.
+ (confdir "/etc/dirvish")
+
+ (perl (string-append (assoc-ref %build-inputs "perl")
+ "/bin/perl"))
+ (loadconfig.pl (call-with-input-file "loadconfig.pl"
+ read-string)))
+
+
+ (define (write-pl filename)
+ (define pl-header
+ (string-append "#!" perl "\n\n"
+ "$CONFDIR = \"" confdir "\";\n\n"))
+ (define input-file-location
+ (string-append filename ".pl"))
+ (define target-file-location
+ (string-append output-dir "/bin/" filename ".pl"))
+ (define text-to-write
+ (string-append pl-header
+ (call-with-input-file input-file-location
+ read-string)
+ "\n" loadconfig.pl))
+ (with-output-to-file target-file-location
+ (lambda ()
+ (display text-to-write)))
+ (chmod target-file-location #o755)
+ (wrap-program target-file-location
+ `("PERL5LIB" ":" prefix
+ ,(map (lambda (l) (string-append (assoc-ref %build-inputs l)
+ "/lib/perl5/site_perl"))
+ '("perl-libtime-period"
+ "perl-libtime-parsedate")))))
+
+ (define write-man
+ (match-lambda
+ ((file-base man-num)
+ (let* ((filename
+ (string-append file-base "." man-num))
+ (output-path
+ (string-append output-dir
+ "/share/man/man" man-num
+ "/" filename)))
+ (copy-file filename output-path)))))
+
+ ;; Make directories
+ (mkdir-p (string-append output-dir "/bin/"))
+ (mkdir-p (string-append output-dir "/share/man/man8/"))
+ (mkdir-p (string-append output-dir "/share/man/man5/"))
+
+ ;; Write out executables
+ (for-each write-pl executables)
+ ;; Write out man pages
+ (for-each write-man man-pages)
+ #t))))))
+ (inputs
+ `(("perl" ,perl)
+ ("rsync" ,rsync)
+ ("perl-libtime-period" ,perl-libtime-period)
+ ("perl-libtime-parsedate" ,perl-libtime-parsedate)))
+ (home-page "http://dirvish.org/")
+ (synopsis "Fast, disk based, rotating network backup system")
+ (description
+ "With dirvish you can maintain a set of complete images of your
+filesystems 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"))))
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index bc745351af..f519e10350 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -81,16 +81,15 @@ command-line arguments, multiple languages, and so on.")
(define-public grep
(package
(name "grep")
- (version "3.0")
+ (version "3.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/grep/grep-"
version ".tar.xz"))
(sha256
(base32
- "1dcasjp3a578nrvzrcn38mpizb8w1q6mvfzhjmcqqgkf0nsivj72"))
- (patches (search-patches "grep-timing-sensitive-test.patch"
- "grep-gnulib-lock.patch"))))
+ "0zm0ywmyz9g8vn1plw14mn8kj74yipx5qsljndbyfgmvndx5qqnv"))
+ (patches (search-patches "grep-timing-sensitive-test.patch"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl))) ;some of the tests require it
(arguments
@@ -293,15 +292,14 @@ used to apply commands with arbitrarily long arguments.")
(define-public coreutils
(package
(name "coreutils")
- (version "8.27")
+ (version "8.28")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/coreutils/coreutils-"
version ".tar.xz"))
(sha256
(base32
- "0sv547572iq8ayy8klir4hnngnx92a9nsazmf1wgzfc7xr4x74c8"))
- (patches (search-patches "coreutils-cut-huge-range-test.patch"))))
+ "0r8c1bgm68kl70j1lgd0rv12iykw6143k4m9a56xip9rc2hv25qi"))))
(build-system gnu-build-system)
(inputs `(("acl" ,acl) ; TODO: add SELinux
("gmp" ,gmp) ;bignums in 'expr', yay!
@@ -322,21 +320,18 @@ used to apply commands with arbitrarily long arguments.")
(outputs '("out" "debug"))
(arguments
`(#:parallel-build? #f ; help2man may be called too early
- #:phases (alist-cons-before
- 'build 'patch-shell-references
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((bash (assoc-ref inputs "bash")))
- ;; 'split' uses either $SHELL or /bin/sh. Set $SHELL so
- ;; that tests pass, since /bin/sh isn't in the chroot.
- (setenv "SHELL" (which "sh"))
-
- (substitute* (find-files "gnulib-tests" "\\.c$")
- (("/bin/sh")
- (format #f "~a/bin/sh" bash)))
- (substitute* (find-files "tests" "\\.sh$")
- (("#!/bin/sh")
- (format #f "#!~a/bin/sh" bash)))))
- %standard-phases)))
+ #:phases (modify-phases %standard-phases
+ (add-before 'build 'patch-shell-references
+ (lambda _
+ ;; 'split' uses either $SHELL or /bin/sh. Set $SHELL so
+ ;; that tests pass, since /bin/sh isn't in the chroot.
+ (setenv "SHELL" (which "sh"))
+
+ (substitute* (find-files "gnulib-tests" "\\.c$")
+ (("/bin/sh") (which "sh")))
+ (substitute* (find-files "tests" "\\.sh$")
+ (("#!/bin/sh") (which "sh")))
+ #t)))))
(synopsis "Core GNU utilities (file, text, shell)")
(description
"GNU Coreutils includes all of the basic command-line tools that are
@@ -394,16 +389,15 @@ change. GNU make offers many powerful extensions over the standard utility.")
(define-public binutils
(package
- (replacement binutils/fixed)
(name "binutils")
- (version "2.28")
+ (version "2.28.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/binutils/binutils-"
version ".tar.bz2"))
(sha256
(base32
- "0wiasgns7i8km8nrxas265sh2dfpsw93b3qw195ipc90w4z475v2"))
+ "1sj234nd05cdgga1r36zalvvdkvpfbr12g5mir2n8i1dwsdrj939"))
(patches (search-patches "binutils-ld-new-dtags.patch"
"binutils-loongson-workaround.patch"))))
(build-system gnu-build-system)
@@ -436,19 +430,6 @@ included.")
(license gpl3+)
(home-page "https://www.gnu.org/software/binutils/")))
-(define binutils/fixed
- (package
- (inherit binutils)
- ;; 2.28.1 is two characters longer than 2.28, so grafting fails due to
- ;; mismatched lengths of filenames, so we have to force it to the same length.
- (version "2281")
- (source
- (origin (inherit (package-source binutils))
- (uri "mirror://gnu/binutils/binutils-2.28.1.tar.bz2")
- (sha256
- (base32
- "1sj234nd05cdgga1r36zalvvdkvpfbr12g5mir2n8i1dwsdrj939"))))))
-
(define* (make-ld-wrapper name #:key
(target (const #f))
binutils
@@ -527,14 +508,14 @@ store.")
(define-public glibc/linux
(package
(name "glibc")
- (version "2.25")
+ (version "2.26")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/glibc/glibc-"
version ".tar.xz"))
(sha256
(base32
- "1813dzkgw6v8q8q1m4v96yfis7vjqc9pslqib6j9mrwh6fxxjyq6"))
+ "1ggnj1hzjym7sn93rbwydcqd562q73lsb7g7kd199g6j9j9hlkp5"))
(snippet
;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is
;; required on LFS distros to avoid loading the distro's libc.so
@@ -545,19 +526,16 @@ store.")
(modules '((guix build utils)))
(patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-versioned-locpath.patch"
- "glibc-o-largefile.patch"
- "glibc-memchr-overflow-i686.patch"
- "glibc-vectorized-strcspn-guards.patch"
- "glibc-CVE-2017-1000366-pt1.patch"
- "glibc-CVE-2017-1000366-pt2.patch"
- "glibc-CVE-2017-1000366-pt3.patch"))))
+ "glibc-CVE-2017-15670-15671.patch"
+ "glibc-o-largefile.patch"))))
(build-system gnu-build-system)
;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
;; users should automatically pull Linux headers as well.
(propagated-inputs `(("kernel-headers" ,linux-libre-headers)))
- (outputs '("out" "debug"))
+ (outputs '("out" "debug"
+ "static")) ;9 MiB of .a files
(arguments
`(#:out-of-source? #t
@@ -568,6 +546,11 @@ store.")
;; RUNPATH checks.
#:validate-runpath? #f
+ #:modules ((ice-9 ftw)
+ (srfi srfi-26)
+ (guix build utils)
+ (guix build gnu-build-system))
+
#:configure-flags
(list "--enable-add-ons"
"--sysconfdir=/etc"
@@ -597,10 +580,10 @@ store.")
"kernel-headers")
"/include")
- ;; This is the default for most architectures as of GNU libc 2.21,
+ ;; This is the default for most architectures as of GNU libc 2.26,
;; but we specify it explicitly for clarity and consistency. See
;; "kernel-features.h" in the GNU libc for details.
- "--enable-kernel=2.6.32"
+ "--enable-kernel=3.2.0"
;; Use our Bash instead of /bin/sh.
(string-append "BASH_SHELL="
@@ -672,7 +655,46 @@ store.")
;; "bilingual" eval/exec magic at the top of the file.
"")
(("exec @PERL@")
- "exec perl"))))))))
+ "exec perl")))))
+
+ (add-after 'install 'move-static-libs
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Move static libraries to the "static" output.
+ (define (static-library? file)
+ ;; Return true if FILE is a static library. The
+ ;; "_nonshared.a" files are referred to by libc.so,
+ ;; libpthread.so, etc., which are in fact linker
+ ;; scripts.
+ (and (string-suffix? ".a" file)
+ (not (string-contains file "_nonshared"))))
+
+ (define (linker-script? file)
+ ;; Guess whether FILE, a ".a" file, is actually a
+ ;; linker script.
+ (and (not (ar-file? file))
+ (not (elf-file? file))))
+
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (files (scandir lib static-library?))
+ (static (assoc-ref outputs "static"))
+ (slib (string-append static "/lib")))
+ (mkdir-p slib)
+ (for-each (lambda (base)
+ (rename-file (string-append lib "/" base)
+ (string-append slib "/" base)))
+ files)
+
+ ;; Usually libm.a is a linker script so we need to
+ ;; change the file names in there to refer to STATIC
+ ;; instead of OUT.
+ (for-each (lambda (ld-script)
+ (substitute* ld-script
+ ((out) static)))
+ (filter linker-script?
+ (map (cut string-append slib "/" <>)
+ files)))
+ #t))))))
(inputs `(("static-bash" ,static-bash)))
@@ -789,6 +811,27 @@ GLIBC/HURD for a Hurd host"
;; Below are old libc versions, which we use mostly to build locale data in
;; the old format (which the new libc cannot cope with.)
+(define-public glibc-2.25
+ (package
+ (inherit glibc)
+ (version "2.25")
+ (source (origin
+ (inherit (package-source glibc))
+ (uri (string-append "mirror://gnu/glibc/glibc-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "1813dzkgw6v8q8q1m4v96yfis7vjqc9pslqib6j9mrwh6fxxjyq6"))
+ (patches (search-patches "glibc-ldd-x86_64.patch"
+ "glibc-versioned-locpath.patch"
+ "glibc-o-largefile.patch"
+ "glibc-vectorized-strcspn-guards.patch"
+ "glibc-CVE-2015-5180.patch"
+ "glibc-CVE-2017-15670-15671.patch"
+ "glibc-CVE-2017-1000366-pt1.patch"
+ "glibc-CVE-2017-1000366-pt2.patch"
+ "glibc-CVE-2017-1000366-pt3.patch"))))))
+
(define-public glibc-2.24
(package
(inherit glibc)
@@ -805,6 +848,7 @@ GLIBC/HURD for a Hurd host"
"glibc-o-largefile.patch"
"glibc-vectorized-strcspn-guards.patch"
"glibc-CVE-2015-5180.patch"
+ "glibc-CVE-2017-15670-15671.patch"
"glibc-CVE-2017-1000366-pt1.patch"
"glibc-CVE-2017-1000366-pt2.patch"
"glibc-CVE-2017-1000366-pt3.patch"))))))
@@ -828,6 +872,7 @@ GLIBC/HURD for a Hurd host"
"glibc-CVE-2016-3075.patch"
"glibc-CVE-2016-3706.patch"
"glibc-CVE-2016-4429.patch"
+ "glibc-CVE-2017-15670-15671.patch"
"glibc-CVE-2017-1000366-pt1.patch"
"glibc-CVE-2017-1000366-pt2.patch"
"glibc-CVE-2017-1000366-pt3.patch"))))))
@@ -850,6 +895,7 @@ GLIBC/HURD for a Hurd host"
"glibc-CVE-2016-3075.patch"
"glibc-CVE-2016-3706.patch"
"glibc-CVE-2016-4429.patch"
+ "glibc-CVE-2017-15670-15671.patch"
"glibc-CVE-2017-1000366-pt1.patch"
"glibc-CVE-2017-1000366-pt2.patch"
"glibc-CVE-2017-1000366-pt3.patch"))))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index d15f6fd559..43a00f196c 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2016 Raoul Bonnal <ilpuccio.febo@gmail.com>
+;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1314,14 +1315,15 @@ splice junctions between exons.")
(define-public bwa
(package
(name "bwa")
- (version "0.7.15")
+ (version "0.7.17")
(source (origin
(method url-fetch)
- (uri (string-append "mirror://sourceforge/bio-bwa/bwa-"
- version ".tar.bz2"))
+ (uri (string-append
+ "https://github.com/lh3/bwa/releases/download/v"
+ version "/bwa-" version ".tar.bz2"))
(sha256
(base32
- "0585ikg0gv0mpyw9iq0bq9n0hr95867bbv8jbzs9pk4slkpsymig"))))
+ "1zfhv2zg9v1icdlq4p9ssc8k01mca5d1bd87w71py2swfi74s6yy"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ;no "check" target
@@ -3615,7 +3617,7 @@ assembled metagenomic sequence.")
(define-public miso
(package
(name "miso")
- (version "0.5.3")
+ (version "0.5.4")
(source (origin
(method url-fetch)
(uri (string-append
@@ -3623,7 +3625,7 @@ assembled metagenomic sequence.")
version ".tar.gz"))
(sha256
(base32
- "0x446867az8ir0z8c1vjqffkp0ma37wm4sylixnkhgawllzx8v5w"))
+ "1z3x0vd8ma7pdrnywj7i3kgwl89sdkwrrn62zl7r5calqaq2hyip"))
(modules '((guix build utils)))
(snippet
'(substitute* "setup.py"
@@ -5747,7 +5749,7 @@ data types as well.")
("r-xml" ,r-xml)
("r-xtable" ,r-xtable)))
(home-page
- "http://bioconductor.org/packages/annotate")
+ "https://bioconductor.org/packages/annotate")
(synopsis "Annotation for microarrays")
(description "This package provides R environments for the annotation of
microarrays.")
@@ -5772,7 +5774,7 @@ microarrays.")
("r-biocgenerics" ,r-biocgenerics)
("r-lattice" ,r-lattice)
("r-rcolorbrewer" ,r-rcolorbrewer)))
- (home-page "http://bioconductor.org/packages/geneplotter")
+ (home-page "https://bioconductor.org/packages/geneplotter")
(synopsis "Graphics functions for genomic data")
(description
"This package provides functions for plotting genomic data.")
@@ -5798,7 +5800,7 @@ microarrays.")
("r-biobase" ,r-biobase)
("r-s4vectors" ,r-s4vectors)
("r-survival" ,r-survival)))
- (home-page "http://bioconductor.org/packages/genefilter")
+ (home-page "https://bioconductor.org/packages/genefilter")
(synopsis "Filter genes from high-throughput experiments")
(description
"This package provides basic functions for filtering genes from
@@ -5833,7 +5835,7 @@ high-throughput sequencing experiments.")
("r-rcpparmadillo" ,r-rcpparmadillo)
("r-s4vectors" ,r-s4vectors)
("r-summarizedexperiment" ,r-summarizedexperiment)))
- (home-page "http://bioconductor.org/packages/DESeq2")
+ (home-page "https://bioconductor.org/packages/DESeq2")
(synopsis "Differential gene expression analysis")
(description
"This package provides functions to estimate variance-mean dependence in
@@ -5873,7 +5875,7 @@ distribution.")
("r-statmod" ,r-statmod)
("r-stringr" ,r-stringr)
("r-summarizedexperiment" ,r-summarizedexperiment)))
- (home-page "http://bioconductor.org/packages/DEXSeq")
+ (home-page "https://bioconductor.org/packages/DEXSeq")
(synopsis "Inference of differential exon usage in RNA-Seq")
(description
"This package is focused on finding differential exon usage using RNA-seq
@@ -5908,7 +5910,7 @@ exploration of the results.")
("r-rsqlite" ,r-rsqlite)
("r-s4vectors" ,r-s4vectors)
("r-xml" ,r-xml)))
- (home-page "http://bioconductor.org/packages/AnnotationForge")
+ (home-page "https://bioconductor.org/packages/AnnotationForge")
(synopsis "Code for building annotation database packages")
(description
"This package provides code for generating Annotation packages and their
@@ -5929,7 +5931,7 @@ databases. Packages produced are intended to be used with AnnotationDbi.")
(properties `((upstream-name . "RBGL")))
(build-system r-build-system)
(propagated-inputs `(("r-graph" ,r-graph)))
- (home-page "http://www.bioconductor.org/packages/RBGL")
+ (home-page "https://www.bioconductor.org/packages/RBGL")
(synopsis "Interface to the Boost graph library")
(description
"This package provides a fairly extensive and comprehensive interface to
@@ -5956,7 +5958,7 @@ the graph algorithms contained in the Boost library.")
("r-biocgenerics" ,r-biocgenerics)
("r-graph" ,r-graph)
("r-xml" ,r-xml)))
- (home-page "http://bioconductor.org/packages/GSEABase")
+ (home-page "https://bioconductor.org/packages/GSEABase")
(synopsis "Gene set enrichment data structures and methods")
(description
"This package provides classes and methods to support @dfn{Gene Set
@@ -5987,7 +5989,7 @@ Enrichment Analysis} (GSEA).")
("r-matrix" ,r-matrix)
("r-rbgl" ,r-rbgl)
("r-rsqlite" ,r-rsqlite)))
- (home-page "http://bioconductor.org/packages/Category")
+ (home-page "https://bioconductor.org/packages/Category")
(synopsis "Category analysis")
(description
"This package provides a collection of tools for performing category
@@ -6016,7 +6018,7 @@ analysis.")
("r-go-db" ,r-go-db)
("r-graph" ,r-graph)
("r-rbgl" ,r-rbgl)))
- (home-page "http://bioconductor.org/packages/GOstats")
+ (home-page "https://bioconductor.org/packages/GOstats")
(synopsis "Tools for manipulating GO and microarrays")
(description
"This package provides a set of tools for interacting with GO and
@@ -6055,7 +6057,7 @@ testing and other simple calculations.")
("r-s4vectors" ,r-s4vectors)
("r-xvector" ,r-xvector)
("r-zlibbioc" ,r-zlibbioc)))
- (home-page "http://bioconductor.org/packages/ShortRead")
+ (home-page "https://bioconductor.org/packages/ShortRead")
(synopsis "FASTQ input and manipulation tools")
(description
"This package implements sampling, iteration, and input of FASTQ files.
@@ -6147,7 +6149,7 @@ annotation infrastructure.")
(method url-fetch)
;; We cannot use bioconductor-uri here because this tarball is
;; located under "data/annotation/" instead of "bioc/".
- (uri (string-append "http://bioconductor.org/packages/"
+ (uri (string-append "https://bioconductor.org/packages/"
"release/data/annotation/src/contrib"
"/TxDb.Hsapiens.UCSC.hg19.knownGene_"
version ".tar.gz"))
@@ -6163,7 +6165,7 @@ annotation infrastructure.")
(propagated-inputs
`(("r-genomicfeatures" ,r-genomicfeatures)))
(home-page
- "http://bioconductor.org/packages/TxDb.Hsapiens.UCSC.hg19.knownGene/")
+ "https://bioconductor.org/packages/TxDb.Hsapiens.UCSC.hg19.knownGene/")
(synopsis "Annotation package for human genome in TxDb format")
(description
"This package provides an annotation database of Homo sapiens genome
@@ -6444,7 +6446,7 @@ barplots or heatmaps.")
(properties
`((upstream-name . "BiocGenerics")))
(build-system r-build-system)
- (home-page "http://bioconductor.org/packages/BiocGenerics")
+ (home-page "https://bioconductor.org/packages/BiocGenerics")
(synopsis "S4 generic functions for Bioconductor")
(description
"This package provides S4 generic functions needed by many Bioconductor
@@ -6464,7 +6466,7 @@ packages.")
(properties
`((upstream-name . "BiocInstaller")))
(build-system r-build-system)
- (home-page "http://bioconductor.org/packages/BiocInstaller")
+ (home-page "https://bioconductor.org/packages/BiocInstaller")
(synopsis "Install Bioconductor packages")
(description "This package is used to install and update R packages from
Bioconductor, CRAN, and Github.")
@@ -6491,7 +6493,7 @@ Bioconductor, CRAN, and Github.")
("r-xml" ,r-xml)
("r-knitr" ,r-knitr)
("r-runit" ,r-runit)))
- (home-page "http://bioconductor.org/packages/biocViews")
+ (home-page "https://bioconductor.org/packages/biocViews")
(synopsis "Bioconductor package categorization helper")
(description "The purpose of biocViews is to create HTML pages that
categorize packages in a Bioconductor package repository according to keywords,
@@ -6538,7 +6540,7 @@ authoring books and technical documents with R Markdown.")
("r-knitr" ,r-knitr)
("r-rmarkdown" ,r-rmarkdown)
("r-yaml" ,r-yaml)))
- (home-page "http://bioconductor.org/packages/BiocStyle")
+ (home-page "https://bioconductor.org/packages/BiocStyle")
(synopsis "Bioconductor formatting styles")
(description "This package provides standard formatting styles for
Bioconductor PDF and HTML documents. Package vignettes illustrate use and
@@ -6586,7 +6588,7 @@ functionality.")
("r-optparse" ,r-optparse)
("r-biocinstaller" ,r-biocinstaller)
("r-biocviews" ,r-biocviews)))
- (home-page "http://bioconductor.org/packages/BiocCheck")
+ (home-page "https://bioconductor.org/packages/BiocCheck")
(synopsis "Executes Bioconductor-specific package checks")
(description "This package contains tools to perform additional quality
checks on R packages that are to be submitted to the Bioconductor repository.")
@@ -6674,7 +6676,7 @@ abnormal copy number.")
(build-system r-build-system)
(propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics)))
- (home-page "http://bioconductor.org/packages/S4Vectors")
+ (home-page "https://bioconductor.org/packages/S4Vectors")
(synopsis "S4 implementation of vectors and lists")
(description
"The S4Vectors package defines the @code{Vector} and @code{List} virtual
@@ -6727,7 +6729,7 @@ utilities for sequence data management under the ACNUC system.")
(propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics)
("r-s4vectors" ,r-s4vectors)))
- (home-page "http://bioconductor.org/packages/IRanges")
+ (home-page "https://bioconductor.org/packages/IRanges")
(synopsis "Infrastructure for manipulating intervals on sequences")
(description
"This package provides efficient low-level and highly reusable S4 classes
@@ -6757,7 +6759,7 @@ possible.")
(properties
`((upstream-name . "GenomeInfoDbData")))
(build-system r-build-system)
- (home-page "http://bioconductor.org/packages/GenomeInfoDbData")
+ (home-page "https://bioconductor.org/packages/GenomeInfoDbData")
(synopsis "Species and taxonomy ID look up tables for GenomeInfoDb")
(description "This package contains data for mapping between NCBI taxonomy
ID and species. It is used by functions in the GenomeInfoDb package.")
@@ -6782,7 +6784,7 @@ ID and species. It is used by functions in the GenomeInfoDb package.")
("r-iranges" ,r-iranges)
("r-rcurl" ,r-rcurl)
("r-s4vectors" ,r-s4vectors)))
- (home-page "http://bioconductor.org/packages/GenomeInfoDb")
+ (home-page "https://bioconductor.org/packages/GenomeInfoDb")
(synopsis "Utilities for manipulating chromosome identifiers")
(description
"This package contains data and functions that define and allow
@@ -6904,7 +6906,7 @@ different technologies, including microarrays, RNA-seq, and quantitative PCR.")
`(("r-biocgenerics" ,r-biocgenerics)
("r-iranges" ,r-iranges)
("r-s4vectors" ,r-s4vectors)))
- (home-page "http://bioconductor.org/packages/XVector")
+ (home-page "https://bioconductor.org/packages/XVector")
(synopsis "Representation and manpulation of external sequences")
(description
"This package provides memory efficient S4 classes for storing sequences
@@ -6930,7 +6932,7 @@ different technologies, including microarrays, RNA-seq, and quantitative PCR.")
("r-iranges" ,r-iranges)
("r-s4vectors" ,r-s4vectors)
("r-xvector" ,r-xvector)))
- (home-page "http://bioconductor.org/packages/GenomicRanges")
+ (home-page "https://bioconductor.org/packages/GenomicRanges")
(synopsis "Representation and manipulation of genomic intervals")
(description
"This package provides tools to efficiently represent and manipulate
@@ -6955,7 +6957,7 @@ manipulating genomic intervals and variables defined along a genome.")
(build-system r-build-system)
(propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics)))
- (home-page "http://bioconductor.org/packages/Biobase")
+ (home-page "https://bioconductor.org/packages/Biobase")
(synopsis "Base functions for Bioconductor")
(description
"This package provides functions that are needed by many other packages
@@ -6982,7 +6984,7 @@ on Bioconductor or which replace R functions.")
("r-iranges" ,r-iranges)
("r-rsqlite" ,r-rsqlite)
("r-s4vectors" ,r-s4vectors)))
- (home-page "http://bioconductor.org/packages/AnnotationDbi")
+ (home-page "https://bioconductor.org/packages/AnnotationDbi")
(synopsis "Annotation database interface")
(description
"This package provides user interface and database connection code for
@@ -7006,7 +7008,7 @@ annotation data packages using SQLite data storage.")
`(("r-annotationdbi" ,r-annotationdbi)
("r-rcurl" ,r-rcurl)
("r-xml" ,r-xml)))
- (home-page "http://bioconductor.org/packages/biomaRt")
+ (home-page "https://bioconductor.org/packages/biomaRt")
(synopsis "Interface to BioMart databases")
(description
"biomaRt provides an interface to a growing collection of databases
@@ -7035,7 +7037,7 @@ powerful online queries from gene annotation to database mining.")
(propagated-inputs
`(("r-futile-logger" ,r-futile-logger)
("r-snow" ,r-snow)))
- (home-page "http://bioconductor.org/packages/BiocParallel")
+ (home-page "https://bioconductor.org/packages/BiocParallel")
(synopsis "Bioconductor facilities for parallel evaluation")
(description
"This package provides modified versions and novel implementation of
@@ -7061,7 +7063,7 @@ objects.")
("r-iranges" ,r-iranges)
("r-s4vectors" ,r-s4vectors)
("r-xvector" ,r-xvector)))
- (home-page "http://bioconductor.org/packages/Biostrings")
+ (home-page "https://bioconductor.org/packages/Biostrings")
(synopsis "String objects and algorithms for biological sequences")
(description
"This package provides memory efficient string containers, string
@@ -7104,7 +7106,7 @@ biological sequences or sets of sequences.")
("r-iranges" ,r-iranges)
("r-s4vectors" ,r-s4vectors)
("r-xvector" ,r-xvector)))
- (home-page "http://bioconductor.org/packages/release/bioc/html/Rsamtools.html")
+ (home-page "https://bioconductor.org/packages/release/bioc/html/Rsamtools.html")
(synopsis "Interface to samtools, bcftools, and tabix")
(description
"This package provides an interface to the 'samtools', 'bcftools', and
@@ -7131,7 +7133,7 @@ files.")
("r-s4vectors" ,r-s4vectors)
("r-iranges" ,r-iranges)
("r-matrixstats" ,r-matrixstats)))
- (home-page "http://bioconductor.org/packages/DelayedArray")
+ (home-page "https://bioconductor.org/packages/DelayedArray")
(synopsis "Delayed operations on array-like objects")
(description
"Wrapping an array-like object (typically an on-disk object) in a
@@ -7165,7 +7167,7 @@ array-like objects like @code{DataFrame} objects (typically with Rle columns),
("r-iranges" ,r-iranges)
("r-matrix" ,r-matrix)
("r-s4vectors" ,r-s4vectors)))
- (home-page "http://bioconductor.org/packages/SummarizedExperiment")
+ (home-page "https://bioconductor.org/packages/SummarizedExperiment")
(synopsis "Container for representing genomic ranges by sample")
(description
"The SummarizedExperiment container contains one or more assays, each
@@ -7197,7 +7199,7 @@ samples.")
("r-rsamtools" ,r-rsamtools)
("r-s4vectors" ,r-s4vectors)
("r-summarizedexperiment" ,r-summarizedexperiment)))
- (home-page "http://bioconductor.org/packages/GenomicAlignments")
+ (home-page "https://bioconductor.org/packages/GenomicAlignments")
(synopsis "Representation and manipulation of short genomic alignments")
(description
"This package provides efficient containers for storing and manipulating
@@ -7242,7 +7244,7 @@ alignments.")
("r-s4vectors" ,r-s4vectors)
("r-xml" ,r-xml)
("r-xvector" ,r-xvector)))
- (home-page "http://bioconductor.org/packages/rtracklayer")
+ (home-page "https://bioconductor.org/packages/rtracklayer")
(synopsis "R interface to genome browsers and their annotation tracks")
(description
"rtracklayer is an extensible framework for interacting with multiple
@@ -7280,7 +7282,7 @@ as well as query and modify the browser state, such as the current viewport.")
("r-rtracklayer" ,r-rtracklayer)
("r-s4vectors" ,r-s4vectors)
("r-xvector" ,r-xvector)))
- (home-page "http://bioconductor.org/packages/GenomicFeatures")
+ (home-page "https://bioconductor.org/packages/GenomicFeatures")
(synopsis "Tools for working with transcript centric annotations")
(description
"This package provides a set of tools and methods for making and
@@ -7299,7 +7301,7 @@ extracting the desired features in a convenient format.")
(version "3.4.0")
(source (origin
(method url-fetch)
- (uri (string-append "http://www.bioconductor.org/packages/"
+ (uri (string-append "https://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/GO.db_"
version ".tar.gz"))
(sha256
@@ -7310,7 +7312,7 @@ extracting the desired features in a convenient format.")
(build-system r-build-system)
(propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi)))
- (home-page "http://bioconductor.org/packages/GO.db")
+ (home-page "https://bioconductor.org/packages/GO.db")
(synopsis "Annotation maps describing the entire Gene Ontology")
(description
"The purpose of this GO.db annotation package is to provide detailed
@@ -7330,7 +7332,7 @@ information about the latest version of the Gene Ontologies.")
(build-system r-build-system)
(propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics)))
- (home-page "http://bioconductor.org/packages/graph")
+ (home-page "https://bioconductor.org/packages/graph")
(synopsis "Handle graph data structures in R")
(description
"This package implements some simple graph handling capabilities for R.")
@@ -7359,7 +7361,7 @@ information about the latest version of the Gene Ontologies.")
("r-lattice" ,r-lattice)
("r-matrixstats" ,r-matrixstats)
("r-sparsem" ,r-sparsem)))
- (home-page "http://bioconductor.org/packages/topGO")
+ (home-page "https://bioconductor.org/packages/topGO")
(synopsis "Enrichment analysis for gene ontology")
(description
"The topGO package provides tools for testing @dfn{gene ontology} (GO)
@@ -7392,7 +7394,7 @@ dependencies between GO terms can be implemented and applied.")
("r-rtracklayer" ,r-rtracklayer)
("r-s4vectors" ,r-s4vectors)
("r-xvector" ,r-xvector)))
- (home-page "http://bioconductor.org/packages/BSgenome")
+ (home-page "https://bioconductor.org/packages/BSgenome")
(synopsis "Infrastructure for Biostrings-based genome data packages")
(description
"This package provides infrastructure shared by all Biostrings-based
@@ -7407,7 +7409,7 @@ genome data packages and support for efficient SNP representation.")
(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/"
+ (uri (string-append "https://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"BSgenome.Hsapiens.1000genomes.hs37d5_"
version ".tar.gz"))
@@ -7423,7 +7425,7 @@ genome data packages and support for efficient SNP representation.")
(propagated-inputs
`(("r-bsgenome" ,r-bsgenome)))
(home-page
- "http://www.bioconductor.org/packages/BSgenome.Hsapiens.1000genomes.hs37d5/")
+ "https://www.bioconductor.org/packages/BSgenome.Hsapiens.1000genomes.hs37d5/")
(synopsis "Full genome sequences for Homo sapiens")
(description
"This package provides full genome sequences for Homo sapiens from
@@ -7443,7 +7445,7 @@ genome data packages and support for efficient SNP representation.")
(inputs
`(("gfortran" ,gfortran)))
(build-system r-build-system)
- (home-page "http://bioconductor.org/packages/impute")
+ (home-page "https://bioconductor.org/packages/impute")
(synopsis "Imputation for microarray data")
(description
"This package provides a function to impute missing gene expression
@@ -7469,7 +7471,7 @@ microarray data, using nearest neighbor averaging.")
("r-iranges" ,r-iranges)
("r-kernsmooth" ,r-kernsmooth)
("r-plotrix" ,r-plotrix)))
- (home-page "http://bioconductor.org/packages/seqPattern")
+ (home-page "https://bioconductor.org/packages/seqPattern")
(synopsis "Visualising oligonucleotide patterns and motif occurrences")
(description
"This package provides tools to visualize oligonucleotide patterns and
@@ -7562,7 +7564,7 @@ downloaded from Encode.")
(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/"
+ (uri (string-append "https://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"org.Hs.eg.db_" version ".tar.gz"))
(sha256
@@ -7573,7 +7575,7 @@ downloaded from Encode.")
(build-system r-build-system)
(propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi)))
- (home-page "http://www.bioconductor.org/packages/org.Hs.eg.db/")
+ (home-page "https://www.bioconductor.org/packages/org.Hs.eg.db/")
(synopsis "Genome wide annotation for Human")
(description
"This package provides mappings from Entrez gene identifiers to various
@@ -7588,7 +7590,7 @@ annotations for the human genome.")
(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/"
+ (uri (string-append "https://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"org.Ce.eg.db_" version ".tar.gz"))
(sha256
@@ -7599,7 +7601,7 @@ annotations for the human genome.")
(build-system r-build-system)
(propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi)))
- (home-page "http://www.bioconductor.org/packages/org.Ce.eg.db/")
+ (home-page "https://www.bioconductor.org/packages/org.Ce.eg.db/")
(synopsis "Genome wide annotation for Worm")
(description
"This package provides mappings from Entrez gene identifiers to various
@@ -7614,7 +7616,7 @@ annotations for the genome of the model worm Caenorhabditis elegans.")
(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/"
+ (uri (string-append "https://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"org.Dm.eg.db_" version ".tar.gz"))
(sha256
@@ -7625,7 +7627,7 @@ annotations for the genome of the model worm Caenorhabditis elegans.")
(build-system r-build-system)
(propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi)))
- (home-page "http://www.bioconductor.org/packages/org.Dm.eg.db/")
+ (home-page "https://www.bioconductor.org/packages/org.Dm.eg.db/")
(synopsis "Genome wide annotation for Fly")
(description
"This package provides mappings from Entrez gene identifiers to various
@@ -7640,7 +7642,7 @@ annotations for the genome of the model fruit fly Drosophila melanogaster.")
(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/"
+ (uri (string-append "https://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"org.Mm.eg.db_" version ".tar.gz"))
(sha256
@@ -7651,7 +7653,7 @@ annotations for the genome of the model fruit fly Drosophila melanogaster.")
(build-system r-build-system)
(propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi)))
- (home-page "http://www.bioconductor.org/packages/org.Mm.eg.db/")
+ (home-page "https://www.bioconductor.org/packages/org.Mm.eg.db/")
(synopsis "Genome wide annotation for Mouse")
(description
"This package provides mappings from Entrez gene identifiers to various
@@ -7671,7 +7673,7 @@ annotations for the genome of the model mouse Mus musculus.")
"19d5zmy7m8svljwgbmrb4vxkq18slq0f3all6k2ayv42b8w44h6q"))))
(properties `((upstream-name . "seqLogo")))
(build-system r-build-system)
- (home-page "http://bioconductor.org/packages/seqLogo")
+ (home-page "https://bioconductor.org/packages/seqLogo")
(synopsis "Sequence logos for DNA sequence alignments")
(description
"seqLogo takes the position weight matrix of a DNA sequence motif and
@@ -7687,7 +7689,7 @@ Stephens (1990).")
(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/"
+ (uri (string-append "https://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"BSgenome.Hsapiens.UCSC.hg19_"
version ".tar.gz"))
@@ -7703,7 +7705,7 @@ Stephens (1990).")
(propagated-inputs
`(("r-bsgenome" ,r-bsgenome)))
(home-page
- "http://www.bioconductor.org/packages/BSgenome.Hsapiens.UCSC.hg19/")
+ "https://www.bioconductor.org/packages/BSgenome.Hsapiens.UCSC.hg19/")
(synopsis "Full genome sequences for Homo sapiens")
(description
"This package provides full genome sequences for Homo sapiens as provided
@@ -7718,7 +7720,7 @@ by UCSC (hg19, February 2009) and stored in Biostrings objects.")
(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/"
+ (uri (string-append "https://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"BSgenome.Mmusculus.UCSC.mm9_"
version ".tar.gz"))
@@ -7734,7 +7736,7 @@ by UCSC (hg19, February 2009) and stored in Biostrings objects.")
(propagated-inputs
`(("r-bsgenome" ,r-bsgenome)))
(home-page
- "http://www.bioconductor.org/packages/BSgenome.Mmusculus.UCSC.mm9/")
+ "https://www.bioconductor.org/packages/BSgenome.Mmusculus.UCSC.mm9/")
(synopsis "Full genome sequences for Mouse")
(description
"This package provides full genome sequences for Mus musculus (Mouse) as
@@ -7749,7 +7751,7 @@ provided by UCSC (mm9, July 2007) and stored in Biostrings objects.")
(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/"
+ (uri (string-append "https://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"BSgenome.Mmusculus.UCSC.mm10_"
version ".tar.gz"))
@@ -7765,7 +7767,7 @@ provided by UCSC (mm9, July 2007) and stored in Biostrings objects.")
(propagated-inputs
`(("r-bsgenome" ,r-bsgenome)))
(home-page
- "http://www.bioconductor.org/packages/BSgenome.Mmusculus.UCSC.mm10/")
+ "https://www.bioconductor.org/packages/BSgenome.Mmusculus.UCSC.mm10/")
(synopsis "Full genome sequences for Mouse")
(description
"This package provides full genome sequences for Mus
@@ -7781,7 +7783,7 @@ in Biostrings objects.")
(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/"
+ (uri (string-append "https://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"TxDb.Mmusculus.UCSC.mm10.knownGene_"
version ".tar.gz"))
@@ -7799,7 +7801,7 @@ in Biostrings objects.")
("r-genomicfeatures" ,r-genomicfeatures)
("r-annotationdbi" ,r-annotationdbi)))
(home-page
- "http://bioconductor.org/packages/TxDb.Mmusculus.UCSC.mm10.knownGene/")
+ "https://bioconductor.org/packages/TxDb.Mmusculus.UCSC.mm10.knownGene/")
(synopsis "Annotation package for TxDb knownGene object(s) for Mouse")
(description
"This package loads a TxDb object, which is an R interface to
@@ -7816,7 +7818,7 @@ based on the knownGene track.")
(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/"
+ (uri (string-append "https://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"BSgenome.Celegans.UCSC.ce6_"
version ".tar.gz"))
@@ -7832,7 +7834,7 @@ based on the knownGene track.")
(propagated-inputs
`(("r-bsgenome" ,r-bsgenome)))
(home-page
- "http://www.bioconductor.org/packages/BSgenome.Celegans.UCSC.ce6/")
+ "https://www.bioconductor.org/packages/BSgenome.Celegans.UCSC.ce6/")
(synopsis "Full genome sequences for Worm")
(description
"This package provides full genome sequences for Caenorhabditis
@@ -7848,7 +7850,7 @@ objects.")
(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/"
+ (uri (string-append "https://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"BSgenome.Celegans.UCSC.ce10_"
version ".tar.gz"))
@@ -7864,7 +7866,7 @@ objects.")
(propagated-inputs
`(("r-bsgenome" ,r-bsgenome)))
(home-page
- "http://www.bioconductor.org/packages/BSgenome.Celegans.UCSC.ce10/")
+ "https://www.bioconductor.org/packages/BSgenome.Celegans.UCSC.ce10/")
(synopsis "Full genome sequences for Worm")
(description
"This package provides full genome sequences for Caenorhabditis
@@ -7880,7 +7882,7 @@ objects.")
(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/"
+ (uri (string-append "https://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/"
"BSgenome.Dmelanogaster.UCSC.dm3_"
version ".tar.gz"))
@@ -7896,7 +7898,7 @@ objects.")
(propagated-inputs
`(("r-bsgenome" ,r-bsgenome)))
(home-page
- "http://www.bioconductor.org/packages/BSgenome.Dmelanogaster.UCSC.dm3/")
+ "https://www.bioconductor.org/packages/BSgenome.Dmelanogaster.UCSC.dm3/")
(synopsis "Full genome sequences for Fly")
(description
"This package provides full genome sequences for Drosophila
@@ -7924,7 +7926,7 @@ Biostrings objects.")
("r-iranges" ,r-iranges)
("r-seqlogo" ,r-seqlogo)
("r-xvector" ,r-xvector)))
- (home-page "http://bioconductor.org/packages/motifRG")
+ (home-page "https://bioconductor.org/packages/motifRG")
(synopsis "Discover motifs in high throughput sequencing data")
(description
"This package provides tools for discriminative motif discovery in high
@@ -8046,7 +8048,7 @@ of other R packages who wish to make use of HTSlib.")
("r-zlibbioc" ,r-zlibbioc)))
(inputs
`(("zlib" ,zlib)))
- (home-page "http://bioconductor.org/packages/bamsignals")
+ (home-page "https://bioconductor.org/packages/bamsignals")
(synopsis "Extract read count signals from bam files")
(description
"This package allows to efficiently obtain count vectors from indexed bam
@@ -8175,7 +8177,7 @@ library implementing most of the pipeline's features.")
("r-reshape2" ,r-reshape2)
("r-summarizedexperiment" ,r-summarizedexperiment)
("r-variantannotation" ,r-variantannotation)))
- (home-page "http://bioconductor.org/packages/MutationalPatterns/")
+ (home-page "https://bioconductor.org/packages/MutationalPatterns/")
(synopsis "Extract and visualize mutational patterns in genomic data")
(description "This package provides an extensive toolset for the
characterization and visualization of a wide range of mutational patterns
@@ -8331,7 +8333,7 @@ kernels, including: gkmSVM, kmer-SVM, mismatch kernel and wildcard kernel.")
(base32
"1mklb02bj4gnbjlmb7vv6k4lr3w9fp3pzli9rddbrwd0y5n8fcpx"))))
(build-system r-build-system)
- (home-page "http://bioconductor.org/packages/tximport")
+ (home-page "https://bioconductor.org/packages/tximport")
(synopsis "Import and summarize transcript-level estimates for gene-level analysis")
(description
"This package provides tools to import transcript-level abundance,
@@ -8373,7 +8375,7 @@ of gene-level counts.")
(inputs
`(("perl" ,perl)
("zlib" ,zlib)))
- (home-page "http://bioconductor.org/packages/rhdf5")
+ (home-page "https://bioconductor.org/packages/rhdf5")
(synopsis "HDF5 interface to R")
(description
"This R/Bioconductor package provides an interface between HDF5 and R.
@@ -8692,7 +8694,7 @@ common bioinformatics tools.")
("r-iranges" ,r-iranges)
("r-s4vectors" ,r-s4vectors)
("r-shortread" ,r-shortread)))
- (home-page "http://bioconductor.org/packages/chipseq")
+ (home-page "https://bioconductor.org/packages/chipseq")
(synopsis "Package for analyzing ChIPseq data")
(description
"This package provides tools for processing short read data from ChIPseq
@@ -8706,7 +8708,7 @@ experiments.")
(source
(origin
(method url-fetch)
- (uri (string-append "http://bioconductor.org/packages/release/"
+ (uri (string-append "https://bioconductor.org/packages/release/"
"data/experiment/src/contrib/CopyhelpeR_"
version ".tar.gz"))
(sha256
@@ -8714,7 +8716,7 @@ experiments.")
"0x7cyynjmxls9as2gg0iyp9x5fpalxmdjq914ss7i84i9zyk5bhq"))))
(properties `((upstream-name . "CopyhelpeR")))
(build-system r-build-system)
- (home-page "http://bioconductor.org/packages/CopyhelpeR/")
+ (home-page "https://bioconductor.org/packages/CopyhelpeR/")
(synopsis "Helper files for CopywriteR")
(description
"This package contains the helper files that are required to run the
@@ -8829,7 +8831,7 @@ TAB-Seq.")
("r-biocparallel" ,r-biocparallel)
("r-matrixstats" ,r-matrixstats)
("r-limma" ,r-limma)))
- (home-page "http://bioconductor.org/packages/sva")
+ (home-page "https://bioconductor.org/packages/sva")
(synopsis "Surrogate variable analysis")
(description
"This package contains functions for removing batch effects and other
@@ -9017,7 +9019,7 @@ CDF file formats.")
("r-biocinstaller" ,r-biocinstaller)
("r-preprocesscore" ,r-preprocesscore)
("r-zlibbioc" ,r-zlibbioc)))
- (home-page "http://bioconductor.org/packages/affy")
+ (home-page "https://bioconductor.org/packages/affy")
(synopsis "Methods for affymetrix oligonucleotide arrays")
(description
"This package contains functions for exploratory oligonucleotide array
@@ -9043,7 +9045,7 @@ analysis.")
("r-hexbin" ,r-hexbin)
("r-lattice" ,r-lattice)
("r-limma" ,r-limma)))
- (home-page "http://bioconductor.org/packages/release/bioc/html/vsn.html")
+ (home-page "https://bioconductor.org/packages/release/bioc/html/vsn.html")
(synopsis "Variance stabilization and calibration for microarray data")
(description
"The package implements a method for normalising microarray intensities,
@@ -9080,7 +9082,7 @@ and specific in detecting differential transcription.")
("r-protgenerics" ,r-protgenerics)
("r-rcpp" ,r-rcpp)
("r-xml" ,r-xml)))
- (home-page "http://bioconductor.org/packages/mzID")
+ (home-page "https://bioconductor.org/packages/mzID")
(synopsis "Parser for mzIdentML files")
(description
"This package provides a parser for mzIdentML files implemented using the
@@ -9187,7 +9189,7 @@ of mass spectrometry based proteomics data.")
("r-r-cache" ,r-r-cache)
("r-rcpp" ,r-rcpp)
("r-reshape2" ,r-reshape2)))
- (home-page "http://bioconductor.org/packages/MSnID")
+ (home-page "https://bioconductor.org/packages/MSnID")
(synopsis "Utilities for LC-MSn proteomics identifications")
(description
"This package extracts @dfn{tandem mass spectrometry} (MS/MS) ID data
@@ -9391,7 +9393,7 @@ global-scaling and full-quantile normalization.")
(propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics)
("r-shiny" ,r-shiny)))
- (home-page "http://bioconductor.org/packages/interactiveDisplayBase")
+ (home-page "https://bioconductor.org/packages/interactiveDisplayBase")
(synopsis "Base package for web displays of Bioconductor objects")
(description
"This package contains the basic methods needed to generate interactive
@@ -9420,7 +9422,7 @@ Shiny-based display methods for Bioconductor objects.")
("r-rsqlite" ,r-rsqlite)
("r-s4vectors" ,r-s4vectors)
("r-yaml" ,r-yaml)))
- (home-page "http://bioconductor.org/packages/AnnotationHub")
+ (home-page "https://bioconductor.org/packages/AnnotationHub")
(synopsis "Client to access AnnotationHub resources")
(description
"This package provides a client for the Bioconductor AnnotationHub web
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index ba733b3a9e..d1b03eb882 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -26,8 +26,10 @@
#:use-module (guix build-system)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
- #:use-module ((guix store) #:select (add-to-store add-text-to-store))
- #:use-module ((guix derivations) #:select (derivation))
+ #:use-module ((guix store)
+ #:select (run-with-store add-to-store add-text-to-store))
+ #:use-module ((guix derivations)
+ #:select (derivation derivation->output-path))
#:use-module ((guix utils) #:select (gnu-triplet->nix-system))
#:use-module ((guix build utils) #:select (elf-file?))
#:use-module (guix memoization)
@@ -38,6 +40,8 @@
package-with-bootstrap-guile
glibc-dynamic-linker
+ bootstrap-guile-origin
+
%bootstrap-guile
%bootstrap-coreutils&co
%bootstrap-binutils
@@ -191,6 +195,56 @@ successful, or false to signal an error."
;;; Bootstrap packages.
;;;
+(define %bootstrap-base-urls
+ ;; This is where the initial binaries come from.
+ '("https://alpha.gnu.org/gnu/guix/bootstrap"
+ "http://alpha.gnu.org/gnu/guix/bootstrap"
+ "ftp://alpha.gnu.org/gnu/guix/bootstrap"
+ "http://www.fdn.fr/~lcourtes/software/guix/packages"
+ "http://flashner.co.il/guix/bootstrap"))
+
+(define (bootstrap-guile-url-path system)
+ "Return the URI for FILE."
+ (string-append "/" system
+ (match system
+ ("aarch64-linux"
+ "/20170217/guile-2.0.14.tar.xz")
+ ("armhf-linux"
+ "/20150101/guile-2.0.11.tar.xz")
+ (_
+ "/20131110/guile-2.0.9.tar.xz"))))
+
+(define (bootstrap-guile-hash system)
+ "Return the SHA256 hash of the Guile bootstrap tarball for SYSTEM."
+ (match system
+ ("x86_64-linux"
+ (base32 "1w2p5zyrglzzniqgvyn1b55vprfzhgk8vzbzkkbdgl5248si0yq3"))
+ ("i686-linux"
+ (base32 "0im800m30abgh7msh331pcbjvb4n02smz5cfzf1srv0kpx3csmxp"))
+ ("mips64el-linux"
+ (base32 "0fzp93lvi0hn54acc0fpvhc7bvl0yc853k62l958cihk03q80ilr"))
+ ("armhf-linux"
+ (base32 "1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5"))
+ ("aarch64-linux"
+ (base32 "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r"))))
+
+(define (bootstrap-guile-origin system)
+ "Return an <origin> object for the Guile tarball of SYSTEM."
+ (origin
+ (method url-fetch)
+ (uri (map (cute string-append <> (bootstrap-guile-url-path system))
+ %bootstrap-base-urls))
+ (sha256 (bootstrap-guile-hash system))))
+
+(define (download-bootstrap-guile store system)
+ "Return a derivation that downloads the bootstrap Guile tarball for SYSTEM."
+ (let* ((path (bootstrap-guile-url-path system))
+ (base (basename path))
+ (urls (map (cut string-append <> path) %bootstrap-base-urls)))
+ (run-with-store store
+ (url-fetch urls 'sha256 (bootstrap-guile-hash system)
+ #:system system))))
+
(define* (raw-build store name inputs
#:key outputs system search-paths
#:allow-other-keys)
@@ -205,13 +259,7 @@ successful, or false to signal an error."
(xz (->store "xz"))
(mkdir (->store "mkdir"))
(bash (->store "bash"))
- (guile (->store (match system
- ("armhf-linux"
- "guile-2.0.11.tar.xz")
- ("aarch64-linux"
- "guile-2.0.14.tar.xz")
- (_
- "guile-2.0.9.tar.xz"))))
+ (guile (download-bootstrap-guile store system))
;; The following code, run by the bootstrap guile after it is
;; unpacked, creates a wrapper for itself to set its load path.
;; This replaces the previous non-portable method based on
@@ -246,7 +294,7 @@ exec -a \"~a0\" ~a \"~a@\"\n"
echo \"unpacking bootstrap Guile to '$out'...\"
~a $out
cd $out
-~a -dc < ~a | ~a xv
+~a -dc < $GUILE_TARBALL | ~a xv
# Use the bootstrap guile to create its own wrapper to set the load path.
GUILE_SYSTEM_PATH=$out/share/guile/2.0 \
@@ -255,14 +303,16 @@ $out/bin/guile -c ~s $out ~a
# Sanity check.
$out/bin/guile --version~%"
- mkdir xz guile tar
+ mkdir xz tar
(format #f "~s" make-guile-wrapper)
bash)
- (list mkdir xz guile tar bash))))
+ (list mkdir xz tar bash))))
(derivation store name
bash `(,builder)
#:system system
- #:inputs `((,bash) (,builder)))))
+ #:inputs `((,bash) (,builder) (,guile))
+ #:env-vars `(("GUILE_TARBALL"
+ . ,(derivation->output-path guile))))))
(define* (make-raw-bag name
#:key source inputs native-inputs outputs
@@ -294,13 +344,6 @@ $out/bin/guile --version~%"
(home-page #f)
(license lgpl3+))))
-(define %bootstrap-base-urls
- ;; This is where the initial binaries come from.
- '("ftp://alpha.gnu.org/gnu/guix/bootstrap"
- "http://alpha.gnu.org/gnu/guix/bootstrap"
- "http://www.fdn.fr/~lcourtes/software/guix/packages"
- "http://flashner.co.il/guix/bootstrap"))
-
(define %bootstrap-coreutils&co
(package-from-tarball "bootstrap-binaries"
(lambda (system)
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 5236444abc..1d2ac20326 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -244,13 +244,13 @@ format.")
(define-public cppcheck
(package
(name "cppcheck")
- (version "1.80")
+ (version "1.81")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/danmar/cppcheck/archive/"
version ".tar.gz"))
(sha256
- (base32 "007hs15i2pn49l6kycy49h3bj66qh6fxrp6yidj3776n32q3v1i0"))
+ (base32 "0miamqk7pa2dzmnmi5wb6hjp2a3zya1x8afnlcxby8jb6gp6wf8j"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system)
(home-page "http://cppcheck.sourceforge.net")
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index ec7677814f..93199d210d 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -113,7 +113,7 @@
(define file-boot0
(package-with-bootstrap-guile
- (package-with-explicit-inputs (package/inherit file
+ (package-with-explicit-inputs (package (inherit file)
(name "file-boot0"))
`(("make" ,gnu-make-boot0)
,@%bootstrap-inputs)
@@ -140,7 +140,7 @@
(define binutils-boot0
(package-with-bootstrap-guile
- (package/inherit binutils
+ (package (inherit binutils)
(name "binutils-cross-boot0")
(arguments
`(#:guile ,%bootstrap-guile
@@ -149,23 +149,22 @@
#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 ftw)) ; for 'scandir'
- #:phases (alist-cons-after
- 'install 'add-symlinks
- (lambda* (#:key outputs #:allow-other-keys)
- ;; The cross-gcc invokes 'as', 'ld', etc, without the
- ;; triplet prefix, so add symlinks.
- (let ((out (assoc-ref outputs "out"))
- (triplet-prefix (string-append ,(boot-triplet) "-")))
- (define (has-triplet-prefix? name)
- (string-prefix? triplet-prefix name))
- (define (remove-triplet-prefix name)
- (substring name (string-length triplet-prefix)))
- (with-directory-excursion (string-append out "/bin")
- (for-each (lambda (name)
- (symlink name (remove-triplet-prefix name)))
- (scandir "." has-triplet-prefix?)))
- #t))
- %standard-phases)
+ #:phases (modify-phases %standard-phases
+ (add-after 'install 'add-symlinks
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; The cross-gcc invokes 'as', 'ld', etc, without the
+ ;; triplet prefix, so add symlinks.
+ (let ((out (assoc-ref outputs "out"))
+ (triplet-prefix (string-append ,(boot-triplet) "-")))
+ (define (has-triplet-prefix? name)
+ (string-prefix? triplet-prefix name))
+ (define (remove-triplet-prefix name)
+ (substring name (string-length triplet-prefix)))
+ (with-directory-excursion (string-append out "/bin")
+ (for-each (lambda (name)
+ (symlink name (remove-triplet-prefix name)))
+ (scandir "." has-triplet-prefix?)))
+ #t))))
,@(substitute-keyword-arguments (package-arguments binutils)
((#:configure-flags cf)
@@ -286,9 +285,8 @@
("libc-native" ,@(assoc-ref %boot0-inputs "libc"))
,@(alist-delete "libc" %boot0-inputs)))
- ;; No need for Texinfo at this stage.
- (native-inputs (alist-delete "texinfo"
- (package-native-inputs gcc))))))
+ ;; No need for the native-inputs to build the documentation at this stage.
+ (native-inputs `()))))
(define perl-boot0
(let ((perl (package
@@ -466,7 +464,7 @@ the bootstrap environment."
;; built just below; the only difference is that this one uses the
;; bootstrap Bash.
(package-with-bootstrap-guile
- (package/inherit glibc
+ (package (inherit glibc)
(name "glibc-intermediate")
(arguments
`(#:guile ,%bootstrap-guile
@@ -583,12 +581,24 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
(let* ((gcc (cross-gcc-wrapper gcc-boot0 binutils-boot0
glibc-final-with-bootstrap-bash
(car (assoc-ref %boot1-inputs "bash"))))
- (bash (package (inherit static-bash)
+ (bash (package
+ (inherit static-bash)
(arguments
- `(#:guile ,%bootstrap-guile
- ,@(package-arguments static-bash)))))
+ (substitute-keyword-arguments
+ (package-arguments static-bash)
+ ((#:guile _ #f)
+ '%bootstrap-guile)
+ ((#:configure-flags flags '())
+ ;; Add a '-L' flag so that the pseudo-cross-ld of
+ ;; BINUTILS-BOOT0 can find libc.a.
+ `(append ,flags
+ (list (string-append "LDFLAGS=-static -L"
+ (assoc-ref %build-inputs
+ "libc:static")
+ "/lib"))))))))
(inputs `(("gcc" ,gcc)
("libc" ,glibc-final-with-bootstrap-bash)
+ ("libc:static" ,glibc-final-with-bootstrap-bash "static")
,@(fold alist-delete %boot1-inputs
'("gcc" "libc")))))
(package-with-bootstrap-guile
@@ -632,7 +642,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
(define glibc-final
;; The final glibc, which embeds the statically-linked Bash built above.
- (package/inherit glibc-final-with-bootstrap-bash
+ (package (inherit glibc-final-with-bootstrap-bash)
(name "glibc")
(inputs `(("static-bash" ,static-bash-for-glibc)
,@(alist-delete
@@ -663,12 +673,13 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
(define %boot2-inputs
;; 3rd stage inputs.
`(("libc" ,glibc-final)
+ ("libc:static" ,glibc-final "static")
("gcc" ,gcc-boot0-wrapped)
,@(fold alist-delete %boot1-inputs '("libc" "gcc"))))
(define binutils-final
(package-with-bootstrap-guile
- (package/inherit binutils
+ (package (inherit binutils)
(arguments
`(#:guile ,%bootstrap-guile
#:implicit-inputs? #f
@@ -679,34 +690,29 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
(define libstdc++
;; Intermediate libstdc++ that will allow us to build the final GCC
;; (remember that GCC-BOOT0 cannot build libstdc++.)
- ;; TODO: Write in terms of 'make-libstdc++'.
- (package-with-bootstrap-guile
- (package (inherit gcc)
- (name "libstdc++")
- (arguments
- `(#:guile ,%bootstrap-guile
- #:implicit-inputs? #f
- #:allowed-references ("out")
- #:out-of-source? #t
- #:phases (alist-cons-before
- 'configure 'chdir
- (lambda _
- (chdir "libstdc++-v3"))
- %standard-phases)
- #:configure-flags `("--disable-shared"
- "--disable-libstdcxx-threads"
- "--disable-libstdcxx-pch"
- ,(string-append "--with-gxx-include-dir="
- (assoc-ref %outputs "out")
- "/include"
- ;; "/include/c++/"
- ;; ,(package-version gcc)
- ))))
- (outputs '("out"))
- (inputs %boot2-inputs)
- (native-inputs '())
- (propagated-inputs '())
- (synopsis "GNU C++ standard library (intermediate)"))))
+ (let ((lib (package-with-bootstrap-guile (make-libstdc++ gcc))))
+ (package
+ (inherit lib)
+ (arguments
+ `(#:guile ,%bootstrap-guile
+ #:implicit-inputs? #f
+ #:allowed-references ("out")
+
+ ;; XXX: libstdc++.so NEEDs ld.so for some reason.
+ #:validate-runpath? #f
+
+ ;; All of the package arguments from 'make-libstdc++
+ ;; except for the configure-flags.
+ ,@(package-arguments lib)
+ #:configure-flags `("--disable-shared"
+ "--disable-libstdcxx-threads"
+ "--disable-libstdcxx-pch"
+ ,(string-append "--with-gxx-include-dir="
+ (assoc-ref %outputs "out")
+ "/include"))))
+ (outputs '("out"))
+ (inputs %boot2-inputs)
+ (synopsis "GNU C++ standard library (intermediate)"))))
(define zlib-final
;; Zlib used by GCC-FINAL.
@@ -779,6 +785,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
;; scripts such as 'mkheaders' and 'fixinc.sh' (XXX: who cares about these
;; scripts?).
(native-inputs `(("texinfo" ,texinfo-boot0)
+ ("perl" ,perl-boot0) ;for manpages
("static-bash" ,static-bash-for-glibc)
,@(package-native-inputs gcc-boot0)))
@@ -923,12 +930,13 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
("binutils" ,binutils-final)
("gcc" ,gcc-final)
("libc" ,glibc-final)
+ ("libc:static" ,glibc-final "static")
("locales" ,glibc-utf8-locales-final))))
(define-public canonical-package
(let ((name->package (fold (lambda (input result)
(match input
- ((_ package)
+ ((_ package . outputs)
(vhash-cons (package-full-name package)
package result))))
vlist-null
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index f3142d1ddf..9a1b628809 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -18,6 +18,7 @@
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
+;;; Copyright © 2017 Petter <petter@mykolab.ch>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -204,7 +205,16 @@ adding and extracting files to/from a tar archive.")
(synopsis "General file (de)compression (using lzw)")
(arguments
;; FIXME: The test suite wants `less', and optionally Perl.
- '(#:tests? #f))
+ '(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'use-absolute-name-of-gzip
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "gunzip.in"
+ (("exec gzip")
+ (string-append "exec " (assoc-ref outputs "out")
+ "/bin/gzip")))
+ #t)))))
(description
"GNU Gzip provides data compression and decompression utilities; the
typical extension is \".gz\". Unlike the \"zip\" format, it compresses a single
@@ -343,7 +353,7 @@ compressed with pbzip2 can be decompressed with bzip2).")
(define-public xz
(package
(name "xz")
- (version "5.2.2")
+ (version "5.2.3")
(source (origin
(method url-fetch)
(uri (list (string-append "http://tukaani.org/xz/xz-" version
@@ -352,7 +362,7 @@ compressed with pbzip2 can be decompressed with bzip2).")
version ".tar.gz")))
(sha256
(base32
- "18h2k4jndhzjs8ln3a54qdnfv59y6spxiwh9gpaqniph6iflvpvk"))))
+ "1jr8pxnz55ifc8cvp3ivgl79ph9iik5aypsc9cma228aglsqp4ki"))))
(build-system gnu-build-system)
(synopsis "General-purpose data compression")
(description
@@ -371,7 +381,7 @@ than gzip and 15 % smaller output than bzip2.")
(define-public lzo
(package
(name "lzo")
- (version "2.09")
+ (version "2.10")
(source
(origin
(method url-fetch)
@@ -379,7 +389,7 @@ than gzip and 15 % smaller output than bzip2.")
version ".tar.gz"))
(sha256
(base32
- "0k5kpj3jnsjfxqqkblpfpx0mqcy86zs5fhjhgh2kq1hksg7ag57j"))))
+ "0wm04519pd3g8hqpjqhfr72q8qmbiwqaxcs3cndny9h86aa95y60"))))
(build-system gnu-build-system)
(arguments '(#:configure-flags '("--enable-shared")))
(home-page "http://www.oberhumer.com/opensource/lzo")
@@ -458,14 +468,14 @@ some compression ratio).")
(define-public lzip
(package
(name "lzip")
- (version "1.18")
+ (version "1.19")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/lzip/lzip-"
version ".tar.gz"))
(sha256
(base32
- "1p8lvc22sv3damld9ng8y6i8z2dvvpsbi9v7yhr5bc2a20m8iya7"))))
+ "1abbch762gv8rjr579q3qyyk6c80plklbv2mw4x0vg71dgsw9bgz"))))
(build-system gnu-build-system)
(home-page "http://www.nongnu.org/lzip/lzip.html")
(synopsis "Lossless data compressor based on the LZMA algorithm")
@@ -1603,3 +1613,24 @@ extract files to standard out). As @command{atool} invokes external programs
to handle the archives, not all commands may be supported for a certain type
of archives.")
(license license:gpl2+)))
+
+(define-public perl-archive-extract
+ (package
+ (name "perl-archive-extract")
+ (version "0.80")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Extract-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1x15j1q6w6z8hqyqgap0lz4qbq2174wfhksy1fdd653ccbaw5jr5"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/Archive-Extract/")
+ (synopsis "Generic archive extracting mechanism")
+ (description "It allows you to extract any archive file of the type .tar,
+.tar.gz, .gz, .Z, tar.bz2, .tbz, .bz2, .zip, .xz,, .txz, .tar.xz or .lzma
+without having to worry how it does so, or use different interfaces for each
+type by using either Perl modules, or command-line tools on your system.")
+ (license license:perl-license)))
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index e00a8a4ba2..9a27c82d21 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -410,6 +410,8 @@ any subsequent lookup as it keeps the hash table in memory.")
"This package provides data structures that are stored on disk but
behave (almost) as if they were in RAM by transparently mapping only a section
in main memory.")
+ ;; error Architecture not supported.
+ (supported-systems (delete "aarch64-linux" %supported-systems))
(license license:gpl2)))
(define-public r-ffbase
@@ -1217,3 +1219,27 @@ initial data set and then applied to other data sets. The resulting design
matrices can then be used as inputs into statistical or machine learning
models.")
(license license:gpl2)))
+
+(define-public r-pdist
+ (package
+ (name "r-pdist")
+ (version "1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "pdist" version))
+ (sha256
+ (base32
+ "18nd3mgad11f2zmwcp0w3sxlch4a9y6wp8dfdyzvjn7y4b4bq0dd"))))
+ (build-system r-build-system)
+ (home-page "https://github.com/jeffwong/pdist")
+ (synopsis "Partitioned distance function")
+ (description
+ "Pdist computes the euclidean distance between rows of a matrix X and
+rows of another matrix Y. Previously, this could be done by binding the two
+matrices together and calling @code{dist}, but this creates unnecessary
+computation by computing the distances between a row of X and another row of
+X, and likewise for Y. Pdist strictly computes distances across the two
+matrices, not within the same matrix, making computations significantly faster
+for certain use cases.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index abc3a2821c..369083eab0 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -248,6 +248,7 @@ target that libc."
,@inputs)))
(libc
`(("libc" ,libc)
+ ("libc:static" ,libc "static")
("xkernel-headers" ;the target headers
,@(assoc-ref (package-propagated-inputs libc)
"kernel-headers"))
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 549955d7b4..0021bee7b4 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
;;; Copyright © 2016, 2017 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -29,6 +30,7 @@
#:use-module (gnu packages attr)
#:use-module (gnu packages autotools)
#:use-module (gnu packages boost)
+ #:use-module (gnu packages compression)
#:use-module (gnu packages cryptsetup)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gnupg)
@@ -632,3 +634,33 @@ data on your platform, so the seed itself will be as random as possible.
Networking and Cryptography library. These libraries have a stated goal
of improving usability, security and speed.")
(license license:asl2.0)))
+
+(define-public crypto++
+ (package
+ (name "crypto++")
+ (version "5.6.5")
+ (source (origin
+ (method url-fetch/zipbomb)
+ (uri (string-append "https://cryptopp.com/cryptopp"
+ (string-join (string-split version #\.) "")
+ ".zip"))
+ (sha256
+ (base32
+ "0d1cqdz369ivi082k59025wvxzywvkizw7i0pf5h0a1izs3g8pm7"))
+ (patches
+ (search-patches "crypto++-fix-dos-in-asn.1-decoders.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags
+ (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (home-page "https://cryptopp.com/")
+ (synopsis "C++ class library of cryptographic schemes")
+ (description "Crypto++ is a C++ class library of cryptographic schemes.")
+ ;; The compilation is distributed under the Boost license; the individual
+ ;; files in the compilation are in the public domain.
+ (license (list license:boost1.0 license:public-domain))))
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index 30e03e6c69..c291d605a2 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -42,15 +43,14 @@
(define-public curl
(package
(name "curl")
- (version "7.55.1")
- (replacement curl-7.56.0)
+ (version "7.56.1")
(source (origin
(method url-fetch)
(uri (string-append "https://curl.haxx.se/download/curl-"
version ".tar.xz"))
(sha256
(base32
- "1dvbcwcar3dv488h9378hy145ma3ws2fwpbr6mgszd7chipcmbry"))))
+ "1l9r386qz7l7h4n5lysrf1wq93lyc72a7shgg9b8s5d0ycn2ivcf"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ;1.2 MiB of man3 pages
@@ -109,7 +109,15 @@
;; The top-level "make check" does "make -C tests quiet-test", which
;; is too quiet. Use the "test" target instead, which is more
;; verbose.
- (zero? (system* "make" "-C" "tests" "test")))))))
+ (zero? (system* "make" "-C" "tests" "test"))))
+ (add-before 'install 'fix-Makefile
+ ;; Fix a regression in 7.55.0 where docs are not installed.
+ ;; https://github.com/curl/curl/commit/a7bbbb7c368c6096802007f61f19a02e9d75285b
+ (lambda _
+ (substitute* "Makefile"
+ (("install-data-hook:\n")
+ "install-data-hook:\n\tcd docs/libcurl && $(MAKE) install\n"))
+ #t)))))
(synopsis "Command line tool for transferring data with URL syntax")
(description
"curl is a command line tool for transferring data with URL syntax,
@@ -122,16 +130,3 @@ tunneling, and so on.")
(license (license:non-copyleft "file://COPYING"
"See COPYING in the distribution."))
(home-page "https://curl.haxx.se/")))
-
-(define-public curl-7.56.0
- (package
- (inherit curl)
- (version "7.56.0")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://curl.haxx.se/download/curl-"
- version ".tar.xz"))
- (sha256
- (base32
- "0wni3zkw7jyrwgwkqnrkf2x2b7c78wsp7p4z6a246hz9l367nhrj"))))))
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index f89a423804..ceee88d82b 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -20,6 +20,8 @@
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -453,7 +455,7 @@ RDBMS systems (which are deep in functionality).")
(define-public mysql
(package
(name "mysql")
- (version "5.7.19")
+ (version "5.7.20")
(source (origin
(method url-fetch)
(uri (list (string-append
@@ -465,7 +467,7 @@ RDBMS systems (which are deep in functionality).")
name "-" version ".tar.gz")))
(sha256
(base32
- "1c8y54yk756179nx4dgg79dijmjdq5n8l057cnqsg70pjdpyfl9y"))))
+ "11v4g3igigv3zvknv67qml8in6fjrbs2vnr3q6bg6f62nydm95sk"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
@@ -898,7 +900,7 @@ for example from a shell script.")
(define-public sqlite
(package
(name "sqlite")
- (version "3.19.3")
+ (version "3.20.1")
(source (origin
(method url-fetch)
(uri (let ((numeric-version
@@ -914,7 +916,7 @@ for example from a shell script.")
numeric-version ".tar.gz")))
(sha256
(base32
- "00b3l2qglpl1inx21fckiwxnfq5xf6441flc79rqg7zdvh1rq4h6"))))
+ "0hh7jnxfwvs2qlvmjwrgkvxb8sk4x8hj04m54fq9h1xw55dmjrpc"))))
(build-system gnu-build-system)
(inputs `(("readline" ,readline)))
(arguments
@@ -934,6 +936,20 @@ widely deployed SQL database engine in the world. The source code for SQLite
is in the public domain.")
(license license:public-domain)))
+;; This is used by Clementine.
+(define-public sqlite-with-fts3
+ (package (inherit sqlite)
+ (name "sqlite-with-fts3")
+ (arguments
+ (substitute-keyword-arguments (package-arguments sqlite)
+ ((#:configure-flags flags)
+ `(list (string-append "CFLAGS=-O2 -DSQLITE_SECURE_DELETE "
+ "-DSQLITE_ENABLE_UNLOCK_NOTIFY "
+ "-DSQLITE_ENABLE_DBSTAT_VTAB "
+ "-DSQLITE_ENABLE_FTS3 "
+ "-DSQLITE_ENABLE_FTS3_PARENTHESIS "
+ "-DSQLITE_ENABLE_FTS3_TOKENIZER")))))))
+
(define-public tdb
(package
(name "tdb")
@@ -1582,14 +1598,14 @@ on another machine, accessed via TCP/IP.")
(define-public python-peewee
(package
(name "python-peewee")
- (version "2.8.3")
+ (version "2.10.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "peewee" version))
(sha256
(base32
- "1605bk11s7aap2q4qyba93rx7yfh8b11kk0cqi08z8klx2iar8yd"))))
+ "10f2mrd5hw6rjklrzaix2lsxlgc8vx3xak54arcy6yd791zhchi3"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ; Fails to import test data
@@ -1728,13 +1744,13 @@ etc., and an SQL engine for performing simple SQL queries.")
(define-public python-lmdb
(package
(name "python-lmdb")
- (version "0.92")
+ (version "0.93")
(source (origin
(method url-fetch)
(uri (pypi-uri "lmdb" version))
(sha256
(base32
- "01nw6r08jkipx6v92kw49z34wmwikrpvc5j9xawdiyg1n2526wrx"))
+ "0xdpb298fyl68acadbwv5801wcwfpnhc7sm4bnrq1x4bd5dhhsql"))
(modules '((guix build utils)))
(snippet
;; Delete bundled lmdb source files.
diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index 8e5bca64c0..7c7a70e950 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Sou Bunnbu <iyzsong@gmail.com>
+;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -188,6 +189,14 @@ Qt-style API for Wayland clients.")
(substitute* "CMakeLists.txt"
(("/usr/bin/loginctl") (which "loginctl")))
#t))
+ (add-before 'configure 'fix-qml-include
+ (lambda _
+ ;; Make sure QtQml is found when building the helper.
+ ;; See <https://github.com/sddm/sddm/pull/918>.
+ (substitute* "src/helper/CMakeLists.txt"
+ (("target_link_libraries\\(sddm-helper")
+ "target_link_libraries(sddm-helper Qt5::Qml"))
+ #t))
(add-after 'install 'wrap-programs
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index c70c074938..f983b1aa10 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
+;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -150,7 +151,7 @@ with arguments to the field constructor.")
`(("python-django" ,python-django)
("python-setuptools-scm" ,python-setuptools-scm)))
(propagated-inputs
- `(("python-pytest" ,python-pytest)))
+ `(("python-pytest" ,python-pytest-3.0)))
(home-page "http://pytest-django.readthedocs.org/")
(synopsis "Django plugin for py.test")
(description "Pytest-django is a plugin for py.test that provides a set of
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 657e7eb2a4..e6afc04208 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -284,7 +284,7 @@ asynchronous fashion.")
(define-public unbound
(package
(name "unbound")
- (version "1.6.3")
+ (version "1.6.7")
(source
(origin
(method url-fetch)
@@ -292,7 +292,7 @@ asynchronous fashion.")
version ".tar.gz"))
(sha256
(base32
- "0pw4m4z5qspsagxzbjb61xq5bhd57amw26xqvqzi6b8d3mf6azjc"))))
+ "17qwfmlls0w9kpkya3dlpn44b3kr87wsswzg3gawc13hh8yx8ysf"))))
(build-system gnu-build-system)
(outputs '("out" "python"))
(native-inputs
@@ -443,9 +443,9 @@ served by AS112. Stub and forward zones are supported.")
(define-public yadifa
(package
(name "yadifa")
- (version "2.2.5")
+ (version "2.2.6")
(source
- (let ((build "6937"))
+ (let ((build "7246"))
(origin
(method url-fetch)
(uri
@@ -453,7 +453,7 @@ served by AS112. Stub and forward zones are supported.")
name "-" version "-" build ".tar.gz"))
(sha256
(base32
- "146fs52izf6dfwsxal3srpwin2yyl41g31cy4pyvbi5mqy2craj7")))))
+ "041a35f5jz2wcn8pxk1m7b2qln2wbvj4ddwb0a53lqabl912xi6p")))))
(build-system gnu-build-system)
(native-inputs
`(("which" ,which)))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 315db18a57..bc803892af 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -135,7 +135,17 @@
(format #f "(tramp-default-remote-path ~s ~s ~s ~s "
"~/.guix-profile/bin" "~/.guix-profile/sbin"
"/run/current-system/profile/bin"
- "/run/current-system/profile/sbin")))))))
+ "/run/current-system/profile/sbin")))
+
+ ;; Make sure Man looks for C header files in the right
+ ;; places.
+ (substitute* "man.el"
+ (("\"/usr/local/include\"" line)
+ (string-join
+ (list line
+ "\"~/.guix-profile/include\""
+ "\"/var/guix/profiles/system/profile/include\"")
+ " ")))))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:phases
@@ -5657,6 +5667,26 @@ pair of minor modes which suppress all mouse events by intercepting them and
running a customisable handler command (@code{ignore} by default). ")
(license license:gpl3+)))
+(define-public emacs-json-snatcher
+ (package
+ (name "emacs-json-snatcher")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/Sterlingg/json-snatcher/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1nfiwsifpdiz0lbrqa77nl0crnfrv5h85ans9b0g5rggnmyshcfb"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/sterlingg/json-snatcher")
+ (synopsis "Grabs the path to JSON values in a JSON file")
+ (description "@code{emacs-json-snatcher} grabs the path to JSON values in
+a @url{http://json.org/, JSON} file.")
+ (license license:gpl3+)))
+
(define-public emacs-restclient
(let ((commit "07a3888bb36d0e29608142ebe743b4362b800f40")
(revision "1")) ;Guix package revision,
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index e89f5570b0..033d0032e7 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -42,6 +42,8 @@
#:use-module (gnu packages libusb)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages swig)
#:use-module (gnu packages texinfo)
#:use-module (srfi srfi-1))
@@ -867,3 +869,66 @@ the Raspberry Pi chip.")
(synopsis "GCC for VC4")
(description "This package provides @code{gcc} for VideoCore IV,
the Raspberry Pi chip."))))
+
+(define-public python2-libmpsse
+ (package
+ (name "python2-libmpsse")
+ (version "1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://storage.googleapis.com/"
+ "google-code-archive-downloads/v2/"
+ "code.google.com/libmpsse/"
+ "libmpsse-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0jq7nhqq3na8675jnpfcar3pd3dp3adhhc4lw900swkla01a1wh8"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libftdi" ,libftdi)
+ ("python" ,python-2)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("swig" ,swig)
+ ("which" ,base:which)))
+ (arguments
+ `(#:tests? #f ; No tests exist.
+ #:make-flags
+ (list (string-append "CFLAGS=-Wall -fPIC -fno-strict-aliasing -g -O2 "
+ "$(shell pkg-config --cflags libftdi1)"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'set-environment-up
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (chdir "src")
+ (setenv "PYDEV" (string-append (assoc-ref inputs "python")
+ "/include/python2.7"))
+ #t))
+ (add-after 'unpack 'patch-global-variable
+ (lambda _
+ ;; fast_rw_buf was defined in a header file which was making
+ ;; the build not reproducible.
+ (substitute* "src/fast.c"
+ (("^int fast_build_block_buffer") "
+
+unsigned char fast_rw_buf[SPI_RW_SIZE + CMD_SIZE];
+int fast_build_block_buffer"))
+ (substitute* "src/mpsse.h"
+ (("unsigned char fast_rw_buf.*") "
+"))
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs make-flags #:allow-other-keys #:rest args)
+ (let* ((out (assoc-ref outputs "out"))
+ (out-python (string-append out
+ "/lib/python2.7/site-packages"))
+ (install (assoc-ref %standard-phases 'install)))
+ (install #:make-flags (cons (string-append "PYLIB=" out-python)
+ make-flags))))))))
+ (home-page "https://code.google.com/archive/p/libmpsse/")
+ (synopsis "Python library for MPSSE SPI I2C JTAG adapter by FTDI")
+ (description "This package provides a library in order to support the
+MPSSE (Multi-Protocol Synchronous Serial Engine) adapter by FTDI that can do
+SPI, I2C, JTAG.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 9f9949ef84..c9e184d7d5 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -429,7 +429,7 @@ multipole-accelerated algorithm.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0pvk57z2pxz89pcwwm61lkpvj4w9qxqz8mi0zkpj6pnaljabp7bf"))))
+ "15rwjp4xdj9w1z9f709rz9p0k2mi9k9idma9hvzkj5j8p04mg7yd"))))
(build-system gnu-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index cf4d7a5955..1a575a0fd0 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -46,7 +46,7 @@
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1azjjyb743i6vjq7rnh5qnslsqg0x60a9zrlhg9n3dpm13z1b22l"))
+ "11xp6vv1v7iay9dg1xc6xm7izfsanbn5pgwp96ba0j1fmlkhjw92"))
(patches (search-patches "erlang-man-path.patch"))))
(build-system gnu-build-system)
(native-inputs
diff --git a/gnu/packages/file.scm b/gnu/packages/file.scm
index 3bc8e1dcfe..63aa3fac49 100644
--- a/gnu/packages/file.scm
+++ b/gnu/packages/file.scm
@@ -27,16 +27,15 @@
(define-public file
(package
- (replacement file/fixed)
(name "file")
- (version "5.30")
+ (version "5.32")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ftp.astron.com/pub/file/file-"
version ".tar.gz"))
(sha256
(base32
- "057jpcyy8ws7q4s4sm8r1rxb8xycdbng2z4y9i98f094wlr28k39"))))
+ "0l1bfa0icng9vdwya00ff48fhvjazi5610ylbhl35qi13d6xqfc6"))))
(build-system gnu-build-system)
;; When cross-compiling, this package depends upon a native install of
@@ -50,11 +49,4 @@ you in words what kind of data a file contains. It does not rely on filename
extensions to tell you the type of a file, but looks at the actual contents
of the file.")
(license bsd-2)
- (home-page "http://www.darwinsys.com/file/")))
-
-(define file/fixed
- (package
- (inherit file)
- (source (origin
- (inherit (package-source file))
- (patches (search-patches "file-CVE-2017-1000249.patch"))))))
+ (home-page "https://www.darwinsys.com/file/")))
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index b65d3a9e94..4acebeb405 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -764,17 +764,15 @@ glyph designs, not just an added slant.")
(define-public font-hack
(package
(name "font-hack")
- (version "2.020")
+ (version "3.000")
(source (origin
(method url-fetch/zipbomb)
(uri (string-append
- "https://github.com/chrissimpkins/Hack/releases/download/v"
- version "/Hack-v"
- (string-replace-substring version "." "_")
- "-ttf.zip"))
+ "https://github.com/source-foundry/Hack/releases/download/v"
+ version "/Hack-v" version "-ttf.zip"))
(sha256
(base32
- "16kkmc3psckw1b7k07ccn1gi5ymhlg9djh43nqjzg065g6p6d184"))))
+ "0h6slqg25a6cq57k6rh5hmnk8dxbprmf8shs4iyj1pc83sw6b1r3"))))
(build-system font-build-system)
(home-page "https://sourcefoundry.org/hack/")
(synopsis "Typeface designed for source code")
@@ -782,9 +780,12 @@ glyph designs, not just an added slant.")
"Hack is designed to be a workhorse typeface for code. It expands upon
the Bitstream Vera & DejaVu projects, provides 1561 glyphs, and includes
Powerline support.")
- (license (license:x11-style
- "https://github.com/chrissimpkins/Hack/blob/master/LICENSE.md"
- "Hack Open Font License v2.0"))))
+ (license
+ ;; See https://github.com/source-foundry/Hack/issues/271 for details.
+ (list license:expat ; the Hack modifications to...
+ license:public-domain ; ...the DejaVu modifications to...
+ (license:x11-style ; ...the Bitstream Vera typeface
+ "file://LICENSE.md" "Bitstream Vera License")))))
(define-public font-adobe-source-code-pro
(package
@@ -1026,7 +1027,7 @@ monospace, slab-serif fonts.")
version ".tar.gz"))
(sha256
(base32
- "183n0qv3q8w6n27libarq1fhc4mqv2d3sasbfmbn7x9r5pw9c6ga"))
+ "018i3za9r6kf6svci33z09lc5pr5yz4164m8gzzwjzzqcrng0p5j"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system font-build-system)
(home-page "http://google.github.io/material-design-icons")
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 9916a1cb3e..37a30c835b 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -280,7 +280,10 @@ files) into @file{.grf} and/or @file{.nfo} files.")
(source
(origin
(method url-fetch)
- (uri (pypi-uri "sge-pygame" version))
+ (uri (string-append "mirror://savannah/stellarengine/"
+ (version-major+minor version) "/sge-pygame-"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1rl3xjzh78sl0sq3xl8rl7cgp9v9v3h7s2pfwn7nj1vrmffzkcpd"))))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 04b7b78d36..61eed39ef0 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -248,26 +248,27 @@ the others like yourself, that want what you have.")
(define-public cowsay
(package
(name "cowsay")
- (version "3.03")
+ (version "3.04")
(source (origin
(method url-fetch)
- (uri (string-append "https://web.archive.org/web/20071026043648/"
- "http://www.nog.net:80/~tony/warez/"
- "cowsay-" version ".tar.gz"))
+ (uri (string-append "https://github.com/tnalpgge/"
+ "rank-amateur-cowsay/archive/"
+ name "-" version ".tar.gz"))
(sha256
(base32
- "1bxj802na2si2bk5zh7n0b7c33mg8a5n2wnvh0vihl9bmjkp51hb"))))
+ "12w7apbf6a9qffk92r32b16w22na2fjcqbl32rn0n7zw5hrp3f6q"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
- (delete 'configure)
- (delete 'install)
- (replace 'build
+ (delete 'configure) ; no configure script
+ (delete 'build) ; nothing to be built
+ (replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(zero? (system* "sh" "install.sh"
(assoc-ref outputs "out")))))
- (replace 'check
+ (delete 'check)
+ (add-after 'install 'check
(lambda* (#:key outputs #:allow-other-keys)
(zero? (system* (string-append (assoc-ref outputs "out")
"/bin/cowsay")
@@ -275,12 +276,12 @@ the others like yourself, that want what you have.")
(inputs
`(("perl" ,perl)))
(home-page (string-append "https://web.archive.org/web/20071026043648/"
- "http://www.nog.net:80/~tony/warez/"))
+ "http://www.nog.net:80/~tony/warez/cowsay.shtml"))
(synopsis "Speaking cow text filter")
(description "Cowsay is basically a text filter. Send some text into it,
and you get a cow saying your text. If you think a talking cow isn't enough,
-cows can think too. All you have to do is run @code{cowthink}.")
- ;; Any version of the GPL.
+cows can think too: all you have to do is run @command{cowthink}. If you're
+tired of cows, a variety of other ASCII-art messengers are available.")
(license license:gpl3+)))
(define-public freedoom
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 7870d4513f..a4d181cb11 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -138,7 +138,8 @@ where the OS part is overloaded to denote a specific ABI---into GCC
version "/gcc-" version ".tar.bz2"))
(sha256
(base32
- "10k2k71kxgay283ylbbhhs51cl55zn2q38vj5pk4k950qdnirrlj"))))
+ "10k2k71kxgay283ylbbhhs51cl55zn2q38vj5pk4k950qdnirrlj"))
+ (patches (search-patches "gcc-fix-texi2pod.patch"))))
(build-system gnu-build-system)
;; Separate out the run-time support libraries because all the
@@ -155,7 +156,8 @@ where the OS part is overloaded to denote a specific ABI---into GCC
;; GCC < 5 is one of the few packages that doesn't ship .info files.
;; Newer texinfos fail to build the manual, so we use an older one.
- (native-inputs `(("texinfo" ,texinfo-5)))
+ (native-inputs `(("perl" ,perl) ;for manpages
+ ("texinfo" ,texinfo-5)))
(arguments
`(#:out-of-source? #t
@@ -351,7 +353,8 @@ Go. It also includes runtime support libraries for these languages.")
(sha256
(base32
"08yggr18v373a1ihj0rg2vd6psnic42b518xcgp3r9k81xz1xyr2"))
- (patches (search-patches "gcc-arm-link-spec-fix.patch"))))
+ (patches (search-patches "gcc-arm-link-spec-fix.patch"
+ "gcc-fix-texi2pod.patch"))))
(supported-systems %supported-systems)
(inputs
`(("isl" ,isl-0.11)
@@ -369,31 +372,33 @@ Go. It also includes runtime support libraries for these languages.")
(base32
"14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc"))
(patches (search-patches "gcc-arm-bug-71399.patch"
- "gcc-libvtv-runpath.patch"))))
- (native-inputs `(("texinfo" ,texinfo)))))
+ "gcc-libvtv-runpath.patch"
+ "gcc-fix-texi2pod.patch"))))
+ ;; Override inherited texinfo-5 with latest version.
+ (native-inputs `(("perl" ,perl) ;for manpages
+ ("texinfo" ,texinfo)))))
(define-public gcc-5
;; Note: GCC >= 5 ships with .info files but 'make install' fails to install
;; them in a VPATH build.
(package (inherit gcc-4.9)
- (version "5.4.0")
+ (version "5.5.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gcc/gcc-"
- version "/gcc-" version ".tar.bz2"))
+ version "/gcc-" version ".tar.xz"))
(sha256
(base32
- "0fihlcy5hnksdxk0sn6bvgnyq8gfrgs8m794b1jxwd1dxinzg3b0"))
+ "11zd1hgzkli3b2v70qsm2hyqppngd4616qc96lmm9zl2kl9yl32k"))
(patches (search-patches "gcc-arm-bug-71399.patch"
"gcc-strmov-store-file-names.patch"
- "gcc-asan-powerpc-missing-include.patch"
"gcc-5.0-libvtv-runpath.patch"
"gcc-5-source-date-epoch-1.patch"
- "gcc-5-source-date-epoch-2.patch"))))))
- ;; TODO: gcc-5 doesn't need cloog.
- ;;(inputs
- ;; `(("isl" ,isl)
- ;; ,@(package-inputs gcc-4.7)))))
+ "gcc-5-source-date-epoch-2.patch"
+ "gcc-fix-texi2pod.patch"))))
+ (inputs
+ `(("isl" ,isl)
+ ,@(package-inputs gcc-4.7)))))
(define-public gcc-6
(package
@@ -407,10 +412,7 @@ Go. It also includes runtime support libraries for these languages.")
(base32
"1m0lr7938lw5d773dkvwld90hjlcq2282517d1gwvrfzmwgg42w5"))
(patches (search-patches "gcc-strmov-store-file-names.patch"
- "gcc-5.0-libvtv-runpath.patch"))))
- (inputs
- `(("isl" ,isl)
- ,@(package-inputs gcc-4.7)))))
+ "gcc-5.0-libvtv-runpath.patch"))))))
(define-public gcc-7
(package
diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm
index 28477b2c42..72a737b013 100644
--- a/gnu/packages/ghostscript.scm
+++ b/gnu/packages/ghostscript.scm
@@ -100,23 +100,23 @@ paper size.")
(arguments
`(#:tests? #f ; none provided
#:phases
- (alist-replace
- 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
- (let ((perl (assoc-ref inputs "perl"))
- (out (assoc-ref outputs "out")))
- (copy-file "Makefile.unix" "Makefile")
- (substitute* "Makefile"
- (("/usr/local/bin/perl") (string-append perl "/bin/perl")))
- (substitute* "Makefile"
- (("/usr/local") out))
- ;; for the install phase
- (substitute* "Makefile"
- (("-mkdir") "mkdir -p"))
- ;; drop installation of non-free files
- (substitute* "Makefile"
- ((" install.include") ""))))
- %standard-phases)))
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
+ (let ((perl (assoc-ref inputs "perl"))
+ (out (assoc-ref outputs "out")))
+ (copy-file "Makefile.unix" "Makefile")
+ (substitute* "Makefile"
+ (("/usr/local/bin/perl") (string-append perl "/bin/perl")))
+ (substitute* "Makefile"
+ (("/usr/local") out))
+ ;; for the install phase
+ (substitute* "Makefile"
+ (("-mkdir") "mkdir -p"))
+ ;; drop installation of non-free files
+ (substitute* "Makefile"
+ ((" install.include") "")))
+ #t)))))
(synopsis "Collection of utilities for manipulating PostScript documents")
(description
"PSUtils is a collection of utilities for manipulating PostScript
@@ -131,8 +131,7 @@ printing, and psresize, for adjusting page sizes.")
(define-public ghostscript
(package
(name "ghostscript")
- (replacement ghostscript-9.22)
- (version "9.21")
+ (version "9.22")
(source
(origin
(method url-fetch)
@@ -142,9 +141,8 @@ printing, and psresize, for adjusting page sizes.")
"/ghostscript-" version ".tar.xz"))
(sha256
(base32
- "0lyhjcrkmd5fcmh8h56bs4xr9k4jasmikv5vsix1hd4ai0ad1q9b"))
+ "1fyi4yvdj39bjgs10klr31cda1fbx1ar7a7b7yz7v68gykk65y61"))
(patches (search-patches "ghostscript-runpath.patch"
- "ghostscript-CVE-2017-8291.patch"
"ghostscript-no-header-creationdate.patch"
"ghostscript-no-header-id.patch"
"ghostscript-no-header-uuid.patch"))
@@ -255,25 +253,6 @@ output file formats and printers.")
(home-page "https://www.ghostscript.com/")
(license license:agpl3+)))
-(define ghostscript-9.22
- (package
- (inherit ghostscript)
- (version "9.22")
- (source
- (origin
- (inherit (package-source ghostscript))
- (uri (string-append "https://github.com/ArtifexSoftware/"
- "ghostpdl-downloads/releases/download/gs"
- (string-delete #\. version)
- "/ghostscript-" version ".tar.xz"))
- (sha256
- (base32
- "1fyi4yvdj39bjgs10klr31cda1fbx1ar7a7b7yz7v68gykk65y61"))
- (patches (search-patches "ghostscript-runpath.patch"
- "ghostscript-no-header-creationdate.patch"
- "ghostscript-no-header-id.patch"
- "ghostscript-no-header-uuid.patch"))))))
-
(define-public ghostscript/x
(package/inherit ghostscript
(name (string-append (package-name ghostscript) "-with-x"))
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index bacc63270a..cef6d7bea0 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -5,6 +5,8 @@
;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
+;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017 Petter <petter@mykolab.ch>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,6 +29,7 @@
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages base)
@@ -62,12 +65,14 @@
itstool
libsigc++
glibmm
- telepathy-glib))
+ telepathy-glib
+ perl-net-dbus
+ perl-net-dbus-glib))
(define dbus
(package
(name "dbus")
- (version "1.10.22")
+ (version "1.10.24")
(source (origin
(method url-fetch)
(uri (string-append
@@ -75,7 +80,7 @@
version ".tar.gz"))
(sha256
(base32
- "15vv9gz5i4f5l7h0d045qz5iyvl89hjk2k83lb4vbizd7qg41cg2"))
+ "06ydmrg76l1kwl3190d72zpiy3qxy248x6gskxbj9qiqfsr4w63i"))
(patches (search-patches "dbus-helper-search-path.patch"))))
(build-system gnu-build-system)
(arguments
@@ -137,7 +142,7 @@ shared NFS home directories.")
(define glib
(package
(name "glib")
- (version "2.52.3")
+ (version "2.54.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/"
@@ -145,8 +150,9 @@ shared NFS home directories.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0a71wkkhkvad84gm30w13micxxgqqw3sxhybj7nd9z60lwspdvi5"))
- (patches (search-patches "glib-tests-timer.patch"))))
+ "18s7rw127wrvb107bkmxd1lmh62b2v19ww5rz7xi0krj34a1ph2h"))
+ (patches (search-patches "glib-respect-datadir.patch"
+ "glib-tests-timer.patch"))))
(build-system gnu-build-system)
(outputs '("out" ; everything
"bin" ; glib-mkenums, gtester, etc.; depends on Python
@@ -247,12 +253,7 @@ shared NFS home directories.")
("gio/tests/gdbus-unix-addresses.c"
(;; Requires /etc/machine-id.
- "/gdbus/x11-autolaunch"))
-
- ("glib/tests/gdatetime.c"
- (;; Assumes that the Brasilian time zone is named 'BRT',
- ;; which is no longer true as of tzdata-2017a.
- "/GDateTime/new_full")))))
+ "/gdbus/x11-autolaunch")))))
(and-map (lambda (x) (apply disable x)) failing-tests)))))
;; Note: `--docdir' and `--htmldir' are not honored, so work around it.
@@ -284,19 +285,19 @@ shared NFS home directories.")
and interfaces for such runtime functionality as an event loop, threads,
dynamic loading, and an object system.")
(home-page "https://developer.gnome.org/glib/")
- (license license:lgpl2.0+))) ; some files are under lgpl2.1+
+ (license license:lgpl2.1+)))
(define gobject-introspection
(package
(name "gobject-introspection")
- (version "1.52.1")
+ (version "1.54.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/"
"gobject-introspection/" (version-major+minor version)
"/gobject-introspection-" version ".tar.xz"))
(sha256
- (base32 "1x5gkyrglv3dn9b4fsgw6asqgjw1wj7qc37g9pyac6pyaa6w7l1f"))
+ (base32 "0zl7pfkzkm07733391b4f3cwjbnvb1nwvpmajf5bajh6bxgfv3dq"))
(modules '((guix build utils)))
(snippet
'(substitute* "tools/g-ir-tool-template.in"
@@ -749,3 +750,57 @@ programming langauage. It also contains the utility
reading and writing @uref{https://www.freedesktop.org/wiki/Distributions/AppStream,AppStream}
metadata.")
(license license:lgpl2.1+)))
+
+(define perl-net-dbus
+ (package
+ (name "perl-net-dbus")
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/D/DA/DANBERR/Net-DBus-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0sg2w147b9r9ykfzjs7y9qxry73xkjnhnk4qf95kfv79p5nnk4c3"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("perl-test-pod" ,perl-test-pod)
+ ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+ (inputs
+ `(("dbus" ,dbus)))
+ (propagated-inputs
+ `(("perl-xml-twig" ,perl-xml-twig)))
+ (home-page "http://search.cpan.org/dist/Net-DBus/")
+ (synopsis "Extension for the DBus bindings")
+ (description "@code{Net::DBus} provides a Perl XS API to the DBus
+inter-application messaging system. The Perl API covers the core base level
+of the DBus APIs, not concerning itself yet with the GLib or QT wrappers.")
+ (license license:perl-license)))
+
+(define perl-net-dbus-glib
+ (package
+ (name "perl-net-dbus-glib")
+ (version "0.33.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/D/DA/DANBERR/"
+ "Net-DBus-GLib-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1z4mbv8z0rad604xahijpg5szzi8qak07hbahh230z4jf96fkxvj"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("dbus-glib" ,dbus-glib)))
+ (home-page "http://search.cpan.org/~danberr/Net-DBus-GLib-0.33.0/")
+ (synopsis "Perl extension for the DBus GLib bindings")
+ (description "This package provides an extension to the @code{Net::DBus}
+module allowing integration with the GLib mainloop. To integrate with the
+main loop, simply get a connection to the bus via the methods in
+@code{Net::DBus::GLib} rather than the usual @code{Net::DBus} module. Every
+other API remains the same.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 8bd8c8cd49..2ebbd29565 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -517,7 +517,7 @@ and keep up to date translations of documentation.")
(define-public gnome-disk-utility
(package
(name "gnome-disk-utility")
- (version "3.24.1")
+ (version "3.26.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -525,10 +525,11 @@ and keep up to date translations of documentation.")
name "-" version ".tar.xz"))
(sha256
(base32
- "18akarcbhm8djlmz49jzavc7qx8dg71gvxc9xd23p0bwjj4h93w7"))))
- (build-system gnu-build-system)
+ "10spllvcq2q71xk3dnhzjk8v4qx9am8y1h68k8z2j0l94g1c8bi3"))))
+ (build-system meson-build-system)
(native-inputs
`(("glib:bin" ,glib "bin")
+ ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
("intltool" ,intltool)
("pkg-config" ,pkg-config)
("docbook-xml" ,docbook-xml)
@@ -1165,7 +1166,7 @@ dealing with different structured file formats.")
(define-public librsvg
(package
(name "librsvg")
- (version "2.40.18")
+ (version "2.40.19")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -1173,7 +1174,7 @@ dealing with different structured file formats.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0k2nbd4g31qinkdfd8r5c5ih2ixl85fbkgkqqh9747lwr24c9j5z"))))
+ "1xy12qi29xqf3i61awf9qmm5ysw6v5qgxqwvi5fny0q9hs5lsav1"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -2371,7 +2372,7 @@ library.")
(define-public rest
(package
(name "rest")
- (version "0.8.0")
+ (version "0.8.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/rest/"
@@ -2379,7 +2380,7 @@ library.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0iznvzhab1jq9z3nwy97dh2pid9azwkqm7kkxwx0f5ql1hh9pf77"))))
+ "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; tests require internet connection
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index 3eb85202e3..b17a39ccf9 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -186,14 +186,14 @@ and support for SSL3 and TLS.")
(define-public gnurl
(package
(name "gnurl")
- (version "7.56.0")
+ (version "7.56.1")
(source (origin
(method url-fetch)
(uri (string-append "https://gnunet.org/sites/default/files/"
name "-" version ".tar.bz2"))
(sha256
(base32
- "18inbbqg7jygxa37x313ivc51p215fkp0ppw3xznk6d5ci4bs8fg"))))
+ "0phbs3lw0a561fqsj4fyngmpaznjlnx4qx9n9xzglivy69r9j1n8"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ; 1.5 MiB of man3 pages
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index ffad57ef5e..1d69e48d13 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -5,13 +5,14 @@
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
;;; Copyright © 2016 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2016 Mike Gerwitz <mtg@gnu.org>
;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2017 Petter <petter@mykolab.ch>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -52,6 +53,9 @@
#:use-module (gnu packages security-token)
#:use-module (gnu packages swig)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages tor)
+ #:use-module (gnu packages web)
+ #:use-module (gnu packages xml)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
@@ -85,16 +89,15 @@ Daemon and possibly more in the future.")
(define-public libgcrypt
(package
- (replacement libgcrypt/fixed)
(name "libgcrypt")
- (version "1.7.8")
+ (version "1.8.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-"
version ".tar.bz2"))
(sha256
(base32
- "16f1rsv4y4w2pk1il2jbcqggsb6mrlfva5vayd205fp68zm7d0ll"))))
+ "1cvqd9jk5qshbh48yh3ixw4zyr4n5k50r3475rrh20xfn7w7aa3s"))))
(build-system gnu-build-system)
(propagated-inputs
`(("libgpg-error-host" ,libgpg-error)))
@@ -120,18 +123,6 @@ generation.")
(properties '((ftp-server . "ftp.gnupg.org")
(ftp-directory . "/gcrypt/libgcrypt")))))
-(define libgcrypt/fixed
- (package
- (inherit libgcrypt)
- (version "1.8.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-"
- version ".tar.bz2"))
- (sha256
- (base32
- "1cvqd9jk5qshbh48yh3ixw4zyr4n5k50r3475rrh20xfn7w7aa3s"))))))
-
(define-public libassuan
(package
(name "libassuan")
@@ -850,3 +841,127 @@ them to transform your existing public key into a secret key.")
@uref{https://gnupg.org, GnuPG}. It can be used to encrypt, decrypt, and sign
files, to verify signatures, and to manage the private and public keys.")
(license license:gpl3+)))
+
+(define-public perl-gnupg-interface
+ (package
+ (name "perl-gnupg-interface")
+ (version "0.52")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/A/AL/ALEXMV/"
+ "GnuPG-Interface-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0dgx8yhdsmhkazcrz14n4flrk1afv7azgl003hl4arxvi1d9yyi4"))))
+ (build-system perl-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; FIXME: This test fails for unknown reasons
+ (add-after 'unpack 'delete-broken-test
+ (lambda _
+ (delete-file "t/encrypt_symmetrically.t")
+ #t)))))
+ (inputs
+ `(("gnupg" ,gnupg-1)))
+ (propagated-inputs
+ `(("perl-moo" ,perl-moo)
+ ("perl-moox-handlesvia" ,perl-moox-handlesvia)
+ ("perl-moox-late" ,perl-moox-late)))
+ (native-inputs
+ `(("which" ,which)
+ ("perl-module-install" ,perl-module-install)))
+ (home-page "http://search.cpan.org/dist/GnuPG-Interface/")
+ (synopsis "Perl interface to GnuPG")
+ (description "@code{GnuPG::Interface} and its associated modules are
+designed to provide an object-oriented method for interacting with GnuPG,
+being able to perform functions such as but not limited to encrypting,
+signing, decryption, verification, and key-listing parsing.")
+ (license license:perl-license)))
+
+(define-public parcimonie
+ (package
+ (name "parcimonie")
+ (version "0.10.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://gaffer.ptitcanardnoir.org/"
+ "intrigeri/files/parcimonie/App-Parcimonie-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1kf891117s1f3k6lxvbjdb21va9gxh29vlp9bd664ssgw266rcyb"))))
+ (build-system perl-build-system)
+ (inputs
+ `(("gnupg" ,gnupg-1) ; This is the version used by perl-gnupg-interface
+ ("perl-config-general" ,perl-config-general)
+ ("perl-clone" ,perl-clone)
+ ("perl-data" ,perl-data)
+ ("perl-exporter-tiny" ,perl-exporter-tiny)
+ ("perl-file-homedir" ,perl-file-homedir)
+ ("perl-file-sharedir" ,perl-file-sharedir)
+ ("perl-file-which" ,perl-file-which)
+ ("perl-getopt-long-descriptive" ,perl-getopt-long-descriptive)
+ ("perl-gnupg-interface" ,perl-gnupg-interface)
+ ("perl-ipc-system-simple" ,perl-ipc-system-simple)
+ ("perl-list-moreutils" ,perl-list-moreutils)
+ ("perl-libintl-perl" ,perl-libintl-perl) ; Locale::TextDomain
+ ("perl-lwp-online" ,perl-lwp-online)
+ ("perl-module-build" ,perl-module-build)
+ ("perl-module-pluggable-object" ,perl-module-pluggable)
+ ("perl-moo" ,perl-moo)
+ ("perl-moox-handlesvia" ,perl-moox-handlesvia)
+ ("perl-moox-late" ,perl-moox-late)
+ ("perl-moox-options" ,perl-moox-options)
+ ("perl-namespace-clean" ,perl-namespace-clean)
+ ("perl-net-dbus" ,perl-net-dbus)
+ ("perl-net-dbus-glib" ,perl-net-dbus-glib)
+ ("perl-path-tiny" ,perl-path-tiny)
+ ("perl-test-most" ,perl-test-most)
+ ("perl-test-trap" ,perl-test-trap)
+ ("perl-time-duration" ,perl-time-duration)
+ ("perl-time-duration-parse" ,perl-time-duration-parse)
+ ("perl-try-tiny" ,perl-try-tiny)
+ ("perl-type-tiny" ,perl-type-tiny)
+ ("perl-types-path-tiny" ,perl-types-path-tiny)
+ ("perl-unicode-linebreak" ,perl-unicode-linebreak)
+ ("perl-xml-parser" ,perl-xml-parser)
+ ("perl-xml-twig" ,perl-xml-twig)
+ ("torsocks" ,torsocks)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; Needed for using gpg-connect-agent during tests.
+ (add-before 'check 'set-HOME
+ (lambda _ (setenv "HOME" "/tmp") #t))
+ (add-before 'install 'fix-references
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "lib/App/Parcimonie/GnuPG/Interface.pm"
+ (("gpg2") "gpg")
+ ;; Skip check whether dependencies are in the PATH
+ (("defined which.*") "")
+ (("call\\('parcimonie-torified-gpg'\\)")
+ (string-append "call('" (assoc-ref outputs "out")
+ "/bin/parcimonie-torified-gpg')")))
+ (substitute* "bin/parcimonie-torified-gpg"
+ (("torsocks") (string-append (assoc-ref inputs "torsocks")
+ "/bin/torsocks")))
+ #t))
+ (add-after 'install 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (perllib (string-append out "/lib/perl5/site_perl/"
+ ,(package-version perl))))
+ (wrap-program (string-append out "/bin/parcimonie")
+ `("PERL5LIB" ":"
+ prefix (,(string-append perllib ":" (getenv "PERL5LIB")))))
+ #t))))))
+ (home-page "https://gaffer.ptitcanardnoir.org/intrigeri/code/parcimonie/")
+ (synopsis "Incrementally refreshes a GnuPG keyring")
+ (description "Parcimonie incrementaly refreshes a GnuPG keyring in a way
+that makes it hard to correlate the keyring content to an individual, and
+makes it hard to locate an individual based on an identifying subset of her
+keyring content. Parcimonie is a daemon that fetches one key at a time using
+the Tor network, waits a bit, changes the Tor circuit being used, and starts
+over.")
+ (license license:gpl1+)))
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index da74a8dd95..2d607360c2 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -441,7 +441,16 @@ standards.")
(mozilla-patch "icecat-bug-1368269.patch" "0cff5e66e0f4" "0jb0wqi7c0ih4441s1908j6gv18v4inh7k2w47h3c9nhz4rgyrw7")
(mozilla-patch "icecat-CVE-2017-7793.patch" "6ff3c82962f0" "0bw82034kdmrpznigbavzzsiybzrw8giyf8v0z2cxf6mwl72bf9k")
(mozilla-patch "icecat-bug-1400399.patch" "d6f78b1349b7" "0i3gwr2al3xl65yfa3nimvy8dp0jzpx21f6bjw18xwn7zkkh9j54")
- (mozilla-patch "icecat-bug-1400721.patch" "285cde398833" "0a1i32zl30wfyw7zkqj595s94n6wdlg5c495m0910pd05pjg3qam")))
+ (mozilla-patch "icecat-bug-1400721.patch" "285cde398833" "0a1i32zl30wfyw7zkqj595s94n6wdlg5c495m0910pd05pjg3qam")
+ (mozilla-patch "icecat-bug-1395138.patch" "98b3988592a6" "03wy173lj6mvmh5q92brf596h8676h0zasgqfnndpvsmsiaih120")
+ (mozilla-patch "icecat-bug-1369561.patch" "47590f0c274b" "0zsys6dcyhfb4a8k2dhsls7425jg6r1ijlrsn1lc5smwyf62zx5v")
+ (mozilla-patch "icecat-bug-1375146.patch" "55b435cbbb55" "1gcasaqrxa13a55v05bkxl3d1md829kpfhqiaws83wn08x28l0my")
+ (mozilla-patch "icecat-bug-1394530.patch" "8549cf2dab3e" "168gs32ncavaj9xn4gwhh9i01cbpnhgx9yn333apsrc1gwknpvsr")
+ (mozilla-patch "icecat-bug-1400554.patch" "349acf56ff49" "1vwn87rdryfjsn809pl50xmr82q98gz3vz9h6clkd905vbd9rwz7")
+ (mozilla-patch "icecat-bug-1400003.patch" "3af5bf8bdea0" "07az28dnpxr36j7i3llxkrlkrmg0bwk4f3sm75x1f0r1v5575p3p")
+ (mozilla-patch "icecat-bug-1407751.patch" "592df6088926" "1gy27idik4b6wcg4szww08cmpcljssja8wql6w1d807h7ni65lr7")
+ (mozilla-patch "icecat-bug-1261175.patch" "77a2d4610275" "13ysbwflnysj4rs45ibckd621s0vyg1s8dvannlvanvrz1g72zcz")
+ (mozilla-patch "icecat-bug-1394265.patch" "2b30335d0b95" "0hs5cwickvfw7r5dn7y148jgr2b21hl613qp83k56634d0y64qwp")))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index b1967b3f1a..f97f6f1711 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
;;; Copyright © 2016 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
@@ -198,6 +198,7 @@ programming language. Designed primarily for systems programming, it is a
compiled, statically typed language in the tradition of C and C++, with
garbage collection, various safety features and in the style of communicating
sequential processes (CSP) concurrent programming features added.")
+ (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
(license license:bsd-3)))
(define-public go-1.9
@@ -372,6 +373,7 @@ sequential processes (CSP) concurrent programming features added.")
(copy-recursively "../" output))))))))
(native-inputs
`(("go" ,go-1.4)
- ,@(package-native-inputs go-1.4)))))
+ ,@(package-native-inputs go-1.4)))
+ (supported-systems %supported-systems)))
(define-public go go-1.9)
diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm
index 683bfeec66..f91e81a30f 100644
--- a/gnu/packages/graph.scm
+++ b/gnu/packages/graph.scm
@@ -25,7 +25,9 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages gcc)
+ #:use-module (gnu packages bioinformatics)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages graphviz)
#:use-module (gnu packages maths)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages pkg-config)
@@ -116,3 +118,31 @@ It can handle large graphs very well and provides functions for generating
random and regular graphs, graph visualization, centrality methods and much
more.")
(license license:gpl2+)))
+
+(define-public r-rgraphviz
+ (package
+ (name "r-rgraphviz")
+ (version "2.20.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "Rgraphviz" version))
+ (sha256
+ (base32
+ "0mwdqsmmhpk8szp3pf3bw66nv2sazpjiflpwdvqwjamvxyynmp67"))))
+ (properties `((upstream-name . "Rgraphviz")))
+ (build-system r-build-system)
+ ;; FIXME: Rgraphviz bundles the sources of an older variant of
+ ;; graphviz. It does not build with the latest version of graphviz, so
+ ;; we do not add graphviz to the inputs.
+ (inputs `(("zlib" ,zlib)))
+ (propagated-inputs
+ `(("r-graph" ,r-graph)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://bioconductor.org/packages/Rgraphviz")
+ (synopsis "Plotting capabilities for R graph objects")
+ (description
+ "This package interfaces R with the graphviz library for plotting R graph
+objects from the @code{graph} package.")
+ (license license:epl1.0)))
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 8e3c5563f6..3ffb4dd25c 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -244,7 +244,7 @@ exception-handling library.")
"/archive/v" version ".tar.gz"))
(sha256
(base32
- "1ab354bmwwryxr4zgxchfkm6h4z38mjgif8yn89x640rsrgw5ipj"))
+ "1p0c91cc7zg3c00wjaibnxb0a0xm14mkg0h65pzpw93m0d6nc8wd"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system)
(arguments
diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm
index 5f2fcb8602..c71fb74cfb 100644
--- a/gnu/packages/graphviz.scm
+++ b/gnu/packages/graphviz.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -112,13 +113,13 @@ interfaces for other technical domains.")
(define-public python-graphviz
(package
(name "python-graphviz")
- (version "0.8")
+ (version "0.8.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "graphviz" version ".zip"))
(sha256
(base32
- "0i738qb32w93hraxzjwkvnxmrfwcalhjd14fdbah9f2mk46p5748"))))
+ "00rzqsmq25b0say05vix5xivchdvsv83jl2i8pkryqd0nz4bxzvb"))))
(build-system python-build-system)
(native-inputs
`(("unzip" ,unzip)))
diff --git a/gnu/packages/groff.scm b/gnu/packages/groff.scm
index 67dd1dbfa6..6e1a60e9ba 100644
--- a/gnu/packages/groff.scm
+++ b/gnu/packages/groff.scm
@@ -56,7 +56,14 @@
("perl" ,perl)
("psutils" ,psutils)
("texinfo" ,texinfo)))
- (arguments '(#:parallel-build? #f)) ; parallel build fails
+ (arguments
+ `(#:parallel-build? #f ; parallel build fails
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'setenv
+ (lambda _
+ (setenv "GS_GENERATE_UUIDS" "0")
+ #t)))))
(synopsis "Typesetting from plain text mixed with formatting commands")
(description
"Groff is a typesetting package that reads plain text and produces
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index ff8509fd93..bb77279b32 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -9,7 +9,7 @@
;;; 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 © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016 Patrick Hetu <patrick.hetu@auf.org>
@@ -306,12 +306,12 @@ diagrams.")
(license license:gpl3+)))
(define-public ganv-devel
- (let ((commit "31685d283e9b811b61014f820c42807f4effa071")
+ (let ((commit "12f7d6b0438c94dd87f773a92eee3453d971846e")
(revision "1"))
(package
(inherit ganv)
(name "ganv")
- (version (string-append "1.4.2-" revision "."
+ (version (string-append "1.5.4-" revision "."
(string-take commit 9)))
(source (origin
(method git-fetch)
@@ -320,7 +320,7 @@ diagrams.")
(commit commit)))
(sha256
(base32
- "0xmbykdl42jn9cgzrqrys5lng67d26nk5xq10wkkvjqldiwdck56")))))))
+ "1cr8w02lr6bk9mkxa12j3imq721b2an2yn4bj5wnwmpm91ddn2gi")))))))
(define-public gtksourceview-2
(package
@@ -428,7 +428,7 @@ highlighting and other features typical of a source code editor.")
(define-public gdk-pixbuf
(package
(name "gdk-pixbuf")
- (version "2.36.10")
+ (version "2.36.11")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -436,7 +436,7 @@ highlighting and other features typical of a source code editor.")
name "-" version ".tar.xz"))
(sha256
(base32
- "1klsjkdbashd8yb8xjsc9ff3bz32n2id5s79nrrmqiw9df4zmxpq"))))
+ "1wz2vpciwdpdv612s8kbww08q80hgcs5dxrfsxp1a4q44n3snqmf"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--with-x11")
@@ -654,7 +654,7 @@ application suites.")
(name "gtk+")
;; NOTE: When updating the version of 'gtk+', the hash of 'mate-themes' in
;; mate.scm will also need to be updated.
- (version "3.22.21")
+ (version "3.22.24")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -662,7 +662,7 @@ application suites.")
name "-" version ".tar.xz"))
(sha256
(base32
- "11vb1shgr4rlayfk0b858gz986jsn2mpjlxvr89b2kgvbjlc3lqv"))
+ "0asr6gccw1vv02i29ivwr74fpxlmdxhr0wigybsvi2ljzi66xcfb"))
(patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
"gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
(outputs '("out" "bin" "doc"))
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 7e879f4ad5..87e60a8861 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -4,13 +4,14 @@
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
+;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
+;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -4282,7 +4283,7 @@ command line options in Haskell.")
(define-public ghc-base-orphans
(package
(name "ghc-base-orphans")
- (version "0.4.4")
+ (version "0.6")
(source
(origin
(method url-fetch)
@@ -4292,7 +4293,7 @@ command line options in Haskell.")
".tar.gz"))
(sha256
(base32
- "0hhgpwjvx7jhvlhsygmmf0q5hv2ymijzz4bjilicw99bmv13qcpl"))))
+ "03mdww5j0gwai7aqlx3m71ldmjcr99jzpkcclzjfclk6a6kjla67"))))
(build-system haskell-build-system)
(native-inputs
`(("ghc-quickcheck" ,ghc-quickcheck)
@@ -5918,14 +5919,14 @@ of a JSON value into a @code{Data.Aeson.Value}.")
(define-public ghc-conduit
(package
(name "ghc-conduit")
- (version "1.2.5.1")
+ (version "1.2.12.1")
(source (origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"conduit/conduit-" version ".tar.gz"))
(sha256
(base32
- "0aq6wswd5dkhdmy7sjhd99mldpq33dqpgbdcwpm94ahvckqxs7v5"))))
+ "0zl6gflh7y36y2vypjhqx13nhkk5y3h12c1zj7kjfclrmwnvnwh0"))))
(build-system haskell-build-system)
(inputs
`(("ghc-exceptions" ,ghc-exceptions)
@@ -5938,15 +5939,16 @@ of a JSON value into a @code{Data.Aeson.Value}.")
(native-inputs
`(("ghc-quickcheck" ,ghc-quickcheck)
("ghc-hspec" ,ghc-hspec)
- ("ghc-safe" ,ghc-safe)))
+ ("ghc-safe" ,ghc-safe)
+ ("ghc-split" ,ghc-split)))
(home-page "https://github.com/snoyberg/conduit")
(synopsis "Streaming data library ")
(description
- "conduit is a solution to the streaming data problem, allowing for
-production, transformation, and consumption of streams of data in constant
-memory. It is an alternative to lazy I/O which guarantees deterministic
-resource handling, and fits in the same general solution space as
-enumerator/iteratee and pipes." )
+ "The conduit package is a solution to the streaming data problem,
+allowing for production, transformation, and consumption of streams of data
+in constant memory. It is an alternative to lazy I/O which guarantees
+deterministic resource handling, and fits in the same general solution
+space as enumerator/iteratee and pipes.")
(license license:expat)))
(define-public ghc-logging-facade
@@ -8601,7 +8603,7 @@ JSON (JavaScript Object Notation) is a lightweight data-interchange format.")
(define-public shellcheck
(package
(name "shellcheck")
- (version "0.4.5")
+ (version "0.4.6")
(source
(origin
(method url-fetch)
@@ -8609,7 +8611,7 @@ JSON (JavaScript Object Notation) is a lightweight data-interchange format.")
"v" version ".tar.gz"))
(sha256
(base32
- "14r84fcn28rin339avlvca5g0kz832f01x8dpmwb5ql8mbc4rlxr"))
+ "1qkd69lc34n3l23ss9rq1azvx49bfq4hi4bmaj76rgxybscxhg0w"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system haskell-build-system)
(inputs
@@ -9005,4 +9007,1096 @@ contents of the HTTP connection. It also provides higher-level functions
which allow you to avoid direct usage of conduits.")
(license license:bsd-3)))
+(define-public ghc-errors
+ (package
+ (name "ghc-errors")
+ (version "2.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "errors-" version "/"
+ "errors-" version ".tar.gz"))
+ (sha256
+ (base32
+ "13sflhglcm5skwrxb48fw96skdcx7ydiy4zg22200733pxhjncpn"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-exceptions" ,ghc-exceptions)
+ ("ghc-text" ,ghc-text)
+ ("ghc-transformers-compat" ,ghc-transformers-compat)
+ ("ghc-unexceptionalio" ,ghc-unexceptionalio)
+ ("ghc-safe" ,ghc-safe)))
+ (home-page "https://github.com/gabriel439/haskell-errors-library")
+ (synopsis "Error handling library for Haskell")
+ (description "This library encourages an error-handling style that
+directly uses the type system, rather than out-of-band exceptions.")
+ (license license:bsd-3)))
+
+(define-public ghc-vector-th-unbox
+ (package
+ (name "ghc-vector-th-unbox")
+ (version "0.2.1.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "vector-th-unbox-" version "/"
+ "vector-th-unbox-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0d82x55f5vvr1jvaia382m23rs690lg55pvavv8f4ph0y6kd91xy"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-vector" ,ghc-vector)
+ ("ghc-data-default" ,ghc-data-default)))
+ (home-page "https://github.com/liyang/vector-th-unbox")
+ (synopsis "Deriver for Data.Vector.Unboxed using Template Haskell")
+ (description "This Haskell library provides a Template Haskell
+deriver for unboxed vectors, given a pair of coercion functions to
+and from some existing type with an Unbox instance.")
+ (license license:bsd-3)))
+
+(define-public ghc-erf
+ (package
+ (name "ghc-erf")
+ (version "2.0.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "erf-" version "/"
+ "erf-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14"))))
+ (build-system haskell-build-system)
+ (home-page "https://hackage.haskell.org/package/erf")
+ (synopsis "The error function, erf, and related functions for Haskell")
+ (description "This Haskell library provides a type class for the
+error function, erf, and related functions. Instances for Float and
+Double.")
+ (license license:bsd-3)))
+
+(define-public ghc-math-functions
+ (package
+ (name "ghc-math-functions")
+ (version "0.2.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "math-functions-" version "/"
+ "math-functions-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1sv5vabsx332v1lpb6v3jv4zrzvpx1n7yprzd8wlcda5vsc5a6zp"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-vector" ,ghc-vector)
+ ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)))
+ (native-inputs
+ `(("ghc-hunit" ,ghc-hunit)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-erf" ,ghc-erf)
+ ("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
+ ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+ (home-page "https://github.com/bos/math-functions")
+ (synopsis "Special functions and Chebyshev polynomials for Haskell")
+ (description "This Haskell library provides implementations of
+special mathematical functions and Chebyshev polynomials. These
+functions are often useful in statistical and numerical computing.")
+ (license license:bsd-3)))
+
+(define-public ghc-mwc-random
+ (package
+ (name "ghc-mwc-random")
+ (version "0.13.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "mwc-random-" version "/"
+ "mwc-random-" version ".tar.gz"))
+ (sha256
+ (base32
+ "05j7yh0hh9nxic3dijmzv44kc6gzclvamdph7sq7w19wq57k6pq6"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-primitive" ,ghc-primitive)
+ ("ghc-vector" ,ghc-vector)
+ ("ghc-math-functions" ,ghc-math-functions)))
+ (arguments
+ `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
+ (native-inputs
+ `(("ghc-hunit" ,ghc-hunit)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
+ ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+ (home-page "https://github.com/bos/mwc-random")
+ (synopsis "Random number generation library for Haskell")
+ (description "This Haskell package contains code for generating
+high quality random numbers that follow either a uniform or normal
+distribution. The generated numbers are suitable for use in
+statistical applications.
+
+The uniform PRNG uses Marsaglia's MWC256 (also known as MWC8222)
+multiply-with-carry generator, which has a period of 2^{8222} and
+fares well in tests of randomness. It is also extremely fast,
+between 2 and 3 times faster than the Mersenne Twister.")
+ (license license:bsd-3)))
+
+(define-public ghc-vector-algorithms
+ (package
+ (name "ghc-vector-algorithms")
+ (version "0.7.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "vector-algorithms-" version "/"
+ "vector-algorithms-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0w4hf598lpxfg58rnimcqxrbnpqq2jmpjx82qa5md3q6r90hlipd"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-vector" ,ghc-vector)
+ ("ghc-mtl" ,ghc-mtl)
+ ("ghc-mwc-random" ,ghc-mwc-random)))
+ (native-inputs
+ `(("ghc-quickcheck" ,ghc-quickcheck)))
+ (home-page "https://github.com/bos/math-functions")
+ (synopsis "Algorithms for vector arrays in Haskell")
+ (description "This Haskell library algorithms for vector arrays.")
+ (license license:bsd-3)))
+
+(define-public ghc-language-haskell-extract
+ (package
+ (name "ghc-language-haskell-extract")
+ (version "0.2.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "language-haskell-extract-" version "/"
+ "language-haskell-extract-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1nxcs7g8a1sp91bzpy4cj6s31k5pvc3gvig04cbrggv5cvjidnhl"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-regex-posix" ,ghc-regex-posix)))
+ (home-page "https://github.com/finnsson/template-helper")
+ (synopsis "Haskell module to automatically extract functions from
+the local code")
+ (description "This package contains helper functions on top of
+Template Haskell.
+
+For example, @code{functionExtractor} extracts all functions after a
+regexp-pattern, which can be useful if you wish to extract all functions
+beginning with @code{test} (for a test framework) or all functions beginning
+with @code{wc} (for a web service).")
+ (license license:bsd-3)))
+
+(define-public ghc-test-framework-th
+ (package
+ (name "ghc-test-framework-th")
+ (version "0.2.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "test-framework-th-" version "/"
+ "test-framework-th-" version ".tar.gz"))
+ (sha256
+ (base32
+ "12lw7yj02jb9s0i7rb98jjam43j2h0gzmnbj9zi933fx7sg0sy4b"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-language-haskell-extract" ,ghc-language-haskell-extract)
+ ("ghc-haskell-src-exts" ,ghc-haskell-src-exts)
+ ("ghc-regex-posix" ,ghc-regex-posix)))
+ (home-page "https://github.com/finnsson/test-generator")
+ (synopsis "Auto generate the HUnit- and Quickcheck-bulk-code
+using Template Haskell")
+ (description "This library contains two functions:
+@code{defaultMainGenerator} and @code{testGroupGenerator}.
+
+@code{defaultMainGenerator} will extract all functions beginning with
+@code{case_}, @code{prop_}, or @code{test_} in the module and put them in a
+@code{testGroup}.
+
+@code{testGroupGenerator} is like @code{defaultMainGenerator} but without
+@code{defaultMain}. It is useful if you need a function for the testgroup
+\(e.g. if you want to be able to call the testgroup from another module).")
+ (license license:bsd-3)))
+
+(define-public ghc-abstract-par
+ (package
+ (name "ghc-abstract-par")
+ (version "0.3.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "abstract-par-" version "/"
+ "abstract-par-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0q6qsniw4wks2pw6wzncb1p1j3k6al5njnvm2v5n494hplwqg2i4"))))
+ (build-system haskell-build-system)
+ (home-page "https://github.com/simonmar/monad-par")
+ (synopsis "Abstract parallelization interface for Haskell")
+ (description "This Haskell package is an abstract interface
+only. It provides a number of type clasess, but not an
+implementation. The type classes separate different levels
+of @code{Par} functionality. See the @code{Control.Monad.Par.Class}
+module for more details.")
+ (license license:bsd-3)))
+
+(define-public ghc-monad-par-extras
+ (package
+ (name "ghc-monad-par-extras")
+ (version "0.3.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "monad-par-extras-" version "/"
+ "monad-par-extras-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0bl4bd6jzdc5zm20q1g67ppkfh6j6yn8fwj6msjayj621cck67p2"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
+ ("ghc-cereal" ,ghc-cereal)
+ ("ghc-random" ,ghc-random)
+ ("ghc-mtl" ,ghc-mtl)))
+ (home-page "https://github.com/simonmar/monad-par")
+ (synopsis "Combinators and extra features for Par monads for Haskell")
+ (description "This Haskell package provides additional data structures,
+and other added capabilities layered on top of the @code{Par} monad.")
+ (license license:bsd-3)))
+
+(define-public ghc-abstract-deque
+ (package
+ (name "ghc-abstract-deque")
+ (version "0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "abstract-deque-" version "/"
+ "abstract-deque-" version ".tar.gz"))
+ (sha256
+ (base32
+ "18jwswjxwzc9bjiy4ds6hw2a74ki797jmfcifxd2ga4kh7ri1ah9"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-random" ,ghc-random)))
+ (home-page "https://github.com/rrnewton/haskell-lockfree/wiki")
+ (synopsis "Abstract, parameterized interface to mutable Deques for Haskell")
+ (description "This Haskell package provides an abstract interface to
+highly-parameterizable queues/deques.
+
+Background: There exists a feature space for queues that extends between:
+
+@itemize
+@item Simple, single-ended, non-concurrent, bounded queues
+
+@item Double-ended, threadsafe, growable queues with important points
+inbetween (such as the queues used for work-stealing).
+@end itemize
+
+This package includes an interface for Deques that allows the programmer
+to use a single API for all of the above, while using the type-system to
+select an efficient implementation given the requirements (using type families).
+
+This package also includes a simple reference implementation based on
+@code{IORef} and @code{Data.Sequence}.")
+ (license license:bsd-3)))
+
+(define-public ghc-monad-par
+ (package
+ (name "ghc-monad-par")
+ (version "0.3.4.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "monad-par-" version "/"
+ "monad-par-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0ldrzqy24fsszvn2a2nr77m2ih7xm0h9bgkjyv1l274aj18xyk7q"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-abstract-par" ,ghc-abstract-par)
+ ("ghc-abstract-deque" ,ghc-abstract-deque)
+ ("ghc-monad-par-extras" ,ghc-monad-par-extras)
+ ("ghc-mwc-random" ,ghc-mwc-random)
+ ("ghc-parallel" ,ghc-parallel)
+ ("ghc-mtl" ,ghc-mtl)))
+ (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-hunit" ,ghc-hunit)
+ ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
+ ("ghc-test-framework-quickcheck2"
+ ,ghc-test-framework-quickcheck2)
+ ("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-test-framework-th" ,ghc-test-framework-th)))
+ (home-page "https://github.com/simonmar/monad-par")
+ (synopsis "Haskell library for parallel programming based on a monad")
+ (description "The @code{Par} monad offers an API for parallel
+programming. The library works for parallelising both pure and @code{IO}
+computations, although only the pure version is deterministic. The default
+implementation provides a work-stealing scheduler and supports forking tasks
+that are much lighter weight than IO-threads.")
+ (license license:bsd-3)))
+
+(define-public ghc-statistics
+ (package
+ (name "ghc-statistics")
+ (version "0.14.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "statistics-" version "/"
+ "statistics-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0y27gafkib0x0fn39qfn2rkgsfrm09ng35sbb5dwr7rclhnxz59l"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-aeson" ,ghc-aeson)
+ ("ghc-base-orphans" ,ghc-base-orphans)
+ ("ghc-erf" ,ghc-erf)
+ ("ghc-math-functions" ,ghc-math-functions)
+ ("ghc-monad-par" ,ghc-monad-par)
+ ("ghc-mwc-random" ,ghc-mwc-random)
+ ("ghc-primitive" ,ghc-primitive)
+ ("ghc-vector" ,ghc-vector)
+ ("ghc-vector-algorithms" ,ghc-vector-algorithms)
+ ("ghc-vector-th-unbox" ,ghc-vector-th-unbox)
+ ("ghc-vector-binary-instances" ,ghc-vector-binary-instances)))
+ (native-inputs
+ `(("ghc-hunit" ,ghc-hunit)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-ieee754", ghc-ieee754)
+ ("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
+ ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+ (arguments
+ `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
+ (home-page "https://github.com/bos/mwc-random")
+ (synopsis "Haskell library of statistical types, data, and functions")
+ (description "This library provides a number of common functions
+and types useful in statistics. We focus on high performance, numerical
+robustness, and use of good algorithms. Where possible, we provide references
+to the statistical literature.
+
+The library's facilities can be divided into four broad categories:
+
+@itemize
+@item Working with widely used discrete and continuous probability
+distributions. (There are dozens of exotic distributions in use; we focus
+on the most common.)
+
+@item Computing with sample data: quantile estimation, kernel density
+estimation, histograms, bootstrap methods, significance testing,
+and regression and autocorrelation analysis.
+
+@item Random variate generation under several different distributions.
+
+@item Common statistical tests for significant differences between samples.
+@end itemize")
+ (license license:bsd-2)))
+
+(define-public ghc-chunked-data
+ (package
+ (name "ghc-chunked-data")
+ (version "0.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "chunked-data-" version "/"
+ "chunked-data-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0bszq6fijnr4pmadzz89smj7kfmzx0ca3wd9ga8gv0in9jk9vgp1"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-vector" ,ghc-vector)
+ ("ghc-semigroups" ,ghc-semigroups)))
+ (home-page "https://github.com/snoyberg/mono-traversable")
+ (synopsis "Typeclasses for dealing with various chunked data
+representations for Haskell")
+ (description "This Haskell package was originally present in
+classy-prelude.")
+ (license license:expat)))
+
+(define-public ghc-base-prelude
+ (package
+ (name "ghc-base-prelude")
+ (version "1.2.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "base-prelude-" version "/"
+ "base-prelude-" version ".tar.gz"))
+ (sha256
+ (base32
+ "17hivs7lmsglagdlzxd9q9zsddmgqin2788mpq911zwnb57lj6l1"))))
+ (build-system haskell-build-system)
+ (home-page "https://github.com/nikita-volkov/base-prelude")
+ (synopsis "The most complete prelude formed solely from the Haskell's base
+package")
+ (description "This Haskell package aims to reexport all the non-conflicting
+and most general definitions from the \"base\" package.
+
+This includes APIs for applicatives, arrows, monoids, foldables, traversables,
+exceptions, generics, ST, MVars and STM.
+
+This package will never have any dependencies other than \"base\".
+
+Versioning policy:
+
+The versioning policy of this package deviates from PVP in the sense
+that its exports in part are transitively determined by the version of \"base\".
+Therefore it's recommended for the users of @code{ghc-base-prelude} to specify
+the bounds of \"base\" as well.")
+ (license license:expat)))
+
+(define-public ghc-tuple-th
+ (package
+ (name "ghc-tuple-th")
+ (version "0.2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "tuple-th-" version "/"
+ "tuple-th-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1mrl4vvxmby7sf1paf7hklzidnr6wq55822i73smqyz0xpf3gsjn"))))
+ (build-system haskell-build-system)
+ (home-page "https://github.com/DanielSchuessler/tuple-th")
+ (synopsis "Generate utility functions for tuples of statically known size
+for Haskell")
+ (description "This Haskell package contains Template Haskell functions for
+generating functions similar to those in @code{Data.List} for tuples of
+statically known size.")
+ (license license:bsd-3)))
+
+(define-public ghc-contravariant-extras
+ (package
+ (name "ghc-contravariant-extras")
+ (version "0.3.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "contravariant-extras-" version "/"
+ "contravariant-extras-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1mbrgjybdx8fjdck4ldwi8955w4qnmm0ql56zix7dyn0s7s9spgk"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-tuple-th" ,ghc-tuple-th)
+ ("ghc-contravariant" ,ghc-contravariant)
+ ("ghc-base-prelude",ghc-base-prelude)))
+ (home-page "https://github.com/nikita-volkov/contravariant-extras")
+ (synopsis "Extras for the @code{ghc-contravariant} Haskell package")
+ (description "This Haskell package provides extras for the
+@code{ghc-contravariant} package.")
+ (license license:expat)))
+
+(define-public ghc-monadrandom
+ (package
+ (name "ghc-monadrandom")
+ (version "0.4.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "MonadRandom-" version "/"
+ "MonadRandom-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1h1nhswrcmhy3mq6vd530p0df51fcnnf4csbwnljar7cf0mb2h6y"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-transformers-compat" ,ghc-transformers-compat)
+ ("ghc-mtl" ,ghc-mtl)
+ ("ghc-primitive" ,ghc-primitive)
+ ("ghc-fail" ,ghc-fail)
+ ("ghc-random" ,ghc-random)))
+ (home-page "https://github.com/byorgey/MonadRandom")
+ (synopsis "Random-number generation monad for Haskell")
+ (description "This Haskell package provides support for computations
+which consume random values.")
+ (license license:bsd-3)))
+
+(define-public ghc-either
+ (package
+ (name "ghc-either")
+ (version "4.4.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "either-" version "/"
+ "either-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1lrlwqqnm6ibfcydlv5qvvssw7bm0c6yypy0rayjzv1znq7wp1xh"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-bifunctors" ,ghc-bifunctors)
+ ("ghc-exceptions" ,ghc-exceptions)
+ ("ghc-free" ,ghc-free)
+ ("ghc-monad-control" ,ghc-monad-control)
+ ("ghc-manodrandom" ,ghc-monadrandom)
+ ("ghc-mtl" ,ghc-mtl)
+ ("ghc-mmorph" ,ghc-mmorph)
+ ("ghc-profunctors" ,ghc-profunctors)
+ ("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-semigroupoids" ,ghc-semigroupoids)
+ ("ghc-transformers-base" ,ghc-transformers-base)))
+ (home-page "https://github.com/ekmett/either")
+ (synopsis "Provides an either monad transformer for Haskell")
+ (description "This Haskell package provides an either monad transformer.")
+ (license license:bsd-3)))
+
+(define-public ghc-entropy
+ (package
+ (name "ghc-entropy")
+ (version "0.3.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "entropy-" version "/"
+ "entropy-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1l3lfigqvdlmxkz1wl7zdkmc0i2r5p6z4xzhiw8xdsbsw7aljfkl"))))
+ (build-system haskell-build-system)
+ (home-page "https://github.com/TomMD/entropy")
+ (synopsis "Provides platform independent entropy source for Haskell")
+ (description "This Haskell package provides a platform independent method
+to obtain cryptographically strong entropy.")
+ (license license:bsd-3)))
+
+(define-public ghc-crypto-api
+ (package
+ (name "ghc-crypto-api")
+ (version "0.13.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "crypto-api-" version "/"
+ "crypto-api-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1vc27qcgbg7hf50rkqhlrs58zn1888ilh4b6wrrm07bnm48xacak"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-cereal" ,ghc-cereal)
+ ("ghc-tagged" ,ghc-tagged)
+ ("ghc-entropy" ,ghc-entropy)))
+ (home-page "https://github.com/TomMD/crypto-api")
+ (synopsis "Provides generic interface for cryptographic operations
+for Haskell")
+ (description "This Haskell package provides a generic interface for
+cryptographic operations (hashes, ciphers, randomness).
+
+Maintainers of hash and cipher implementations are encouraged to add instances
+for the classes defined in @code{Crypto.Classes}. @code{Crypto} users are
+similarly encouraged to use the interfaces defined in the @code{Classes} module.
+
+Any concepts or functions of general use to more than one cryptographic
+algorithm (ex: padding) is within scope of this package.")
+ (license license:bsd-3)))
+
+(define-public ghc-crypto-api-tests
+ (package
+ (name "ghc-crypto-api-tests")
+ (version "0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "crypto-api-tests-" version "/"
+ "crypto-api-tests-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0w3j43jdrlj28jryp18hc6q84nkl2yf4vs1hhgrsk7gb9kfyqjpl"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
+ ("ghc-crypto-api" ,ghc-crypto-api)
+ ("ghc-cereal" ,ghc-cereal)
+ ("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
+ ("ghc-hunit" ,ghc-hunit)
+ ("ghc-quickcheck" ,ghc-quickcheck)))
+ (home-page "https://github.com/TomMD/crypto-api-tests")
+ (synopsis "Test framework and KATs for cryptographic operations for Haskell")
+ (description "This Haskell package provides a test framework for hash and
+cipher operations using the crypto-api interface. Known answer tests (KATs)
+for common cryptographic algorithms are included.")
+ (license license:bsd-3)))
+
+(define-public ghc-pretty-hex
+ (package
+ (name "ghc-pretty-hex")
+ (version "1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "pretty-hex-" version "/"
+ "pretty-hex-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0ylwkvvjvmpprha9nx83xb8gkhyanhk5fffc0r7lb96n4ch5z6pz"))))
+ (build-system haskell-build-system)
+ (home-page "https://github.com/GaloisInc/hexdump")
+ (synopsis "Haskell library for hex dumps of ByteStrings")
+ (description "This Haskell library generates pretty hex dumps of
+ByteStrings in the style of other common *nix hex dump tools.")
+ (license license:bsd-3)))
+
+(define-public ghc-puremd5
+ (package
+ (name "ghc-puremd5")
+ (version "2.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "pureMD5-" version "/"
+ "pureMD5-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0zdilz41cla2ck7mcw1a9702gyg2abq94mqahr4vci9sbs53bwxy"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-cereal" ,ghc-cereal)
+ ("ghc-crypto-api" ,ghc-crypto-api)
+ ("ghc-tagged" ,ghc-tagged)))
+ (native-inputs `(("ghc-crypto-api-tests" ,ghc-crypto-api-tests)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-test-framework-quickcheck2"
+ ,ghc-test-framework-quickcheck2)
+ ("ghc-pretty-hex" ,ghc-pretty-hex)))
+ (home-page "https://github.com/TomMD/pureMD5")
+ (synopsis "Haskell implementation of the MD5 hash algorithm")
+ (description "This package provides a Haskell-only implementation of
+the MD5 digest (hash) algorithm. This now supports the @code{crypto-api} class
+interface.")
+ (license license:bsd-3)))
+
+(define-public ghc-cryptohash-md5
+ (package
+ (name "ghc-cryptohash-md5")
+ (version "0.11.100.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "cryptohash-md5-" version "/"
+ "cryptohash-md5-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1y8q7s2bn4gdknw1wjikdnar2b5pgz3nv3220lxrlgpsf23x82vi"))))
+ (build-system haskell-build-system)
+ (arguments
+ `(#:tests? #f)) ; tests require old version of ghc-hunit (0.9)
+ (native-inputs `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
+ ("ghc-puremd5" ,ghc-puremd5)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+ ("ghc-hunit" ,ghc-hunit)))
+ (home-page "https://github.com/hvr/cryptohash-md5")
+ (synopsis "MD5 implementation for Haskell")
+ (description "This Haskell package provides implementation of MD5.")
+ (license license:bsd-3)))
+
+(define-public ghc-cryptohash-sha1
+ (package
+ (name "ghc-cryptohash-sha1")
+ (version "0.11.100.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "cryptohash-sha1-" version "/"
+ "cryptohash-sha1-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1aqdxdhxhl9jldh951djpwxx8z7gzaqspxl7iwpl84i5ahrsyy9w"))))
+ (build-system haskell-build-system)
+ (arguments
+ `(#:tests? #f)) ; tests require old version of ghc-hunit (0.9)
+ (native-inputs `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
+ ("ghc-sha" ,ghc-sha)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+ ("ghc-hunit" ,ghc-hunit)))
+ (home-page "https://github.com/hvr/cryptohash-sha1")
+ (synopsis "SHA-1 implementation for Haskell")
+ (description "This Haskell package provides an incremental and one-pass,
+pure API to the @uref{https://en.wikipedia.org/wiki/SHA-1, SHA-1 hash algorithm},
+including @uref{https://en.wikipedia.org/wiki/HMAC, HMAC support}, with
+performance close to the fastest implementations available in other languages.
+
+The implementation is made in C with a haskell FFI wrapper that hides
+the C implementation.")
+ (license license:bsd-3)))
+
+(define-public ghc-network-info
+ (package
+ (name "ghc-network-info")
+ (version "0.2.0.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "network-info-" version "/"
+ "network-info-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0xndvg776241fgjmynxfpy81f1csjmh8dg33yf0c8m71ychz3pzc"))))
+ (build-system haskell-build-system)
+ (home-page "https://github.com/jystic/network-info")
+ (synopsis "Access the local computer's basic network configuration")
+ (description "This Haskell library provides simple read-only access to the
+local computer's networking configuration. It is currently capable of
+getting a list of all the network interfaces and their respective
+IPv4, IPv6 and MAC addresses.")
+ (license license:bsd-3)))
+
+(define-public ghc-uuid-types
+ (package
+ (name "ghc-uuid-types")
+ (version "1.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "uuid-types-" version "/"
+ "uuid-types-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-hashable" ,ghc-hashable)
+ ("ghc-random" ,ghc-random)
+ ("ghc-text" ,ghc-text)))
+ (native-inputs `(("ghc-hunit" ,ghc-hunit)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+ (home-page "https://github.com/hvr/uuid")
+ (synopsis "Haskell type definitions for UUIDs")
+ (description "This Haskell library contains type definitions for
+@dfn{Universally Unique Identifiers} or
+@uref{http://en.wikipedia.org/wiki/UUID, UUIDs}, and basic conversion
+functions.")
+ (license license:bsd-3)))
+
+(define-public ghc-uuid
+ (package
+ (name "ghc-uuid")
+ (version "1.3.13")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "uuid-" version "/"
+ "uuid-" version ".tar.gz"))
+ (sha256
+ (base32
+ "09xhk42yhxvqmka0iqrv3338asncz8cap3j0ic0ps896f2581b6z"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-cryptohash-sha1" ,ghc-cryptohash-sha1)
+ ("ghc-cryptohash-md5" ,ghc-cryptohash-md5)
+ ("ghc-entropy" ,ghc-entropy)
+ ("ghc-network-info" ,ghc-network-info)
+ ("ghc-random" ,ghc-random)
+ ("ghc-text" ,ghc-text)
+ ("ghc-uuid-types" ,ghc-uuid-types)))
+ (native-inputs `(("ghc-hunit" ,ghc-hunit)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
+ (home-page "https://github.com/hvr/uuid")
+ (synopsis "Haskell library to create, compare, parse, and print UUIDs")
+ (description "This Haskell library provides utilities creating, comparing,
+parsing and printing @dfn{Universally Unique Identifiers} or UUIDs.")
+ (license license:bsd-3)))
+
+(define-public ghc-rebase
+ (package
+ (name "ghc-rebase")
+ (version "1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "rebase-" version "/"
+ "rebase-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1qkhnpcc4g2vd6jmbf3b6psqkan6hyawqzrwzqdd931hsb02l6ia"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-stm" ,ghc-stm)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-vector" ,ghc-vector)
+ ("ghc-unordered-containers" ,ghc-unordered-containers)
+ ("ghc-text" ,ghc-text)
+ ("ghc-scientific" ,ghc-scientific)
+ ("ghc-uuid" ,ghc-uuid)
+ ("ghc-dlist" ,ghc-dlist)
+ ("ghc-void" ,ghc-void)
+ ("ghc-bifunctors" ,ghc-bifunctors)
+ ("ghc-profunctors" ,ghc-profunctors)
+ ("ghc-contravariant" ,ghc-contravariant)
+ ("ghc-contravariant-extras" ,ghc-contravariant-extras)
+ ("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-mtl" ,ghc-mtl)
+ ("ghc-either" ,ghc-either)
+ ("ghc-fail" ,ghc-fail)
+ ("ghc-base-prelude" ,ghc-base-prelude)))
+ (home-page "https://github.com/nikita-volkov/rebase")
+ (synopsis "Progressive alternative to the base package
+for Haskell")
+ (description "This Haskell package is intended for those who are
+tired of keeping long lists of dependencies to the same essential libraries
+in each package as well as the endless imports of the same APIs all over again.
+
+It also supports the modern tendencies in the language.
+
+To solve those problems this package does the following:
+
+@itemize
+@item Reexport the original APIs under the @code{Rebase} namespace.
+
+@item Export all the possible non-conflicting symbols from the
+@code{Rebase.Prelude} module.
+
+@item Give priority to the modern practices in the conflicting cases.
+@end itemize
+
+The policy behind the package is only to reexport the non-ambiguous and
+non-controversial APIs, which the community has obviously settled on.
+The package is intended to rapidly evolve with the contribution from
+the community, with the missing features being added with pull-requests.")
+ (license license:expat)))
+
+(define-public ghc-vector-builder
+ (package
+ (name "ghc-vector-builder")
+ (version "0.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "vector-builder-" version "/"
+ "vector-builder-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1l6sfgd2s107zkp1qd1w6jdjcbznp31769qf99pxar087f697wvp"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-vector" ,ghc-vector)
+ ("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-base-prelude" ,ghc-base-prelude)))
+ (native-inputs `(("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+ ("ghc-hunit" ,ghc-hunit)
+ ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
+ ("ghc-rebase" ,ghc-rebase)))
+ (home-page "https://github.com/nikita-volkov/vector-builder")
+ (synopsis "Vector builder for Haskell")
+ (description "This Haskell package provides an API for constructing vectors.
+It provides the composable @code{Builder} abstraction, which has instances of the
+@code{Monoid} and @code{Semigroup} classes.
+
+You would first use the @code{Builder} abstraction to specify the structure of
+the vector; then you can execute the builder to actually produce the
+vector. ")
+ (license license:expat)))
+
+(define-public ghc-foldl
+ (package
+ (name "ghc-foldl")
+ (version "1.3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "foldl-" version "/"
+ "foldl-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1z3xjz4khs2kr3mqkbh7dz4kd6gkdk2r67wjkvrxnmp533aqh90n"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-mwc-randam" ,ghc-mwc-random)
+ ("ghc-primitive" ,ghc-primitive)
+ ("ghc-text" ,ghc-text)
+ ("ghc-vector" ,ghc-vector)
+ ("ghc-unordered-containers" ,ghc-unordered-containers)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-contravariant" ,ghc-contravariant)
+ ("ghc-profunctors" ,ghc-profunctors)
+ ("ghc-comonad" ,ghc-comonad)
+ ("ghc-vector-builder" ,ghc-vector-builder)))
+ (home-page "https://github.com/Gabriel439/Haskell-Foldl-Library")
+ (synopsis "Composable, streaming, and efficient left folds for Haskell")
+ (description "This Haskell library provides strict left folds that stream
+in constant memory, and you can combine folds using @code{Applicative} style
+to derive new folds. Derived folds still traverse the container just once
+and are often as efficient as hand-written folds.")
+ (license license:bsd-3)))
+
+(define-public ghc-mono-traversable
+ (package
+ (name "ghc-mono-traversable")
+ (version "1.0.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "mono-traversable-" version "/"
+ "mono-traversable-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0smirpwika7d5a98h20jr9jqg41n7vqfy7k31crmn449qfig9ljf"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-text" ,ghc-text)
+ ("ghc-vector" ,ghc-vector)
+ ("ghc-vector-algorithms" ,ghc-vector-algorithms)
+ ("ghc-split" ,ghc-split)))
+ (native-inputs `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-hunit",ghc-hunit)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-foldl" ,ghc-foldl)))
+ (home-page "https://github.com/snoyberg/mono-traversable")
+ (synopsis "Haskell classes for mapping, folding, and traversing monomorphic
+containers")
+ (description "This Haskell package provides Monomorphic variants of the
+Functor, Foldable, and Traversable typeclasses. If you understand Haskell's
+basic typeclasses, you understand mono-traversable. In addition to what
+you are used to, it adds on an IsSequence typeclass and has code for marking
+data structures as non-empty.")
+ (license license:expat)))
+
+(define-public ghc-conduit-combinators
+ (package
+ (name "ghc-conduit-combinators")
+ (version "1.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "conduit-combinators-" version "/"
+ "conduit-combinators-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0609miq03lq9visfb2dqqsxghmvgzm24pq39mqby1jnnah6yh8m0"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-conduit" ,ghc-conduit)
+ ("ghc-conduit-extra" ,ghc-conduit-extra)
+ ("ghc-transformers-base" ,ghc-transformers-base)
+ ("ghc-primitive" ,ghc-primitive)
+ ("ghc-vector" ,ghc-vector)
+ ("ghc-text" ,ghc-text)
+ ("ghc-void" ,ghc-void)
+ ("ghc-mwc-random" ,ghc-mwc-random)
+ ("ghc-unix-compat" ,ghc-unix-compat)
+ ("ghc-base16-bytestring" ,ghc-base16-bytestring)
+ ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+ ("ghc-resourcet" ,ghc-resourcet)
+ ("ghc-monad-control" ,ghc-monad-control)
+ ("ghc-chunked-data" ,ghc-chunked-data)
+ ("ghc-mono-traversable" ,ghc-mono-traversable)))
+ (native-inputs `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-silently" ,ghc-silently)
+ ("ghc-mtl" ,ghc-mtl)
+ ("ghc-safe" ,ghc-safe)
+ ("ghc-quickcheck" ,ghc-quickcheck)))
+ (home-page "https://github.com/snoyberg/mono-traversable")
+ (synopsis "Commonly used conduit functions, for both chunked and
+unchunked data")
+ (description "This Haskell package provides a replacement for Data.Conduit.List,
+as well as a convenient Conduit module.")
+ (license license:expat)))
+
+(define-public ghc-aws
+ (package
+ (name "ghc-aws")
+ (version "0.17.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "aws-" version "/aws-" version ".tar.gz"))
+ (sha256 (base32
+ "1q4qh58vj8447a4fl88n3nkpdc4yv293qsh02w6zvszd6ch61yh7"))))
+ (build-system haskell-build-system)
+ (arguments `(#:tests? #f)) ; Tests require AWS credentials.
+ (inputs
+ `(("ghc-aeson" ,ghc-aeson)
+ ("ghc-attoparsec" ,ghc-attoparsec)
+ ("ghc-base16-bytestring" ,ghc-base16-bytestring)
+ ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+ ("ghc-blaze-builder" ,ghc-blaze-builder)
+ ("ghc-byteable" ,ghc-byteable)
+ ("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-cereal" ,ghc-cereal)
+ ("ghc-conduit" ,ghc-conduit)
+ ("ghc-conduit-extra" ,ghc-conduit-extra)
+ ("ghc-cryptohash" ,ghc-cryptohash)
+ ("ghc-data-default" ,ghc-data-default)
+ ("ghc-http-conduit" ,ghc-http-conduit)
+ ("ghc-http-types" ,ghc-http-types)
+ ("ghc-monad-control" ,ghc-monad-control)
+ ("ghc-mtl" ,ghc-mtl)
+ ("ghc-network" ,ghc-network)
+ ("ghc-old-locale" ,ghc-old-locale)
+ ("ghc-safe" ,ghc-safe)
+ ("ghc-scientific" ,ghc-scientific)
+ ("ghc-tagged" ,ghc-tagged)
+ ("ghc-text" ,ghc-text)
+ ("ghc-unordered-containers" ,ghc-unordered-containers)
+ ("ghc-utf8-string" ,ghc-utf8-string)
+ ("ghc-vector" ,ghc-vector)
+ ("ghc-xml-conduit" ,ghc-xml-conduit)))
+ (native-inputs
+ `(("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-errors" ,ghc-errors)
+ ("ghc-http-client" ,ghc-http-client)
+ ("ghc-http-client-tls" ,ghc-http-client-tls)
+ ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-conduit-combinators" ,ghc-conduit-combinators)))
+ (home-page "https://github.com/aristidb/aws")
+ (synopsis "Amazon Web Services for Haskell")
+ (description "This package attempts to provide support for using
+Amazon Web Services like S3 (storage), SQS (queuing) and others to
+Haskell programmers. The ultimate goal is to support all Amazon
+Web Services.")
+ (license license:bsd-3)))
+
;;; haskell.scm ends here
diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm
index 3461285850..55bc9f2035 100644
--- a/gnu/packages/icu4c.scm
+++ b/gnu/packages/icu4c.scm
@@ -32,6 +32,7 @@
(define-public icu4c
(package
(name "icu4c")
+ (replacement icu4c-fixed)
(version "58.2")
(source (origin
(method url-fetch)
@@ -70,6 +71,15 @@ C/C++ part.")
(license x11)
(home-page "http://site.icu-project.org/")))
+(define icu4c-fixed
+ (package
+ (inherit icu4c)
+ (source (origin
+ (inherit (package-source icu4c))
+ (patches (append
+ (origin-patches (package-source icu4c))
+ (search-patches "icu4c-CVE-2017-14952.patch")))))))
+
(define-public java-icu4j
(package
(name "java-icu4j")
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index b53247de82..7d23d41be0 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -71,7 +71,7 @@
(define-public libpng
(package
(name "libpng")
- (version "1.6.29")
+ (version "1.6.34")
(source (origin
(method url-fetch)
(uri (list (string-append "mirror://sourceforge/libpng/libpng16/"
@@ -84,7 +84,7 @@
"/libpng16/libpng-" version ".tar.xz")))
(sha256
(base32
- "0fgjqp7x6jynacmqh6dj72cn6nnf6yxjfqqqfsxrx0pyx22bcia2"))))
+ "1xjr0v34fyjgnhvaa1zixcpx5yvxcg4zwvfh0fyklfyfj86rc7ig"))))
(build-system gnu-build-system)
;; libpng.la says "-lz", so propagate it.
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index 552349247f..5f031e3983 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -110,7 +110,7 @@ irssi, but graphical.")
(define-public irssi
(package
(name "irssi")
- (version "1.0.4")
+ (version "1.0.5")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/irssi/irssi/"
@@ -118,7 +118,7 @@ irssi, but graphical.")
version ".tar.xz"))
(sha256
(base32
- "1jl6p431rv4iixk48wn607m4s0mcy3wgasfwrhz22y71mzdhfp5q"))))
+ "055r9fhbfcfkzinsnprnlqd8psspdyn3j26lzsmnrc1fw4kn8mf2"))))
(build-system gnu-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 95fba20e88..ff5f1c9ae6 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -54,6 +54,7 @@
#:use-module (gnu packages image)
#:use-module (gnu packages libffi)
#:use-module (gnu packages linux) ;alsa
+ #:use-module (gnu packages web)
#:use-module (gnu packages wget)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages perl)
@@ -2299,7 +2300,7 @@ more.")
"plexus-interpolation-" version ".tar.gz"))
(sha256
(base32
- "1w79ljwk42ymrgy8kqxq4l82pgdj6287gabpfnpkyzbrnclsnfrp"))))
+ "03377yzlx5q440m6sxxgv6a5qb8fl30zzcgxgc0hxk5qgl2z1jjn"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "plexus-interpolation.jar"
@@ -4429,7 +4430,7 @@ StringTemplate also powers ANTLR.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "07zff5frmjd53rnqdx31h0pmswz1lv0p2lp28cspfszh25ysz6sj"))))
+ "0218v683081lg54z9hvjxinhxd4dqp870jx6n39gslm0bkyi4vd6"))))
(build-system ant-build-system)
(arguments
`(#:jar-name (string-append ,name "-" ,version ".jar")
@@ -6020,3 +6021,213 @@ provides low-level abstractions (@code{JsonParser}, @code{JsonGenerator},
@code{JsonFactory}) as well as small number of higher level overrides needed to
make data-binding work.")
(license license:asl2.0))); found on wiki.fasterxml.com/JacksonLicensing
+
+(define-public java-hdrhistogram
+ (package
+ (name "java-hdrhistogram")
+ (version "2.1.9")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/HdrHistogram/HdrHistogram/"
+ "archive/HdrHistogram-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1sicbmc3sr42nw93qbkb26q9rn33ag33k6k77phjc3j5h5gjffqv"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-hdrhistogram.jar"
+ #:source-dir "src/main/java"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'set-version
+ (lambda _
+ (let* ((version-java "src/main/java/org/HdrHistogram/Version.java")
+ (template (string-append version-java ".template")))
+ (copy-file template version-java)
+ (substitute* version-java
+ (("\\$VERSION\\$") ,version)
+ (("\\$BUILD_TIME\\$") "0"))
+ #t))))))
+ (native-inputs
+ `(("junit" ,java-junit)
+ ("hamcrest" ,java-hamcrest-core)))
+ (home-page "https://hdrhistogram.github.io/HdrHistogram")
+ (synopsis "High dynamic range histogram")
+ (description "Hdrhistogram allows to create histograms that support
+recording and analyzing sampled data value counts across a configurable integer
+value range with configurable value precision within the range. Value precision
+is expressed as the number of significant digits in the value recording, and
+provides control over value quantization behavior across the value range and
+the subsequent value resolution at any given level.")
+ (license license:public-domain)))
+
+(define-public java-aopalliance
+ (package
+ (name "java-aopalliance")
+ (version "1.0")
+ (source (origin
+ (method git-fetch)
+ ;; Note: this git repository is not official, but contains the
+ ;; source code that is in the CVS repository. Downloading the
+ ;; tarball from sourceforge is undeterministic, and the cvs download
+ ;; fails.
+ (uri (git-reference
+ (url "https://github.com/hoverruan/aopalliance")
+ (commit "0d7757ae204e5876f69431421fe9bc2a4f01e8a0")))
+ (file-name (string-append name "-" version))
+ (sha256
+ (base32
+ "0rsg2b0v3hxlq2yk1i3m2gw3xwq689j3cwx9wbxvqfpdcjbca0qr"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-aopalliance.jar"
+ #:jdk ,icedtea-8
+ #:tests? #f; no tests
+ #:source-dir "aopalliance/src/main"))
+ (home-page "http://aopalliance.sourceforge.net")
+ (synopsis "Aspect-Oriented Programming")
+ (description "The AOP Alliance project is a joint project between several
+software engineering people who are interested in Aspect-Oriented Programming
+(AOP) and Java.")
+ (license license:public-domain)))
+
+(define-public java-javax-inject
+ (package
+ (name "java-javax-inject")
+ (version "tck-1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/javax-inject/javax-inject/"
+ "archive/javax.inject-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1ydrlvh2r7vr1g7lhjwy3w2dggpj9h6pix1lakkkgdywb365n6g0"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-javax-inject.jar"
+ #:jdk ,icedtea-8
+ #:tests? #f)); no tests
+ (home-page "http://github.com/javax-inject/javax-inject")
+ (synopsis "JSR-330: Dependency Injection for Java")
+ (description "This package specifies a means for obtaining objects in such
+a way as to maximize reusability, testability and maintainability compared to
+traditional approaches such as constructors, factories, and service locators
+(e.g., JNDI). This process, known as dependency injection, is beneficial to
+most nontrivial applications.
+
+Many types depend on other types. For example, a @var{Stopwatch} might depend
+on a @var{TimeSource}. The types on which a type depends are known as its
+dependencies. The process of finding an instance of a dependency to use at run
+time is known as resolving the dependency. If no such instance can be found,
+the dependency is said to be unsatisfied, and the application is broken.")
+ (license license:asl2.0)))
+
+(define-public java-guice
+ (package
+ (name "java-guice")
+ (version "4.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/google/guice/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0dwmqjzlavb144ywqqglj3h68hqszkff8ai0a42hyb5il0qh4rbp"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-guice.jar"
+ #:jdk ,icedtea-8
+ #:tests? #f; FIXME: tests are not in a java sub directory
+ #:source-dir "core/src"))
+ (inputs
+ `(("guava" ,java-guava)
+ ("java-cglib" ,java-cglib)
+ ("java-aopalliance" ,java-aopalliance)
+ ("java-javax-inject" ,java-javax-inject)
+ ("java-asm" ,java-asm)))
+ (home-page "https://github.com/google/guice")
+ (synopsis "Lightweight dependency injection framework")
+ (description "Guice is a lightweight dependency injection framework fo
+Java 6 and above.")
+ (license license:asl2.0)))
+
+(define-public java-guice-servlet
+ (package
+ (inherit java-guice)
+ (name "java-guice-servlet")
+ (arguments
+ `(#:jar-name "guice-servlet.jar"
+ #:source-dir "extensions/servlet/src/"
+ #:jdk ,icedtea-8
+ #:tests? #f)); FIXME: not in a java subdir
+ (inputs
+ `(("guice" ,java-guice)
+ ("servlet" ,java-tomcat)
+ ,@(package-inputs java-guice)))))
+
+(define-public java-assertj
+ (package
+ (name "java-assertj")
+ (version "3.8.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/joel-costigliola/"
+ "assertj-core/archive/"
+ "assertj-core-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1kf124fxskf548rklkg86294w2x6ajqrff94rrhyqns31danqkfz"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-assertj.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "src/main/java"
+ #:tests? #f)); depends on tng-junit which depends on assertj
+ (inputs
+ `(("cglib" ,java-cglib)
+ ("junit" ,java-junit)
+ ("hamcrest" ,java-hamcrest-core)))
+ (native-inputs
+ `(("mockito" ,java-mockito-1)))
+ (home-page "https://joel-costigliola.github.io/assertj/index.html")
+ (synopsis "Fluent assertions for java")
+ (description "AssertJ core is a Java library that provides a fluent
+interface for writing assertions. Its main goal is to improve test code
+readability and make maintenance of tests easier.")
+ (license license:asl2.0)))
+
+(define-public java-jboss-javassist
+ (package
+ (name "java-jboss-javassist")
+ (version "3.21.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/jboss-javassist/javassist/"
+ "archive/rel_"
+ (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
+ "_ga.tar.gz"))
+ (sha256
+ (base32
+ "10lpcr3sbf7y6fq6fc2h2ik7rqrivwcy4747bg0kxhwszil3cfmf"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-jboss-javassist.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "src/main"
+ #:tests? #f; FIXME: requires junit-awtui and junit-swingui from junit3
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'remove-binary
+ (lambda _
+ (delete-file "javassist.jar")
+ #t)))))
+ (native-inputs
+ `(("junit" ,java-junit)))
+ (home-page "https://github.com/jboss-javassist/javassist")
+ (synopsis "Java bytecode engineering toolkit")
+ (description "Javassist (JAVA programming ASSISTant) makes Java bytecode
+manipulation simple. It is a class library for editing bytecodes in Java; it
+enables Java programs to define a new class at runtime and to modify a class
+file when the JVM loads it.")
+ (license (list license:gpl2 license:cddl1.0)))); either gpl2 only or cddl.
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 5fdf3bc9e9..6a46f28684 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -2780,7 +2780,7 @@ typed.")
("ki18n" ,ki18n)
("qtbase" ,qtbase)))
(arguments
- `(#:tests? #f ; FIXME: 8/10 tests fail.
+ `(#:tests? #f ; FIXME: 6/10 tests fail.
#:phases
(modify-phases %standard-phases
(add-before 'check 'check-setup
diff --git a/gnu/packages/kerberos.scm b/gnu/packages/kerberos.scm
index 801b4e44a9..b9f774a32a 100644
--- a/gnu/packages/kerberos.scm
+++ b/gnu/packages/kerberos.scm
@@ -46,8 +46,7 @@
(define-public mit-krb5
(package
(name "mit-krb5")
- (replacement mit-krb5-1.15.2)
- (version "1.15.1")
+ (version "1.15.2")
(source (origin
(method url-fetch)
(uri (string-append "http://web.mit.edu/kerberos/dist/krb5/"
@@ -55,7 +54,7 @@
"/krb5-" version ".tar.gz"))
(sha256
(base32
- "0igbi5d095c2hgpn2cixpc4q2ij8vgg2bx7yjfly5zfmvlqqhz23"))))
+ "0zn8s7anb10hw3nzwjz7vg10fgmmgvwnibn2zrn3nppjxn9f6f8n"))))
(build-system gnu-build-system)
(native-inputs
`(("bison" ,bison)
@@ -94,19 +93,6 @@ cryptography.")
(home-page "http://web.mit.edu/kerberos/")
(properties '((cpe-name . "kerberos")))))
-(define mit-krb5-1.15.2 ; CVE-2017-{11368,11462}
- (package
- (inherit mit-krb5)
- (version "1.15.2")
- (source (origin
- (method url-fetch)
- (uri (string-append "http://web.mit.edu/kerberos/dist/krb5/"
- (version-major+minor version)
- "/krb5-" version ".tar.gz"))
- (sha256
- (base32
- "0zn8s7anb10hw3nzwjz7vg10fgmmgvwnibn2zrn3nppjxn9f6f8n"))))))
-
(define-public shishi
(package
(name "shishi")
diff --git a/gnu/packages/libidn.scm b/gnu/packages/libidn.scm
index dfb1be6c4f..ff0c05bad0 100644
--- a/gnu/packages/libidn.scm
+++ b/gnu/packages/libidn.scm
@@ -55,15 +55,14 @@ Java libraries.")
(define-public libidn2
(package
(name "libidn2")
- (version "2.0.2")
- (replacement libidn2-2.0.4)
+ (version "2.0.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/libidn/" name "-" version
".tar.lz"))
(sha256
(base32
- "0pqaj8d01aj4i110669fincqs10kgynyqcrmq2q7pss8v9dcd1jq"))))
+ "00f2fyw5kwr9is3cdn5h9arzxp0lnvg0z9bb9zyfs0dq81gaqim4"))))
(native-inputs
`(("lzip" ,lzip)))
(inputs
@@ -75,19 +74,7 @@ the IDNA2008 specifications. Libidn2 is believed to be a complete IDNA2008
implementation, but has yet to be as extensively used as the original Libidn
library.")
(home-page "https://www.gnu.org/software/libidn/#libidn2")
+ (properties '((ftp-directory . "/gnu/libidn")))
;; The command-line tool 'idn2' is GPL3+, while the library is dual-licensed
;; GPL2+ or LGPL3+.
(license (list gpl2+ gpl3+ lgpl3+))))
-
-(define-public libidn2-2.0.4
- (package
- (inherit libidn2)
- (name "libidn2")
- (version "2.0.4")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/libidn/" name "-" version
- ".tar.lz"))
- (sha256
- (base32
- "00f2fyw5kwr9is3cdn5h9arzxp0lnvg0z9bb9zyfs0dq81gaqim4"))))))
diff --git a/gnu/packages/lighting.scm b/gnu/packages/lighting.scm
index 7f01cdbc99..ab7069b53b 100644
--- a/gnu/packages/lighting.scm
+++ b/gnu/packages/lighting.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
+;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -59,7 +60,9 @@
("libuuid" ,util-linux)
("zlib" ,zlib)))
(propagated-inputs
- `(("protobuf" ,protobuf))) ;; for pkg-config --libs libola
+ ;; Ola 0.10.5 only supports protobuf 2.x, and building it with 3.x breaks.
+ ;; XXX Remove protobuf-2 when it is no longer needed.
+ `(("protobuf" ,protobuf-2))) ;; for pkg-config --libs libola
(arguments
`(;; G++ >= 4.8 macro expansion tracking requires lots of memory, causing
;; build to fail on low memory systems. We disable that with the
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index fde7be4468..35922d5559 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -368,8 +368,8 @@ It has been modified to remove all non-free binary blobs.")
(define %intel-compatible-systems '("x86_64-linux" "i686-linux"))
-(define %linux-libre-version "4.13.7")
-(define %linux-libre-hash "1znf2zrhfb6wmlv09c14y6sawl4nb0jr7gzwwnakspvy0yjs95r3")
+(define %linux-libre-version "4.13.9")
+(define %linux-libre-hash "1ymsdvm4djh7hg2wmn2v11w380i0ss9nkp4slfrgihdvn6yp5gbv")
(define-public linux-libre
(make-linux-libre %linux-libre-version
@@ -378,32 +378,22 @@ 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.56"
- "05wy73yh4jbn1881djs21wl4hws62lyc1frb5di6cg6m3z7j658i"
+ (make-linux-libre "4.9.58"
+ "0f1yxdvzdr1zfkh86i9z0p7ywdlz0blxnd11wbnw763qyk3qydyk"
%intel-compatible-systems
#:configuration-file kernel-config))
(define-public linux-libre-4.4
- (make-linux-libre "4.4.92"
- "038mrv36n2521xd1f4nlpn00ar4vwzbwkldf6pk7rflbc3zi0p8g"
+ (make-linux-libre "4.4.94"
+ "0g63is8d2k1mf1kaljkll79n7gzh4qn0fmrm2r9sab2sq41hch1m"
%intel-compatible-systems
#:configuration-file kernel-config))
(define-public linux-libre-4.1
- (make-linux-libre "4.1.44"
- "1h1v2n8fxnn98y0jz9pnr4xdmc0v4l5d3hfxa5n5r3xmjksf1xs3"
+ (make-linux-libre "4.1.45"
+ "1ifpyyq86x0imjdfb9vm7m8dbnkw82a7bqczx166zrssc1fc677l"
%intel-compatible-systems
- #:configuration-file kernel-config
- #:patches
- (list %boot-logo-patch
- (origin
- (method url-fetch)
- (uri "\
-https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/patch/?id=f7ec367c8ea7021517c9c04b0022c225d2d0785a")
- (file-name "linux-libre-4.4-CVE-2017-1000251.patch")
- (sha256
- (base32
- "1glnjvs3xkvana2wfdv47dxi7jz2s4dz3v0b8ryglf2vbflm388w"))))))
+ #:configuration-file kernel-config))
(define-public linux-libre-arm-generic
(make-linux-libre %linux-libre-version
@@ -512,7 +502,7 @@ providing the system administrator with some help in common tasks.")
(define-public util-linux
(package
(name "util-linux")
- (version "2.30.1")
+ (version "2.31")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/utils/"
@@ -520,7 +510,7 @@ providing the system administrator with some help in common tasks.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0hdq2fz405a89fyha4bgwg0rx8b65inxq17w8fg8qhmcj4x3dr0v"))
+ "12nw108xjhm63sh2n5a0qs33vpvbvb6rln96l9j50p7wykf7rgpr"))
(patches (search-patches "util-linux-tests.patch"))
(modules '((guix build utils)))
(snippet
@@ -2056,30 +2046,50 @@ from the module-init-tools project.")
;; The post-systemd fork, maintained by Gentoo.
(package
(name "eudev")
- (version "3.2.2")
+ (version "3.2.4")
(source (origin
(method url-fetch)
- (uri (string-append
- "http://dev.gentoo.org/~blueness/eudev/eudev-"
- version ".tar.gz"))
+ (uri (string-append "https://github.com/gentoo/eudev/archive/v"
+ version ".zip"))
+ (file-name (string-append name "-" version ".zip"))
(sha256
(base32
- "0qqgbgpm5wdllk0s04pf80nwc8pr93xazwri1bylm1f15zn5ck1y"))
+ "1r1ag0snarygrj5qqxi2xdq9w6g3sfjd5jx1b0fl7zmqlsz3vvxx"))
(patches (search-patches "eudev-rules-directory.patch"))))
(build-system gnu-build-system)
(arguments
- '(#:phases (modify-phases %standard-phases
- (add-after 'install 'build-hwdb
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Build OUT/etc/udev/hwdb.bin. This allows 'lsusb' and
- ;; similar tools to display product names.
- (let ((out (assoc-ref outputs "out")))
- (zero? (system* (string-append out "/bin/udevadm")
- "hwdb" "--update"))))))))
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'bootstrap
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "man/make.sh"
+ (("/usr/bin/xsltproc")
+ (string-append (assoc-ref inputs "xsltproc")
+ "/bin/xsltproc")))
+ ;; Manual pages are regenerated here.
+ (zero? (system* "./autogen.sh"))))
+ (add-after 'install 'build-hwdb
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Build OUT/etc/udev/hwdb.bin. This allows 'lsusb' and
+ ;; similar tools to display product names.
+ (let ((out (assoc-ref outputs "out")))
+ (zero? (system* (string-append out "/bin/udevadm")
+ "hwdb" "--update"))))))
+ #:configure-flags (list "--enable-manpages")))
(native-inputs
- `(("pkg-config" ,pkg-config)
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("gperf" ,gperf)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)
+ ;; For tests.
("perl" ,perl)
- ("gperf" ,gperf)))
+ ("python" ,python-wrapper)
+ ;; For documentation.
+ ("docbook-xml" ,docbook-xml-4.2)
+ ("docbook-xsl" ,docbook-xsl)
+ ("libxml2" ,libxml2) ;for $XML_CATALOG_FILES
+ ("xsltproc", libxslt)))
(inputs
;; When linked against libblkid, eudev can populate /dev/disk/by-label
;; and similar; it also installs the '60-persistent-storage.rules' file,
@@ -3054,16 +3064,14 @@ Bluetooth audio output devices like headphones or loudspeakers.")
(string-append "--with-udevdir=" out "/lib/udev")))
#:phases
(modify-phases %standard-phases
- ,@(if (string=? (%current-system) "armhf-linux")
- ;; This test fails unpredictably.
- ;; TODO: skip it for all architectures.
- `((add-before 'check 'skip-wonky-test
- (lambda _
- (substitute* "unit/test-gatt.c"
- (("tester_init\\(&argc, &argv\\);") "return 77;"))
- #t)))
- `())
-
+ ;; Test unit/test-gatt fails unpredictably. Seems to be a timing
+ ;; issue (discussion on upstream mailing list:
+ ;; https://marc.info/?t=149578476300002&r=1&w=2)
+ (add-before 'check 'skip-wonky-test
+ (lambda _
+ (substitute* "unit/test-gatt.c"
+ (("tester_init\\(&argc, &argv\\);") "return 77;"))
+ #t))
(add-after 'install 'post-install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm
index a73a875594..a4108f55b2 100644
--- a/gnu/packages/lxqt.scm
+++ b/gnu/packages/lxqt.scm
@@ -90,62 +90,6 @@ in Qt.")
components of the LXQt desktop environment.")
(license lgpl2.1+)))
-
-(define-public lxqt-common
- (package
- (name "lxqt-common")
- (version "0.9.1")
- (source
- (origin
- (method url-fetch)
- (uri
- (string-append "https://github.com/lxde/" name
- "/archive/" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1vd3zarvl44l3y6wn7kgxcd2f1bygsmk5bcfqwa3568cq3b57aw0"))))
- (build-system cmake-build-system)
- (arguments
- `(#:tests? #f ; no check target
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'fix-installation-paths
- (lambda _
- ;; The variable LXQT_ETC_XDG_DIR is set in
- ;; liblxqt-0.9.0/share/cmake/lxqt/lxqt-config.cmake
- ;; to the Qt5 installation directory, followed by "/etc/xdg".
- ;; We need to have it point to the current installation
- ;; directory instead.
- (substitute* '("config/CMakeLists.txt"
- "menu/CMakeLists.txt")
- (("\\$\\{LXQT_ETC_XDG_DIR\\}")
- "${CMAKE_INSTALL_PREFIX}/etc/xdg")
- ;; In the same file, LXQT_SHARE_DIR is set to the installation
- ;; directory of liblxqt, followed by "/share/lxqt".
- (("\\$\\{LXQT_SHARE_DIR\\}")
- "${CMAKE_INSTALL_PREFIX}/share/lxqt"))
- ;; Replace absolute directories.
- (substitute* "autostart/CMakeLists.txt"
- (("/etc/xdg")
- "${CMAKE_INSTALL_PREFIX}/etc/xdg"))
- (substitute* "xsession/CMakeLists.txt"
- (("/usr/share")
- "${CMAKE_INSTALL_PREFIX}/share")))))))
- (inputs
- `(("kwindowsystem" ,kwindowsystem)
- ("liblxqt" ,liblxqt)
- ("libqtxdg" ,libqtxdg)
- ("qtbase" ,qtbase)
- ("qttools" ,qttools)
- ("qtx11extras" ,qtx11extras)))
- (home-page "http://lxqt.org/")
- (synopsis "Common files for LXQt")
- (description "lxqt-common provides the desktop integration files
-(themes, icons, configuration files etc.) for the LXQt
-desktop environment.")
- (license lgpl2.1+)))
-
(define-public lxqt-session
(package
(name "lxqt-session")
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 574bb3f4b9..e9a7283cf2 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -48,6 +48,7 @@
#:use-module (gnu packages backup)
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
+ #:use-module (gnu packages calendar)
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
@@ -939,6 +940,7 @@ compresses it.")
("libarchive" ,libarchive)
("libcanberra" ,libcanberra)
("libetpan" ,libetpan)
+ ("libical" ,libical)
("libnotify" ,libnotify)
("libsm" ,libsm)
("libxml2" ,libxml2)
@@ -1108,7 +1110,7 @@ facilities for checking incoming mail.")
(define-public dovecot
(package
(name "dovecot")
- (version "2.2.33.1")
+ (version "2.2.33.2")
(source
(origin
(method url-fetch)
@@ -1116,7 +1118,7 @@ facilities for checking incoming mail.")
(version-major+minor version) "/"
name "-" version ".tar.gz"))
(sha256 (base32
- "02w932hq8v9889k709gbg94jl983lzwd3nh51vkxq041821a3ng4"))))
+ "117f9i62liz2pm96zi2lpldzlj2knzj7g410zhifwmlsc1w3n7py"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 91489ba91b..ea4c8aecc8 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -27,28 +27,28 @@
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
- #:use-module (gnu packages pkg-config)
- #:use-module (gnu packages freedesktop)
- #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages docbook)
+ #:use-module (gnu packages documentation)
#:use-module (gnu packages fonts)
- #:use-module (gnu packages libcanberra)
- #:use-module (gnu packages linux)
- #:use-module (gnu packages glib)
- #:use-module (gnu packages gtk)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
+ #:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
- #:use-module (gnu packages docbook)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gnuzilla)
- #:use-module (gnu packages xorg)
- #:use-module (gnu packages documentation)
- #:use-module (gnu packages xdisorg)
- #:use-module (gnu packages base)
- #:use-module (gnu packages xml)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages libcanberra)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages pkg-config)
#:use-module (gnu packages photo)
#:use-module (gnu packages polkit)
#:use-module (gnu packages pulseaudio)
- #:use-module (gnu packages python))
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages xorg))
(define-public mate-icon-theme
(package
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 8f57670dbc..c854a5a599 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1460,7 +1460,7 @@ September 2004}")
(define-public petsc
(package
(name "petsc")
- (version "3.7.6")
+ (version "3.8.0")
(source
(origin
(method url-fetch)
@@ -1468,11 +1468,10 @@ September 2004}")
(uri (string-append "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/"
"petsc-lite-" version ".tar.gz"))
(sha256
- (base32 "1y3f5jjq0v5b62i3sabp4kp5mgfyp3vnk0dxhwkrhpypax77nzxh"))))
+ (base32 "1lajbk3c29hnh83v6cbmm3a8wv6bdykh0p70kwrr4vrnizalk88s"))))
(build-system gnu-build-system)
(native-inputs
- `(("python" ,python-2)
- ("perl" ,perl)))
+ `(("python" ,python-2)))
(inputs
`(("gfortran" ,gfortran)
("lapack" ,lapack)
@@ -1594,7 +1593,7 @@ scientific applications modeled by partial differential equations.")
(define-public slepc
(package
(name "slepc")
- (version "3.7.4")
+ (version "3.8.0")
(source
(origin
(method url-fetch)
@@ -1602,7 +1601,7 @@ scientific applications modeled by partial differential equations.")
version ".tar.gz"))
(sha256
(base32
- "12pbl8yd6r8k9xjlr1qw25rs0k1acgic7hw1s6l6bhiv9s285drg"))))
+ "0qyrsdndfdw2g0jmj9iskxj3j20zlkplhv26288s079dhm7cr365"))))
(build-system gnu-build-system)
(native-inputs
`(("python" ,python-2)))
@@ -2308,7 +2307,7 @@ schemes.")
(define-public p4est
(package
(name "p4est")
- (version "1.1")
+ (version "2.0")
(source
(origin
(method url-fetch)
@@ -2316,7 +2315,7 @@ schemes.")
version ".tar.gz"))
(sha256
(base32
- "0faina2h5qsx3m2izbzaj9bbakma1krbbjmq43wrp1hcbyijflqb"))))
+ "16h267z256kxcxfjs390qqzv19hr58vrj4x8lndb7alnk2vca8n5"))))
(build-system gnu-build-system)
(inputs
`(("fortran" ,gfortran)
@@ -2601,7 +2600,7 @@ parts of it.")
(define-public openblas
(package
(name "openblas")
- (version "0.2.19")
+ (version "0.2.20")
(source
(origin
(method url-fetch)
@@ -2610,10 +2609,10 @@ parts of it.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "071zqnmnxhh0c9phzyn3f198yxa0hjxda7016azdbq2056sm70w7"))))
+ "1bd03c5xni0bla0wg1wba841b36b0sg13sjja955kn5xzvy4i61a"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ;no "check" target
+ `(#:test-target "test"
;; DYNAMIC_ARCH is only supported on x86. When it is disabled and no
;; TARGET is specified, OpenBLAS will tune itself to the build host, so
;; we need to disable substitutions.
@@ -3093,7 +3092,7 @@ revised simplex and the branch-and-bound methods.")
(define-public dealii
(package
(name "dealii")
- (version "8.5.0")
+ (version "8.5.1")
(source
(origin
(method url-fetch)
@@ -3101,7 +3100,7 @@ revised simplex and the branch-and-bound methods.")
"download/v" version "/dealii-" version ".tar.gz"))
(sha256
(base32
- "0yfpy4zh8j7hmqakw17zdlmvfdcmhwgs66wcb716plc4y7v3z4g6"))
+ "1bh9rsmkrg0zi70n27b11djmac9lximghsiy7mg7w7x544n82gnk"))
(modules '((guix build utils)))
(snippet
;; Remove bundled sources: UMFPACK, TBB, muParser, and boost
@@ -3409,28 +3408,6 @@ structured and unstructured grid problems.")))
supports compressed MAT files, as well as newer (version 7.3) MAT files.")
(license license:bsd-2)))
-(define-public libhilbert
- (package
- (name "libhilbert")
- (version "0.2-1")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "http://web.cs.dal.ca/~chamilto/hilbert/"
- "libhilbert-" version ".tar.gz"))
- (sha256
- (base32
- "0v48x8405dj95gjn2saja4bzhw86d6zl6d3dg8h7dzac2qr97s34"))))
- (build-system gnu-build-system)
- (home-page "http://web.cs.dal.ca/~chamilto/hilbert")
- (synopsis "Hilbert indices for multidimensional data")
- (description "The libhilbert library can efficiently calculate Hilbert
-curves and order-preserving representations of Hilbert curve indices that use
-the same amount of space as the original point representation. This is useful
-when using the Gilbert curve as a space filling curve through a
-high-dimensional space where not all demensions have the same cardinality.")
- (license license:lgpl2.1+)))
-
(define-public vc
(package
(name "vc")
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 7e093bc111..cd9c41fccf 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -801,14 +801,14 @@ instant messenger with audio and video chat capabilities.")
(define-public qtox
(package
(name "qtox")
- (version "1.12.0")
+ (version "1.12.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/qTox/qTox/archive/v"
version ".tar.gz"))
(sha256
(base32
- "0ycgvcfn8hchc775dcn1wpdqff8chvzz1svx9g99wa5vcns9pflg"))
+ "0dwy0abcxzzcybww2xi33cla71a7752cq02qswcks5kbxnf5pck5"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system)
(arguments
diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index 579559616e..a75b1f3f78 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -43,6 +43,7 @@
#:use-module (gnu packages video) ;ffmpeg
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix build-system cmake))
@@ -348,14 +349,15 @@ use with CD-recording software).")
(define-public lame
(package
(name "lame")
- (version "3.99.5")
+ (version "3.100")
(source (origin
(method url-fetch)
- (uri (string-append "mirror://sourceforge/lame/lame/3.99/lame-"
+ (uri (string-append "mirror://sourceforge/lame/lame/"
+ (version-major+minor version) "/lame-"
version ".tar.gz"))
(sha256
(base32
- "1zr3kadv35ii6liia0bpfgxpag27xcivp571ybckpbz4b10nnd14"))))
+ "07nsn5sy3a8xbmw1bidxnsj5fj6kg9ai04icmqw40ybkp353dznx"))))
(build-system gnu-build-system)
;; XXX FIXME: Use gcc-4.8 on i686 to work around
;; <http://bugs.gnu.org/20856>.
diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm
index b6d2d7f4af..69272eb18a 100644
--- a/gnu/packages/multiprecision.scm
+++ b/gnu/packages/multiprecision.scm
@@ -87,13 +87,13 @@ cryptography and computational algebra.")
(define-public mpfr
(package
(name "mpfr")
- (version "3.1.5")
+ (version "3.1.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/mpfr/mpfr-" version
".tar.xz"))
(sha256 (base32
- "1g32l2fg8f62lcyzzh88y3fsh6rk539qc6ahhdgvx7wpnf1dwpq1"))))
+ "0l598h9klpgkz2bp0rxiqb90mkqh9f2f81n5rpy191j00hdaqqks"))))
(build-system gnu-build-system)
(outputs '("out" "debug"))
(propagated-inputs `(("gmp" ,gmp))) ; <mpfr.h> refers to <gmp.h>
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 69d69a6185..2fd38362c2 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -11,6 +11,7 @@
;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
;;; Copyright © 2017 Rodger Fox <thylakoid@openmailbox.org>
;;; Copyright © 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2300,7 +2301,7 @@ for improved Amiga ProTracker 2/3 compatibility.")
(define-public schismtracker
(package
(name "schismtracker")
- (version "20170420")
+ (version "20170910")
(source (origin
(method url-fetch)
(uri (string-append
@@ -2309,7 +2310,7 @@ for improved Amiga ProTracker 2/3 compatibility.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0k06vri29ayaq7mzsik3yywh6zdar2nfpkav2sp6g2rjl6k6vi5z"))
+ "01gfcjngbpv87y9w5jln8k313hycpkb1d617hdy2cdw2hxqzlclz"))
(modules '((guix build utils)))
(snippet
;; Remove use of __DATE__ and __TIME__ for reproducibility.
@@ -2807,8 +2808,8 @@ plugins, a switch trigger, a toggle switch, and a peakmeter.")
(license license:gpl2+))))
(define-public ingen
- (let ((commit "fd147d0b888090bfb897505852c1f25dbdf77e18")
- (revision "1"))
+ (let ((commit "cc4a4db33f4d126a07a4a498e053c5fb9a883be3")
+ (revision "2"))
(package
(name "ingen")
(version (string-append "0.0.0-" revision "."
@@ -2822,7 +2823,7 @@ plugins, a switch trigger, a toggle switch, and a peakmeter.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "1qmg79962my82c43vyrv5sxbqci9c7gc2s9bwaaqd0fcf08xcz1z"))))
+ "1wg47vjw9djn99gbnsl2bcwj4xhdid61m4wrbn2nlp797flj91ic"))))
(build-system waf-build-system)
(arguments
`(#:tests? #f ; no "check" target
@@ -2866,7 +2867,7 @@ plugins, a switch trigger, a toggle switch, and a peakmeter.")
("python-rdflib" ,python-rdflib)
("python" ,python)
("jack" ,jack-1)
- ("lv2" ,lv2)
+ ("lv2" ,lv2-devel)
("lilv" ,lilv)
("raul" ,raul-devel)
("ganv" ,ganv-devel)
@@ -3296,3 +3297,68 @@ based around a MIDI sequencer that features a rich understanding of music
notation and includes basic support for digital audio.")
(home-page "http://www.rosegardenmusic.com/")
(license license:gpl2)))
+
+(define-public sorcer
+ (package
+ (name "sorcer")
+ (version "1.1.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/openAVproductions/"
+ "openAV-Sorcer/archive/release-"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "07iyqj28wm0xc4arrq893bm12xjpz65db7ynrlmf6w8krg8wjmd0"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; no tests included
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'build-faust-sources
+ (lambda* (#:key inputs #:allow-other-keys)
+ (with-directory-excursion "faust"
+ (delete-file "main.cpp")
+ (zero? (system* "faust" "-i"
+ "-a" "lv2synth.cpp"
+ "-o" "main.cpp" "main.dsp"))))))))
+ (inputs
+ `(("boost" ,boost)
+ ("lv2" ,lv2)
+ ("ntk" ,ntk)))
+ (native-inputs
+ `(("faust" ,faust)
+ ("pkg-config" ,pkg-config)))
+ (home-page "http://openavproductions.com/sorcer/")
+ (synopsis "Wavetable LV2 plugin synth")
+ (description "Sorcer is a wavetable LV2 plugin synthesizer, targeted at
+the electronic or dubstep genre.")
+ (license license:gpl3+)))
+
+(define-public libechonest
+ (package
+ (name "libechonest")
+ (version "2.3.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "git://anongit.kde.org/libechonest.git")
+ (commit version)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0xbavf9f355dl1d3qv59x4ryypqrdanh9xdvw2d0q66l008crdkq"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:tests? #f ; Tests require Internet access
+ #:configure-flags '("-DBUILD_WITH_QT4=OFF")))
+ (inputs
+ `(("qtbase" ,qtbase)
+ ("qjson" ,qjson)))
+ (home-page "https://projects.kde.org/projects/playground/libs/libechonest")
+ (synopsis "C++/Qt classes to interface with The Echo Nest API")
+ (description "@code{libechonest} is a collection of C++/Qt classes
+designed to make a developer's life easy when trying to use the APIs provided
+by The Echo Nest.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/musl.scm b/gnu/packages/musl.scm
index 321290872e..dbb8c4856f 100644
--- a/gnu/packages/musl.scm
+++ b/gnu/packages/musl.scm
@@ -27,15 +27,14 @@
(define-public musl
(package
(name "musl")
- (version "1.1.15")
+ (version "1.1.17")
(source (origin
(method url-fetch)
(uri (string-append "http://www.musl-libc.org/releases/"
name "-" version ".tar.gz"))
- (patches (search-patches "musl-CVE-2016-8859.patch"))
(sha256
(base32
- "1ymhxkskivzph0q34zadwfglc5gyahqajm7chqqn2zraxv3lgr4p"))))
+ "0r0lyp2w6v2bvm8h1si7w3p2qx037szl14qnxm5p00568z3m3an8"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; Musl has no tests
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 633b8ca43e..a6c1042978 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -48,6 +48,7 @@
#:use-module (gnu packages adns)
#:use-module (gnu packages algebra)
#:use-module (gnu packages audio)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages bison)
#:use-module (gnu packages check)
#:use-module (gnu packages code)
@@ -55,6 +56,7 @@
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages dejagnu)
+ #:use-module (gnu packages documentation)
#:use-module (gnu packages flex)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
@@ -875,7 +877,7 @@ offline emulation of DNS.")
(define-public perl-geo-ip
(package
(name "perl-geo-ip")
- (version "1.50")
+ (version "1.51")
(source
(origin
(method url-fetch)
@@ -885,7 +887,7 @@ offline emulation of DNS.")
".tar.gz"))
(sha256
(base32
- "0ar69lrm26rp6sqxjf0p6cvjfprjx8gkxx11r399lvh99rqfl7zr"))))
+ "1fka8fr7fw6sh3xa9glhs1zjg3s2gfkhi7n7da1l2m2wblqj0c0n"))))
(build-system perl-build-system)
(home-page "http://search.cpan.org/dist/Geo-IP")
(synopsis
@@ -1267,7 +1269,7 @@ networks.")
(define-public speedtest-cli
(package
(name "speedtest-cli")
- (version "1.0.6")
+ (version "1.0.7")
(source
(origin
(method url-fetch)
@@ -1276,7 +1278,7 @@ networks.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1alambi1ljng6j04k7pq58jqwd0wh1q9630f17nl34ljabji5lwy"))))
+ "1fbq4kpx8sj50g74hwpixisfjjgxq6zyn40d3m28dxhn7mxbnlrq"))))
(build-system python-build-system)
(home-page "https://github.com/sivel/speedtest-cli")
(synopsis "Internet bandwidth tester")
@@ -1494,3 +1496,42 @@ interface and a programmable text output for scripting.")
;; Update the license field when upstream responds.
(license (list license:bsd-2
license:expat))))
+
+(define-public libnet
+ (package
+ (name "libnet")
+ (version "1.1.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/sam-github/libnet/"
+ "archive/libnet-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0l4gbzzvr199fzczzricjz7b825i7dlk6sgl5p5alnkcagmq0xys"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _ (chdir "libnet") #t))
+ (add-after 'chdir 'bootstrap
+ (lambda _ (zero? (system* "autoreconf" "-vif"))))
+ (add-before 'build 'build-doc
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (zero? (apply system* "make" "-C" "doc" "doc"
+ make-flags)))))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("doxygen" ,doxygen)))
+ (home-page "https://sourceforge.net/projects/libnet-dev/")
+ (synopsis "Framework for low-level network packet construction")
+ (description
+ "Libnet provides a fairly portable framework for network packet
+construction and injection. It features portable packet creation interfaces
+at the IP layer and link layer, as well as a host of supplementary
+functionality. Using libnet, quick and simple packet assembly applications
+can be whipped up with little effort.")
+ (license license:bsd-2)))
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index aa2f006674..b13168c7da 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -401,7 +401,12 @@ syntax of OCaml.")
(lambda _
(zero? (system* "make" "-j" (number->string
(parallel-job-count))
- "world.opt")))))))
+ "world.opt"))))
+ ;; Required for findlib to find camlp5's libraries
+ (add-after 'install 'install-meta
+ (lambda* (#:key outputs #:allow-other-keys)
+ (install-file "etc/META" (string-append (assoc-ref outputs "out")
+ "/lib/ocaml/camlp5/")))))))
(home-page "http://camlp5.gforge.inria.fr/")
(synopsis "Pre-processor Pretty Printer for OCaml")
(description
@@ -445,26 +450,25 @@ written in Objective Caml.")
(define-public coq
(package
(name "coq")
- (version "8.5pl2")
+ (version "8.7.0")
(source (origin
(method url-fetch)
(uri (string-append "https://coq.inria.fr/distrib/V" version
"/files/" name "-" version ".tar.gz"))
(sha256
(base32
- "0wyywia0darak2zmc5v0ra9rn0b9whwdfiahralm8v5za499s8w3"))))
+ "15wjngjd5pyfqdl5yw92rvdxvy15xcjlpx0rqlkzvcsis1z20xpk"))))
(native-search-paths
(list (search-path-specification
(variable "COQPATH")
(files (list "lib/coq/user-contrib")))))
- (build-system gnu-build-system)
+ (build-system ocaml-build-system)
(native-inputs
`(("texlive" ,texlive)
- ("findlib" ,ocaml-findlib)
("hevea" ,hevea)))
(inputs
- `(("ocaml" ,ocaml)
- ("lablgtk" ,lablgtk)
+ `(("lablgtk" ,lablgtk)
+ ("python" ,python-2)
("camlp5" ,camlp5)))
(arguments
`(#:phases
@@ -488,6 +492,11 @@ written in Objective Caml.")
(add-after 'install 'check
(lambda _
(with-directory-excursion "test-suite"
+ ;; These two tests fail.
+ ;; This one fails because the output is not formatted as expected.
+ (delete-file-recursively "coq-makefile/timing")
+ ;; This one fails because we didn't build coqtop.byte.
+ (delete-file-recursively "coq-makefile/findlib-package")
(zero? (system* "make"))))))))
(home-page "https://coq.inria.fr")
(synopsis "Proof assistant for higher-order logic")
@@ -3551,14 +3560,14 @@ library is currently designed for Unicode Standard 3.2.")
(define-public coq-flocq
(package
(name "coq-flocq")
- (version "2.5.2")
+ (version "2.6.0")
(source (origin
(method url-fetch)
(uri (string-append "https://gforge.inria.fr/frs/download.php/file"
- "/36199/flocq-" version ".tar.gz"))
+ "/37054/flocq-" version ".tar.gz"))
(sha256
(base32
- "0h5mlasirfzc0wwn2isg4kahk384n73145akkpinrxq5jsn5d22h"))))
+ "13fv150dcwnjrk00d7zj2c5x9jwmxgrq0ay440gkr730l8mvk3l3"))))
(build-system gnu-build-system)
(native-inputs
`(("ocaml" ,ocaml)
@@ -3648,14 +3657,14 @@ assistant.")
(define-public coq-mathcomp
(package
(name "coq-mathcomp")
- (version "1.6.1")
+ (version "1.6.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/math-comp/math-comp/archive/mathcomp-"
version ".tar.gz"))
(sha256
(base32
- "1j9ylggjzrxz1i2hdl2yhsvmvy5z6l4rprwx7604401080p5sgjw"))))
+ "0lg5ncr7p4y8qqq6pfw6brqc6a9xzlfa0drprwfdn0rnyaq5nca6"))))
(build-system gnu-build-system)
(native-inputs
`(("ocaml" ,ocaml)
@@ -3690,14 +3699,14 @@ part of the distribution.")
(define-public coq-coquelicot
(package
(name "coq-coquelicot")
- (version "3.0.0")
+ (version "3.0.1")
(source (origin
(method url-fetch)
(uri (string-append "https://gforge.inria.fr/frs/download.php/"
- "file/36537/coquelicot-" version ".tar.gz"))
+ "file/37045/coquelicot-" version ".tar.gz"))
(sha256
(base32
- "0fx99bvsbdizj00gx2im8939y4wwl05f4qhw184j90kcx5vjxxv9"))))
+ "0hsyhsy2lwqxxx2r8xgi5csmirss42lp9bkb9yy35mnya0w78c8r"))))
(build-system gnu-build-system)
(native-inputs
`(("ocaml" ,ocaml)
@@ -3737,17 +3746,49 @@ conservative extension of Coq's standard library and provides correspondence
theorems between the two libraries.")
(license license:lgpl3+)))
+(define-public coq-bignums
+ (package
+ (name "coq-bignums")
+ (version "8.7.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/coq/bignums/archive/V"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "03iw9jiwq9jx45gsvp315y3lxr8m9ksppmcjvxs5c23qnky6zqjx"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("ocaml" ,ocaml)
+ ("coq" ,coq)))
+ (inputs
+ `(("camlp5" ,camlp5)))
+ (arguments
+ `(#:tests? #f; No test target
+ #:make-flags
+ (list (string-append "COQLIBINSTALL=" (assoc-ref %outputs "out")
+ "/lib/coq/user-contrib"))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (home-page "https://github.com/coq/bignums")
+ (synopsis "Coq library for arbitrary large numbers")
+ (description "Bignums is a coq library of arbitrary large numbers. It
+provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
+ (license license:lgpl2.1+)))
+
(define-public coq-interval
(package
(name "coq-interval")
- (version "3.2.0")
+ (version "3.3.0")
(source (origin
(method url-fetch)
(uri (string-append "https://gforge.inria.fr/frs/download.php/"
"file/36538/interval-" version ".tar.gz"))
(sha256
(base32
- "16ir7mizl18kwa1ls8fwjih6r87894bvc1r6lh85cd43la7nriq3"))))
+ "08fdcf3hbwqphglvwprvqzgkg0qbimpyhnqsgv3gac4y1ap0f903"))))
(build-system gnu-build-system)
(native-inputs
`(("ocaml" ,ocaml)
@@ -3755,6 +3796,7 @@ theorems between the two libraries.")
("coq" ,coq)))
(propagated-inputs
`(("flocq" ,coq-flocq)
+ ("bignums" ,coq-bignums)
("coquelicot" ,coq-coquelicot)
("mathcomp" ,coq-mathcomp)))
(arguments
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 9ecdd90c64..07ac59da5b 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -33,6 +33,7 @@
#:use-module (gnu packages guile)
#:use-module (gnu packages file)
#:use-module (gnu packages backup)
+ #:use-module (gnu packages bootstrap) ;for 'bootstrap-guile-origin'
#:use-module (gnu packages compression)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages databases)
@@ -229,39 +230,19 @@
("graphviz" ,graphviz)
("help2man" ,help2man)))
(inputs
- (let ((boot-guile (lambda (arch hash)
- (origin
- (method url-fetch)
- (uri (boot-guile-uri arch))
- (sha256 hash)))))
- `(("bzip2" ,bzip2)
- ("gzip" ,gzip)
- ("zlib" ,zlib) ;for 'guix publish'
-
- ("sqlite" ,sqlite)
- ("libgcrypt" ,libgcrypt)
- ("guile" ,guile-2.2)
-
- ("boot-guile/i686"
- ,(boot-guile "i686"
- (base32
- "0im800m30abgh7msh331pcbjvb4n02smz5cfzf1srv0kpx3csmxp")))
- ("boot-guile/x86_64"
- ,(boot-guile "x86_64"
- (base32
- "1w2p5zyrglzzniqgvyn1b55vprfzhgk8vzbzkkbdgl5248si0yq3")))
- ("boot-guile/mips64el"
- ,(boot-guile "mips64el"
- (base32
- "0fzp93lvi0hn54acc0fpvhc7bvl0yc853k62l958cihk03q80ilr")))
- ("boot-guile/armhf"
- ,(boot-guile "armhf"
- (base32
- "1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5")))
- ("boot-guile/aarch64"
- ,(boot-guile "aarch64"
- (base32
- "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r"))))))
+ `(("bzip2" ,bzip2)
+ ("gzip" ,gzip)
+ ("zlib" ,zlib) ;for 'guix publish'
+
+ ("sqlite" ,sqlite)
+ ("libgcrypt" ,libgcrypt)
+ ("guile" ,guile-2.2)
+
+ ("boot-guile/i686" ,(bootstrap-guile-origin "i686-linux"))
+ ("boot-guile/x86_64" ,(bootstrap-guile-origin "x86_64-linux"))
+ ("boot-guile/mips64el" ,(bootstrap-guile-origin "mips64el-linux"))
+ ("boot-guile/armhf" ,(bootstrap-guile-origin "armhf-linux"))
+ ("boot-guile/aarch64" ,(bootstrap-guile-origin "aarch64-linux"))))
(propagated-inputs
`(("gnutls" ,gnutls)
("guile-json" ,guile-json)
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index df6103f6a1..2fed93bf22 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -12,6 +12,7 @@
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -83,7 +84,7 @@ human.")
(define-public keepassxc
(package
(name "keepassxc")
- (version "2.2.0")
+ (version "2.2.1")
(source
(origin
(method url-fetch)
@@ -92,7 +93,7 @@ human.")
version "-src.tar.xz"))
(sha256
(base32
- "0nby6aq6w8g7c9slzahf7i34sbj8majf8rhmqqww87v6kaypxi3i"))))
+ "1gkxsv3g4pkzbjkd1c27k15m2b5y2fqnnijphnaiv542yk7csqb7"))))
(build-system cmake-build-system)
(inputs
`(("libgcrypt" ,libgcrypt)
diff --git a/gnu/packages/patches/automake-regexp-syntax.patch b/gnu/packages/patches/automake-regexp-syntax.patch
deleted file mode 100644
index 2e965c8c50..0000000000
--- a/gnu/packages/patches/automake-regexp-syntax.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From <https://lists.gnu.org/archive/html/automake-patches/2015-07/msg00000.html>.
-See also <http://bugs.gnu.org/22372>.
-
-From 34163794a58b5bd91c5d6bd9adf5437571c7a479 Mon Sep 17 00:00:00 2001
-From: Pavel Raiskup <praiskup@redhat.com>
-Date: Tue, 7 Jul 2015 10:54:24 +0200
-Subject: [PATCH] bin/automake: escape '{' in regexp pattern
-
-Based on perlre(1) documentation:
-.. in Perl v5.26, literal uses of a curly bracket will be required
-to be escaped, say by preceding them with a backslash ("\{" ) or
-enclosing them within square brackets ("[{]") ..
-
-References:
-https://bugzilla.redhat.com/1239379
-
-* bin/automake.in (substitute_ac_subst_variables): Escape the
-occurrence of '{' character.
----
- bin/automake.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/bin/automake.in b/bin/automake.in
-index 0c29184..c294ced 100644
---- a/bin/automake.in
-+++ b/bin/automake.in
-@@ -3898,7 +3898,7 @@ sub substitute_ac_subst_variables_worker
- sub substitute_ac_subst_variables
- {
- my ($text) = @_;
-- $text =~ s/\${([^ \t=:+{}]+)}/substitute_ac_subst_variables_worker ($1)/ge;
-+ $text =~ s/\$\{([^ \t=:+{}]+)}/substitute_ac_subst_variables_worker ($1)/ge;
- return $text;
- }
diff --git a/gnu/packages/patches/automake-test-gzip-warning.patch b/gnu/packages/patches/automake-test-gzip-warning.patch
deleted file mode 100644
index bcc9c207ae..0000000000
--- a/gnu/packages/patches/automake-test-gzip-warning.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Adjust test to ignore gzip 1.8+ warnings.
-
---- automake-1.15/t/distcheck-no-prefix-or-srcdir-override.sh 2016-06-14 00:36:26.554218552 +0200
-+++ automake-1.15/t/distcheck-no-prefix-or-srcdir-override.sh 2016-06-14 00:37:52.903157770 +0200
-@@ -49,7 +49,11 @@ grep "cannot find sources.* in foobar" s
-
- ./configure
- run_make -E -O distcheck
--test ! -s stderr
-+
-+# Gzip 1.8+ emits warnings like "gzip: warning: GZIP environment
-+# variable is deprecated"; filter them out.
-+test `grep -v '^gzip: warning' stderr | wc -l` -eq 0
-+
- # Sanity check: the flags have been actually seen.
- $PERL -e 'undef $/; $_ = <>; s/ \\\n/ /g; print;' <stdout >t
- grep '/configure .* --srcdir am-src' t || exit 99
diff --git a/gnu/packages/patches/coreutils-cut-huge-range-test.patch b/gnu/packages/patches/coreutils-cut-huge-range-test.patch
deleted file mode 100644
index e3a0ef28eb..0000000000
--- a/gnu/packages/patches/coreutils-cut-huge-range-test.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-This patch fixes 100% reproducible test failures on arm-linux-gnueabihf in our
-the build environment chroot, as reported at <https://bugs.gnu.org/26253>,
-and now on x86_64-linux-gnu as well. It is a variant of this upstream patch:
-
- commit f5422009389678680dba9ff4ecb7d33632ee3383
- Author: Ludovic Courtès <ludo@gnu.org>
- Date: Mon Mar 27 20:34:39 2017 -0700
-
- tests: avoid false ulimit failure on some systems
-
- * tests/misc/cut-huge-range.sh: On some systems returns_ may
- use more memory, so incorporate that in the determination
- of the ulimit value to use. Noticed on ARMv7 with bash-4.4.12,
- and x86_64 with bash-4.2.37.
- Fixes http://bugs.gnu.org/26253
-
-... which appeared to be insufficient.
-
-diff --git a/tests/misc/cut-huge-range.sh b/tests/misc/cut-huge-range.sh
-index 6b3c5b6ed..55b7b640e 100755
---- a/tests/misc/cut-huge-range.sh
-+++ b/tests/misc/cut-huge-range.sh
-@@ -20,9 +20,9 @@
- print_ver_ cut
- getlimits_
-
--vm=$(get_min_ulimit_v_ cut -b1 /dev/null) \
-+vm=$(get_min_ulimit_v_ sh -c 'cut -b1 /dev/null') \
- || skip_ "this shell lacks ulimit support"
- vm=$(($vm + 1000)) # avoid spurious failures
-
- # sed script to subtract one from the input.
- # Each input line should consist of a positive decimal number.
diff --git a/gnu/packages/patches/crypto++-fix-dos-in-asn.1-decoders.patch b/gnu/packages/patches/crypto++-fix-dos-in-asn.1-decoders.patch
new file mode 100644
index 0000000000..88b2e7f25a
--- /dev/null
+++ b/gnu/packages/patches/crypto++-fix-dos-in-asn.1-decoders.patch
@@ -0,0 +1,65 @@
+From 3d9181d7bdd8e491f745dbc9e34bd20b6f6da069 Mon Sep 17 00:00:00 2001
+From: Gergely Nagy <ngg@tresorit.com>
+Date: Wed, 14 Dec 2016 13:19:01 +0100
+Subject: [PATCH] Fix possible DoS in ASN.1 decoders (CVE-2016-9939)
+
+---
+ asn.cpp | 10 ++++++++++
+ asn.h | 2 ++
+ 2 files changed, 12 insertions(+)
+
+diff --git a/asn.cpp b/asn.cpp
+index 297ff010..2e923ef7 100644
+--- a/asn.cpp
++++ b/asn.cpp
+@@ -123,6 +123,8 @@ size_t BERDecodeOctetString(BufferedTransformation &bt, SecByteBlock &str)
+ size_t bc;
+ if (!BERLengthDecode(bt, bc))
+ BERDecodeError();
++ if (bc > bt.MaxRetrievable())
++ BERDecodeError();
+
+ str.New(bc);
+ if (bc != bt.Get(str, bc))
+@@ -139,6 +141,8 @@ size_t BERDecodeOctetString(BufferedTransformation &bt, BufferedTransformation &
+ size_t bc;
+ if (!BERLengthDecode(bt, bc))
+ BERDecodeError();
++ if (bc > bt.MaxRetrievable())
++ BERDecodeError();
+
+ bt.TransferTo(str, bc);
+ return bc;
+@@ -161,6 +165,8 @@ size_t BERDecodeTextString(BufferedTransformation &bt, std::string &str, byte as
+ size_t bc;
+ if (!BERLengthDecode(bt, bc))
+ BERDecodeError();
++ if (bc > bt.MaxRetrievable())
++ BERDecodeError();
+
+ SecByteBlock temp(bc);
+ if (bc != bt.Get(temp, bc))
+@@ -188,6 +194,10 @@ size_t BERDecodeBitString(BufferedTransformation &bt, SecByteBlock &str, unsigne
+ size_t bc;
+ if (!BERLengthDecode(bt, bc))
+ BERDecodeError();
++ if (bc == 0)
++ BERDecodeError();
++ if (bc > bt.MaxRetrievable())
++ BERDecodeError();
+
+ byte unused;
+ if (!bt.Get(unused))
+diff --git a/asn.h b/asn.h
+index ed9de52c..33f0dd09 100644
+--- a/asn.h
++++ b/asn.h
+@@ -498,6 +498,8 @@ void BERDecodeUnsigned(BufferedTransformation &in, T &w, byte asnTag = INTEGER,
+ bool definite = BERLengthDecode(in, bc);
+ if (!definite)
+ BERDecodeError();
++ if (bc > in.MaxRetrievable())
++ BERDecodeError();
+
+ SecByteBlock buf(bc);
+
diff --git a/gnu/packages/patches/gcc-asan-powerpc-missing-include.patch b/gnu/packages/patches/gcc-asan-powerpc-missing-include.patch
deleted file mode 100644
index 74b10c4a44..0000000000
--- a/gnu/packages/patches/gcc-asan-powerpc-missing-include.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Add missing include that triggers a build failure on PowerPC:
-
- ../../../../gcc-5.4.0/libsanitizer/asan/asan_linux.cc: In function ‘bool __asan::AsanInterceptsSignal(int)’:
- ../../../../gcc-5.4.0/libsanitizer/asan/asan_linux.cc:222:20: error: ‘SIGSEGV’ was not declared in this scope
- return signum == SIGSEGV && common_flags()->handle_segv;
- ^
-From <https://patchwork.ozlabs.org/patch/725596/>.
-
-diff --git a/libsanitizer/asan/asan_linux.cc b/libsanitizer/asan/asan_linux.cc
-index c504168..59087b9 100644
---- a/libsanitizer/asan/asan_linux.cc
-+++ b/libsanitizer/asan/asan_linux.cc
-@@ -29,6 +29,7 @@
- #include <dlfcn.h>
- #include <fcntl.h>
- #include <pthread.h>
-+#include <signal.h>
- #include <stdio.h>
- #include <unistd.h>
- #include <unwind.h>
diff --git a/gnu/packages/patches/gcc-fix-texi2pod.patch b/gnu/packages/patches/gcc-fix-texi2pod.patch
new file mode 100644
index 0000000000..28bd56a382
--- /dev/null
+++ b/gnu/packages/patches/gcc-fix-texi2pod.patch
@@ -0,0 +1,19 @@
+This patch was taken from the official GCC git repository.
+X-Git-Url: https://gcc.gnu.org/git/?p=gcc.git;a=blobdiff_plain;f=contrib%2Ftexi2pod.pl;h=91bdbb5cea933d0381f2924ab94490fca31d5800;hp=eba1bcaa3cffa78b46030b219d04fe7d68367658;hb=67b56c905078d49d3e4028085e5cb1e1fb87a8aa;hpb=2f508a78310caab123e9794d3dcfe41f2769449b
+
+It fixes a defect in the contrib/texi2pod.pl script that prevented generating
+manual pages. It was corrected in the GCC 6.X series.
+
+diff --git a/contrib/texi2pod.pl b/contrib/texi2pod.pl
+index eba1bca..91bdbb5 100755
+--- a/contrib/texi2pod.pl
++++ b/contrib/texi2pod.pl
+@@ -316,7 +316,7 @@ while(<$inf>) {
+ @columns = ();
+ for $column (split (/\s*\@tab\s*/, $1)) {
+ # @strong{...} is used a @headitem work-alike
+- $column =~ s/^\@strong{(.*)}$/$1/;
++ $column =~ s/^\@strong\{(.*)\}$/$1/;
+ push @columns, $column;
+ }
+ $_ = "\n=item ".join (" : ", @columns)."\n";
diff --git a/gnu/packages/patches/ghostscript-CVE-2017-8291.patch b/gnu/packages/patches/ghostscript-CVE-2017-8291.patch
deleted file mode 100644
index d38bd593c0..0000000000
--- a/gnu/packages/patches/ghostscript-CVE-2017-8291.patch
+++ /dev/null
@@ -1,195 +0,0 @@
-Fix CVE-2017-8291:
-
-https://bugs.ghostscript.com/show_bug.cgi?id=697799
-https://bugs.ghostscript.com/show_bug.cgi?id=697808 (duplicate)
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8291
-
-Patches copied from upstream source repository:
-
-https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4f83478c88c2e05d6e8d79ca4557eb039354d2f3
-https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=04b37bbce174eed24edec7ad5b920eb93db4d47d
-https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=57f20719e1cfaea77b67cb26e26de7fe4d7f9b2e
-https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ccfd2c75ac9be4cbd369e4cbdd40ba11a0c7bdad
-
-From 4f83478c88c2e05d6e8d79ca4557eb039354d2f3 Mon Sep 17 00:00:00 2001
-From: Chris Liddell <chris.liddell@artifex.com>
-Date: Thu, 27 Apr 2017 13:03:33 +0100
-Subject: [PATCH] Bug 697799: have .eqproc check its parameters
-
-The Ghostscript custom operator .eqproc was not check the number or type of
-the parameters it was given.
----
- psi/zmisc3.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/psi/zmisc3.c b/psi/zmisc3.c
-index 54b304246..37293ff4b 100644
---- a/psi/zmisc3.c
-+++ b/psi/zmisc3.c
-@@ -56,6 +56,12 @@ zeqproc(i_ctx_t *i_ctx_p)
- ref2_t stack[MAX_DEPTH + 1];
- ref2_t *top = stack;
-
-+ if (ref_stack_count(&o_stack) < 2)
-+ return_error(gs_error_stackunderflow);
-+ if (!r_is_array(op - 1) || !r_is_array(op)) {
-+ return_error(gs_error_typecheck);
-+ }
-+
- make_array(&stack[0].proc1, 0, 1, op - 1);
- make_array(&stack[0].proc2, 0, 1, op);
- for (;;) {
---
-2.13.0
-
-From 04b37bbce174eed24edec7ad5b920eb93db4d47d Mon Sep 17 00:00:00 2001
-From: Chris Liddell <chris.liddell@artifex.com>
-Date: Thu, 27 Apr 2017 13:21:31 +0100
-Subject: [PATCH] Bug 697799: have .rsdparams check its parameters
-
-The Ghostscript internal operator .rsdparams wasn't checking the number or
-type of the operands it was being passed. Do so.
----
- psi/zfrsd.c | 22 +++++++++++++++-------
- 1 file changed, 15 insertions(+), 7 deletions(-)
-
-diff --git a/psi/zfrsd.c b/psi/zfrsd.c
-index 191107d8a..950588d69 100644
---- a/psi/zfrsd.c
-+++ b/psi/zfrsd.c
-@@ -49,13 +49,20 @@ zrsdparams(i_ctx_t *i_ctx_p)
- ref *pFilter;
- ref *pDecodeParms;
- int Intent = 0;
-- bool AsyncRead;
-+ bool AsyncRead = false;
- ref empty_array, filter1_array, parms1_array;
- uint i;
-- int code;
-+ int code = 0;
-+
-+ if (ref_stack_count(&o_stack) < 1)
-+ return_error(gs_error_stackunderflow);
-+ if (!r_has_type(op, t_dictionary) && !r_has_type(op, t_null)) {
-+ return_error(gs_error_typecheck);
-+ }
-
- make_empty_array(&empty_array, a_readonly);
-- if (dict_find_string(op, "Filter", &pFilter) > 0) {
-+ if (r_has_type(op, t_dictionary)
-+ && dict_find_string(op, "Filter", &pFilter) > 0) {
- if (!r_is_array(pFilter)) {
- if (!r_has_type(pFilter, t_name))
- return_error(gs_error_typecheck);
-@@ -94,12 +101,13 @@ zrsdparams(i_ctx_t *i_ctx_p)
- return_error(gs_error_typecheck);
- }
- }
-- code = dict_int_param(op, "Intent", 0, 3, 0, &Intent);
-+ if (r_has_type(op, t_dictionary))
-+ code = dict_int_param(op, "Intent", 0, 3, 0, &Intent);
- if (code < 0 && code != gs_error_rangecheck) /* out-of-range int is ok, use 0 */
- return code;
-- if ((code = dict_bool_param(op, "AsyncRead", false, &AsyncRead)) < 0
-- )
-- return code;
-+ if (r_has_type(op, t_dictionary))
-+ if ((code = dict_bool_param(op, "AsyncRead", false, &AsyncRead)) < 0)
-+ return code;
- push(1);
- op[-1] = *pFilter;
- if (pDecodeParms)
---
-2.13.0
-
-From 57f20719e1cfaea77b67cb26e26de7fe4d7f9b2e Mon Sep 17 00:00:00 2001
-From: Chris Liddell <chris.liddell@artifex.com>
-Date: Wed, 3 May 2017 12:05:45 +0100
-Subject: [PATCH] Bug 697846: revision to commit 4f83478c88 (.eqproc)
-
-When using the "DELAYBIND" feature, it turns out that .eqproc can be called with
-parameters that are not both procedures. In this case, it turns out, the
-expectation is for the operator to return 'false', rather than throw an error.
----
- psi/zmisc3.c | 15 +++++++++++++--
- 1 file changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/psi/zmisc3.c b/psi/zmisc3.c
-index 37293ff4b..3f01d39a3 100644
---- a/psi/zmisc3.c
-+++ b/psi/zmisc3.c
-@@ -38,6 +38,15 @@ zcliprestore(i_ctx_t *i_ctx_p)
- return gs_cliprestore(igs);
- }
-
-+static inline bool
-+eqproc_check_type(ref *r)
-+{
-+ return r_has_type(r, t_array)
-+ || r_has_type(r, t_mixedarray)
-+ || r_has_type(r, t_shortarray)
-+ || r_has_type(r, t_oparray);
-+}
-+
- /* <proc1> <proc2> .eqproc <bool> */
- /*
- * Test whether two procedures are equal to depth 10.
-@@ -58,8 +67,10 @@ zeqproc(i_ctx_t *i_ctx_p)
-
- if (ref_stack_count(&o_stack) < 2)
- return_error(gs_error_stackunderflow);
-- if (!r_is_array(op - 1) || !r_is_array(op)) {
-- return_error(gs_error_typecheck);
-+ if (!eqproc_check_type(op -1) || !eqproc_check_type(op)) {
-+ make_false(op - 1);
-+ pop(1);
-+ return 0;
- }
-
- make_array(&stack[0].proc1, 0, 1, op - 1);
---
-2.13.0
-
-From ccfd2c75ac9be4cbd369e4cbdd40ba11a0c7bdad Mon Sep 17 00:00:00 2001
-From: Chris Liddell <chris.liddell@artifex.com>
-Date: Thu, 11 May 2017 14:07:48 +0100
-Subject: [PATCH] Bug 697892: fix check for op stack underflow.
-
-In the original fix, I used the wrong method to check for stack underflow, this
-is using the correct method.
----
- psi/zfrsd.c | 3 +--
- psi/zmisc3.c | 3 +--
- 2 files changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/psi/zfrsd.c b/psi/zfrsd.c
-index 950588d69..9c035b96d 100644
---- a/psi/zfrsd.c
-+++ b/psi/zfrsd.c
-@@ -54,8 +54,7 @@ zrsdparams(i_ctx_t *i_ctx_p)
- uint i;
- int code = 0;
-
-- if (ref_stack_count(&o_stack) < 1)
-- return_error(gs_error_stackunderflow);
-+ check_op(1);
- if (!r_has_type(op, t_dictionary) && !r_has_type(op, t_null)) {
- return_error(gs_error_typecheck);
- }
-diff --git a/psi/zmisc3.c b/psi/zmisc3.c
-index 3f01d39a3..43803b55b 100644
---- a/psi/zmisc3.c
-+++ b/psi/zmisc3.c
-@@ -65,8 +65,7 @@ zeqproc(i_ctx_t *i_ctx_p)
- ref2_t stack[MAX_DEPTH + 1];
- ref2_t *top = stack;
-
-- if (ref_stack_count(&o_stack) < 2)
-- return_error(gs_error_stackunderflow);
-+ check_op(2);
- if (!eqproc_check_type(op -1) || !eqproc_check_type(op)) {
- make_false(op - 1);
- pop(1);
---
-2.13.0
-
diff --git a/gnu/packages/patches/glib-respect-datadir.patch b/gnu/packages/patches/glib-respect-datadir.patch
new file mode 100644
index 0000000000..309ce9fc0b
--- /dev/null
+++ b/gnu/packages/patches/glib-respect-datadir.patch
@@ -0,0 +1,21 @@
+On Guix, Python modules are in a different output from the executables,
+so searching "../share/glib-2.0" will not work.
+
+This patch restores behaviour prior to this commit:
+<https://git.gnome.org/browse/glib/commit/?id=fe2a9887a8ccb14f2386e01b14834e97a33bc2d7>
+
+--- a/gio/gdbus-2.0/codegen/gdbus-codegen.in
++++ b/gio/gdbus-2.0/codegen/gdbus-codegen.in
+@@ -25,9 +25,12 @@
+
+ srcdir = os.getenv('UNINSTALLED_GLIB_SRCDIR', None)
+ filedir = os.path.dirname(__file__)
++datadir = os.path.join('@datadir@', 'glib-2.0')
+
+ if srcdir is not None:
+ path = os.path.join(srcdir, 'gio', 'gdbus-2.0')
++elif os.path.exists(os.path.join(datadir, 'codegen')):
++ path = datadir
+ elif os.path.basename(filedir) == 'bin':
+ # Make the prefix containing gdbus-codegen 'relocatable' at runtime by
+ # adding /some/prefix/bin/../share/glib-2.0 to the python path
diff --git a/gnu/packages/patches/glibc-CVE-2017-15670-15671.patch b/gnu/packages/patches/glibc-CVE-2017-15670-15671.patch
new file mode 100644
index 0000000000..76d688c517
--- /dev/null
+++ b/gnu/packages/patches/glibc-CVE-2017-15670-15671.patch
@@ -0,0 +1,27 @@
+Fix CVE-2017-15670:
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15670
+https://sourceware.org/bugzilla/show_bug.cgi?id=22320
+https://bugzilla.redhat.com/show_bug.cgi?id=1504804
+
+And CVE-2017-15671:
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15671
+https://sourceware.org/bugzilla/show_bug.cgi?id=22325
+https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2017-15671
+
+Copied from upstream:
+<https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=2d1bd71ec70a31b01d01b734faa66bb1ed28961f>
+
+diff --git a/posix/glob.c b/posix/glob.c
+--- a/posix/glob.c
++++ b/posix/glob.c
+@@ -843,7 +843,7 @@
+ *p = '\0';
+ }
+ else
+- *((char *) mempcpy (newp, dirname + 1, end_name - dirname))
++ *((char *) mempcpy (newp, dirname + 1, end_name - dirname - 1))
+ = '\0';
+ user_name = newp;
+ }
diff --git a/gnu/packages/patches/grep-gnulib-lock.patch b/gnu/packages/patches/grep-gnulib-lock.patch
deleted file mode 100644
index 68c33f1031..0000000000
--- a/gnu/packages/patches/grep-gnulib-lock.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-This patch fix error on 'gnulib' library required to build
-'grep' package on GNU/Hurd.
-The patch was adapted from upstream source repository:
-'<http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commit;h=4084b3a1094372b960ce4a97634e08f4538c8bdd>'
-
-Commit: 4084b3a1094372b960ce4a97634e08f4538c8bdd
-
-diff --git a/lib/glthread/lock.c b/lib/glthread/lock.c
-index 061562b..afc86f4 100644
---- a/lib/glthread/lock.c
-+++ b/lib/glthread/lock.c
-@@ -30,7 +30,7 @@
-
- /* ------------------------- gl_rwlock_t datatype ------------------------- */
-
--# if HAVE_PTHREAD_RWLOCK && (HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER || (__GNU_LIBRARY__ > 1))
-+# if HAVE_PTHREAD_RWLOCK && (HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER || (defined PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP && (__GNU_LIBRARY__ > 1)))
-
- # ifdef PTHREAD_RWLOCK_INITIALIZER
-
-diff --git a/lib/glthread/lock.h b/lib/glthread/lock.h
-index ec16d39..67932aa 100644
---- a/lib/glthread/lock.h
-+++ b/lib/glthread/lock.h
-@@ -179,7 +179,7 @@ typedef pthread_mutex_t gl_lock_t;
-
- /* ------------------------- gl_rwlock_t datatype ------------------------- */
-
--# if HAVE_PTHREAD_RWLOCK && (HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER || (__GNU_LIBRARY__ > 1))
-+# if HAVE_PTHREAD_RWLOCK && (HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER || (defined PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP && (__GNU_LIBRARY__ > 1)))
-
- # ifdef PTHREAD_RWLOCK_INITIALIZER
diff --git a/gnu/packages/patches/icu4c-CVE-2017-14952.patch b/gnu/packages/patches/icu4c-CVE-2017-14952.patch
new file mode 100644
index 0000000000..564f69d01d
--- /dev/null
+++ b/gnu/packages/patches/icu4c-CVE-2017-14952.patch
@@ -0,0 +1,18 @@
+Fix CVE-2017-14952:
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14952
+
+Patch copied from upstream source repository:
+
+http://bugs.icu-project.org/trac/changeset/40324/trunk/icu4c/source/i18n/zonemeta.cpp#file0
+
+Index: trunk/icu4c/source/i18n/zonemeta.cpp
+===================================================================
+--- icu/source/i18n/zonemeta.cpp (revision 40283)
++++ icu/source/i18n/zonemeta.cpp (revision 40324)
+@@ -691,5 +691,4 @@
+ if (U_FAILURE(status)) {
+ delete mzMappings;
+- deleteOlsonToMetaMappingEntry(entry);
+ uprv_free(entry);
+ break;
diff --git a/gnu/packages/patches/libvirt-CVE-2017-1000256.patch b/gnu/packages/patches/libvirt-CVE-2017-1000256.patch
new file mode 100644
index 0000000000..d577e1eb50
--- /dev/null
+++ b/gnu/packages/patches/libvirt-CVE-2017-1000256.patch
@@ -0,0 +1,84 @@
+Fix CVE-2017-1000256:
+
+https://security.libvirt.org/2017/0002.html
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-1000256
+
+Patch copied from upstream source repository:
+
+https://libvirt.org/git/?p=libvirt.git;a=commit;h=dc6c41798d1eb5c52c75365ffa22f7672709dfa7
+
+From dc6c41798d1eb5c52c75365ffa22f7672709dfa7 Mon Sep 17 00:00:00 2001
+From: Daniel P. Berrange <berrange@redhat.com>
+Date: Thu, 5 Oct 2017 17:54:28 +0100
+Subject: [PATCH] qemu: ensure TLS clients always verify the server certificate
+
+The default_tls_x509_verify (and related) parameters in qemu.conf
+control whether the QEMU TLS servers request & verify certificates
+from clients. This works as a simple access control system for
+servers by requiring the CA to issue certs to permitted clients.
+This use of client certificates is disabled by default, since it
+requires extra work to issue client certificates.
+
+Unfortunately the code was using this configuration parameter when
+setting up both TLS clients and servers in QEMU. The result was that
+TLS clients for character devices and disk devices had verification
+turned off, meaning they would ignore errors while validating the
+server certificate.
+
+This allows for trivial MITM attacks between client and server,
+as any certificate returned by the attacker will be accepted by
+the client.
+
+This is assigned CVE-2017-1000256 / LSN-2017-0002
+
+Reviewed-by: Eric Blake <eblake@redhat.com>
+Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
+(cherry picked from commit 441d3eb6d1be940a67ce45a286602a967601b157)
+---
+ src/qemu/qemu_command.c | 2 +-
+ .../qemuxml2argv-serial-tcp-tlsx509-chardev.args | 2 +-
+ ...xml2argv-serial-tcp-tlsx509-secret-chardev.args | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
+index 9a27987..ae78cd1 100644
+--- a/src/qemu/qemu_command.c
++++ b/src/qemu/qemu_command.c
+@@ -718,7 +718,7 @@ qemuBuildTLSx509BackendProps(const char *tlspath,
+ if (virJSONValueObjectCreate(propsret,
+ "s:dir", path,
+ "s:endpoint", (isListen ? "server": "client"),
+- "b:verify-peer", verifypeer,
++ "b:verify-peer", (isListen ? verifypeer : true),
+ NULL) < 0)
+ goto cleanup;
+
+diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-chardev.args b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-chardev.args
+index 5aff773..ab5f7e2 100644
+--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-chardev.args
++++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-chardev.args
+@@ -26,7 +26,7 @@ server,nowait \
+ localport=1111 \
+ -device isa-serial,chardev=charserial0,id=serial0 \
+ -object tls-creds-x509,id=objcharserial1_tls0,dir=/etc/pki/libvirt-chardev,\
+-endpoint=client,verify-peer=no \
++endpoint=client,verify-peer=yes \
+ -chardev socket,id=charserial1,host=127.0.0.1,port=5555,\
+ tls-creds=objcharserial1_tls0 \
+ -device isa-serial,chardev=charserial1,id=serial1 \
+diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-secret-chardev.args b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-secret-chardev.args
+index 91f1fe0..2567abb 100644
+--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-secret-chardev.args
++++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-tlsx509-secret-chardev.args
+@@ -31,7 +31,7 @@ localport=1111 \
+ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\
+ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \
+ -object tls-creds-x509,id=objcharserial1_tls0,dir=/etc/pki/libvirt-chardev,\
+-endpoint=client,verify-peer=no,passwordid=charserial1-secret0 \
++endpoint=client,verify-peer=yes,passwordid=charserial1-secret0 \
+ -chardev socket,id=charserial1,host=127.0.0.1,port=5555,\
+ tls-creds=objcharserial1_tls0 \
+ -device isa-serial,chardev=charserial1,id=serial1 \
+--
+1.7.1
+
diff --git a/gnu/packages/patches/libxml2-CVE-2016-4658.patch b/gnu/packages/patches/libxml2-CVE-2016-4658.patch
deleted file mode 100644
index a4e1f31fae..0000000000
--- a/gnu/packages/patches/libxml2-CVE-2016-4658.patch
+++ /dev/null
@@ -1,257 +0,0 @@
-Fix CVE-2016-4658:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-4658
-
-Patch copied from upstream source repository:
-
-https://git.gnome.org/browse/libxml2/commit/?id=c1d1f7121194036608bf555f08d3062a36fd344b
-
-From c1d1f7121194036608bf555f08d3062a36fd344b Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Tue, 28 Jun 2016 18:34:52 +0200
-Subject: [PATCH] Disallow namespace nodes in XPointer ranges
-
-Namespace nodes must be copied to avoid use-after-free errors.
-But they don't necessarily have a physical representation in a
-document, so simply disallow them in XPointer ranges.
-
-Found with afl-fuzz.
-
-Fixes CVE-2016-4658.
----
- xpointer.c | 149 +++++++++++++++++++++++--------------------------------------
- 1 file changed, 56 insertions(+), 93 deletions(-)
-
-diff --git a/xpointer.c b/xpointer.c
-index a7b03fbd..694d120e 100644
---- a/xpointer.c
-+++ b/xpointer.c
-@@ -320,6 +320,45 @@ xmlXPtrRangesEqual(xmlXPathObjectPtr range1, xmlXPathObjectPtr range2) {
- }
-
- /**
-+ * xmlXPtrNewRangeInternal:
-+ * @start: the starting node
-+ * @startindex: the start index
-+ * @end: the ending point
-+ * @endindex: the ending index
-+ *
-+ * Internal function to create a new xmlXPathObjectPtr of type range
-+ *
-+ * Returns the newly created object.
-+ */
-+static xmlXPathObjectPtr
-+xmlXPtrNewRangeInternal(xmlNodePtr start, int startindex,
-+ xmlNodePtr end, int endindex) {
-+ xmlXPathObjectPtr ret;
-+
-+ /*
-+ * Namespace nodes must be copied (see xmlXPathNodeSetDupNs).
-+ * Disallow them for now.
-+ */
-+ if ((start != NULL) && (start->type == XML_NAMESPACE_DECL))
-+ return(NULL);
-+ if ((end != NULL) && (end->type == XML_NAMESPACE_DECL))
-+ return(NULL);
-+
-+ ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
-+ if (ret == NULL) {
-+ xmlXPtrErrMemory("allocating range");
-+ return(NULL);
-+ }
-+ memset(ret, 0, sizeof(xmlXPathObject));
-+ ret->type = XPATH_RANGE;
-+ ret->user = start;
-+ ret->index = startindex;
-+ ret->user2 = end;
-+ ret->index2 = endindex;
-+ return(ret);
-+}
-+
-+/**
- * xmlXPtrNewRange:
- * @start: the starting node
- * @startindex: the start index
-@@ -344,17 +383,7 @@ xmlXPtrNewRange(xmlNodePtr start, int startindex,
- if (endindex < 0)
- return(NULL);
-
-- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
-- if (ret == NULL) {
-- xmlXPtrErrMemory("allocating range");
-- return(NULL);
-- }
-- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
-- ret->type = XPATH_RANGE;
-- ret->user = start;
-- ret->index = startindex;
-- ret->user2 = end;
-- ret->index2 = endindex;
-+ ret = xmlXPtrNewRangeInternal(start, startindex, end, endindex);
- xmlXPtrRangeCheckOrder(ret);
- return(ret);
- }
-@@ -381,17 +410,8 @@ xmlXPtrNewRangePoints(xmlXPathObjectPtr start, xmlXPathObjectPtr end) {
- if (end->type != XPATH_POINT)
- return(NULL);
-
-- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
-- if (ret == NULL) {
-- xmlXPtrErrMemory("allocating range");
-- return(NULL);
-- }
-- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
-- ret->type = XPATH_RANGE;
-- ret->user = start->user;
-- ret->index = start->index;
-- ret->user2 = end->user;
-- ret->index2 = end->index;
-+ ret = xmlXPtrNewRangeInternal(start->user, start->index, end->user,
-+ end->index);
- xmlXPtrRangeCheckOrder(ret);
- return(ret);
- }
-@@ -416,17 +436,7 @@ xmlXPtrNewRangePointNode(xmlXPathObjectPtr start, xmlNodePtr end) {
- if (start->type != XPATH_POINT)
- return(NULL);
-
-- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
-- if (ret == NULL) {
-- xmlXPtrErrMemory("allocating range");
-- return(NULL);
-- }
-- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
-- ret->type = XPATH_RANGE;
-- ret->user = start->user;
-- ret->index = start->index;
-- ret->user2 = end;
-- ret->index2 = -1;
-+ ret = xmlXPtrNewRangeInternal(start->user, start->index, end, -1);
- xmlXPtrRangeCheckOrder(ret);
- return(ret);
- }
-@@ -453,17 +463,7 @@ xmlXPtrNewRangeNodePoint(xmlNodePtr start, xmlXPathObjectPtr end) {
- if (end->type != XPATH_POINT)
- return(NULL);
-
-- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
-- if (ret == NULL) {
-- xmlXPtrErrMemory("allocating range");
-- return(NULL);
-- }
-- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
-- ret->type = XPATH_RANGE;
-- ret->user = start;
-- ret->index = -1;
-- ret->user2 = end->user;
-- ret->index2 = end->index;
-+ ret = xmlXPtrNewRangeInternal(start, -1, end->user, end->index);
- xmlXPtrRangeCheckOrder(ret);
- return(ret);
- }
-@@ -486,17 +486,7 @@ xmlXPtrNewRangeNodes(xmlNodePtr start, xmlNodePtr end) {
- if (end == NULL)
- return(NULL);
-
-- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
-- if (ret == NULL) {
-- xmlXPtrErrMemory("allocating range");
-- return(NULL);
-- }
-- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
-- ret->type = XPATH_RANGE;
-- ret->user = start;
-- ret->index = -1;
-- ret->user2 = end;
-- ret->index2 = -1;
-+ ret = xmlXPtrNewRangeInternal(start, -1, end, -1);
- xmlXPtrRangeCheckOrder(ret);
- return(ret);
- }
-@@ -516,17 +506,7 @@ xmlXPtrNewCollapsedRange(xmlNodePtr start) {
- if (start == NULL)
- return(NULL);
-
-- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
-- if (ret == NULL) {
-- xmlXPtrErrMemory("allocating range");
-- return(NULL);
-- }
-- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
-- ret->type = XPATH_RANGE;
-- ret->user = start;
-- ret->index = -1;
-- ret->user2 = NULL;
-- ret->index2 = -1;
-+ ret = xmlXPtrNewRangeInternal(start, -1, NULL, -1);
- return(ret);
- }
-
-@@ -541,6 +521,8 @@ xmlXPtrNewCollapsedRange(xmlNodePtr start) {
- */
- xmlXPathObjectPtr
- xmlXPtrNewRangeNodeObject(xmlNodePtr start, xmlXPathObjectPtr end) {
-+ xmlNodePtr endNode;
-+ int endIndex;
- xmlXPathObjectPtr ret;
-
- if (start == NULL)
-@@ -549,7 +531,12 @@ xmlXPtrNewRangeNodeObject(xmlNodePtr start, xmlXPathObjectPtr end) {
- return(NULL);
- switch (end->type) {
- case XPATH_POINT:
-+ endNode = end->user;
-+ endIndex = end->index;
-+ break;
- case XPATH_RANGE:
-+ endNode = end->user2;
-+ endIndex = end->index2;
- break;
- case XPATH_NODESET:
- /*
-@@ -557,39 +544,15 @@ xmlXPtrNewRangeNodeObject(xmlNodePtr start, xmlXPathObjectPtr end) {
- */
- if (end->nodesetval->nodeNr <= 0)
- return(NULL);
-+ endNode = end->nodesetval->nodeTab[end->nodesetval->nodeNr - 1];
-+ endIndex = -1;
- break;
- default:
- /* TODO */
- return(NULL);
- }
-
-- ret = (xmlXPathObjectPtr) xmlMalloc(sizeof(xmlXPathObject));
-- if (ret == NULL) {
-- xmlXPtrErrMemory("allocating range");
-- return(NULL);
-- }
-- memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
-- ret->type = XPATH_RANGE;
-- ret->user = start;
-- ret->index = -1;
-- switch (end->type) {
-- case XPATH_POINT:
-- ret->user2 = end->user;
-- ret->index2 = end->index;
-- break;
-- case XPATH_RANGE:
-- ret->user2 = end->user2;
-- ret->index2 = end->index2;
-- break;
-- case XPATH_NODESET: {
-- ret->user2 = end->nodesetval->nodeTab[end->nodesetval->nodeNr - 1];
-- ret->index2 = -1;
-- break;
-- }
-- default:
-- STRANGE
-- return(NULL);
-- }
-+ ret = xmlXPtrNewRangeInternal(start, -1, endNode, endIndex);
- xmlXPtrRangeCheckOrder(ret);
- return(ret);
- }
---
-2.11.0
-
diff --git a/gnu/packages/patches/libxml2-CVE-2016-5131.patch b/gnu/packages/patches/libxml2-CVE-2016-5131.patch
deleted file mode 100644
index 38938c8e3e..0000000000
--- a/gnu/packages/patches/libxml2-CVE-2016-5131.patch
+++ /dev/null
@@ -1,218 +0,0 @@
-Fix CVE-2016-5131:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5131
-
-Patches copied from upstream source repository (the test suite fails
-without the 2nd patch):
-
-https://git.gnome.org/browse/libxml2/commit/?id=9ab01a277d71f54d3143c2cf333c5c2e9aaedd9e
-https://git.gnome.org/browse/libxml2/commit/?id=a005199330b86dada19d162cae15ef9bdcb6baa8
-
-From 9ab01a277d71f54d3143c2cf333c5c2e9aaedd9e Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Tue, 28 Jun 2016 14:22:23 +0200
-Subject: [PATCH] Fix XPointer paths beginning with range-to
-
-The old code would invoke the broken xmlXPtrRangeToFunction. range-to
-isn't really a function but a special kind of location step. Remove
-this function and always handle range-to in the XPath code.
-
-The old xmlXPtrRangeToFunction could also be abused to trigger a
-use-after-free error with the potential for remote code execution.
-
-Found with afl-fuzz.
-
-Fixes CVE-2016-5131.
----
- result/XPath/xptr/vidbase | 13 ++++++++
- test/XPath/xptr/vidbase | 1 +
- xpath.c | 7 ++++-
- xpointer.c | 76 ++++-------------------------------------------
- 4 files changed, 26 insertions(+), 71 deletions(-)
-
-diff --git a/result/XPath/xptr/vidbase b/result/XPath/xptr/vidbase
-index 8b9e92d6..f19193e7 100644
---- a/result/XPath/xptr/vidbase
-+++ b/result/XPath/xptr/vidbase
-@@ -17,3 +17,16 @@ Object is a Location Set:
- To node
- ELEMENT p
-
-+
-+========================
-+Expression: xpointer(range-to(id('chapter2')))
-+Object is a Location Set:
-+1 : Object is a range :
-+ From node
-+ /
-+ To node
-+ ELEMENT chapter
-+ ATTRIBUTE id
-+ TEXT
-+ content=chapter2
-+
-diff --git a/test/XPath/xptr/vidbase b/test/XPath/xptr/vidbase
-index b1463830..884b1065 100644
---- a/test/XPath/xptr/vidbase
-+++ b/test/XPath/xptr/vidbase
-@@ -1,2 +1,3 @@
- xpointer(id('chapter1')/p)
- xpointer(id('chapter1')/p[1]/range-to(following-sibling::p[2]))
-+xpointer(range-to(id('chapter2')))
-diff --git a/xpath.c b/xpath.c
-index d992841e..5a01b1b3 100644
---- a/xpath.c
-+++ b/xpath.c
-@@ -10691,13 +10691,18 @@ xmlXPathCompPathExpr(xmlXPathParserContextPtr ctxt) {
- lc = 1;
- break;
- } else if ((NXT(len) == '(')) {
-- /* Note Type or Function */
-+ /* Node Type or Function */
- if (xmlXPathIsNodeType(name)) {
- #ifdef DEBUG_STEP
- xmlGenericError(xmlGenericErrorContext,
- "PathExpr: Type search\n");
- #endif
- lc = 1;
-+#ifdef LIBXML_XPTR_ENABLED
-+ } else if (ctxt->xptr &&
-+ xmlStrEqual(name, BAD_CAST "range-to")) {
-+ lc = 1;
-+#endif
- } else {
- #ifdef DEBUG_STEP
- xmlGenericError(xmlGenericErrorContext,
-diff --git a/xpointer.c b/xpointer.c
-index 676c5105..d74174a3 100644
---- a/xpointer.c
-+++ b/xpointer.c
-@@ -1332,8 +1332,6 @@ xmlXPtrNewContext(xmlDocPtr doc, xmlNodePtr here, xmlNodePtr origin) {
- ret->here = here;
- ret->origin = origin;
-
-- xmlXPathRegisterFunc(ret, (xmlChar *)"range-to",
-- xmlXPtrRangeToFunction);
- xmlXPathRegisterFunc(ret, (xmlChar *)"range",
- xmlXPtrRangeFunction);
- xmlXPathRegisterFunc(ret, (xmlChar *)"range-inside",
-@@ -2243,76 +2241,14 @@ xmlXPtrRangeInsideFunction(xmlXPathParserContextPtr ctxt, int nargs) {
- * @nargs: the number of args
- *
- * Implement the range-to() XPointer function
-+ *
-+ * Obsolete. range-to is not a real function but a special type of location
-+ * step which is handled in xpath.c.
- */
- void
--xmlXPtrRangeToFunction(xmlXPathParserContextPtr ctxt, int nargs) {
-- xmlXPathObjectPtr range;
-- const xmlChar *cur;
-- xmlXPathObjectPtr res, obj;
-- xmlXPathObjectPtr tmp;
-- xmlLocationSetPtr newset = NULL;
-- xmlNodeSetPtr oldset;
-- int i;
--
-- if (ctxt == NULL) return;
-- CHECK_ARITY(1);
-- /*
-- * Save the expression pointer since we will have to evaluate
-- * it multiple times. Initialize the new set.
-- */
-- CHECK_TYPE(XPATH_NODESET);
-- obj = valuePop(ctxt);
-- oldset = obj->nodesetval;
-- ctxt->context->node = NULL;
--
-- cur = ctxt->cur;
-- newset = xmlXPtrLocationSetCreate(NULL);
--
-- for (i = 0; i < oldset->nodeNr; i++) {
-- ctxt->cur = cur;
--
-- /*
-- * Run the evaluation with a node list made of a single item
-- * in the nodeset.
-- */
-- ctxt->context->node = oldset->nodeTab[i];
-- tmp = xmlXPathNewNodeSet(ctxt->context->node);
-- valuePush(ctxt, tmp);
--
-- xmlXPathEvalExpr(ctxt);
-- CHECK_ERROR;
--
-- /*
-- * The result of the evaluation need to be tested to
-- * decided whether the filter succeeded or not
-- */
-- res = valuePop(ctxt);
-- range = xmlXPtrNewRangeNodeObject(oldset->nodeTab[i], res);
-- if (range != NULL) {
-- xmlXPtrLocationSetAdd(newset, range);
-- }
--
-- /*
-- * Cleanup
-- */
-- if (res != NULL)
-- xmlXPathFreeObject(res);
-- if (ctxt->value == tmp) {
-- res = valuePop(ctxt);
-- xmlXPathFreeObject(res);
-- }
--
-- ctxt->context->node = NULL;
-- }
--
-- /*
-- * The result is used as the new evaluation set.
-- */
-- xmlXPathFreeObject(obj);
-- ctxt->context->node = NULL;
-- ctxt->context->contextSize = -1;
-- ctxt->context->proximityPosition = -1;
-- valuePush(ctxt, xmlXPtrWrapLocationSet(newset));
-+xmlXPtrRangeToFunction(xmlXPathParserContextPtr ctxt,
-+ int nargs ATTRIBUTE_UNUSED) {
-+ XP_ERROR(XPATH_EXPR_ERROR);
- }
-
- /**
---
-2.11.0
-
-From a005199330b86dada19d162cae15ef9bdcb6baa8 Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Tue, 28 Jun 2016 14:19:58 +0200
-Subject: [PATCH] Fix comparison with root node in xmlXPathCmpNodes
-
-This change has already been made in xmlXPathCmpNodesExt but not in
-xmlXPathCmpNodes.
----
- xpath.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/xpath.c b/xpath.c
-index 751665b8..d992841e 100644
---- a/xpath.c
-+++ b/xpath.c
-@@ -3342,13 +3342,13 @@ xmlXPathCmpNodes(xmlNodePtr node1, xmlNodePtr node2) {
- * compute depth to root
- */
- for (depth2 = 0, cur = node2;cur->parent != NULL;cur = cur->parent) {
-- if (cur == node1)
-+ if (cur->parent == node1)
- return(1);
- depth2++;
- }
- root = cur;
- for (depth1 = 0, cur = node1;cur->parent != NULL;cur = cur->parent) {
-- if (cur == node2)
-+ if (cur->parent == node2)
- return(-1);
- depth1++;
- }
---
-2.11.0
-
diff --git a/gnu/packages/patches/libxml2-CVE-2017-0663.patch b/gnu/packages/patches/libxml2-CVE-2017-0663.patch
deleted file mode 100644
index b0277a2d23..0000000000
--- a/gnu/packages/patches/libxml2-CVE-2017-0663.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-Fix CVE-2017-0663:
-
-https://bugzilla.gnome.org/show_bug.cgi?id=780228 (not yet public)
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0663
-https://security-tracker.debian.org/tracker/CVE-2017-0663
-
-Patch copied from upstream source repository:
-
-https://git.gnome.org/browse/libxml2/commit/?id=92b9e8c8b3787068565a1820ba575d042f9eec66
-
-From 92b9e8c8b3787068565a1820ba575d042f9eec66 Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Tue, 6 Jun 2017 12:56:28 +0200
-Subject: [PATCH] Fix type confusion in xmlValidateOneNamespace
-
-Comment out code that casts xmlNsPtr to xmlAttrPtr. ID types on
-namespace declarations make no practical sense anyway.
-
-Fixes bug 780228.
-
-Found with libFuzzer and ASan.
----
- valid.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/valid.c b/valid.c
-index 8075d3a0..c51ea290 100644
---- a/valid.c
-+++ b/valid.c
-@@ -4627,6 +4627,12 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) {
- }
- }
-
-+ /*
-+ * Casting ns to xmlAttrPtr is wrong. We'd need separate functions
-+ * xmlAddID and xmlAddRef for namespace declarations, but it makes
-+ * no practical sense to use ID types anyway.
-+ */
-+#if 0
- /* Validity Constraint: ID uniqueness */
- if (attrDecl->atype == XML_ATTRIBUTE_ID) {
- if (xmlAddID(ctxt, doc, value, (xmlAttrPtr) ns) == NULL)
-@@ -4638,6 +4644,7 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) {
- if (xmlAddRef(ctxt, doc, value, (xmlAttrPtr) ns) == NULL)
- ret = 0;
- }
-+#endif
-
- /* Validity Constraint: Notation Attributes */
- if (attrDecl->atype == XML_ATTRIBUTE_NOTATION) {
---
-2.14.1
-
diff --git a/gnu/packages/patches/libxml2-CVE-2017-7375.patch b/gnu/packages/patches/libxml2-CVE-2017-7375.patch
deleted file mode 100644
index 32af1ff6ba..0000000000
--- a/gnu/packages/patches/libxml2-CVE-2017-7375.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-Fix CVE-2017-7375:
-
-https://bugzilla.gnome.org/show_bug.cgi?id=780691 (not yet public)
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7375
-https://security-tracker.debian.org/tracker/CVE-2017-7375
-
-Patch copied from upstream source repository:
-
-https://git.gnome.org/browse/libxml2/commit/?id=90ccb58242866b0ba3edbef8fe44214a101c2b3e
-
-From 90ccb58242866b0ba3edbef8fe44214a101c2b3e Mon Sep 17 00:00:00 2001
-From: Neel Mehta <nmehta@google.com>
-Date: Fri, 7 Apr 2017 17:43:02 +0200
-Subject: [PATCH] Prevent unwanted external entity reference
-
-For https://bugzilla.gnome.org/show_bug.cgi?id=780691
-
-* parser.c: add a specific check to avoid PE reference
----
- parser.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/parser.c b/parser.c
-index 609a2703..c2c812de 100644
---- a/parser.c
-+++ b/parser.c
-@@ -8123,6 +8123,15 @@ xmlParsePEReference(xmlParserCtxtPtr ctxt)
- if (xmlPushInput(ctxt, input) < 0)
- return;
- } else {
-+ if ((entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) &&
-+ ((ctxt->options & XML_PARSE_NOENT) == 0) &&
-+ ((ctxt->options & XML_PARSE_DTDVALID) == 0) &&
-+ ((ctxt->options & XML_PARSE_DTDLOAD) == 0) &&
-+ ((ctxt->options & XML_PARSE_DTDATTR) == 0) &&
-+ (ctxt->replaceEntities == 0) &&
-+ (ctxt->validate == 0))
-+ return;
-+
- /*
- * TODO !!!
- * handle the extra spaces added before and after
---
-2.14.1
-
diff --git a/gnu/packages/patches/libxml2-CVE-2017-7376.patch b/gnu/packages/patches/libxml2-CVE-2017-7376.patch
deleted file mode 100644
index 5b9e45bd83..0000000000
--- a/gnu/packages/patches/libxml2-CVE-2017-7376.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Fix CVE-2017-7376:
-
-https://bugzilla.gnome.org/show_bug.cgi?id=780690 (not yet public)
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7376
-https://security-tracker.debian.org/tracker/CVE-2017-7376
-
-Patch copied from upstream source repository:
-
-https://git.gnome.org/browse/libxml2/commit/?id=5dca9eea1bd4263bfa4d037ab2443de1cd730f7e
-
-From 5dca9eea1bd4263bfa4d037ab2443de1cd730f7e Mon Sep 17 00:00:00 2001
-From: Daniel Veillard <veillard@redhat.com>
-Date: Fri, 7 Apr 2017 17:13:28 +0200
-Subject: [PATCH] Increase buffer space for port in HTTP redirect support
-
-For https://bugzilla.gnome.org/show_bug.cgi?id=780690
-
-nanohttp.c: the code wrongly assumed a short int port value.
----
- nanohttp.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/nanohttp.c b/nanohttp.c
-index e109ad75..373425de 100644
---- a/nanohttp.c
-+++ b/nanohttp.c
-@@ -1423,9 +1423,9 @@ retry:
- if (ctxt->port != 80) {
- /* reserve space for ':xxxxx', incl. potential proxy */
- if (proxy)
-- blen += 12;
-+ blen += 17;
- else
-- blen += 6;
-+ blen += 11;
- }
- bp = (char*)xmlMallocAtomic(blen);
- if ( bp == NULL ) {
---
-2.14.1
-
diff --git a/gnu/packages/patches/libxml2-CVE-2017-9047+CVE-2017-9048.patch b/gnu/packages/patches/libxml2-CVE-2017-9047+CVE-2017-9048.patch
deleted file mode 100644
index 0a0e6d34cf..0000000000
--- a/gnu/packages/patches/libxml2-CVE-2017-9047+CVE-2017-9048.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-Fix CVE-2017-{9047,9048}:
-
-https://bugzilla.gnome.org/show_bug.cgi?id=781333 (not yet public)
-https://bugzilla.gnome.org/show_bug.cgi?id=781701 (not yet public)
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9047
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9048
-http://www.openwall.com/lists/oss-security/2017/05/15/1
-https://security-tracker.debian.org/tracker/CVE-2017-9047
-https://security-tracker.debian.org/tracker/CVE-2017-9048
-
-Patch copied from upstream source repository:
-
-https://git.gnome.org/browse/libxml2/commit/?id=932cc9896ab41475d4aa429c27d9afd175959d74
-
-From 932cc9896ab41475d4aa429c27d9afd175959d74 Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Sat, 3 Jun 2017 02:01:29 +0200
-Subject: [PATCH] Fix buffer size checks in xmlSnprintfElementContent
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-xmlSnprintfElementContent failed to correctly check the available
-buffer space in two locations.
-
-Fixes bug 781333 (CVE-2017-9047) and bug 781701 (CVE-2017-9048).
-
-Thanks to Marcel Böhme and Thuan Pham for the report.
----
- result/valid/781333.xml | 5 +++++
- result/valid/781333.xml.err | 3 +++
- result/valid/781333.xml.err.rdr | 6 ++++++
- test/valid/781333.xml | 4 ++++
- valid.c | 20 +++++++++++---------
- 5 files changed, 29 insertions(+), 9 deletions(-)
- create mode 100644 result/valid/781333.xml
- create mode 100644 result/valid/781333.xml.err
- create mode 100644 result/valid/781333.xml.err.rdr
- create mode 100644 test/valid/781333.xml
-
-diff --git a/result/valid/781333.xml b/result/valid/781333.xml
-new file mode 100644
-index 00000000..45dc451d
---- /dev/null
-+++ b/result/valid/781333.xml
-@@ -0,0 +1,5 @@
-+<?xml version="1.0"?>
-+<!DOCTYPE a [
-+<!ELEMENT a (pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp:llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll)>
-+]>
-+<a/>
-diff --git a/result/valid/781333.xml.err b/result/valid/781333.xml.err
-new file mode 100644
-index 00000000..b401b49a
---- /dev/null
-+++ b/result/valid/781333.xml.err
-@@ -0,0 +1,3 @@
-+./test/valid/781333.xml:4: element a: validity error : Element a content does not follow the DTD, expecting ( ..., got
-+<a/>
-+ ^
-diff --git a/result/valid/781333.xml.err.rdr b/result/valid/781333.xml.err.rdr
-new file mode 100644
-index 00000000..5ff56992
---- /dev/null
-+++ b/result/valid/781333.xml.err.rdr
-@@ -0,0 +1,6 @@
-+./test/valid/781333.xml:4: element a: validity error : Element a content does not follow the DTD, expecting ( ..., got
-+<a/>
-+ ^
-+./test/valid/781333.xml:5: element a: validity error : Element a content does not follow the DTD, Expecting more child
-+
-+^
-diff --git a/test/valid/781333.xml b/test/valid/781333.xml
-new file mode 100644
-index 00000000..b29e5a68
---- /dev/null
-+++ b/test/valid/781333.xml
-@@ -0,0 +1,4 @@
-+<!DOCTYPE a [
-+ <!ELEMENT a (pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp:llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll)>
-+]>
-+<a/>
-diff --git a/valid.c b/valid.c
-index 19f84b82..9b2df56a 100644
---- a/valid.c
-+++ b/valid.c
-@@ -1262,22 +1262,23 @@ xmlSnprintfElementContent(char *buf, int size, xmlElementContentPtr content, int
- case XML_ELEMENT_CONTENT_PCDATA:
- strcat(buf, "#PCDATA");
- break;
-- case XML_ELEMENT_CONTENT_ELEMENT:
-+ case XML_ELEMENT_CONTENT_ELEMENT: {
-+ int qnameLen = xmlStrlen(content->name);
-+
-+ if (content->prefix != NULL)
-+ qnameLen += xmlStrlen(content->prefix) + 1;
-+ if (size - len < qnameLen + 10) {
-+ strcat(buf, " ...");
-+ return;
-+ }
- if (content->prefix != NULL) {
-- if (size - len < xmlStrlen(content->prefix) + 10) {
-- strcat(buf, " ...");
-- return;
-- }
- strcat(buf, (char *) content->prefix);
- strcat(buf, ":");
- }
-- if (size - len < xmlStrlen(content->name) + 10) {
-- strcat(buf, " ...");
-- return;
-- }
- if (content->name != NULL)
- strcat(buf, (char *) content->name);
- break;
-+ }
- case XML_ELEMENT_CONTENT_SEQ:
- if ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||
- (content->c1->type == XML_ELEMENT_CONTENT_SEQ))
-@@ -1319,6 +1320,7 @@ xmlSnprintfElementContent(char *buf, int size, xmlElementContentPtr content, int
- xmlSnprintfElementContent(buf, size, content->c2, 0);
- break;
- }
-+ if (size - strlen(buf) <= 2) return;
- if (englob)
- strcat(buf, ")");
- switch (content->ocur) {
---
-2.14.1
-
diff --git a/gnu/packages/patches/libxml2-CVE-2017-9049+CVE-2017-9050.patch b/gnu/packages/patches/libxml2-CVE-2017-9049+CVE-2017-9050.patch
deleted file mode 100644
index 890e9c2284..0000000000
--- a/gnu/packages/patches/libxml2-CVE-2017-9049+CVE-2017-9050.patch
+++ /dev/null
@@ -1,319 +0,0 @@
-Fix CVE-2017-{9049,9050}:
-
-https://bugzilla.gnome.org/show_bug.cgi?id=781205 (not yet public)
-https://bugzilla.gnome.org/show_bug.cgi?id=781361 (not yet public)
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9049
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9050
-http://www.openwall.com/lists/oss-security/2017/05/15/1
-https://security-tracker.debian.org/tracker/CVE-2017-9049
-https://security-tracker.debian.org/tracker/CVE-2017-9050
-
-Patch copied from upstream source repository:
-
-https://git.gnome.org/browse/libxml2/commit/?id=e26630548e7d138d2c560844c43820b6767251e3
-
-Changes to 'runtest.c' are removed since they introduce test failure
-when applying to libxml2 2.9.4 release tarball.
-
-From e26630548e7d138d2c560844c43820b6767251e3 Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Mon, 5 Jun 2017 15:37:17 +0200
-Subject: [PATCH] Fix handling of parameter-entity references
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-There were two bugs where parameter-entity references could lead to an
-unexpected change of the input buffer in xmlParseNameComplex and
-xmlDictLookup being called with an invalid pointer.
-
-Percent sign in DTD Names
-=========================
-
-The NEXTL macro used to call xmlParserHandlePEReference. When parsing
-"complex" names inside the DTD, this could result in entity expansion
-which created a new input buffer. The fix is to simply remove the call
-to xmlParserHandlePEReference from the NEXTL macro. This is safe because
-no users of the macro require expansion of parameter entities.
-
-- xmlParseNameComplex
-- xmlParseNCNameComplex
-- xmlParseNmtoken
-
-The percent sign is not allowed in names, which are grammatical tokens.
-
-- xmlParseEntityValue
-
-Parameter-entity references in entity values are expanded but this
-happens in a separate step in this function.
-
-- xmlParseSystemLiteral
-
-Parameter-entity references are ignored in the system literal.
-
-- xmlParseAttValueComplex
-- xmlParseCharDataComplex
-- xmlParseCommentComplex
-- xmlParsePI
-- xmlParseCDSect
-
-Parameter-entity references are ignored outside the DTD.
-
-- xmlLoadEntityContent
-
-This function is only called from xmlStringLenDecodeEntities and
-entities are replaced in a separate step immediately after the function
-call.
-
-This bug could also be triggered with an internal subset and double
-entity expansion.
-
-This fixes bug 766956 initially reported by Wei Lei and independently by
-Chromium's ClusterFuzz, Hanno Böck, and Marco Grassi. Thanks to everyone
-involved.
-
-xmlParseNameComplex with XML_PARSE_OLD10
-========================================
-
-When parsing Names inside an expanded parameter entity with the
-XML_PARSE_OLD10 option, xmlParseNameComplex would call xmlGROW via the
-GROW macro if the input buffer was exhausted. At the end of the
-parameter entity's replacement text, this function would then call
-xmlPopInput which invalidated the input buffer.
-
-There should be no need to invoke GROW in this situation because the
-buffer is grown periodically every XML_PARSER_CHUNK_SIZE characters and,
-at least for UTF-8, in xmlCurrentChar. This also matches the code path
-executed when XML_PARSE_OLD10 is not set.
-
-This fixes bugs 781205 (CVE-2017-9049) and 781361 (CVE-2017-9050).
-Thanks to Marcel Böhme and Thuan Pham for the report.
-
-Additional hardening
-====================
-
-A separate check was added in xmlParseNameComplex to validate the
-buffer size.
----
- Makefile.am | 18 ++++++++++++++++++
- parser.c | 18 ++++++++++--------
- result/errors10/781205.xml | 0
- result/errors10/781205.xml.err | 21 +++++++++++++++++++++
- result/errors10/781361.xml | 0
- result/errors10/781361.xml.err | 13 +++++++++++++
- result/valid/766956.xml | 0
- result/valid/766956.xml.err | 9 +++++++++
- result/valid/766956.xml.err.rdr | 10 ++++++++++
- runtest.c | 3 +++
- test/errors10/781205.xml | 3 +++
- test/errors10/781361.xml | 3 +++
- test/valid/766956.xml | 2 ++
- test/valid/dtds/766956.dtd | 2 ++
- 14 files changed, 94 insertions(+), 8 deletions(-)
- create mode 100644 result/errors10/781205.xml
- create mode 100644 result/errors10/781205.xml.err
- create mode 100644 result/errors10/781361.xml
- create mode 100644 result/errors10/781361.xml.err
- create mode 100644 result/valid/766956.xml
- create mode 100644 result/valid/766956.xml.err
- create mode 100644 result/valid/766956.xml.err.rdr
- create mode 100644 test/errors10/781205.xml
- create mode 100644 test/errors10/781361.xml
- create mode 100644 test/valid/766956.xml
- create mode 100644 test/valid/dtds/766956.dtd
-
-diff --git a/Makefile.am b/Makefile.am
-index 6fc8ffa9..10e716a5 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -427,6 +427,24 @@ Errtests : xmllint$(EXEEXT)
- if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
- rm result.$$name error.$$name ; \
- fi ; fi ; done)
-+ @echo "## Error cases regression tests (old 1.0)"
-+ -@(for i in $(srcdir)/test/errors10/*.xml ; do \
-+ name=`basename $$i`; \
-+ if [ ! -d $$i ] ; then \
-+ if [ ! -f $(srcdir)/result/errors10/$$name ] ; then \
-+ echo New test file $$name ; \
-+ $(CHECKER) $(top_builddir)/xmllint --oldxml10 $$i \
-+ 2> $(srcdir)/result/errors10/$$name.err \
-+ > $(srcdir)/result/errors10/$$name ; \
-+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
-+ else \
-+ log=`$(CHECKER) $(top_builddir)/xmllint --oldxml10 $$i 2> error.$$name > result.$$name ; \
-+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
-+ diff $(srcdir)/result/errors10/$$name result.$$name ; \
-+ diff $(srcdir)/result/errors10/$$name.err error.$$name` ; \
-+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
-+ rm result.$$name error.$$name ; \
-+ fi ; fi ; done)
- @echo "## Error cases stream regression tests"
- -@(for i in $(srcdir)/test/errors/*.xml ; do \
- name=`basename $$i`; \
-diff --git a/parser.c b/parser.c
-index df2efa55..a175ac4e 100644
---- a/parser.c
-+++ b/parser.c
-@@ -2121,7 +2121,6 @@ static void xmlGROW (xmlParserCtxtPtr ctxt) {
- ctxt->input->line++; ctxt->input->col = 1; \
- } else ctxt->input->col++; \
- ctxt->input->cur += l; \
-- if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt); \
- } while (0)
-
- #define CUR_CHAR(l) xmlCurrentChar(ctxt, &l)
-@@ -3412,13 +3411,6 @@ xmlParseNameComplex(xmlParserCtxtPtr ctxt) {
- len += l;
- NEXTL(l);
- c = CUR_CHAR(l);
-- if (c == 0) {
-- count = 0;
-- GROW;
-- if (ctxt->instate == XML_PARSER_EOF)
-- return(NULL);
-- c = CUR_CHAR(l);
-- }
- }
- }
- if ((len > XML_MAX_NAME_LENGTH) &&
-@@ -3426,6 +3418,16 @@ xmlParseNameComplex(xmlParserCtxtPtr ctxt) {
- xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "Name");
- return(NULL);
- }
-+ if (ctxt->input->cur - ctxt->input->base < len) {
-+ /*
-+ * There were a couple of bugs where PERefs lead to to a change
-+ * of the buffer. Check the buffer size to avoid passing an invalid
-+ * pointer to xmlDictLookup.
-+ */
-+ xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
-+ "unexpected change of input buffer");
-+ return (NULL);
-+ }
- if ((*ctxt->input->cur == '\n') && (ctxt->input->cur[-1] == '\r'))
- return(xmlDictLookup(ctxt->dict, ctxt->input->cur - (len + 1), len));
- return(xmlDictLookup(ctxt->dict, ctxt->input->cur - len, len));
-diff --git a/result/errors10/781205.xml b/result/errors10/781205.xml
-new file mode 100644
-index 00000000..e69de29b
-diff --git a/result/errors10/781205.xml.err b/result/errors10/781205.xml.err
-new file mode 100644
-index 00000000..da15c3f7
---- /dev/null
-+++ b/result/errors10/781205.xml.err
-@@ -0,0 +1,21 @@
-+Entity: line 1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
-+
-+ %a;
-+ ^
-+Entity: line 1:
-+<:0000
-+^
-+Entity: line 1: parser error : DOCTYPE improperly terminated
-+ %a;
-+ ^
-+Entity: line 1:
-+<:0000
-+^
-+namespace error : Failed to parse QName ':0000'
-+ %a;
-+ ^
-+<:0000
-+ ^
-+./test/errors10/781205.xml:4: parser error : Couldn't find end of Start Tag :0000 line 1
-+
-+^
-diff --git a/result/errors10/781361.xml b/result/errors10/781361.xml
-new file mode 100644
-index 00000000..e69de29b
-diff --git a/result/errors10/781361.xml.err b/result/errors10/781361.xml.err
-new file mode 100644
-index 00000000..655f41a2
---- /dev/null
-+++ b/result/errors10/781361.xml.err
-@@ -0,0 +1,13 @@
-+./test/errors10/781361.xml:4: parser error : xmlParseElementDecl: 'EMPTY', 'ANY' or '(' expected
-+
-+^
-+./test/errors10/781361.xml:4: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
-+
-+
-+^
-+./test/errors10/781361.xml:4: parser error : DOCTYPE improperly terminated
-+
-+^
-+./test/errors10/781361.xml:4: parser error : Start tag expected, '<' not found
-+
-+^
-diff --git a/result/valid/766956.xml b/result/valid/766956.xml
-new file mode 100644
-index 00000000..e69de29b
-diff --git a/result/valid/766956.xml.err b/result/valid/766956.xml.err
-new file mode 100644
-index 00000000..34b1dae6
---- /dev/null
-+++ b/result/valid/766956.xml.err
-@@ -0,0 +1,9 @@
-+test/valid/dtds/766956.dtd:2: parser error : PEReference: expecting ';'
-+%ä%ent;
-+ ^
-+Entity: line 1: parser error : Content error in the external subset
-+ %ent;
-+ ^
-+Entity: line 1:
-+value
-+^
-diff --git a/result/valid/766956.xml.err.rdr b/result/valid/766956.xml.err.rdr
-new file mode 100644
-index 00000000..77603462
---- /dev/null
-+++ b/result/valid/766956.xml.err.rdr
-@@ -0,0 +1,10 @@
-+test/valid/dtds/766956.dtd:2: parser error : PEReference: expecting ';'
-+%ä%ent;
-+ ^
-+Entity: line 1: parser error : Content error in the external subset
-+ %ent;
-+ ^
-+Entity: line 1:
-+value
-+^
-+./test/valid/766956.xml : failed to parse
-diff --git a/test/errors10/781205.xml b/test/errors10/781205.xml
-new file mode 100644
-index 00000000..d9e9e839
---- /dev/null
-+++ b/test/errors10/781205.xml
-@@ -0,0 +1,3 @@
-+<!DOCTYPE D [
-+ <!ENTITY % a "<:0000">
-+ %a;
-diff --git a/test/errors10/781361.xml b/test/errors10/781361.xml
-new file mode 100644
-index 00000000..67476bcb
---- /dev/null
-+++ b/test/errors10/781361.xml
-@@ -0,0 +1,3 @@
-+<!DOCTYPE doc [
-+ <!ENTITY % elem "<!ELEMENT e0000000000">
-+ %elem;
-diff --git a/test/valid/766956.xml b/test/valid/766956.xml
-new file mode 100644
-index 00000000..19a95a0e
---- /dev/null
-+++ b/test/valid/766956.xml
-@@ -0,0 +1,2 @@
-+<!DOCTYPE test SYSTEM "dtds/766956.dtd">
-+<test/>
-diff --git a/test/valid/dtds/766956.dtd b/test/valid/dtds/766956.dtd
-new file mode 100644
-index 00000000..dddde68b
---- /dev/null
-+++ b/test/valid/dtds/766956.dtd
-@@ -0,0 +1,2 @@
-+<!ENTITY % ent "value">
-+%ä%ent;
---
-2.14.1
-
diff --git a/gnu/packages/patches/libxslt-CVE-2016-4738.patch b/gnu/packages/patches/libxslt-CVE-2016-4738.patch
deleted file mode 100644
index a7537c66ca..0000000000
--- a/gnu/packages/patches/libxslt-CVE-2016-4738.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-Fix CVE-2016-4738:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-4738
-https://bugs.chromium.org/p/chromium/issues/detail?id=619006
-
-Patch copied from upstream source repository:
-https://git.gnome.org/browse/libxslt/commit/?id=eb1030de31165b68487f288308f9d1810fed6880
-
-From eb1030de31165b68487f288308f9d1810fed6880 Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Fri, 10 Jun 2016 14:23:58 +0200
-Subject: [PATCH] Fix heap overread in xsltFormatNumberConversion
-
-An empty decimal-separator could cause a heap overread. This can be
-exploited to leak a couple of bytes after the buffer that holds the
-pattern string.
-
-Found with afl-fuzz and ASan.
----
- libxslt/numbers.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/libxslt/numbers.c b/libxslt/numbers.c
-index d1549b4..e78c46b 100644
---- a/libxslt/numbers.c
-+++ b/libxslt/numbers.c
-@@ -1090,7 +1090,8 @@ xsltFormatNumberConversion(xsltDecimalFormatPtr self,
- }
-
- /* We have finished the integer part, now work on fraction */
-- if (xsltUTF8Charcmp(the_format, self->decimalPoint) == 0) {
-+ if ( (*the_format != 0) &&
-+ (xsltUTF8Charcmp(the_format, self->decimalPoint) == 0) ) {
- format_info.add_decimal = TRUE;
- the_format += xsltUTF8Size(the_format); /* Skip over the decimal */
- }
---
-2.10.2
-
diff --git a/gnu/packages/patches/mupdf-CVE-2017-14685.patch b/gnu/packages/patches/mupdf-CVE-2017-14685.patch
new file mode 100644
index 0000000000..3fcce5fedf
--- /dev/null
+++ b/gnu/packages/patches/mupdf-CVE-2017-14685.patch
@@ -0,0 +1,34 @@
+Fix CVE-2017-14685:
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14685
+
+Patch copied from upstream source repository:
+
+https://git.ghostscript.com/?p=mupdf.git;h=ab1a420613dec93c686acbee2c165274e922f82a
+
+From ab1a420613dec93c686acbee2c165274e922f82a Mon Sep 17 00:00:00 2001
+From: Tor Andersson <tor.andersson@artifex.com>
+Date: Tue, 19 Sep 2017 15:23:04 +0200
+Subject: [PATCH] Fix 698539: Don't use xps font if it could not be loaded.
+
+xps_load_links_in_glyphs did not cope with font loading failures.
+---
+ source/xps/xps-link.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/source/xps/xps-link.c b/source/xps/xps-link.c
+index c07e0d7..c26a8d9 100644
+--- a/source/xps/xps-link.c
++++ b/source/xps/xps-link.c
+@@ -91,6 +91,8 @@ xps_load_links_in_glyphs(fz_context *ctx, xps_document *doc, const fz_matrix *ct
+ bidi_level = atoi(bidi_level_att);
+
+ font = xps_lookup_font(ctx, doc, base_uri, font_uri_att, style_att);
++ if (!font)
++ return;
+ text = xps_parse_glyphs_imp(ctx, doc, &local_ctm, font, fz_atof(font_size_att),
+ fz_atof(origin_x_att), fz_atof(origin_y_att),
+ is_sideways, bidi_level, indices_att, unicode_att);
+--
+2.9.1
+
diff --git a/gnu/packages/patches/mupdf-CVE-2017-14686.patch b/gnu/packages/patches/mupdf-CVE-2017-14686.patch
new file mode 100644
index 0000000000..e462a6ffeb
--- /dev/null
+++ b/gnu/packages/patches/mupdf-CVE-2017-14686.patch
@@ -0,0 +1,34 @@
+Fix CVE-2017-14686:
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14686
+
+Patch copied from upstream source repository:
+
+https://git.ghostscript.com/?p=mupdf.git;h=0f0fbc07d9be31f5e83ec5328d7311fdfd8328b1
+
+From 0f0fbc07d9be31f5e83ec5328d7311fdfd8328b1 Mon Sep 17 00:00:00 2001
+From: Tor Andersson <tor.andersson@artifex.com>
+Date: Tue, 19 Sep 2017 16:33:38 +0200
+Subject: [PATCH] Fix 698540: Check name, comment and meta size field signs.
+
+---
+ source/fitz/unzip.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/source/fitz/unzip.c b/source/fitz/unzip.c
+index f2d4f32..0bcce0f 100644
+--- a/source/fitz/unzip.c
++++ b/source/fitz/unzip.c
+@@ -141,6 +141,9 @@ static void read_zip_dir_imp(fz_context *ctx, fz_zip_archive *zip, int start_off
+ (void) fz_read_int32_le(ctx, file); /* ext file atts */
+ offset = fz_read_int32_le(ctx, file);
+
++ if (namesize < 0 || metasize < 0 || commentsize < 0)
++ fz_throw(ctx, FZ_ERROR_GENERIC, "invalid size in zip entry");
++
+ name = fz_malloc(ctx, namesize + 1);
+ n = fz_read(ctx, file, (unsigned char*)name, namesize);
+ if (n < (size_t)namesize)
+--
+2.9.1
+
diff --git a/gnu/packages/patches/mupdf-CVE-2017-14687.patch b/gnu/packages/patches/mupdf-CVE-2017-14687.patch
new file mode 100644
index 0000000000..cdc41df813
--- /dev/null
+++ b/gnu/packages/patches/mupdf-CVE-2017-14687.patch
@@ -0,0 +1,130 @@
+Fix CVE-2017-14687:
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14687
+
+Patch copied from upstream source repository:
+
+https://git.ghostscript.com/?p=mupdf.git;h=2b16dbd8f73269cb15ca61ece75cf8d2d196ed28
+
+From 2b16dbd8f73269cb15ca61ece75cf8d2d196ed28 Mon Sep 17 00:00:00 2001
+From: Tor Andersson <tor.andersson@artifex.com>
+Date: Tue, 19 Sep 2017 17:17:12 +0200
+Subject: [PATCH] Fix 698558: Handle non-tags in tag name comparisons.
+
+Use fz_xml_is_tag instead of fz_xml_tag && !strcmp idiom.
+---
+ source/html/css-apply.c | 2 +-
+ source/svg/svg-run.c | 2 +-
+ source/xps/xps-common.c | 6 +++---
+ source/xps/xps-glyphs.c | 2 +-
+ source/xps/xps-path.c | 4 ++--
+ source/xps/xps-resource.c | 2 +-
+ 6 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/source/html/css-apply.c b/source/html/css-apply.c
+index de55490..6a91df0 100644
+--- a/source/html/css-apply.c
++++ b/source/html/css-apply.c
+@@ -328,7 +328,7 @@ match_selector(fz_css_selector *sel, fz_xml *node)
+
+ if (sel->name)
+ {
+- if (strcmp(sel->name, fz_xml_tag(node)))
++ if (!fz_xml_is_tag(node, sel->name))
+ return 0;
+ }
+
+diff --git a/source/svg/svg-run.c b/source/svg/svg-run.c
+index f974c67..5302c64 100644
+--- a/source/svg/svg-run.c
++++ b/source/svg/svg-run.c
+@@ -1044,7 +1044,7 @@ svg_run_use(fz_context *ctx, fz_device *dev, svg_document *doc, fz_xml *root, co
+ fz_xml *linked = fz_tree_lookup(ctx, doc->idmap, xlink_href_att + 1);
+ if (linked)
+ {
+- if (!strcmp(fz_xml_tag(linked), "symbol"))
++ if (fz_xml_is_tag(linked, "symbol"))
+ svg_run_use_symbol(ctx, dev, doc, root, linked, &local_state);
+ else
+ svg_run_element(ctx, dev, doc, linked, &local_state);
+diff --git a/source/xps/xps-common.c b/source/xps/xps-common.c
+index cc7fed9..f2f9b93 100644
+--- a/source/xps/xps-common.c
++++ b/source/xps/xps-common.c
+@@ -47,7 +47,7 @@ xps_parse_brush(fz_context *ctx, xps_document *doc, const fz_matrix *ctm, const
+ else if (fz_xml_is_tag(node, "RadialGradientBrush"))
+ xps_parse_radial_gradient_brush(ctx, doc, ctm, area, base_uri, dict, node);
+ else
+- fz_warn(ctx, "unknown brush tag: %s", fz_xml_tag(node));
++ fz_warn(ctx, "unknown brush tag");
+ }
+
+ void
+@@ -85,7 +85,7 @@ xps_begin_opacity(fz_context *ctx, xps_document *doc, const fz_matrix *ctm, cons
+ if (opacity_att)
+ opacity = fz_atof(opacity_att);
+
+- if (opacity_mask_tag && !strcmp(fz_xml_tag(opacity_mask_tag), "SolidColorBrush"))
++ if (fz_xml_is_tag(opacity_mask_tag, "SolidColorBrush"))
+ {
+ char *scb_opacity_att = fz_xml_att(opacity_mask_tag, "Opacity");
+ char *scb_color_att = fz_xml_att(opacity_mask_tag, "Color");
+@@ -129,7 +129,7 @@ xps_end_opacity(fz_context *ctx, xps_document *doc, char *base_uri, xps_resource
+
+ if (opacity_mask_tag)
+ {
+- if (strcmp(fz_xml_tag(opacity_mask_tag), "SolidColorBrush"))
++ if (!fz_xml_is_tag(opacity_mask_tag, "SolidColorBrush"))
+ fz_pop_clip(ctx, dev);
+ }
+ }
+diff --git a/source/xps/xps-glyphs.c b/source/xps/xps-glyphs.c
+index 29dc5b3..5b26d78 100644
+--- a/source/xps/xps-glyphs.c
++++ b/source/xps/xps-glyphs.c
+@@ -592,7 +592,7 @@ xps_parse_glyphs(fz_context *ctx, xps_document *doc, const fz_matrix *ctm,
+
+ /* If it's a solid color brush fill/stroke do a simple fill */
+
+- if (fill_tag && !strcmp(fz_xml_tag(fill_tag), "SolidColorBrush"))
++ if (fz_xml_is_tag(fill_tag, "SolidColorBrush"))
+ {
+ fill_opacity_att = fz_xml_att(fill_tag, "Opacity");
+ fill_att = fz_xml_att(fill_tag, "Color");
+diff --git a/source/xps/xps-path.c b/source/xps/xps-path.c
+index 6faeb0c..021d202 100644
+--- a/source/xps/xps-path.c
++++ b/source/xps/xps-path.c
+@@ -879,14 +879,14 @@ xps_parse_path(fz_context *ctx, xps_document *doc, const fz_matrix *ctm, char *b
+ if (!data_att && !data_tag)
+ return;
+
+- if (fill_tag && !strcmp(fz_xml_tag(fill_tag), "SolidColorBrush"))
++ if (fz_xml_is_tag(fill_tag, "SolidColorBrush"))
+ {
+ fill_opacity_att = fz_xml_att(fill_tag, "Opacity");
+ fill_att = fz_xml_att(fill_tag, "Color");
+ fill_tag = NULL;
+ }
+
+- if (stroke_tag && !strcmp(fz_xml_tag(stroke_tag), "SolidColorBrush"))
++ if (fz_xml_is_tag(stroke_tag, "SolidColorBrush"))
+ {
+ stroke_opacity_att = fz_xml_att(stroke_tag, "Opacity");
+ stroke_att = fz_xml_att(stroke_tag, "Color");
+diff --git a/source/xps/xps-resource.c b/source/xps/xps-resource.c
+index c2292e6..8e81ab8 100644
+--- a/source/xps/xps-resource.c
++++ b/source/xps/xps-resource.c
+@@ -84,7 +84,7 @@ xps_parse_remote_resource_dictionary(fz_context *ctx, xps_document *doc, char *b
+ if (!xml)
+ return NULL;
+
+- if (strcmp(fz_xml_tag(xml), "ResourceDictionary"))
++ if (!fz_xml_is_tag(xml, "ResourceDictionary"))
+ {
+ fz_drop_xml(ctx, xml);
+ fz_throw(ctx, FZ_ERROR_GENERIC, "expected ResourceDictionary element");
+--
+2.9.1
+
diff --git a/gnu/packages/patches/musl-CVE-2016-8859.patch b/gnu/packages/patches/musl-CVE-2016-8859.patch
deleted file mode 100644
index 7bb5b892dd..0000000000
--- a/gnu/packages/patches/musl-CVE-2016-8859.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-Fix CVE-2016-8859:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8859
-
-Patch copied from upstream source repository:
-
-http://git.musl-libc.org/cgit/musl/commit/?id=c3edc06d1e1360f3570db9155d6b318ae0d0f0f7
-
-From c3edc06d1e1360f3570db9155d6b318ae0d0f0f7 Mon Sep 17 00:00:00 2001
-From: Rich Felker <dalias@aerifal.cx>
-Date: Thu, 6 Oct 2016 18:34:58 -0400
-Subject: [PATCH] fix missing integer overflow checks in regexec buffer size
- computations
-
-most of the possible overflows were already ruled out in practice by
-regcomp having already succeeded performing larger allocations.
-however at least the num_states*num_tags multiplication can clearly
-overflow in practice. for safety, check them all, and use the proper
-type, size_t, rather than int.
-
-also improve comments, use calloc in place of malloc+memset, and
-remove bogus casts.
----
- src/regex/regexec.c | 23 ++++++++++++++++++-----
- 1 file changed, 18 insertions(+), 5 deletions(-)
-
-diff --git a/src/regex/regexec.c b/src/regex/regexec.c
-index 16c5d0a..dd52319 100644
---- a/src/regex/regexec.c
-+++ b/src/regex/regexec.c
-@@ -34,6 +34,7 @@
- #include <wchar.h>
- #include <wctype.h>
- #include <limits.h>
-+#include <stdint.h>
-
- #include <regex.h>
-
-@@ -206,11 +207,24 @@ tre_tnfa_run_parallel(const tre_tnfa_t *tnfa, const void *string,
-
- /* Allocate memory for temporary data required for matching. This needs to
- be done for every matching operation to be thread safe. This allocates
-- everything in a single large block from the stack frame using alloca()
-- or with malloc() if alloca is unavailable. */
-+ everything in a single large block with calloc(). */
- {
-- int tbytes, rbytes, pbytes, xbytes, total_bytes;
-+ size_t tbytes, rbytes, pbytes, xbytes, total_bytes;
- char *tmp_buf;
-+
-+ /* Ensure that tbytes and xbytes*num_states cannot overflow, and that
-+ * they don't contribute more than 1/8 of SIZE_MAX to total_bytes. */
-+ if (num_tags > SIZE_MAX/(8 * sizeof(int) * tnfa->num_states))
-+ goto error_exit;
-+
-+ /* Likewise check rbytes. */
-+ if (tnfa->num_states+1 > SIZE_MAX/(8 * sizeof(*reach_next)))
-+ goto error_exit;
-+
-+ /* Likewise check pbytes. */
-+ if (tnfa->num_states > SIZE_MAX/(8 * sizeof(*reach_pos)))
-+ goto error_exit;
-+
- /* Compute the length of the block we need. */
- tbytes = sizeof(*tmp_tags) * num_tags;
- rbytes = sizeof(*reach_next) * (tnfa->num_states + 1);
-@@ -221,10 +235,9 @@ tre_tnfa_run_parallel(const tre_tnfa_t *tnfa, const void *string,
- + (rbytes + xbytes * tnfa->num_states) * 2 + tbytes + pbytes;
-
- /* Allocate the memory. */
-- buf = xmalloc((unsigned)total_bytes);
-+ buf = calloc(total_bytes, 1);
- if (buf == NULL)
- return REG_ESPACE;
-- memset(buf, 0, (size_t)total_bytes);
-
- /* Get the various pointers within tmp_buf (properly aligned). */
- tmp_tags = (void *)buf;
---
-2.10.1
-
diff --git a/gnu/packages/patches/pcre-CVE-2017-7186.patch b/gnu/packages/patches/pcre-CVE-2017-7186.patch
deleted file mode 100644
index d23aa10374..0000000000
--- a/gnu/packages/patches/pcre-CVE-2017-7186.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-Patch for <https://nvd.nist.gov/vuln/detail?vulnId=CVE-2017-7186>
-from <https://vcs.pcre.org/pcre?view=revision&revision=1688>.
-
---- trunk/pcre_internal.h 2016/05/21 13:34:44 1649
-+++ trunk/pcre_internal.h 2017/02/24 17:30:30 1688
-@@ -2772,6 +2772,9 @@
- extern const pcre_uint16 PRIV(ucd_stage2)[];
- extern const pcre_uint32 PRIV(ucp_gentype)[];
- extern const pcre_uint32 PRIV(ucp_gbtable)[];
-+#ifdef COMPILE_PCRE32
-+extern const ucd_record PRIV(dummy_ucd_record)[];
-+#endif
- #ifdef SUPPORT_JIT
- extern const int PRIV(ucp_typerange)[];
- #endif
-@@ -2780,9 +2783,15 @@
- /* UCD access macros */
-
- #define UCD_BLOCK_SIZE 128
--#define GET_UCD(ch) (PRIV(ucd_records) + \
-+#define REAL_GET_UCD(ch) (PRIV(ucd_records) + \
- PRIV(ucd_stage2)[PRIV(ucd_stage1)[(int)(ch) / UCD_BLOCK_SIZE] * \
- UCD_BLOCK_SIZE + (int)(ch) % UCD_BLOCK_SIZE])
-+
-+#ifdef COMPILE_PCRE32
-+#define GET_UCD(ch) ((ch > 0x10ffff)? PRIV(dummy_ucd_record) : REAL_GET_UCD(ch))
-+#else
-+#define GET_UCD(ch) REAL_GET_UCD(ch)
-+#endif
-
- #define UCD_CHARTYPE(ch) GET_UCD(ch)->chartype
- #define UCD_SCRIPT(ch) GET_UCD(ch)->script
-
---- trunk/pcre_ucd.c 2014/06/19 07:51:39 1490
-+++ trunk/pcre_ucd.c 2017/02/24 17:30:30 1688
-@@ -38,6 +38,20 @@
- const pcre_uint32 PRIV(ucd_caseless_sets)[] = {0};
- #else
-
-+/* If the 32-bit library is run in non-32-bit mode, character values
-+greater than 0x10ffff may be encountered. For these we set up a
-+special record. */
-+
-+#ifdef COMPILE_PCRE32
-+const ucd_record PRIV(dummy_ucd_record)[] = {{
-+ ucp_Common, /* script */
-+ ucp_Cn, /* type unassigned */
-+ ucp_gbOther, /* grapheme break property */
-+ 0, /* case set */
-+ 0, /* other case */
-+ }};
-+#endif
-+
- /* When recompiling tables with a new Unicode version, please check the
- types in this structure definition from pcre_internal.h (the actual
- field names will be different):
diff --git a/gnu/packages/patchutils.scm b/gnu/packages/patchutils.scm
index f527231aa8..1e4b3fbd1c 100644
--- a/gnu/packages/patchutils.scm
+++ b/gnu/packages/patchutils.scm
@@ -171,7 +171,7 @@ refreshed, and more.")
(inputs
`(("perl" ,perl)
("xmlto" ,xmlto)))
- (home-page "http://www.colordiff.org")
+ (home-page "https://www.colordiff.org")
(synopsis "Display diff output with colors")
(description
"Colordiff is Perl script wrapper on top of diff command which provides
diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm
index 574ae4a6ba..c84f07cc7e 100644
--- a/gnu/packages/pcre.scm
+++ b/gnu/packages/pcre.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -33,8 +34,7 @@
(define-public pcre
(package
(name "pcre")
- (version "8.40")
- (replacement pcre-8.41)
+ (version "8.41")
(source (origin
(method url-fetch)
(uri (list
@@ -43,10 +43,9 @@
"pcre-" version ".tar.bz2")
(string-append "mirror://sourceforge/pcre/pcre/"
version "/pcre-" version ".tar.bz2")))
- (patches (search-patches "pcre-CVE-2017-7186.patch"))
(sha256
(base32
- "1x7lpjn7jhk0n3sdvggxrlrhab8kkfjwl7qix0ypw9nlx8lpmqh0"))))
+ "0c5m469p5pd7jip621ipq6hbgh7128lzh7xndllfgh77ban7wb76"))))
(build-system gnu-build-system)
(outputs '("out" ;library & headers
"bin" ;depends on Readline (adds 20MiB to the closure)
@@ -73,21 +72,6 @@ POSIX regular expression API.")
(license license:bsd-3)
(home-page "http://www.pcre.org/")))
-(define pcre-8.41
- (package
- (inherit pcre)
- (version "8.41")
- (source (origin
- (method url-fetch)
- (uri (list (string-append "mirror://sourceforge/pcre/pcre/"
- version "/pcre-" version ".tar.bz2")
- (string-append "ftp://ftp.csx.cam.ac.uk"
- "/pub/software/programming/pcre/"
- "pcre-" version ".tar.bz2")))
- (sha256
- (base32
- "0c5m469p5pd7jip621ipq6hbgh7128lzh7xndllfgh77ban7wb76"))))))
-
(define-public pcre2
(package
(name "pcre2")
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 56f5486791..f3df7c1045 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -7,7 +7,7 @@
;;; Coypright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; Coypright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Coypright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
-;;; Coypright © 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Coypright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Coypright © 2016 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
@@ -413,6 +413,41 @@ using libspectre.")
using the DjVuLibre library.")
(license license:zlib)))
+(define-public zathura-pdf-mupdf
+ (package
+ (name "zathura-pdf-mupdf")
+ (version "0.3.1")
+ (source (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://pwmt.org/projects/zathura-pdf-mupdf"
+ "/download/zathura-pdf-mupdf-" version ".tar.gz"))
+ (sha256
+ (base32
+ "06zqn8z6a0hfsx3s1kzqvqzb73afgcl6z5r062sxv7kv570fvffr"))))
+ (native-inputs `(("pkg-config" ,pkg-config)))
+ (propagated-inputs `(("girara" ,girara)))
+ (inputs
+ `(("gtk+" ,gtk+)
+ ("jbig2dec" ,jbig2dec)
+ ("libjpeg" ,libjpeg)
+ ("mupdf" ,mupdf)
+ ("openjpeg" ,openjpeg)
+ ("openssl" ,openssl)
+ ("zathura" ,zathura)))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags (list (string-append "PREFIX=" %output)
+ (string-append "PLUGINDIR=" %output "/lib/zathura")
+ "CC=gcc")
+ #:tests? #f ;No tests.
+ #:phases (modify-phases %standard-phases (delete 'configure))))
+ (home-page "https://pwmt.org/projects/zathura-pdf-mupdf/")
+ (synopsis "PDF support for zathura (mupdf backend)")
+ (description "The zathura-pdf-mupdf plugin adds PDF support to zathura
+by using the @code{mupdf} rendering library.")
+ (license license:zlib)))
+
(define-public zathura-pdf-poppler
(package
(name "zathura-pdf-poppler")
@@ -541,6 +576,9 @@ extracting content or merging files.")
(base32
"02phamcchgsmvjnb3ir7r5sssvx9fcrscn297z73b82n1jl79510"))
(patches (search-patches "mupdf-build-with-openjpeg-2.1.patch"
+ "mupdf-CVE-2017-14685.patch"
+ "mupdf-CVE-2017-14686.patch"
+ "mupdf-CVE-2017-14687.patch"
"mupdf-CVE-2017-15587.patch"))
(modules '((guix build utils)))
(snippet
@@ -712,7 +750,7 @@ vector formats.")
(build-system python-build-system)
;; TODO: Add dependency on pdftk.
- (inputs `(("python-pygame" ,python-pygame)
+ (inputs `(("python2-pygame" ,python2-pygame)
("python2-pillow" ,python2-pillow)
("sdl" ,sdl)
("xpdf" ,xpdf)))
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 494914254e..044f93e818 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -17,6 +17,7 @@
;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -40,6 +41,7 @@
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
+ #:use-module (gnu packages base)
#:use-module (gnu packages perl-web)
#:use-module (gnu packages pkg-config))
@@ -52,14 +54,14 @@
;; Yeah, Perl... It is required early in the bootstrap process by Linux.
(package
(name "perl")
- (version "5.26.0")
+ (version "5.26.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cpan/src/5.0/perl-"
version ".tar.gz"))
(sha256
(base32
- "0zxn9hd7mqgq06ikyi6k70ngbvjf01z1paw0jd25byyl0rlwdrzb"))
+ "1p81wwvr5jb81m41d07kfywk5gvbk0axdrnvhc2aghcdbr4alqz7"))
(patches (search-patches
"perl-file-path-CVE-2017-6512.patch"
"perl-no-sys-dirs.patch"
@@ -380,6 +382,27 @@ fields pragma, consider this module discouraged in favor of the lighter-weight
parent.")
(license (package-license perl)))) ;See README
+(define-public perl-browser-open
+ (package
+ (name "perl-browser-open")
+ (version "0.04")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/C/CF/CFRANKS/Browser-Open-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0rv80n5ihy9vnrzsc3l7wlk8880cwabiljrydrdnxq1gg0lk3sxc"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/Browser-Open/")
+ (synopsis "Open a browser in a given URL")
+ (description "The functions exported by this module allow you to open URLs
+in the user's browser. A set of known commands per OS-name is tested for
+presence, and the first one found is executed. With an optional parameter,
+all known commands are checked.")
+ (license (package-license perl))))
+
(define-public perl-b-hooks-endofscope
(package
(name "perl-b-hooks-endofscope")
@@ -404,6 +427,28 @@ parent.")
compiling the surrounding scope.")
(license (package-license perl))))
+(define-public perl-b-keywords
+ (package
+ (name "perl-b-keywords")
+ (version "1.15")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/R/RU/RURBAN/B-Keywords-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1nhdplmd0y69lnwyajg3anhk6pm13nm6qzm05nzpz8zl7j7fzlk5"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/B-Keywords/")
+ (synopsis "Lists of reserved barewords and symbol names")
+ (description "@code{B::Keywords} supplies several arrays of exportable
+keywords: @code{@@Scalars, @@Arrays, @@Hashes, @@Filehandles, @@Symbols,
+@@Functions, @@Barewords, @@TieIOMethods, @@UNIVERSALMethods and
+@@ExporterSymbols}.")
+ ;; GPLv2 only
+ (license gpl2)))
+
(define-public perl-benchmark-timer
(package
(name "perl-benchmark-timer")
@@ -647,6 +692,28 @@ is captured while being passed through to the original file handles.")
to test the installed perl for compatibility with his modules.")
(license (package-license perl))))
+(define-public perl-carp-always
+ (package
+ (name "perl-carp-always")
+ (version "0.13")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/F/FE/FERREIRA/Carp-Always-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0i2rifkr7ybfcdsqana52487z7vxp2l5qdra0f6ik0ddhn6rzii1"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-test-base" ,perl-test-base)))
+ (home-page "http://search.cpan.org/dist/Carp-Always")
+ (synopsis "Warns and dies noisily with stack backtraces/")
+ (description "This module is meant as a debugging aid. It can be used to
+make a script complain loudly with stack backtraces when @code{warn()}-ing or
+@code{die()}ing.")
+ (license (package-license perl))))
+
(define-public perl-carp-assert
(package
(name "perl-carp-assert")
@@ -1179,6 +1246,27 @@ objects.")
"Clone-" version "/"))
(license (package-license perl))))
+(define-public perl-clone-pp
+ (package
+ (name "perl-clone-pp")
+ (version "1.07")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/Clone-PP-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "15dkhqvih6rx9dnngfwwljcm9s8afb0nbyl2vdvhd8frnw4y31dz"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/Clone-PP/")
+ (synopsis "Recursively copy Perl datatypes")
+ (description "This module provides a general-purpose @code{clone} function
+to make deep copies of Perl data structures. It calls itself recursively to
+copy nested hash, array, scalar and reference types, including tied variables
+and objects.")
+ (license (package-license perl))))
+
(define-public perl-common-sense
(package
(name "perl-common-sense")
@@ -1487,6 +1575,38 @@ functions and data structures for processing and analysing genomic and
bioinformatics data.")
(license gpl3+)))
+(define-public perl-data
+ (package
+ (name "perl-data")
+ (version "0.002009")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/M/MA/MATTP/"
+ "Data-Perl-" version ".tar.gz"))
+ (sha256
+ (base32
+ "12vgqdjbfqf2qfg21x22wg88xnwxfbw2ki3qzcb3nb0chwjj4axn"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-test-deep" ,perl-test-deep)
+ ("perl-test-output" ,perl-test-output)
+ ("perl-test-fatal" ,perl-test-fatal)))
+ (inputs
+ `(("perl-class-method-modifiers" ,perl-class-method-modifiers)
+ ("perl-list-moreutils" ,perl-list-moreutils)
+ ("perl-module-runtime" ,perl-module-runtime)
+ ("perl-role-tiny" ,perl-role-tiny)
+ ("perl-strictures" ,perl-strictures)))
+ (home-page "http://search.cpan.org/dist/Data-Perl/")
+ (synopsis "Base classes wrapping fundamental Perl data types")
+ (description "Collection of classes that wrap fundamental data types that
+exist in Perl. These classes and methods as they exist today are an attempt
+to mirror functionality provided by Moose's Native Traits. One important
+thing to note is all classes currently do no validation on constructor
+input.")
+ (license (package-license perl))))
+
(define-public perl-data-compare
(package
(name "perl-data-compare")
@@ -1659,6 +1779,57 @@ The maths behind this is unfortunately fiddly, hence this module.")
@end itemize")
(license perl-license)))
+(define-public perl-data-printer
+ (package
+ (name "perl-data-printer")
+ (version "0.40")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/G/GA/GARU/Data-Printer-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0njjh8zp5afc4602jrnmg89icj7gfsil6i955ypcqxc2gl830sb0"))))
+ (build-system perl-build-system)
+ (propagated-inputs
+ `(("perl-clone-pp" ,perl-clone-pp)
+ ("perl-file-homedir" ,perl-file-homedir)
+ ("perl-package-stash" ,perl-package-stash)
+ ("perl-sort-naturally" ,perl-sort-naturally)))
+ (home-page "http://search.cpan.org/dist/Data-Printer/")
+ (synopsis "Colored pretty-print of Perl data structures and objects")
+ (description "Display Perl variables and objects on screen, properly
+formatted (to be inspected by a human).")
+ (license (package-license perl))))
+
+(define-public perl-data-record
+ (package
+ (name "perl-data-record")
+ (version "0.02")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/O/OV/OVID/"
+ "Data-Record-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1gwyhjwg4lrnfsn8wb6r8msb4yh0y4wca4mz3z120xbnl9nycshx"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-test-exception" ,perl-test-exception)
+ ("perl-module-build" ,perl-module-build)))
+ (propagated-inputs
+ `(("perl-sub-uplevel" ,perl-sub-uplevel)))
+ (home-page "http://search.cpan.org/dist/Data-Record/")
+ (synopsis "Conditionally split data into records")
+ (description "This Perl module allows you to split data into records by
+not only specifying what you wish to split the data on, but also by specifying
+an \"unless\" regular expression. If the text in question matches the
+\"unless\" regex, it will not be split there. This allows us to do things
+like split on newlines unless newlines are embedded in quotes.")
+ (license (package-license perl))))
+
(define-public perl-data-stag
(package
(name "perl-data-stag")
@@ -2376,6 +2547,29 @@ based memory management, circular references will cause memory leaks.")
equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls.")
(license (package-license perl))))
+(define-public perl-devel-hide
+ (package
+ (name "perl-devel-hide")
+ (version "0.0009")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/F/FE/FERREIRA/Devel-Hide-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1phnzbw58v6551nhv6sg86m72nx9w5j4msh1hg4jvkakkq5w9pki"))))
+ (build-system perl-build-system)
+ (propagated-inputs
+ `(("perl-test-pod" ,perl-test-pod)
+ ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+ (home-page "http://search.cpan.org/dist/Devel-Hide/")
+ (synopsis "Forces the unavailability of specified Perl modules (for testing)")
+ (description "Given a list of Perl modules/filenames, this module makes
+@code{require} and @code{use} statements fail (no matter whether the specified
+files/modules are installed or not).")
+ (license (package-license perl))))
+
(define-public perl-devel-lexalias
(package
(name "perl-devel-lexalias")
@@ -2987,6 +3181,30 @@ It is really just boilerplate code that you would have written yourself.")
changes made to any file.")
(license artistic2.0)))
+(define-public perl-file-configdir
+ (package
+ (name "perl-file-configdir")
+ (version "0.018")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/"
+ "File-ConfigDir-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1xpzrlya0gskk7lm6gppyfwbk0swv0n6ssgp629575dk5l49z2rf"))))
+ (build-system perl-build-system)
+ (propagated-inputs
+ `(("perl-file-homedir" ,perl-file-homedir)
+ ("perl-list-moreutils" ,perl-list-moreutils)))
+ (home-page "http://search.cpan.org/dist/File-ConfigDir/")
+ (synopsis "Get directories of configuration files")
+ (description "This module is a helper for installing, reading and finding
+configuration file locations. @code{File::ConfigDir} is a module to help out
+when Perl modules (especially applications) need to read and store
+configuration files from more than one location.")
+ (license (package-license perl))))
+
(define-public perl-file-copy-recursive
(package
(name "perl-file-copy-recursive")
@@ -3424,7 +3642,7 @@ single-letter approach, is provided but not enabled by default.")
(define-public perl-getopt-long-descriptive
(package
(name "perl-getopt-long-descriptive")
- (version "0.098")
+ (version "0.100")
(source
(origin
(method url-fetch)
@@ -3432,10 +3650,11 @@ single-letter approach, is provided but not enabled by default.")
"Getopt-Long-Descriptive-" version ".tar.gz"))
(sha256
(base32
- "08lphvqshcajvvd6z4rvcda6rx5kz8pysrsip4nfv2mbks95p9ma"))))
+ "1dpz5nhg5glmrpq46nkc90dg19cfqfjspqwhfvihsqyi229yfl8l"))))
(build-system perl-build-system)
(native-inputs
- `(("perl-test-fatal" ,perl-test-fatal)
+ `(("perl-cpan-meta-check" ,perl-cpan-meta-check)
+ ("perl-test-fatal" ,perl-test-fatal)
("perl-test-warnings" ,perl-test-warnings)))
(propagated-inputs
`(("perl-params-validate" ,perl-params-validate)
@@ -4101,6 +4320,37 @@ version.")
one: logging, exceptions, and translations.")
(license (package-license perl))))
+(define-public perl-libintl-perl
+ (package
+ (name "perl-libintl-perl")
+ (version "1.28")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/G/GU/GUIDO/"
+ "libintl-perl-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1gafrfvicjclqlz6i62jx2iqbq878yn3ws86waz2sqbd3gxz5svv"))))
+ (build-system perl-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'set-perl-search-path
+ (lambda _
+ ;; Work around "dotless @INC" build failure.
+ (setenv "PERL5LIB" (string-append (getcwd) ":"
+ (getenv "PERL5LIB")))
+ #t)))))
+ (propagated-inputs
+ `(("perl-file-sharedir" ,perl-file-sharedir)))
+ (home-page "http://search.cpan.org/dist/libintl-perl/")
+ (synopsis "High-level interface to Uniforum message translation")
+ (description "This package is an internationalization library for Perl
+that aims to be compatible with the Uniforum message translations system as
+implemented for example in GNU gettext.")
+ (license gpl3+)))
+
(define-public perl-lingua-translit
(package
(name "perl-lingua-translit")
@@ -4172,7 +4422,7 @@ intersections, unions, unique elements, complements and many more.")
(define-public perl-list-moreutils
(package
(name "perl-list-moreutils")
- (version "0.402")
+ (version "0.426")
(source
(origin
(method url-fetch)
@@ -4180,20 +4430,54 @@ intersections, unions, unique elements, complements and many more.")
"List-MoreUtils-" version ".tar.gz"))
(sha256
(base32
- "1i0k7kqg1m9nf2xvq9l4lyf38fxvi9952vmmvhcdaf3qa95pxb24"))))
+ "1dj77b42cp5ziq9y38fff458avjwzm88kn076svcvl660h6n21cf"))))
(build-system perl-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'set-perl-search-path
+ (lambda _
+ ;; Work around "dotless @INC" build failure.
+ (setenv "PERL5LIB"
+ (string-append (getcwd) ":"
+ (getenv "PERL5LIB")))
+ #t)))))
(native-inputs
`(("perl-config-autoconf" ,perl-config-autoconf)
- ("perl-inc-latest" ,perl-inc-latest)
- ("perl-test-writevariants" ,perl-test-writevariants)))
+ ("perl-test-leaktrace" ,perl-test-leaktrace)))
(propagated-inputs
- `(("perl-exporter-tiny" ,perl-exporter-tiny)))
+ `(("perl-exporter-tiny" ,perl-exporter-tiny)
+ ("perl-list-moreutils-xs" ,perl-list-moreutils-xs)))
(home-page "http://search.cpan.org/dist/List-MoreUtils/")
(synopsis "Provide the stuff missing in List::Util")
(description "List::MoreUtils provides some trivial but commonly needed
functionality on lists which is not going to go into List::Util.")
(license (package-license perl))))
+(define-public perl-list-moreutils-xs
+ (package
+ (name "perl-list-moreutils-xs")
+ (version "0.426")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/List-MoreUtils-XS-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0ss0a0f9yqs7gd9qamhaxq27mvn573ljg28ry1gy2pxbz56byzbc"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-config-autoconf" ,perl-config-autoconf)
+ ("perl-inc-latest" ,perl-inc-latest)
+ ("perl-test-leaktrace" ,perl-test-leaktrace)))
+ (home-page "http://search.cpan.org/dist/List-MoreUtils-XS")
+ (synopsis "Provide the stuff missing in List::Util in XS")
+ (description "@code{List::MoreUtils::XS} provides some trivial but
+commonly needed functionality on lists which is not going to go into
+@code{List::Util}.")
+ (license asl2.0)))
+
(define-public perl-list-someutils
(package
(name "perl-list-someutils")
@@ -5267,6 +5551,95 @@ constraint with coercion to load the class.")
(description "Contains the MooX and MooX::Role packages.")
(license perl-license)))
+(define-public perl-moox-cmd
+ (package
+ (name "perl-moox-cmd")
+ (version "0.015")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Cmd-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0145ha8vnc6sbg82ps96wj716bznq2qamm657bia9ji2yxhbnsam"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-capture-tiny" ,perl-capture-tiny)
+ ("perl-list-moreutils" ,perl-list-moreutils)))
+ (propagated-inputs
+ `(("perl-module-pluggable" ,perl-module-pluggable)
+ ("perl-module-runtime" ,perl-module-runtime)
+ ("perl-moo" ,perl-moo)
+ ("perl-package-stash" ,perl-package-stash)
+ ("perl-params-util" ,perl-params-util)
+ ("perl-regexp-common" ,perl-regexp-common)))
+ (home-page "http://search.cpan.org/dist/MooX-Cmd")
+ (synopsis "Giving an easy Moo style way to make command organized CLI apps")
+ (description "This package eases the writing of command line utilities,
+accepting commands and subcommands and so on. These commands can form a tree,
+which is mirrored in the package structure. On invocation, each command along
+the path through the tree (starting from the top-level command through to the
+most specific one) is instantiated.")
+ (license (package-license perl))))
+
+(define-public perl-moox-configfromfile
+ (package
+ (name "perl-moox-configfromfile")
+ (version "0.008")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/"
+ "MooX-ConfigFromFile-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1zrpz4mzngnhaap6988is0w0aarilfj4kb1yc8hvfqna69lywac0"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-hash-merge" ,perl-hash-merge)
+ ("perl-json" ,perl-json)
+ ("perl-moox-cmd" ,perl-moox-cmd)))
+ (propagated-inputs
+ `(("perl-config-any" ,perl-config-any)
+ ("perl-file-configdir" ,perl-file-configdir)
+ ("perl-file-find-rule" ,perl-file-find-rule)
+ ("perl-hash-merge" ,perl-hash-merge)
+ ("perl-moo", perl-moo)
+ ("perl-moox-file-configdir" ,perl-moox-file-configdir)
+ ("perl-namespace-clean" ,perl-namespace-clean)))
+ (home-page "http://search.cpan.org/dist/MooX-ConfigFromFile/")
+ (synopsis "Moo eXtension for initializing objects from config file")
+ (description "This module is intended to easily load initialization values
+for attributes on object construction from an appropriate config file. The
+building is done in @code{MooX::ConfigFromFile::Role}---using
+@code{MooX::ConfigFromFile} ensures that the role is applied.")
+ (license (package-license perl))))
+
+(define-public perl-moox-file-configdir
+ (package
+ (name "perl-moox-file-configdir")
+ (version "0.006")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/"
+ "MooX-File-ConfigDir-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0f808sq3627ymgf63zwgh705vv0nhwclxp89clhx8yl6hybcv7kx"))))
+ (build-system perl-build-system)
+ (propagated-inputs
+ `(("perl-file-configdir" ,perl-file-configdir)
+ ("perl-moo" ,perl-moo)
+ ("perl-namespace-clean" ,perl-namespace-clean)))
+ (home-page "http://search.cpan.org/dist/MooX-File-ConfigDir/")
+ (synopsis "Moo eXtension for @code{File::ConfigDir}")
+ (description "This module is a helper for easily finding configuration
+file locations. This information can be used to find a suitable place for
+installing configuration files or for finding any piece of settings.")
+ (license (package-license perl))))
+
(define-public perl-moox-handlesvia
(package
(name "perl-moox-handlesvia")
@@ -5344,6 +5717,57 @@ MooX::HandlesVia.
@end enumerate")
(license perl-license)))
+(define-public perl-moox-options
+ (package
+ (name "perl-moox-options")
+ (version "4.023")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/C/CE/CELOGEEK/"
+ "MooX-Options-" version ".tar.gz"))
+ (sha256
+ (base32
+ "14kz51hybxx8vcm4wg36f0qa64aainw7i2sqmqxg20c3qvczyvj2"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-capture-tiny" ,perl-capture-tiny)
+ ("perl-import-into" ,perl-import-into)
+ ("perl-module-build" ,perl-module-build)
+ ("perl-moo" ,perl-moo)
+ ("perl-moose" ,perl-moose)
+ ("perl-moox-cmd" ,perl-moox-cmd)
+ ("perl-namespace-clean" ,perl-namespace-clean)
+ ("perl-role-tiny" ,perl-role-tiny)
+ ("perl-test-requires" ,perl-test-requires)
+ ("perl-test-trap" ,perl-test-trap)
+ ("perl-test-pod" ,perl-test-pod)
+ ("perl-try-tiny" ,perl-try-tiny)))
+ (propagated-inputs
+ `(("perl-config-any" ,perl-config-any)
+ ("perl-moox-configfromfile" ,perl-moox-configfromfile)
+ ("perl-data-record" ,perl-data-record)
+ ("perl-file-configdir" ,perl-file-configdir)
+ ("perl-file-find-rule" ,perl-file-find-rule)
+ ("perl-file-sharedir" ,perl-file-sharedir)
+ ("perl-getopt-long-descriptive" ,perl-getopt-long-descriptive)
+ ("perl-json-maybexs" ,perl-json-maybexs)
+ ("perl-libintl-perl" ,perl-libintl-perl)
+ ("perl-moox-configfromfile" ,perl-moox-configfromfile)
+ ("perl-moox-file-configdir" ,perl-moox-file-configdir)
+ ("perl-path-class" ,perl-path-class)
+ ("perl-regexp-common" ,perl-regexp-common)
+ ("perl-term-size-any" ,perl-term-size-any)
+ ("perl-unicode-linebreak" ,perl-unicode-linebreak)))
+ (home-page "http://search.cpan.org/dist/MooX-Options/")
+ (synopsis "Explicit Options eXtension for Object Class")
+ (description "Create a command line tool with your Mo, Moo, Moose objects.
+You have an @code{option} keyword to replace the usual @code{has} to
+explicitly use your attribute on the command line. The @code{option} keyword
+takes additional parameters and uses @code{Getopt::Long::Descriptive} to
+generate a command line tool.")
+ (license (package-license perl))))
+
(define-public perl-moox-types-mooselike
(package
(name "perl-moox-types-mooselike")
@@ -6057,6 +6481,32 @@ Module::Build project, but has been externalized here for general use.")
"Probe-Perl-" version))
(license (package-license perl))))
+(define-public perl-proc-invokeeditor
+ (package
+ (name "perl-proc-invokeeditor")
+ (version "1.13")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/M/MS/MSTEVENS/Proc-InvokeEditor-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0xc1416kvhq904ribpwh2lbxryh41dzl2glzpgr32b68s4fbwbaa"))))
+ (build-system perl-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'set-EDITOR
+ (lambda _ (setenv "EDITOR" "echo") #t)))))
+ (propagated-inputs
+ `(("perl-carp-assert" ,perl-carp-assert)))
+ (home-page "http://search.cpan.org/dist/Proc-InvokeEditor/")
+ (synopsis "Interface to external editor from Perl")
+ (description "This module provides the ability to supply some text to an
+external text editor, have it edited by the user, and retrieve the results.")
+ (license (package-license perl))))
+
(define-public perl-readonly
(package
(name "perl-readonly")
@@ -6292,6 +6742,27 @@ compact.")
arrays by one or multiple calculated keys.")
(license (package-license perl))))
+(define-public perl-sort-naturally
+ (package
+ (name "perl-sort-naturally")
+ (version "1.03")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/B/BI/BINGOS/Sort-Naturally-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0ip7q5g8d3lr7ri3ffcbrpk1hzzsiwgsn14k10k7hnjphxf1raza"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/Sort-Naturally/")
+ (synopsis "Sort lexically, but sort numeral parts numerically")
+ (description "This module exports two functions, @code{nsort} and
+@code{ncmp}; they are used in implementing a \"natural sorting\" algorithm.
+Under natural sorting, numeric substrings are compared numerically, and other
+word-characters are compared lexically.")
+ (license (package-license perl))))
+
(define-public perl-specio
(package
(name "perl-specio")
@@ -6886,6 +7357,50 @@ other terminal related features, including retrieval/modification of the
screen size, and retrieval/modification of the control characters.")
(license (package-license perl))))
+(define-public perl-term-size-any
+ (package
+ (name "perl-term-size-any")
+ (version "0.002")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/F/FE/FERREIRA/"
+ "Term-Size-Any-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1lnynd8pwjp3g85bl4nav6yigg2lag3sx5da989j7a733bdmzyk4"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-devel-hide" ,perl-devel-hide)))
+ (propagated-inputs
+ `(("perl-term-size-perl" ,perl-term-size-perl)))
+ (home-page "http://search.cpan.org/dist/Term-Size-Any/")
+ (synopsis "Retrieve terminal size")
+ (description "This is a unified interface to retrieve terminal size. It
+loads one module of a list of known alternatives, each implementing some way
+to get the desired terminal information. This loaded module will actually do
+the job on behalf of @code{Term::Size::Any}.")
+ (license (package-license perl))))
+
+(define-public perl-term-size-perl
+ (package
+ (name "perl-term-size-perl")
+ (version "0.029")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/F/FE/FERREIRA/"
+ "Term-Size-Perl-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1rvm91bhdlxfwx5zka023p7szf2s7gm16wl27qiivvj66svsl6lc"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/Term-Size-Perl/")
+ (synopsis "Perl extension for retrieving terminal size (Perl version)")
+ (description "This is yet another implementation of @code{Term::Size}.
+Now in pure Perl, with the exception of a C probe run at build time.")
+ (license (package-license perl))))
+
(define-public perl-term-table
(package
(name "perl-term-table")
@@ -7780,6 +8295,32 @@ makes fork(2) safe to use in test cases.")
"Test-Simple-" version))
(license (package-license perl))))
+(define-public perl-test-taint
+ (package
+ (name "perl-test-taint")
+ (version "1.06")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Taint-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "01rip5d7gdr1c7lq6yczzkqfd0500nfa977ryigylj6jj75526vj"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/Test-Taint/")
+ (synopsis "Checks for taintedness of variables")
+ (description "Tainted data is data that comes from an unsafe source, such
+as the command line, or, in the case of web apps, any @code{GET} or
+@code{POST} transactions. Read the @code{perlsec} man page for details on why
+tainted data is bad, and how to untaint the data.
+
+When you're writing unit tests for code that deals with tainted data, you'll
+want to have a way to provide tainted data for your routines to handle, and
+easy ways to check and report on the taintedness of your data, in standard
+@code{Test::More} style.")
+ (license (package-license perl))))
+
(define-public perl-test-tester
(package
(name "perl-test-tester")
@@ -8573,6 +9114,53 @@ distributed as part of @code{Type::Tiny} but has since been spun off), and can
be used with Moose, Mouse and Moo (or none of the above).")
(license (package-license perl))))
+(define-public perl-type-tiny-xs
+ (package
+ (name "perl-type-tiny-xs")
+ (version "0.012")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-XS-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "05nbr898cvjjh1wsy55l84zasx65gijdxc6dnn558ihns8zx6gm9"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/Type-Tiny-XS/")
+ (synopsis "Provides an XS boost for some of Type::Tiny's built-in type constraints")
+ (description "This module is optionally used by @code{Type::Tiny} to
+provide faster, C-based implementations of some type constraints. This
+package has only core dependencies, and does not depend on @code{Type::Tiny},
+so other data validation frameworks might also consider using it.")
+ (license perl-license)))
+
+(define-public perl-types-path-tiny
+ (package
+ (name "perl-types-path-tiny")
+ (version "0.005")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
+ "Types-Path-Tiny-" version ".tar.gz"))
+ (sha256
+ (base32
+ "09nf167ssi4rgj8hhzylwp3zdx61njdpyfri43arcmk9aqn7f0pp"))))
+ (build-system perl-build-system)
+ (propagated-inputs
+ `(("perl-file-pushd" ,perl-file-pushd)
+ ("perl-path-tiny" ,perl-path-tiny)
+ ("perl-type-tiny" ,perl-type-tiny)
+ ("perl-exporter-tiny" ,perl-exporter-tiny)))
+ (home-page "http://search.cpan.org/dist/Types-Path-Tiny/")
+ (synopsis "Types and coercions for Moose and Moo")
+ (description "This module provides @code{Path::Tiny} types for Moose, Moo,
+etc. It handles two important types of coercion: coercing objects with
+overloaded stringification, and coercing to absolute paths. It also can check
+to ensure that files or directories exist.")
+ (license artistic2.0)))
+
(define-public perl-types-serialiser
(package
(name "perl-types-serialiser")
@@ -9187,3 +9775,68 @@ interface to File::Find::Object.")
(description "Test::TrailingSpace tests for trailing spaces
in Perl source files.")
(license x11)))
+
+(define-public perl-libtime-parsedate
+ (package
+ (name "perl-libtime-parsedate")
+ (version "2015.103")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/M/MU/MUIR/modules/Time-ParseDate-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "1lgfr87j4qwqnln0hyyzgik5ixqslzdaksn9m8y824gqbcihc6ic"))))
+ (build-system perl-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; This is needed for tests
+ (add-after 'unpack 'set-TZDIR
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata")
+ "/share/zoneinfo"))
+ #t)))))
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)
+ ("tzdata" ,tzdata-2017a)))
+ (home-page "https://metacpan.org/release/Time-ParseDate")
+ (synopsis "Collection of Perl modules for time/date manipulation")
+ (description "Provides several perl modules for date/time manipulation:
+@code{Time::CTime.pm}, @code{Time::JulianDay.pm}, @code{Time::ParseDate.pm},
+@code{Time::Timezone.pm}, and @code{Time::DaysInMonth.pm}.")
+ ;; License text:
+ ;; "License hereby granted for anyone to use, modify or redistribute this
+ ;; module at their own risk. Please feed useful changes back to
+ ;; cpan@dave.sharnoff.org."
+ (license (non-copyleft "http://metadata.ftp-master.debian.org/\
+changelogs/main/libt/libtime-parsedate-perl/\
+libtime-parsedate-perl_2015.103-2_copyright"))))
+
+(define-public perl-libtime-period
+ (package
+ (name "perl-libtime-period")
+ (version "1.20")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://http.debian.net/debian/pool/main/libt/"
+ "libtime-period-perl/libtime-period-perl_"
+ version ".orig.tar.gz"))
+ (sha256
+ (base32 "0c0yd999h0ikj88c9j95wa087m87i0qh7vja3715y2kd7vixkci2"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)))
+ ;; Unless some other homepage is out there...
+ (home-page "https://packages.debian.org/stretch/libtime-period-perl")
+ (synopsis "Perl library for testing if a time() is in a specific period")
+ (description "This Perl library provides a function which tells whether a
+specific time falls within a specified time period. Its syntax for specifying
+time periods allows you to test for conditions like \"Monday to Friday, 9am
+till 5pm\" and \"on the second Tuesday of the month\" and \"between 4pm and
+4:15pm\" and \"in the first half of each minute\" and \"in January of
+1998\".")
+ (license perl-license)))
diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm
index 54955823cc..2e681ca97d 100644
--- a/gnu/packages/protobuf.scm
+++ b/gnu/packages/protobuf.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2016 Daniel Pimentel <d4n1@d4n1.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -53,6 +54,19 @@ yet extensible format. Google uses Protocol Buffers for almost all of its
internal RPC protocols and file formats.")
(license bsd-3)))
+;; XXX Remove this old version when no other packages depend on it.
+(define-public protobuf-2
+ (package (inherit protobuf)
+ (version "2.6.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/google/protobuf/releases/"
+ "download/v" version "/protobuf-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "040rcs9fpv4bslhiy43v7dcrzakz4vwwpyqg4jp8bn24sl95ci7f"))))))
+
(define-public protobuf-c
(package
(name "protobuf-c")
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 96dd5f04a1..119dde7d99 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -3201,14 +3201,14 @@ logging and tracing of the execution.")
(define-public python-docutils
(package
(name "python-docutils")
- (version "0.13.1")
+ (version "0.14")
(source
(origin
(method url-fetch)
(uri (pypi-uri "docutils" version))
(sha256
(base32
- "1gkma47i609jfs7dssxn4y9vsz06qi0l5q41nws0zgkpnrghz33i"))))
+ "0x22fs3pdmr42kvz6c654756wja305qv6cx1zbhwlagvxgr4xrji"))))
(build-system python-build-system)
(arguments
'(#:tests? #f)) ; no setup.py test command
@@ -6256,14 +6256,15 @@ implementation of D-Bus.")
(define-public python-apsw
(package
(name "python-apsw")
- (version "3.9.2-r1")
+ (version "3.20.1-r1")
(source
(origin
(method url-fetch)
- (uri (pypi-uri "apsw" version))
+ (uri (string-append "https://github.com/rogerbinns/apsw/archive/"
+ version ".tar.gz"))
(sha256
(base32
- "0w4jb0wpx785qw42r3h4fh7gl5w2968q48i7gygybsfxck8nzffs"))))
+ "00ai7m2pqi26qaflhz314d8k5i3syw7xzr145fhfl0crhyh6adz2"))))
(build-system python-build-system)
(inputs
`(("sqlite" ,sqlite)))
@@ -8638,17 +8639,18 @@ simulation, statistical modeling, machine learning and much more.")
(define-public python-chardet
(package
(name "python-chardet")
- (version "2.3.0")
+ (version "3.0.4")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/c/chardet/chardet-"
- version
- ".tar.gz"))
+ (uri (pypi-uri "chardet" version))
(sha256
(base32
- "1ak87ikcw34fivcgiz2xvi938dmclh078az65l9x3rmgljrkhgp5"))))
+ "1bpalpia6r5x1kknbk11p1fzph56fmmnp405ds8icksd3knr5aw4"))))
+ (native-inputs
+ `(("python-hypothesis" ,python-hypothesis)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-runner" ,python-pytest-runner)))
(build-system python-build-system)
(home-page "https://github.com/chardet/chardet")
(synopsis "Universal encoding detector for Python 2 and 3")
@@ -9732,13 +9734,13 @@ with a new public API, and RPython support.")
(define-public python-hy
(package
(name "python-hy")
- (version "0.11.1")
+ (version "0.13.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "hy" version))
(sha256
(base32
- "1msqv747iz12r73mz4qvsmlwkddwjvrahlrk7ysrcz07h7dsscxs"))))
+ "19sfymaksx9jhksfnb15ahid46mzrhdfzz6yy2craz2qnzvpmky8"))))
(build-system python-build-system)
(arguments
'(#:phases
@@ -10169,9 +10171,9 @@ seamlessly into your existing Python unit testing work flow.")
(let ((hypothesis (package-with-python2
(strip-python2-variant python-hypothesis))))
(package (inherit hypothesis)
- (native-inputs
+ (propagated-inputs
`(("python2-enum34" ,python2-enum34)
- ,@(package-native-inputs hypothesis))))))
+ ,@(package-propagated-inputs hypothesis))))))
(define-public python-pytest-subtesthack
(package
@@ -13186,18 +13188,14 @@ from Facebook.")
(base32
"09zhac7igh9ixdz0ay6csy35b40l1jwbf2wrbxmgxwfhy51iy06q"))))
(build-system python-build-system)
- (native-inputs
- `(("python-django-filter" ,python-django-filter)
- ("python-mock" ,python-mock)
- ("python-psycopg2" ,python-psycopg2)
- ("python-pytest-django" ,python-pytest-django)
- ("python-sqlalchemy-utils" ,python-sqlalchemy-utils)))
(propagated-inputs
`(("python-graphql-core" ,python-graphql-core)
("python-graphql-relay" ,python-graphql-relay)
("python-iso8601" ,python-iso8601)
("python-promise" ,python-promise)
("python-six" ,python-six)))
+ (arguments
+ `(#:tests? #f)) ; no tests/ in the PyPI tarball
(home-page "http://graphene-python.org/")
(synopsis "GraphQL Framework for Python")
(description
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index a74ea01796..b7a615bc10 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -617,7 +617,11 @@ HostPrefix=~a
HostData=lib/qt5
HostBinaries=bin
HostLibraries=lib
-" out out)))
+
+[EffectiveSourcePaths]
+HostPrefix=~a
+HostData=lib/qt5
+" out out qtbase)))
#t)))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
@@ -1443,7 +1447,7 @@ message.")))
(define-public python-sip
(package
(name "python-sip")
- (version "4.19.2")
+ (version "4.19.3")
(source
(origin
(method url-fetch)
@@ -1452,7 +1456,7 @@ message.")))
"sip-" version "/sip-" version ".tar.gz"))
(sha256
(base32
- "0cq5r21fmjyw5v7a6l4sfbaj3zgm7k5b2cryj6bnjki54nnllas3"))))
+ "0x2bghbprwl3az1ni3p87i0bq8r99694la93kg65vi0cz12gh3bl"))))
(build-system gnu-build-system)
(native-inputs
`(("python" ,python-wrapper)))
@@ -1506,7 +1510,7 @@ module provides support functions to the automatically generated code.")
(define-public python-pyqt
(package
(name "python-pyqt")
- (version "5.8.2")
+ (version "5.9")
(source
(origin
(method url-fetch)
@@ -1516,7 +1520,7 @@ module provides support functions to the automatically generated code.")
version ".tar.gz"))
(sha256
(base32
- "1s1nalcspam9dc7f63jkqn1i2sv9lrqn57p2zsc61g8bncahbmzb"))
+ "15hh4z5vd45dcswjla58q6rrfr6ic7jfz2n7c8lwfb10rycpj3mb"))
(patches (search-patches "pyqt-configure.patch"))))
(build-system gnu-build-system)
(native-inputs
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index caab8fac4b..5a7548df68 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2015, 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm
index 0a92b73e34..5622d37877 100644
--- a/gnu/packages/screen.scm
+++ b/gnu/packages/screen.scm
@@ -38,13 +38,13 @@
(define-public screen
(package
(name "screen")
- (version "4.6.1")
+ (version "4.6.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/screen/screen-"
version ".tar.gz"))
(sha256
- (base32 "0r3wpfxnr5kw73b8ndja26jk03nfbks06iyfmgb5aqb2rdkazadb"))))
+ (base32 "0fps0fsipfbh7c2cnp7rjw9n79j0ysq21mk8hzifa33a1r924s8v"))))
(build-system gnu-build-system)
(native-inputs
`(("makeinfo" ,texinfo)))
diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 7d25e0d919..03365ad3fa 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -248,7 +248,7 @@ that implements both the msgpack and msgpack-rpc specifications.")
"yaml-cpp-" version ".tar.gz"))
(sha256
(base32
- "1vk6pjh0f5k6jwk2sszb9z5169whmiha9ainbdpa1arxlkq7v3b6"))))
+ "1ck7jk0wjfigrf4cgcjqsir4yp1s6vamhhxhpsgfvs46pgm5pk6y"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm
index 8e3c5e2b7f..7d49f90be9 100644
--- a/gnu/packages/spice.scm
+++ b/gnu/packages/spice.scm
@@ -162,6 +162,7 @@ which allows users to view a desktop computing environment.")
("spice-protocol" ,spice-protocol)))
(inputs
`(("glib-networking" ,glib-networking)
+ ("gobject-introspection" ,gobject-introspection)
("gtk+" ,gtk+)
("libepoxy" ,libepoxy)
("libjpeg" ,libjpeg)
@@ -182,7 +183,8 @@ which allows users to view a desktop computing environment.")
`(#:configure-flags
'("--enable-gstaudio"
"--enable-gstvideo"
- "--enable-pulse")
+ "--enable-pulse"
+ "--enable-introspection")
#:phases
(modify-phases %standard-phases
(add-after
diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm
index 7d52ebab4c..95811d612b 100644
--- a/gnu/packages/sssd.scm
+++ b/gnu/packages/sssd.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -51,14 +52,14 @@
(define-public ding-libs
(package
(name "ding-libs")
- (version "0.6.0")
+ (version "0.6.1")
(source (origin
(method url-fetch)
(uri (string-append "https://releases.pagure.org/SSSD/ding-libs/"
"ding-libs-" version ".tar.gz"))
(sha256
(base32
- "1bczkvq7cblp75kqn6r2d7j5x7brfw6wxirzc6d2rkyb80gj2jkn"))))
+ "1h97mx2jdv4caiz4r7y8rxfsq78fx0k4jjnfp7x2s7xqvqks66d3"))))
(build-system gnu-build-system)
(home-page "https://pagure.io/SSSD/ding-libs/")
(synopsis "Libraries for SSSD")
@@ -80,14 +81,14 @@ fundamental object types for C.")
(define-public sssd
(package
(name "sssd")
- (version "1.15.3")
+ (version "1.16.0")
(source (origin
(method url-fetch)
(uri (string-append "http://releases.pagure.org/SSSD/sssd/"
"sssd-" version ".tar.gz"))
(sha256
(base32
- "0d36dmzqdjfpspm9fw4zx0kh0qcx60p9vchxvcajn4qf3k3qsl3f"))))
+ "03wllgbxxz2zv14dcqr8d2xssppi7ibckh0rlky8gvsw6vjsd0f5"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
@@ -168,7 +169,7 @@ fundamental object types for C.")
(description "SSSD is a system daemon. Its primary function is to provide
access to identity and authentication remote resource through a common
framework that can provide caching and offline support to the system. It
-provides PAM and NSS modules, and in the future will D-BUS based interfaces
-for extended user information. It also provides a better database to store
-local users as well as extended user data.")
+provides PAM and NSS modules, and in the future will support D-BUS based
+interfaces for extended user information. It also provides a better database
+to store local users as well as extended user data.")
(license license:gpl3+)))
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 7838145513..96b390185a 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2016, 2017 Raoul Bonnal <ilpuccio.febo@gmail.com>
+;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2718,7 +2719,7 @@ engine (version 3.8.8.2) is included.")
(version "1.95-0.1.2")
(source (origin
(method url-fetch)
- (uri (string-append "http://www.bioconductor.org/packages/"
+ (uri (string-append "https://www.bioconductor.org/packages/"
"release/extra/src/"
"contrib/RCurl_" version ".tar.gz"))
(sha256
@@ -5442,3 +5443,27 @@ the least concave majorant (LCM), for the half-normal and correlation
distributions, and for computing empirical higher criticism (HC) scores and
the corresponding decision threshold.")
(license license:gpl3+)))
+
+(define-public r-forcats
+ (package
+ (name "r-forcats")
+ (version "0.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "forcats" version))
+ (sha256
+ (base32
+ "1mvwkynvvgz2vi8dyz11x7xrp53kadjawjcja34hwk1d89qf7g5m"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-magrittr" ,r-magrittr)
+ ("r-tibble" ,r-tibble)))
+ (home-page "http://forcats.tidyverse.org")
+ (synopsis "Tools for working with factors")
+ (description "This package provides helpers for reordering factor
+levels (including moving specified levels to front, ordering by first
+appearance, reversing, and randomly shuffling), and tools for modifying factor
+levels (including collapsing rare levels into other, \"anonymizing\", and
+manually \"recoding\").")
+ (license license:gpl3)))
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index b4bc1e0a8a..b23339de12 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -38,9 +38,15 @@
(base32
"07mrvd3vq0p4f550dpq73xg1vpa2h7xxz7vq07sjw0whapknkw9f"))))
(build-system go-build-system)
+ ;; The primary Syncthing executable goes to "out", while the auxiliary
+ ;; server programs and utility tools go to "utils". This reduces the size
+ ;; of "out" by ~80 MiB.
+ (outputs '("out" "utils"))
(arguments
`(#:import-path "github.com/syncthing/syncthing"
#:unpack-path "github.com/syncthing"
+ ;; We don't need to install the source code for end-user applications.
+ #:install-source? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'delete-bundled-source-code
@@ -55,9 +61,6 @@
"src/github.com/syncthing/syncthing/vendor/github.com/cznic")
#t))
- ;; We don't need to install the source code for end-user applications.
- (delete 'install-source)
-
(add-before 'build 'increase-test-timeout
(lambda _
(substitute* "src/github.com/syncthing/syncthing/build.go"
@@ -75,21 +78,39 @@
(zero? (system* "go" "run" "build.go" "test")))))
(replace 'install
- (lambda _
- (copy-recursively "src/github.com/syncthing/syncthing/bin/"
- (string-append (assoc-ref %outputs "out") "/bin"))
- #t))
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (utils (assoc-ref outputs "utils"))
+ (src "src/github.com/syncthing/syncthing/bin/"))
+ (install-file (string-append src "/syncthing")
+ (string-append out "/bin"))
+ (delete-file (string-append src "/syncthing"))
+ (copy-recursively "src/github.com/syncthing/syncthing/bin/"
+ (string-append utils "/bin"))
+ #t)))
(add-after 'install 'install-docs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
- (man (string-append out "/share/man/man"))
+ (utils (assoc-ref outputs "utils"))
+ (man "/share/man")
+ (man-section (string-append man "/man"))
(src "src/github.com/syncthing/syncthing/man/"))
+ ;; Install all the man pages to "out".
(for-each
(lambda (file)
(install-file file
- (string-append man (string-take-right file 1))))
+ (string-append out man-section
+ (string-take-right file 1))))
(find-files src "\\.[1-9]"))
+ ;; Copy all the man pages to "utils"
+ (copy-recursively (string-append out man)
+ (string-append utils man))
+ ;; Delete extraneous man pages from "out" and "utils",
+ ;; respectively.
+ (delete-file (string-append out man "/man1/stdiscosrv.1"))
+ (delete-file (string-append out man "/man1/strelaysrv.1"))
+ (delete-file (string-append utils man "/man1/syncthing.1"))
#t))))))
;; When updating Syncthing, check 'vendor/manifest' in the source
;; distribution to ensure we are using the correct versions of these
diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm
index 8c33023bd0..c7f2f4840f 100644
--- a/gnu/packages/texinfo.scm
+++ b/gnu/packages/texinfo.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2012, 2013, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -30,19 +31,17 @@
#:use-module (gnu packages ncurses))
(define-public texinfo
- ;; TODO: Merge with 'texinfo-latest' on the next core-updates.
(package
(name "texinfo")
- (version "6.3")
+ (version "6.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/texinfo/texinfo-"
version ".tar.xz"))
(sha256
(base32
- "0fpr9kdjjl6nj2pc50k2zr7134hvqz8bi8pfqa7131a9lpzz6v14"))))
+ "0qjzvbvnv9003xdrcpi3jp7y68j4hq2ciw9frh2hghh698zlnxvp"))))
(build-system gnu-build-system)
- (native-inputs `(("procps" ,procps))) ;one of the tests needs pgrep
(inputs `(("ncurses" ,ncurses)
("perl" ,perl)))
@@ -63,19 +62,6 @@ their source and the command-line Info reader. The emphasis of the language
is on expressing the content semantically, avoiding physical markup commands.")
(license gpl3+)))
-(define-public texinfo-latest
- ;; TODO: Turn this into 'texinfo' on the next core-updates cycle.
- (package (inherit texinfo)
- (version "6.5")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/texinfo/texinfo-"
- version ".tar.xz"))
- (sha256
- (base32
- "0qjzvbvnv9003xdrcpi3jp7y68j4hq2ciw9frh2hghh698zlnxvp"))))
- (native-inputs '())))
-
(define-public texinfo-5
(package (inherit texinfo)
(version "5.2")
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index 2007a25d93..674a3507d0 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -38,6 +38,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system trivial)
+ #:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages compression)
@@ -53,14 +54,14 @@
(define-public dos2unix
(package
(name "dos2unix")
- (version "7.3.4")
+ (version "7.4.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://waterlan.home.xs4all.nl/" name "/"
name "-" version ".tar.gz"))
(sha256
- (base32 "1i9hbxn0br7xa18z4bjpkdv7mrzmbfxhm44mzpd07yd2qnxsgkcc"))))
+ (base32 "12h4c61g376bhq03y5g2xszkrkrj5hwd928rly3xsp6rvfmnbixs"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags (list "CC=gcc"
@@ -623,3 +624,39 @@ completely with the standard @code{javax.swing.text} package. It is fast and
efficient, and can be used in any application that needs to edit or view
source code.")
(license license:bsd-3)))
+
+;; We use the sources from git instead of the tarball from pypi, because the
+;; latter does not include the Cython source file from which bycython.cpp is
+;; generated.
+(define-public python-editdistance
+ (let ((commit "3ea84a7dd3258c76aa3be851ef3d50e59c886846")
+ (revision "1"))
+ (package
+ (name "python-editdistance")
+ (version (string-append "0.3.1-" revision "." (string-take commit 7)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/aflc/editdistance.git")
+ (commit commit)))
+ (sha256
+ (base32
+ "1l43svsv12crvzphrgi6x435z6xg8m086c64armp8wzb4l8ccm7g"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'build-cython-code
+ (lambda _
+ (with-directory-excursion "editdistance"
+ (delete-file "bycython.cpp")
+ (zero? (system* "cython" "--cplus" "bycython.pyx"))))))))
+ (native-inputs
+ `(("python-cython" ,python-cython)))
+ (home-page "https://www.github.com/aflc/editdistance")
+ (synopsis "Fast implementation of the edit distance (Levenshtein distance)")
+ (description
+ "This library simply implements Levenshtein distance algorithm with C++
+and Cython.")
+ (license license:expat))))
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 83f07ee2cd..bb66fabc4c 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -56,7 +56,6 @@
(package
(name "libtasn1")
(version "4.12")
- (replacement libtasn1/fixed)
(source
(origin
(method url-fetch)
@@ -64,7 +63,8 @@
version ".tar.gz"))
(sha256
(base32
- "0ls7jdq3y5fnrwg0pzhq11m21r8pshac2705bczz6mqjc8pdllv7"))))
+ "0ls7jdq3y5fnrwg0pzhq11m21r8pshac2705bczz6mqjc8pdllv7"))
+ (patches (search-patches "libtasn1-CVE-2017-10790.patch"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl)))
(home-page "https://www.gnu.org/software/libtasn1/")
@@ -76,13 +76,6 @@ networking, allowing for formal validation of data according to some
specifications.")
(license license:lgpl2.0+)))
-(define libtasn1/fixed
- (package
- (inherit libtasn1)
- (source (origin
- (inherit (package-source libtasn1))
- (patches (search-patches "libtasn1-CVE-2017-10790.patch"))))))
-
(define-public asn1c
(package
(name "asn1c")
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index e44bab54a0..85e7e8779e 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -45,14 +45,14 @@
(define-public tor
(package
(name "tor")
- (version "0.3.1.7")
+ (version "0.3.1.8")
(source (origin
(method url-fetch)
(uri (string-append "https://dist.torproject.org/tor-"
version ".tar.gz"))
(sha256
(base32
- "13y0v4zfla0vziy9kkahmhrwylv32ianjikcr46mwbxvji4dvx8x"))))
+ "18dinpj03d036rashlad16lv7j2hba8gg742z07l37x5c242kxkx"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list "--enable-gcc-hardening"
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 7c9b049849..8480f74fec 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -124,14 +124,14 @@ as well as the classic centralized workflow.")
(name "git")
;; XXX When updating Git, check if the special 'git:src' input to cgit needs
;; to be updated as well.
- (version "2.14.2")
+ (version "2.14.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
version ".tar.xz"))
(sha256
(base32
- "18f70gfzwqd210806hmf94blcd7yv5h9ka6xqkpd2jhijqwp5sah"))))
+ "078m0za5gyzcah5iaxdwx663yvdp8byvjc8rpzjzcrr4sl6rcc2k"))))
(build-system gnu-build-system)
(native-inputs
`(("native-perl" ,perl)
@@ -145,7 +145,7 @@ as well as the classic centralized workflow.")
(sha256
(base32
- "1z05a7hxxndyby3dbj3gaw91sjwmky5d1yph96jmj0fhx78m1lvd"))))))
+ "00dh878pwl94p6syh6zgwn7f0zv2bl5xny3pnr390lzxpa9ks3jv"))))))
(inputs
`(("curl" ,curl)
("expat" ,expat)
@@ -363,7 +363,7 @@ everything from small to very large projects with speed and efficiency.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1fdk9yhwvl1w1z71ykzcvgh4nsf8scxcbclz5anh98zpplmhmisa"))
+ "1b3figbhp5l83vd37vq6j2narrq4yl9pfw6mw0px0dzb1hz3jqka"))
(patches (search-patches "libgit2-0.25.1-mtime-0.patch"))))
(build-system cmake-build-system)
(outputs '("out" "debug"))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index c1856b62f3..63824f6c57 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -85,6 +85,7 @@
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages libreoffice)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages m4)
@@ -1115,7 +1116,7 @@ access to mpv's powerful playback capabilities.")
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2017.10.15.1")
+ (version "2017.10.20")
(source (origin
(method url-fetch)
(uri (string-append "https://yt-dl.org/downloads/"
@@ -1123,7 +1124,7 @@ access to mpv's powerful playback capabilities.")
version ".tar.gz"))
(sha256
(base32
- "0zr9sx0nxk36si8xbvhlnazb69xzlygrhsxcyiydm0dy5y5ycsns"))))
+ "0npr8b1xg1dylz717kfllw433h1y16251npzch48lchq69bhm4iy"))))
(build-system python-build-system)
(arguments
;; The problem here is that the directory for the man page and completion
@@ -2385,3 +2386,89 @@ tables")
generation of MPEG TS and DVB PSI tables according to standards ISO/IEC 13818s
and ITU-T H.222.0.")
(license license:lgpl2.1)))
+
+(define-public ffms2
+ (package
+ (name "ffms2")
+ (version "2.23")
+ (home-page "https://github.com/FFMS/ffms2/")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append home-page "archive/" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1vbkab8vrplxz5xgag8ggzkwp4f7nf285pd0l2a7zy66n6i2m6xh"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:configure-flags
+ (list "--enable-avresample")))
+ (inputs
+ `(("zlib" ,zlib)))
+ (propagated-inputs
+ `(("ffmpeg" ,ffmpeg)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (synopsis "Cross-platform wrapper around ffmpeg/libav")
+ (description
+ "FFMpegSource is a wrapper library around ffmpeg/libav that allows
+programmers to access a standard API to open and decompress media files.")
+ ;; sources are distributed under a different license that the binary.
+ ;; see https://github.com/FFMS/ffms2/blob/master/COPYING
+ (license license:gpl2+))); inherits from ffmpeg
+
+(define-public aegisub
+ (package
+ (name "aegisub")
+ (version "3.2.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://ftp.aegisub.org/pub/archives/releases/source/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "11b83qazc8h0iidyj1rprnnjdivj1lpphvpa08y53n42bfa36pn5"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (list "--disable-update-checker"
+ "--without-portaudio"
+ "--without-openal"
+ "--without-oss")
+ ;; tests require busted, a lua package we don't have yet
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'fix-ldflags
+ (lambda _
+ (setenv "LDFLAGS" "-pthread"))))))
+ (inputs
+ `(("boost" ,boost)
+ ("desktop-file-utils" ,desktop-file-utils)
+ ("ffms2" ,ffms2)
+ ("fftw" ,fftw)
+ ("hunspell" ,hunspell)
+ ("mesa" ,mesa)
+ ("libass" ,libass)
+ ("alsa-lib" ,alsa-lib)
+ ("pulseaudio" ,pulseaudio)
+ ("libx11" ,libx11)
+ ("freetype" ,freetype)
+ ("wxwidgets-gtk2" ,wxwidgets-gtk2)))
+ (native-inputs
+ `(("intltool" ,intltool)
+ ("pkg-config" ,pkg-config)))
+ (home-page "http://www.aegisub.org/")
+ (synopsis "Subtitle engine")
+ (description
+ "Aegisub is a tool for creating and modifying subtitles. Aegisub makes
+it quick and easy to time subtitles to audio, and features many powerful
+tools for styling them, including a built-in real-time video preview.")
+ (license (list license:bsd-3 ; the package is licensed under the bsd-3, except
+ license:mpl1.1 ; for vendor/universalchardet under the mpl1.1
+ license:expat)))) ; and src/gl that is under a license similar
+ ; the the Expat license, with a rewording (Software -> Materials). (called MIT
+ ; by upstream). See https://github.com/Aegisub/Aegisub/blob/master/LICENCE
+ ; src/MatroskaParser.(c|h) is under bsd-3 with permission from the author
+
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index dffd6d96c0..560203fcaf 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -60,7 +60,7 @@
(define-public vim
(package
(name "vim")
- (version "8.0.1130")
+ (version "8.0.1207")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/vim/vim/archive/v"
@@ -68,7 +68,7 @@
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0zqyk7086crc6q5fil38szppx9sgd14fs3wb9h4ak13jg6s2ir90"))))
+ "0zq740d0crybva00dk0rxsa9q1gafvc438syxqlmlxgnk5f0xd11"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 4e384e79ae..c8ab607028 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -2,8 +2,9 @@
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
+;;; Copyright © 2017 Andy Patterson <ajpatter@uwaterloo.ca>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -31,6 +32,8 @@
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages disk)
#:use-module (gnu packages dns)
+ #:use-module (gnu packages docbook)
+ #:use-module (gnu packages documentation)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
@@ -39,9 +42,11 @@
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages networking)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages polkit)
+ #:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages selinux)
#:use-module (gnu packages sdl)
@@ -54,7 +59,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix download)
- #:use-module ((guix licenses) #:select (gpl2 gpl2+ lgpl2.1+))
+ #:use-module ((guix licenses) #:select (gpl2 gpl2+ lgpl2.1 lgpl2.1+))
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (srfi srfi-1))
@@ -85,7 +90,7 @@
'(;; Running tests in parallel can occasionally lead to failures, like:
;; boot_sector_test: assertion failed (signature == SIGNATURE): (0x00000000 == 0x0000dead)
#:parallel-tests? #f
-
+ #:configure-flags '("--enable-usb-redir" "--enable-opengl")
#:phases
(modify-phases %standard-phases
(replace 'configure
@@ -143,7 +148,9 @@
("libaio" ,libaio)
("libattr" ,attr)
("libcap" ,libcap) ; virtfs support requires libcap & libattr
- ("libjpeg" ,libjpeg-8)
+ ("libdrm" ,libdrm)
+ ("libepoxy" ,libepoxy)
+ ("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("libusb" ,libusb) ;USB pass-through support
("mesa" ,mesa)
@@ -152,6 +159,7 @@
("pixman" ,pixman)
("sdl" ,sdl)
("spice" ,spice)
+ ("usbredir" ,usbredir)
("util-linux" ,util-linux)
;; ("vde2" ,vde2)
("virglrenderer" ,virglrenderer)
@@ -188,14 +196,15 @@ server and embedded PowerPC, and S390 guests.")
(name "qemu-minimal")
(synopsis "Machine emulator and virtualizer (without GUI)")
(arguments
- `(#:configure-flags
- ;; Restrict to the targets supported by Guix.
- '("--target-list=i386-softmmu,x86_64-softmmu,mips64el-softmmu,arm-softmmu,aarch64-softmmu")
- ,@(package-arguments qemu)))
+ (substitute-keyword-arguments (package-arguments qemu)
+ ((#:configure-flags _ '(list))
+ ;; Restrict to the targets supported by Guix.
+ ''("--target-list=i386-softmmu,x86_64-softmmu,mips64el-softmmu,arm-softmmu,aarch64-softmmu"))))
;; Remove dependencies on optional libraries, notably GUI libraries.
(inputs (fold alist-delete (package-inputs qemu)
- '("libusb" "mesa" "sdl" "spice" "virglrenderer")))))
+ '("libusb" "mesa" "sdl" "spice" "virglrenderer"
+ "usbredir" "libdrm" "libepoxy")))))
(define-public libosinfo
(package
@@ -317,6 +326,7 @@ manage system or application containers.")
(method url-fetch)
(uri (string-append "https://libvirt.org/sources/libvirt-"
version ".tar.xz"))
+ (patches (search-patches "libvirt-CVE-2017-1000256.patch"))
(sha256
(base32
"1fk75cdzg59y9hnfdpdwv83fsc1yffy3lac4ch19zygfkqhcnysf"))))
@@ -510,6 +520,13 @@ virtualization library.")
(substitute* "virtcli/cliconfig.py"
(("/usr") (assoc-ref outputs "out")))
#t))
+ (add-after 'unpack 'fix-default-uri
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; xen is not available for now - so only patch qemu
+ (substitute* "virtManager/connect.py"
+ (("/usr(/bin/qemu-system)" _ suffix)
+ (string-append (assoc-ref inputs "qemu") suffix)))
+ #t))
(add-before 'wrap 'wrap-with-GI_TYPELIB_PATH
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((bin (string-append (assoc-ref outputs "out") "/bin"))
@@ -540,8 +557,10 @@ virtualization library.")
("python2-libvirt" ,python2-libvirt)
("python2-requests" ,python2-requests)
("python2-ipaddr" ,python2-ipaddr)
+ ("python2-pycairo" ,python2-pycairo)
("python2-pygobject" ,python2-pygobject)
- ("python2-libxml2" ,python2-libxml2)))
+ ("python2-libxml2" ,python2-libxml2)
+ ("spice-gtk" ,spice-gtk)))
;; virt-manager searches for qemu-img or kvm-img in the PATH.
(propagated-inputs
`(("qemu" ,qemu)))
@@ -558,3 +577,97 @@ virtual machines through libvirt. It primarily targets KVM VMs, but also
manages Xen and LXC (Linux containers). It presents a summary view of running
domains, their live performance and resource utilization statistics.")
(license gpl2+)))
+
+(define-public criu
+ (package
+ (name "criu")
+ (version "3.5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://download.openvz.org/criu/criu-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "1w0ybla7ac0ql0jzh0vxdf2w9amqp88jcg0na3b33r3hq8acry6x"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:test-target "test"
+ #:tests? #f ; tests require mounting as root
+ #:make-flags
+ (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+ (string-append "LIBDIR=" (assoc-ref %outputs "out")
+ "/lib"))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; The includes for libnl are located in a sub-directory.
+ (setenv "C_INCLUDE_PATH"
+ (string-append (assoc-ref inputs "libnl")
+ "/include/libnl3:"
+ (getenv "C_INCLUDE_PATH")))
+ ;; Prevent xmlto from failing the install phase.
+ (substitute* "Documentation/Makefile"
+ (("XMLTO.*:=.*")
+ (string-append "XMLTO:="
+ (assoc-ref inputs "xmlto")
+ "/bin/xmlto"
+ " --skip-validation "
+ " -x "
+ (assoc-ref inputs "docbook-xsl")
+ "/xml/xsl/docbook-xsl-"
+ ,(package-version docbook-xsl)
+ "/manpages/docbook.xsl")))
+ #t))
+ (add-before 'build 'fix-symlink
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; The file 'images/google/protobuf/descriptor.proto' points to
+ ;; /usr/include/..., which obviously does not exist.
+ (let* ((file "google/protobuf/descriptor.proto")
+ (target (string-append "images/" file))
+ (source (string-append (assoc-ref inputs "protobuf")
+ "/include/" file)))
+ (delete-file target)
+ (symlink source target)
+ #t)))
+ (add-after 'install 'wrap
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; Make sure 'crit' runs with the correct PYTHONPATH.
+ (let* ((out (assoc-ref outputs "out"))
+ (path (string-append out
+ "/lib/python"
+ (string-take (string-take-right
+ (assoc-ref inputs "python") 5) 3)
+ "/site-packages:"
+ (getenv "PYTHONPATH"))))
+ (wrap-program (string-append out "/bin/crit")
+ `("PYTHONPATH" ":" prefix (,path))))
+ #t)))))
+ (inputs
+ `(("protobuf" ,protobuf)
+ ("python" ,python-2)
+ ("python2-protobuf" ,python2-protobuf)
+ ("python2-ipaddr" ,python2-ipaddr)
+ ("iproute" ,iproute)
+ ("libaio" ,libaio)
+ ("libcap" ,libcap)
+ ("libnet" ,libnet)
+ ("libnl" ,libnl)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("perl" ,perl)
+ ("protobuf-c" ,protobuf-c)
+ ("asciidoc" ,asciidoc)
+ ("xmlto" ,xmlto)
+ ("docbook-xml" ,docbook-xml)
+ ("docbook-xsl" ,docbook-xsl)))
+ (home-page "https://criu.org")
+ (synopsis "Checkpoint and restore in user space")
+ (description "Using this tool, you can freeze a running application (or
+part of it) and checkpoint it to a hard drive as a collection of files. You
+can then use the files to restore and run the application from the point it
+was frozen at. The distinctive feature of the CRIU project is that it is
+mainly implemented in user space.")
+ ;; The project is licensed under GPLv2; files in the lib/ directory are
+ ;; LGPLv2.1.
+ (license (list gpl2 lgpl2.1))))
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index e581c90f44..a544680143 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -20,6 +20,8 @@
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2017 Petter <petter@mykolab.ch>
+;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -52,6 +54,7 @@
#:use-module (guix build-system r)
#:use-module (guix build-system trivial)
#:use-module (guix build-system python)
+ #:use-module (guix build-system ant)
#:use-module (gnu packages)
#:use-module (gnu packages apr)
#:use-module (gnu packages check)
@@ -88,6 +91,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages qt)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages xml)
#:use-module (gnu packages curl)
@@ -508,6 +512,46 @@ easily construct JSON objects in C, output them as JSON formatted strings and
parse JSON formatted strings back into the C representation of JSON objects.")
(license l:x11)))
+(define-public qjson
+ (package
+ (name "qjson")
+ (version "0.9.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/flavio/qjson/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1m0h4rajj99hv9w4i381a8x81lxiv167lxk10ncvphpkfxs624p8"))))
+ (build-system cmake-build-system)
+ (arguments
+ ;; The tests require a X server
+ `(#:configure-flags '("-DQJSON_BUILD_TESTS=ON"
+ "-DCMAKE_CXX_FLAGS=-std=gnu++11 -fPIC")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-broken-test
+ (lambda _
+ ;; FIXME: One test fails. See
+ ;; https://github.com/flavio/qjson/issues/105
+ (substitute* "tests/scanner/testscanner.cpp"
+ (("QTest::newRow\\(\"too large exponential\"\\)" line)
+ (string-append "//" line)))
+ #t))
+ (add-before 'check 'render-offscreen
+ (lambda _ (setenv "QT_QPA_PLATFORM" "offscreen") #t)))))
+ (inputs
+ `(("qtbase" ,qtbase)))
+ (home-page "http://qjson.sourceforge.net")
+ (synopsis "Library that maps JSON data to QVariant objects")
+ (description "QJson is a Qt-based library that maps JSON data to
+@code{QVariant} objects. JSON arrays will be mapped to @code{QVariantList}
+instances, while JSON's objects will be mapped to @code{QVariantMap}.")
+ ;; Only version 2.1 of the license
+ (license l:lgpl2.1)))
+
(define-public krona-tools
(package
(name "krona-tools")
@@ -2890,6 +2934,35 @@ contains modules that are of more general use and even classes that
help you implement simple HTTP servers.")
(home-page "http://search.cpan.org/dist/libwww-perl/")))
+(define-public perl-lwp-online
+ (package
+ (name "perl-lwp-online")
+ (version "1.08")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/A/AD/ADAMK/LWP-Online-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "176f6vbk1018i0y7xj9d406ndbjgwzan2j9nihxnsahzg2vr2vz2"))))
+ (build-system perl-build-system)
+ (propagated-inputs
+ `(("perl-libwww" ,perl-libwww)
+ ("perl-uri" ,perl-uri)))
+ (native-inputs
+ `(("perl-module-install" ,perl-module-install)))
+ (home-page "http://search.cpan.org/dist/LWP-Online/")
+ (synopsis "Checks whether your process has access to the web")
+ (description "This module attempts to answer, as accurately as it can, one
+of the nastiest technical questions there is: am I on the internet?
+
+A host of networking and security issues make this problem very difficult.
+There are firewalls, proxies (both well behaved and badly behaved). We might
+not have DNS. We might not have a network card at all!")
+ (license l:perl-license)))
+
(define-public perl-lwp-mediatypes
(package
(name "perl-lwp-mediatypes")
@@ -5384,3 +5457,583 @@ collection creation and deletion, and locking operations.")
"Py-ubjson is a Python module providing an Universal Binary JSON
encoder/decoder based on the draft-12 specification for UBJSON.")
(license l:asl2.0)))
+
+(define-public java-tomcat
+ (package
+ (name "java-tomcat")
+ (version "8.5.23")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://apache/tomcat/tomcat-8/v"
+ version "/src/apache-tomcat-" version "-src.tar.gz"))
+ (sha256
+ (base32
+ "1m6b1dikib46kbgz9gf0p6svi00nsw62b9kgjzn6sda151skbbza"))))
+ (build-system ant-build-system)
+ (inputs
+ `(("java-eclipse-jdt-core" ,java-eclipse-jdt-core)))
+ (native-inputs
+ `(("java-junit" ,java-junit)))
+ (arguments
+ `(#:build-target "package"
+ #:tests? #f; requires downloading some files.
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'prevent-download
+ (lambda _
+ ;; This directory must exist
+ (mkdir "downloads")
+ ;; We patch build.xml so it doesn't download any dependency, because
+ ;; we already have all of them.
+ (substitute* "build.xml"
+ (("download-compile,") "")
+ (("depends=\"validate\"") "depends=\"build-prepare\"")
+ ((",download-validate") ""))
+ #t))
+ (add-after 'unpack 'generate-properties
+ (lambda _
+ ;; This could have been passed to make-flags, but getcwd returns
+ ;; a different directory then.
+ (with-output-to-file "build.properties"
+ (lambda _
+ (display
+ (string-append "base.path=" (getcwd) "/downloads\n"))))
+ #t))
+ (replace 'install
+ (install-jars "output/build/lib")))))
+ (home-page "https://tomcat.apache.org")
+ (synopsis "Java Servlet, JavaServer Pages, Java Expression Language and Java
+WebSocket")
+ (description "Apache Tomcat is a free implementation of the Java
+Servlet, JavaServer Pages, Java Expression Language and Java WebSocket
+technologies.")
+ (license l:asl2.0)))
+
+(define-public java-eclipse-jetty-test-helper
+ (package
+ (name "java-eclipse-jetty-test-helper")
+ (version "4.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/eclipse/jetty.toolchain/"
+ "archive/jetty-test-helper-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1jd6r9wc26fa11si4rn2gvy8ml8q4zw1nr6v04mjp8wvwpgvzwx5"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "eclipse-jetty-test-helper.jar"
+ #:source-dir "src/main/java"
+ #:test-dir "src/test"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "jetty-test-helper")))
+ (add-before 'build 'fix-paths
+ (lambda _
+ ;; TODO:
+ ;; This file assumes that the build directory is named "target"
+ ;; but it is not the case with our ant-build-system. Once we have
+ ;; maven though, we will have to rebuild this package because this
+ ;; assumption is correct with maven-build-system.
+ (substitute*
+ "src/main/java/org/eclipse/jetty/toolchain/test/MavenTestingUtils.java"
+ (("\"target\"") "\"build\"")
+ (("\"tests\"") "\"test-classes\""))
+ ;; Tests assume we are building with maven, so that the build
+ ;; directory is named "target", and not "build".
+ (with-directory-excursion "src/test/java/org/eclipse/jetty/toolchain/test"
+ (substitute* '("FSTest.java" "OSTest.java" "TestingDirTest.java"
+ "MavenTestingUtilsTest.java")
+ (("target/tests") "build/test-classes")
+ (("\"target") "\"build")))
+ #t)))))
+ (inputs
+ `(("junit" ,java-junit)
+ ("hamcrest" ,java-hamcrest-all)))
+ (home-page "https://www.eclipse.org/jetty/")
+ (synopsis "Helper classes for jetty tests")
+ (description "This packages contains helper classes for testing the Jetty
+Web Server.")
+ ;; This program is licensed under both epl and asl.
+ (license (list l:epl1.0 l:asl2.0))))
+
+(define-public java-eclipse-jetty-perf-helper
+ (package
+ (inherit java-eclipse-jetty-test-helper)
+ (name "java-eclipse-jetty-perf-helper")
+ (arguments
+ `(#:jar-name "eclipse-jetty-perf-helper.jar"
+ #:source-dir "src/main/java"
+ #:tests? #f; no tests
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "jetty-perf-helper")
+ #t)))))
+ (inputs
+ `(("hdrhistogram" ,java-hdrhistogram)))))
+
+(define-public java-eclipse-jetty-util
+ (package
+ (name "java-eclipse-jetty-util")
+ (version "9.4.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/eclipse/jetty.project/"
+ "archive/jetty-" version ".v20170531.tar.gz"))
+ (sha256
+ (base32
+ "0x7kbdvkmgr6kbsmbwiiyv3bb0d6wk25frgvld9cf8540136z9p1"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "eclipse-jetty-util.jar"
+ #:source-dir "src/main/java"
+ #:test-exclude
+ (list "**/Abstract*.java"
+ ;; requires network
+ "**/InetAddressSetTest.java"
+ ;; Assumes we are using maven
+ "**/TypeUtilTest.java"
+ ;; Error on the style of log
+ "**/StdErrLogTest.java")
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "jetty-util")
+ #t)))))
+ (inputs
+ `(("slf4j" ,java-slf4j-api)
+ ("servlet" ,java-tomcat)))
+ (native-inputs
+ `(("junit" ,java-junit)
+ ("hamcrest" ,java-hamcrest-all)
+ ("perf-helper" ,java-eclipse-jetty-perf-helper)
+ ("test-helper" ,java-eclipse-jetty-test-helper)))
+ (home-page "https://www.eclipse.org/jetty/")
+ (synopsis "Utility classes for Jetty")
+ (description "The Jetty Web Server provides an HTTP server and Servlet
+container capable of serving static and dynamic content either from a standalone
+or embedded instantiation. This package provides utility classes.")
+ (license (list l:epl1.0 l:asl2.0))))
+
+;; This version is required by maven-wagon
+(define-public java-eclipse-jetty-util-9.2
+ (package
+ (inherit java-eclipse-jetty-util)
+ (version "9.2.22")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/eclipse/jetty.project/"
+ "archive/jetty-" version ".v20170606.tar.gz"))
+ (sha256
+ (base32
+ "1i51qlsd7h06d35kx5rqpzbfadbcszycx1iwr6vz7qc9gf9f29la"))))
+ (arguments
+ `(#:jar-name "eclipse-jetty-util.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ #:test-exclude
+ (list "**/Abstract*.java"
+ ;; requires network
+ "**/InetAddressSetTest.java"
+ ;; Assumes we are using maven
+ "**/TypeUtilTest.java"
+ ;; We don't have an implementation for slf4j
+ "**/LogTest.java"
+ ;; Error on the style of log
+ "**/StdErrLogTest.java")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "jetty-util")
+ #t))
+ (add-before 'build 'fix-test-sources
+ (lambda _
+ ;; We need to fix issues caused by changes in newer versions of
+ ;; jetty-test-helper
+ (let ((src "src/test/java/org/eclipse/jetty/util/resource"))
+ (substitute* (string-append src "/AbstractFSResourceTest.java")
+ (("testdir.getDir\\(\\)") "testdir.getPath().toFile()")
+ (("testdir.getFile\\(\"foo\"\\)")
+ "testdir.getPathFile(\"foo\").toFile()")
+ (("testdir.getFile\\(name\\)")
+ "testdir.getPathFile(name).toFile()")))
+ #t)))))))
+
+(define-public java-eclipse-jetty-io
+ (package
+ (inherit java-eclipse-jetty-util)
+ (name "java-eclipse-jetty-io")
+ (arguments
+ `(#:jar-name "eclipse-jetty-io.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ #:test-exclude (list "**/Abstract*.java"
+ ;; Abstract class
+ "**/EndPointTest.java")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "jetty-io")
+ #t)))))
+ (inputs
+ `(("slf4j" ,java-slf4j-api)
+ ("servlet" ,java-tomcat)
+ ("util" ,java-eclipse-jetty-util)))
+ (synopsis "Jetty :: IO Utility")
+ (description "The Jetty Web Server provides an HTTP server and Servlet
+container capable of serving static and dynamic content either from a standalone
+or embedded instantiation. This package provides IO-related utility classes.")))
+
+(define-public java-eclipse-jetty-io-9.2
+ (package
+ (inherit java-eclipse-jetty-io)
+ (version (package-version java-eclipse-jetty-util-9.2))
+ (source (package-source java-eclipse-jetty-util-9.2))
+ (inputs
+ `(("util" ,java-eclipse-jetty-util-9.2)
+ ,@(package-inputs java-eclipse-jetty-util-9.2)))
+ (native-inputs
+ `(("mockito" ,java-mockito-1)
+ ("cglib" ,java-cglib)
+ ("objenesis" ,java-objenesis)
+ ("asm" ,java-asm)
+ ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
+
+(define-public java-eclipse-jetty-http
+ (package
+ (inherit java-eclipse-jetty-util)
+ (name "java-eclipse-jetty-http")
+ (arguments
+ `(#:jar-name "eclipse-jetty-http.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "jetty-http")
+ #t))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (mkdir-p "build/classes")
+ (copy-recursively "src/main/resources/" "build/classes/")
+ #t)))))
+ (inputs
+ `(("slf4j" ,java-slf4j-api)
+ ("servlet" ,java-tomcat)
+ ("io" ,java-eclipse-jetty-io)
+ ("util" ,java-eclipse-jetty-util)))
+ (synopsis "Jetty :: Http Utility")
+ (description "The Jetty Web Server provides an HTTP server and Servlet
+container capable of serving static and dynamic content either from a standalone
+or embedded instantiation. This package provides HTTP-related utility classes.")))
+
+(define-public java-eclipse-jetty-http-9.2
+ (package
+ (inherit java-eclipse-jetty-http)
+ (version (package-version java-eclipse-jetty-util-9.2))
+ (source (package-source java-eclipse-jetty-util-9.2))
+ (inputs
+ `(("util" ,java-eclipse-jetty-util-9.2)
+ ("io" ,java-eclipse-jetty-io-9.2)
+ ,@(package-inputs java-eclipse-jetty-util-9.2)))))
+
+(define-public java-eclipse-jetty-jmx
+ (package
+ (inherit java-eclipse-jetty-util)
+ (name "java-eclipse-jetty-jmx")
+ (arguments
+ `(#:jar-name "eclipse-jetty-jmx.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ #:tests? #f; FIXME: requires com.openpojo.validation
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "jetty-jmx")
+ #t)))))
+ (inputs
+ `(("slf4j" ,java-slf4j-api)
+ ("servlet" ,java-tomcat)
+ ("util" ,java-eclipse-jetty-util)))
+ (synopsis "Jetty :: JMX Management")
+ (description "The Jetty Web Server provides an HTTP server and Servlet
+container capable of serving static and dynamic content either from a standalone
+or embedded instantiation. This package provides the JMX management.")))
+
+(define-public java-eclipse-jetty-jmx-9.2
+ (package
+ (inherit java-eclipse-jetty-jmx)
+ (version (package-version java-eclipse-jetty-util-9.2))
+ (source (package-source java-eclipse-jetty-util-9.2))
+ (inputs
+ `(("util" ,java-eclipse-jetty-util-9.2)
+ ,@(package-inputs java-eclipse-jetty-util-9.2)))))
+
+(define java-eclipse-jetty-http-test-classes
+ (package
+ (inherit java-eclipse-jetty-util)
+ (name "java-eclipse-jetty-http-test-classes")
+ (arguments
+ `(#:jar-name "eclipse-jetty-http.jar"
+ #:source-dir "src/test"
+ #:tests? #f
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "jetty-http"))))))
+ (inputs
+ `(("slf4j" ,java-slf4j-api)
+ ("servlet" ,java-tomcat)
+ ("http" ,java-eclipse-jetty-http)
+ ("io" ,java-eclipse-jetty-io)
+ ("util" ,java-eclipse-jetty-util)))))
+
+(define java-eclipse-jetty-http-test-classes-9.2
+ (package
+ (inherit java-eclipse-jetty-http-test-classes)
+ (version (package-version java-eclipse-jetty-util-9.2))
+ (source (package-source java-eclipse-jetty-util-9.2))
+ (inputs
+ `(("http" ,java-eclipse-jetty-http-9.2)
+ ,@(package-inputs java-eclipse-jetty-http-9.2)))))
+
+(define-public java-eclipse-jetty-server
+ (package
+ (inherit java-eclipse-jetty-util)
+ (name "java-eclipse-jetty-server")
+ (arguments
+ `(#:jar-name "eclipse-jetty-server.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ #:tests? #f; requires a mockito version we don't have
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "jetty-server")
+ #t))
+ (add-before 'build 'fix-source
+ (lambda _
+ ;; Explicit casts to prevent build failures
+ (substitute* "src/main/java/org/eclipse/jetty/server/Request.java"
+ (("append\\(LazyList")
+ "append((CharSequence)LazyList"))
+ (substitute*
+ "src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java"
+ (((string-append
+ "Class<\\? extends EventListener> clazz = _classLoader==null"
+ "\\?Loader.loadClass\\(ContextHandler.class,className\\):"
+ "_classLoader.loadClass\\(className\\);"))
+ (string-append "Class<? extends EventListener> clazz = "
+ "(Class<? extends EventListener>) "
+ "(_classLoader==null?Loader.loadClass("
+ "ContextHandler.class,className):"
+ "_classLoader.loadClass(className));")))
+ #t)))))
+ (inputs
+ `(("slf4j" ,java-slf4j-api)
+ ("servlet" ,java-tomcat)
+ ("http" ,java-eclipse-jetty-http)
+ ("io" ,java-eclipse-jetty-io)
+ ("jmx" ,java-eclipse-jetty-jmx)
+ ("util" ,java-eclipse-jetty-util)))
+ (native-inputs
+ `(("test-classes" ,java-eclipse-jetty-http-test-classes)
+ ,@(package-native-inputs java-eclipse-jetty-util)))
+ (synopsis "Core jetty server artifact")
+ (description "The Jetty Web Server provides an HTTP server and Servlet
+container capable of serving static and dynamic content either from a standalone
+or embedded instantiation. This package provides the core jetty server
+artifact.")))
+
+(define-public java-eclipse-jetty-server-9.2
+ (package
+ (inherit java-eclipse-jetty-server)
+ (version (package-version java-eclipse-jetty-util-9.2))
+ (source (package-source java-eclipse-jetty-util-9.2))
+ (inputs
+ `(("util" ,java-eclipse-jetty-util-9.2)
+ ("jmx" ,java-eclipse-jetty-jmx-9.2)
+ ("io" ,java-eclipse-jetty-io-9.2)
+ ("http" ,java-eclipse-jetty-http-9.2)
+ ,@(package-inputs java-eclipse-jetty-util-9.2)))
+ (native-inputs
+ `(("test-classes" ,java-eclipse-jetty-http-test-classes-9.2)
+ ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
+
+(define-public java-eclipse-jetty-security
+ (package
+ (inherit java-eclipse-jetty-util)
+ (name "java-eclipse-jetty-security")
+ (arguments
+ `(#:jar-name "eclipse-jetty-security.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "jetty-security")
+ #t)))))
+ (inputs
+ `(("slf4j" ,java-slf4j-api)
+ ("servlet" ,java-tomcat)
+ ("http" ,java-eclipse-jetty-http)
+ ("server" ,java-eclipse-jetty-server)
+ ("util" ,java-eclipse-jetty-util)))
+ (native-inputs
+ `(("io" ,java-eclipse-jetty-io)
+ ,@(package-native-inputs java-eclipse-jetty-util)))
+ (synopsis "Jetty security infrastructure")
+ (description "The Jetty Web Server provides an HTTP server and Servlet
+container capable of serving static and dynamic content either from a standalone
+or embedded instantiation. This package provides the core jetty security
+infrastructure")))
+
+(define-public java-eclipse-jetty-security-9.2
+ (package
+ (inherit java-eclipse-jetty-security)
+ (version (package-version java-eclipse-jetty-util-9.2))
+ (source (package-source java-eclipse-jetty-util-9.2))
+ (inputs
+ `(("util" ,java-eclipse-jetty-util-9.2)
+ ("http" ,java-eclipse-jetty-http-9.2)
+ ("server" ,java-eclipse-jetty-server-9.2)
+ ,@(package-inputs java-eclipse-jetty-util-9.2)))
+ (native-inputs
+ `(("io" ,java-eclipse-jetty-io-9.2)
+ ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
+
+(define-public java-eclipse-jetty-servlet
+ (package
+ (inherit java-eclipse-jetty-util)
+ (name "java-eclipse-jetty-servlet")
+ (arguments
+ `(#:jar-name "eclipse-jetty-servlet.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "jetty-servlet")
+ #t)))))
+ (inputs
+ `(("slf4j" ,java-slf4j-api)
+ ("servlet" ,java-tomcat)
+ ("http" ,java-eclipse-jetty-http)
+ ("http-test" ,java-eclipse-jetty-http-test-classes)
+ ("io" ,java-eclipse-jetty-io)
+ ("jmx" ,java-eclipse-jetty-jmx)
+ ("security" ,java-eclipse-jetty-security)
+ ("server" ,java-eclipse-jetty-server)
+ ("util" ,java-eclipse-jetty-util)))
+ (synopsis "Jetty Servlet Container")
+ (description "The Jetty Web Server provides an HTTP server and Servlet
+container capable of serving static and dynamic content either from a standalone
+or embedded instantiation. This package provides the core jetty servlet
+container.")))
+
+(define-public java-eclipse-jetty-servlet-9.2
+ (package
+ (inherit java-eclipse-jetty-servlet)
+ (version (package-version java-eclipse-jetty-util-9.2))
+ (source (package-source java-eclipse-jetty-util-9.2))
+ (arguments
+ `(#:jar-name "eclipse-jetty-servlet.jar"
+ #:source-dir "src/main/java"
+ #:jdk ,icedtea-8
+ #:tests? #f; doesn't work
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "jetty-servlet")
+ #t)))))
+ (inputs
+ `(("util" ,java-eclipse-jetty-util-9.2)
+ ("jmx" ,java-eclipse-jetty-jmx-9.2)
+ ("io" ,java-eclipse-jetty-io-9.2)
+ ("http" ,java-eclipse-jetty-http-9.2)
+ ("security" ,java-eclipse-jetty-security-9.2)
+ ("http-test" ,java-eclipse-jetty-http-test-classes-9.2)
+ ("server" ,java-eclipse-jetty-server-9.2)
+ ,@(package-inputs java-eclipse-jetty-util-9.2)))))
+
+(define-public tidyp
+ (package
+ (name "tidyp")
+ (version "1.04")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/downloads/petdance/tidyp/tidyp-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0f5ky0ih4vap9c6j312jn73vn8m2bj69pl2yd3a5nmv35k9zmc10"))))
+ (build-system gnu-build-system)
+ ;; ./test-thing.sh tries to run ./testall.sh, which is not included.
+ (arguments `(#:tests? #f))
+ (home-page "http://www.tidyp.com/")
+ (synopsis "Validate HTML")
+ (description "Tidyp is a program that can validate your HTML, as well as
+modify it to be more clean and standard. tidyp does not validate HTML 5.
+
+libtidyp is the library on which the program is based. It can be used by any
+other program that can interface to it. The Perl module @code{HTML::Tidy} is
+based on this library, allowing Perl programmers to easily validate HTML.")
+ ;; See htmldoc/license.html
+ (license l:bsd-3)))
+
+(define-public perl-html-tidy
+ (package
+ (name "perl-html-tidy")
+ (version "1.60")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tidy-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1iyp2fd6j75cn1xvcwl2lxr8qpjxssy2360cyqn6g3kzd1fzdyxw"))))
+ (build-system perl-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-tidyp-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "Makefile.PL"
+ (("^my \\$inc = \"" line)
+ (string-append line
+ "-I" (assoc-ref inputs "tidyp") "/include/tidyp "))
+ (("-L/usr/lib")
+ (string-append
+ "-L" (assoc-ref inputs "tidyp") "/lib")))
+ #t)))))
+ (inputs
+ `(("perl-libwww" ,perl-libwww)
+ ("tidyp" ,tidyp)))
+ (native-inputs
+ `(("perl-test-exception" ,perl-test-exception)))
+ (home-page "http://search.cpan.org/dist/HTML-Tidy/")
+ (synopsis "(X)HTML validation in a Perl object")
+ (description "@code{HTML::Tidy} is an HTML checker in a handy dandy
+object. It's meant as a replacement for @code{HTML::Lint}, which is written
+in Perl but is not nearly as capable as @code{HTML::Tidy}.")
+ (license l:artistic2.0)))
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index 7b4b306e8f..59188ac4db 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -54,14 +54,14 @@
(define-public webkitgtk
(package
(name "webkitgtk")
- (version "2.18.0")
+ (version "2.18.1")
(source (origin
(method url-fetch)
(uri (string-append "https://www.webkitgtk.org/releases/"
name "-" version ".tar.xz"))
(sha256
(base32
- "1383wlv98l8fwmhzy0fad82a44h5svm89c1kpa03wsp37mmf90xm"))))
+ "15fp7szmkpannx7avsynf0nv3y343qwq0fvq3rz2m2mw5wq7pnww"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; no tests
diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm
index 47274411b5..9277f57ad4 100644
--- a/gnu/packages/xiph.scm
+++ b/gnu/packages/xiph.scm
@@ -5,7 +5,7 @@
;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
-;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -139,7 +139,11 @@ compressed video format.")
(base32
"150047wnllz4r94whb9r73l5qf0z5z3rlhy98bawfbblmkq8mbpa"))))
(build-system gnu-build-system)
- (inputs `(("libogg" ,libogg)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libogg" ,libogg)
+ ("speexdsp" ,speexdsp)))
(home-page "https://gnu.org/software/speex")
(synopsis "Library for patent-free audio compression format")
(description
@@ -163,6 +167,11 @@ stereo encoding, and voice activity detection.")
(base32
"1wcjyrnwlkayb20zdhp48y260rfyzg925qpjpljd5x9r01h8irja"))))
(build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags '(,@(if (string=? "aarch64-linux"
+ (%current-system))
+ '("--enable-neon=no") ; neon defaults to armv7-a
+ '()))))
(home-page "https://speex.org/")
(synopsis "Speex processing library")
(description
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index d889e602ed..23641842e6 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -5,18 +5,19 @@
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Raimon Grau <raimonster@gmail.com>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
-;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
+;;; Copyright © 2017 Petter <petter@mykolab.ch>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -56,15 +57,14 @@
(define-public expat
(package
(name "expat")
- (version "2.2.1")
- (replacement expat-2.2.2)
+ (version "2.2.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/expat/expat/"
version "/expat-" version ".tar.bz2"))
(sha256
(base32
- "11c8jy1wvllvlk7xdc5cm8hdhg0hvs8j0aqy6s702an8wkdcls0q"))))
+ "17h1fb9zvqvf0sr78j211bngc6jpql5wzar8fg9b52jzjvdqbb83"))))
(build-system gnu-build-system)
(home-page "http://www.libexpat.org/")
(synopsis "Stream-oriented XML parser library written in C")
@@ -74,18 +74,6 @@ stream-oriented parser in which an application registers handlers for
things the parser might find in the XML document (like start tags).")
(license license:expat)))
-(define expat-2.2.2 ; Fixes CVE-2017-9233, CVE-2016-9063 and other issues.
- (package
- (inherit expat)
- (version "2.2.2")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/expat/expat/"
- version "/expat-" version ".tar.bz2"))
- (sha256
- (base32
- "0ik0r39ala9c6hj4kxrk933klgwkzlkbrfhvhaykx8l1rwgr2xj3"))))))
-
(define-public libebml
(package
(name "libebml")
@@ -110,17 +98,14 @@ hierarchical form with variable field lengths.")
(define-public libxml2
(package
(name "libxml2")
- (version "2.9.4")
- (replacement libxml2/fixed)
+ (version "2.9.6")
(source (origin
(method url-fetch)
(uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-"
version ".tar.gz"))
- (patches (search-patches "libxml2-CVE-2016-4658.patch"
- "libxml2-CVE-2016-5131.patch"))
(sha256
(base32
- "0g336cr0bw6dax1q48bblphmchgihx9p1pjmxdnrd6sh3qci3fgz"))))
+ "1g7byn6y0yw17rl74gs89xnxrpwj424938rf8qfqh3i4lz63i44b"))))
(build-system gnu-build-system)
(home-page "http://www.xmlsoft.org/")
(synopsis "C parser for XML")
@@ -140,20 +125,6 @@ hierarchical form with variable field lengths.")
project (but it is usable outside of the Gnome platform).")
(license license:x11)))
-(define libxml2/fixed
- (package
- (inherit libxml2)
- (source
- (origin
- (inherit (package-source libxml2))
- (patches
- (append (origin-patches (package-source libxml2))
- (search-patches "libxml2-CVE-2017-0663.patch"
- "libxml2-CVE-2017-7375.patch"
- "libxml2-CVE-2017-7376.patch"
- "libxml2-CVE-2017-9047+CVE-2017-9048.patch"
- "libxml2-CVE-2017-9049+CVE-2017-9050.patch")))))))
-
(define-public python-libxml2
(package (inherit libxml2)
(name "python-libxml2")
@@ -186,15 +157,14 @@ project (but it is usable outside of the Gnome platform).")
(define-public libxslt
(package
(name "libxslt")
- (version "1.1.29")
+ (version "1.1.31")
(source (origin
(method url-fetch)
(uri (string-append "ftp://xmlsoft.org/libxslt/libxslt-"
version ".tar.gz"))
- (patches (search-patches "libxslt-CVE-2016-4738.patch"))
(sha256
(base32
- "1klh81xbm9ppzgqk339097i39b7fnpmlj8lzn8bpczl3aww6x5xm"))
+ "1azk48vf91nfajhm7k9cz3zrvh0aaq85ph37gqkl84c0ddmyj9fv"))
(patches (search-patches "libxslt-generated-ids.patch"))))
(build-system gnu-build-system)
(home-page "http://xmlsoft.org/XSLT/index.html")
@@ -1266,3 +1236,160 @@ This framework aids the development of XML systems with minimal effort and
reduced errors. It offers full object serialization and deserialization,
maintaining each reference encountered.")
(license license:asl2.0)))
+
+(define-public perl-xml-xpathengine
+ (package
+ (name "perl-xml-xpathengine")
+ (version "0.14")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
+ "XML-XPathEngine-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0r72na14bmsxfd16s9nlza155amqww0k8wsa9x2a3sqbpp5ppznj"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/XML-XPathEngine/")
+ (synopsis "Re-usable XPath engine for DOM-like trees")
+ (description
+ "This module provides an XPath engine, that can be re-used by other
+modules/classes that implement trees.
+
+In order to use the XPath engine, nodes in the user module need to mimick DOM
+nodes. The degree of similitude between the user tree and a DOM dictates how
+much of the XPath features can be used. A module implementing all of the DOM
+should be able to use this module very easily (you might need to add the
+@code{cmp} method on nodes in order to get ordered result sets).")
+ (license license:perl-license)))
+
+(define-public perl-tree-xpathengine
+ (package
+ (name "perl-tree-xpathengine")
+ (version "0.05")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
+ "Tree-XPathEngine-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1vbbw8wxm79r3xbra8narw1dqvm34510q67wbmg2zmj6zd1k06r9"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/Tree-XPathEngine/")
+ (synopsis "Re-usable XPath engine")
+ (description
+ "This module provides an XPath engine, that can be re-used by other
+module/classes that implement trees. It is designed to be compatible with
+@code{Class::XPath}, ie it passes its tests if you replace @code{Class::XPath}
+by @code{Tree::XPathEngine}.")
+ (license license:perl-license)))
+
+(define-public perl-xml-filter-buffertext
+ (package
+ (name "perl-xml-filter-buffertext")
+ (version "1.01")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/R/RB/RBERJON/"
+ "XML-Filter-BufferText-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0p5785c1dsk6kdp505vapb5h54k8krrz8699hpgm9igf7dni5llg"))))
+ (build-system perl-build-system)
+ (propagated-inputs
+ `(("perl-xml-sax-base" ,perl-xml-sax-base)))
+ (home-page "http://search.cpan.org/dist/XML-Filter-BufferText/")
+ (synopsis "Filter to put all characters() in one event")
+ (description "This is a very simple filter. One common cause of
+grief (and programmer error) is that XML parsers aren't required to provide
+character events in one chunk. They can, but are not forced to, and most
+don't. This filter does the trivial but oft-repeated task of putting all
+characters into a single event.")
+ (license license:perl-license)))
+
+(define-public perl-xml-sax-writer
+ (package
+ (name "perl-xml-sax-writer")
+ (version "0.57")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/P/PE/PERIGRIN/"
+ "XML-SAX-Writer-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1w1cd1ybxdvhmnxdlkywi3x5ka3g4md42kyynksjc09vyizd0q9x"))))
+ (build-system perl-build-system)
+ (propagated-inputs
+ `(("perl-libxml" ,perl-libxml)
+ ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
+ ("perl-xml-namespacesupport", perl-xml-namespacesupport)
+ ("perl-xml-sax-base" ,perl-xml-sax-base)))
+ (home-page "http://search.cpan.org/dist/XML-SAX-Writer/")
+ (synopsis "SAX2 XML Writer")
+ (description
+ "This is an XML writer that understands SAX2. It is based on
+@code{XML::Handler::YAWriter}.")
+ (license license:perl-license)))
+
+(define-public perl-xml-handler-yawriter
+ (package
+ (name "perl-xml-handler-yawriter")
+ (version "0.23")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/K/KR/KRAEHE/"
+ "XML-Handler-YAWriter-" version ".tar.gz"))
+ (sha256
+ (base32
+ "11d45a1sz862va9rry3p2m77pwvq3kpsvgwhc5ramh9mbszbnk77"))))
+ (build-system perl-build-system)
+ (propagated-inputs
+ `(("perl-libxml" ,perl-libxml)))
+ (home-page "http://search.cpan.org/dist/XML-Handler-YAWriter/")
+ (synopsis "Yet another Perl SAX XML Writer")
+ (description "YAWriter implements Yet Another @code{XML::Handler::Writer}.
+It provides a flexible escaping technique and pretty printing.")
+ (license license:perl-license)))
+
+(define-public perl-xml-twig
+ (package
+ (name "perl-xml-twig")
+ (version "3.52")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/M/MI/MIROD/"
+ "XML-Twig-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1bc0hrz4jp6199hi29sdxmb9gyy45whla9hd19yqfasgq8k5ixzy"))))
+ (build-system perl-build-system)
+ (inputs
+ `(("expat" ,expat)))
+ (propagated-inputs
+ `(("perl-html-tidy" ,perl-html-tidy)
+ ("perl-html-tree" ,perl-html-tree)
+ ("perl-io-captureoutput" ,perl-io-captureoutput)
+ ("perl-io-string" ,perl-io-string)
+ ("perl-io-stringy" ,perl-io-stringy)
+ ("perl-libxml" ,perl-libxml)
+ ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
+ ("perl-xml-handler-yawriter" ,perl-xml-handler-yawriter)
+ ("perl-xml-parser" ,perl-xml-parser)
+ ("perl-xml-sax-writer" ,perl-xml-sax-writer)
+ ("perl-xml-simple" ,perl-xml-simple)
+ ("perl-xml-xpathengine" ,perl-xml-xpathengine)
+ ("perl-test-pod", perl-test-pod)
+ ("perl-tree-xpathengine" ,perl-tree-xpathengine)))
+ (home-page "http://search.cpan.org/dist/XML-Twig/")
+ (synopsis "Perl module for processing huge XML documents in tree mode")
+ (description "@code{XML::Twig} is an XML transformation module. Its
+strong points: can be used to process huge documents while still being in tree
+mode; not bound by DOM or SAX, so it is very perlish and offers a very
+comprehensive set of methods; simple to use; DWIMs as much as possible.
+
+What it doesn't offer: full SAX support (it can export SAX, but only reads
+XML), full XPath support (unless you use @code{XML::Twig::XPath}), nor DOM
+support.")
+ (license license:perl-license)))
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 4caa3d9ff7..1a2bf80004 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -3818,7 +3818,7 @@ extension to the X11 protocol. It includes:
(define-public xkeyboard-config
(package
(name "xkeyboard-config")
- (version "2.21")
+ (version "2.22")
(source
(origin
(method url-fetch)
@@ -3828,7 +3828,7 @@ extension to the X11 protocol. It includes:
".tar.bz2"))
(sha256
(base32
- "1iffxpchy6dfgbby23nfsqqk17h9lfddlmjnhwagqag1z94p1h9h"))))
+ "1garmbyfjp0han04l2l90zzwlfbdgdxl6r1qnic36i5wkycckbny"))))
(build-system gnu-build-system)
(inputs
`(("gettext" ,gettext-minimal)
@@ -4892,24 +4892,16 @@ new API's in libXft, or the legacy API's in libX11.")
(package
(inherit libxfont)
(version "2.0.1")
- (replacement libxfont2/fixed)
(source (origin
(method url-fetch)
(uri (string-append "mirror://xorg/individual/lib/libXfont2-"
version ".tar.bz2"))
+ (patches (search-patches "libxfont-CVE-2017-13720.patch"
+ "libxfont-CVE-2017-13722.patch"))
(sha256
(base32
"0znvwk36nhmyqpmhbm9mzisgixp1mp5qkfald8x1n5yxbm3vpyz9"))))))
-(define libxfont2/fixed
- (package
- (inherit libxfont2)
- (source
- (origin
- (inherit (package-source libxfont2))
- (patches (search-patches "libxfont-CVE-2017-13720.patch"
- "libxfont-CVE-2017-13722.patch"))))))
-
(define-public libxi
(package
(name "libxi")
diff --git a/gnu/services.scm b/gnu/services.scm
index 0bd3620852..50be28a382 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -95,10 +95,7 @@
%boot-service
%activation-service
- etc-service
-
- file-union ;XXX: for lack of a better place
- directory-union))
+ etc-service))
;;; Comment:
;;;
@@ -388,38 +385,6 @@ boot."
(list (service-extension boot-service-type
cleanup-gexp)))))
-(define* (file-union name files) ;FIXME: Factorize.
- "Return a <computed-file> that builds a directory containing all of FILES.
-Each item in FILES must be a list where the first element is the file name to
-use in the new directory, and the second element is a gexp denoting the target
-file."
- (computed-file name
- #~(begin
- (mkdir #$output)
- (chdir #$output)
- #$@(map (match-lambda
- ((target source)
- #~(begin
- ;; Stat the source to abort early if it
- ;; does not exist.
- (stat #$source)
-
- (symlink #$source #$target))))
- files))))
-
-(define (directory-union name things)
- "Return a directory that is the union of THINGS."
- (match things
- ((one)
- ;; Only one thing; return it.
- one)
- (_
- (computed-file name
- (with-imported-modules '((guix build union))
- #~(begin
- (use-modules (guix build union))
- (union-build #$output '#$things)))))))
-
(define* (activation-service->script service)
"Return as a monadic value the activation script for SERVICE, a service of
ACTIVATION-SCRIPT-TYPE."
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 541ca76f14..b605614ab6 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -71,6 +71,7 @@
udev-service-type
udev-service
udev-rule
+ file->udev-rule
login-configuration
login-configuration?
@@ -1630,6 +1631,22 @@ item of @var{packages}."
(lambda (port)
(display #$contents port)))))))
+(define (file->udev-rule file-name file)
+ "Return a directory with a udev rule file FILE-NAME which is a copy of FILE."
+ (computed-file file-name
+ (with-imported-modules '((guix build utils))
+ #~(begin
+ (use-modules (guix build utils))
+
+ (define rules.d
+ (string-append #$output "/lib/udev/rules.d"))
+
+ (define file-copy-dest
+ (string-append rules.d "/" #$file-name))
+
+ (mkdir-p rules.d)
+ (copy-file #$file file-copy-dest)))))
+
(define kvm-udev-rule
;; Return a directory with a udev rule that changes the group of /dev/kvm to
;; "kvm" and makes it #o660. Apparently QEMU-KVM used to ship this rule,
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 273a895bef..3127b305e1 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -49,7 +49,7 @@
#:use-module (gnu packages admin)
#:use-module (gnu bootloader)
- #:use-module ((gnu bootloader grub) #:select (grub-mkrescue-bootloader))
+ #:use-module (gnu bootloader grub)
#:use-module (gnu system shadow)
#:use-module (gnu system pam)
#:use-module (gnu system linux-initrd)
@@ -565,6 +565,14 @@ environment with the store shared with the host. MAPPINGS is a list of
user-file-systems)))
(operating-system (inherit os)
+
+ ;; XXX: Until we run QEMU with UEFI support (with the OVMF firmware),
+ ;; force the traditional i386/BIOS method.
+ ;; See <https://bugs.gnu.org/28768>.
+ (bootloader (bootloader-configuration
+ (bootloader grub-bootloader)
+ (target "/dev/vda")))
+
(initrd (lambda (file-systems . rest)
(apply base-initrd file-systems
#:volatile-root? #t
diff --git a/guix/build-system/go.scm b/guix/build-system/go.scm
index 43599df6f4..ec447d2a28 100644
--- a/guix/build-system/go.scm
+++ b/guix/build-system/go.scm
@@ -78,6 +78,7 @@
%standard-phases))
(outputs '("out"))
(search-paths '())
+ (install-source? #t)
(import-path "")
(unpack-path "")
(tests? #t)
@@ -102,6 +103,7 @@
#:outputs %outputs
#:search-paths ',(map search-path-specification->sexp
search-paths)
+ #:install-source? ,install-source?
#:import-path ,import-path
#:unpack-path ,unpack-path
#:tests? ,tests?
diff --git a/guix/build-system/r.scm b/guix/build-system/r.scm
index c649036210..2c8a89f8de 100644
--- a/guix/build-system/r.scm
+++ b/guix/build-system/r.scm
@@ -50,7 +50,7 @@ available via the first URI, the second URI points to the archived version."
(define (bioconductor-uri name version)
"Return a URI string for the R package archive on Bioconductor for the
release corresponding to NAME and VERSION."
- (string-append "http://bioconductor.org/packages/release/bioc/src/contrib/"
+ (string-append "https://bioconductor.org/packages/release/bioc/src/contrib/"
name "_" version ".tar.gz"))
(define %r-build-system-modules
diff --git a/guix/build/compile.scm b/guix/build/compile.scm
new file mode 100644
index 0000000000..ea0c36fa33
--- /dev/null
+++ b/guix/build/compile.scm
@@ -0,0 +1,165 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013, 2014, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@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/>.
+
+(define-module (guix build compile)
+ #:use-module (ice-9 match)
+ #:use-module (ice-9 format)
+ #:use-module (ice-9 threads)
+ #:use-module (system base target)
+ #:use-module (system base compile)
+ #:use-module (system base message)
+ #:use-module (guix modules)
+ #:use-module (guix build utils)
+ #:export (%default-optimizations
+ %lightweight-optimizations
+ compile-files))
+
+;;; Commentary:
+;;;
+;;; Support code to compile Guile code as efficiently as possible (both with
+;;; Guile 2.0 and 2.2).
+;;;
+;;; Code:
+
+(cond-expand
+ (guile-2.2 (use-modules (language tree-il optimize)
+ (language cps optimize)))
+ (else #f))
+
+(define %default-optimizations
+ ;; Default optimization options (equivalent to -O2 on Guile 2.2).
+ (cond-expand
+ (guile-2.2 (append (tree-il-default-optimization-options)
+ (cps-default-optimization-options)))
+ (else '())))
+
+(define %lightweight-optimizations
+ ;; Lightweight optimizations (like -O0, but with partial evaluation).
+ (let loop ((opts %default-optimizations)
+ (result '()))
+ (match opts
+ (() (reverse result))
+ ((#:partial-eval? _ rest ...)
+ (loop rest `(#t #:partial-eval? ,@result)))
+ ((kw _ rest ...)
+ (loop rest `(#f ,kw ,@result))))))
+
+(define %warnings
+ ;; FIXME: 'format' is missing because it reports "non-literal format
+ ;; strings" due to the fact that we use 'G_' instead of '_'. We'll need
+ ;; help from Guile to solve this.
+ '(unsupported-warning unbound-variable arity-mismatch
+ macro-use-before-definition)) ;new in 2.2
+
+(define (optimization-options file)
+ "Return the default set of optimizations options for FILE."
+ (if (string-contains file "gnu/packages/")
+ %lightweight-optimizations ;build faster
+ '()))
+
+(define (scm->go file)
+ "Strip the \".scm\" suffix from FILE, and append \".go\"."
+ (string-append (string-drop-right file 4) ".go"))
+
+(define* (load-files directory files
+ #:key
+ (report-load (const #f))
+ (debug-port (%make-void-port "w")))
+ "Load FILES, a list of relative file names, from DIRECTORY."
+ (define total
+ (length files))
+
+ (let loop ((files files)
+ (completed 0))
+ (match files
+ (()
+ (unless (zero? total)
+ (report-load #f total completed))
+ *unspecified*)
+ ((file files ...)
+ (report-load file total completed)
+ (format debug-port "~%loading '~a'...~%" file)
+
+ (parameterize ((current-warning-port debug-port))
+ (resolve-interface (file-name->module-name file)))
+
+ (loop files (+ 1 completed))))))
+
+(define-syntax-rule (with-augmented-search-path path item body ...)
+ "Within the dynamic extent of BODY, augment PATH by adding ITEM to the
+front."
+ (let ((initial-value path))
+ (dynamic-wind
+ (lambda ()
+ (set! path (cons item path)))
+ (lambda ()
+ body ...)
+ (lambda ()
+ (set! path initial-value)))))
+
+(define* (compile-files source-directory build-directory files
+ #:key
+ (host %host-type)
+ (workers (current-processor-count))
+ (optimization-options optimization-options)
+ (warning-options `(#:warnings ,%warnings))
+ (report-load (const #f))
+ (report-compilation (const #f))
+ (debug-port (%make-void-port "w")))
+ "Compile FILES, a list of source files taken from SOURCE-DIRECTORY, to
+BUILD-DIRECTORY, using up to WORKERS parallel workers. The resulting object
+files are for HOST, a GNU triplet such as \"x86_64-linux-gnu\"."
+ (define progress-lock (make-mutex))
+ (define total (length files))
+ (define completed 0)
+
+ (define (build file)
+ (with-mutex progress-lock
+ (report-compilation file total completed))
+ (with-fluids ((*current-warning-prefix* ""))
+ (with-target host
+ (lambda ()
+ (compile-file file
+ #:output-file (string-append build-directory "/"
+ (scm->go file))
+ #:opts (append warning-options
+ (optimization-options file))))))
+ (with-mutex progress-lock
+ (set! completed (+ 1 completed))))
+
+ (with-augmented-search-path %load-path source-directory
+ (with-augmented-search-path %load-compiled-path build-directory
+ ;; FIXME: To work around <https://bugs.gnu.org/15602>, we first load all
+ ;; of FILES.
+ (load-files source-directory files
+ #:report-load report-load
+ #:debug-port debug-port)
+
+ ;; Make sure compilation related modules are loaded before starting to
+ ;; compile files in parallel.
+ (compile #f)
+
+ (n-par-for-each workers build files)
+ (unless (zero? total)
+ (report-compilation #f total total)))))
+
+;;; Local Variables:
+;;; eval: (put 'with-augmented-search-path 'scheme-indent-function 2)
+;;; eval: (put 'with-target 'scheme-indent-function 1)
+;;; End:
diff --git a/guix/build/download-nar.scm b/guix/build/download-nar.scm
new file mode 100644
index 0000000000..13f01fb1e8
--- /dev/null
+++ b/guix/build/download-nar.scm
@@ -0,0 +1,125 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix build download-nar)
+ #:use-module (guix build download)
+ #:use-module (guix build utils)
+ #:use-module (guix serialization)
+ #:use-module (guix zlib)
+ #:use-module (guix progress)
+ #:use-module (web uri)
+ #:use-module (srfi srfi-11)
+ #:use-module (srfi srfi-26)
+ #:use-module (ice-9 format)
+ #:use-module (ice-9 match)
+ #:export (download-nar))
+
+;;; Commentary:
+;;;
+;;; Download a normalized archive or "nar", similar to what 'guix substitute'
+;;; does. The intent here is to use substitute servers as content-addressed
+;;; mirrors of VCS checkouts. This is mostly useful for users who have
+;;; disabled substitutes.
+;;;
+;;; Code:
+
+(define (urls-for-item item)
+ "Return the fallback nar URL for ITEM--e.g.,
+\"/gnu/store/cabbag3…-foo-1.2-checkout\"."
+ ;; Here we hard-code nar URLs without checking narinfos. That's probably OK
+ ;; though.
+ ;; TODO: Use HTTPS? The downside is the extra dependency.
+ (let ((bases '("http://mirror.hydra.gnu.org/guix"
+ "http://berlin.guixsd.org"))
+ (item (basename item)))
+ (append (map (cut string-append <> "/nar/gzip/" item) bases)
+ (map (cut string-append <> "/nar/" item) bases))))
+
+(define (restore-gzipped-nar port item size)
+ "Restore the gzipped nar read from PORT, of SIZE bytes (compressed), to
+ITEM."
+ ;; Since PORT is typically a non-file port (for instance because 'http-get'
+ ;; returns a delimited port), create a child process so we're back to a file
+ ;; port that can be passed to 'call-with-gzip-input-port'.
+ (match (pipe)
+ ((input . output)
+ (match (primitive-fork)
+ (0
+ (dynamic-wind
+ (const #t)
+ (lambda ()
+ (close-port output)
+ (close-port port)
+ (catch #t
+ (lambda ()
+ (call-with-gzip-input-port input
+ (cut restore-file <> item)))
+ (lambda (key . args)
+ (print-exception (current-error-port)
+ (stack-ref (make-stack #t) 1)
+ key args)
+ (primitive-exit 1))))
+ (lambda ()
+ (primitive-exit 0))))
+ (child
+ (close-port input)
+ (dump-port* port output
+ #:reporter (progress-reporter/file item size
+ #:abbreviation
+ store-path-abbreviation))
+ (close-port output)
+ (newline)
+ (match (waitpid child)
+ ((_ . status)
+ (unless (zero? status)
+ (error "nar decompression failed" status)))))))))
+
+(define (download-nar item)
+ "Download and extract the normalized archive for ITEM. Return #t on
+success, #f otherwise."
+ ;; Let progress reports go through.
+ (setvbuf (current-error-port) _IONBF)
+ (setvbuf (current-output-port) _IONBF)
+
+ (let loop ((urls (urls-for-item item)))
+ (match urls
+ ((url rest ...)
+ (format #t "Trying content-addressed mirror at ~a...~%"
+ (uri-host (string->uri url)))
+ (let-values (((port size)
+ (catch #t
+ (lambda ()
+ (http-fetch (string->uri url)))
+ (lambda args
+ (values #f #f)))))
+ (if (not port)
+ (loop rest)
+ (begin
+ (if size
+ (format #t "Downloading from ~a (~,2h MiB)...~%" url
+ (/ size (expt 2 20.)))
+ (format #t "Downloading from ~a...~%" url))
+ (if (string-contains url "/gzip")
+ (restore-gzipped-nar port item size)
+ (begin
+ ;; FIXME: Add progress report.
+ (restore-file port item)
+ (close-port port)))
+ #t))))
+ (()
+ #f))))
diff --git a/guix/build/download.scm b/guix/build/download.scm
index 9490f48055..61c9c6d3f1 100644
--- a/guix/build/download.scm
+++ b/guix/build/download.scm
@@ -1,7 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2015 Steve Sprang <scs@stevesprang.com>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
@@ -27,7 +26,7 @@
#:use-module (guix base64)
#:use-module (guix ftp-client)
#:use-module (guix build utils)
- #:use-module (guix utils)
+ #:use-module (guix progress)
#:use-module (rnrs io ports)
#:use-module (rnrs bytevectors)
#:use-module (srfi srfi-1)
@@ -39,14 +38,13 @@
#:use-module (ice-9 format)
#:export (open-socket-for-uri
open-connection-for-uri
+ http-fetch
%x509-certificate-directory
close-connection
resolve-uri-reference
maybe-expand-mirrors
url-fetch
byte-count->string
- current-terminal-columns
- progress-reporter/file
uri-abbreviation
nar-uri-abbreviation
store-path-abbreviation))
@@ -61,69 +59,6 @@
;; Size of the HTTP receive buffer.
65536)
-(define current-terminal-columns
- ;; Number of columns of the terminal.
- (make-parameter 80))
-
-(define (nearest-exact-integer x)
- "Given a real number X, return the nearest exact integer, with ties going to
-the nearest exact even integer."
- (inexact->exact (round x)))
-
-(define (duration->seconds duration)
- "Return the number of seconds represented by DURATION, a 'time-duration'
-object, as an inexact number."
- (+ (time-second duration)
- (/ (time-nanosecond duration) 1e9)))
-
-(define (seconds->string duration)
- "Given DURATION in seconds, return a string representing it in 'mm:ss' or
-'hh:mm:ss' format, as needed."
- (if (not (number? duration))
- "00:00"
- (let* ((total-seconds (nearest-exact-integer duration))
- (extra-seconds (modulo total-seconds 3600))
- (num-hours (quotient total-seconds 3600))
- (hours (and (positive? num-hours) num-hours))
- (mins (quotient extra-seconds 60))
- (secs (modulo extra-seconds 60)))
- (format #f "~@[~2,'0d:~]~2,'0d:~2,'0d" hours mins secs))))
-
-(define (byte-count->string size)
- "Given SIZE in bytes, return a string representing it in a human-readable
-way."
- (let ((KiB 1024.)
- (MiB (expt 1024. 2))
- (GiB (expt 1024. 3))
- (TiB (expt 1024. 4)))
- (cond
- ((< size KiB) (format #f "~dB" (nearest-exact-integer size)))
- ((< size MiB) (format #f "~dKiB" (nearest-exact-integer (/ size KiB))))
- ((< size GiB) (format #f "~,1fMiB" (/ size MiB)))
- ((< size TiB) (format #f "~,2fGiB" (/ size GiB)))
- (else (format #f "~,3fTiB" (/ size TiB))))))
-
-(define* (progress-bar % #:optional (bar-width 20))
- "Return % as a string representing an ASCII-art progress bar. The total
-width of the bar is BAR-WIDTH."
- (let* ((fraction (/ % 100))
- (filled (inexact->exact (floor (* fraction bar-width))))
- (empty (- bar-width filled)))
- (format #f "[~a~a]"
- (make-string filled #\#)
- (make-string empty #\space))))
-
-(define (string-pad-middle left right len)
- "Combine LEFT and RIGHT with enough padding in the middle so that the
-resulting string has length at least LEN (it may overflow). If the string
-does not overflow, the last char in RIGHT will be flush with the LEN
-column."
- (let* ((total-used (+ (string-length left)
- (string-length right)))
- (num-spaces (max 1 (- len total-used)))
- (padding (make-string num-spaces #\space)))
- (string-append left padding right)))
-
(define* (ellipsis #:optional (port (current-output-port)))
"Make a rough guess at whether Unicode's HORIZONTAL ELLIPSIS can be written
in PORT's encoding, and return either that or ASCII dots."
@@ -142,105 +77,6 @@ Otherwise return STORE-PATH."
(string-drop base 32)))
store-path))
-(cond-expand
- (guile-2.2
- ;; Guile 2.2.2 has a bug whereby 'time-monotonic' objects have seconds and
- ;; nanoseconds swapped (fixed in Guile commit 886ac3e). Work around it.
- (define time-monotonic time-tai))
- (else #t))
-
-
-;; TODO: replace '(@ (guix build utils) dump-port))'.
-(define* (dump-port* in out
- #:key (buffer-size 16384)
- (reporter (make-progress-reporter noop noop noop)))
- "Read as much data as possible from IN and write it to OUT, using chunks of
-BUFFER-SIZE bytes. After each successful transfer of BUFFER-SIZE bytes or
-less, report the total number of bytes transferred to the REPORTER, which
-should be a <progress-reporter> object."
- (define buffer
- (make-bytevector buffer-size))
-
- (call-with-progress-reporter reporter
- (lambda (report)
- (let loop ((total 0)
- (bytes (get-bytevector-n! in buffer 0 buffer-size)))
- (or (eof-object? bytes)
- (let ((total (+ total bytes)))
- (put-bytevector out buffer 0 bytes)
- (report total)
- (loop total (get-bytevector-n! in buffer 0 buffer-size))))))))
-
-(define (rate-limited proc interval)
- "Return a procedure that will forward the invocation to PROC when the time
-elapsed since the previous forwarded invocation is greater or equal to
-INTERVAL (a time-duration object), otherwise does nothing and returns #f."
- (let ((previous-at #f))
- (lambda args
- (let* ((now (current-time time-monotonic))
- (forward-invocation (lambda ()
- (set! previous-at now)
- (apply proc args))))
- (if previous-at
- (let ((elapsed (time-difference now previous-at)))
- (if (time>=? elapsed interval)
- (forward-invocation)
- #f))
- (forward-invocation))))))
-
-(define* (progress-reporter/file file size
- #:optional (log-port (current-output-port))
- #:key (abbreviation basename))
- "Return a <progress-reporter> object to show the progress of FILE's download,
-which is SIZE bytes long. The progress report is written to LOG-PORT, with
-ABBREVIATION used to shorten FILE for display."
- (let ((start-time (current-time time-monotonic))
- (transferred 0))
- (define (render)
- "Write the progress report to LOG-PORT."
- (define elapsed
- (duration->seconds
- (time-difference (current-time time-monotonic) start-time)))
- (if (number? size)
- (let* ((% (* 100.0 (/ transferred size)))
- (throughput (/ transferred elapsed))
- (left (format #f " ~a ~a"
- (abbreviation file)
- (byte-count->string size)))
- (right (format #f "~a/s ~a ~a~6,1f%"
- (byte-count->string throughput)
- (seconds->string elapsed)
- (progress-bar %) %)))
- (display "\r\x1b[K" log-port)
- (display (string-pad-middle left right
- (current-terminal-columns))
- log-port)
- (flush-output-port log-port))
- (let* ((throughput (/ transferred elapsed))
- (left (format #f " ~a"
- (abbreviation file)))
- (right (format #f "~a/s ~a | ~a transferred"
- (byte-count->string throughput)
- (seconds->string elapsed)
- (byte-count->string transferred))))
- (display "\r\x1b[K" log-port)
- (display (string-pad-middle left right
- (current-terminal-columns))
- log-port)
- (flush-output-port log-port))))
-
- (progress-reporter
- (start render)
- ;; Report the progress every 300ms or longer.
- (report
- (let ((rate-limited-render
- (rate-limited render (make-time time-monotonic 300000000 0))))
- (lambda (value)
- (set! transferred value)
- (rate-limited-render))))
- ;; Don't miss the last report.
- (stop render))))
-
(define* (uri-abbreviation uri #:optional (max-length 42))
"If URI's string representation is larger than MAX-LENGTH, return an
abbreviation of URI showing the scheme, host, and basename of the file."
@@ -745,11 +581,11 @@ Return the resulting target URI."
#:query (uri-query ref)
#:fragment (uri-fragment ref)))))
-(define* (http-fetch uri file #:key timeout (verify-certificate? #t))
- "Fetch data from URI and write it to FILE; when TIMEOUT is true, bail out if
-the connection could not be established in less than TIMEOUT seconds. Return
-FILE on success. When VERIFY-CERTIFICATE? is true, verify HTTPS
-certificates; otherwise simply ignore them."
+(define* (http-fetch uri #:key timeout (verify-certificate? #t))
+ "Return an input port containing the data at URI, and the expected number of
+bytes available or #f. When TIMEOUT is true, bail out if the connection could
+not be established in less than TIMEOUT seconds. When VERIFY-CERTIFICATE? is
+true, verify HTTPS certificates; otherwise simply ignore them."
(define headers
`(;; Some web sites, such as http://dist.schmorp.de, would block you if
@@ -774,28 +610,15 @@ certificates; otherwise simply ignore them."
#:timeout timeout
#:verify-certificate?
verify-certificate?))
- ((resp bv-or-port)
+ ((resp port)
(http-get uri #:port connection #:decode-body? #f
#:streaming? #t
#:headers headers))
((code)
- (response-code resp))
- ((size)
- (response-content-length resp)))
+ (response-code resp)))
(case code
((200) ; OK
- (begin
- (call-with-output-file file
- (lambda (p)
- (if (port? bv-or-port)
- (begin
- (dump-port* bv-or-port p
- #:buffer-size %http-receive-buffer-size
- #:reporter (progress-reporter/file
- (uri-abbreviation uri) size))
- (newline))
- (put-bytevector p bv-or-port))))
- file))
+ (values port (response-content-length resp)))
((301 ; moved permanently
302 ; found (redirection)
303 ; see other
@@ -805,7 +628,7 @@ certificates; otherwise simply ignore them."
(format #t "following redirection to `~a'...~%"
(uri->string uri))
(close connection)
- (http-fetch uri file
+ (http-fetch uri
#:timeout timeout
#:verify-certificate? verify-certificate?)))
(else
@@ -876,10 +699,19 @@ otherwise simply ignore them."
file (uri->string uri))
(case (uri-scheme uri)
((http https)
- (false-if-exception* (http-fetch uri file
- #:verify-certificate?
- verify-certificate?
- #:timeout timeout)))
+ (false-if-exception*
+ (let-values (((port size)
+ (http-fetch uri
+ #:verify-certificate? verify-certificate?
+ #:timeout timeout)))
+ (call-with-output-file file
+ (lambda (output)
+ (dump-port* port output
+ #:buffer-size %http-receive-buffer-size
+ #:reporter (progress-reporter/file
+ (uri-abbreviation uri) size))
+ (newline)))
+ #t)))
((ftp)
(false-if-exception* (ftp-fetch uri file
#:timeout timeout)))
diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm
index 7f04e3db8c..72af6ce7b6 100644
--- a/guix/build/go-build-system.scm
+++ b/guix/build/go-build-system.scm
@@ -126,13 +126,14 @@ unset. When SOURCE is a directory, copy it instead of unpacking."
(zero? (system* "unzip" "-d" dest source))
(zero? (system* "tar" "-C" dest "-xvf" source))))))
-(define* (install-source #:key outputs #:allow-other-keys)
+(define* (install-source #:key install-source? outputs #:allow-other-keys)
"Install the source code to the output directory."
(let* ((out (assoc-ref outputs "out"))
(source "src")
(dest (string-append out "/" source)))
- (copy-recursively source dest #:keep-mtime? #t)
- #t))
+ (if install-source?
+ (copy-recursively source dest #:keep-mtime? #t)
+ #t)))
(define (go-package? name)
(string-prefix? "go-" name))
@@ -179,6 +180,9 @@ respectively."
(zero? (system* "go" "install"
"-v" ; print the name of packages as they are compiled
"-x" ; print each command as it is invoked
+ ;; Respectively, strip the symbol table and debug
+ ;; information, and the DWARF symbol table.
+ "-ldflags=-s -w"
import-path))
(begin
(display (string-append "Building '" import-path "' failed.\n"
diff --git a/guix/build/pull.scm b/guix/build/pull.scm
index 1ae35ab382..3573241a7e 100644
--- a/guix/build/pull.scm
+++ b/guix/build/pull.scm
@@ -20,11 +20,10 @@
(define-module (guix build pull)
#:use-module (guix modules)
#:use-module (guix build utils)
- #:use-module (system base compile)
+ #:use-module (guix build compile)
#:use-module (ice-9 ftw)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
- #:use-module (ice-9 threads)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-26)
@@ -63,34 +62,6 @@ available, false otherwise."
(string-prefix? gnu b))
(string<? a b))))))
-(cond-expand
- (guile-2.2 (use-modules (language tree-il optimize)
- (language cps optimize)))
- (else #f))
-
-(define %default-optimizations
- ;; Default optimization options (equivalent to -O2 on Guile 2.2).
- (cond-expand
- (guile-2.2 (append (tree-il-default-optimization-options)
- (cps-default-optimization-options)))
- (else '())))
-
-(define %lightweight-optimizations
- ;; Lightweight optimizations (like -O0, but with partial evaluation).
- (let loop ((opts %default-optimizations)
- (result '()))
- (match opts
- (() (reverse result))
- ((#:partial-eval? _ rest ...)
- (loop rest `(#t #:partial-eval? ,@result)))
- ((kw _ rest ...)
- (loop rest `(#f ,kw ,@result))))))
-
-(define (optimization-options file)
- (if (string-contains file "gnu/packages/")
- %lightweight-optimizations ;build faster
- '()))
-
(define* (build-guix out source
#:key
@@ -148,53 +119,43 @@ containing the source code. Write any debugging output to DEBUG-PORT."
(set! %load-path (cons out %load-path))
(set! %load-compiled-path (cons out %load-compiled-path))
- ;; Compile the .scm files. Load all the files before compiling them to
- ;; work around <http://bugs.gnu.org/15602> (FIXME).
- ;; Filter out files depending on Guile-SSH when Guile-SSH is missing.
- (let* ((files (filter has-all-its-dependencies?
- (all-scheme-files out)))
- (total (length files)))
- (let loop ((files files)
- (completed 0))
- (match files
- (() *unspecified*)
- ((file . files)
- (display #\cr log-port)
- (format log-port "loading...\t~5,1f% of ~d files" ;FIXME: i18n
- (* 100. (/ completed total)) total)
- (force-output log-port)
- (format debug-port "~%loading '~a'...~%" file)
- ;; Turn "<out>/foo/bar.scm" into (foo bar).
- (let* ((relative-file (string-drop file (+ (string-length out) 1)))
- (module-path (string-drop-right relative-file 4))
- (module-name (map string->symbol
- (string-split module-path #\/))))
- (parameterize ((current-warning-port debug-port))
- (resolve-interface module-name)))
- (loop files (+ 1 completed)))))
- (newline)
- (let ((mutex (make-mutex))
- (completed 0))
- ;; Make sure compilation related modules are loaded before starting to
- ;; compile files in parallel.
- (compile #f)
- (n-par-for-each
- (parallel-job-count)
- (lambda (file)
- (with-mutex mutex
- (display #\cr log-port)
- (format log-port "compiling...\t~5,1f% of ~d files" ;FIXME: i18n
- (* 100. (/ completed total)) total)
- (force-output log-port)
- (format debug-port "~%compiling '~a'...~%" file))
- (let ((go (string-append (string-drop-right file 4) ".go")))
- (parameterize ((current-warning-port (%make-void-port "w")))
- (compile-file file
- #:output-file go
- #:opts (optimization-options file))))
- (with-mutex mutex
- (set! completed (+ 1 completed))))
- files))))
+ ;; Compile the .scm files. Hide warnings.
+ (parameterize ((current-warning-port (%make-void-port "w")))
+ (with-directory-excursion out
+ ;; Filter out files depending on Guile-SSH when Guile-SSH is missing.
+ (let ((files (filter has-all-its-dependencies?
+ (all-scheme-files "."))))
+ (compile-files out out
+
+ ;; XXX: 'compile-files' except ready-to-use relative
+ ;; file names.
+ (map (lambda (file)
+ (if (string-prefix? "./" file)
+ (string-drop file 2)
+ file))
+ files)
+
+ #:workers (parallel-job-count)
+
+ ;; Disable warnings.
+ #:warning-options '()
+
+ #:report-load
+ (lambda (file total completed)
+ (display #\cr log-port)
+ (format log-port
+ "loading...\t~5,1f% of ~d files" ;FIXME: i18n
+ (* 100. (/ completed total)) total)
+ (force-output log-port)
+ (format debug-port "~%loading '~a'...~%" file))
+
+ #:report-compilation
+ (lambda (file total completed)
+ (display #\cr log-port)
+ (format log-port "compiling...\t~5,1f% of ~d files" ;FIXME: i18n
+ (* 100. (/ completed total)) total)
+ (force-output log-port)
+ (format debug-port "~%compiling '~a'...~%" file)))))))
(newline)
#t)
diff --git a/guix/build/utils.scm b/guix/build/utils.scm
index 7391307c87..d7ed3d5177 100644
--- a/guix/build/utils.scm
+++ b/guix/build/utils.scm
@@ -29,6 +29,7 @@
#:use-module (ice-9 regex)
#:use-module (ice-9 rdelim)
#:use-module (ice-9 format)
+ #:use-module (ice-9 threads)
#:use-module (rnrs bytevectors)
#:use-module (rnrs io ports)
#:re-export (alist-cons
diff --git a/guix/cvs-download.scm b/guix/cvs-download.scm
index 85744c5b55..8b46f8ef8c 100644
--- a/guix/cvs-download.scm
+++ b/guix/cvs-download.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;;
@@ -23,6 +23,7 @@
#:use-module (guix gexp)
#:use-module (guix store)
#:use-module (guix monads)
+ #:use-module (guix modules)
#:use-module (guix packages)
#:use-module (ice-9 match)
#:export (cvs-reference
@@ -59,16 +60,35 @@
"Return a fixed-output derivation that fetches REF, a <cvs-reference>
object. The output is expected to have recursive hash HASH of type
HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
+ (define zlib
+ (module-ref (resolve-interface '(gnu packages compression)) 'zlib))
+
+ (define config.scm
+ (scheme-file "config.scm"
+ #~(begin
+ (define-module (guix config)
+ #:export (%libz))
+
+ (define %libz
+ #+(file-append zlib "/lib/libz")))))
+
+ (define modules
+ (cons `((guix config) => ,config.scm)
+ (delete '(guix config)
+ (source-module-closure '((guix build cvs)
+ (guix build download-nar))))))
(define build
- (with-imported-modules '((guix build cvs)
- (guix build utils))
+ (with-imported-modules modules
#~(begin
- (use-modules (guix build cvs))
- (cvs-fetch '#$(cvs-reference-root-directory ref)
- '#$(cvs-reference-module ref)
- '#$(cvs-reference-revision ref)
- #$output
- #:cvs-command (string-append #+cvs "/bin/cvs")))))
+ (use-modules (guix build cvs)
+ (guix build download-nar))
+
+ (or (cvs-fetch '#$(cvs-reference-root-directory ref)
+ '#$(cvs-reference-module ref)
+ '#$(cvs-reference-revision ref)
+ #$output
+ #:cvs-command (string-append #+cvs "/bin/cvs"))
+ (download-nar #$output)))))
(mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "cvs-checkout") build
diff --git a/guix/discovery.scm b/guix/discovery.scm
index 2741725b9d..7b57579023 100644
--- a/guix/discovery.scm
+++ b/guix/discovery.scm
@@ -18,6 +18,7 @@
(define-module (guix discovery)
#:use-module (guix ui)
+ #:use-module (guix modules)
#:use-module (guix combinators)
#:use-module (guix build syscalls)
#:use-module (srfi srfi-1)
@@ -88,13 +89,6 @@ DIRECTORY is not accessible."
directory (strerror errno)))
'())))))
-(define file-name->module-name
- (let ((not-slash (char-set-complement (char-set #\/))))
- (lambda (file)
- "Return the module name (a list of symbols) corresponding to FILE."
- (map string->symbol
- (string-tokenize (string-drop-right file 4) not-slash)))))
-
(define* (scheme-modules directory #:optional sub-directory)
"Return the list of Scheme modules available under DIRECTORY.
Optionally, narrow the search to SUB-DIRECTORY."
diff --git a/guix/download.scm b/guix/download.scm
index 074322b24f..449521c199 100644
--- a/guix/download.scm
+++ b/guix/download.scm
@@ -412,89 +412,6 @@ download by itself using its own dependencies."
;; for that built-in is widespread.
#:local-build? #t)))
-(define* (in-band-download file-name url
- #:key system hash-algo hash
- mirrors content-addressed-mirrors
- guile)
- "Download FILE-NAME from URL using a normal, \"in-band\" fixed-output
-derivation.
-
-This is now deprecated since it has the drawback of causing bootstrapping
-issues: we may need to build GnuTLS just to be able to download the source of
-GnuTLS itself and its dependencies. See <http://bugs.gnu.org/22774>."
- (define need-gnutls?
- ;; True if any of the URLs need TLS support.
- (let ((https? (cut string-prefix? "https://" <>)))
- (match url
- ((? string?)
- (https? url))
- ((url ...)
- (any https? url)))))
-
- (define builder
- (with-imported-modules '((guix build download)
- (guix build utils)
- (guix ftp-client)
- (guix base32)
- (guix base64))
- #~(begin
- #+(if need-gnutls?
-
- ;; Add GnuTLS to the inputs and to the load path.
- #~(eval-when (load expand eval)
- (set! %load-path
- (cons (string-append #+(gnutls-package)
- "/share/guile/site/"
- (effective-version))
- %load-path)))
- #~#t)
-
- (use-modules (guix build download)
- (guix base32))
-
- (let ((value-from-environment (lambda (variable)
- (call-with-input-string
- (getenv variable)
- read))))
- (url-fetch (value-from-environment "guix download url")
- #$output
- #:mirrors (call-with-input-file #$mirrors read)
-
- ;; Content-addressed mirrors.
- #:hashes
- (value-from-environment "guix download hashes")
- #:content-addressed-mirrors
- (primitive-load #$content-addressed-mirrors)
-
- ;; No need to validate certificates since we know the
- ;; hash of the expected result.
- #:verify-certificate? #f)))))
-
- (mlet %store-monad ((guile (package->derivation guile system)))
- (gexp->derivation file-name builder
- #:guile-for-build guile
- #:system system
- #:hash-algo hash-algo
- #:hash hash
-
- ;; Use environment variables and a fixed script
- ;; name so there's only one script in store for
- ;; all the downloads.
- #:script-name "download"
- #:env-vars
- `(("guix download url" . ,(object->string url))
- ("guix download hashes"
- . ,(object->string `((,hash-algo . ,hash)))))
-
- ;; Honor the user's proxy settings.
- #:leaked-env-vars '("http_proxy" "https_proxy")
-
- ;; In general, offloading downloads is not a good
- ;; idea. Daemons before 0.8.3 would also
- ;; interpret this as "do not substitute" (see
- ;; <https://bugs.gnu.org/18747>.)
- #:local-build? #t)))
-
(define* (url-fetch url hash-algo hash
#:optional name
#:key (system (%current-system))
@@ -521,18 +438,21 @@ in the store."
(and uri (memq (uri-scheme uri) '(#f file))))
(interned-file (if uri (uri-path uri) url)
(or name file-name))
- (mlet* %store-monad ((builtins (built-in-builders*))
- (download -> (if (member "download" builtins)
- built-in-download
- in-band-download)))
- (download (or name file-name) url
- #:guile guile
- #:system system
- #:hash-algo hash-algo
- #:hash hash
- #:mirrors %mirror-file
- #:content-addressed-mirrors
- %content-addressed-mirror-file)))))
+ (mlet %store-monad ((builtins (built-in-builders*)))
+ ;; The "download" built-in builder was added in guix-daemon in
+ ;; Nov. 2016 and made it in the 0.12.0 release of Dec. 2016. We now
+ ;; require it.
+ (unless (member "download" builtins)
+ (error "'guix-daemon' is too old, please upgrade" builtins))
+
+ (built-in-download (or name file-name) url
+ #:guile guile
+ #:system system
+ #:hash-algo hash-algo
+ #:hash hash
+ #:mirrors %mirror-file
+ #:content-addressed-mirrors
+ %content-addressed-mirror-file)))))
(define* (url-fetch/tarbomb url hash-algo hash
#:optional name
diff --git a/guix/gexp.scm b/guix/gexp.scm
index 2622c5cb62..b9525603ee 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -78,6 +78,8 @@
gexp->script
text-file*
mixed-text-file
+ file-union
+ directory-union
imported-files
imported-modules
compiled-modules
@@ -1171,6 +1173,56 @@ This is the declarative counterpart of 'text-file*'."
(computed-file name build))
+(define (file-union name files)
+ "Return a <computed-file> that builds a directory containing all of FILES.
+Each item in FILES must be a two-element list where the first element is the
+file name to use in the new directory, and the second element is a gexp
+denoting the target file. Here's an example:
+
+ (file-union \"etc\"
+ `((\"hosts\" ,(plain-file \"hosts\"
+ \"127.0.0.1 localhost\"))
+ (\"bashrc\" ,(plain-file \"bashrc\"
+ \"alias ls='ls --color'\"))))
+
+This yields an 'etc' directory containing these two files."
+ (computed-file name
+ (gexp
+ (begin
+ (mkdir (ungexp output))
+ (chdir (ungexp output))
+ (ungexp-splicing
+ (map (match-lambda
+ ((target source)
+ (gexp
+ (begin
+ ;; Stat the source to abort early if it does
+ ;; not exist.
+ (stat (ungexp source))
+
+ (symlink (ungexp source)
+ (ungexp target))))))
+ files))))))
+
+(define (directory-union name things)
+ "Return a directory that is the union of THINGS, where THINGS is a list of
+file-like objects denoting directories. For example:
+
+ (directory-union \"guile+emacs\" (list guile emacs))
+
+yields a directory that is the union of the 'guile' and 'emacs' packages."
+ (match things
+ ((one)
+ ;; Only one thing; return it.
+ one)
+ (_
+ (computed-file name
+ (with-imported-modules '((guix build union))
+ (gexp (begin
+ (use-modules (guix build union))
+ (union-build (ungexp output)
+ '(ungexp things)))))))))
+
;;;
;;; Syntactic sugar.
diff --git a/guix/git-download.scm b/guix/git-download.scm
index 7397cbe7f5..731e549b38 100644
--- a/guix/git-download.scm
+++ b/guix/git-download.scm
@@ -25,6 +25,7 @@
#:use-module (guix monads)
#:use-module (guix records)
#:use-module (guix packages)
+ #:use-module (guix modules)
#:autoload (guix build-system gnu) (standard-packages)
#:use-module (ice-9 match)
#:use-module (ice-9 popen)
@@ -77,12 +78,31 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
(standard-packages)
'()))
+ (define zlib
+ (module-ref (resolve-interface '(gnu packages compression)) 'zlib))
+
+ (define config.scm
+ (scheme-file "config.scm"
+ #~(begin
+ (define-module (guix config)
+ #:export (%libz))
+
+ (define %libz
+ #+(file-append zlib "/lib/libz")))))
+
+ (define modules
+ (cons `((guix config) => ,config.scm)
+ (delete '(guix config)
+ (source-module-closure '((guix build git)
+ (guix build utils)
+ (guix build download-nar))))))
+
(define build
- (with-imported-modules '((guix build git)
- (guix build utils))
+ (with-imported-modules modules
#~(begin
(use-modules (guix build git)
(guix build utils)
+ (guix build download-nar)
(ice-9 match))
;; The 'git submodule' commands expects Coreutils, sed,
@@ -92,12 +112,13 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
(((names dirs) ...)
dirs)))
- (git-fetch (getenv "git url") (getenv "git commit")
- #$output
- #:recursive? (call-with-input-string
- (getenv "git recursive?")
- read)
- #:git-command (string-append #+git "/bin/git")))))
+ (or (git-fetch (getenv "git url") (getenv "git commit")
+ #$output
+ #:recursive? (call-with-input-string
+ (getenv "git recursive?")
+ read)
+ #:git-command (string-append #+git "/bin/git"))
+ (download-nar #$output)))))
(mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "git-checkout") build
diff --git a/guix/hg-download.scm b/guix/hg-download.scm
index 8420980905..6b25b87b6b 100644
--- a/guix/hg-download.scm
+++ b/guix/hg-download.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
@@ -22,6 +22,7 @@
#:use-module (guix store)
#:use-module (guix monads)
#:use-module (guix records)
+ #:use-module (guix modules)
#:use-module (guix packages)
#:autoload (guix build-system gnu) (standard-packages)
#:use-module (ice-9 match)
@@ -59,18 +60,35 @@
"Return a fixed-output derivation that fetches REF, a <hg-reference>
object. The output is expected to have recursive hash HASH of type
HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
+ (define zlib
+ (module-ref (resolve-interface '(gnu packages compression)) 'zlib))
+
+ (define config.scm
+ (scheme-file "config.scm"
+ #~(begin
+ (define-module (guix config)
+ #:export (%libz))
+
+ (define %libz
+ #+(file-append zlib "/lib/libz")))))
+
+ (define modules
+ (cons `((guix config) => ,config.scm)
+ (delete '(guix config)
+ (source-module-closure '((guix build hg)
+ (guix build download-nar))))))
+
(define build
- (with-imported-modules '((guix build hg)
- (guix build utils))
+ (with-imported-modules modules
#~(begin
(use-modules (guix build hg)
- (guix build utils)
- (ice-9 match))
+ (guix build download-nar))
- (hg-fetch '#$(hg-reference-url ref)
- '#$(hg-reference-changeset ref)
- #$output
- #:hg-command (string-append #+hg "/bin/hg")))))
+ (or (hg-fetch '#$(hg-reference-url ref)
+ '#$(hg-reference-changeset ref)
+ #$output
+ #:hg-command (string-append #+hg "/bin/hg"))
+ (download-nar #$output)))))
(mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "hg-checkout") build
diff --git a/guix/import/cran.scm b/guix/import/cran.scm
index 056a7dcc7c..9b08ebfb63 100644
--- a/guix/import/cran.scm
+++ b/guix/import/cran.scm
@@ -126,7 +126,7 @@ package definition."
`((,type (,'quasiquote ,(format-inputs package-inputs)))))))
(define %cran-url "http://cran.r-project.org/web/packages/")
-(define %bioconductor-url "http://bioconductor.org/packages/")
+(define %bioconductor-url "https://bioconductor.org/packages/")
;; The latest Bioconductor release is 3.5. Bioconductor packages should be
;; updated together.
@@ -446,7 +446,7 @@ dependencies."
(define (bioconductor-package? package)
"Return true if PACKAGE is an R package from Bioconductor."
(let ((predicate (lambda (uri)
- (and (string-prefix? "http://bioconductor.org" uri)
+ (and (string-prefix? "https://bioconductor.org" uri)
;; Data packages are neither listed in SVN nor on
;; the Github mirror, so we have to exclude them
;; from the set of bioconductor packages that can be
@@ -465,7 +465,7 @@ dependencies."
(define (bioconductor-data-package? package)
"Return true if PACKAGE is an R data package from Bioconductor."
(let ((predicate (lambda (uri)
- (and (string-prefix? "http://bioconductor.org" uri)
+ (and (string-prefix? "https://bioconductor.org" uri)
(string-contains uri "/data/annotation/")))))
(and (string-prefix? "r-" (package-name package))
(match (and=> (package-source package) origin-uri)
@@ -478,7 +478,7 @@ dependencies."
(define (bioconductor-experiment-package? package)
"Return true if PACKAGE is an R experiment package from Bioconductor."
(let ((predicate (lambda (uri)
- (and (string-prefix? "http://bioconductor.org" uri)
+ (and (string-prefix? "https://bioconductor.org" uri)
(string-contains uri "/data/experiment/")))))
(and (string-prefix? "r-" (package-name package))
(match (and=> (package-source package) origin-uri)
diff --git a/guix/modules.scm b/guix/modules.scm
index 19a4acd76c..6c602eda48 100644
--- a/guix/modules.scm
+++ b/guix/modules.scm
@@ -26,6 +26,9 @@
#:export (missing-dependency-error?
missing-dependency-module
+ file-name->module-name
+ module-name->file-name
+
source-module-closure
live-module-closure
guix-module-name?))
@@ -93,6 +96,13 @@ depends on."
(_
'()))))))
+(define file-name->module-name
+ (let ((not-slash (char-set-complement (char-set #\/))))
+ (lambda (file)
+ "Return the module name (a list of symbols) corresponding to FILE."
+ (map string->symbol
+ (string-tokenize (string-drop-right file 4) not-slash)))))
+
(define (module-name->file-name module)
"Return the file name for MODULE."
(string-append (string-join (map symbol->string module) "/")
diff --git a/guix/progress.scm b/guix/progress.scm
new file mode 100644
index 0000000000..beca2c22a6
--- /dev/null
+++ b/guix/progress.scm
@@ -0,0 +1,228 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Sou Bunnbu <iyzsong@gmail.com>
+;;; Copyright © 2015 Steve Sprang <scs@stevesprang.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/>.
+
+(define-module (guix progress)
+ #:use-module (guix records)
+ #:use-module (srfi srfi-19)
+ #:use-module (rnrs io ports)
+ #:use-module (rnrs bytevectors)
+ #:use-module (ice-9 format)
+ #:use-module (ice-9 match)
+ #:export (<progress-reporter>
+ progress-reporter
+ make-progress-reporter
+ progress-reporter?
+ call-with-progress-reporter
+
+ progress-reporter/silent
+ progress-reporter/file
+
+ byte-count->string
+ current-terminal-columns
+
+ dump-port*))
+
+;;; Commentary:
+;;;
+;;; Helper to write progress report code for downloads, etc.
+;;;
+;;; Code:
+
+(define-record-type* <progress-reporter>
+ progress-reporter make-progress-reporter progress-reporter?
+ (start progress-reporter-start) ; thunk
+ (report progress-reporter-report) ; procedure
+ (stop progress-reporter-stop)) ; thunk
+
+(define (call-with-progress-reporter reporter proc)
+ "Start REPORTER for progress reporting, and call @code{(@var{proc} report)}
+with the resulting report procedure. When @var{proc} returns, the REPORTER is
+stopped."
+ (match reporter
+ (($ <progress-reporter> start report stop)
+ (dynamic-wind start (lambda () (proc report)) stop))))
+
+(define progress-reporter/silent
+ (make-progress-reporter noop noop noop))
+
+
+;;;
+;;; File download progress report.
+;;;
+
+(cond-expand
+ (guile-2.2
+ ;; Guile 2.2.2 has a bug whereby 'time-monotonic' objects have seconds and
+ ;; nanoseconds swapped (fixed in Guile commit 886ac3e). Work around it.
+ (define time-monotonic time-tai))
+ (else #t))
+
+(define (nearest-exact-integer x)
+ "Given a real number X, return the nearest exact integer, with ties going to
+the nearest exact even integer."
+ (inexact->exact (round x)))
+
+(define (duration->seconds duration)
+ "Return the number of seconds represented by DURATION, a 'time-duration'
+object, as an inexact number."
+ (+ (time-second duration)
+ (/ (time-nanosecond duration) 1e9)))
+
+(define (seconds->string duration)
+ "Given DURATION in seconds, return a string representing it in 'mm:ss' or
+'hh:mm:ss' format, as needed."
+ (if (not (number? duration))
+ "00:00"
+ (let* ((total-seconds (nearest-exact-integer duration))
+ (extra-seconds (modulo total-seconds 3600))
+ (num-hours (quotient total-seconds 3600))
+ (hours (and (positive? num-hours) num-hours))
+ (mins (quotient extra-seconds 60))
+ (secs (modulo extra-seconds 60)))
+ (format #f "~@[~2,'0d:~]~2,'0d:~2,'0d" hours mins secs))))
+
+(define (byte-count->string size)
+ "Given SIZE in bytes, return a string representing it in a human-readable
+way."
+ (let ((KiB 1024.)
+ (MiB (expt 1024. 2))
+ (GiB (expt 1024. 3))
+ (TiB (expt 1024. 4)))
+ (cond
+ ((< size KiB) (format #f "~dB" (nearest-exact-integer size)))
+ ((< size MiB) (format #f "~dKiB" (nearest-exact-integer (/ size KiB))))
+ ((< size GiB) (format #f "~,1fMiB" (/ size MiB)))
+ ((< size TiB) (format #f "~,2fGiB" (/ size GiB)))
+ (else (format #f "~,3fTiB" (/ size TiB))))))
+
+(define (string-pad-middle left right len)
+ "Combine LEFT and RIGHT with enough padding in the middle so that the
+resulting string has length at least LEN (it may overflow). If the string
+does not overflow, the last char in RIGHT will be flush with the LEN
+column."
+ (let* ((total-used (+ (string-length left)
+ (string-length right)))
+ (num-spaces (max 1 (- len total-used)))
+ (padding (make-string num-spaces #\space)))
+ (string-append left padding right)))
+
+(define (rate-limited proc interval)
+ "Return a procedure that will forward the invocation to PROC when the time
+elapsed since the previous forwarded invocation is greater or equal to
+INTERVAL (a time-duration object), otherwise does nothing and returns #f."
+ (let ((previous-at #f))
+ (lambda args
+ (let* ((now (current-time time-monotonic))
+ (forward-invocation (lambda ()
+ (set! previous-at now)
+ (apply proc args))))
+ (if previous-at
+ (let ((elapsed (time-difference now previous-at)))
+ (if (time>=? elapsed interval)
+ (forward-invocation)
+ #f))
+ (forward-invocation))))))
+
+(define current-terminal-columns
+ ;; Number of columns of the terminal.
+ (make-parameter 80))
+
+(define* (progress-bar % #:optional (bar-width 20))
+ "Return % as a string representing an ASCII-art progress bar. The total
+width of the bar is BAR-WIDTH."
+ (let* ((fraction (/ % 100))
+ (filled (inexact->exact (floor (* fraction bar-width))))
+ (empty (- bar-width filled)))
+ (format #f "[~a~a]"
+ (make-string filled #\#)
+ (make-string empty #\space))))
+
+(define* (progress-reporter/file file size
+ #:optional (log-port (current-output-port))
+ #:key (abbreviation basename))
+ "Return a <progress-reporter> object to show the progress of FILE's download,
+which is SIZE bytes long. The progress report is written to LOG-PORT, with
+ABBREVIATION used to shorten FILE for display."
+ (let ((start-time (current-time time-monotonic))
+ (transferred 0))
+ (define (render)
+ "Write the progress report to LOG-PORT."
+ (define elapsed
+ (duration->seconds
+ (time-difference (current-time time-monotonic) start-time)))
+ (if (number? size)
+ (let* ((% (* 100.0 (/ transferred size)))
+ (throughput (/ transferred elapsed))
+ (left (format #f " ~a ~a"
+ (abbreviation file)
+ (byte-count->string size)))
+ (right (format #f "~a/s ~a ~a~6,1f%"
+ (byte-count->string throughput)
+ (seconds->string elapsed)
+ (progress-bar %) %)))
+ (display "\r\x1b[K" log-port)
+ (display (string-pad-middle left right
+ (current-terminal-columns))
+ log-port)
+ (force-output log-port))
+ (let* ((throughput (/ transferred elapsed))
+ (left (format #f " ~a"
+ (abbreviation file)))
+ (right (format #f "~a/s ~a | ~a transferred"
+ (byte-count->string throughput)
+ (seconds->string elapsed)
+ (byte-count->string transferred))))
+ (display "\r\x1b[K" log-port)
+ (display (string-pad-middle left right
+ (current-terminal-columns))
+ log-port)
+ (force-output log-port))))
+
+ (progress-reporter
+ (start render)
+ ;; Report the progress every 300ms or longer.
+ (report
+ (let ((rate-limited-render
+ (rate-limited render (make-time time-monotonic 300000000 0))))
+ (lambda (value)
+ (set! transferred value)
+ (rate-limited-render))))
+ ;; Don't miss the last report.
+ (stop render))))
+
+;; TODO: replace '(@ (guix build utils) dump-port))'.
+(define* (dump-port* in out
+ #:key (buffer-size 16384)
+ (reporter progress-reporter/silent))
+ "Read as much data as possible from IN and write it to OUT, using chunks of
+BUFFER-SIZE bytes. After each successful transfer of BUFFER-SIZE bytes or
+less, report the total number of bytes transferred to the REPORTER, which
+should be a <progress-reporter> object."
+ (define buffer
+ (make-bytevector buffer-size))
+
+ (call-with-progress-reporter reporter
+ (lambda (report)
+ (let loop ((total 0)
+ (bytes (get-bytevector-n! in buffer 0 buffer-size)))
+ (or (eof-object? bytes)
+ (let ((total (+ total bytes)))
+ (put-bytevector out buffer 0 bytes)
+ (report total)
+ (loop total (get-bytevector-n! in buffer 0 buffer-size))))))))
diff --git a/guix/scripts/download.scm b/guix/scripts/download.scm
index 8225f82bb9..1b99bc62cf 100644
--- a/guix/scripts/download.scm
+++ b/guix/scripts/download.scm
@@ -25,7 +25,9 @@
#:use-module (guix base32)
#:use-module ((guix download) #:hide (url-fetch))
#:use-module ((guix build download)
- #:select (url-fetch current-terminal-columns))
+ #:select (url-fetch))
+ #:use-module ((guix progress)
+ #:select (current-terminal-columns))
#:use-module ((guix build syscalls)
#:select (terminal-columns))
#:use-module (web uri)
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index 60dbdb1766..1fbeed71e8 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -33,13 +33,12 @@
#:use-module (guix pki)
#:use-module ((guix build utils) #:select (mkdir-p dump-port))
#:use-module ((guix build download)
- #:select (current-terminal-columns
- progress-reporter/file
- uri-abbreviation nar-uri-abbreviation
+ #:select (uri-abbreviation nar-uri-abbreviation
(open-connection-for-uri
. guix:open-connection-for-uri)
close-connection
store-path-abbreviation byte-count->string))
+ #:use-module (guix progress)
#:use-module ((guix build syscalls)
#:select (set-thread-name))
#:use-module (ice-9 rdelim)
diff --git a/guix/utils.scm b/guix/utils.scm
index 2cf9be36df..eb1ec29b32 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -33,7 +33,6 @@
#:autoload (rnrs io ports) (make-custom-binary-input-port)
#:use-module ((rnrs bytevectors) #:select (bytevector-u8-set!))
#:use-module (guix memoization)
- #:use-module (guix records)
#:use-module ((guix build utils) #:select (dump-port mkdir-p))
#:use-module ((guix build syscalls) #:select (mkdtemp! fdatasync))
#:use-module (ice-9 format)
@@ -95,13 +94,7 @@
call-with-decompressed-port
compressed-output-port
call-with-compressed-output-port
- canonical-newline-port
-
- <progress-reporter>
- progress-reporter
- make-progress-reporter
- progress-reporter?
- call-with-progress-reporter))
+ canonical-newline-port))
;;;
@@ -757,25 +750,6 @@ a location object."
(column . ,(location-column loc))
(filename . ,(location-file loc))))
-
-;;;
-;;; Progress reporter.
-;;;
-
-(define-record-type* <progress-reporter>
- progress-reporter make-progress-reporter progress-reporter?
- (start progress-reporter-start) ; thunk
- (report progress-reporter-report) ; procedure
- (stop progress-reporter-stop)) ; thunk
-
-(define (call-with-progress-reporter reporter proc)
- "Start REPORTER for progress reporting, and call @code{(@var{proc} report)}
-with the resulting report procedure. When @var{proc} returns, the REPORTER is
-stopped."
- (match reporter
- (($ <progress-reporter> start report stop)
- (dynamic-wind start (lambda () (proc report)) stop))))
-
;;; Local Variables:
;;; eval: (put 'call-with-progress-reporter 'scheme-indent-function 1)
;;; End: