Merge branch 'master' into core-updates
authorLeo Famulari <leo@famulari.name>
Wed, 26 Oct 2016 22:59:28 +0000 (18:59 -0400)
committerLeo Famulari <leo@famulari.name>
Wed, 26 Oct 2016 23:00:06 +0000 (19:00 -0400)
44 files changed:
configure.ac
doc/guix.texi
gnu/build/svg.scm [new file with mode: 0644]
gnu/local.mk
gnu/packages/bioinformatics.scm
gnu/packages/elf.scm
gnu/packages/emacs.scm
gnu/packages/enlightenment.scm
gnu/packages/games.scm
gnu/packages/gnome.scm
gnu/packages/gnustep.scm
gnu/packages/gstreamer.scm
gnu/packages/gtk.scm
gnu/packages/guile.scm
gnu/packages/irc.scm
gnu/packages/linux.scm
gnu/packages/lolcode.scm [new file with mode: 0644]
gnu/packages/mail.scm
gnu/packages/maths.scm
gnu/packages/messaging.scm
gnu/packages/musl.scm
gnu/packages/networking.scm
gnu/packages/patches/coda-use-system-libs.patch [new file with mode: 0644]
gnu/packages/patches/hdf-eos2-build-shared.patch [new file with mode: 0644]
gnu/packages/patches/hdf-eos2-fortrantests.patch [new file with mode: 0644]
gnu/packages/patches/hdf-eos2-remove-gctp.patch [new file with mode: 0644]
gnu/packages/patches/linux-libre-4.1-CVE-2016-5195.patch [deleted file]
gnu/packages/patches/mupdf-CVE-2016-8674.patch [new file with mode: 0644]
gnu/packages/patches/musl-CVE-2016-8859.patch [new file with mode: 0644]
gnu/packages/patches/notmuch-emacs-25-compatibility-fix.patch [deleted file]
gnu/packages/pdf.scm
gnu/packages/psyc.scm
gnu/packages/python.scm
gnu/packages/security-token.scm [moved from gnu/packages/yubico.scm with 94% similarity]
gnu/packages/ssh.scm
gnu/packages/statistics.scm
gnu/packages/video.scm
gnu/packages/web.scm
gnu/services/web.scm
gnu/system/grub.scm
guix/import/cran.scm
guix/scripts/package.scm
guix/ui.scm
po/guix/fr.po

index 3b33f85..34f1323 100644 (file)
@@ -21,9 +21,6 @@ AC_USE_SYSTEM_EXTENSIONS
 AM_GNU_GETTEXT([external])
 AM_GNU_GETTEXT_VERSION([0.18.1])
 
-guilemoduledir="${datarootdir}/guile/site/2.0"
-AC_SUBST([guilemoduledir])
-
 GUIX_SYSTEM_TYPE
 GUIX_ASSERT_SUPPORTED_SYSTEM
 
@@ -77,7 +74,7 @@ m4_pattern_forbid([GUILE_MODULE_AVAILABLE])
 m4_pattern_forbid([^GUILE_P$])
 
 dnl Search for 'guile' and 'guild'.  Prefer 2.0 until the 2.2 upgrade is
-dnl complete.
+dnl complete.  This macro defines 'GUILE_EFFECTIVE_VERSION'.
 GUILE_PKG([2.0 2.2])
 GUILE_PROGS
 if test "x$GUILD" = "x"; then
@@ -90,6 +87,10 @@ else
   AC_MSG_WARN([Guile $GUILE_EFFECTIVE_VERSION is not fully supported!])
 fi
 
+dnl Installation directory for .scm and .go files.
+guilemoduledir="${datarootdir}/guile/site/$GUILE_EFFECTIVE_VERSION"
+AC_SUBST([guilemoduledir])
+
 dnl guile-json is used for the PyPI package importer
 GUILE_MODULE_AVAILABLE([have_guile_json], [(json)])
 AM_CONDITIONAL([HAVE_GUILE_JSON], [test "x$have_guile_json" = "xyes"])
index 519443f..35ab66c 100644 (file)
@@ -27,7 +27,8 @@ Copyright @copyright{} 2016 Chris Marusich@*
 Copyright @copyright{} 2016 Efraim Flashner@*
 Copyright @copyright{} 2016 John Darrington@*
 Copyright @copyright{} 2016 ng0@*
-Copyright @copyright{} 2016 Jan Nieuwenhuizen
+Copyright @copyright{} 2016 Jan Nieuwenhuizen@*
+Copyright @copyright{} 2016 Julien Lepiller
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -11229,6 +11230,7 @@ The @code{(gnu services web)} module provides the following service:
 @deffn {Scheme Procedure} nginx-service [#:nginx nginx] @
        [#:log-directory ``/var/log/nginx''] @
        [#:run-directory ``/var/run/nginx''] @
+       [#:vhost-list (list (nginx-vhost-configuration))] @
        [#:config-file]
 
 Return a service that runs @var{nginx}, the nginx web server.
@@ -11239,8 +11241,54 @@ files are written to @var{run-directory}.  For proper operation, these
 arguments should match what is in @var{config-file} to ensure that the
 directories are created when the service is activated.
 
+As an alternative to using a @var{config-file}, @var{vhost-list} can be
+used to specify the list of @dfn{virtual hosts} required on the host.  For
+this to work, use the default value for @var{config-file}.
+
 @end deffn
 
+@deftp {Data Type} nginx-vhost-configuration
+Data type representing the configuration of an nginx virtual host.
+This type has the following parameters:
+
+@table @asis
+@item @code{http-port} (default: @code{80})
+Nginx will listen for HTTP connection on this port.  Set it at @code{#f} if
+nginx should not listen for HTTP (non secure) connection for this
+@dfn{virtual host}.
+
+@item @code{https-port} (default: @code{443})
+Nginx will listen for HTTPS connection on this port.  Set it at @code{#f} if
+nginx should not listen for HTTPS (secure) connection for this @dfn{virtual host}.
+
+Note that nginx can listen for HTTP and HTTPS connections in the same
+@dfn{virtual host}.
+
+@item @code{server-name} (default: @code{(list 'default)})
+A list of server names this vhost represents. @code{'default} represents the
+default vhost for connections matching no other vhost.
+
+@item @code{root} (default: @code{"/srv/http"})
+Root of the website nginx will serve.
+
+@item @code{index} (default: @code{(list "index.html")})
+Index files to look for when clients ask for a directory.  If it cannot be found,
+Nginx will send the list of files in the directory.
+
+@item @code{ssl-certificate} (default: @code{"/etc/nginx/cert.pem"})
+Where to find the certificate for secure connections.  Set it to @code{#f} if
+you don't have a certificate or you don't want to use HTTPS.
+
+@item @code{ssl-certificate-key} (default: @code{"/etc/nginx/key.pem"})
+Where to find the private key for secure connections.  Set it to @code{#f} if
+you don't have a key or you don't want to use HTTPS.
+
+@item @code{server-tokens?} (default: @code{#f})
+Whether the server should add its configuration to response.
+
+@end table
+@end deftp
+
 @node Network File System
 @subsubsection Network File System
 @cindex NFS
diff --git a/gnu/build/svg.scm b/gnu/build/svg.scm
new file mode 100644 (file)
index 0000000..f7e92a1
--- /dev/null
@@ -0,0 +1,71 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015 Andy Wingo <wingo@igalia.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 (gnu build svg)
+  #:use-module (srfi srfi-11)
+  #:export (svg->png))
+
+;; We need Guile-RSVG and Guile-Cairo.  Load them lazily, at run time, to
+;; allow compilation to proceed.  See also <http://bugs.gnu.org/12202>.
+(module-autoload! (current-module)
+                  '(rsvg) '(rsvg-handle-new-from-file))
+(module-autoload! (current-module)
+                  '(cairo) '(cairo-image-surface-create))
+
+(define* (downscaled-surface surface
+                             #:key
+                             source-width source-height
+                             width height)
+  "Return a new rendering context where SURFACE is scaled to WIDTH x HEIGHT."
+  (let ((cr (cairo-create (cairo-image-surface-create 'argb32
+                                                      width height))))
+    (cairo-scale cr (/ width source-width) (/ height source-height))
+    (cairo-set-source-surface cr surface 0 0)
+    (cairo-pattern-set-filter (cairo-get-source cr) 'best)
+    (cairo-rectangle cr 0 0 source-width source-height)
+    (cairo-fill cr)
+    cr))
+
+(define* (svg->png in-svg out-png
+                   #:key width height)
+  "Render the file at IN-SVG as a PNG file in OUT-PNG.  When WIDTH and HEIGHT
+are provided, use them as the dimensions of OUT-PNG; otherwise preserve the
+dimensions of IN-SVG."
+  (define svg
+    (rsvg-handle-new-from-file in-svg))
+
+  (let-values (((origin-width origin-height)
+                (rsvg-handle-get-dimensions svg)))
+    (let* ((surf (cairo-image-surface-create 'argb32
+                                             origin-width origin-height))
+           (cr   (cairo-create surf)))
+      (rsvg-handle-render-cairo svg cr)
+      (cairo-surface-flush surf)
+      (let ((cr (if (and width height
+                         (not (= width origin-width))
+                         (not (= height origin-height)))
+                    (downscaled-surface surf
+                                        #:source-width origin-width
+                                        #:source-height origin-height
+                                        #:width width
+                                        #:height height)
+                    cr)))
+        (cairo-surface-write-to-png (cairo-get-target cr) out-png)))))
+
+;;; svg.scm ends here
index 446c5e1..083067c 100644 (file)
@@ -229,6 +229,7 @@ GNU_SYSTEM_MODULES =                                \
   %D%/packages/llvm.scm                                \
   %D%/packages/lout.scm                                \
   %D%/packages/logging.scm                     \
+  %D%/packages/lolcode.scm                      \
   %D%/packages/lsof.scm                                \
   %D%/packages/lua.scm                         \
   %D%/packages/lxde.scm                                \
@@ -327,6 +328,7 @@ GNU_SYSTEM_MODULES =                                \
   %D%/packages/sdcc.scm                                \
   %D%/packages/sdl.scm                         \
   %D%/packages/search.scm                      \
+  %D%/packages/security-token.scm              \
   %D%/packages/serialization.scm               \
   %D%/packages/serveez.scm                     \
   %D%/packages/shells.scm                      \
@@ -386,7 +388,6 @@ GNU_SYSTEM_MODULES =                                \
   %D%/packages/xdisorg.scm                     \
   %D%/packages/xorg.scm                                \
   %D%/packages/xfce.scm                                \
-  %D%/packages/yubico.scm                      \
   %D%/packages/zile.scm                                \
   %D%/packages/zip.scm                         \
                                                \
@@ -433,6 +434,7 @@ GNU_SYSTEM_MODULES =                                \
   %D%/build/linux-initrd.scm                   \
   %D%/build/linux-modules.scm                  \
   %D%/build/marionette.scm                     \
+  %D%/build/svg.scm                            \
   %D%/build/vm.scm                             \
                                                \
   %D%/tests.scm                                        \
@@ -486,6 +488,7 @@ dist_patch_DATA =                                           \
   %D%/packages/patches/clucene-pkgconfig.patch                 \
   %D%/packages/patches/clx-remove-demo.patch                   \
   %D%/packages/patches/cmake-fix-tests.patch                   \
+  %D%/packages/patches/coda-use-system-libs.patch              \
   %D%/packages/patches/cpio-CVE-2016-2037.patch                        \
   %D%/packages/patches/cpufrequtils-fix-aclocal.patch          \
   %D%/packages/patches/cracklib-CVE-2016-6318.patch            \
@@ -589,6 +592,9 @@ dist_patch_DATA =                                           \
   %D%/packages/patches/hdf4-reproducibility.patch              \
   %D%/packages/patches/hdf4-shared-fortran.patch               \
   %D%/packages/patches/hdf5-config-date.patch                  \
+  %D%/packages/patches/hdf-eos2-build-shared.patch             \
+  %D%/packages/patches/hdf-eos2-remove-gctp.patch              \
+  %D%/packages/patches/hdf-eos2-fortrantests.patch             \
   %D%/packages/patches/hdf-eos5-build-shared.patch             \
   %D%/packages/patches/hdf-eos5-remove-gctp.patch              \
   %D%/packages/patches/hdf-eos5-fix-szip.patch                 \
@@ -671,7 +677,6 @@ dist_patch_DATA =                                           \
   %D%/packages/patches/libwmf-CVE-2015-4696.patch              \
   %D%/packages/patches/libxslt-generated-ids.patch             \
   %D%/packages/patches/linux-pam-no-setfsuid.patch             \
-  %D%/packages/patches/linux-libre-4.1-CVE-2016-5195.patch     \
   %D%/packages/patches/lirc-localstatedir.patch                        \
   %D%/packages/patches/llvm-for-extempore.patch                        \
   %D%/packages/patches/lm-sensors-hwmon-attrs.patch            \
@@ -703,7 +708,9 @@ dist_patch_DATA =                                           \
   %D%/packages/patches/mupdf-build-with-openjpeg-2.1.patch     \
   %D%/packages/patches/mupdf-CVE-2016-6265.patch               \
   %D%/packages/patches/mupdf-CVE-2016-6525.patch               \
+  %D%/packages/patches/mupdf-CVE-2016-8674.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/nasm-no-ps-pdf.patch                    \
   %D%/packages/patches/net-tools-bitrot.patch                  \
@@ -714,7 +721,6 @@ dist_patch_DATA =                                           \
   %D%/packages/patches/ninja-tests.patch                       \
   %D%/packages/patches/ninja-zero-mtime.patch                  \
   %D%/packages/patches/node-9077.patch                         \
-  %D%/packages/patches/notmuch-emacs-25-compatibility-fix.patch        \
   %D%/packages/patches/nss-pkgconfig.patch                     \
   %D%/packages/patches/nvi-assume-preserve-path.patch          \
   %D%/packages/patches/nvi-dbpagesize-binpower.patch           \
index d0b8056..fa35531 100644 (file)
@@ -602,15 +602,19 @@ e.g. microbiome samples, genomes, metagenomes.")
                  (map (compose package-transitive-target-inputs cadr) inputs))))))
     (package
       (name "bioperl-minimal")
-      (version "1.6.924")
+      (version "1.7.0")
       (source
        (origin
          (method url-fetch)
-         (uri (string-append "mirror://cpan/authors/id/C/CJ/CJFIELDS/BioPerl-"
-                             version ".tar.gz"))
+         (uri (string-append "https://github.com/bioperl/bioperl-live/"
+                             "archive/release-"
+                             (string-map (lambda (c)
+                                           (if (char=? c #\.)
+                                               #\- c)) version)
+                             ".tar.gz"))
          (sha256
           (base32
-           "1l3npcvvvwjlhkna9dndpfv1hklhrgva013kw96m0n1wpd37ask1"))))
+           "12phgpxwgkqflkwfb9dcqg7a31dpjlfhar8wcgv0aj5ln4akfz06"))))
       (build-system perl-build-system)
       (arguments
        `(#:phases
@@ -5190,14 +5194,14 @@ data types as well.")
 (define-public r-annotate
   (package
     (name "r-annotate")
-    (version "1.50.0")
+    (version "1.52.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "annotate" version))
        (sha256
         (base32
-         "00wnhbjp5i6a5vyvlq4f5hs8qngjxz7fm869kla1spmd0dp2ynsy"))))
+         "1fd2csq7dcs2gwndgwdx2nwkymz8gsmlnqqzv3p0vjjsvvq5n2a8"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-annotationdbi" ,r-annotationdbi)
@@ -5216,14 +5220,14 @@ microarrays.")
 (define-public r-geneplotter
   (package
     (name "r-geneplotter")
-    (version "1.50.0")
+    (version "1.52.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "geneplotter" version))
        (sha256
         (base32
-         "0lvrywl0251g4y0h0qlgkbg4l83ja5544c85z1wj30qxiy77iqc2"))))
+         "1p6yvxi243irhjxwm97hp73abhwampj0myyf8z00ij166674pc7h"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-annotate" ,r-annotate)
@@ -5241,14 +5245,14 @@ microarrays.")
 (define-public r-genefilter
   (package
     (name "r-genefilter")
-    (version "1.54.2")
+    (version "1.56.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "genefilter" version))
        (sha256
         (base32
-         "1hmz6as0njvrsrdbgmk72jyclnnqvfdvp6kqv456h43ldq2ajfv5"))))
+         "1vzgciqd09csqcw9qync8blsv51ylrd86a65iadgyy6j26g01fwd"))))
     (build-system r-build-system)
     (native-inputs
      `(("gfortran" ,gfortran)))
@@ -5267,14 +5271,14 @@ high-throughput sequencing experiments.")
 (define-public r-deseq2
   (package
     (name "r-deseq2")
-    (version "1.12.4")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DESeq2" version))
        (sha256
         (base32
-         "12h77f0dpi5xaj7aqf50kkyn6lq9j7bcsly1r0ffmyfcszrp1sfx"))))
+         "0kq06jy4xg5ii3a9l62f17kirsfx0gsiwq6mhiy985cqzpdn893g"))))
     (properties `((upstream-name . "DESeq2")))
     (build-system r-build-system)
     (arguments
@@ -5312,14 +5316,14 @@ distribution.")
 (define-public r-annotationforge
   (package
     (name "r-annotationforge")
-    (version "1.14.2")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AnnotationForge" version))
        (sha256
         (base32
-         "1vkdd1qdv5g680ipw4vwjvn52xn66xpg6ngmwyknz77ckxnnpf4q"))))
+         "02msyb9p3hywrryx00zpjkjl126mrv827i1ah1092s0cplm6xxvf"))))
     (properties
      `((upstream-name . "AnnotationForge")))
     (build-system r-build-system)
@@ -5328,6 +5332,7 @@ distribution.")
        ("r-biobase" ,r-biobase)
        ("r-biocgenerics" ,r-biocgenerics)
        ("r-dbi" ,r-dbi)
+       ("r-rcurl" ,r-rcurl)
        ("r-rsqlite" ,r-rsqlite)
        ("r-s4vectors" ,r-s4vectors)
        ("r-xml" ,r-xml)))
@@ -5341,14 +5346,14 @@ databases.  Packages produced are intended to be used with AnnotationDbi.")
 (define-public r-rbgl
   (package
     (name "r-rbgl")
-    (version "1.48.1")
+    (version "1.50.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RBGL" version))
        (sha256
         (base32
-         "1k82zcbyfx3p9hc8r0hwq73krbhakjan8fgbfr6w8z2crfkv3zmz"))))
+         "1q14m8w6ih56v680kf3d9wh1qbgp7af33kz3cxafdf1vvzx9km08"))))
     (properties `((upstream-name . "RBGL")))
     (build-system r-build-system)
     (propagated-inputs `(("r-graph" ,r-graph)))
@@ -5362,14 +5367,14 @@ the graph algorithms contained in the Boost library.")
 (define-public r-gseabase
   (package
     (name "r-gseabase")
-    (version "1.34.1")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GSEABase" version))
        (sha256
         (base32
-         "1mvgja8malrnbzfakzjl5mmi7g080kj8zgxwc5964hcmn33i937j"))))
+         "0l2x7yj7lfb0m2dmsav5ib026dikpgl4crdckrnj776yy08lgxpj"))))
     (properties `((upstream-name . "GSEABase")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5389,14 +5394,14 @@ Enrichment Analysis} (GSEA).")
 (define-public r-category
   (package
     (name "r-category")
-    (version "2.38.0")
+    (version "2.40.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Category" version))
        (sha256
         (base32
-         "0c8px9ar589f3iqkbk9vfhwj30dpnxj81h8sfq20cl1cbmcx2a04"))))
+         "16ncwz7b4y48k0p3fvbrbmvf7nfz63li9ysgcl8kp9kl4hg7llng"))))
     (properties `((upstream-name . "Category")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5420,14 +5425,14 @@ analysis.")
 (define-public r-gostats
   (package
     (name "r-gostats")
-    (version "2.38.1")
+    (version "2.40.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GOstats" version))
        (sha256
         (base32
-         "1hhw6vqr8f3g4jzq0v8f2za0r1h117j5s6av87zxs41cv7dq1wb3"))))
+         "0g2czm94zhzx92z7y2r4mjfxhwml7bhab2db6820ks8nkw1zvr9n"))))
     (properties `((upstream-name . "GOstats")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5450,14 +5455,14 @@ testing and other simple calculations.")
 (define-public r-shortread
   (package
     (name "r-shortread")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ShortRead" version))
        (sha256
         (base32
-         "0qlxns4bhwfpafx3km2lnivgl2qyp7n4g1ardm6vrinpq8paxbjg"))))
+         "0mjdlg92x5qw4x2djc4dv5lxwl7ai6ix56nnf86zr07jk8vc7yls"))))
     (properties `((upstream-name . "ShortRead")))
     (build-system r-build-system)
     (inputs
@@ -5492,14 +5497,14 @@ ungapped alignment formats.")
 (define-public r-systempiper
   (package
     (name "r-systempiper")
-    (version "1.6.4")
+    (version "1.8.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "systemPipeR" version))
        (sha256
         (base32
-         "0s2g46a5d5bvx45i3cgmib48wf8hrniyladhm0f7kgcbfx57248m"))))
+         "0hyi841w8fm2yzpm6lwqi3jz5kc8ny8dy5p29dxynzaw5bpjw56d"))))
     (properties `((upstream-name . "systemPipeR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5538,14 +5543,14 @@ annotation infrastructure.")
 (define-public r-grohmm
   (package
     (name "r-grohmm")
-    (version "1.6.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "groHMM" version))
        (sha256
         (base32
-         "1l9mcyzyc548114ysb9r0q7hgzw3yy7gpiahrzkzj6hblc4f1jyp"))))
+         "0d91nyhqbi5hv3mgmr2z0g29wg2md26g0hyv5mgapmz20cd9zi4y"))))
     (properties `((upstream-name . "groHMM")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5852,13 +5857,13 @@ barplots or heatmaps.")
 (define-public r-biocgenerics
   (package
     (name "r-biocgenerics")
-    (version "0.18.0")
+    (version "0.20.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocGenerics" version))
               (sha256
                (base32
-                "1jjp48vbph09w5bmc7368gjjywsa1lmzfybpiwlypr60b51vlkp6"))))
+                "06szdz7dfs1iyv5zdl4fjzad18nnf1zf3wvglc6c6yd9mrqlf7vk"))))
     (properties
      `((upstream-name . "BiocGenerics")))
     (build-system r-build-system)
@@ -5872,13 +5877,13 @@ packages.")
 (define-public r-biocinstaller
   (package
     (name "r-biocinstaller")
-    (version "1.22.3")
+    (version "1.24.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocInstaller" version))
               (sha256
                (base32
-                "02qkfq6f2b7v9klri6d1nv21r54bywv1zd5x47ka0jhhp946cqpr"))))
+                "0y1y5wmy6lzjqx3hdg15n91d417ccjj8dbvdkhmp99bs5aijwcpn"))))
     (properties
      `((upstream-name . "BiocInstaller")))
     (build-system r-build-system)
@@ -6032,13 +6037,13 @@ that accept short and long options.")
 (define-public r-dnacopy
   (package
     (name "r-dnacopy")
-    (version "1.46.0")
+    (version "1.48.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "DNAcopy" version))
               (sha256
                (base32
-                "0vwv2mndfjpcjp4sybg75abc7xnx8zyw8zjk717k6xh8c33ymcip"))))
+                "1idyvfvy7xx8k9vk00y4k3819qmip8iqm809j3vpxabmsn7r9zyh"))))
     (properties
      `((upstream-name . "DNAcopy")))
     (build-system r-build-system)
@@ -6054,13 +6059,13 @@ abnormal copy number.")
 (define-public r-s4vectors
   (package
     (name "r-s4vectors")
-    (version "0.10.3")
+    (version "0.12.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "S4Vectors" version))
               (sha256
                (base32
-                "09lrvy3d5q58hsgw9as4hyyx07k1vyy2zjn3xsvhyfd97yk6w6lv"))))
+                "0m0npc0vhmcwcxws7v2f8k4hvvrjvnlrsr94klxf4a8m4xw2xzzk"))))
     (properties
      `((upstream-name . "S4Vectors")))
     (build-system r-build-system)
@@ -6081,14 +6086,14 @@ S4Vectors package itself.")
 (define-public r-seqinr
   (package
     (name "r-seqinr")
-    (version "3.3-1")
+    (version "3.3-3")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "seqinr" version))
         (sha256
           (base32
-            "1al83y6m7739dz2j895yihksm0s5l45ialid4yw911ylbg3w6cm1"))))
+            "0rk4yba8km26c0rh1f4h474zsb5n6kjmqsi55bnzr6p8pymp18hj"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ade4" ,r-ade4)
@@ -6106,13 +6111,13 @@ utilities for sequence data management under the ACNUC system.")
 (define-public r-iranges
   (package
     (name "r-iranges")
-    (version "2.6.1")
+    (version "2.8.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "IRanges" version))
               (sha256
                (base32
-                "06pyam3bjjfw2m3l86rda503lsz2jcg645lcnhvrz6qi0nv359yg"))))
+                "0cdl1sfd3cvf93lnz91fdk64fbg1mnd5g958dwh1il8r358hqq3f"))))
     (properties
      `((upstream-name . "IRanges")))
     (build-system r-build-system)
@@ -6135,13 +6140,13 @@ possible.")
 (define-public r-genomeinfodb
   (package
     (name "r-genomeinfodb")
-    (version "1.8.7")
+    (version "1.10.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomeInfoDb" version))
               (sha256
                (base32
-                "1x96468bbjx7z3ikp1dgr2krnz9pwx86vmssfbfrsikaxfs4q829"))))
+                "0nhg4bk38gzvf3mvnbqgisbbhfv1kzjld27z1z9knnlkplkiyyyv"))))
     (properties
      `((upstream-name . "GenomeInfoDb")))
     (build-system r-build-system)
@@ -6161,17 +6166,18 @@ names in their natural, rather than lexicographic, order.")
 (define-public r-edger
   (package
     (name "r-edger")
-    (version "3.14.0")
+    (version "3.16.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "edgeR" version))
               (sha256
                (base32
-                "14vrygy7rz5ngaap4kgkvr3j18y5l6m742n79h68plk6iqgmsskn"))))
+                "1qr20j55m35dwzqyzzmla69gk5bzff8v1v2qjh7yd3362wq1ch49"))))
     (properties `((upstream-name . "edgeR")))
     (build-system r-build-system)
     (propagated-inputs
-     `(("r-limma" ,r-limma)))
+     `(("r-limma" ,r-limma)
+       ("r-locfit" ,r-locfit)))
     (home-page "http://bioinf.wehi.edu.au/edgeR")
     (synopsis "EdgeR does empirical analysis of digital gene expression data")
     (description "This package can do differential expression analysis of
@@ -6186,27 +6192,33 @@ CAGE.")
 (define-public r-variantannotation
   (package
     (name "r-variantannotation")
-    (version "1.18.7")
+    (version "1.20.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "VariantAnnotation" version))
               (sha256
                (base32
-                "002kif2c66wbcng953m3g1jys7w1lgz7hh3zsk4jlnhc20jdv1vj"))))
+                "1lwzfgahz8ipwli73kcfqb18y6adi129hap1gnycnj3980m54i8q"))))
     (properties
      `((upstream-name . "VariantAnnotation")))
     (inputs
      `(("zlib" ,zlib)))
     (propagated-inputs
      `(("r-annotationdbi" ,r-annotationdbi)
+       ("r-biobase" ,r-biobase)
        ("r-biocgenerics" ,r-biocgenerics)
+       ("r-biostrings" ,r-biostrings)
        ("r-bsgenome" ,r-bsgenome)
        ("r-dbi" ,r-dbi)
        ("r-genomeinfodb" ,r-genomeinfodb)
        ("r-genomicfeatures" ,r-genomicfeatures)
        ("r-genomicranges" ,r-genomicranges)
+       ("r-iranges" ,r-iranges)
        ("r-summarizedexperiment" ,r-summarizedexperiment)
        ("r-rsamtools" ,r-rsamtools)
+       ("r-rtracklayer" ,r-rtracklayer)
+       ("r-s4vectors" ,r-s4vectors)
+       ("r-xvector" ,r-xvector)
        ("r-zlibbioc" ,r-zlibbioc)))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/VariantAnnotation")
@@ -6218,13 +6230,13 @@ coding changes and predict coding outcomes.")
 (define-public r-limma
   (package
     (name "r-limma")
-    (version "3.28.21")
+    (version "3.30.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "limma" version))
               (sha256
                (base32
-                "1dvisifd2rr7s1rrsqj5vrv2qcg4la4yi2ajbn0zkk5z81ffxv9f"))))
+                "0d8wp7b7nymawf4czwsg27k4c61i4ij2lhv7phi6cb3hdd8c76yf"))))
     (build-system r-build-system)
     (home-page "http://bioinf.wehi.edu.au/limma")
     (synopsis "Package for linear models for microarray and RNA-seq data")
@@ -6237,13 +6249,13 @@ different technologies, including microarrays, RNA-seq, and quantitative PCR.")
 (define-public r-xvector
   (package
     (name "r-xvector")
-    (version "0.12.1")
+    (version "0.14.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "XVector" version))
               (sha256
                (base32
-                "1kydy9f5y0ihn2mbkamr1kh0g1d3g1k9d7s4i09qgw9ysr6j414v"))))
+                "09lbqxpqr80g0kw77mpz0p1a8cq706j33kz8194wp71il67cdzi7"))))
     (properties
      `((upstream-name . "XVector")))
     (build-system r-build-system)
@@ -6273,19 +6285,21 @@ different technologies, including microarrays, RNA-seq, and quantitative PCR.")
 (define-public r-genomicranges
   (package
     (name "r-genomicranges")
-    (version "1.24.3")
+    (version "1.26.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicRanges" version))
               (sha256
                (base32
-                "098a34hfgb5z120v6wpl5nv8v61nm65yg6xq0j7i9bigvxr7apg2"))))
+                "039nxccg9i2an8q2wni79x8dr9p1fcfcqvih9hg9w243pczg2g3c"))))
     (properties
      `((upstream-name . "GenomicRanges")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biocgenerics" ,r-biocgenerics)
        ("r-genomeinfodb" ,r-genomeinfodb)
+       ("r-iranges" ,r-iranges)
+       ("r-s4vectors" ,r-s4vectors)
        ("r-xvector" ,r-xvector)))
     (home-page "http://bioconductor.org/packages/GenomicRanges")
     (synopsis "Representation and manipulation of genomic intervals")
@@ -6300,13 +6314,13 @@ manipulating genomic intervals and variables defined along a genome.")
 (define-public r-biobase
   (package
     (name "r-biobase")
-    (version "2.32.0")
+    (version "2.34.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Biobase" version))
               (sha256
                (base32
-                "0q4icv9n5rc2qfkv6k1wjhmfcpzcyr8f45m2z3xharbdv912kl1i"))))
+                "0js9j9wqls8f571ifl9ylllbb9a9hwf7b7drf2grwb1fl31ldazl"))))
     (properties
      `((upstream-name . "Biobase")))
     (build-system r-build-system)
@@ -6322,13 +6336,13 @@ on Bioconductor or which replace R functions.")
 (define-public r-annotationdbi
   (package
     (name "r-annotationdbi")
-    (version "1.34.4")
+    (version "1.36.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "AnnotationDbi" version))
               (sha256
                (base32
-                "1k3gfsjrivc7467vg0h705hh4dvzgdhknz62j7zmfxm67qk9r8rq"))))
+                "0ydrqw1k1j5p6w76bwc753cx545c055x88q87wzya93858synj6r"))))
     (properties
      `((upstream-name . "AnnotationDbi")))
     (build-system r-build-system)
@@ -6349,13 +6363,13 @@ annotation data packages using SQLite data storage.")
 (define-public r-biomart
   (package
     (name "r-biomart")
-    (version "2.28.0")
+    (version "2.30.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "biomaRt" version))
               (sha256
                (base32
-                "1g0w6an9hkflgyhvq6pmrs92s93qarv23v636b9a4bz771wjvm5v"))))
+                "1x0flcghq71784q2l02j0g4f9jkmyb14f6i307n6c59d6ji7h7x6"))))
     (properties
      `((upstream-name . "biomaRt")))
     (build-system r-build-system)
@@ -6379,13 +6393,13 @@ powerful online queries from gene annotation to database mining.")
 (define-public r-biocparallel
   (package
     (name "r-biocparallel")
-    (version "1.6.6")
+    (version "1.8.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocParallel" version))
               (sha256
                (base32
-                "1l39zmvhjlvlczrk5wal4y2s4g0b2kmaczgq5biah9qn45y474mw"))))
+                "0vz23i14f7wjygr5d4y1hp8ki6l6igwcsjscfpr6dcigmknyi55c"))))
     (properties
      `((upstream-name . "BiocParallel")))
     (build-system r-build-system)
@@ -6403,13 +6417,13 @@ objects.")
 (define-public r-biostrings
   (package
     (name "r-biostrings")
-    (version "2.40.2")
+    (version "2.42.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Biostrings" version))
               (sha256
                (base32
-                "153rfws5sdha324p1nv7jp75ip6ny0f62jzhqcvs46l85h3i8zgh"))))
+                "08z8lkz3axa94wkf144a931ry6vf6cc25avi1ywr84ln2k5czz9f"))))
     (properties
      `((upstream-name . "Biostrings")))
     (build-system r-build-system)
@@ -6429,13 +6443,13 @@ biological sequences or sets of sequences.")
 (define-public r-rsamtools
   (package
     (name "r-rsamtools")
-    (version "1.24.0")
+    (version "1.26.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Rsamtools" version))
               (sha256
                (base32
-                "0w0drs8cpk8nlazq64ag7nm1w5jd1m8riialivm01hz5zcra7scb"))))
+                "0pf4f6brf4bl5zgjrah0f38qslazrs49ayqgyh0xfqgrh63yx4ck"))))
     (properties
      `((upstream-name . "Rsamtools")))
     (build-system r-build-system)
@@ -6473,13 +6487,13 @@ files.")
 (define-public r-summarizedexperiment
   (package
     (name "r-summarizedexperiment")
-    (version "1.2.3")
+    (version "1.4.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "SummarizedExperiment" version))
               (sha256
                (base32
-                "0c43fsrha886sd0diislnlf8r5h5x7fbhphkzcm0rw3k2jz8wlyk"))))
+                "1kbj8sg2ik9f8d6g95wz0py62jldg01qy5rsdpg1cxw95nf7dzi3"))))
     (properties
      `((upstream-name . "SummarizedExperiment")))
     (build-system r-build-system)
@@ -6502,13 +6516,13 @@ samples.")
 (define-public r-genomicalignments
   (package
     (name "r-genomicalignments")
-    (version "1.8.4")
+    (version "1.10.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicAlignments" version))
               (sha256
                (base32
-                "1cccvalmm83ilk1kpq31ll8kdy9xclsr4pm4mlcc7bmp0rwkd2p2"))))
+                "11vb0a0zd36i4yhg4mfijv787v0nihn6pkjj6q7rfy19gwy61xlc"))))
     (properties
      `((upstream-name . "GenomicAlignments")))
     (build-system r-build-system)
@@ -6535,13 +6549,13 @@ alignments.")
 (define-public r-rtracklayer
   (package
     (name "r-rtracklayer")
-    (version "1.32.2")
+    (version "1.34.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "rtracklayer" version))
               (sha256
                (base32
-                "190767zpwc7maqjpy0x5bpkm0jp1vfawy9991fifw0mc634cjkga"))))
+                "0mix5k75j70mwplbdipqw71n8qic75ny6y8w2f5jj0pqg1k0327d"))))
     (build-system r-build-system)
     (arguments
      `(#:phases
@@ -6580,13 +6594,13 @@ as well as query and modify the browser state, such as the current viewport.")
 (define-public r-genomicfeatures
   (package
     (name "r-genomicfeatures")
-    (version "1.24.5")
+    (version "1.26.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicFeatures" version))
               (sha256
                (base32
-                "17qpisdgqyjz2mnaiwc4dx7dg11pwq3mkvmkah9zn07g9rhh8f7p"))))
+                "0z8spi2knwzwi10c38vr7xlvi3ah9faj7m1lka880mmxkl9cai4k"))))
     (properties
      `((upstream-name . "GenomicFeatures")))
     (build-system r-build-system)
@@ -6621,7 +6635,7 @@ extracting the desired features in a convenient format.")
 (define-public r-go-db
   (package
     (name "r-go-db")
-    (version "3.3.0")
+    (version "3.4.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://www.bioconductor.org/packages/"
@@ -6629,7 +6643,7 @@ extracting the desired features in a convenient format.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0x2hkbhg9d8waw32hdn05887vv3zbs5aqff3mf5vfyzvl7xhgxy0"))))
+                "02cj8kqi5w39jwcs8gp1dgj08sah262ppxnkz4h3qd0w191y8yyl"))))
     (properties
      `((upstream-name . "GO.db")))
     (build-system r-build-system)
@@ -6645,13 +6659,13 @@ information about the latest version of the Gene Ontologies.")
 (define-public r-graph
   (package
     (name "r-graph")
-    (version "1.50.0")
+    (version "1.52.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "graph" version))
               (sha256
                (base32
-                "0ys5s19m5r30rlr0fnx2h0z2qw7n2xrad4l2yfb1bbrk8dwyf4pi"))))
+                "0g3dk5vsdp489fmyg8mifczmzgqrjlakkkr8i96dj15gghp3l135"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biocgenerics" ,r-biocgenerics)))
@@ -6664,18 +6678,19 @@ information about the latest version of the Gene Ontologies.")
 (define-public r-topgo
   (package
     (name "r-topgo")
-    (version "2.24.0")
+    (version "2.26.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "topGO" version))
               (sha256
                (base32
-                "1p4vsl32qhjw15yv9ym01ni63gjg73jaghlf17wc4zfn3iaz2zar"))))
+                "0j6sgvam4lk9348ag6pypcbkv93x4fk0di8ivhr23mz2s2yqzwrx"))))
     (properties
      `((upstream-name . "topGO")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-annotationdbi" ,r-annotationdbi)
+       ("r-dbi" ,r-dbi)
        ("r-biobase" ,r-biobase)
        ("r-biocgenerics" ,r-biocgenerics)
        ("r-go-db" ,r-go-db)
@@ -6695,13 +6710,13 @@ dependencies between GO terms can be implemented and applied.")
 (define-public r-bsgenome
   (package
     (name "r-bsgenome")
-    (version "1.40.1")
+    (version "1.42.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BSgenome" version))
               (sha256
                (base32
-                "0zmlzlcwairka59is5wmkh6knh6j4d328z9fsw3v91fx6gavjl2n"))))
+                "0hxwc02h5mzhkrk60d1jmlsfjf0ai9jxdc0128kj1sg4r2k1q94y"))))
     (properties
      `((upstream-name . "BSgenome")))
     (build-system r-build-system)
@@ -6725,13 +6740,13 @@ genome data packages and support for efficient SNP representation.")
 (define-public r-impute
   (package
     (name "r-impute")
-    (version "1.46.0")
+    (version "1.48.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "impute" version))
               (sha256
                (base32
-                "0v9ibgv8kp8il52miz7b7z65mv6irqxylx6lfzkxgvxd970dgrz0"))))
+                "1164zvnikbjd0ybdn9xwn520rlmdjd824vmhnl83zgv3v9lzp9bm"))))
     (inputs
      `(("gfortran" ,gfortran)))
     (build-system r-build-system)
@@ -6745,13 +6760,13 @@ microarray data, using nearest neighbor averaging.")
 (define-public r-seqpattern
   (package
     (name "r-seqpattern")
-    (version "1.4.0")
+    (version "1.6.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "seqPattern" version))
               (sha256
                (base32
-                "1dj9hfnbdj11yjxwd8jmxrdkj7n6gmaaj6244g2psgarhjcp4wfb"))))
+                "0lsa5pz36xapi3yiv78k3z286a5md5sm5g21pgfyg8zmhmkxr7y8"))))
     (properties
      `((upstream-name . "seqPattern")))
     (build-system r-build-system)
@@ -6759,6 +6774,7 @@ microarray data, using nearest neighbor averaging.")
      `(("r-biostrings" ,r-biostrings)
        ("r-genomicranges" ,r-genomicranges)
        ("r-iranges" ,r-iranges)
+       ("r-kernsmooth" ,r-kernsmooth)
        ("r-plotrix" ,r-plotrix)))
     (home-page "http://bioconductor.org/packages/seqPattern")
     (synopsis "Visualising oligonucleotide patterns and motif occurrences")
@@ -6771,13 +6787,13 @@ reference point and sorted by a user defined feature.")
 (define-public r-genomation
   (package
     (name "r-genomation")
-    (version "1.4.2")
+    (version "1.6.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "genomation" version))
               (sha256
                (base32
-                "017hxh3yhizlsswd2vw8504arkckrcgq5zraiw67lldq9wzs5qzg"))))
+                "1m4mz7wihj8yqivwkzw68div8ybk4rjsai3ffki7xp7sh21ax03y"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biostrings" ,r-biostrings)
@@ -6793,11 +6809,17 @@ reference point and sorted by a user defined feature.")
        ("r-matrixstats" ,r-matrixstats)
        ("r-plotrix" ,r-plotrix)
        ("r-plyr" ,r-plyr)
+       ("r-rcpp" ,r-rcpp)
        ("r-readr" ,r-readr)
        ("r-reshape2" ,r-reshape2)
+       ("r-rhtslib" ,r-rhtslib)
        ("r-rsamtools" ,r-rsamtools)
        ("r-rtracklayer" ,r-rtracklayer)
+       ("r-runit" ,r-runit)
+       ("r-s4vectors" ,r-s4vectors)
        ("r-seqpattern" ,r-seqpattern)))
+    (inputs
+     `(("zlib" ,zlib)))
     (home-page "http://bioinformatics.mdc-berlin.de/genomation/")
     (synopsis "Summary, annotation and visualization of genomic data")
     (description
@@ -6814,7 +6836,7 @@ genomic intervals.  In addition, it can use BAM or BigWig files as input.")
 (define-public r-genomationdata
   (package
     (name "r-genomationdata")
-    (version "1.4.2")
+    (version "1.6.0")
     (source (origin
               (method url-fetch)
               ;; We cannot use bioconductor-uri here because this tarball is
@@ -6824,7 +6846,7 @@ genomic intervals.  In addition, it can use BAM or BigWig files as input.")
                                   "genomationData_" version ".tar.gz"))
               (sha256
                (base32
-                "1zl7gg144fs7zfycsmq5492sm1bqy7l527xbc2zj04schd9wsan2"))))
+                "16dqwb7wx1igx77zdbcskx5m1hs4g4gp2hl56zzm70hcagnlkz8y"))))
     (build-system r-build-system)
     ;; As this package provides little more than large data files, it doesn't
     ;; make sense to build substitutes.
@@ -6946,14 +6968,14 @@ annotations for the genome of the model mouse Mus musculus.")
 (define-public r-seqlogo
   (package
     (name "r-seqlogo")
-    (version "1.38.0")
+    (version "1.40.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "seqLogo" version))
        (sha256
         (base32
-         "01jddx62nhi3r7czbh9hxy0wwpazbc9ax1fgagfxl6p4kx9xz9rb"))))
+         "18bajdl75h3039559d81rgllqqvnq8ygsfxfx081xphxs0v6xggy"))))
     (properties `((upstream-name . "seqLogo")))
     (build-system r-build-system)
     (home-page "http://bioconductor.org/packages/seqLogo")
@@ -7157,14 +7179,14 @@ Biostrings objects.")
 (define-public r-motifrg
   (package
     (name "r-motifrg")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "motifRG" version))
        (sha256
         (base32
-         "1ds22paqc0923y6z1fy0arw0wxvvmglfvfgarhywv1qywhq68mbq"))))
+         "1pa97aj6c5f3gx4bgriw110764dj3m9h104ddi8rv2bpy41yd98d"))))
     (properties `((upstream-name . "motifRG")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7209,13 +7231,13 @@ two-dimensional genome scans.")
 (define-public r-zlibbioc
   (package
     (name "r-zlibbioc")
-    (version "1.18.0")
+    (version "1.20.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "zlibbioc" version))
               (sha256
                (base32
-                "0m8l7zpx1l3qsk73k3ibkxxzzff938x3qhnwki1ymf3cnsg8cb36"))))
+                "0hbk90q5hl0fycfvy5nxxa4hxgglag9lzp7i0fg849bqygg5nbyq"))))
     (properties
      `((upstream-name . "zlibbioc")))
     (build-system r-build-system)
@@ -7228,20 +7250,22 @@ libraries for systems that do not have these available via other means.")
 (define-public r-rhtslib
   (package
     (name "r-rhtslib")
-    (version "1.4.3")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rhtslib" version))
        (sha256
         (base32
-         "1wgpn9x8abjj7fc087pdavqc3fz0pl5xdh231mgjila18irwlhb3"))))
+         "1vk3ng61dhi3pbia1lp3gl3mlr3i1vb2lkq83qb53i9dzz128wh9"))))
     (properties `((upstream-name . "Rhtslib")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-zlibbioc" ,r-zlibbioc)))
     (inputs
      `(("zlib" ,zlib)))
+    (native-inputs
+     `(("autoconf" ,autoconf)))
     (home-page "https://github.com/nhayden/Rhtslib")
     (synopsis "High-throughput sequencing library as an R package")
     (description
@@ -7253,14 +7277,14 @@ of other R packages who wish to make use of HTSlib.")
 (define-public r-bamsignals
   (package
     (name "r-bamsignals")
-    (version "1.4.3")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bamsignals" version))
        (sha256
         (base32
-         "1xqiqvg52p6fcvhr4146djbz79r3j1kmh75mq7rndwglmiybpwmy"))))
+         "1k42gvk5mgq4la1fp0in3an2zfdz69h6522jsqhmk0f6i75kg4mb"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biocgenerics" ,r-biocgenerics)
index 674b8ac..35b6449 100644 (file)
@@ -30,7 +30,7 @@
 (define-public elfutils
   (package
     (name "elfutils")
-    (version "0.166")
+    (version "0.167")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -38,7 +38,7 @@
                     version "/elfutils-" version ".tar.bz2"))
               (sha256
                (base32
-                "0c5s9klq1zyb0zkmrw636k97kz30p5ih8y8dpq8b4f54r0a6j19w"))
+                "0lv5fz2h7j9362l5apbg9jff7309ni385d3325ckavrbqj3h0c1z"))
               (patches (search-patches "elfutils-tests-ptrace.patch"))))
     (build-system gnu-build-system)
 
index 10be825..2a275d0 100644 (file)
@@ -955,7 +955,7 @@ light user interface.")
 (define-public emacs-emms-player-mpv
   (package
     (name "emacs-emms-player-mpv")
-    (version "0.0.8")
+    (version "0.0.10")
     (source
      (origin
        (method url-fetch)
@@ -964,7 +964,7 @@ light user interface.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "01wj410dpx25b3i8781i2j9c6nlvzvvphy9qgh7zfpmyz6a3wsm4"))))
+         "1q81fpmwr8hpdgq71vbdai2nml4yyqbmk4ffdyl4irlwph8gfjyq"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emms" ,emms)))
index e0e61cb..25b8caf 100644 (file)
@@ -56,7 +56,7 @@
 (define-public efl
   (package
     (name "efl")
-    (version "1.18.1")
+    (version "1.18.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -64,7 +64,7 @@
                     version ".tar.xz"))
               (sha256
                (base32
-                "08njx6wd505as1vn0yp4mnmf6mb2v28jsipxxx4zhf78v18d2sqc"))))
+                "1vbvsrrpkvvrmvjavwnp5q77kw5i7vmbaj2vq5mnmrbzamvaybr9"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
index bffbe14..39a49f3 100644 (file)
@@ -2158,42 +2158,42 @@ http://lavachat.symlynx.com/unix/")
 
 (define-public red-eclipse
   (let ((data-sources
-         '(("acerspyro"   "0s6q56i5marpm67lx70g5109lir5d6r45y45i8kbz6arc1spa7pp")
-           ("actors"      "0jclmciz64i81ngxwbag8x5m8wvxkhraa9c7plix566y6rh28fv1")
-           ("appleflap"   "1iz5igzdksamldhy0zh4vdjkxqhmg5c0n5g64pd3kan6h8vlbkq4")
-           ("blendbrush"  "1hz3x5npp25dixcadp020xyahmd1i3ihs4cdf77iy84i9njbp7bv")
-           ("caustics"    "05sbj46lrc6lkf7j6ls6jwc21n0qzxvfhfy9j7hdw482p9gvz54h")
-           ("crosshairs"  "05vfxc6vm91dyf1kzig550fglgydp9szl9135q677lk4g60w5dfh")
-           ("elyvisions"  "0fzdbxc40ggqmv4v1llx6sys2gjc6l1nxsbi5scpxqvm86dbddi9")
-           ("fonts"       "0sbvnd96aip49dy1ja01s36p8fwwczibpic7myfw1frs110m0zgr")
-           ("freezurbern" "0k60dzzq42mfq360qf7bsf4alhy6k5gjfaidg2i1wsz5zssgmqwn")
-           ("john"        "1ln9v8vfm0ggavvdyl438cy4mizzm1i87r9msx1sbja30q8f57c1")
-           ("jojo"        "0cdgl82s4bm6qlv07fsq5l7anbywvvw13d0mng831yn6scf0hxb1")
-           ("jwin"        "0yg5vriffyckgfjmi4487sw07hsp44b3gfw90f0v4jsgbjjm2v20")
-           ("luckystrike" "0f82caq09znsr9m08qnlbh3jl9j5w0ysga0b7d5ayqr5lpqxfk9k")
-           ("maps"        "14m23h3mip12anhx7i9k5xlapwkjbw4n0l7lj1b7dfcimf71gjll")
-           ("mayhem"      "0dxrr6craqi7ag724qfj9y0lb0pmwyrfpap02cndmjbbacdya0ra")
-           ("mikeplus64"  "040giyrk3hdd26sxhdx37q4mk923g5v3jbrinq1fw2yfvsl6n1cs")
-           ("misc"        "07xfs9hngshg27rl2vf65nyxilgnak3534h8msaan0fjgmzvlk0q")
-           ("nobiax"      "1n3nghi5426r2zav4rsfih8gn37sfa85absvhdwhir8wycsvbkh6")
-           ("particles"   "0yj0nykal3fgxx50278xl2zn2bfz09wbrjcvng56aa6hhfiwp8gd")
-           ("philipk"     "1m3krkxq9hsknbmxg1g5sgnpcv7c8c2q7zpbizw2wb3dir8snvcj")
-           ("projectiles" "05swvalja7vzqc3dlk136n5b5kdzn3a8il6bg1h12alcaa0k9rba")
-           ("props"       "1cqi6gw5s4z5pj06x6kiiilh4if0hm1yrbqys5dln23mcvw8f0ny")
-           ("skyboxes"    "1mm6xl89b0l98l2h3qn99id7svmpwr940bydgjbcrvlx21yqdric")
-           ("sounds"      "03q7jazf0chszyiaa9cxirbwdnckcp5fl812sj42lv0z4sqz222l")
-           ("textures"    "1caqyxa9xkrwpyhac65akdv1l7nqychgz7zfivasnskk2yy6jani")
-           ("torley"      "1hp8lkzqmdqyq3jn9rains32diw11gg1w3dxxlln5pc041cd7vil")
-           ("trak"        "0wlczjax33q0hz75lgc4qnxlm592pcxgnbkin5qrglv59nrxzxyr")
-           ("ulukai"      "0dkn7qxf92sidhsy4sm4v5z54n449a2z2w9qax5cfgzs78kb5c34")
-           ("unnamed"     "0p9mmfp0vplmswyxh8qab33phcl8lzmzh3mms4f7i587hppdg6db")
-           ("vanities"    "1w23853lmvj4kx5cbxvb5dk598jiqz7ml2bm0qiy7idkf5mcd2lv")
-           ("vegetation"  "0jw1ljhmv62fzvklid6i8syiacmrs075cp7r3gc069bg4fg47cpn")
-           ("weapons"     "1p64ry1s4y7hkgm6i2rdk2x78368359wvx8v81gg179p3sjnjkww")
-           ("wicked"      "1kmpy2n15lyh50rqjspyfg3qrc72jf0n3dx2y3ian7pjfp6ldxd9"))))
+         '(("acerspyro"   "0hqwa3b65l8mz73mcdsvrwbc14mrx1qn52073p5zh69pqd0mlfi0")
+           ("actors"      "0v87wifqwam5j6vsiidmcvw22i51h9h4skgwhi511mxkwryrp26h")
+           ("appleflap"   "0bkh1v125dwd5jhb4rrc1sl0jdlbb2ib53ihbxa66x1p8l27aklw")
+           ("blendbrush"  "1wh88fshsy492kjvadql2ik1q5pqgcj84jz0hc93ngag8xibxhfi")
+           ("caustics"    "0pc5bnd4fmxh06cm3h8045wgiy894f9x5a943n28gymdyql7q4f6")
+           ("crosshairs"  "1w9acqhxw5nm690862msl5jjbk8qlizxm1vv7p95lgm7q7pg0yxx")
+           ("elyvisions"  "04q31lp5jm8b9crf81s6k1jvrn90i1ay3s6vk103iv8g4amsfhdx")
+           ("fonts"       "1rsfk2d9xk0aaazvrcxk4z5n2cnys7pixadh521mv7zrxbx2d95x")
+           ("freezurbern" "0b2xg5x79yxanr30dhw3zr6dsc6x9w7v7aghbh9kp292j31l280m")
+           ("john"        "07pgjg1rxl3bmwriy2yl3g63nnryjws8jl0ry1cza3p9wd59f8rz")
+           ("jojo"        "0lkzd5pwfqan1gaaz22r5iz4z2nq8dkzycddwa0cxavmq8qmj281")
+           ("jwin"        "0mnyp1inhabw56mw5wkhfd4k6z0lvyhr6cjj6hnj3bz2dip2y2zm")
+           ("luckystrike" "1d89xnvahmzlgm0bjh3zhf02vxx1q16b70x2cihbl05dic1v75pr")
+           ("maps"        "19gy8kl7w2llsklym32hnlnd05z2dhq5dhdxhq5ss5na67skv5by")
+           ("mayhem"      "1si2gnsf732ml8ygkhg27ckvic9wafqmkgq0ab1ifpfpy606sa8d")
+           ("mikeplus64"  "0l48czyglbc0d4ack8xz9imarb6r4l29krq0mf3ld7yrxbc296vr")
+           ("misc"        "0fri1l3i1s1pzvr7aah4a7d9h2i877c21x184z80v4jpqv4228f3")
+           ("nobiax"      "1jv2yv2qj9qbxhaj1nd70v5142dpg074gkkh3bw2anchi8pzyhs8")
+           ("particles"   "0gwj6m5197gpwddqb3pwlkaiafgfszqysaz2h1bx60qzh5crgsf9")
+           ("philipk"     "0ngccscmvlgc2z96vira7phr87f65l4v7immbl697zmc5fda6k68")
+           ("projectiles" "1ig6dag5989rgwrhvmz7xz5q8gf5slgnda8h8zmiyhvrnal09hbp")
+           ("props"       "0g3sgrlgmk9zrl67d9pa93hzb4xx3wwznfxa1h3wwilld0m7gzhx")
+           ("skyboxes"    "0lvpzc741vkmy2rnra41ij91wq3pdl28xamy6vapq61mf44xmmvj")
+           ("sounds"      "0jmvvixcx7kv34sxjs4x7vqsyhir6l5av6b3lm8m8rsfi0sdvqml")
+           ("textures"    "1yx01k9yn2v1k79sa68wa51qw1zk03b8irkvxyd14ygibkicvgnb")
+           ("torley"      "1286srp05nfjban6ca124njyil70gr7bm6aqn5p0vz0xr00l4dw5")
+           ("trak"        "1079fg2cbm95psxic3r63i94z3cnbf04wlid2hqnw308s9l9q36c")
+           ("ulukai"      "0yd80ivn51ya60m4cg4bw13wxgijkjagfgskdphy9adgsaqq9n7b")
+           ("unnamed"     "0l21dhw7kbav59p7ysn6dr2sqzjivwxafml4023yznlhxx5fic4m")
+           ("vanities"    "1aqi32lf7y64fv1y00mpixckjr9wj8p1prgyxjiv7s3hf5q7n2b3")
+           ("vegetation"  "0253fdn5sxywrjb79krhvq2884almxpysn6dn0hi6ylpjzl78zrn")
+           ("weapons"     "0y2zsx6g6k9izshgix9id3y01hsisd88mp5zrlm5x9v8y0sf6kf8")
+           ("wicked"      "0ib0325dn6vzpx3p4cr6bhg9qhj8c5s20xyzy88xjc3y2pazbdvx"))))
     (package
       (name "red-eclipse")
-      (version "1.5.5")
+      (version "1.5.6")
       (source (origin
                 (method url-fetch)
                 (uri (string-append "https://github.com/red-eclipse/base"
@@ -2201,7 +2201,7 @@ http://lavachat.symlynx.com/unix/")
                 (file-name (string-append name "-" version ".tar.gz"))
                 (sha256
                  (base32
-                  "0xl3655876i8j5nixy0yp73s0yw9nwysj68fyhqs2agmvshryy96"))))
+                  "1sv3xhng18sl655sd46lpmqbqz32h32s7nwz68bdr9z9w3iwkf66"))))
       (build-system gnu-build-system)
       (arguments
        `(#:tests? #f            ; no check target
index 10a77f0..a4ae777 100644 (file)
@@ -1614,7 +1614,7 @@ Hints specification (EWMH).")
               (sha256
                (base32
                 "1s3dxvdwzmppsp2dfg90rccilf4hknhwjdy7lazr9sys58zchyx0"))))
-    (build-system gnu-build-system)
+    (build-system glib-or-gtk-build-system)
     (arguments
      `(;; The gnumeric developers don't worry much about failing tests.
        ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
index 6c52286..f49b254 100644 (file)
@@ -35,7 +35,7 @@
 (define-public windowmaker
   (package
     (name "windowmaker")
-    (version "0.95.6")
+    (version "0.95.7")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -43,7 +43,7 @@
                     version ".tar.gz"))
               (sha256
                (base32
-                "1i3dw1yagsa3rs9x2na2ynqlgmbahayws0kz4vl00fla6550nns3"))))
+                "1acph0nq6fsb452sl7j7a7kcc87zqqaw7qms1p8ijar19dn4hbc4"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (alist-cons-before
index b1785e9..4aea514 100644 (file)
@@ -292,7 +292,7 @@ developers consider to have good quality code and correct functionality.")
      ;;  vo-amrwbenc, vo-aacenc, bs2b, chromaprint, directfb, daala, libdts,
      ;;  faac, flite, libgsm, libde265, libmms, libmimic, mjpegtools,
      ;;  mpeg2enc, libofa, opencv, openh264, openni2, libtimemmgr, wildmidi,
-     ;;  openspc, gme, sbc, schroedinger, zbar, librtmp, spandsp, x265
+     ;;  openspc, gme, sbc, schroedinger, zbar, librtmp, spandsp
      `(("bluez" ,bluez)
        ("curl" ,curl)
        ("faad2" ,faad2)
@@ -328,6 +328,7 @@ developers consider to have good quality code and correct functionality.")
        ;("qtdeclarative" ,qtdeclarative)
        ;("qtx11extras" ,qtx11extras)
        ("soundtouch" ,soundtouch)
+       ("x265" ,x265)
        ("wayland" ,wayland)))
     (home-page "http://gstreamer.freedesktop.org/")
     (synopsis "Plugins for the GStreamer multimedia library")
index 0de1409..7fa7e12 100644 (file)
@@ -566,7 +566,7 @@ is part of the GNOME accessibility project.")
 (define-public gtk+-2
   (package
    (name "gtk+")
-   (version "2.24.30")
+   (version "2.24.31")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/" name "/"
@@ -574,7 +574,7 @@ is part of the GNOME accessibility project.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "0l6aqk86aw5w132ygy6hv6nlxvd1h6xg7c85qbm60p6mnv1ww58d"))
+              "0n26jm09n03nqbd00d2ij63xrby3vik56sk5yj6w1vy768kr5hb8"))
             (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"
                                      "gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch"
                                      "gtk2-theme-paths.patch"))))
index 21f37a1..b246d3a 100644 (file)
@@ -8,6 +8,7 @@
 ;;; Copyright © 2016 Eraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
+;;; Copyright © 2016 Amirouche <amirouche@hypermove.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1292,4 +1293,84 @@ is no support for parsing block and inline level HTML.")
 (define-public guile2.2-commonmark
   (package-for-guile-2.2 guile-commonmark))
 
+(define-public guile-bytestructures
+  (package
+    (name "guile-bytestructures")
+    (version "20160726.53127f6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/TaylanUB/scheme-bytestructures")
+                    (commit "53127f608caf64b34fa41c389b2743b546fbe9da")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "0l4nx1vp9fkrgrgwjiycj7nx6wfjfd39rqamv4pmq7issi8mrywq"))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils)
+                      (ice-9 match)
+                      (ice-9 popen)
+                      (ice-9 rdelim))
+         (let* ((out (assoc-ref %outputs "out"))
+                (guile (assoc-ref %build-inputs "guile"))
+                (effective (read-line
+                            (open-pipe* OPEN_READ
+                                        (string-append guile "/bin/guile")
+                                        "-c" "(display (effective-version))")))
+                (module-dir (string-append out "/share/guile/site/"
+                                           effective))
+                (source (assoc-ref %build-inputs "source"))
+                (doc (string-append out "/share/doc/scheme-bytestructures"))
+                (scm-files (filter (lambda (path)
+                                     (not (string-prefix? "bytestructures/r7" path)))
+                                   (with-directory-excursion source
+                                     (find-files "bytestructures" "\\.scm$"))))
+                (guild (string-append (assoc-ref %build-inputs "guile")
+                                      "/bin/guild")))
+           ;; Make installation directories.
+           (mkdir-p doc)
+
+           ;; Compile .scm files and install.
+           (chdir source)
+           (setenv "GUILE_AUTO_COMPILE" "0")
+           (for-each (lambda (file)
+                       (let* ((dest-file (string-append module-dir "/"
+                                                        file))
+                              (go-file (string-append module-dir "/"
+                                                      (substring file 0
+                                                                 (string-rindex file #\.))
+                                                      ".go")))
+                         ;; Install source module.
+                         (mkdir-p (dirname dest-file))
+                         (copy-file file dest-file)
+
+                         ;; Install compiled module.
+                         (mkdir-p (dirname go-file))
+                         (unless (zero? (system* guild "compile"
+                                                 "-L" source
+                                                 "-o" go-file
+                                                 file))
+                           (error (format #f "Failed to compile ~s to ~s!"
+                                          file go-file)))))
+                     scm-files)
+
+           ;; Also copy over the README.
+           (install-file "README.md" doc)
+           #t))))
+    (inputs
+     `(("guile" ,guile-2.0)))
+    (home-page "https://github.com/TaylanUB/scheme-bytestructures")
+    (synopsis "Structured access to bytevector contents for Guile")
+    (description
+     "Guile bytestructures offers a system imitating the type system
+of the C programming language, to be used on bytevectors.  C's type
+system works on raw memory, and Guile works on bytevectors which are
+an abstraction over raw memory.  It's also more powerful than the C
+type system, elevating types to first-class status.")
+    (license gpl3+)))
+
 ;;; guile.scm ends here
index a516629..3b63c89 100644 (file)
@@ -3,7 +3,7 @@
 ;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net>
 ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016 ng0 <ngillmann@runbox.com>
+;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -139,14 +139,14 @@ SILC and ICB protocols via plugins.")
 (define-public weechat
   (package
     (name "weechat")
-    (version "1.5")
+    (version "1.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://weechat.org/files/src/weechat-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0w87w4wy61x705ama8h36z9mgdj2gmmzdfrsxvwyh2m2as2max1i"))
+                "0lyqrymdjdvkzg8510l46c4zw8mjagnmri2i6m9y9qz0c1sfaq9h"))
               (patches (search-patches "weechat-python.patch"))))
     (build-system gnu-build-system)
     (native-inputs `(("autoconf" ,autoconf)
index 0279e91..5c0613f 100644 (file)
@@ -335,13 +335,10 @@ It has been modified to remove all non-free binary blobs.")
                     #:configuration-file kernel-config))
 
 (define-public linux-libre-4.1
-  (make-linux-libre "4.1.34"
-                    "0dajsb363p9lgga22ml8gp9k9lxd8mvrzxk9y3h9c6hpzfcmqdqr"
+  (make-linux-libre "4.1.35"
+                    "05zvrld1digqwf9kqf5pxx0mxqmwpr5kamhnks6y4yfy7x7jynyk"
                     %intel-compatible-systems
-                    #:configuration-file kernel-config
-                    #:patches (list %boot-logo-patch
-                                    (search-patch
-                                     "linux-libre-4.1-CVE-2016-5195.patch"))))
+                    #:configuration-file kernel-config))
 
 ;; Avoid rebuilding kernel variants when there is a minor version bump.
 (define %linux-libre-version "4.8.4")
diff --git a/gnu/packages/lolcode.scm b/gnu/packages/lolcode.scm
new file mode 100644 (file)
index 0000000..4c7d182
--- /dev/null
@@ -0,0 +1,58 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
+;;;
+;;; 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 (gnu packages lolcode)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages readline)
+  #:use-module (guix build-system cmake)
+  #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages))
+
+(define-public lci
+  (package
+    (name "lci")
+    (version "0.11.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/justinmeza/lci/archive/v"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1li7ikcrs7wqah7gqkirg0k61n6pm12w7pydin966x1sdn9na46b"))
+              (file-name (string-append name "-" version ".tar.gz"))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("readline" ,readline)))
+    (native-inputs
+     `(("python-2" ,python-2))) ; for the tests
+    (synopsis "LOLCODE interpreter written in C")
+    (description
+     "@code{lci} is a LOLCODE interpreter written in C and is designed to be
+correct, portable, fast, and precisely documented.
+@enumerate
+@item correct: Every effort has been made to test lci's conformance to the
+LOLCODE language specification.  Unit tests come packaged with the lci source code.
+@item portable: lci follows the widely ported ANSI C specification allowing it
+to compile on a broad range of systems.
+@item fast: Much effort has gone into producing simple and efficient code
+whenever possible to the extent that the above points are not compromized.
+@end enumerate")
+    (home-page "http://lolcode.org/")
+    (license license:gpl3+)))
index eee7d18..e1b490e 100644 (file)
@@ -19,6 +19,7 @@
 ;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
+;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -47,6 +48,7 @@
   #:use-module (gnu packages databases)
   #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages dns)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages enchant)
   #:use-module (gnu packages ghostscript)
@@ -319,6 +321,9 @@ and corrections.  It is based on a Bayesian filter.")
                (base32
                 "0smxh5ag3cbn92kp49jq950j5m2pivs9kr04prpd1lw62hy7gnhr"))))
     (build-system python-build-system)
+    (native-inputs
+     `(("asciidoc" ,asciidoc)
+       ("libxslt" ,libxslt)))  ; for xsltproc
     (inputs `(("python2-pysqlite" ,python2-pysqlite)
               ("python2-six" ,python2-six)))
     (arguments
@@ -328,8 +333,21 @@ and corrections.  It is based on a Bayesian filter.")
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
-         (add-after 'install 'wrap-binary
-           (lambda* (#:key inputs outputs #:allow-other-keys)
+         (add-after 'build 'build-documentation
+           (lambda _
+             (substitute* "docs/Makefile"
+               ;; Prevent xmllint and xsltproc from downloading a DTD file.
+               (("a2x -v") "a2x --no-xmllint --xsltproc-opts=--nonet -v"))
+             (zero? (system* "make" "-C" "docs" "man"))))
+         (add-after 'install 'install-documentation
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (man (string-append out "/share/man")))
+               (install-file "docs/offlineimap.1" (string-append man "/man1"))
+               (install-file "docs/offlineimapui.7" (string-append man "/man7"))
+               #t)))
+         (add-after 'install-documentation 'wrap-binary
+           (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin/offlineimap")))
                (wrap-program bin
@@ -501,18 +519,14 @@ invoking @command{notifymuch} from the post-new hook.")
 (define-public notmuch
   (package
     (name "notmuch")
-    (version "0.23")
+    (version "0.23.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://notmuchmail.org/releases/notmuch-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1f51l34rdhjf8lvafrwybkxdsdwx8k9397m7qxd8rdg2irjmpry5"))
-              (patches
-               ;; Remove this for the next release. See this thread for context:
-               ;; https://notmuchmail.org/pipermail/notmuch/2016/023227.html
-               (search-patches "notmuch-emacs-25-compatibility-fix.patch"))))
+                "106ijsnilqf8760z4cq99rqzjsvyaw86d0lgnzz7v95gm4d2l0g8"))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags (list "V=1") ; Verbose test output.
@@ -1618,7 +1632,7 @@ some additional standard extensions.  It allows ordinary machines to exchange
 e-mails with other systems speaking the SMTP protocol.")
     (home-page "https://www.opensmtpd.org")
     (license (list bsd-2 bsd-3 bsd-4 (non-copyleft "file://COPYING")
-                   public-domain isc openssl))))
+                   public-domain isc license:openssl))))
 
 (define-public opensmtpd-extras
   (package
@@ -1681,8 +1695,8 @@ e-mails with other systems speaking the SMTP protocol.")
                                          (assoc-ref %build-inputs "python-2"))
                           (string-append "--with-lua="
                                          (assoc-ref %build-inputs "lua")))))
-    (license (list bsd-2 bsd-3 bsd-4 non-copyleft
-                   public-domain isc openssl))
+    (license (list bsd-2 bsd-3 bsd-4
+                   public-domain isc license:openssl))
     (synopsis "Extra tables, filters, and various other addons for OpenSMTPD")
     (description
      "This package provides extra tables, filters, and various other addons
index 274f770..84b8395 100644 (file)
@@ -113,6 +113,47 @@ interactive dialogs to guide them.")
    (license license:gpl3+)
    (home-page "http://www.gnu.org/software/c-graph/")))
 
+(define-public coda
+  (package
+    (name "coda")
+    (version "2.17.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/stcorp/coda/releases/download/"
+                           version "/coda-" version ".tar.gz"))
+       (sha256
+        (base32 "04b9l3wzcix0mnfq77mwnil6cbr8h2mki8myvy0lzn236qcwaq1h"))
+       (patches (search-patches "coda-use-system-libs.patch"))
+       (modules '((guix build utils)))
+       (snippet
+        ;; Make sure we don't use the bundled software.
+        '(for-each (lambda (d)
+                     (delete-file-recursively (string-append "libcoda/" d)))
+                   '("zlib" "pcre" "expat")))))
+    (native-inputs
+     `(("fortran" ,gfortran)
+       ("python" ,python)
+       ("python-numpy" ,python-numpy)))
+    (inputs
+     `(("zlib" ,zlib)
+       ("pcre" ,pcre)
+       ("expat" ,expat)
+       ("hdf4" ,hdf4-alt)
+       ("hdf5" ,hdf5)))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("--with-hdf4" "--with-hdf5" "--enable-python"
+                           "LIBS= -lz -lpcre -lexpat")))
+    (synopsis "A common interface to various earth observation data formats")
+    (description
+     "The Common Data Access toolbox (CODA) provides a set of interfaces for
+reading remote sensing data from earth observation data files.  It consists of
+command line applications and interfaces to the C, Fortran, Python, and Java
+programming languages.")
+    (home-page "https://stcorp.nl/coda")
+    (license license:gpl2+)))
+
 (define-public units
   (package
    (name "units")
@@ -544,6 +585,41 @@ extremely large and complex data collections.")
     (license (license:x11-style
               "http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/COPYING"))))
 
+(define-public hdf-eos2
+  (package
+    (name "hdf-eos2")
+    (version "19.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri "ftp://edhs1.gsfc.nasa.gov\
+/edhs/hdfeos/latest_release/HDF-EOS2.19v1.00.tar.Z")
+       (sha256
+        (base32 "0c9fcz25s292ldap12wxmlrvnyz99z24p63d8fwx51bf8s0s1zrz"))
+       (patches (search-patches "hdf-eos2-remove-gctp.patch"
+                                "hdf-eos2-build-shared.patch"
+                                "hdf-eos2-fortrantests.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("gfortran" ,gfortran)))
+    (inputs
+     `(("hdf4" ,hdf4-alt) ; assume most HDF-EOS2 users won't use the HDF4 netCDF API
+       ("zlib" ,zlib)
+       ("libjpeg" ,libjpeg)
+       ("gctp" ,gctp)))
+    (arguments
+     `( #:configure-flags '("--enable-install-include" "--enable-shared"
+                            "CC=h4cc -Df2cFortran" "LIBS=-lgctp")
+        #:parallel-tests? #f))
+    (home-page "http://hdfeos.org/software/library.php#HDF-EOS2")
+    (synopsis "HDF4-based data format for NASA's Earth Observing System")
+    (description "HDF-EOS2 is a software library built on HDF4 which supports
+the construction of data structures used in NASA's Earth Observing
+System (Grid, Point and Swath).")
+
+    ;; Source files carry a permissive license header.
+    (license (license:non-copyleft home-page))))
+
 (define-public hdf-eos5
   (package
     (name "hdf-eos5")
@@ -1911,14 +1987,14 @@ full text searching.")
 (define-public armadillo
   (package
     (name "armadillo")
-    (version "6.700.7")
+    (version "7.500.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/arma/armadillo-"
-                                  version ".tar.gz"))
+                                  version ".tar.xz"))
               (sha256
                (base32
-                "0xbidcxrvbq33xf7iysg2nic2ai9a043psl33kiv6ifkk7p8hcra"))))
+                "1x98d32cgxbzbbma2ak6c37wnbpq13xxyxyd6jjvflv748mzi9ks"))))
     (build-system cmake-build-system)
     (arguments `(#:tests? #f)) ;no test target
     (inputs
@@ -1939,14 +2015,14 @@ associated functions (eg. contiguous and non-contiguous submatrix views).")
 
 (define-public armadillo-for-rcpparmadillo
   (package (inherit armadillo)
-    (version "7.400.2")
+    (version "7.500.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/arma/armadillo-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0xmpnqhm9mwr1lssjyarj0cl8b4svbqv6z1xa1dxlwd2ly1srkg4"))))))
+                "1x98d32cgxbzbbma2ak6c37wnbpq13xxyxyd6jjvflv748mzi9ks"))))))
 
 (define-public muparser
   ;; When switching download sites, muparser re-issued a 2.2.5 release with a
index 0089da1..66cf231 100644 (file)
@@ -452,7 +452,7 @@ was initially a fork of xmpppy, but is using non-blocking sockets.")
 (define-public gajim
   (package
     (name "gajim")
-    (version "0.16.5")
+    (version "0.16.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://gajim.org/downloads/"
@@ -460,34 +460,27 @@ was initially a fork of xmpppy, but is using non-blocking sockets.")
                                   "/gajim-" version ".tar.bz2"))
               (sha256
                (base32
-                "14fhcqnkqygh91132dnf1idayj4r3iqbwb44sd3mxv20n6ribh55"))))
+                "1p3qwzy07f0wkika9yigyiq167l2k6wn12flqa7x55z4ihbysmqk"))))
     (build-system gnu-build-system)
     (arguments
-     `(;; The only check done by gajim-0.16.x is to check that the
-       ;; translations are up-to-date, and in 0.16.5 they are not, so
-       ;; "make check" fails.  Therefore, we disable tests for now.
-       ;;
-       ;; XXX TODO Try re-enabling tests in gajim-0.16.6 or later.
-       ;;
-       #:tests? #f
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-after 'install 'wrap-program
-          (lambda* (#:key outputs #:allow-other-keys)
-            ;; Make sure all Python scripts run with the correct PYTHONPATH.
-            (let ((out (assoc-ref outputs "out"))
-                  (path (getenv "PYTHONPATH")))
-              (for-each (lambda (name)
-                          (let ((file (string-append out "/bin/" name)))
-                            ;; Wrapping destroys identification of intended
-                            ;; application, so we need to override "APP".
-                            (substitute* file
-                              (("APP=`basename \\$0`")
-                               (string-append "APP=" name)))
-                            (wrap-program file
-                              `("PYTHONPATH" ":" prefix (,path)))))
-                        '("gajim" "gajim-remote" "gajim-history-manager")))
-            #t)))))
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Make sure all Python scripts run with the correct PYTHONPATH.
+             (let ((out (assoc-ref outputs "out"))
+                   (path (getenv "PYTHONPATH")))
+               (for-each (lambda (name)
+                           (let ((file (string-append out "/bin/" name)))
+                             ;; Wrapping destroys identification of intended
+                             ;; application, so we need to override "APP".
+                             (substitute* file
+                               (("APP=`basename \\$0`")
+                                (string-append "APP=" name)))
+                             (wrap-program file
+                               `("PYTHONPATH" ":" prefix (,path)))))
+                         '("gajim" "gajim-remote" "gajim-history-manager")))
+             #t)))))
     (native-inputs
      `(("intltool" ,intltool)))
     (propagated-inputs
@@ -504,7 +497,7 @@ Among its features are: a tabbed chat window and single window modes; support
 for group chat (with Multi-User Chat protocol), invitation, chat to group chat
 transformation; audio and video conferences; file transfer; TLS, GPG and
 end-to-end encryption support; XML console.")
-    (license license:gpl3+)))
+    (license license:gpl3)))
 
 (define-public prosody
   (package
index a96185a..3212908 100644 (file)
@@ -32,6 +32,7 @@
               (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"))))
index b79f4c2..a348d07 100644 (file)
@@ -48,6 +48,7 @@
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages libidn)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages mit-krb5)
@@ -424,6 +425,44 @@ and up to 1 Mbit/s downstream.")
     ;; src/md5.[ch] is released under the zlib license
     (license (list license:isc license:zlib))))
 
+(define-public whois
+  (package
+    (name "whois")
+    (version "5.2.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://debian/pool/main/w/whois/"
+                           name "_" version ".tar.xz"))
+       (sha256
+        (base32
+         "1wfdyqi64l5x56j259jrrlbh19b7q7i6r83a8q8rjzcqp0kl0vdj"))))
+    (build-system gnu-build-system)
+    ;; TODO: unbundle mkpasswd binary + its po files.
+    (arguments
+     `(#:tests? #f ; Does not exist
+       #:make-flags (list "CC=gcc"
+                          (string-append "prefix=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure) ; No configure
+         (add-before 'build 'setenv
+           (lambda _
+             (setenv "HAVE_ICONV" "1")
+             (setenv "HAVE_LIBIDN" "1"))))))
+    (inputs
+     `(("libidn" ,libidn)))
+    (native-inputs
+     `(("gettext" ,gnu-gettext)
+       ("perl" ,perl)))
+    (synopsis "Improved whois client")
+    (description "This whois client is intelligent and can
+automatically select the appropriate whois server for most queries.
+Because of historical reasons this also includes a tool called mkpasswd
+which can be used to encrypt a password with @code{crypt(3)}.")
+    (home-page "https://github.com/rfc1036/whois")
+    (license license:gpl2+)))
+
 (define-public wireshark
   (package
     (name "wireshark")
diff --git a/gnu/packages/patches/coda-use-system-libs.patch b/gnu/packages/patches/coda-use-system-libs.patch
new file mode 100644 (file)
index 0000000..fbf8441
--- /dev/null
@@ -0,0 +1,46 @@
+Remove dependencies on bundled zlib, pcre and expat.
+
+diff --git a/Makefile.in b/Makefile.in
+index 4360a26..80f9f59 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -210,8 +210,7 @@ coda_matlab_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ @BUILD_MATLAB_TRUE@@SUBPACKAGE_MODE_FALSE@    -rpath \
+ @BUILD_MATLAB_TRUE@@SUBPACKAGE_MODE_FALSE@    $(matlabmexexecdir)
+ am__DEPENDENCIES_1 =
+-libcoda_la_DEPENDENCIES = @LTLIBOBJS@ libexpat_internal.la \
+-      libpcre_internal.la libz_internal.la $(am__DEPENDENCIES_1) \
++libcoda_la_DEPENDENCIES = @LTLIBOBJS@ $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1)
+ am__libcoda_la_SOURCES_DIST = libcoda/coda-ascbin-cursor.c \
+       libcoda/coda-ascbin.h libcoda/coda-ascii-cursor.c \
+@@ -306,8 +305,7 @@ libcoda_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(libcoda_la_LDFLAGS) $(LDFLAGS) -o $@
+ @SUBPACKAGE_MODE_FALSE@am_libcoda_la_rpath = -rpath $(libdir)
+-am__DEPENDENCIES_2 = @LTLIBOBJS@ libexpat_internal.la \
+-      libpcre_internal.la libz_internal.la $(am__DEPENDENCIES_1) \
++am__DEPENDENCIES_2 = @LTLIBOBJS@ $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1)
+ libcoda_internal_la_DEPENDENCIES = $(am__DEPENDENCIES_2)
+ am__libcoda_internal_la_SOURCES_DIST = libcoda/coda-ascbin-cursor.c \
+@@ -898,8 +896,8 @@ INSTALL_DATA_HOOK_TARGETS = $(am__append_1)
+ UNINSTALL_HOOK_TARGETS = 
+ CLEAN_LOCAL_TARGETS = $(am__append_11)
+ ALL_LOCAL_TARGETS = 
+-@SUBPACKAGE_MODE_FALSE@noinst_LTLIBRARIES = libcoda_internal.la libexpat_internal.la libpcre_internal.la libz_internal.la
+-@SUBPACKAGE_MODE_TRUE@noinst_LTLIBRARIES = libcoda_internal.la libexpat_internal.la libpcre_internal.la libz_internal.la
++@SUBPACKAGE_MODE_FALSE@noinst_LTLIBRARIES = libcoda_internal.la
++@SUBPACKAGE_MODE_TRUE@noinst_LTLIBRARIES = libcoda_internal.la
+ # libraries (+ related files)
+ @SUBPACKAGE_MODE_FALSE@lib_LTLIBRARIES = libcoda.la
+@@ -1048,7 +1046,7 @@ libcoda_hdf5_files = \
+ libcoda_la_CPPFLAGS = -Ilibcoda/expat -I$(srcdir)/libcoda/expat -Ilibcoda/pcre -I$(srcdir)/libcoda/pcre -Ilibcoda/zlib -I$(srcdir)/libcoda/zlib $(AM_CPPFLAGS)
+ libcoda_la_LDFLAGS = -no-undefined -version-info $(LIBCODA_CURRENT):$(LIBCODA_REVISION):$(LIBCODA_AGE)
+-libcoda_la_LIBADD = @LTLIBOBJS@ libexpat_internal.la libpcre_internal.la libz_internal.la $(HDF4LIBS) $(HDF5LIBS)
++libcoda_la_LIBADD = @LTLIBOBJS@ $(HDF4LIBS) $(HDF5LIBS)
+ libcoda_internal_la_SOURCES = libcoda/coda-ascbin-cursor.c \
+       libcoda/coda-ascbin.h libcoda/coda-ascii-cursor.c \
+       libcoda/coda-ascii-internal.h libcoda/coda-ascii.c \
diff --git a/gnu/packages/patches/hdf-eos2-build-shared.patch b/gnu/packages/patches/hdf-eos2-build-shared.patch
new file mode 100644 (file)
index 0000000..71112e3
--- /dev/null
@@ -0,0 +1,25 @@
+Changes necessary for shared library linking to succeed.
+
+diff --git a/src/Makefile.in b/src/Makefile.in
+index 9534473..12411bf 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -73,7 +73,7 @@ LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+ CCLD = $(CC)
+-LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
++LINK = HDF4_USE_SHLIB=yes $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ SOURCES = $(libhdfeos_la_SOURCES)
+ DIST_SOURCES = $(libhdfeos_la_SOURCES)
+@@ -125,8 +125,6 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+-# Set LDFLAGS to alow the HDF-EOS library to use extern variables from HDF4
+-LDFLAGS = -Wl,-single_module
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LIBTOOL = @LIBTOOL@
+
diff --git a/gnu/packages/patches/hdf-eos2-fortrantests.patch b/gnu/packages/patches/hdf-eos2-fortrantests.patch
new file mode 100644 (file)
index 0000000..adecc18
--- /dev/null
@@ -0,0 +1,329 @@
+Fix multi-line string formatting in fortran test programs (reported upstream).
+
+diff --git a/samples/appendfield.f b/samples/appendfield.f
+index 42c4b6b..58257f7 100644
+--- a/samples/appendfield.f
++++ b/samples/appendfield.f
+@@ -22,8 +22,8 @@ c
+          inarray(i) = i
+       enddo
+       
+-      swfid = swopen("SwathFile_created_with_hadeos_sample_file_writer_o
+-     1f_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
++      swfid = swopen("SwathFile_created_with_hadeos_sample_file_write"//
++     1"r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
+       swid = swattach(swfid, "Swath1")
+diff --git a/samples/definefields.f b/samples/definefields.f
+index 89859e4..f3b3497 100644
+--- a/samples/definefields.f
++++ b/samples/definefields.f
+@@ -24,8 +24,8 @@ c    DFACC_RDWR accesscode in the open statement.  The SWopen
+ c     routine returns the swath fileid, swfid, which is used to
+ c     identify the file in subsequent routines.
+-      swfid = swopen("SwathFile_created_with_hadeos_sample_file_writer
+-     1_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
++      swfid = swopen("SwathFile_created_with_hadeos_sample_file_write"//
++     1"r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
+ c
+diff --git a/samples/definegdflds.f b/samples/definegdflds.f
+index 177422e..1b7fcf6 100644
+--- a/samples/definegdflds.f
++++ b/samples/definegdflds.f
+@@ -21,8 +21,8 @@
+       fillval1=-7.0
+       fillval2=-9999.0
+-      gdfid = gdopen("GridFile_created_with_hadeos_sample_file_writer_
+-     1of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
++      gdfid = gdopen("GridFile_created_with_hadeos_sample_file_write"//
++     1"r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
+       gdid1 = gdattach(gdfid, "UTMGrid")
+diff --git a/samples/definelevels.f b/samples/definelevels.f
+index 2496d5f..64b2842 100644
+--- a/samples/definelevels.f
++++ b/samples/definelevels.f
+@@ -32,8 +32,8 @@ c    DFACC_RDWR access code in the open statement.  The ptopen
+ c     routine returns the point fileid, ptfid, which is used to
+ c     identify the file in subsequent routines.
+-      ptfid = ptopen("PointFile_created_with_hadeos_sample_file_writer
+-     1_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
++      ptfid = ptopen("PointFile_created_with_hadeos_sample_file_write"//
++     1  "r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
+ c
+diff --git a/samples/inquiregrid.f b/samples/inquiregrid.f
+index 8110461..8ce71e4 100644
+--- a/samples/inquiregrid.f
++++ b/samples/inquiregrid.f
+@@ -18,8 +18,8 @@
+       
+-      gdfid = gdopen('GridFile_created_with_hadeos_sample_file_writer_
+-     1of_HDFEOS2_version_219_or_higher_release.hdf', DFACC_READ)
++      gdfid = gdopen("GridFile_created_with_hadeos_sample_file_write"//
++     1"r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_READ)
+     
+       if (gdfid .ne. -1) then
+diff --git a/samples/inquireswath.f b/samples/inquireswath.f
+index 899ee59..78c292b 100644
+--- a/samples/inquireswath.f
++++ b/samples/inquireswath.f
+@@ -24,8 +24,8 @@ c
+ c     Open the Swath File for read only access
+ c
+-      swfid = swopen("SwathFile_created_with_hadeos_sample_file_writer
+-     1_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_READ)
++      swfid = swopen("SwathFile_created_with_hadeos_sample_file_write"//
++     1"r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_READ)
+     
+       if (swfid .NE. -1) then
+diff --git a/samples/readdimscalegrid.f b/samples/readdimscalegrid.f
+index fed5540..a0bb48a 100644
+--- a/samples/readdimscalegrid.f
++++ b/samples/readdimscalegrid.f
+@@ -34,8 +34,8 @@
+ !     * id, gdfid, which is used to identify the file in subsequent routines.
+ !     */
+-      gdfid = gdopen("GridFile_created_with_hadeos_sample_file_writer_
+-     1of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
++      gdfid = gdopen("GridFile_created_with_hadeos_sample_file_write"//
++     1"r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
+ !    /*
+ !     * If the grid file cannot be found, gdopen will return -1 for the file
+diff --git a/samples/readdimscaleswath.f b/samples/readdimscaleswath.f
+index 97b6264..1b61624 100644
+--- a/samples/readdimscaleswath.f
++++ b/samples/readdimscaleswath.f
+@@ -33,8 +33,8 @@
+ !     * id, swfid, which is used to identify the file in subsequent routines.
+ !     */
+-      swfid = swopen("SwathFile_created_with_hadeos_sample_file_writer
+-     1_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
++      swfid = swopen("SwathFile_created_with_hadeos_sample_file_write"//
++     1"r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
+ !    /*
+ !     * If the swath file cannot be found, swopen will return -1 for the file
+diff --git a/samples/readfields.f b/samples/readfields.f
+index 873b30a..29d42f0 100644
+--- a/samples/readfields.f
++++ b/samples/readfields.f
+@@ -21,8 +21,8 @@ c
+ c     Open the HDF swath file, "SwathFile.hdf"
+ c 
+-      swfid = swopen("SwathFile_created_with_hadeos_sample_file_writer
+-     1_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_READ)
++      swfid = swopen("SwathFile_created_with_hadeos_sample_file_write"//
++     1"r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_READ)
+       if (swfid .NE. -1) then
+diff --git a/samples/readgdflds.f b/samples/readgdflds.f
+index e5fe85f..ff2bd86 100644
+--- a/samples/readgdflds.f
++++ b/samples/readgdflds.f
+@@ -9,8 +9,8 @@
+       integer DFNT_FLOAT32
+       parameter (DFNT_FLOAT32=5)
+-      gdfid = gdopen("GridFile_created_with_hadeos_sample_file_writer_
+-     1of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
++      gdfid = gdopen("GridFile_created_with_hadeos_sample_file_write"//
++     1"r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
+       if (gdfid .ne. -1) then
+diff --git a/samples/readlevels.f b/samples/readlevels.f
+index a7fd033..f349398 100644
+--- a/samples/readlevels.f
++++ b/samples/readlevels.f
+@@ -36,8 +36,8 @@ c
+ c     Open the HDF swath file, "PointFile.hdf".
+ c
+-      ptfid = ptopen("PointFile_created_with_hadeos_sample_file_writer
+-     1_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_READ)
++      ptfid = ptopen("PointFile_created_with_hadeos_sample_file_write"//
++     +  "r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_READ)
+ c
+ c    Read Simple Point
+@@ -47,6 +47,8 @@ c
+       status = ptlevinfo(ptid, 0, fldlist, fldtype, fldorder)
+       n = ptnrecs(ptid, 0)
++      write(*,*) n
++
+       do 5 i=1,n
+          recs(i) = i - 1
+  5    continue
+diff --git a/samples/setupgrid.f b/samples/setupgrid.f
+index be5408c..cf4bd04 100644
+--- a/samples/setupgrid.f
++++ b/samples/setupgrid.f
+@@ -34,8 +34,8 @@ c      code in the open statement.  The GDopen routine returns the grid
+ c      file id, gdfid, which is used to identify the file in subsequent
+ c      routines in the library.
+ c
+-      gdfid = gdopen('GridFile_created_with_hadeos_sample_file_writer_of
+-     1_HDFEOS2_version_219_or_higher_release.hdf',DFACC_CREATE)
++      gdfid = gdopen('GridFile_created_with_hadeos_sample_file_writer_"//
++     1"of_HDFEOS2_version_219_or_higher_release.hdf',DFACC_CREATE)
+ c    
+ c     Create UTM Grid
+diff --git a/samples/setupswath.f b/samples/setupswath.f
+index d0289d6..fbaa0bb 100644
+--- a/samples/setupswath.f
++++ b/samples/setupswath.f
+@@ -22,8 +22,8 @@ c      code in the open statement.  The SWopen routine returns the swath
+ c      file id, swfid, which is used to identify the file in subsequent
+ c      routines in the library.
+ c
+-      swfid = swopen('SwathFile_created_with_hadeos_sample_file_writer_o
+-     1f_HDFEOS2_version_219_or_higher_release.hdf',DFACC_CREATE)
++      swfid = swopen("SwathFile_created_with_hadeos_sample_file_write"//
++     1"r_of_HDFEOS2_version_219_or_higher_release.hdf",DFACC_CREATE)
+ c    
+ c     The first of these, SWcreate, creates the swath, "Swath1", within the
+diff --git a/samples/subsetgrid.f b/samples/subsetgrid.f
+index c57e541..087e5b1 100644
+--- a/samples/subsetgrid.f
++++ b/samples/subsetgrid.f
+@@ -22,8 +22,8 @@ c
+ c     Open the HDF grid file, "GridFile.hdf"
+ c 
+-      gdfid = gdopen("GridFile_created_with_hadeos_sample_file_writer_
+-     1of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_READ)
++      gdfid = gdopen("GridFile_created_with_hadeos_sample_file_write"//
++     1"r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_READ)
+       if (gdfid .NE. -1) then
+diff --git a/samples/subsetpoint.f b/samples/subsetpoint.f
+index 9e72c5f..2e76d7d 100644
+--- a/samples/subsetpoint.f
++++ b/samples/subsetpoint.f
+@@ -21,8 +21,8 @@ c
+ c     Open the HDF point file, "PointFile.hdf"
+ c 
+-      ptfid = ptopen("PointFile_created_with_hadeos_sample_file_writer
+-     1_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_READ)
++      ptfid = ptopen("PointFile_created_with_hadeos_sample_file_write"//
++     1  "r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_READ)
+       if (ptfid .NE. -1) then
+diff --git a/samples/subsetswath.f b/samples/subsetswath.f
+index dcee609..9af8a46 100644
+--- a/samples/subsetswath.f
++++ b/samples/subsetswath.f
+@@ -28,8 +28,8 @@ c
+ c     Open the HDF swath file, "SwathFile.hdf"
+ c 
+-      swfid = swopen("SwathFile_created_with_hadeos_sample_file_writer
+-     1_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_READ)
++      swfid = swopen("SwathFile_created_with_hadeos_sample_file_write"//
++     1"r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_READ)
+       if (swfid .NE. -1) then
+diff --git a/samples/writedimscalegrid.f b/samples/writedimscalegrid.f
+index 09688d8..42013fe 100644
+--- a/samples/writedimscalegrid.f
++++ b/samples/writedimscalegrid.f
+@@ -29,8 +29,8 @@
+ !     * id, gdfid, which is used to identify the file in subsequent routines.
+ !     */
+-      gdfid = gdopen("GridFile_created_with_hadeos_sample_file_writer_
+-     1of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
++      gdfid = gdopen("GridFile_created_with_hadeos_sample_file_write"//
++     1"r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
+ !    /*
+ !     * If the grid file cannot be found, gdopen will return -1 for the file
+diff --git a/samples/writedimscaleswath.f b/samples/writedimscaleswath.f
+index 1151671..1a911a6 100644
+--- a/samples/writedimscaleswath.f
++++ b/samples/writedimscaleswath.f
+@@ -31,8 +31,8 @@
+ !     * id, swfid, which is used to identify the file in subsequent routines.
+ !     */
+-      swfid = swopen("SwathFile_created_with_hadeos_sample_file_write
+-     1r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
++      swfid = swopen("SwathFile_created_with_hadeos_sample_file_write"//
++     1"r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
+ !    /*
+ !     * If the swath file cannot be found, swopen will return -1 for the file
+diff --git a/samples/writefields.f b/samples/writefields.f
+index a743661..862b96c 100644
+--- a/samples/writefields.f
++++ b/samples/writefields.f
+@@ -31,8 +31,8 @@ c
+ c     Open the HDF swath file, "SwathFile.hdf"
+ c 
+-      swfid = swopen("SwathFile_created_with_hadeos_sample_file_writer
+-     1_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
++      swfid = swopen("SwathFile_created_with_hadeos_sample_file_write"//
++     1"r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
+       if (swfid .NE. -1) then
+diff --git a/samples/writegdflds.f b/samples/writegdflds.f
+index d1540b3..81aef75 100644
+--- a/samples/writegdflds.f
++++ b/samples/writegdflds.f
+@@ -23,8 +23,8 @@
+       enddo
+-      gdfid = gdopen("GridFile_created_with_hadeos_sample_file_writer_
+-     1of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
++      gdfid = gdopen("GridFile_created_with_hadeos_sample_file_write"//
++     1"r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
+       if (gdfid .ne. -1) then
+diff --git a/samples/writelevels.f b/samples/writelevels.f
+index 88e7780..cb40c9e 100644
+--- a/samples/writelevels.f
++++ b/samples/writelevels.f
+@@ -32,8 +32,8 @@ c
+ c     Open the HDF point file, "PointFile.hdf".
+ c
+-      ptfid = ptopen("PointFile_created_with_hadeos_sample_file_writer
+-     1_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
++      ptfid = ptopen("PointFile_created_with_hadeos_sample_file_write"//
++     +  "r_of_HDFEOS2_version_219_or_higher_release.hdf", DFACC_RDWR)
+ c
+-- 
+2.10.0
+
diff --git a/gnu/packages/patches/hdf-eos2-remove-gctp.patch b/gnu/packages/patches/hdf-eos2-remove-gctp.patch
new file mode 100644 (file)
index 0000000..0776c06
--- /dev/null
@@ -0,0 +1,55 @@
+Don't build the GCTP bundled with the source and link with the
+system's -lgctp instead.  We also remove references to the
+"testdrivers" directory, which is not distributed together with the
+source, causing autoreconf to fail.
+
+diff --git a/Makefile.in b/Makefile.in
+index d468af2..90428a7 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -206,7 +206,7 @@ LIBGCTP = $(top_builddir)/gctp/src/libGctp.la
+ @TESTDRIVERS_CONDITIONAL_TRUE@TESTDRIVERS = testdrivers
+ @INSTALL_INCLUDE_CONDITIONAL_FALSE@INCLUDE = 
+ @INSTALL_INCLUDE_CONDITIONAL_TRUE@INCLUDE = include
+-SUBDIRS = gctp src $(INCLUDE) samples $(TESTDRIVERS)
++SUBDIRS = src $(INCLUDE) samples $(TESTDRIVERS)
+ all: all-recursive
+ .SUFFIXES:
+diff --git a/include/Makefile.in b/include/Makefile.in
+index 9938b23..afb7f40 100644
+--- a/include/Makefile.in
++++ b/include/Makefile.in
+@@ -190,7 +190,7 @@ LIBGCTP = $(top_builddir)/gctp/src/libGctp.la
+ # Boilerplate include
+ # Headers to install
+-include_HEADERS = HE2_config.h HdfEosDef.h HDFEOSVersion.h cfortHdf.h ease.h
++include_HEADERS = HdfEosDef.h HDFEOSVersion.h cfortHdf.h ease.h
+ all: HE2_config.h
+       $(MAKE) $(AM_MAKEFLAGS) all-am
+diff --git a/samples/Makefile.in b/samples/Makefile.in
+index 9da6e28..6a6186c 100644
+--- a/samples/Makefile.in
++++ b/samples/Makefile.in
+@@ -108,7 +108,6 @@ AppendField_SOURCES = AppendField.c
+ AppendField_OBJECTS = AppendField.$(OBJEXT)
+ AppendField_LDADD = $(LDADD)
+ am__DEPENDENCIES_1 = $(top_builddir)/src/libhdfeos.la
+-am__DEPENDENCIES_2 = $(top_builddir)/gctp/src/libGctp.la
+ AppendField_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+ DefineFields_SOURCES = DefineFields.c
+ DefineFields_OBJECTS = DefineFields.$(OBJEXT)
+@@ -481,7 +480,7 @@ sharedstatedir = @sharedstatedir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ LIBHDFEOS2 = $(top_builddir)/src/libhdfeos.la
+-LIBGCTP = $(top_builddir)/gctp/src/libGctp.la
++LIBGCTP =
+ # Boilerplate definitions file
+-- 
+2.10.0
+
diff --git a/gnu/packages/patches/linux-libre-4.1-CVE-2016-5195.patch b/gnu/packages/patches/linux-libre-4.1-CVE-2016-5195.patch
deleted file mode 100644 (file)
index 37a41f6..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-Fix CVE-2016-5195, a.k.a. Dirty COW.
-Backported to linux-libre-4.1.x by Mark H Weaver <mhw@netris.org>.
-
-From 18652320ea99913c95e7130d654be7f1da6b694f Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds@linux-foundation.org>
-Date: Thu, 13 Oct 2016 13:07:36 -0700
-Subject: [PATCH] mm: remove gup_flags FOLL_WRITE games from __get_user_pages()
-
-commit 19be0eaffa3ac7d8eb6784ad9bdbc7d67ed8e619 upstream.
-
-This is an ancient bug that was actually attempted to be fixed once
-(badly) by me eleven years ago in commit 4ceb5db9757a ("Fix
-get_user_pages() race for write access") but that was then undone due to
-problems on s390 by commit f33ea7f404e5 ("fix get_user_pages bug").
-
-In the meantime, the s390 situation has long been fixed, and we can now
-fix it by checking the pte_dirty() bit properly (and do it better).  The
-s390 dirty bit was implemented in abf09bed3cce ("s390/mm: implement
-software dirty bits") which made it into v3.9.  Earlier kernels will
-have to look at the page state itself.
-
-Also, the VM has become more scalable, and what used a purely
-theoretical race back then has become easier to trigger.
-
-To fix it, we introduce a new internal FOLL_COW flag to mark the "yes,
-we already did a COW" rather than play racy games with FOLL_WRITE that
-is very fundamental, and then use the pte dirty flag to validate that
-the FOLL_COW flag is still valid.
-
-Reported-and-tested-by: Phil "not Paul" Oester <kernel@linuxace.com>
-Acked-by: Hugh Dickins <hughd@google.com>
-Reviewed-by: Michal Hocko <mhocko@suse.com>
-Cc: Andy Lutomirski <luto@kernel.org>
-Cc: Kees Cook <keescook@chromium.org>
-Cc: Oleg Nesterov <oleg@redhat.com>
-Cc: Willy Tarreau <w@1wt.eu>
-Cc: Nick Piggin <npiggin@gmail.com>
-Cc: Greg Thelen <gthelen@google.com>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- include/linux/mm.h |  1 +
- mm/gup.c           | 14 ++++++++++++--
- 2 files changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/include/linux/mm.h b/include/linux/mm.h
-index 6b85ec6..7cadf0a 100644
---- a/include/linux/mm.h
-+++ b/include/linux/mm.h
-@@ -2064,6 +2064,7 @@ static inline struct page *follow_page(struct vm_area_struct *vma,
- #define FOLL_NUMA     0x200   /* force NUMA hinting page fault */
- #define FOLL_MIGRATION        0x400   /* wait for page to replace migration entry */
- #define FOLL_TRIED    0x800   /* a retry, previous pass started an IO */
-+#define FOLL_COW      0x4000  /* internal GUP flag */
- typedef int (*pte_fn_t)(pte_t *pte, pgtable_t token, unsigned long addr,
-                       void *data);
-diff --git a/mm/gup.c b/mm/gup.c
-index 6297f6b..e6de9e7 100644
---- a/mm/gup.c
-+++ b/mm/gup.c
-@@ -32,6 +32,16 @@ static struct page *no_page_table(struct vm_area_struct *vma,
-       return NULL;
- }
-+/*
-+ * FOLL_FORCE can write to even unwritable pte's, but only
-+ * after we've gone through a COW cycle and they are dirty.
-+ */
-+static inline bool can_follow_write_pte(pte_t pte, unsigned int flags)
-+{
-+      return pte_write(pte) ||
-+              ((flags & FOLL_FORCE) && (flags & FOLL_COW) && pte_dirty(pte));
-+}
-+
- static struct page *follow_page_pte(struct vm_area_struct *vma,
-               unsigned long address, pmd_t *pmd, unsigned int flags)
- {
-@@ -66,7 +76,7 @@ retry:
-       }
-       if ((flags & FOLL_NUMA) && pte_protnone(pte))
-               goto no_page;
--      if ((flags & FOLL_WRITE) && !pte_write(pte)) {
-+      if ((flags & FOLL_WRITE) && !can_follow_write_pte(pte, flags)) {
-               pte_unmap_unlock(ptep, ptl);
-               return NULL;
-       }
-@@ -315,7 +325,7 @@ static int faultin_page(struct task_struct *tsk, struct vm_area_struct *vma,
-        * reCOWed by userspace write).
-        */
-       if ((ret & VM_FAULT_WRITE) && !(vma->vm_flags & VM_WRITE))
--              *flags &= ~FOLL_WRITE;
-+              *flags |= FOLL_COW;
-       return 0;
- }
--- 
-2.10.1
-
diff --git a/gnu/packages/patches/mupdf-CVE-2016-8674.patch b/gnu/packages/patches/mupdf-CVE-2016-8674.patch
new file mode 100644 (file)
index 0000000..2a35619
--- /dev/null
@@ -0,0 +1,165 @@
+Fix CVE-2016-8674 (use-after-free in pdf_to_num()).
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8674
+https://security-tracker.debian.org/tracker/CVE-2016-8674
+
+Patch adapted from upstream source repository:
+http://git.ghostscript.com/?p=mupdf.git;h=1e03c06456d997435019fb3526fa2d4be7dbc6ec
+
+diff --git a/include/mupdf/pdf/document.h b/include/mupdf/pdf/document.h
+index f8ef0cd..e8345b7 100644
+--- a/include/mupdf/pdf/document.h
++++ b/include/mupdf/pdf/document.h
+@@ -258,6 +258,10 @@ struct pdf_document_s
+       fz_font **type3_fonts;
+
+       pdf_resource_tables *resources;
++
++      int orphans_max;
++      int orphans_count;
++      pdf_obj **orphans;
+ };
+ /*
+diff --git a/include/mupdf/pdf/object.h b/include/mupdf/pdf/object.h
+index 346a2f1..02d4119 100644
+--- a/include/mupdf/pdf/object.h
++++ b/include/mupdf/pdf/object.h
+@@ -109,6 +109,7 @@ pdf_obj *pdf_dict_gets(fz_context *ctx, pdf_obj *dict, const char *key);
+ pdf_obj *pdf_dict_getsa(fz_context *ctx, pdf_obj *dict, const char *key, const char *abbrev);
+ void pdf_dict_put(fz_context *ctx, pdf_obj *dict, pdf_obj *key, pdf_obj *val);
+ void pdf_dict_put_drop(fz_context *ctx, pdf_obj *dict, pdf_obj *key, pdf_obj *val);
++void pdf_dict_get_put_drop(fz_context *ctx, pdf_obj *dict, pdf_obj *key, pdf_obj *val, pdf_obj **old_val);
+ void pdf_dict_puts(fz_context *ctx, pdf_obj *dict, const char *key, pdf_obj *val);
+ void pdf_dict_puts_drop(fz_context *ctx, pdf_obj *dict, const char *key, pdf_obj *val);
+ void pdf_dict_putp(fz_context *ctx, pdf_obj *dict, const char *path, pdf_obj *val);
+diff --git a/source/pdf/pdf-object.c b/source/pdf/pdf-object.c
+index f2e4551..a0d0d8e 100644
+--- a/source/pdf/pdf-object.c
++++ b/source/pdf/pdf-object.c
+@@ -1240,9 +1240,13 @@ pdf_dict_geta(fz_context *ctx, pdf_obj *obj, pdf_obj *key, pdf_obj *abbrev)
+       return pdf_dict_get(ctx, obj, abbrev);
+ }
+-void
+-pdf_dict_put(fz_context *ctx, pdf_obj *obj, pdf_obj *key, pdf_obj *val)
++static void
++pdf_dict_get_put(fz_context *ctx, pdf_obj *obj, pdf_obj *key, pdf_obj *val, pdf_obj **old_val)
+ {
++
++      if (old_val)
++              *old_val = NULL;
++
+       RESOLVE(obj);
+       if (obj >= PDF_OBJ__LIMIT)
+       {
+@@ -1282,7 +1286,10 @@ pdf_dict_put(fz_context *ctx, pdf_obj *obj, pdf_obj *key, pdf_obj *val)
+                       {
+                               pdf_obj *d = DICT(obj)->items[i].v;
+                               DICT(obj)->items[i].v = pdf_keep_obj(ctx, val);
+-                              pdf_drop_obj(ctx, d);
++                              if (old_val)
++                                      *old_val = d;
++                              else
++                                      pdf_drop_obj(ctx, d);
+                       }
+               }
+               else
+@@ -1305,10 +1312,27 @@ pdf_dict_put(fz_context *ctx, pdf_obj *obj, pdf_obj *key, pdf_obj *val)
+ }
+ void
++pdf_dict_put(fz_context *ctx, pdf_obj *obj, pdf_obj *key, pdf_obj *val)
++{
++      pdf_dict_get_put(ctx, obj, key, val, NULL);
++}
++
++void
+ pdf_dict_put_drop(fz_context *ctx, pdf_obj *obj, pdf_obj *key, pdf_obj *val)
+ {
+       fz_try(ctx)
+-              pdf_dict_put(ctx, obj, key, val);
++              pdf_dict_get_put(ctx, obj, key, val, NULL);
++      fz_always(ctx)
++              pdf_drop_obj(ctx, val);
++      fz_catch(ctx)
++              fz_rethrow(ctx);
++}
++
++void
++pdf_dict_get_put_drop(fz_context *ctx, pdf_obj *obj, pdf_obj *key, pdf_obj *val, pdf_obj **old_val)
++{
++      fz_try(ctx)
++              pdf_dict_get_put(ctx, obj, key, val, old_val);
+       fz_always(ctx)
+               pdf_drop_obj(ctx, val);
+       fz_catch(ctx)
+diff --git a/source/pdf/pdf-repair.c b/source/pdf/pdf-repair.c
+index fdd4648..212c8b7 100644
+--- a/source/pdf/pdf-repair.c
++++ b/source/pdf/pdf-repair.c
+@@ -259,6 +259,27 @@ pdf_repair_obj_stm(fz_context *ctx, pdf_document *doc, int num, int gen)
+       }
+ }
++static void
++orphan_object(fz_context *ctx, pdf_document *doc, pdf_obj *obj)
++{
++      if (doc->orphans_count == doc->orphans_max)
++      {
++              int new_max = (doc->orphans_max ? doc->orphans_max*2 : 32);
++
++              fz_try(ctx)
++              {
++                      doc->orphans = fz_resize_array(ctx, doc->orphans, new_max, sizeof(*doc->orphans));
++                      doc->orphans_max = new_max;
++              }
++              fz_catch(ctx)
++              {
++                      pdf_drop_obj(ctx, obj);
++                      fz_rethrow(ctx);
++              }
++      }
++      doc->orphans[doc->orphans_count++] = obj;
++}
++
+ void
+ pdf_repair_xref(fz_context *ctx, pdf_document *doc)
+ {
+@@ -520,12 +541,13 @@ pdf_repair_xref(fz_context *ctx, pdf_document *doc)
+                       /* correct stream length for unencrypted documents */
+                       if (!encrypt && list[i].stm_len >= 0)
+                       {
++                              pdf_obj *old_obj = NULL;
+                               dict = pdf_load_object(ctx, doc, list[i].num, list[i].gen);
+                               length = pdf_new_int(ctx, doc, list[i].stm_len);
+-                              pdf_dict_put(ctx, dict, PDF_NAME_Length, length);
+-                              pdf_drop_obj(ctx, length);
+-
++                              pdf_dict_get_put_drop(ctx, dict, PDF_NAME_Length, length, &old_obj);
++                              if (old_obj)
++                                      orphan_object(ctx, doc, old_obj);
+                               pdf_drop_obj(ctx, dict);
+                       }
+               }
+diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c
+index 3de1cd2..6682741 100644
+--- a/source/pdf/pdf-xref.c
++++ b/source/pdf/pdf-xref.c
+@@ -1626,6 +1626,12 @@ pdf_close_document(fz_context *ctx, pdf_document *doc)
+       pdf_drop_resource_tables(ctx, doc);
++      for (i = 0; i < doc->orphans_count; i++)
++      {
++              pdf_drop_obj(ctx, doc->orphans[i]);
++      }
++      fz_free(ctx, doc->orphans);
++
+       fz_free(ctx, doc);
+ }
+
+-- 
+2.10.1
+
diff --git a/gnu/packages/patches/musl-CVE-2016-8859.patch b/gnu/packages/patches/musl-CVE-2016-8859.patch
new file mode 100644 (file)
index 0000000..7bb5b89
--- /dev/null
@@ -0,0 +1,81 @@
+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/notmuch-emacs-25-compatibility-fix.patch b/gnu/packages/patches/notmuch-emacs-25-compatibility-fix.patch
deleted file mode 100644 (file)
index 9ddfd4f..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-This fixes a test failure with emacs-25. Picked from
-https://git.notmuchmail.org/git?p=notmuch;a=commit;h=f575a346df09c82691bb9e7c462836d982fe31f7
-
-From f575a346df09c82691bb9e7c462836d982fe31f7 Mon Sep 17 00:00:00 2001
-From: David Bremner <david@tethera.net>
-Date: Sun, 9 Oct 2016 19:30:44 -0300
-Subject: [PATCH] emacs/show: force notmuch-show-buttonise-links to act on
- lines
-
-This seems to fix a problem with emacs 25 creating partial buttons by
-calling n-s-b-l with a region that does not include the whole button.
-I'm not 100% sure it's legit to act outside the region passed by
-jit-lock, but goto-address-fontify-region (where I borrowed the code
-from) already does this, so this patch to not make things worse.
----
- emacs/notmuch-show.el | 12 +++++++-----
- 1 file changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
-index 641398d..e7d16f8 100644
---- a/emacs/notmuch-show.el
-+++ b/emacs/notmuch-show.el
-@@ -1174,13 +1174,15 @@ This also turns id:\"<message id>\"-parts and mid: links into
- buttons for a corresponding notmuch search."
-   (goto-address-fontify-region start end)
-   (save-excursion
--    (let (links)
--      (goto-char start)
--      (while (re-search-forward notmuch-id-regexp end t)
-+    (let (links
-+        (beg-line (progn (goto-char start) (line-beginning-position)))
-+        (end-line (progn (goto-char end) (line-end-position))))
-+      (goto-char beg-line)
-+      (while (re-search-forward notmuch-id-regexp end-line t)
-       (push (list (match-beginning 0) (match-end 0)
-                   (match-string-no-properties 0)) links))
--      (goto-char start)
--      (while (re-search-forward notmuch-mid-regexp end t)
-+      (goto-char beg-line)
-+      (while (re-search-forward notmuch-mid-regexp end-line t)
-       (let* ((mid-cid (match-string-no-properties 1))
-              (mid (save-match-data
-                     (string-match "^[^/]*" mid-cid)
--- 
-2.10.1
-
index 8bfe2c1..af153a0 100644 (file)
@@ -489,7 +489,8 @@ extracting content or merging files.")
           "1k64pdapyj8a336jw3j61fhn0rp4q6az7d0dqp9r5n3d9rgwa5c0"))
         (patches (search-patches "mupdf-build-with-openjpeg-2.1.patch"
                                  "mupdf-CVE-2016-6265.patch"
-                                 "mupdf-CVE-2016-6525.patch"))
+                                 "mupdf-CVE-2016-6525.patch"
+                                 "mupdf-CVE-2016-8674.patch"))
         (modules '((guix build utils)))
         (snippet
             ;; Delete all the bundled libraries except for mujs, which is
index 5704294..a55f78e 100644 (file)
 
 (define-module (gnu packages psyc)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pcre)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages tls)
   #:use-module (gnu packages web))
 
 (define-public perl-net-psyc
@@ -143,3 +152,76 @@ core aspects of PSYC, useful for all kinds of clients and servers
 including psyced.")
     (synopsis "PSYC library in C")
     (license license:agpl3+)))
+
+;; This commit removes the historic bundled pcre, not released as a tarball so far.
+(define-public psyclpc
+  (let* ((commit "8bd51f2a4847860ba8b82dc79348ab37d516011e")
+         (revision "1"))
+  (package
+    (name "psyclpc")
+    (version (string-append "20160821-" revision "." (string-take commit 7)))
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "git://git.psyced.org/git/psyclpc")
+                    (commit commit)))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "10w4kx9ygcv1lcmd7j4knvjiy8dac1y3hjfv3lhp67jpv6w3iagz"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; There are no tests/checks.
+       #:configure-flags
+       ;; If you have questions about this part, look at
+       ;; "src/settings/psyced" and the ebuild.
+       (list
+        "--enable-use-tls=yes"
+        "--enable-use-mccp" ; Mud Client Compression Protocol, leave this enabled.
+        (string-append "--prefix="
+                       (assoc-ref %outputs "out"))
+        ;; src/Makefile: Set MUD_LIB to the directory which contains
+        ;; the mud data. defaults to MUD_LIB = @libdir@
+        (string-append "--libdir="
+                       (assoc-ref %outputs "out")
+                       "/opt/psyced/world")
+        (string-append "--bindir="
+                       (assoc-ref %outputs "out")
+                       "/opt/psyced/bin")
+        ;; src/Makefile: Set ERQ_DIR to directory which contains the
+        ;; stuff which ERQ can execute (hopefully) savely.  Was formerly
+        ;; defined in config.h. defaults to ERQ_DIR= @libexecdir@
+        (string-append "--libexecdir="
+                       (assoc-ref %outputs "out")
+                       "/opt/psyced/run"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'chdir-to-src
+           ;; We need to pass this as env variables
+           ;; and manually change the directory.
+           (lambda _
+             (chdir "src")
+             (setenv "CONFIG_SHELL" (which "sh"))
+             (setenv "SHELL" (which "sh"))
+             #t)))
+       #:make-flags (list "install-all")))
+    (inputs
+     `(("zlib" ,zlib)
+       ("openssl" ,openssl)
+       ("pcre" ,pcre)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("bison" ,bison)
+       ("gnu-gettext" ,gnu-gettext)
+       ("help2man" ,help2man)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (home-page "http://lpc.psyc.eu/")
+    (synopsis "psycLPC is a multi-user network server programming language")
+    (description
+     "LPC is a bytecode language, invented to specifically implement
+multi user virtual environments on the internet.  This technology is used for
+MUDs and also the psyced implementation of the Protocol for SYnchronous
+Conferencing (PSYC).  psycLPC is a fork of LDMud with some new features and
+many bug fixes.")
+    (license license:gpl2))))
index 929ea20..ba1e0c4 100644 (file)
@@ -2298,13 +2298,13 @@ files.")
 (define-public python-certifi
   (package
     (name "python-certifi")
-    (version "2015.11.20.1")
+    (version "2016.8.31")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "certifi" version))
               (sha256
                (base32
-                "05lgwf9rz1kn465azy2bpb3zmpnsn9gkypbhnjlclchv98ssgc1h"))))
+                "06c9dcyv8ss050gkv5xjivbxhm6qm0s9vzy4r33wqabgv118lw7p"))))
     (build-system python-build-system)
     (inputs
      `(("python-setuptools" ,python-setuptools)))
similarity index 94%
rename from gnu/packages/yubico.scm
rename to gnu/packages/security-token.scm
index 469d93d..36ccaa5 100644 (file)
@@ -17,9 +17,9 @@
 ;;; 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 (gnu packages yubico)
+(define-module (gnu packages security-token)
   #:use-module (gnu packages)
-  #:use-module (guix licenses)
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
@@ -45,7 +45,7 @@
      "This package contains a C library and command-line tools that make up
 the low-level development kit for the Yubico YubiKey authentication device.")
     (home-page "https://developers.yubico.com/yubico-c/")
-    (license bsd-2)))
+    (license license:bsd-2)))
 
 (define-public ykclient
   (package
@@ -74,4 +74,4 @@ the low-level development kit for the Yubico YubiKey authentication device.")
 one-time-password (OTP) YubiKey against Yubico’s servers.  See the Yubico
 website for more information about Yubico and the YubiKey.")
     (home-page "https://developers.yubico.com/yubico-c-client/")
-    (license bsd-2)))
+    (license license:bsd-2)))
index af5aae1..5fdeeb7 100644 (file)
@@ -5,6 +5,7 @@
 ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -506,3 +507,28 @@ manipulating key files.")
 authentication with SSH's so-called @dfn{interactive keyboard password
 authentication}.")
     (license license:gpl2+)))
+
+(define-public autossh
+  (package
+    (name "autossh")
+    (version "1.4e")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://www.harding.motd.ca/autossh/autossh-"
+             version ".tgz"))
+       (sha256
+        (base32 "0mlicw28vq2jxa0jf0dys5ja75v0fxpjavlq9dpif6bnknji13ly"))))
+    (build-system gnu-build-system)
+    (arguments `(#:tests? #f)) ; There is no "make check" or anything similar
+    (inputs `(("openssh" ,openssh)))
+    (synopsis "Automatically restart SSH sessions and tunnels")
+    (description "autossh is a program to start a copy of @command{ssh} and
+monitor it, restarting it as necessary should it die or stop passing traffic.")
+    (home-page "http://www.harding.motd.ca/autossh/")
+    (license
+     ;; Why point to a source file?  Well, all the individual files have a
+     ;; copy of this license in their headers, but there's no separate file
+     ;; with that information.
+     (license:non-copyleft "file://autossh.c"))))
index 0748b5d..ee6e693 100644 (file)
@@ -200,13 +200,13 @@ available, greatly increasing its breadth and scope.")
 (define-public r-colorspace
   (package
     (name "r-colorspace")
-    (version "1.2-6")
+    (version "1.2-7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "colorspace" version))
        (sha256
-        (base32 "0y8n4ljwhbdvkysdwgqzcnpv107pb3px1jip3k6svv86p72nacds"))))
+        (base32 "0flw97iwwpkxy6si9cn982jhl61wb1rxi3r0nz2xxf0c3fzw18d5"))))
     (build-system r-build-system)
     (home-page "http://cran.r-project.org/web/packages/colorspace")
     (synopsis "Color space manipulation")
@@ -410,14 +410,14 @@ and Francois (2011, JSS), and the book by Eddelbuettel (2013, Springer); see
 (define-public r-matrix
   (package
     (name "r-matrix")
-    (version "1.2-7")
+    (version "1.2-7.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Matrix" version))
        (sha256
         (base32
-         "18x3mdq5cdhbk1lw5cj7vbr41lk8w9p4i5kzh8wslgq6p3d9ac3c"))))
+         "09rd51na9spz0lm1lylkfhw43w7c922b83m4jsggmpg3pbd6dssa"))))
     (properties `((upstream-name . "Matrix")))
     (build-system r-build-system)
     (propagated-inputs
@@ -558,14 +558,14 @@ solution for sending email, including attachments, from within R.")
 (define-public r-stringi
   (package
     (name "r-stringi")
-    (version "1.1.1")
+    (version "1.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "stringi" version))
        (sha256
         (base32
-         "0rg14hga1g2havd3imhk04iyh1dnisnmxf7yhiiwhs7y72hphc94"))))
+         "13i1p6j8mx31hsw2s4c2phm2llrrdakzixkm6i0axsxprri722z5"))))
     (build-system r-build-system)
     (inputs `(("icu4c" ,icu4c)))
     (native-inputs `(("pkg-config" ,pkg-config)))
@@ -608,13 +608,13 @@ the input of another.")
 (define-public r-reshape2
   (package
     (name "r-reshape2")
-    (version "1.4.1")
+    (version "1.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "reshape2" version))
        (sha256
-        (base32 "0hl082dyk3pk07nqprpn5dvnrkqhnf6zjnjig1ijddxhlmsrzm7v"))))
+        (base32 "0swvjmc9f8cvkrsz463cp6snd8bncbv6q8yrfrb4rgkr0dhq6dvd"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-plyr" ,r-plyr)
@@ -811,13 +811,13 @@ for template use among CRAN packages.")
 (define-public r-evaluate
   (package
     (name "r-evaluate")
-    (version "0.9")
+    (version "0.10")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "evaluate" version))
               (sha256
                (base32
-                "1bn6bympg9prr8d16g1g530bddii8i04hf4i2bkw0yf4dsfqq4g8"))))
+                "0mwna7rjyrmc76651a1fm7c76ippdsc2wsp3sj3iwb1c73mvlqv1"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-stringr" ,r-stringr)))
@@ -1131,13 +1131,13 @@ flexible and easy to set up.")
 (define-public r-r6
   (package
     (name "r-r6")
-    (version "2.1.3")
+    (version "2.2.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "R6" version))
               (sha256
                (base32
-                "19qrkgxvssyi51fm80h93sabzz0n2vgqgv1w8xjqbsap0nx379vy"))))
+                "1ir51pb0y6yj05qaxsflk4a6hv8n73cwlb0qajcskbrz632dsyvx"))))
     (build-system r-build-system)
     (home-page "https://github.com/wch/R6/")
     (synopsis "Classes with reference semantics in R")
@@ -1209,14 +1209,14 @@ database.")
 (define-public r-acepack
   (package
     (name "r-acepack")
-    (version "1.3-3.3")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "acepack" version))
        (sha256
         (base32
-         "13ry3vyys12iplb14jfhmkrl9g5fxg3iijiggq4s4zb5m5436b1y"))))
+         "0brivhr0imf2qq1flc9qxibybg1zi5m8pxz8cjn5a8gb42bcv96n"))))
     (build-system r-build-system)
     (inputs
      `(("gfortran" ,gfortran)))
@@ -1230,14 +1230,14 @@ transformations.")
 (define-public r-cluster
   (package
     (name "r-cluster")
-    (version "2.0.4")
+    (version "2.0.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "cluster" version))
        (sha256
         (base32
-         "1r669aaaia05i8sv8hxiig1ddah7hm8qw869wgig5i0zzk22bnfl"))))
+         "1bkvqmv8h2c423q9ag2afb6s9j2vcdlxsf559zzbimraphrr2c2b"))))
     (build-system r-build-system)
     (inputs
      `(("gfortran" ,gfortran)))
@@ -1252,14 +1252,14 @@ Groups in Data\".")
 (define-public r-foreign
   (package
     (name "r-foreign")
-    (version "0.8-66")
+    (version "0.8-67")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "foreign" version))
        (sha256
         (base32
-         "19278jm85728zb20800w6hq9q8jy8ywdn81mgmlnxkmrr9giwh6p"))))
+         "1mcrm2pydimbyjhkrw5h380bifj1jhwzifph1xgh90asf3lvd1xd"))))
     (build-system r-build-system)
     (home-page "http://cran.r-project.org/web/packages/foreign")
     (synopsis "Read data stored by other statistics software in R")
@@ -1615,14 +1615,14 @@ limited to R.")
 (define-public r-backports
   (package
     (name "r-backports")
-    (version "1.0.3")
+    (version "1.0.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "backports" version))
        (sha256
         (base32
-         "0s04mbb7imqc00jl37i081y4yf7qdimk687dyrkvb20nixvjvjyh"))))
+         "0fssh5rnnvpp8wm0ml9gk765idwrgj07xyxpkhpidl9zwydxzif2"))))
     (build-system r-build-system)
     (home-page "http://cran.r-project.org/web/packages/backports")
     (synopsis "Reimplementations of functions introduced since R 3.0.0")
@@ -2051,13 +2051,13 @@ well as additional utilities such as panel and axis annotation functions.")
 (define-public r-rcpparmadillo
   (package
     (name "r-rcpparmadillo")
-    (version "0.7.400.2.0")
+    (version "0.7.500.0.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "RcppArmadillo" version))
               (sha256
                (base32
-                "0g2658iy43higy1cay00ljibgnwh0zv5gcwvbhckjs48y8z1a2pb"))
+                "06qb6877c5qd8lvnc4b27z8fwb5r5pyylkj0g6kj1rn868zkh5ps"))
               (modules '((guix build utils)))
               ;; Remove bundled armadillo sources
               (snippet
@@ -2135,14 +2135,14 @@ encoder/decoder, round-off-error-free sum and cumsum, etc.")
 (define-public r-rmarkdown
   (package
     (name "r-rmarkdown")
-    (version "1.0")
+    (version "1.1")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "rmarkdown" version))
         (sha256
           (base32
-            "0c7gs9c8xdjfxviw0syh13pf3vys2b2ssixmnyqbji64xdscn7pz"))))
+            "1czvkaz1ji3jyj6qrvbswisqs9d05ljqc4vjkfdrf6hygix7azd0"))))
     (properties `((upstream-name . "rmarkdown")))
     (build-system r-build-system)
     (arguments
@@ -2161,6 +2161,8 @@ encoder/decoder, round-off-error-free sum and cumsum, etc.")
              #t)))))
     (propagated-inputs
      `(("r-catools" ,r-catools)
+       ("r-evaluate" ,r-evaluate)
+       ("r-tibble" ,r-tibble)
        ("r-htmltools" ,r-htmltools)
        ("r-jsonlite" ,r-jsonlite)
        ("r-base64enc" ,r-base64enc)
@@ -2413,13 +2415,13 @@ multiple breakpoints are allowed.")
 (define-public r-snow
   (package
     (name "r-snow")
-    (version "0.4-1")
+    (version "0.4-2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "snow" version))
               (sha256
                (base32
-                "19r2yq8aqw99vwyx81p6ay4afsfqffal1wzvizk3dj882s2n4j8w"))))
+                "1mxbrkpnmq32x4wd0194d541661yvfrrjlr3lsf7qq53ms3h21zf"))))
     (build-system r-build-system)
     (home-page "http://cran.r-project.org/web/packages/snow")
     (synopsis "Support for simple parallel computing in R")
@@ -2477,14 +2479,14 @@ data.")
 (define-public r-codetools
   (package
     (name "r-codetools")
-    (version "0.2-14")
+    (version "0.2-15")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "codetools" version))
        (sha256
         (base32
-         "0y9r4m2b8xgavr89sc179knzwpz54xljbc1dinpq2q07i4xn0397"))))
+         "0h7sjmvvsi35041jp47cxhsqzgf1y8jrw6fxii7n26i8g7nrh1sf"))))
     (build-system r-build-system)
     (home-page "http://cran.r-project.org/web/packages/codetools")
     (synopsis "Code analysis tools for R")
@@ -2621,14 +2623,14 @@ flexible than the orphaned \"base64\" package.")
 (define-public r-irlba
   (package
     (name "r-irlba")
-    (version "2.1.1")
+    (version "2.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "irlba" version))
        (sha256
         (base32
-         "0yb8b8g6f3cb0f56r702fn2px8nf5rx8cyy2scq36xai9w7f25jj"))))
+         "1qbcn0ix85pmk296jhpi419kvh06vxm5cq24yk013ps3g7fyi0si"))))
     (build-system r-build-system)
     (home-page "http://cran.r-project.org/web/packages/irlba")
     (synopsis "Methods for eigendecomposition of large matrices")
@@ -2897,13 +2899,13 @@ maintenance for package developers.")
 (define-public r-r-utils
   (package
     (name "r-r-utils")
-    (version "2.3.0")
+    (version "2.4.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "R.utils" version))
               (sha256
                (base32
-                "0f4z7ka1wb7bgxc5wyqihqxsnqwgyyzbglwvfwmx0gn8i0wzi647"))))
+                "0cn0wlmgwclmqak05825wrk9q894xa4qjqa7rn0i9p4ss7k6vifj"))))
     (properties `((upstream-name . "R.utils")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2995,13 +2997,13 @@ t-probabilities, quantiles, random deviates and densities.")
 (define-public r-matrixstats
   (package
     (name "r-matrixstats")
-    (version "0.50.2")
+    (version "0.51.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "matrixStats" version))
               (sha256
                (base32
-                "0zj27xxx9cyrq16rn4g3l0krqg68p8f2qp18w1w4i767j87amlbj"))))
+                "0bsalx605kgb9nl7mfnq1qinkyd9s97p8plymsyfja1gmcnjrcpj"))))
     (properties `((upstream-name . "matrixStats")))
     (build-system r-build-system)
     (native-inputs
@@ -3280,6 +3282,30 @@ conversion of R objects to LaTeX code, and recoding variables.")
 framework, with additional code inspection and report generation tools.")
     (license license:gpl2+)))
 
+(define-public r-kernsmooth
+  (package
+    (name "r-kernsmooth")
+    (version "2.23-15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "KernSmooth" version))
+       (sha256
+        (base32
+         "1xhha8kw10jv8pv8b61hb5in9qiw3r2a9kdji3qlm991s4zd4wlb"))))
+    (properties `((upstream-name . "KernSmooth")))
+    (build-system r-build-system)
+    (inputs
+     `(("gfortran" ,gfortran)))
+    (home-page "http://cran.r-project.org/web/packages/KernSmooth")
+    (synopsis "Functions for kernel smoothing")
+    (description
+     "This package provides functions for kernel smoothing (and density
+estimation) corresponding to the book: Wand, M.P.  and Jones, M.C. (1995)
+\"Kernel Smoothing\".")
+    ;; Unlimited use and distribution
+    (license (license:non-copyleft "file://LICENSE.note"))))
+
 (define-public r-zoo
   (package
     (name "r-zoo")
index cdc9193..1b1c16a 100644 (file)
@@ -250,6 +250,37 @@ H.264 (MPEG-4 AVC) video streams.")
                     "file://extras/cl.h"
                     "See extras/cl.h in the distribution.")))))
 
+(define-public x265
+  (package
+    (name "x265")
+    (version "2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://download.videolan.org/videolan/x265/"
+                            "x265_" version ".tar.gz"))
+        (sha256
+         (base32
+          "0hx6sr9l7586gs4qds2sj0i1m5brxkaqq3cwmibhfb559fpvkz48"))
+        (modules '((guix build utils)))
+        (snippet
+         '(delete-file-recursively "source/compat/getopt"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f ; tests are skipped if cpu-optimized code isn't built
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'prepare-build
+           (lambda _
+             (delete-file-recursively "build")
+             (chdir "source")
+             #t)))))
+    (home-page "http://x265.org/")
+    (synopsis "Library for encoding h.265/HEVC video streams")
+    (description "x265 is a H.265 / HEVC video encoder application library,
+designed to encode video or images into an H.265 / HEVC encoded bitstream.")
+    (license license:gpl2+)))
+
 (define-public libass
   (package
     (name "libass")
@@ -435,6 +466,7 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
        ("soxr" ,soxr)
        ("speex" ,speex)
        ("twolame" ,twolame)
+       ("x265" ,x265)
        ("xvid" ,xvid)
        ("zlib" ,zlib)))
     (native-inputs
@@ -518,6 +550,7 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
          "--enable-libvpx"
          "--enable-libxvid"
          "--enable-libx264"
+         "--enable-libx265"
          "--enable-openal"
          "--enable-opengl"
          "--enable-x11grab"
@@ -647,6 +680,7 @@ audio/video codec library.")
        ("sdl" ,sdl)
        ("sdl-image" ,sdl-image)
        ("speex" ,speex)
+       ("x265" ,x265)
        ("xcb-util-keysyms" ,xcb-util-keysyms)))
     (arguments
      `(#:configure-flags
index 60f1f73..ddf2ebf 100644 (file)
@@ -3205,13 +3205,13 @@ particularly easy to create complete web applications using httpuv alone.")
 (define-public r-jsonlite
   (package
     (name "r-jsonlite")
-    (version "1.0")
+    (version "1.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "jsonlite" version))
               (sha256
                (base32
-                "0bcnzzycvwwkm0lv0ka9xf55z5c1795b7c2vhmf53z73cxixsmnp"))))
+                "0mrfzh0mxxrhqdmxai434wvyd7skkw28vxr7pyls19yrg941g6r3"))))
     (build-system r-build-system)
     (home-page "http://arxiv.org/abs/1403.2805")
     (synopsis "Robust, high performance JSON parser and generator for R")
@@ -3311,13 +3311,13 @@ applications.")
 (define-public r-curl
   (package
     (name "r-curl")
-    (version "1.2")
+    (version "2.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "curl" version))
               (sha256
                (base32
-                "04fwasg400v8dvkcn1fcha1jzdz8lbyxi0679q7flsyrp57b3jrf"))))
+                "0hyvyjzf5ja7kfhzmlfgp86hg1lxrriiwbnr6pxabwwslswj3cmj"))))
     (build-system r-build-system)
     (arguments
      `(#:phases
index 0a2a09b..59e1e54 100644 (file)
@@ -2,6 +2,7 @@
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
 ;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
+;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,6 +30,8 @@
   #:use-module (ice-9 match)
   #:export (nginx-configuration
             nginx-configuration?
+            nginx-vhost-configuration
+            nginx-vhost-configuration?
             nginx-service
             nginx-service-type))
 
 ;;;
 ;;; Code:
 
+(define-record-type* <nginx-vhost-configuration>
+  nginx-vhost-configuration make-nginx-vhost-configuration
+  nginx-vhost-configuration?
+  (http-port           nginx-vhost-configuration-http-port
+                       (default 80))
+  (https-port          nginx-vhost-configuration-https-port
+                       (default 443))
+  (server-name         nginx-vhost-configuration-server-name
+                       (default (list 'default)))
+  (root                nginx-vhost-configuration-root
+                       (default "/srv/http"))
+  (index               nginx-vhost-configuration-index
+                       (default (list "index.html")))
+  (ssl-certificate     nginx-vhost-configuration-ssl-certificate
+                       (default "/etc/nginx/cert.pem"))
+  (ssl-certificate-key nginx-vhost-configuration-ssl-certificate-key
+                       (default "/etc/nginx/key.pem"))
+  (server-tokens?      nginx-vhost-configuration-server-tokens?
+                       (default #f)))
+
 (define-record-type* <nginx-configuration>
   nginx-configuration make-nginx-configuration
   nginx-configuration?
   (run-directory nginx-configuration-run-directory) ;string
   (file          nginx-configuration-file))         ;string | file-like
 
-(define (default-nginx-config log-directory run-directory)
+(define (config-domain-strings names)
+ "Return a string denoting the nginx config representation of NAMES, a list
+of domain names."
+ (string-concatenate
+  (map (match-lambda
+        ('default "_")
+        ((? string? str) str))
+       names)))
+
+(define (config-index-strings names)
+ "Return a string denoting the nginx config representation of NAMES, a list
+of index files."
+ (string-concatenate
+  (map (match-lambda
+        ((? string? str) str))
+       names)))
+
+(define (default-nginx-vhost-config vhost)
+  (string-append
+   "    server {\n"
+   (if (nginx-vhost-configuration-http-port vhost)
+       (string-append "      listen "
+                      (number->string (nginx-vhost-configuration-http-port vhost))
+                      ";\n")
+       "")
+   (if (nginx-vhost-configuration-https-port vhost)
+       (string-append "      listen "
+                      (number->string (nginx-vhost-configuration-https-port vhost))
+                      " ssl;\n")
+       "")
+   "      server_name " (config-domain-strings
+                         (nginx-vhost-configuration-server-name vhost))
+                        ";\n"
+   (if (nginx-vhost-configuration-ssl-certificate vhost)
+       (string-append "      ssl_certificate "
+                      (nginx-vhost-configuration-ssl-certificate vhost) ";\n")
+       "")
+   (if (nginx-vhost-configuration-ssl-certificate-key vhost)
+       (string-append "      ssl_certificate_key "
+                      (nginx-vhost-configuration-ssl-certificate-key vhost) ";\n")
+       "")
+   "      root " (nginx-vhost-configuration-root vhost) ";\n"
+   "      index " (config-index-strings (nginx-vhost-configuration-index vhost)) ";\n"
+   "      server_tokens " (if (nginx-vhost-configuration-server-tokens? vhost)
+                              "on" "off") ";\n"
+   "    }\n"))
+
+(define (default-nginx-config log-directory run-directory vhost-list)
   (plain-file "nginx.conf"
               (string-append
                "user nginx nginx;\n"
                "pid " run-directory "/pid;\n"
                "error_log " log-directory "/error.log info;\n"
                "http {\n"
+               "    client_body_temp_path " run-directory "/client_body_temp;\n"
+               "    proxy_temp_path " run-directory "/proxy_temp;\n"
+               "    fastcgi_temp_path " run-directory "/fastcgi_temp;\n"
+               "    uwsgi_temp_path " run-directory "/uwsgi_temp;\n"
+               "    scgi_temp_path " run-directory "/scgi_temp;\n"
                "    access_log " log-directory "/access.log;\n"
-               "    root /var/www;\n"
-               "    server {}\n"
+               (let ((http (map default-nginx-vhost-config vhost-list)))
+                 (do ((http http (cdr http))
+                      (block "" (string-append (car http) "\n" block )))
+                     ((null? http) block)))
                "}\n"
                "events {}\n")))
 
          (mkdir-p #$log-directory)
          (format #t "creating nginx run directory '~a'~%" #$run-directory)
          (mkdir-p #$run-directory)
+         (format #t "creating nginx temp directories '~a/{client_body,proxy,fastcgi,uwsgi,scgi}_temp'~%" #$run-directory)
+         (mkdir-p (string-append #$run-directory "/client_body_temp"))
+         (mkdir-p (string-append #$run-directory "/proxy_temp"))
+         (mkdir-p (string-append #$run-directory "/fastcgi_temp"))
+         (mkdir-p (string-append #$run-directory "/uwsgi_temp"))
+         (mkdir-p (string-append #$run-directory "/scgi_temp"))
          ;; Check configuration file syntax.
          (system* (string-append #$nginx "/sbin/nginx")
                   "-c" #$config-file "-t")))))
 (define* (nginx-service #:key (nginx nginx)
                         (log-directory "/var/log/nginx")
                         (run-directory "/var/run/nginx")
+                        (vhost-list (list (nginx-vhost-configuration)))
                         (config-file
-                         (default-nginx-config log-directory run-directory)))
+                         (default-nginx-config log-directory run-directory vhost-list)))
   "Return a service that runs NGINX, the nginx web server.
 
 The nginx daemon loads its runtime configuration from CONFIG-FILE, stores log
index ead48f0..249b415 100644 (file)
@@ -27,9 +27,8 @@
   #:use-module (gnu artwork)
   #:use-module (gnu system file-systems)
   #:autoload   (gnu packages grub) (grub)
-  #:autoload   (gnu packages inkscape) (inkscape)
-  #:autoload   (gnu packages imagemagick) (imagemagick)
   #:autoload   (gnu packages compression) (gzip)
+  #:autoload   (gnu packages gtk) (guile-cairo guile-rsvg)
   #:use-module (ice-9 match)
   #:use-module (ice-9 regex)
   #:use-module (srfi srfi-1)
@@ -132,25 +131,23 @@ object denoting a file name."
 ;;; Background image & themes.
 ;;;
 
-(define (svg->png svg)
-  "Build a PNG from SVG."
-  ;; Don't use #:local-build? so that it's substitutable.
+(define* (svg->png svg #:key width height)
+  "Build a PNG of HEIGHT x WIDTH from SVG."
   (gexp->derivation "grub-image.png"
-                    #~(zero?
-                       (system* (string-append #$inkscape "/bin/inkscape")
-                                "--without-gui"
-                                (string-append "--export-png=" #$output)
-                                #$svg))))
-
-(define (resize-image image width height)
-  "Resize IMAGE to WIDTHxHEIGHT."
-  ;; Don't use #:local-build? so that it's substitutable.
-  (let ((size (string-append (number->string width)
-                             "x" (number->string height))))
-    (gexp->derivation "grub-image.resized.png"
-                      #~(zero?
-                         (system* (string-append #$imagemagick "/bin/convert")
-                                  "-resize" #$size #$image #$output)))))
+                    (with-imported-modules '((gnu build svg))
+                      #~(begin
+                          ;; We need these two libraries.
+                          (add-to-load-path (string-append #$guile-rsvg
+                                                           "/share/guile/site/"
+                                                           (effective-version)))
+                          (add-to-load-path (string-append #$guile-cairo
+                                                           "/share/guile/site/"
+                                                           (effective-version)))
+
+                          (use-modules (gnu build svg))
+                          (svg->png #$svg #$output
+                                    #:width #$width
+                                    #:height #$height)))))
 
 (define* (grub-background-image config #:key (width 1024) (height 768))
   "Return the GRUB background image defined in CONFIG with a ratio of
@@ -160,8 +157,8 @@ WIDTH/HEIGHT, or #f if none was found."
                         (= (grub-image-aspect-ratio image) ratio))
                       (grub-theme-images (grub-configuration-theme config)))))
     (if image
-        (mlet %store-monad ((png (svg->png (grub-image-file image))))
-          (resize-image png width height))
+        (svg->png (grub-image-file image)
+                  #:width width #:height height)
         (with-monad %store-monad
           (return #f)))))
 
index f936941..e839af5 100644 (file)
@@ -111,11 +111,11 @@ package definition."
 (define %cran-url "http://cran.r-project.org/web/packages/")
 (define %bioconductor-url "http://bioconductor.org/packages/")
 
-;; The latest Bioconductor release is 3.3.  Bioconductor packages should be
+;; The latest Bioconductor release is 3.4.  Bioconductor packages should be
 ;; updated together.
 (define %bioconductor-svn-url
   (string-append "https://readonly:readonly@"
-                 "hedgehog.fhcrc.org/bioconductor/branches/RELEASE_3_3/"
+                 "hedgehog.fhcrc.org/bioconductor/branches/RELEASE_3_4/"
                  "madman/Rpacks/"))
 
 
index b87aee0..70ed0a7 100644 (file)
@@ -3,6 +3,8 @@
 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2013, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014, 2016 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
+;;; Copyright © 2016 Benz Schenk <benz.schenk@uzh.ch>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -667,24 +669,30 @@ processed, #f otherwise."
                      ((head tail ...) head))))
     (match (assoc-ref opts 'query)
       (('list-generations pattern)
-       (define (list-generation number)
+       (define (list-generation display-function number)
          (unless (zero? number)
            (display-generation profile number)
-           (display-profile-content profile number)
+           (display-function profile number)
            (newline)))
-
+       (define (diff-profiles profile numbers)
+         (unless (null-list? (cdr numbers))
+           (display-profile-content-diff profile (car numbers) (cadr numbers))
+           (diff-profiles profile (cdr numbers))))
        (cond ((not (file-exists? profile))      ; XXX: race condition
               (raise (condition (&profile-not-found-error
                                  (profile profile)))))
              ((string-null? pattern)
-              (for-each list-generation (profile-generations profile)))
+              (list-generation display-profile-content
+                               (car (profile-generations profile)))
+              (diff-profiles profile (profile-generations profile)))
              ((matching-generations pattern profile)
               =>
               (lambda (numbers)
                 (if (null-list? numbers)
                     (exit 1)
                     (leave-on-EPIPE
-                     (for-each list-generation numbers)))))
+                     (list-generation display-profile-content (car numbers))
+                     (diff-profiles profile numbers)))))
              (else
               (leave (_ "invalid syntax: ~a~%")
                      pattern)))
index eb85df3..9af8648 100644 (file)
@@ -7,6 +7,8 @@
 ;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
 ;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
+;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
+;;; Copyright © 2016 Benz Schenk <benz.schenk@uzh.ch>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -87,6 +89,7 @@
             matching-generations
             display-generation
             display-profile-content
+            display-profile-content-diff
             roll-back*
             switch-to-generation*
             delete-generation*
@@ -1070,6 +1073,31 @@ DURATION-RELATION with the current time."
           (format #t (_ "~a\t(current)~%") header)
           (format #t "~a~%" header)))))
 
+(define (display-profile-content-diff profile gen1 gen2)
+  "Display the changed packages in PROFILE GEN2 compared to generation GEN2."
+
+  (define (equal-entry? first second)
+    (string= (manifest-entry-item first) (manifest-entry-item second)))
+
+  (define (display-entry entry prefix)
+    (match entry
+      (($ <manifest-entry> name version output location _)
+       (format #t " ~a ~a\t~a\t~a\t~a~%" prefix name version output location))))
+
+  (define (list-entries number)
+    (manifest-entries (profile-manifest (generation-file-name profile number))))
+
+  (define (display-diff profile old new)
+    (display-generation profile new)
+    (let ((added (lset-difference
+                  equal-entry? (list-entries new) (list-entries old)))
+          (removed (lset-difference
+                    equal-entry? (list-entries old) (list-entries new))))
+      (for-each (cut display-entry <> "+") added)
+      (for-each (cut display-entry <> "-") removed)))
+
+  (display-diff profile gen1 gen2))
+
 (define (display-profile-content profile number)
   "Display the packages in PROFILE, generation NUMBER, in a human-readable
 way."
index b5b566a..34b6ef9 100644 (file)
 # French translation of guix. 
-# Copyright (C) 2013, 2014 Free Software Foundation, Inc.
+# Copyright (C) 2016 Free Software Foundation, Inc.
 # This file is distributed under the same license as the guix package.
 # Rémy Chevalier <remychevalier@laposte.net>, 2013, 2014.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: guix 0.9.1\n"
+"Project-Id-Version: guix 0.11.0\n"
 "Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2016-03-04 16:52+0100\n"
-"PO-Revision-Date: 2016-06-26 02:43+0200\n"
-"Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
+"POT-Creation-Date: 2016-07-29 10:16+0200\n"
+"PO-Revision-Date: 2016-10-23 17:55+0200\n"
+"Last-Translator: Frédéric Marchal <fmarchal@perso.be>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: gnu/packages.scm:73
+#: gnu/packages.scm:79
 #, scheme-format
 msgid "~a: patch not found"
-msgstr "~a: paquet introuvable"
+msgstr "~a: correctif introuvable"
 
-#: gnu/packages.scm:84
+#: gnu/packages.scm:95
 #, scheme-format
 msgid "could not find bootstrap binary '~a' for system '~a'"
-msgstr ""
+msgstr "impossible de trouver le binaire d'initialisation « ~a » pour le système « ~a »"
 
-#: gnu/packages.scm:136
+#: gnu/packages.scm:147
 #, scheme-format
 msgid "cannot access `~a': ~a~%"
-msgstr "impossible d'accéder à \"~a\": ~a~%"
+msgstr "impossible d'accéder à « ~a »: ~a~%"
 
-#: gnu/packages.scm:289
+#: gnu/packages.scm:301
 #, scheme-format
 msgid "ambiguous package specification `~a'~%"
-msgstr "spécification du paquet \"~a\" ambiguë~%"
+msgstr "spécification du paquet « ~a » ambiguë~%"
 
-#: gnu/packages.scm:290
+#: gnu/packages.scm:302
 #, scheme-format
 msgid "choosing ~a from ~a~%"
 msgstr "choix de ~a parmi ~a~%"
 
-#: gnu/packages.scm:294
+#: gnu/packages.scm:306
 #, scheme-format
-msgid "deprecated NAME-VERSION syntax.~%"
-msgstr ""
+msgid "deprecated NAME-VERSION syntax; use NAME@VERSION instead~%"
+msgstr "syntaxe NOM-VERSION dépréciée. Utilisez plutôt NOM@VERSION~%"
 
-#: gnu/packages.scm:298
+#: gnu/packages.scm:311
 #, scheme-format
 msgid "~A: package not found for version ~a~%"
 msgstr "~A: paquet introuvable pour la version ~a~%"
 
-#: gnu/packages.scm:305
+#: gnu/packages.scm:321
 #, scheme-format
 msgid "~A: unknown package~%"
 msgstr "~A: paquet inconnu~%"
 
-#: gnu/packages.scm:333
+#: gnu/packages.scm:349
 #, scheme-format
 msgid "package `~a' lacks output `~a'~%"
-msgstr "le paquet \"~a\" requiert la sortie \"~a\"~%"
+msgstr "le paquet « ~a » requiert la sortie « ~a »~%"
 
-#: gnu/services.scm:527
+#: gnu/services.scm:540
 #, scheme-format
 msgid "no target of type '~a' for service ~s"
-msgstr ""
+msgstr "pas de cible de type « ~a » pour le service ~s"
 
-#: gnu/services.scm:538 gnu/services.scm:599
+#: gnu/services.scm:551 gnu/services.scm:612
 #, scheme-format
 msgid "more than one target service of type '~a'"
-msgstr ""
+msgstr "plus d'un service cible de type « ~a »"
 
-#: gnu/services.scm:589
+#: gnu/services.scm:602
 #, scheme-format
 msgid "service of type '~a' not found"
-msgstr ""
+msgstr "service de type « ~a » pas trouvé"
 
-#: gnu/system.scm:546
+#: gnu/system.scm:500
 #, scheme-format
 msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%"
-msgstr ""
+msgstr "l'utilisation d'une chaîne pour le fichier « ~a » est dépréciée. Utilisez plutôt « plain-file »~%"
 
-#: gnu/system.scm:562
+#: gnu/system.scm:516
 #, scheme-format
 msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%"
-msgstr ""
+msgstr "l'utilisation d'une valeur monadic pour « ~a » est dépréciée. Utilisez plutôt « plain-file »~%"
 
-#: gnu/system.scm:679
-#, fuzzy, scheme-format
-#| msgid "~a: invalid checker"
+#: gnu/system.scm:650
+#, scheme-format
 msgid "~a: invalid locale name"
-msgstr "~a: vérificateur non valide"
+msgstr "~a: nom d'environnement linguistique non valide"
 
-#: gnu/system.scm:798
+#: gnu/system.scm:770
 #, scheme-format
 msgid "unrecognized boot parameters for '~a'~%"
-msgstr "paramètres de démarrage non reconus pour \"~a\"~%"
+msgstr "paramètres de démarrage non reconnus pour « ~a »~%"
 
-#: gnu/services/shepherd.scm:166
+#: gnu/services/shepherd.scm:162
 #, scheme-format
 msgid "service '~a' provided more than once"
-msgstr ""
+msgstr "service « ~a » fourni plus d'une fois"
 
-#: gnu/services/shepherd.scm:181
+#: gnu/services/shepherd.scm:177
 #, scheme-format
-msgid "service '~a' requires '~a', which is undefined"
-msgstr ""
+msgid "service '~a' requires '~a', which is not provided by any service"
+msgstr "le service « ~a » requiert « ~a » qui n'est fourni pas aucun service"
 
-#: gnu/system/shadow.scm:213
+#: gnu/system/shadow.scm:240
 #, scheme-format
 msgid "supplementary group '~a' of user '~a' is undeclared"
-msgstr ""
+msgstr "le groupe supplémentaire « ~a » de l'utilisateur « ~a » n'est pas déclaré"
 
-#: gnu/system/shadow.scm:223
+#: gnu/system/shadow.scm:250
 #, scheme-format
 msgid "primary group '~a' of user '~a' is undeclared"
-msgstr ""
+msgstr "le groupe primaire « ~a » de l'utilisateur « ~a » n'est pas déclaré"
 
 #: guix/scripts.scm:52
 #, scheme-format
 msgid "invalid argument: ~a~%"
 msgstr "argument non valide: ~a~%"
 
-#: guix/scripts.scm:78 guix/scripts/download.scm:97 guix/scripts/gc.scm:157
+#: guix/scripts.scm:78 guix/scripts/download.scm:99 guix/scripts/gc.scm:164
 #: guix/scripts/import/cran.scm:78 guix/scripts/import/elpa.scm:77
-#: guix/scripts/pull.scm:219 guix/scripts/lint.scm:874
-#: guix/scripts/publish.scm:354 guix/scripts/graph.scm:346
+#: guix/scripts/pull.scm:219 guix/scripts/lint.scm:916
+#: guix/scripts/publish.scm:549 guix/scripts/graph.scm:383
 #, scheme-format
 msgid "~A: unrecognized option~%"
 msgstr "~A: option non reconnue~%"
 
-#: guix/scripts/build.scm:112
+#: guix/scripts/build.scm:121
 #, scheme-format
 msgid "failed to create GC root `~a': ~a~%"
-msgstr "impossible de créer la racine du GC \"~a\": ~a~%"
+msgstr "impossible de créer la racine du GC « ~a »: ~a~%"
 
-#: guix/scripts/build.scm:189
-#, fuzzy, scheme-format
-#| msgid "ambiguous package specification `~a'~%"
+#: guix/scripts/build.scm:198
+#, scheme-format
 msgid "invalid replacement specification: ~s~%"
-msgstr "spécification du paquet \"~a\" ambiguë~%"
+msgstr "spécification de remplacement invalide: ~s~%"
 
-#: guix/scripts/build.scm:237
+#: guix/scripts/build.scm:246
 msgid ""
 "\n"
 "      --with-source=SOURCE\n"
@@ -152,19 +151,22 @@ msgstr ""
 "      --with-source=SOURCE\n"
 "                         utiliser la SOURCE donnée pour compiler le paquet correspondant"
 
-#: guix/scripts/build.scm:240
+#: guix/scripts/build.scm:249
 msgid ""
 "\n"
 "      --with-input=PACKAGE=REPLACEMENT\n"
 "                         replace dependency PACKAGE by REPLACEMENT"
 msgstr ""
+"\n"
+"      --with-input=PAQUET=REMPLACEMENT\n"
+"                         remplacer le paquet de dépendance PAQUET par REMPLACEMENT"
 
-#: guix/scripts/build.scm:265
+#: guix/scripts/build.scm:274
 #, scheme-format
 msgid "transformation '~a' had no effect on ~a~%"
-msgstr ""
+msgstr "la transformation « ~a » n'a pas d'effet sur ~a~%"
 
-#: guix/scripts/build.scm:283
+#: guix/scripts/build.scm:292
 msgid ""
 "\n"
 "  -L, --load-path=DIR    prepend DIR to the package module search path"
@@ -172,7 +174,7 @@ msgstr ""
 "\n"
 "  -L, --load-path=REP    préfixer le chemin de recherche par REP "
 
-#: guix/scripts/build.scm:285
+#: guix/scripts/build.scm:294
 msgid ""
 "\n"
 "  -K, --keep-failed      keep build tree of failed builds"
@@ -180,19 +182,15 @@ msgstr ""
 "\n"
 "  -K, --keep-failed      garder l'arbre de compilation pour les compilations ayant échoué"
 
-#: guix/scripts/build.scm:287
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "  -n, --dry-run          do not build the derivations"
+#: guix/scripts/build.scm:296
 msgid ""
 "\n"
 "  -k, --keep-going       keep going when some of the derivations fail"
 msgstr ""
 "\n"
-"  -n, --dry-run          ne pas compiler les dérivations"
+"  -k, --keep-going       continuer si certaines dérivations échouent"
 
-#: guix/scripts/build.scm:289
+#: guix/scripts/build.scm:298
 msgid ""
 "\n"
 "  -n, --dry-run          do not build the derivations"
@@ -200,7 +198,7 @@ msgstr ""
 "\n"
 "  -n, --dry-run          ne pas compiler les dérivations"
 
-#: guix/scripts/build.scm:291
+#: guix/scripts/build.scm:300
 msgid ""
 "\n"
 "      --fallback         fall back to building when the substituter fails"
@@ -208,30 +206,33 @@ msgstr ""
 "\n"
 "      --fallback         revenir à la compilation quand le substitut échoue"
 
-#: guix/scripts/build.scm:293
+#: guix/scripts/build.scm:302
 msgid ""
 "\n"
 "      --no-substitutes   build instead of resorting to pre-built substitutes"
 msgstr ""
 "\n"
-"      --no-substitutes   compiler plutot que recourir à des substituts pré-compilés"
+"      --no-substitutes   compiler plutôt que recourir à des substituts pré-compilés"
 
-#: guix/scripts/build.scm:295 guix/scripts/size.scm:215
+#: guix/scripts/build.scm:304 guix/scripts/size.scm:217
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
 "                         fetch substitute from URLS if they are authorized"
 msgstr ""
+"\n"
+"      --substitute-urls=URLS\n"
+"                         récupérer les substituts depuis les URLS si elles sont autorisées"
 
-#: guix/scripts/build.scm:298
+#: guix/scripts/build.scm:307
 msgid ""
 "\n"
 "      --no-grafts        do not graft packages"
 msgstr ""
 "\n"
-"      --no-grafts        ne pas greffer kes paquets"
+"      --no-grafts        ne pas greffer les paquets"
 
-#: guix/scripts/build.scm:300
+#: guix/scripts/build.scm:309
 msgid ""
 "\n"
 "      --no-build-hook    do not attempt to offload builds via the build hook"
@@ -239,7 +240,7 @@ msgstr ""
 "\n"
 "      --no-build-hook    ne pas essayer de décharger les compilations via le hook de compilation"
 
-#: guix/scripts/build.scm:302
+#: guix/scripts/build.scm:311
 msgid ""
 "\n"
 "      --max-silent-time=SECONDS\n"
@@ -249,15 +250,15 @@ msgstr ""
 "      --max-silent-time=N\n"
 "                         marquer la compilation comme ayant échouée après N secondes de silence"
 
-#: guix/scripts/build.scm:305
+#: guix/scripts/build.scm:314
 msgid ""
 "\n"
 "      --timeout=SECONDS  mark the build as failed after SECONDS of activity"
 msgstr ""
 "\n"
-"      --timeout=N  marquer la compilation comme ayant échouée après N secondes d'activité"
+"      --timeout=N        marquer la compilation comme ayant échouée après N secondes d'activité"
 
-#: guix/scripts/build.scm:307
+#: guix/scripts/build.scm:316
 msgid ""
 "\n"
 "      --verbosity=LEVEL  use the given verbosity LEVEL"
@@ -265,33 +266,36 @@ msgstr ""
 "\n"
 "      --verbosity=NIVEAU  utiliser le NIVEAU de verbosité donné"
 
-#: guix/scripts/build.scm:309
+#: guix/scripts/build.scm:318
 msgid ""
 "\n"
 "      --rounds=N         build N times in a row to detect non-determinism"
 msgstr ""
+"\n"
+"      --rounds=N         compiler N fois de suite pour détecter les non déterminismes"
 
-#: guix/scripts/build.scm:311
+#: guix/scripts/build.scm:320
 msgid ""
 "\n"
 "  -c, --cores=N          allow the use of up to N CPU cores for the build"
 msgstr ""
 "\n"
-"  -c, --cores=N          utiliser jusqu'à N coeurs CPU pour la compilation"
+"  -c, --cores=N          utiliser jusqu'à N cœurs CPU pour la compilation"
 
-#: guix/scripts/build.scm:313
+#: guix/scripts/build.scm:322
 msgid ""
 "\n"
 "  -M, --max-jobs=N       allow at most N build jobs"
 msgstr ""
+"\n"
+"  -M, --max-jobs=N       autoriser au plus N tâches de compilation"
 
-#: guix/scripts/build.scm:419 guix/scripts/build.scm:426
-#, fuzzy, scheme-format
-#| msgid "wrong number of arguments~%"
+#: guix/scripts/build.scm:428 guix/scripts/build.scm:435
+#, scheme-format
 msgid "not a number: '~a' option argument: ~a~%"
-msgstr "nombre d'arguments incorrect~%"
+msgstr "pas un nombre: argument d'option « ~a »: ~a~%"
 
-#: guix/scripts/build.scm:446
+#: guix/scripts/build.scm:455
 msgid ""
 "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n"
 "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"
@@ -299,7 +303,7 @@ msgstr ""
 "Usage: guix build [OPTION]... PAQUET-OU-DERIVATION...\n"
 "Compiler le PAQUET-OU-DERIVATION donné et retourner leur chemin de sortie.\n"
 
-#: guix/scripts/build.scm:448
+#: guix/scripts/build.scm:457
 msgid ""
 "\n"
 "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
@@ -307,20 +311,17 @@ msgstr ""
 "\n"
 "  -e, --expression=EXPR  compiler le paquet ou la dérivation évalué par EXPR"
 
-#: guix/scripts/build.scm:450
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
+#: guix/scripts/build.scm:459
 msgid ""
 "\n"
 "  -f, --file=FILE        build the package or derivation that the code within\n"
 "                         FILE evaluates to"
 msgstr ""
 "\n"
-"  -e, --expression=EXPR  compiler le paquet ou la dérivation évalué par EXPR"
+"  -f, --file=FICHIER     compiler le paquet ou la dérivation qui est évaluée\n"
+"                         par le code dans FICHIER"
 
-#: guix/scripts/build.scm:453
+#: guix/scripts/build.scm:462
 msgid ""
 "\n"
 "  -S, --source           build the packages' source derivations"
@@ -328,30 +329,33 @@ msgstr ""
 "\n"
 "  -S, --source           compiler les dérivations de source du paquet"
 
-#: guix/scripts/build.scm:455
+#: guix/scripts/build.scm:464
 msgid ""
 "\n"
 "      --sources[=TYPE]   build source derivations; TYPE may optionally be one\n"
 "                         of \"package\", \"all\" (default), or \"transitive\""
 msgstr ""
+"\n"
+"      --sources[=TYPE]   compiler les dérivations sources. TYPE peut optionnellement\n"
+"                         être « package », « all » (défaut) ou « transitive »"
 
-#: guix/scripts/build.scm:458
+#: guix/scripts/build.scm:467
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
 msgstr ""
 "\n"
-"  -s, --system=SYSTEME    essayer de compiler pour le SYSTEME donné, par exemple \"i686-linux\""
+"  -s, --system=SYSTÈME   essayer de compiler pour le SYSTÈME donné, par exemple « i686-linux »"
 
-#: guix/scripts/build.scm:460
+#: guix/scripts/build.scm:469
 msgid ""
 "\n"
 "      --target=TRIPLET   cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
 msgstr ""
 "\n"
-"      --target=TRIPLET   effectuer une compilation croisée pour TRIPLET, par exemple \"armel-linux-gnu\""
+"      --target=TRIPLET   effectuer une compilation croisée pour TRIPLET, par exemple « armel-linux-gnu »"
 
-#: guix/scripts/build.scm:462
+#: guix/scripts/build.scm:471
 msgid ""
 "\n"
 "  -d, --derivations      return the derivation paths of the given packages"
@@ -359,13 +363,15 @@ msgstr ""
 "\n"
 "  -d, --derivations      retourner les chemins de dérivation pour les paquets donnés"
 
-#: guix/scripts/build.scm:464
+#: guix/scripts/build.scm:473
 msgid ""
 "\n"
 "      --check            rebuild items to check for non-determinism issues"
 msgstr ""
+"\n"
+"      --check            recompiler les éléments pour détecter des problèmes de non déterminisme"
 
-#: guix/scripts/build.scm:466
+#: guix/scripts/build.scm:475
 msgid ""
 "\n"
 "  -r, --root=FILE        make FILE a symlink to the result, and register it\n"
@@ -375,7 +381,15 @@ msgstr ""
 "  -r, --root=FICHIER     faire de FICHIER un lien symbolique pointant sur le résultat\n"
 "                         et l'enregistrer en tant que racine du garbage collector"
 
-#: guix/scripts/build.scm:469
+#: guix/scripts/build.scm:478
+msgid ""
+"\n"
+"  -q, --quiet            do not show the build log"
+msgstr ""
+"\n"
+"  -q, --quiet            ne pas montrer le journal de compilation"
+
+#: guix/scripts/build.scm:480
 msgid ""
 "\n"
 "      --log-file         return the log file names for the given derivations"
@@ -383,14 +397,14 @@ msgstr ""
 "\n"
 "      --log-file         retourner les fichiers de journalisation pour les dérivations données"
 
-#: guix/scripts/build.scm:476 guix/scripts/download.scm:54
-#: guix/scripts/package.scm:386 guix/scripts/gc.scm:70
+#: guix/scripts/build.scm:487 guix/scripts/download.scm:56
+#: guix/scripts/package.scm:388 guix/scripts/gc.scm:74
 #: guix/scripts/hash.scm:56 guix/scripts/import.scm:91
 #: guix/scripts/import/cran.scm:46 guix/scripts/pull.scm:83
-#: guix/scripts/substitute.scm:758 guix/scripts/system.scm:631
-#: guix/scripts/lint.scm:823 guix/scripts/publish.scm:63
-#: guix/scripts/edit.scm:44 guix/scripts/size.scm:223
-#: guix/scripts/graph.scm:327 guix/scripts/challenge.scm:181
+#: guix/scripts/substitute.scm:827 guix/scripts/system.scm:695
+#: guix/scripts/lint.scm:865 guix/scripts/publish.scm:73
+#: guix/scripts/edit.scm:44 guix/scripts/size.scm:225
+#: guix/scripts/graph.scm:364 guix/scripts/challenge.scm:182
 #: guix/scripts/container.scm:33 guix/scripts/container/exec.scm:43
 msgid ""
 "\n"
@@ -399,14 +413,14 @@ msgstr ""
 "\n"
 "  -h, --help             afficher cette aide et quitter"
 
-#: guix/scripts/build.scm:478 guix/scripts/download.scm:56
-#: guix/scripts/package.scm:388 guix/scripts/gc.scm:72
+#: guix/scripts/build.scm:489 guix/scripts/download.scm:58
+#: guix/scripts/package.scm:390 guix/scripts/gc.scm:76
 #: guix/scripts/hash.scm:58 guix/scripts/import.scm:93
 #: guix/scripts/import/cran.scm:48 guix/scripts/pull.scm:85
-#: guix/scripts/substitute.scm:760 guix/scripts/system.scm:633
-#: guix/scripts/lint.scm:827 guix/scripts/publish.scm:65
-#: guix/scripts/edit.scm:46 guix/scripts/size.scm:225
-#: guix/scripts/graph.scm:329 guix/scripts/challenge.scm:183
+#: guix/scripts/substitute.scm:829 guix/scripts/system.scm:697
+#: guix/scripts/lint.scm:869 guix/scripts/publish.scm:75
+#: guix/scripts/edit.scm:46 guix/scripts/size.scm:227
+#: guix/scripts/graph.scm:366 guix/scripts/challenge.scm:184
 #: guix/scripts/container.scm:35 guix/scripts/container/exec.scm:45
 msgid ""
 "\n"
@@ -415,24 +429,26 @@ msgstr ""
 "\n"
 "  -V, --version          afficher les informations sur la version et quitter"
 
-#: guix/scripts/build.scm:505
+#: guix/scripts/build.scm:516
 #, scheme-format
 msgid ""
 "invalid argument: '~a' option argument: ~a, ~\n"
 "must be one of 'package', 'all', or 'transitive'~%"
 msgstr ""
+"argument invalide: argument en option « ~a »: ~a, ~\n"
+"doit être « package », « all » ou « transitive »~%"
 
-#: guix/scripts/build.scm:549
+#: guix/scripts/build.scm:563
 #, scheme-format
 msgid "~s: not something we can build~%"
-msgstr ""
+msgstr "~s: pas quelque chose qu'on sait compiler~%"
 
-#: guix/scripts/build.scm:629
+#: guix/scripts/build.scm:643
 #, scheme-format
 msgid "no build log for '~a'~%"
-msgstr "aucun journal de compilation pour \"~a\"~%"
+msgstr "aucun journal de compilation pour « ~a »~%"
 
-#: guix/scripts/download.scm:45
+#: guix/scripts/download.scm:47
 msgid ""
 "Usage: guix download [OPTION] URL\n"
 "Download the file at URL, add it to the store, and print its store path\n"
@@ -448,126 +464,117 @@ msgstr ""
 "Formats supportés: 'nix-base32' (défaut), 'base32', et 'base16'\n"
 "('hex' et 'hexadecimal' peuvent aussi être utilisés).\n"
 
-#: guix/scripts/download.scm:51 guix/scripts/hash.scm:51
+#: guix/scripts/download.scm:53 guix/scripts/hash.scm:51
 msgid ""
 "\n"
 "  -f, --format=FMT       write the hash in the given format"
 msgstr ""
 "\n"
-"  -f, --format=FORMAT       écrire l'empreinte dans le FORMAT donné"
+"  -f, --format=FORMAT    écrire l'empreinte dans le FORMAT donné"
 
-#: guix/scripts/download.scm:74 guix/scripts/hash.scm:76
+#: guix/scripts/download.scm:76 guix/scripts/hash.scm:76
 #, scheme-format
 msgid "unsupported hash format: ~a~%"
 msgstr "format d'empreinte non supporté: ~a~%"
 
-#: guix/scripts/download.scm:100 guix/scripts/package.scm:836
-#: guix/scripts/publish.scm:356
+#: guix/scripts/download.scm:102 guix/scripts/package.scm:842
+#: guix/scripts/publish.scm:551
 #, scheme-format
 msgid "~A: extraneous argument~%"
 msgstr "~A: argument superflu~%"
 
-#: guix/scripts/download.scm:109
-#, fuzzy, scheme-format
-#| msgid "~a: download failed~%"
+#: guix/scripts/download.scm:111
+#, scheme-format
 msgid "no download URI was specified~%"
-msgstr "~a: le téléchargement a échoué~%"
+msgstr "aucune URI de téléchargement spécifiée~%"
 
-#: guix/scripts/download.scm:111
+#: guix/scripts/download.scm:113
 #, scheme-format
 msgid "~a: failed to parse URI~%"
 msgstr "~a: impossible d'évaluer l'URI~%"
 
-#: guix/scripts/download.scm:122
+#: guix/scripts/download.scm:126
 #, scheme-format
 msgid "~a: download failed~%"
 msgstr "~a: le téléchargement a échoué~%"
 
-#: guix/scripts/package.scm:103
+#: guix/scripts/package.scm:104
 #, scheme-format
 msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%"
-msgstr "Essayez \"info '(guix) Invoking guix package'\" pour plus d'information.~%"
+msgstr "Essayez « info '(guix) Invoking guix package' » pour plus d'information.~%"
 
-#: guix/scripts/package.scm:125
+#: guix/scripts/package.scm:126
 #, scheme-format
 msgid "error: while creating directory `~a': ~a~%"
-msgstr "erreur: pendant la création du répertoire \"~a\": ~a~%"
+msgstr "erreur: pendant la création du répertoire « ~a »: ~a~%"
 
-#: guix/scripts/package.scm:129
+#: guix/scripts/package.scm:130
 #, scheme-format
 msgid "Please create the `~a' directory, with you as the owner.~%"
-msgstr "Veuillez créer un répertoire \"~a\" dont vous êtes le propriétaire.~%"
+msgstr "Veuillez créer le répertoire « ~a » dont vous êtes le propriétaire.~%"
 
-#: guix/scripts/package.scm:136
+#: guix/scripts/package.scm:137
 #, scheme-format
 msgid "error: directory `~a' is not owned by you~%"
-msgstr "erreur: vous de possédez pas le répertoire \"~a\""
+msgstr "erreur: vous ne possédez pas le répertoire « ~a »"
 
-#: guix/scripts/package.scm:139
+#: guix/scripts/package.scm:140
 #, scheme-format
 msgid "Please change the owner of `~a' to user ~s.~%"
-msgstr "Veuillez définir ~s comme propriétaire de \"~a\".~%"
+msgstr "Veuillez définir ~s comme propriétaire de « ~a ».~%"
 
-#: guix/scripts/package.scm:174
+#: guix/scripts/package.scm:175
 #, scheme-format
 msgid "not removing generation ~a, which is current~%"
-msgstr ""
+msgstr "la génération ~a n'est pas supprimée car elle est actuelle~%"
 
-#: guix/scripts/package.scm:181
-#, fuzzy, scheme-format
-#| msgid "cannot switch to generation '~a'~%"
+#: guix/scripts/package.scm:182
+#, scheme-format
 msgid "no matching generation~%"
-msgstr "impossible de passer à la génération \"~a\"~%"
+msgstr "aucune génération correspondante~%"
 
-#: guix/scripts/package.scm:184 guix/scripts/package.scm:657
-#: guix/scripts/system.scm:459
+#: guix/scripts/package.scm:185 guix/scripts/package.scm:659
+#: guix/scripts/system.scm:502
 #, scheme-format
 msgid "invalid syntax: ~a~%"
 msgstr "syntaxe non valide: ~a~%"
 
-#: guix/scripts/package.scm:209
+#: guix/scripts/package.scm:210
 #, scheme-format
 msgid "nothing to be done~%"
 msgstr "aucune action à faire~%"
 
-#: guix/scripts/package.scm:223
+#: guix/scripts/package.scm:224
 #, scheme-format
 msgid "~a package in profile~%"
 msgid_plural "~a packages in profile~%"
 msgstr[0] "~a paquet dans le profile~%"
 msgstr[1] "~a paquets dans le profile~%"
 
-#: guix/scripts/package.scm:311
+#: guix/scripts/package.scm:313
 #, scheme-format
 msgid "The following environment variable definitions may be needed:~%"
 msgstr "Il pourrait être nécessaire de définir les variables d'environnement suivantes:~%"
 
-#: guix/scripts/package.scm:327
-#, fuzzy
-#| msgid ""
-#| "Usage: guix package [OPTION]... PACKAGES...\n"
-#| "Install, remove, or upgrade PACKAGES in a single transaction.\n"
+#: guix/scripts/package.scm:329
 msgid ""
 "Usage: guix package [OPTION]...\n"
 "Install, remove, or upgrade packages in a single transaction.\n"
 msgstr ""
-"Usage: guix package [OPTION]... PAQUETS...\n"
-"Installer, supprimer ou mettre à jour les PAQUETS spécifiés en une seule transaction.\n"
+"Usage: guix package [OPTION]...\n"
+"Installer, supprimer ou mettre à jour les paquets en une seule transaction.\n"
 
-#: guix/scripts/package.scm:329
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "  -i, --install=PACKAGE  install PACKAGE"
+#: guix/scripts/package.scm:331
 msgid ""
 "\n"
 "  -i, --install PACKAGE ...\n"
 "                         install PACKAGEs"
 msgstr ""
 "\n"
-"  -i, --install=PAQUET  installer PAQUET"
+"  -i, --install=PAQUET ...\n"
+"                         installer PAQUETs"
 
-#: guix/scripts/package.scm:332
+#: guix/scripts/package.scm:334
 msgid ""
 "\n"
 "  -e, --install-from-expression=EXP\n"
@@ -577,12 +584,7 @@ msgstr ""
 "  -e, --install-from-expression=EXP\n"
 "                         installer le paquet évalué par EXP"
 
-#: guix/scripts/package.scm:335
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "  -e, --install-from-expression=EXP\n"
-#| "                         install the package EXP evaluates to"
+#: guix/scripts/package.scm:337
 msgid ""
 "\n"
 "  -f, --install-from-file=FILE\n"
@@ -590,23 +592,21 @@ msgid ""
 "                         evaluates to"
 msgstr ""
 "\n"
-"  -e, --install-from-expression=EXP\n"
-"                         installer le paquet évalué par EXP"
+"  -f, --install-from-file=FICHIER\n"
+"                         installer le paquet évalué par le code dans\n"
+"                         FICHIER"
 
-#: guix/scripts/package.scm:339
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "  -r, --remove=PACKAGE   remove PACKAGE"
+#: guix/scripts/package.scm:341
 msgid ""
 "\n"
 "  -r, --remove PACKAGE ...\n"
 "                         remove PACKAGEs"
 msgstr ""
 "\n"
-"  -r, --remove=PAQUET   supprimer PAQUET"
+"  -r, --remove=PAQUET ...\n"
+"                         supprimer PAQUETs"
 
-#: guix/scripts/package.scm:342
+#: guix/scripts/package.scm:344
 msgid ""
 "\n"
 "  -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
@@ -614,26 +614,25 @@ msgstr ""
 "\n"
 "  -u, --upgrade[=REGEXP] mettre à jour tous les paquets installés correspondant à REGEXP"
 
-#: guix/scripts/package.scm:344
+#: guix/scripts/package.scm:346
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a new profile generation with the manifest\n"
 "                         from FILE"
 msgstr ""
+"\n"
+"  -m, --manifest=FICHIER créer une nouvelle génération de profil avec le\n"
+"                         manifeste dans FICHIER"
 
-#: guix/scripts/package.scm:347
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "  -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
+#: guix/scripts/package.scm:349
 msgid ""
 "\n"
 "      --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP"
 msgstr ""
 "\n"
-"  -u, --upgrade[=REGEXP] mettre à jour tous les paquets installés correspondant à REGEXP"
+"      --do-not-upgrade[=REGEXP] ne pas mettre à jour les paquets correspondant à REGEXP"
 
-#: guix/scripts/package.scm:349
+#: guix/scripts/package.scm:351
 msgid ""
 "\n"
 "      --roll-back        roll back to the previous generation"
@@ -641,58 +640,55 @@ msgstr ""
 "\n"
 "      --roll-back        revenir à la génération antérieure"
 
-#: guix/scripts/package.scm:351
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "      --search-paths     display needed environment variable definitions"
+#: guix/scripts/package.scm:353
 msgid ""
 "\n"
 "      --search-paths[=KIND]\n"
 "                         display needed environment variable definitions"
 msgstr ""
 "\n"
-"      --search-paths     afficher les définitions de variable d'environnement requises"
+"      --search-paths=[GENRE]\n"
+"                         afficher les définitions de variables d'environnement requises"
 
-#: guix/scripts/package.scm:354
+#: guix/scripts/package.scm:356
 msgid ""
 "\n"
 "  -l, --list-generations[=PATTERN]\n"
 "                         list generations matching PATTERN"
 msgstr ""
 "\n"
-"  -l, --list-generations[=PATTERN]\n"
-"                         lister les générations correspondant à PATTERN"
+"  -l, --list-generations[=MOTIF]\n"
+"                         lister les générations correspondant à MOTIF"
 
-#: guix/scripts/package.scm:357
+#: guix/scripts/package.scm:359
 msgid ""
 "\n"
 "  -d, --delete-generations[=PATTERN]\n"
 "                         delete generations matching PATTERN"
 msgstr ""
 "\n"
-"  -d, --delete-generations[=PATTERN]\n"
-"                         supprimer les générations correspondant à PATTERN"
+"  -d, --delete-generations[=MOTIF]\n"
+"                         supprimer les générations correspondant à MOTIF"
 
-#: guix/scripts/package.scm:360
+#: guix/scripts/package.scm:362
 msgid ""
 "\n"
 "  -S, --switch-generation=PATTERN\n"
 "                         switch to a generation matching PATTERN"
 msgstr ""
 "\n"
-"  -d, --delete-generations[=PATTERN]\n"
-"                         basculer vers une génération correspondant à PATTERN"
+"  -S, --switch-generation=MOTIF\n"
+"                         basculer vers une génération correspondant à MOTIF"
 
-#: guix/scripts/package.scm:363
+#: guix/scripts/package.scm:365
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"
 msgstr ""
 "\n"
-"  -p, --profile=PROFIL  utiliser PROFIL au lieu du profil par défaut de l'utilisateur"
+"  -p, --profile=PROFIL   utiliser PROFIL au lieu du profil par défaut de l'utilisateur"
 
-#: guix/scripts/package.scm:366
+#: guix/scripts/package.scm:368
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the profile"
@@ -700,15 +696,15 @@ msgstr ""
 "\n"
 "      --bootstrap        utiliser le programme d'amorçage Guile pour compiler le profil"
 
-#: guix/scripts/package.scm:368 guix/scripts/pull.scm:76
+#: guix/scripts/package.scm:370 guix/scripts/pull.scm:76
 msgid ""
 "\n"
 "      --verbose          produce verbose output"
 msgstr ""
 "\n"
-"      --verbose          utiliser le mode verbeux"
+"      --verbose          produire une sortie verbeuse"
 
-#: guix/scripts/package.scm:371
+#: guix/scripts/package.scm:373
 msgid ""
 "\n"
 "  -s, --search=REGEXP    search in synopsis and description using REGEXP"
@@ -716,7 +712,7 @@ msgstr ""
 "\n"
 "  -s, --search=REGEXP    chercher dans le synopsis et la description en utilisant REGEXP"
 
-#: guix/scripts/package.scm:373
+#: guix/scripts/package.scm:375
 msgid ""
 "\n"
 "  -I, --list-installed[=REGEXP]\n"
@@ -726,7 +722,7 @@ msgstr ""
 "  -I, --list-installed[=REGEXP]\n"
 "                         lister les paquets installés correspondant à REGEXP"
 
-#: guix/scripts/package.scm:376
+#: guix/scripts/package.scm:378
 msgid ""
 "\n"
 "  -A, --list-available[=REGEXP]\n"
@@ -736,47 +732,43 @@ msgstr ""
 "  -A, --list-available[=REGEXP]\n"
 "                         lister les paquets disponibles correspondant à REGEXP"
 
-#: guix/scripts/package.scm:379
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "  --show=PACKAGE         show details about PACKAGE"
+#: guix/scripts/package.scm:381
 msgid ""
 "\n"
 "      --show=PACKAGE     show details about PACKAGE"
 msgstr ""
 "\n"
-"  --show=PAQUET         montrer des détails sur le PAQUET"
+"      --show=PAQUET      montrer des détails du PAQUET"
 
-#: guix/scripts/package.scm:474
+#: guix/scripts/package.scm:476
 #, scheme-format
 msgid "~a: unsupported kind of search path~%"
-msgstr ""
+msgstr "~a: type de chemin de recherche non supporté~%"
 
-#: guix/scripts/package.scm:753
+#: guix/scripts/package.scm:755
 #, scheme-format
 msgid "cannot switch to generation '~a'~%"
-msgstr "impossible de passer à la génération \"~a\"~%"
+msgstr "impossible de passer à la génération « ~a »~%"
 
-#: guix/scripts/package.scm:769
+#: guix/scripts/package.scm:771
 #, scheme-format
 msgid "would install new manifest from '~a' with ~d entries~%"
-msgstr ""
+msgstr "installerait le nouveau manifeste depuis « ~a » avec ~d entrées~%"
 
-#: guix/scripts/package.scm:771
+#: guix/scripts/package.scm:773
 #, scheme-format
 msgid "installing new manifest from '~a' with ~d entries~%"
-msgstr ""
+msgstr "installation du nouveau manifeste depuis « ~a » avec ~d entrées~%"
 
-#: guix/scripts/gc.scm:40
+#: guix/scripts/gc.scm:42
 msgid ""
 "Usage: guix gc [OPTION]... PATHS...\n"
 "Invoke the garbage collector.\n"
 msgstr ""
 "Usage: guix gc [OPTION]... CHEMINS...\n"
-"Appeller le garbage collector.\n"
+"Appeler le garbage collector.\n"
 
-#: guix/scripts/gc.scm:42
+#: guix/scripts/gc.scm:44
 msgid ""
 "\n"
 "  -C, --collect-garbage[=MIN]\n"
@@ -786,21 +778,31 @@ msgstr ""
 "  -C, --collect-garbage[=MIN]\n"
 "                         collecter au moins MIN octets dans le garbage-collector"
 
-#: guix/scripts/gc.scm:45
+#: guix/scripts/gc.scm:47
+msgid ""
+"\n"
+"  -F, --free-space=FREE  attempt to reach FREE available space in the store"
+msgstr ""
+"\n"
+"  -F, --free-space=LIBRE essayer d'atteindre LIBRE espace dans le stockage"
+
+#: guix/scripts/gc.scm:49
 msgid ""
 "\n"
 "  -d, --delete           attempt to delete PATHS"
 msgstr ""
 "\n"
-"  -d, --delete           supprimer les CHEMINS"
+"  -d, --delete           essayer de supprimer les CHEMINS"
 
-#: guix/scripts/gc.scm:47
+#: guix/scripts/gc.scm:51
 msgid ""
 "\n"
 "      --optimize         optimize the store by deduplicating identical files"
 msgstr ""
+"\n"
+"      --optimize         optimise le stockage en supprimant les doublons des fichiers identiques"
 
-#: guix/scripts/gc.scm:49
+#: guix/scripts/gc.scm:53
 msgid ""
 "\n"
 "      --list-dead        list dead paths"
@@ -808,7 +810,7 @@ msgstr ""
 "\n"
 "      --list-dead        lister les chemins non valides"
 
-#: guix/scripts/gc.scm:51
+#: guix/scripts/gc.scm:55
 msgid ""
 "\n"
 "      --list-live        list live paths"
@@ -816,7 +818,7 @@ msgstr ""
 "\n"
 "      --list-live        lister les chemins valides"
 
-#: guix/scripts/gc.scm:54
+#: guix/scripts/gc.scm:58
 msgid ""
 "\n"
 "      --references       list the references of PATHS"
@@ -824,7 +826,7 @@ msgstr ""
 "\n"
 "      --references       lister les références de CHEMINS"
 
-#: guix/scripts/gc.scm:56
+#: guix/scripts/gc.scm:60
 msgid ""
 "\n"
 "  -R, --requisites       list the requisites of PATHS"
@@ -832,7 +834,7 @@ msgstr ""
 "\n"
 "  -R, --requisites       lister les prérequis de CHEMINS"
 
-#: guix/scripts/gc.scm:58
+#: guix/scripts/gc.scm:62
 msgid ""
 "\n"
 "      --referrers        list the referrers of PATHS"
@@ -840,42 +842,55 @@ msgstr ""
 "\n"
 "      --referrers        lister les référents de CHEMINS"
 
-#: guix/scripts/gc.scm:61
+#: guix/scripts/gc.scm:65
 msgid ""
 "\n"
 "      --verify[=OPTS]    verify the integrity of the store; OPTS is a\n"
 "                         comma-separated combination of 'repair' and\n"
 "                         'contents'"
 msgstr ""
+"\n"
+"      --verify[=OPTS]    vérifier l'intégrité du stockage. OPTS est une\n"
+"                         combinaison de « repair » et « contents » séparés\n"
+"                         par une virgule"
 
-#: guix/scripts/gc.scm:65
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "      --list-dead        list dead paths"
+#: guix/scripts/gc.scm:69
 msgid ""
 "\n"
 "      --list-failures    list cached build failures"
 msgstr ""
 "\n"
-"      --list-dead        lister les chemins non valides"
+"      --list-failures    lister les échecs de compilation en cache"
 
-#: guix/scripts/gc.scm:67
+#: guix/scripts/gc.scm:71
 msgid ""
 "\n"
 "      --clear-failures   remove PATHS from the set of cached failures"
 msgstr ""
+"\n"
+"      --clear-failures   supprimer CHEMINS de l'ensemble des échecs en cache"
 
-#: guix/scripts/gc.scm:96
+#: guix/scripts/gc.scm:100
 #, scheme-format
 msgid "invalid amount of storage: ~a~%"
 msgstr "quantité de stockage non valide: ~a~%"
 
-#: guix/scripts/gc.scm:187
-#, fuzzy, scheme-format
-#| msgid "~A: extraneous argument~%"
+#: guix/scripts/gc.scm:191
+msgid "already ~h bytes available on ~a, nothing to do~%"
+msgstr "déjà ~h octets disponibles sur ~a, rien à faire~%"
+
+#: guix/scripts/gc.scm:194
+msgid "freeing ~h bytes~%"
+msgstr "libération de ~h octets~%"
+
+#: guix/scripts/gc.scm:206
+#, scheme-format
 msgid "extraneous arguments: ~{~a ~}~%"
-msgstr "~A: argument superflu~%"
+msgstr "arguments superflus: ~{~a ~}~%"
+
+#: guix/scripts/gc.scm:226 guix/scripts/gc.scm:229
+msgid "freed ~h bytes~%"
+msgstr "~h octets libérés~%"
 
 #: guix/scripts/hash.scm:46
 msgid ""
@@ -888,8 +903,8 @@ msgstr ""
 "Usage: guix hash [OPTION] FICHIER\n"
 "Retourner l'empreinte cryptographique du FICHIER.\n"
 "\n"
-"Formats supportés: 'nix-base32' (défaut), 'base32', et 'base16' ('hex'\n"
-"et 'hexadecimal' peuvent également être utilisés).\n"
+"Formats supportés: « nix-base32 » (défaut), « base32 », et « base16 » (« hex »\n"
+"et « hexadecimal » peuvent également être utilisés).\n"
 
 #: guix/scripts/hash.scm:53
 msgid ""
@@ -904,116 +919,110 @@ msgstr ""
 msgid "unrecognized option: ~a~%"
 msgstr "option non reconnue: ~a~%"
 
-#: guix/scripts/hash.scm:135 guix/ui.scm:460
+#: guix/scripts/hash.scm:135 guix/ui.scm:477
 #, scheme-format
 msgid "~a~%"
 msgstr "~a~%"
 
-#: guix/scripts/hash.scm:138 guix/scripts/system.scm:761
+#: guix/scripts/hash.scm:138 guix/scripts/system.scm:825
 #, scheme-format
 msgid "wrong number of arguments~%"
 msgstr "nombre d'arguments incorrect~%"
 
 #: guix/scripts/import.scm:85
-#, fuzzy
-#| msgid ""
-#| "Usage: guix COMMAND ARGS...\n"
-#| "Run COMMAND with ARGS.\n"
 msgid ""
 "Usage: guix import IMPORTER ARGS ...\n"
 "Run IMPORTER with ARGS.\n"
 msgstr ""
-"Usage: guix COMMANDE ARGS...\n"
-"Lance la COMMANDE avec les arguments ARGS.\n"
+"Usage: guix import IMPORTEUR ARGS...\n"
+"Lancer IMPORTATEUR avec ARGS.\n"
 
 #: guix/scripts/import.scm:88
-#, fuzzy
-#| msgid "COMMAND must be one of the sub-commands listed below:\n"
 msgid "IMPORTER must be one of the importers listed below:\n"
-msgstr "COMMANDE doit être une des sous-commandes listées ci-dessous:\n"
+msgstr "IMPORTATEUR doit être un des importateurs listés ci-dessous:\n"
 
 #: guix/scripts/import.scm:102
-#, fuzzy, scheme-format
-#| msgid "guix: missing command name~%"
+#, scheme-format
 msgid "guix import: missing importer name~%"
-msgstr "guix: nom de commande manquant~%"
+msgstr "guix import: nom d'importateur manquant~%"
 
-#: guix/scripts/import.scm:113
+#: guix/scripts/import.scm:115
 #, scheme-format
-msgid "guix import: invalid importer~%"
-msgstr ""
+msgid "'~a' import failed~%"
+msgstr "l'importateur « ~a » a échoué~%"
+
+#: guix/scripts/import.scm:116
+#, scheme-format
+msgid "~a: invalid importer~%"
+msgstr "~a: importateur non valide~%"
 
 #: guix/scripts/import/cran.scm:42
 msgid ""
 "Usage: guix import cran PACKAGE-NAME\n"
 "Import and convert the CRAN package for PACKAGE-NAME.\n"
 msgstr ""
+"Usage: guix import cran PAQUET-NOM\n"
+"Importer et convertir le paquet CAN pour PAQUET-NOM.\n"
 
 #: guix/scripts/import/cran.scm:44
 msgid ""
 "\n"
 "  -a, --archive=ARCHIVE  specify the archive repository"
 msgstr ""
+"\n"
+"  -a, --archive=ARCHIVE  spécifier le dépôt de l'archive"
 
 #: guix/scripts/import/cran.scm:94
-#, fuzzy, scheme-format
-#| msgid "failed to load operating system file '~a': ~s~%"
+#, scheme-format
 msgid "failed to download description for package '~a'~%"
-msgstr "impossible de charger le fichier du système d'exploitation \"~a\": ~s~%"
+msgstr "échec lors du téléchargement de la description du paquet « ~a »~%"
 
 #: guix/scripts/import/cran.scm:98 guix/scripts/import/elpa.scm:95
-#, fuzzy, scheme-format
-#| msgid "wrong number of arguments~%"
+#, scheme-format
 msgid "too few arguments~%"
-msgstr "nombre d'arguments incorrect~%"
+msgstr "trop peux d'arguments~%"
 
 #: guix/scripts/import/cran.scm:100 guix/scripts/import/elpa.scm:97
-#, fuzzy, scheme-format
-#| msgid "wrong arguments"
+#, scheme-format
 msgid "too many arguments~%"
-msgstr "arguments non valides"
+msgstr "trop d'arguments~%"
 
 #: guix/scripts/import/elpa.scm:41
 msgid ""
 "Usage: guix import elpa PACKAGE-NAME\n"
 "Import the latest package named PACKAGE-NAME from an ELPA repository.\n"
 msgstr ""
+"Usage: guix import elpa PAQUET-NOM\n"
+"Importer le dernier paquet nommé PAQUET-NOM d'un dépôt ELPA.\n"
 
 #: guix/scripts/import/elpa.scm:43
 msgid ""
 "\n"
 "  -a, --archive=ARCHIVE          specify the archive repository"
 msgstr ""
+"\n"
+"  -a, --archive=ARCHIVE          spécifier le dépôt de l'archive"
 
 #: guix/scripts/import/elpa.scm:45
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "  -h, --help             display this help and exit"
 msgid ""
 "\n"
 "  -h, --help                     display this help and exit"
 msgstr ""
 "\n"
-"  -h, --help             afficher cette aide et quitter"
+"  -h, --help                     afficher cette aide et quitter"
 
 #: guix/scripts/import/elpa.scm:47
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "  -V, --version          display version information and exit"
 msgid ""
 "\n"
 "  -V, --version                  display version information and exit"
 msgstr ""
 "\n"
-"  -V, --version          afficher les informations sur la version et quitter"
+"  -V, --version                  afficher les informations sur la version et quitter"
 
 #: guix/scripts/import/elpa.scm:92
-#, fuzzy, scheme-format
-#| msgid "failed to install locale: ~a~%"
+#, scheme-format
 msgid "failed to download package '~a'~%"
-msgstr "impossible d'installer la locale: ~a~%"
+msgstr "échec lors du téléchargement du paquet « ~a »~%"
 
 #: guix/scripts/pull.scm:74
 msgid ""
@@ -1046,7 +1055,7 @@ msgstr "la tarball n'a produit aucun répertoire source"
 #: guix/scripts/pull.scm:152
 #, scheme-format
 msgid "unpacking '~a'...~%"
-msgstr "dépaquetage \"~a\"...~%"
+msgstr "dépaquetage « ~a »...~%"
 
 #: guix/scripts/pull.scm:161
 msgid "failed to unpack source code"
@@ -1054,12 +1063,12 @@ msgstr "échec du dépaquetage du code source"
 
 #: guix/scripts/pull.scm:204
 msgid "Guix already up to date\n"
-msgstr "Guix est déja à jour\n"
+msgstr "Guix est déjà à jour\n"
 
 #: guix/scripts/pull.scm:209
 #, scheme-format
 msgid "updated ~a successfully deployed under `~a'~%"
-msgstr "~a a été mis à jour et déployé avec succès sous \"~a\"~%"
+msgstr "~a a été mis à jour et déployé avec succès sous « ~a »~%"
 
 #: guix/scripts/pull.scm:212
 #, scheme-format
@@ -1075,106 +1084,135 @@ msgstr "~A: argument inattendu~%"
 msgid "failed to download up-to-date source, exiting\n"
 msgstr "impossible de télécharger une source à jour; fin\n"
 
-#: guix/scripts/substitute.scm:103
+#: guix/scripts/substitute.scm:113
 #, scheme-format
 msgid "authentication and authorization of substitutes disabled!~%"
 msgstr "authentification et autorisation des substituts désactivées !~%"
 
-#: guix/scripts/substitute.scm:179
+#: guix/scripts/substitute.scm:188
 #, scheme-format
 msgid "download from '~a' failed: ~a, ~s~%"
-msgstr "le téléchargement depuis '~a' a échoué: ~a, ~s~%"
+msgstr "le téléchargement depuis « ~a » a échoué: ~a, ~s~%"
 
-#: guix/scripts/substitute.scm:191
-#, fuzzy, scheme-format
-#| msgid "while fetching ~a: server is unresponsive~%"
+#: guix/scripts/substitute.scm:201
+#, scheme-format
 msgid "while fetching ~a: server is somewhat slow~%"
-msgstr "pendant la recherche de ~a: le serveur ne répond pas~%"
+msgstr "pendant la récupération de ~a: le serveur est plutôt lent~%"
 
-#: guix/scripts/substitute.scm:193
+#: guix/scripts/substitute.scm:203
 #, scheme-format
 msgid "try `--no-substitutes' if the problem persists~%"
-msgstr "essayez l'option \"--no-substitutes\" si le problème persiste~%"
+msgstr "essayez l'option « --no-substitutes » si le problème persiste~%"
 
-#: guix/scripts/substitute.scm:266
-#, fuzzy, scheme-format
-#| msgid "signature version must be a number: ~a~%"
+#: guix/scripts/substitute.scm:219
+#, scheme-format
+msgid "unsupported substitute URI scheme: ~a~%"
+msgstr "schéma de substitution URI non supporté: ~a~%"
+
+#: guix/scripts/substitute.scm:252
+#, scheme-format
+msgid "while fetching '~a': ~a (~s)~%"
+msgstr "pendant la récupération de « ~a »: ~a (~s)~%"
+
+#: guix/scripts/substitute.scm:257
+#, scheme-format
+msgid "ignoring substitute server at '~s'~%"
+msgstr "ignore le serveur de substitution à « ~s »~%"
+
+#: guix/scripts/substitute.scm:306
+#, scheme-format
 msgid "signature version must be a number: ~s~%"
-msgstr "la version de la signature doit être un nombre: ~a~%"
+msgstr "la version de la signature doit être un nombre: ~s~%"
 
-#: guix/scripts/substitute.scm:270
+#: guix/scripts/substitute.scm:310
 #, scheme-format
 msgid "unsupported signature version: ~a~%"
 msgstr "version de signature non supportée: ~a~%"
 
-#: guix/scripts/substitute.scm:278
+#: guix/scripts/substitute.scm:318
 #, scheme-format
 msgid "signature is not a valid s-expression: ~s~%"
 msgstr "la signature n'est pas une s-expression valide: ~s~%"
 
-#: guix/scripts/substitute.scm:282
+#: guix/scripts/substitute.scm:322
 #, scheme-format
 msgid "invalid format of the signature field: ~a~%"
-msgstr "signature non valide pour \"~a\"~%"
+msgstr "format invalide du champ de signature: ~a~%"
 
-#: guix/scripts/substitute.scm:317
+#: guix/scripts/substitute.scm:357
 #, scheme-format
 msgid "invalid signature for '~a'~%"
-msgstr "signature non valide pour \"~a\"~%"
+msgstr "signature non valide pour « ~a »~%"
 
-#: guix/scripts/substitute.scm:319
+#: guix/scripts/substitute.scm:359
 #, scheme-format
 msgid "hash mismatch for '~a'~%"
-msgstr "empreinte non valide pour \"~a\"~%"
+msgstr "l'empreinte ne correspond pas pour « ~a »~%"
 
-#: guix/scripts/substitute.scm:321
+#: guix/scripts/substitute.scm:361
 #, scheme-format
 msgid "'~a' is signed with an unauthorized key~%"
-msgstr "\"~a\" est signé avec une clé non autorisée~%"
+msgstr "« ~a » est signé avec une clé non autorisée~%"
 
-#: guix/scripts/substitute.scm:323
+#: guix/scripts/substitute.scm:363
 #, scheme-format
 msgid "signature on '~a' is corrupt~%"
-msgstr "la signature de \"~a\" est corrompue~%"
+msgstr "la signature de « ~a » est corrompue~%"
 
-#: guix/scripts/substitute.scm:361
+#: guix/scripts/substitute.scm:401
 #, scheme-format
 msgid "substitute at '~a' lacks a signature~%"
-msgstr "le substitut à \"~a\" requiert une signature~%"
+msgstr "le substitut à « ~a » n'a pas de signature~%"
+
+#: guix/scripts/substitute.scm:409
+#, scheme-format
+msgid "~%Found valid signature for ~a~%"
+msgstr "~%Signature valide trouvée pour ~a~%"
+
+#: guix/scripts/substitute.scm:412
+#, scheme-format
+msgid "From ~a~%"
+msgstr "De ~a~%"
 
-#: guix/scripts/substitute.scm:537
+#: guix/scripts/substitute.scm:452
+#, scheme-format
+msgid "'~a' does not name a store item~%"
+msgstr "« ~a » ne nomme pas un élément du stockage~%"
+
+#: guix/scripts/substitute.scm:596
 #, scheme-format
 msgid "updating list of substitutes from '~a'... ~5,1f%"
-msgstr ""
+msgstr "mise à jour de la liste des substituts depuis « ~a »... ~5,1f%"
 
-#: guix/scripts/substitute.scm:585
+#: guix/scripts/substitute.scm:646
 #, scheme-format
 msgid "~s: unsupported server URI scheme~%"
-msgstr ""
+msgstr "~s: schéma de URI serveur non supporté~%"
 
-#: guix/scripts/substitute.scm:596
+#: guix/scripts/substitute.scm:656
 #, scheme-format
 msgid "'~a' uses different store '~a'; ignoring it~%"
-msgstr ""
+msgstr "« ~a » utilise un stockage « ~a » différent. Il est ignoré~%"
 
-#: guix/scripts/substitute.scm:739
+#: guix/scripts/substitute.scm:801
 #, scheme-format
 msgid "host name lookup error: ~a~%"
 msgstr "erreur lors de la consultation du nom d'hôte: ~a~%"
 
-#: guix/scripts/substitute.scm:748
-#, fuzzy
-#| msgid ""
-#| "Usage: guix substitute-binary [OPTION]...\n"
-#| "Internal tool to substitute a pre-built binary to a local build.\n"
+#: guix/scripts/substitute.scm:806
+#, scheme-format
+msgid "TLS error in procedure '~a': ~a~%"
+msgstr "erreur TLS dans la procédure « ~a »: ~a~%"
+
+#: guix/scripts/substitute.scm:817
 msgid ""
 "Usage: guix substitute [OPTION]...\n"
 "Internal tool to substitute a pre-built binary to a local build.\n"
 msgstr ""
-"Usage: guix substitute-binary [OPTION]...\n"
+"Usage: guix substitute [OPTION]...\n"
 "Outil interne pour substituer un binaire pré-compilé à une compilation locale.\n"
 
-#: guix/scripts/substitute.scm:750
+#: guix/scripts/substitute.scm:819
 msgid ""
 "\n"
 "      --query            report on the availability of substitutes for the\n"
@@ -1182,10 +1220,10 @@ msgid ""
 msgstr ""
 "\n"
 "      --query            afficher les substituts disponibles pour les\n"
-"                         noms de fichier de dépôt passés sur l'entrée\n"
+"                         noms de fichiers de dépôt passés sur l'entrée\n"
 "                         standard"
 
-#: guix/scripts/substitute.scm:753
+#: guix/scripts/substitute.scm:822
 msgid ""
 "\n"
 "      --substitute STORE-FILE DESTINATION\n"
@@ -1193,15 +1231,23 @@ msgid ""
 "                         DESTINATION"
 msgstr ""
 "\n"
-"      --substitute FICHIER-DEPOT DESTINATION\n"
-"                         télécharger FICHIER-DEPOT et l'enregistrer comme un Nar\n"
+"      --substitute FICHIER-DÉPÔT DESTINATION\n"
+"                         télécharger FICHIER-DÉPÔT et l'enregistrer comme un Nar\n"
 "                         dans le fichier DESTINATION"
 
-#: guix/scripts/substitute.scm:878
+#. TRANSLATORS: The second part of this message looks like
+#. "(4.1MiB installed)"; it shows the size of the package once
+#. installed.
+#: guix/scripts/substitute.scm:895
+#, scheme-format
+msgid "Downloading ~a~:[~*~; (~a installed)~]...~%"
+msgstr "Téléchargement de ~a~:[~*~; (~a installé)~]...~%"
+
+#: guix/scripts/substitute.scm:951
 msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n"
 msgstr "l'ACL pour l'import d'archives ne semble pas initialisée ; les substituts pourraient être indisponibles\n"
 
-#: guix/scripts/substitute.scm:960
+#: guix/scripts/substitute.scm:1047
 #, scheme-format
 msgid "~a: unrecognized options~%"
 msgstr "~a: options non reconnues~%"
@@ -1209,17 +1255,17 @@ msgstr "~a: options non reconnues~%"
 #: guix/scripts/authenticate.scm:58
 #, scheme-format
 msgid "cannot find public key for secret key '~a'~%"
-msgstr "impossible de trouver la clé publique correspondant à la clé secrète \"~a\"~%"
+msgstr "impossible de trouver la clé publique correspondant à la clé secrète « ~a »~%"
 
 #: guix/scripts/authenticate.scm:78
 #, scheme-format
 msgid "error: invalid signature: ~a~%"
-msgstr "error: signature non valide: ~a~%"
+msgstr "erreur: signature non valide: ~a~%"
 
 #: guix/scripts/authenticate.scm:80
 #, scheme-format
 msgid "error: unauthorized public key: ~a~%"
-msgstr "error: clé publique non autorisée: ~a~%"
+msgstr "erreur: clé publique non autorisée: ~a~%"
 
 #: guix/scripts/authenticate.scm:82
 #, scheme-format
@@ -1234,177 +1280,198 @@ msgid ""
 msgstr ""
 "Usage: guix authenticate OPTION...\n"
 "Signer ou vérifier la signature du fichier donné.  Cet outil est destiné\n"
-"à être utilisé en interne par \"guix-daemon\".\n"
+"à être utilisé en interne par « guix-daemon ».\n"
 
 #: guix/scripts/authenticate.scm:126
 msgid "wrong arguments"
-msgstr "arguments non valides"
+msgstr "mauvais arguments"
 
 #: guix/scripts/system.scm:111
 #, scheme-format
 msgid "failed to register '~a' under '~a'~%"
-msgstr "impossible d'enregistrer \"~a\" sous \"~a\"~%"
+msgstr "impossible d'enregistrer « ~a » sous « ~a »~%"
 
-#: guix/scripts/system.scm:143
+#: guix/scripts/system.scm:144
 #, scheme-format
 msgid "failed to install GRUB on device '~a'~%"
-msgstr "échec de l'installation de GRUB sur le périphérique \"~a\"~%"
+msgstr "échec de l'installation de GRUB sur le périphérique « ~a »~%"
 
-#: guix/scripts/system.scm:161
+#: guix/scripts/system.scm:162
 #, scheme-format
 msgid "initializing the current root file system~%"
 msgstr "initialisation du système de fichier racine courant~%"
 
-#: guix/scripts/system.scm:175
+#: guix/scripts/system.scm:176
 #, scheme-format
 msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%"
-msgstr ""
+msgstr "n'est pas exécuté en tant que « root » donc le propriétaire de « ~a » pourrait être incorrect !~%"
 
-#: guix/scripts/system.scm:233
+#: guix/scripts/system.scm:234
 #, scheme-format
 msgid "while talking to shepherd: ~a~%"
 msgstr ""
 
-#: guix/scripts/system.scm:279
+#: guix/scripts/system.scm:248
+#, scheme-format
+msgid "service '~a' could not be found~%"
+msgstr "service: « ~a » introuvable~%"
+
+#: guix/scripts/system.scm:251
+#, scheme-format
+msgid "service '~a' does not have an action '~a'~%"
+msgstr "le service « ~a » n'a pas d'action « ~a »~%"
+
+#: guix/scripts/system.scm:255
+#, scheme-format
+msgid "exception caught while executing '~a' on service '~a':~%"
+msgstr "exception interceptée pendant l'exécution de « ~a » sur le service « ~a »:~%"
+
+#: guix/scripts/system.scm:263
+#, scheme-format
+msgid "something went wrong: ~s~%"
+msgstr "quelque chose s'est mal passé: ~s~%"
+
+#: guix/scripts/system.scm:266
+#, scheme-format
+msgid "shepherd error~%"
+msgstr ""
+
+#: guix/scripts/system.scm:302
 #, fuzzy, scheme-format
-#| msgid "unpacking '~a'...~%"
+#| msgid "failed to install GRUB on device '~a'~%"
+msgid "failed to obtain list of shepherd services~%"
+msgstr "échec de l'installation de GRUB sur le périphérique \"~a\"~%"
+
+#: guix/scripts/system.scm:322
+#, scheme-format
 msgid "unloading service '~a'...~%"
-msgstr "dépaquetage \"~a\"...~%"
+msgstr "déchargement du service « ~a »...~%"
 
-#: guix/scripts/system.scm:287
+#: guix/scripts/system.scm:330
 #, scheme-format
 msgid "loading new services:~{ ~a~}...~%"
-msgstr ""
+msgstr "Chargement des nouveaux services:~{ ~a~}...~%"
 
-#: guix/scripts/system.scm:311
+#: guix/scripts/system.scm:354
 #, scheme-format
 msgid "activating system...~%"
 msgstr "activation du système...~%"
 
-#: guix/scripts/system.scm:402
+#: guix/scripts/system.scm:445
 msgid "the DAG of services"
 msgstr ""
 
-#: guix/scripts/system.scm:415
+#: guix/scripts/system.scm:458
 msgid "the dependency graph of shepherd services"
 msgstr ""
 
-#: guix/scripts/system.scm:436
-#, fuzzy, scheme-format
-#| msgid "invalid number: ~a~%"
+#: guix/scripts/system.scm:479
+#, scheme-format
 msgid "  file name: ~a~%"
-msgstr "nombre non valide: ~a~%"
+msgstr "  nom de fichier: ~a~%"
 
-#: guix/scripts/system.scm:437
+#: guix/scripts/system.scm:480
 #, scheme-format
 msgid "  canonical file name: ~a~%"
-msgstr ""
+msgstr "  nom de fichier canonique: ~a~%"
 
 #. TRANSLATORS: Please preserve the two-space indentation.
-#: guix/scripts/system.scm:439
-#, fuzzy, scheme-format
-#| msgid "~a: ~a~%"
+#: guix/scripts/system.scm:482
+#, scheme-format
 msgid "  label: ~a~%"
-msgstr "~a: ~a~%"
+msgstr "  étiquette: ~a~%"
 
-#: guix/scripts/system.scm:440
+#: guix/scripts/system.scm:483
 #, scheme-format
 msgid "  root device: ~a~%"
-msgstr ""
+msgstr "  périphérique racine: ~a~%"
 
-#: guix/scripts/system.scm:441
+#: guix/scripts/system.scm:484
 #, scheme-format
 msgid "  kernel: ~a~%"
-msgstr ""
+msgstr "  noyau: ~a~%"
+
+#: guix/scripts/system.scm:541
+#, scheme-format
+msgid "~a not found: 'guix pull' was never run~%"
+msgstr "~a pas trouvé: « guix pull » n'a jamais été exécuté~%"
+
+#: guix/scripts/system.scm:542
+#, scheme-format
+msgid "Consider running 'guix pull' before 'reconfigure'.~%"
+msgstr "Envisagez d'exécuter « guix pull » avant « reconfigure ».~%"
+
+#: guix/scripts/system.scm:543
+#, scheme-format
+msgid "Failing to do that may downgrade your system!~%"
+msgstr "Si vous ne le faites pas, votre système pourrait être amené à une version inférieure !~%"
 
-#: guix/scripts/system.scm:549
+#: guix/scripts/system.scm:613
 #, scheme-format
 msgid "initializing operating system under '~a'...~%"
-msgstr "initialisation du système d'exploitation sous \"~a\"...~%"
+msgstr "initialisation du système d'exploitation sous « ~a »...~%"
 
-#: guix/scripts/system.scm:588
-#, fuzzy
-#| msgid ""
-#| "Usage: guix system [OPTION] ACTION FILE\n"
-#| "Build the operating system declared in FILE according to ACTION.\n"
+#: guix/scripts/system.scm:652
 msgid ""
 "Usage: guix system [OPTION] ACTION [FILE]\n"
 "Build the operating system declared in FILE according to ACTION.\n"
 msgstr ""
-"Usage: guix system [OPTION] ACTION FICHIER\n"
+"Usage: guix system [OPTION] ACTION [FICHIER]\n"
 "Compiler le système d'exploitation déclaré dans FICHER en suivant ACTION.\n"
 
-#: guix/scripts/system.scm:591 guix/scripts/container.scm:28
+#: guix/scripts/system.scm:655 guix/scripts/container.scm:28
 msgid "The valid values for ACTION are:\n"
-msgstr "Les valeurs possibles pour ACTION sont: \n"
+msgstr "Les valeurs possibles pour ACTION sont:\n"
 
-#: guix/scripts/system.scm:593
-#, fuzzy
-#| msgid "  - 'reconfigure', switch to a new operating system configuration\n"
+#: guix/scripts/system.scm:657
 msgid "   reconfigure      switch to a new operating system configuration\n"
-msgstr "  - 'reconfigure', changer la configuration du système d'exploitation\n"
+msgstr "   reconfigure      basculer vers une nouvelle configuration du système d'exploitation\n"
 
-#: guix/scripts/system.scm:595
+#: guix/scripts/system.scm:659
 msgid "   list-generations list the system generations\n"
-msgstr ""
+msgstr "   list-generations lister les générations du système\n"
 
-#: guix/scripts/system.scm:597
-#, fuzzy
-#| msgid "  - 'build', build the operating system without installing anything\n"
+#: guix/scripts/system.scm:661
 msgid "   build            build the operating system without installing anything\n"
-msgstr "  - 'build', compiler le système d'exploitation sans rien installer\n"
+msgstr "   build            compiler le système d'exploitation sans rien installer\n"
 
-#: guix/scripts/system.scm:599
-#, fuzzy
-#| msgid "  - 'vm', build a virtual machine image that shares the host's store\n"
+#: guix/scripts/system.scm:663
 msgid "   container        build a container that shares the host's store\n"
-msgstr "  - 'vm', compiler une machine virtuelle partageant le dépôt de l'hôte\n"
+msgstr "   container        compiler un conteneur qui partage le stockage de l'hôte\n"
 
-#: guix/scripts/system.scm:601
-#, fuzzy
-#| msgid "  - 'vm', build a virtual machine image that shares the host's store\n"
+#: guix/scripts/system.scm:665
 msgid "   vm               build a virtual machine image that shares the host's store\n"
-msgstr "  - 'vm', compiler une machine virtuelle partageant le dépôt de l'hôte\n"
+msgstr "   vm               compiler une machine virtuelle partageant le dépôt de l'hôte\n"
 
-#: guix/scripts/system.scm:603
-#, fuzzy
-#| msgid "  - 'vm-image', build a freestanding virtual machine image\n"
+#: guix/scripts/system.scm:667
 msgid "   vm-image         build a freestanding virtual machine image\n"
-msgstr "  - 'vm-image', compiler une image autonome de machine virtuelle\n"
+msgstr "   vm-image         compiler une image autonome de machine virtuelle\n"
 
-#: guix/scripts/system.scm:605
-#, fuzzy
-#| msgid "  - 'disk-image', build a disk image, suitable for a USB stick\n"
+#: guix/scripts/system.scm:669
 msgid "   disk-image       build a disk image, suitable for a USB stick\n"
-msgstr "  - 'disk-image', compiler une image disque adaptée pour une clé USB\n"
+msgstr "   disk-image       compiler une image disque adaptée pour une clé USB\n"
 
-#: guix/scripts/system.scm:607
-#, fuzzy
-#| msgid "  - 'init', initialize a root file system to run GNU.\n"
+#: guix/scripts/system.scm:671
 msgid "   init             initialize a root file system to run GNU\n"
-msgstr "  - 'init', initialiser un système de fichier racine pour lancer GNU.\n"
+msgstr "   init             initialiser un système de fichier racine pour lancer GNU.\n"
 
-#: guix/scripts/system.scm:609
+#: guix/scripts/system.scm:673
 msgid "   extension-graph  emit the service extension graph in Dot format\n"
-msgstr ""
+msgstr "   extension-graph  émettre le graphique d'extension de service au format Dot\n"
 
-#: guix/scripts/system.scm:611
+#: guix/scripts/system.scm:675
 msgid "   shepherd-graph   emit the graph of shepherd services in Dot format\n"
 msgstr ""
 
-#: guix/scripts/system.scm:615
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "  -d, --derivations      return the derivation paths of the given packages"
+#: guix/scripts/system.scm:679
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the given system"
 msgstr ""
 "\n"
-"  -d, --derivations      retourner les chemins de dérivation pour les paquets donnés"
+"  -d, --derivation       retourner les dérivations pour le système donné"
 
-#: guix/scripts/system.scm:617
+#: guix/scripts/system.scm:681
 #, fuzzy
 #| msgid ""
 #| "\n"
@@ -1419,7 +1486,7 @@ msgstr ""
 "      --with-source=SOURCE\n"
 "                         utiliser la SOURCE donnée pour compiler le paquet correspondant"
 
-#: guix/scripts/system.scm:620
+#: guix/scripts/system.scm:684
 msgid ""
 "\n"
 "      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
@@ -1427,7 +1494,7 @@ msgstr ""
 "\n"
 "      --image-size=TAILLE  pour 'vm-image', produire une image de TAILLE"
 
-#: guix/scripts/system.scm:622
+#: guix/scripts/system.scm:686
 msgid ""
 "\n"
 "      --no-grub          for 'init', do not install GRUB"
@@ -1435,19 +1502,19 @@ msgstr ""
 "\n"
 "      --no-grub          pour 'init', ne pas installer GRUB"
 
-#: guix/scripts/system.scm:624
+#: guix/scripts/system.scm:688
 msgid ""
 "\n"
 "      --share=SPEC       for 'vm', share host file system according to SPEC"
 msgstr ""
 
-#: guix/scripts/system.scm:626
+#: guix/scripts/system.scm:690
 msgid ""
 "\n"
 "      --expose=SPEC      for 'vm', expose host file system according to SPEC"
 msgstr ""
 
-#: guix/scripts/system.scm:628
+#: guix/scripts/system.scm:692
 msgid ""
 "\n"
 "      --full-boot        for 'vm', make a full boot sequence"
@@ -1455,108 +1522,126 @@ msgstr ""
 "\n"
 "      --full-boot        pour 'vm', accomplire une séquence complète de démarrage"
 
-#: guix/scripts/system.scm:713
+#: guix/scripts/system.scm:777
 #, scheme-format
 msgid "no configuration file specified~%"
 msgstr "aucun fichier de configuration spécifié~%"
 
-#: guix/scripts/system.scm:776
+#: guix/scripts/system.scm:840
 #, scheme-format
 msgid "~a: unknown action~%"
 msgstr "~a: action inconnue~%"
 
-#: guix/scripts/system.scm:791
+#: guix/scripts/system.scm:855
 #, scheme-format
 msgid "wrong number of arguments for action '~a'~%"
 msgstr "nombre d'arguments incorrect pour l'action \"~a\"~%"
 
-#: guix/scripts/system.scm:796
+#: guix/scripts/system.scm:860
 #, fuzzy, scheme-format
 #| msgid "guix: missing command name~%"
 msgid "guix system: missing command name~%"
 msgstr "guix: nom de commande manquant~%"
 
-#: guix/scripts/system.scm:798
+#: guix/scripts/system.scm:862
 #, fuzzy, scheme-format
 #| msgid "Try `guix --help' for more information.~%"
 msgid "Try 'guix system --help' for more information.~%"
 msgstr "Essayez \"guix --help\" pour plus d'informations.~%"
 
-#: guix/scripts/lint.scm:127
+#: guix/scripts/lint.scm:130
 #, scheme-format
 msgid "Available checkers:~%"
 msgstr "Vérificateurs disponibles:~%"
 
-#: guix/scripts/lint.scm:147
+#: guix/scripts/lint.scm:150
 msgid "description should not be empty"
 msgstr ""
 
-#: guix/scripts/lint.scm:157
+#: guix/scripts/lint.scm:160
 msgid "Texinfo markup in description is invalid"
 msgstr ""
 
-#: guix/scripts/lint.scm:165
+#: guix/scripts/lint.scm:168
 msgid "description should start with an upper-case letter or digit"
 msgstr ""
 
-#: guix/scripts/lint.scm:181
+#: guix/scripts/lint.scm:184
 #, scheme-format
 msgid ""
 "sentences in description should be followed ~\n"
 "by two spaces; possible infraction~p at ~{~a~^, ~}"
 msgstr ""
 
-#: guix/scripts/lint.scm:205
-msgid "pkg-config should probably be a native input"
-msgstr ""
+#: guix/scripts/lint.scm:200
+#, fuzzy, scheme-format
+#| msgid "Validate package descriptions"
+msgid "invalid description: ~s"
+msgstr "Validers des descriptions de paquets"
 
 #: guix/scripts/lint.scm:220
+#, scheme-format
+msgid "'~a' should probably be a native input"
+msgstr ""
+
+#: guix/scripts/lint.scm:238
 msgid "synopsis should not be empty"
 msgstr ""
 
-#: guix/scripts/lint.scm:228
+#: guix/scripts/lint.scm:246
 msgid "no period allowed at the end of the synopsis"
 msgstr ""
 
-#: guix/scripts/lint.scm:240
+#: guix/scripts/lint.scm:258
 msgid "no article allowed at the beginning of the synopsis"
 msgstr ""
 
-#: guix/scripts/lint.scm:247
+#: guix/scripts/lint.scm:265
 msgid "synopsis should be less than 80 characters long"
 msgstr ""
 
-#: guix/scripts/lint.scm:253
+#: guix/scripts/lint.scm:271
 msgid "synopsis should start with an upper-case letter or digit"
 msgstr ""
 
-#: guix/scripts/lint.scm:260
+#: guix/scripts/lint.scm:278
 msgid "synopsis should not start with the package name"
 msgstr ""
 
-#: guix/scripts/lint.scm:354 guix/scripts/lint.scm:366
+#: guix/scripts/lint.scm:292
+#, fuzzy, scheme-format
+#| msgid "invalid syntax: ~a~%"
+msgid "invalid synopsis: ~s"
+msgstr "syntaxe non valide: ~a~%"
+
+#: guix/scripts/lint.scm:383
+#, scheme-format
+msgid "URI ~a returned suspiciously small file (~a bytes)"
+msgstr ""
+
+#: guix/scripts/lint.scm:392 guix/scripts/lint.scm:404
 #, scheme-format
 msgid "URI ~a not reachable: ~a (~s)"
 msgstr ""
 
-#: guix/scripts/lint.scm:373
+#: guix/scripts/lint.scm:411
 #, fuzzy, scheme-format
 #| msgid "guix: ~a: command not found~%"
 msgid "URI ~a domain not found: ~a"
 msgstr "guix: ~a: commande introuvable~%"
 
-#: guix/scripts/lint.scm:381
+#: guix/scripts/lint.scm:419
 #, scheme-format
 msgid "URI ~a unreachable: ~a"
 msgstr ""
 
-#: guix/scripts/lint.scm:407
+#: guix/scripts/lint.scm:445
 #, fuzzy
 #| msgid "The valid values for ACTION are:\n"
 msgid "invalid value for home page"
 msgstr "Les valeurs possibles pour ACTION sont: \n"
 
-#: guix/scripts/lint.scm:410
+#: guix/scripts/lint.scm:448
 #, fuzzy, scheme-format
 #| msgid ""
 #| "\n"
@@ -1566,106 +1651,106 @@ msgstr ""
 "\n"
 "~a page d'accueil: <~a>"
 
-#: guix/scripts/lint.scm:430
+#: guix/scripts/lint.scm:468
 msgid "file names of patches should start with the package name"
 msgstr ""
 
-#: guix/scripts/lint.scm:467
+#: guix/scripts/lint.scm:507
 #, scheme-format
 msgid "~a: ~a: proposed synopsis: ~s~%"
 msgstr ""
 
-#: guix/scripts/lint.scm:479
+#: guix/scripts/lint.scm:520
 #, scheme-format
 msgid "~a: ~a: proposed description:~%     \"~a\"~%"
 msgstr ""
 
-#: guix/scripts/lint.scm:516
+#: guix/scripts/lint.scm:557
 msgid "all the source URIs are unreachable:"
 msgstr ""
 
-#: guix/scripts/lint.scm:539
+#: guix/scripts/lint.scm:580
 msgid "the source file name should contain the package name"
 msgstr ""
 
-#: guix/scripts/lint.scm:548 guix/scripts/lint.scm:552
+#: guix/scripts/lint.scm:589 guix/scripts/lint.scm:593
 #, fuzzy, scheme-format
 #| msgid "failed to create GC root `~a': ~a~%"
 msgid "failed to create derivation: ~a"
 msgstr "impossible de créer la racine du GC \"~a\": ~a~%"
 
-#: guix/scripts/lint.scm:566
+#: guix/scripts/lint.scm:607
 #, fuzzy, scheme-format
 #| msgid "failed to read expression ~s: ~s~%"
 msgid "failed to create derivation: ~s~%"
 msgstr "impossible de lire l'expression ~s: ~s~%"
 
-#: guix/scripts/lint.scm:576
+#: guix/scripts/lint.scm:617
 msgid "invalid license field"
 msgstr ""
 
-#: guix/scripts/lint.scm:602
+#: guix/scripts/lint.scm:634
 #, scheme-format
 msgid "failed to retrieve CVE vulnerabilities from ~s: ~a (~s)~%"
 msgstr ""
 
-#: guix/scripts/lint.scm:607 guix/scripts/lint.scm:615
+#: guix/scripts/lint.scm:639 guix/scripts/lint.scm:647
 #, scheme-format
 msgid "assuming no CVE vulnerabilities~%"
 msgstr ""
 
-#: guix/scripts/lint.scm:613
+#: guix/scripts/lint.scm:645
 #, fuzzy, scheme-format
 #| msgid "failed to install locale: ~a~%"
 msgid "failed to lookup NIST host: ~a~%"
 msgstr "impossible d'installer la locale: ~a~%"
 
-#: guix/scripts/lint.scm:644
+#: guix/scripts/lint.scm:683
 #, scheme-format
 msgid "probably vulnerable to ~a"
 msgstr ""
 
-#: guix/scripts/lint.scm:659
+#: guix/scripts/lint.scm:698
 #, scheme-format
 msgid "tabulation on line ~a, column ~a"
 msgstr ""
 
-#: guix/scripts/lint.scm:668
+#: guix/scripts/lint.scm:707
 #, scheme-format
 msgid "trailing white space on line ~a"
 msgstr ""
 
-#: guix/scripts/lint.scm:678
+#: guix/scripts/lint.scm:717
 #, scheme-format
 msgid "line ~a is way too long (~a characters)"
 msgstr ""
 
-#: guix/scripts/lint.scm:689
+#: guix/scripts/lint.scm:728
 #, scheme-format
 msgid "line ~a: parentheses feel lonely, move to the previous or next line"
 msgstr ""
 
-#: guix/scripts/lint.scm:744
+#: guix/scripts/lint.scm:783
 msgid "Validate package descriptions"
 msgstr "Validers des descriptions de paquets"
 
-#: guix/scripts/lint.scm:748
+#: guix/scripts/lint.scm:787
 #, fuzzy
 #| msgid "Validate package descriptions"
 msgid "Validate synopsis & description of GNU packages"
 msgstr "Validers des descriptions de paquets"
 
-#: guix/scripts/lint.scm:752
+#: guix/scripts/lint.scm:791
 msgid "Identify inputs that should be native inputs"
 msgstr "Identifier les entrées qui devraient être natives"
 
-#: guix/scripts/lint.scm:756
+#: guix/scripts/lint.scm:795
 #, fuzzy
 #| msgid "Validate filenames of patches"
 msgid "Validate file names and availability of patches"
 msgstr "Valider les noms de patches"
 
-#: guix/scripts/lint.scm:760
+#: guix/scripts/lint.scm:799
 #, fuzzy
 #| msgid "Validate package synopsis"
 msgid "Validate home-page URLs"
@@ -1673,39 +1758,39 @@ msgstr "Valider les synopsis de paquets"
 
 #. TRANSLATORS: <license> is the name of a data type and must not be
 #. translated.
-#: guix/scripts/lint.scm:766
+#: guix/scripts/lint.scm:805
 msgid "Make sure the 'license' field is a <license> or a list thereof"
 msgstr ""
 
-#: guix/scripts/lint.scm:771
+#: guix/scripts/lint.scm:810
 msgid "Validate source URLs"
 msgstr ""
 
-#: guix/scripts/lint.scm:775
+#: guix/scripts/lint.scm:814
 #, fuzzy
 #| msgid "Validate filenames of patches"
 msgid "Validate file names of sources"
 msgstr "Valider les noms de patches"
 
-#: guix/scripts/lint.scm:779
+#: guix/scripts/lint.scm:818
 msgid "Report failure to compile a package to a derivation"
 msgstr ""
 
-#: guix/scripts/lint.scm:783
+#: guix/scripts/lint.scm:822
 #, fuzzy
 #| msgid "Validate package synopsis"
 msgid "Validate package synopses"
 msgstr "Valider les synopsis de paquets"
 
-#: guix/scripts/lint.scm:787
+#: guix/scripts/lint.scm:826
 msgid "Check the Common Vulnerabilities and Exposures (CVE) database"
 msgstr ""
 
-#: guix/scripts/lint.scm:792
+#: guix/scripts/lint.scm:831
 msgid "Look for formatting issues in the source"
 msgstr ""
 
-#: guix/scripts/lint.scm:817
+#: guix/scripts/lint.scm:859
 #, fuzzy
 #| msgid ""
 #| "Usage: guix lint [OPTION]... [PACKAGE]...\n"
@@ -1718,7 +1803,7 @@ msgstr ""
 "Usage: guix lint [OPTION]... [PAQUET]...\n"
 "Lancer un ensemble de vérificateurs sur le paquet spécifié; si aucun n'est spécifié, lancer les vérificateurs sur tous les paquets.\n"
 
-#: guix/scripts/lint.scm:820
+#: guix/scripts/lint.scm:862
 #, fuzzy
 #| msgid ""
 #| "\n"
@@ -1733,7 +1818,7 @@ msgstr ""
 "  -c, --checkers=CHECKER1,CHECKER2...\n"
 "                         lancer uniquement les vérificateurs spécifiés"
 
-#: guix/scripts/lint.scm:825
+#: guix/scripts/lint.scm:867
 msgid ""
 "\n"
 "  -l, --list-checkers    display the list of available lint checkers"
@@ -1741,26 +1826,26 @@ msgstr ""
 "\n"
 "  -l, --list-checkers    affiche la liste des vérificateurs disponibles"
 
-#: guix/scripts/lint.scm:845
+#: guix/scripts/lint.scm:887
 #, fuzzy, scheme-format
 #| msgid "~a: invalid checker"
 msgid "~a: invalid checker~%"
 msgstr "~a: vérificateur non valide"
 
-#: guix/scripts/publish.scm:52
+#: guix/scripts/publish.scm:57
 #, scheme-format
 msgid ""
 "Usage: guix publish [OPTION]...\n"
 "Publish ~a over HTTP.\n"
 msgstr ""
 
-#: guix/scripts/publish.scm:54
+#: guix/scripts/publish.scm:59
 msgid ""
 "\n"
 "  -p, --port=PORT        listen on PORT"
 msgstr ""
 
-#: guix/scripts/publish.scm:56
+#: guix/scripts/publish.scm:61
 #, fuzzy
 #| msgid ""
 #| "\n"
@@ -1772,40 +1857,72 @@ msgstr ""
 "\n"
 "      --references       lister les références de CHEMINS"
 
-#: guix/scripts/publish.scm:58
+#: guix/scripts/publish.scm:63
 msgid ""
 "\n"
 "  -u, --user=USER        change privileges to USER as soon as possible"
 msgstr ""
 
-#: guix/scripts/publish.scm:60
+#: guix/scripts/publish.scm:65
+#, fuzzy
+#| msgid ""
+#| "\n"
+#| "  -I, --list-installed[=REGEXP]\n"
+#| "                         list installed packages matching REGEXP"
+msgid ""
+"\n"
+"  -C, --compression[=LEVEL]\n"
+"                         compress archives at LEVEL"
+msgstr ""
+"\n"
+"  -I, --list-installed[=REGEXP]\n"
+"                         lister les paquets installés correspondant à REGEXP"
+
+#: guix/scripts/publish.scm:68
+msgid ""
+"\n"
+"      --ttl=TTL          announce narinfos can be cached for TTL seconds"
+msgstr ""
+
+#: guix/scripts/publish.scm:70
 msgid ""
 "\n"
 "  -r, --repl[=PORT]      spawn REPL server on PORT"
 msgstr ""
 
-#: guix/scripts/publish.scm:76
+#: guix/scripts/publish.scm:86
 #, fuzzy, scheme-format
 #| msgid "download from '~a' failed: ~a, ~s~%"
 msgid "lookup of host '~a' failed: ~a~%"
 msgstr "le téléchargement depuis '~a' a échoué: ~a, ~s~%"
 
-#: guix/scripts/publish.scm:100
+#: guix/scripts/publish.scm:124
 #, scheme-format
 msgid "lookup of host '~a' returned nothing"
 msgstr ""
 
-#: guix/scripts/publish.scm:342
+#: guix/scripts/publish.scm:137
+#, scheme-format
+msgid "zlib support is missing; compression disabled~%"
+msgstr ""
+
+#: guix/scripts/publish.scm:144
+#, fuzzy, scheme-format
+#| msgid "~a: invalid number~%"
+msgid "~a: invalid duration~%"
+msgstr "~a: nombre non valide~%"
+
+#: guix/scripts/publish.scm:537
 #, scheme-format
 msgid "user '~a' not found: ~a~%"
 msgstr ""
 
-#: guix/scripts/publish.scm:377
+#: guix/scripts/publish.scm:574
 #, scheme-format
 msgid "server running as root; consider using the '--user' option!~%"
 msgstr ""
 
-#: guix/scripts/publish.scm:379
+#: guix/scripts/publish.scm:576
 #, scheme-format
 msgid "publishing ~a on ~a, port ~d~%"
 msgstr ""
@@ -1832,31 +1949,36 @@ msgstr ""
 msgid "failed to launch '~a': ~a~%"
 msgstr "impossible de se connecter à \"~a\": ~a~%"
 
-#: guix/scripts/size.scm:75
+#: guix/scripts/size.scm:76
 #, scheme-format
 msgid "no available substitute information for '~a'~%"
 msgstr ""
 
-#: guix/scripts/size.scm:83
+#: guix/scripts/size.scm:84
 msgid "store item"
 msgstr ""
 
-#: guix/scripts/size.scm:83
+#: guix/scripts/size.scm:84
 msgid "total"
 msgstr ""
 
-#: guix/scripts/size.scm:83
+#: guix/scripts/size.scm:84
 msgid "self"
 msgstr ""
 
+#: guix/scripts/size.scm:95
+#, scheme-format
+msgid "total: ~,1f MiB~%"
+msgstr ""
+
 #. TRANSLATORS: This is the title of a graph, meaning that the graph
 #. represents a profile of the store (the "store" being the place where
 #. packages are stored.)
-#: guix/scripts/size.scm:204
+#: guix/scripts/size.scm:206
 msgid "store profile"
 msgstr ""
 
-#: guix/scripts/size.scm:213
+#: guix/scripts/size.scm:215
 #, fuzzy
 #| msgid ""
 #| "Usage: guix package [OPTION]... PACKAGES...\n"
@@ -1868,7 +1990,7 @@ msgstr ""
 "Usage: guix package [OPTION]... PAQUETS...\n"
 "Installer, supprimer ou mettre à jour les PAQUETS spécifiés en une seule transaction.\n"
 
-#: guix/scripts/size.scm:218
+#: guix/scripts/size.scm:220
 #, fuzzy
 #| msgid ""
 #| "\n"
@@ -1880,58 +2002,67 @@ msgstr ""
 "\n"
 "  -s, --system=SYSTEME    essayer de compiler pour le SYSTEME donné, par exemple \"i686-linux\""
 
-#: guix/scripts/size.scm:220
+#: guix/scripts/size.scm:222
 msgid ""
 "\n"
 "  -m, --map-file=FILE    write to FILE a graphical map of disk usage"
 msgstr ""
 
-#: guix/scripts/size.scm:274
+#: guix/scripts/size.scm:276
 msgid "missing store item argument\n"
 msgstr ""
 
-#: guix/scripts/size.scm:292
-#, fuzzy
-#| msgid "wrong arguments"
-msgid "too many arguments\n"
-msgstr "arguments non valides"
+#: guix/scripts/graph.scm:82
+#, scheme-format
+msgid "~a: invalid argument (package name expected)"
+msgstr ""
 
-#: guix/scripts/graph.scm:77
+#: guix/scripts/graph.scm:93
 msgid "the DAG of packages, excluding implicit inputs"
 msgstr ""
 
-#: guix/scripts/graph.scm:133
+#: guix/scripts/graph.scm:150
 msgid "the DAG of packages, including implicit inputs"
 msgstr ""
 
-#: guix/scripts/graph.scm:142
+#: guix/scripts/graph.scm:160
 msgid "the DAG of packages and origins, including implicit inputs"
 msgstr ""
 
-#: guix/scripts/graph.scm:172
+#: guix/scripts/graph.scm:191
 msgid "same as 'bag', but without the bootstrap nodes"
 msgstr ""
 
-#: guix/scripts/graph.scm:217
+#: guix/scripts/graph.scm:237
 msgid "the DAG of derivations"
 msgstr ""
 
-#: guix/scripts/graph.scm:241
+#: guix/scripts/graph.scm:249
+#, fuzzy
+#| msgid "unsupported signature version: ~a~%"
+msgid "unsupported argument for derivation graph"
+msgstr "version de signature non supportée: ~a~%"
+
+#: guix/scripts/graph.scm:270
 #, scheme-format
 msgid "references for '~a' are not known~%"
 msgstr ""
 
-#: guix/scripts/graph.scm:248
+#: guix/scripts/graph.scm:277
 msgid "the DAG of run-time dependencies (store references)"
 msgstr ""
 
-#: guix/scripts/graph.scm:278
+#: guix/scripts/graph.scm:290
+msgid "unsupported argument for reference graph"
+msgstr ""
+
+#: guix/scripts/graph.scm:315
 #, fuzzy, scheme-format
 #| msgid "~a: unknown action~%"
 msgid "~a: unknown node type~%"
 msgstr "~a: action inconnue~%"
 
-#: guix/scripts/graph.scm:282
+#: guix/scripts/graph.scm:319
 #, fuzzy
 #| msgid "The valid values for ACTION are:\n"
 msgid "The available node types are:\n"
@@ -1939,19 +2070,19 @@ msgstr "Les valeurs possibles pour ACTION sont: \n"
 
 #. TRANSLATORS: Here 'dot' is the name of a program; it must not be
 #. translated.
-#: guix/scripts/graph.scm:318
+#: guix/scripts/graph.scm:355
 msgid ""
 "Usage: guix graph PACKAGE...\n"
 "Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n"
 msgstr ""
 
-#: guix/scripts/graph.scm:320
+#: guix/scripts/graph.scm:357
 msgid ""
 "\n"
 "  -t, --type=TYPE        represent nodes of the given TYPE"
 msgstr ""
 
-#: guix/scripts/graph.scm:322
+#: guix/scripts/graph.scm:359
 #, fuzzy
 #| msgid ""
 #| "\n"
@@ -1963,7 +2094,7 @@ msgstr ""
 "\n"
 "      --list-dead        lister les chemins non valides"
 
-#: guix/scripts/graph.scm:324
+#: guix/scripts/graph.scm:361
 #, fuzzy
 #| msgid ""
 #| "\n"
@@ -1975,53 +2106,53 @@ msgstr ""
 "\n"
 "  -e, --expression=EXPR  compiler le paquet ou la dérivation évalué par EXPR"
 
-#: guix/scripts/challenge.scm:104
+#: guix/scripts/challenge.scm:105
 #, fuzzy, scheme-format
 #| msgid "substitute at '~a' lacks a signature~%"
 msgid "~a: no substitute at '~a'~%"
 msgstr "le substitut à \"~a\" requiert une signature~%"
 
-#: guix/scripts/challenge.scm:120
+#: guix/scripts/challenge.scm:121
 #, fuzzy, scheme-format
 #| msgid "invalid signature for '~a'~%"
 msgid "no substitutes for '~a'~%"
 msgstr "signature non valide pour \"~a\"~%"
 
-#: guix/scripts/challenge.scm:137 guix/scripts/challenge.scm:157
+#: guix/scripts/challenge.scm:138 guix/scripts/challenge.scm:158
 #, fuzzy, scheme-format
 #| msgid "no build log for '~a'~%"
 msgid "no local build for '~a'~%"
 msgstr "aucun journal de compilation pour \"~a\"~%"
 
-#: guix/scripts/challenge.scm:154
+#: guix/scripts/challenge.scm:155
 #, scheme-format
 msgid "~a contents differ:~%"
 msgstr ""
 
-#: guix/scripts/challenge.scm:156
+#: guix/scripts/challenge.scm:157
 #, fuzzy, scheme-format
 #| msgid "~a: ~a: ~a~%"
 msgid "  local hash: ~a~%"
 msgstr "~a: ~a: ~a~%"
 
-#: guix/scripts/challenge.scm:161
+#: guix/scripts/challenge.scm:162
 #, fuzzy, scheme-format
 #| msgid "~a: ~a~%"
 msgid "  ~50a: ~a~%"
 msgstr "~a: ~a~%"
 
-#: guix/scripts/challenge.scm:165
+#: guix/scripts/challenge.scm:166
 #, scheme-format
 msgid "  ~50a: unavailable~%"
 msgstr ""
 
-#: guix/scripts/challenge.scm:175
+#: guix/scripts/challenge.scm:176
 msgid ""
 "Usage: guix challenge [PACKAGE...]\n"
 "Challenge the substitutes for PACKAGE... provided by one or more servers.\n"
 msgstr ""
 
-#: guix/scripts/challenge.scm:177
+#: guix/scripts/challenge.scm:178
 #, fuzzy
 #| msgid ""
 #| "\n"
@@ -2036,15 +2167,15 @@ msgstr ""
 "      --max-silent-time=N\n"
 "                         marquer la compilation comme ayant échouée après N secondes de silence"
 
-#: guix/gnu-maintenance.scm:542
+#: guix/gnu-maintenance.scm:532
 msgid "Updater for GNU packages"
 msgstr ""
 
-#: guix/gnu-maintenance.scm:549
+#: guix/gnu-maintenance.scm:539
 msgid "Updater for GNOME packages"
 msgstr ""
 
-#: guix/gnu-maintenance.scm:556
+#: guix/gnu-maintenance.scm:546
 msgid "Updater for X.org packages"
 msgstr ""
 
@@ -2103,75 +2234,75 @@ msgstr ""
 msgid "exec failed with status ~d~%"
 msgstr ""
 
-#: guix/upstream.scm:158
+#: guix/upstream.scm:157
 #, scheme-format
 msgid "signature verification failed for `~a'~%"
 msgstr "la vérification de la signature a échoué pour \"~a\"~%"
 
-#: guix/upstream.scm:160
+#: guix/upstream.scm:159
 #, scheme-format
 msgid "(could be because the public key is not in your keyring)~%"
 msgstr "(il est possible que la clé publique ne soit pas dans dans votre trousseau)~%"
 
-#: guix/upstream.scm:192
+#: guix/upstream.scm:191
 msgid "gz"
 msgstr ""
 
-#: guix/upstream.scm:255
+#: guix/upstream.scm:234
 #, scheme-format
 msgid "~a: could not locate source file"
 msgstr "~a: le fichier source est introuvable"
 
-#: guix/upstream.scm:260
+#: guix/upstream.scm:239
 #, scheme-format
 msgid "~a: ~a: no `version' field in source; skipping~%"
 msgstr "~a: ~a: aucun champ \"version\" dans la source; ignoré~%"
 
-#: guix/ui.scm:236
+#: guix/ui.scm:238
 msgid "entering debugger; type ',bt' for a backtrace\n"
 msgstr ""
 
-#: guix/ui.scm:252 guix/ui.scm:269
+#: guix/ui.scm:254 guix/ui.scm:271
 #, fuzzy, scheme-format
 #| msgid "failed to connect to `~a': ~a~%"
 msgid "failed to load '~a': ~a~%"
 msgstr "impossible de se connecter à \"~a\": ~a~%"
 
-#: guix/ui.scm:255
+#: guix/ui.scm:257
 #, fuzzy, scheme-format
 #| msgid "~a: ~a: ~a~%"
 msgid "~a: error: ~a~%"
 msgstr "~a: ~a: ~a~%"
 
-#: guix/ui.scm:258 guix/ui.scm:512
+#: guix/ui.scm:260 guix/ui.scm:529
 #, scheme-format
 msgid "exception thrown: ~s~%"
 msgstr ""
 
-#: guix/ui.scm:260 guix/ui.scm:278
+#: guix/ui.scm:262 guix/ui.scm:280
 #, fuzzy, scheme-format
 #| msgid "failed to install locale: ~a~%"
 msgid "failed to load '~a':~%"
 msgstr "impossible d'installer la locale: ~a~%"
 
-#: guix/ui.scm:272
+#: guix/ui.scm:274
 #, fuzzy, scheme-format
 #| msgid "~a: ~a: ~a~%"
 msgid "~a: warning: ~a~%"
 msgstr "~a: ~a: ~a~%"
 
-#: guix/ui.scm:275
+#: guix/ui.scm:277
 #, fuzzy, scheme-format
 #| msgid "failed to read expression ~s: ~s~%"
 msgid "failed to load '~a': exception thrown: ~s~%"
 msgstr "impossible de lire l'expression ~s: ~s~%"
 
-#: guix/ui.scm:287
+#: guix/ui.scm:289
 #, scheme-format
 msgid "failed to install locale: ~a~%"
 msgstr "impossible d'installer la locale: ~a~%"
 
-#: guix/ui.scm:306
+#: guix/ui.scm:308
 #, fuzzy
 #| msgid ""
 #| "Copyright (C) 2014 the Guix authors\n"
@@ -2189,7 +2320,11 @@ msgstr ""
 "Ceci est un logiciel libre: vous êtes libre de le modifier et de le redistribuer.\n"
 "Il n'y a AUCUNE GARANTIE, dans la limite de ce qui est autorisé par la loi.\n"
 
-#: guix/ui.scm:314
+#. TRANSLATORS: The placeholder indicates the bug-reporting address for this
+#. package.  Please add another line saying "Report translation bugs to
+#. ...\n" with the address for translation bugs (typically your translation
+#. team's web or email address).
+#: guix/ui.scm:320
 #, scheme-format
 msgid ""
 "\n"
@@ -2198,7 +2333,7 @@ msgstr ""
 "\n"
 "Signalez toute anomalie à : ~a."
 
-#: guix/ui.scm:316
+#: guix/ui.scm:322
 #, scheme-format
 msgid ""
 "\n"
@@ -2207,7 +2342,7 @@ msgstr ""
 "\n"
 "~a page d'accueil: <~a>"
 
-#: guix/ui.scm:318
+#: guix/ui.scm:324
 msgid ""
 "\n"
 "General help using GNU software: <http://www.gnu.org/gethelp/>"
@@ -2215,143 +2350,148 @@ msgstr ""
 "\n"
 "Aide générale sur l'utilisation des logiciels GNU: <http://www.gnu.org/gethelp/>"
 
-#: guix/ui.scm:363
+#: guix/ui.scm:369
 #, fuzzy, scheme-format
 #| msgid "signature is not a valid s-expression: ~s~%"
 msgid "'~a' is not a valid regular expression: ~a~%"
 msgstr "la signature n'est pas une s-expression valide: ~s~%"
 
-#: guix/ui.scm:369
+#: guix/ui.scm:375
 #, scheme-format
 msgid "~a: invalid number~%"
 msgstr "~a: nombre non valide~%"
 
-#: guix/ui.scm:386
+#: guix/ui.scm:392
 #, scheme-format
 msgid "invalid number: ~a~%"
 msgstr "nombre non valide: ~a~%"
 
-#: guix/ui.scm:409
+#: guix/ui.scm:415
 #, scheme-format
 msgid "unknown unit: ~a~%"
 msgstr "unité inconnue: ~a~%"
 
-#: guix/ui.scm:420
+#: guix/ui.scm:432
 #, scheme-format
 msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%"
 msgstr "~a:~a:~a: le paquet \"~a\" a une entrée non valide: ~s~%"
 
-#: guix/ui.scm:427
+#: guix/ui.scm:439
 #, scheme-format
 msgid "~a: ~a: build system `~a' does not support cross builds~%"
 msgstr "~a: ~a: le système de compilation \"~a\" ne supporte pas la compilation croisée~%"
 
-#: guix/ui.scm:432
+#: guix/ui.scm:444
 #, scheme-format
 msgid "profile '~a' does not exist~%"
 msgstr "le profile \"~a\" n'existe pas~%"
 
-#: guix/ui.scm:435
+#: guix/ui.scm:447
 #, scheme-format
 msgid "generation ~a of profile '~a' does not exist~%"
 msgstr "la génération ~a du profile \"~a\" n'existe pas~%"
 
-#: guix/ui.scm:442
+#: guix/ui.scm:454
 #, scheme-format
 msgid "corrupt input while restoring '~a' from ~s~%"
 msgstr ""
 
-#: guix/ui.scm:444
+#: guix/ui.scm:456
 #, fuzzy, scheme-format
 #| msgid "corrupt file set archive"
 msgid "corrupt input while restoring archive from ~s~%"
 msgstr "archive corrompue"
 
-#: guix/ui.scm:447
+#: guix/ui.scm:459
 #, scheme-format
 msgid "failed to connect to `~a': ~a~%"
 msgstr "impossible de se connecter à \"~a\": ~a~%"
 
-#: guix/ui.scm:452
+#: guix/ui.scm:464
 #, scheme-format
 msgid "build failed: ~a~%"
 msgstr "la compilation a échoué: ~a~%"
 
-#: guix/ui.scm:455
+#: guix/ui.scm:467
 #, scheme-format
 msgid "reference to invalid output '~a' of derivation '~a'~%"
 msgstr ""
 
-#: guix/ui.scm:466
+#: guix/ui.scm:471
+#, scheme-format
+msgid "file '~a' could not be found in these directories:~{ ~a~}~%"
+msgstr ""
+
+#: guix/ui.scm:483
 #, scheme-format
 msgid "~a: ~a~%"
 msgstr "~a: ~a~%"
 
-#: guix/ui.scm:501
+#: guix/ui.scm:518
 #, scheme-format
 msgid "failed to read expression ~s: ~s~%"
 msgstr "impossible de lire l'expression ~s: ~s~%"
 
-#: guix/ui.scm:507
+#: guix/ui.scm:524
 #, fuzzy, scheme-format
 #| msgid "failed to evaluate expression `~a': ~s~%"
 msgid "failed to evaluate expression '~a':~%"
 msgstr "impossible d'évaluer l'expression `~a': ~s~%"
 
-#: guix/ui.scm:510
+#: guix/ui.scm:527
 #, fuzzy, scheme-format
 #| msgid "host name lookup error: ~a~%"
 msgid "syntax error: ~a~%"
 msgstr "erreur lors de la consultation du nom d'hôte: ~a~%"
 
-#: guix/ui.scm:524
+#: guix/ui.scm:541
 #, scheme-format
 msgid "expression ~s does not evaluate to a package~%"
 msgstr "l'expression ~s ne correspond à aucun paquet~%"
 
-#: guix/ui.scm:586
+#: guix/ui.scm:603
 #, scheme-format
 msgid "~:[The following derivation would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations would be built:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[La dérivation suivante serait compilée:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les dérivations suivantes seraient compilées:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:591
+#: guix/ui.scm:608
 #, scheme-format
 msgid "~:[The following file would be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Le fichier suivant serait téléchargé:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les fichiers suivants seraient téléchargés:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:597
+#: guix/ui.scm:614
 #, scheme-format
 msgid "~:[The following derivation will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations will be built:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[La dérivation suivante sera compilée:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les dérivations suivantes seront compilées:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:602
+#: guix/ui.scm:619
 #, scheme-format
 msgid "~:[The following file will be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Le fichier suivant sera téléchargé:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les fichiers suivants seront téléchargés:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:657
+#: guix/ui.scm:674
 #, scheme-format
 msgid "The following package would be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be removed:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant serait supprimé:~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seraient supprimés:~%~{~a~%~}~%"
 
-#: guix/ui.scm:662
+#: guix/ui.scm:679
 #, scheme-format
 msgid "The following package will be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be removed:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant sera supprimé:~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seront supprimés:~%~{~a~%~}~%"
 
-#: guix/ui.scm:675
+#: guix/ui.scm:692
 #, fuzzy, scheme-format
 #| msgid "The following package would be upgraded:~%~{~a~%~}~%"
 #| msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%"
@@ -2360,7 +2500,7 @@ msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant serait mis à jour:~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seraient mis à jour:~%~{~a~%~}~%"
 
-#: guix/ui.scm:680
+#: guix/ui.scm:697
 #, fuzzy, scheme-format
 #| msgid "The following package will be upgraded:~%~{~a~%~}~%"
 #| msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
@@ -2369,74 +2509,77 @@ msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant sera mis à jour:~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seront mis à jour:~%~{~a~%~}~%"
 
-#: guix/ui.scm:693
+#: guix/ui.scm:710
 #, scheme-format
 msgid "The following package would be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant serait mis à jour:~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seraient mis à jour:~%~{~a~%~}~%"
 
-#: guix/ui.scm:698
+#: guix/ui.scm:715
 #, scheme-format
 msgid "The following package will be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant sera mis à jour:~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seront mis à jour:~%~{~a~%~}~%"
 
-#: guix/ui.scm:709
+#: guix/ui.scm:726
 #, scheme-format
 msgid "The following package would be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be installed:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant serait installé:~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seraient installés:~%~{~a~%~}~%"
 
-#: guix/ui.scm:714
+#: guix/ui.scm:731
 #, scheme-format
 msgid "The following package will be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be installed:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant sera installé:~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seront installés:~%~{~a~%~}~%"
 
-#: guix/ui.scm:731
+#: guix/ui.scm:748
 msgid "<unknown location>"
 msgstr "<emplacement inconnu>"
 
-#: guix/ui.scm:750
+#: guix/ui.scm:767
 #, scheme-format
 msgid "failed to create configuration directory `~a': ~a~%"
 msgstr "impossible de créer le répertoire de configuration \"~a\": ~a~%"
 
-#: guix/ui.scm:869 guix/ui.scm:883
+#: guix/ui.scm:890 guix/ui.scm:904
 msgid "unknown"
 msgstr "inconnu"
 
-#: guix/ui.scm:1033
+#: guix/ui.scm:1062
 #, scheme-format
 msgid "Generation ~a\t~a"
 msgstr "Génération ~a\t~a"
 
-#: guix/ui.scm:1040
+#. TRANSLATORS: The word "current" here is an adjective for
+#. "Generation", as in "current generation".  Use the appropriate
+#. gender where applicable.
+#: guix/ui.scm:1072
 #, scheme-format
 msgid "~a\t(current)~%"
 msgstr "~a\t(actuel)~%"
 
-#: guix/ui.scm:1057
+#: guix/ui.scm:1089
 #, fuzzy, scheme-format
 #| msgid "switching from generation ~a to ~a~%"
 msgid "switched from generation ~a to ~a~%"
 msgstr "passage de la génération ~a à ~a~%"
 
-#: guix/ui.scm:1073
+#: guix/ui.scm:1105
 #, scheme-format
 msgid "deleting ~a~%"
 msgstr "suppression de ~a~%"
 
-#: guix/ui.scm:1121
+#: guix/ui.scm:1153
 #, scheme-format
 msgid "Try `guix --help' for more information.~%"
 msgstr "Essayez \"guix --help\" pour plus d'informations.~%"
 
-#: guix/ui.scm:1148
+#: guix/ui.scm:1180
 msgid ""
 "Usage: guix COMMAND ARGS...\n"
 "Run COMMAND with ARGS.\n"
@@ -2444,31 +2587,31 @@ msgstr ""
 "Usage: guix COMMANDE ARGS...\n"
 "Lance la COMMANDE avec les arguments ARGS.\n"
 
-#: guix/ui.scm:1151
+#: guix/ui.scm:1183
 msgid "COMMAND must be one of the sub-commands listed below:\n"
 msgstr "COMMANDE doit être une des sous-commandes listées ci-dessous:\n"
 
-#: guix/ui.scm:1171
+#: guix/ui.scm:1203
 #, scheme-format
 msgid "guix: ~a: command not found~%"
 msgstr "guix: ~a: commande introuvable~%"
 
-#: guix/ui.scm:1188
+#: guix/ui.scm:1220
 #, scheme-format
 msgid "guix: missing command name~%"
 msgstr "guix: nom de commande manquant~%"
 
-#: guix/ui.scm:1196
+#: guix/ui.scm:1228
 #, scheme-format
 msgid "guix: unrecognized option '~a'~%"
 msgstr "guix: option \"~a\" non reconnue ~%"
 
-#: guix/http-client.scm:261
+#: guix/http-client.scm:266
 #, scheme-format
 msgid "following redirection to `~a'...~%"
 msgstr "redirection vers \"~a\"...~%"
 
-#: guix/http-client.scm:270
+#: guix/http-client.scm:275
 msgid "download failed"
 msgstr "le téléchargement a échoué"
 
@@ -2642,6 +2785,11 @@ msgstr ""
 msgid "warning: daemon is running as root, so using `--build-users-group' is highly recommended\n"
 msgstr ""
 
+#, fuzzy
+#~| msgid "wrong arguments"
+#~ msgid "too many arguments\n"
+#~ msgstr "arguments non valides"
+
 #~ msgid "looking for the latest release of GNU ~a..."
 #~ msgstr "recherche de la dernière version de GNU ~a..."
 
@@ -2660,9 +2808,6 @@ msgstr ""
 #~ msgid "nothing to do: already at the empty profile~%"
 #~ msgstr "aucune action à faire: profil courant vide"
 
-#~ msgid "Downloading, please wait...~%"
-#~ msgstr "Téléchargement en cours..."
-
 #~ msgid "(Please consider upgrading Guile to get proper progress report.)~%"
 #~ msgstr "(Veuillez mettre Guile à jour pour obtenir le rapport de progression approprié.)~%"