summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/admin.scm6
-rw-r--r--gnu/packages/algebra.scm37
-rw-r--r--gnu/packages/benchmark.scm4
-rw-r--r--gnu/packages/bioinformatics.scm2
-rw-r--r--gnu/packages/certs.scm4
-rw-r--r--gnu/packages/databases.scm38
-rw-r--r--gnu/packages/datastructures.scm2
-rw-r--r--gnu/packages/dns.scm8
-rw-r--r--gnu/packages/emacs.scm138
-rw-r--r--gnu/packages/game-development.scm15
-rw-r--r--gnu/packages/games.scm12
-rw-r--r--gnu/packages/gnome.scm103
-rw-r--r--gnu/packages/gnuzilla.scm10
-rw-r--r--gnu/packages/golang.scm15
-rw-r--r--gnu/packages/gtk.scm42
-rw-r--r--gnu/packages/guile.scm10
-rw-r--r--gnu/packages/icu4c.scm11
-rw-r--r--gnu/packages/idris.scm10
-rw-r--r--gnu/packages/kde-frameworks.scm4
-rw-r--r--gnu/packages/kodi.scm10
-rw-r--r--gnu/packages/libevent.scm2
-rw-r--r--gnu/packages/linux.scm95
-rw-r--r--gnu/packages/machine-learning.scm2
-rw-r--r--gnu/packages/mail.scm15
-rw-r--r--gnu/packages/mate.scm9
-rw-r--r--gnu/packages/maths.scm2
-rw-r--r--gnu/packages/music.scm2
-rw-r--r--gnu/packages/networking.scm11
-rw-r--r--gnu/packages/node.scm8
-rw-r--r--gnu/packages/package-management.scm5
-rw-r--r--gnu/packages/patches/ceph-disable-unittest-throttle.patch52
-rw-r--r--gnu/packages/patches/icu4c-reset-keyword-list-iterator.patch130
-rw-r--r--gnu/packages/patches/mupdf-CVE-2017-5896.patch63
-rw-r--r--gnu/packages/patches/mupdf-CVE-2017-5991.patch101
-rw-r--r--gnu/packages/patches/mupdf-build-with-openjpeg-2.1.patch16
-rw-r--r--gnu/packages/patches/mupdf-mujs-CVE-2016-10132.patch188
-rw-r--r--gnu/packages/patches/mupdf-mujs-CVE-2016-10133.patch36
-rw-r--r--gnu/packages/pdf.scm10
-rw-r--r--gnu/packages/perl.scm6
-rw-r--r--gnu/packages/plotutils.scm6
-rw-r--r--gnu/packages/pulseaudio.scm36
-rw-r--r--gnu/packages/python.scm8
-rw-r--r--gnu/packages/samba.scm4
-rw-r--r--gnu/packages/scheme.scm4
-rw-r--r--gnu/packages/serialization.scm4
-rw-r--r--gnu/packages/speech.scm7
-rw-r--r--gnu/packages/storage.scm1
-rw-r--r--gnu/packages/terminals.scm2
-rw-r--r--gnu/packages/text-editors.scm7
-rw-r--r--gnu/packages/video.scm111
-rw-r--r--gnu/packages/vim.scm6
-rw-r--r--gnu/packages/xorg.scm6
52 files changed, 838 insertions, 598 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 7404e5bd15..4daaddcfec 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -1694,7 +1694,7 @@ throughput (in the same interval).")
 (define-public thefuck
   (package
     (name "thefuck")
-    (version "3.15")
+    (version "3.16")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/nvbn/thefuck/archive/"
@@ -1702,7 +1702,7 @@ throughput (in the same interval).")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1vxas21h5mf41cb6y7f7x07858ags7qg45lkf74rc0slqbic3l1h"))
+                "0jrhfxmj2asx4jdix9ks3fpl364ph8w9prhwpk4488aj1a0q4rak"))
               (patches (search-patches "thefuck-test-environ.patch"))))
     (build-system python-build-system)
     (arguments
@@ -1763,7 +1763,7 @@ a new command using the matched rule, and runs it.")
      "'di' is a disk information utility, displaying everything
 (and more) that your @code{df} command does.  It features the ability to
 display your disk usage in whatever format you prefer.  It is designed to be
-highly portable.  Great for heterogenous networks.")
+highly portable.  Great for heterogeneous networks.")
     (license license:zlib)))
 
 (define-public cbatticon
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index ab73a6e2e5..db1344f34b 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -1,10 +1,11 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2013, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2016, 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +27,7 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages ed)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fltk)
   #:use-module (gnu packages gl)
@@ -39,6 +41,7 @@
   #:use-module (gnu packages readline)
   #:use-module (gnu packages shells)
   #:use-module (gnu packages tex)
+  #:use-module (gnu packages texinfo)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system gnu)
@@ -203,7 +206,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
 (define-public giac-xcas
   (package
     (name "giac-xcas")
-    (version "1.2.3-25")
+    (version "1.2.3-37")
     (source (origin
               (method url-fetch)
               ;; "~parisse/giac" is not used because the maintainer regularly
@@ -215,7 +218,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
                                   "source/giac_" version ".tar.gz"))
               (sha256
                (base32
-                "0d6a42p8111raf7k16yvjajnpj22abiqndy3yzkrb4b8l071r24d"))))
+                "180146rm8fxlbd6x25x81yscf6q8qjpzr35k203r25c2xkcb7h2x"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -468,35 +471,21 @@ binary.")
 (define-public bc
   (package
     (name "bc")
-    (version "1.06")
+    (version "1.07.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/bc/bc-" version ".tar.gz"))
              (sha256
               (base32
-               "0cqf5jkwx6awgd2xc2a0mkpxilzcfmhncdcfg7c9439wgkqxkxjf"))))
+               "0amh9ik44jfg66csyvf4zz1l878c4755kjndq9j0270akflgrbb2"))))
     (build-system gnu-build-system)
     (inputs `(("readline" ,readline)))
-    (native-inputs `(("flex" ,flex)))
+    (native-inputs
+     `(("ed" ,ed)
+       ("flex" ,flex)
+       ("texinfo" ,texinfo)))
     (arguments
-     '(#:phases
-       (alist-replace 'configure
-                      (lambda* (#:key outputs #:allow-other-keys)
-                        ;; This old `configure' script doesn't support
-                        ;; variables passed as arguments.
-                        (let ((out (assoc-ref outputs "out")))
-                          (setenv "CONFIG_SHELL" (which "bash"))
-                          (zero?
-                           (system*
-                            "./configure"
-                            (string-append "--prefix=" out)
-                            ;; By default, man and info pages are put in
-                            ;; PREFIX/{man,info}, but we want them in
-                            ;; PREFIX/share/{man,info}.
-                            (string-append "--mandir=" out "/share/man")
-                            (string-append "--infodir=" out "/share/info")))))
-                      %standard-phases)
-       #:configure-flags
+     '(#:configure-flags
        (list "--with-readline")))
     (home-page "https://www.gnu.org/software/bc/")
     (synopsis "Arbitrary precision numeric processing language")
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index 4dab620993..ab5da5ffc5 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -30,7 +30,7 @@
 (define-public fio
   (package
     (name "fio")
-    (version "2.18")
+    (version "2.19")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -38,7 +38,7 @@
                        "fio-" version ".tar.bz2"))
               (sha256
                (base32
-                "08kx2mh556xby9saayrbynwrkmh4v8wwrw759nbv025ch3xbw79n"))))
+                "0dwx2dpbsg3xyd8jzm64gazy6ij4zirlfdrbgcxr1a0z5smcmcw1"))))
     (build-system gnu-build-system)
     (arguments
      '(#:test-target "test"
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index c71e70bc63..2b0303b06d 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5406,7 +5406,7 @@ data types as well.")
     (home-page
      "http://bioconductor.org/packages/annotate")
     (synopsis "Annotation for microarrays")
-    (description "This package provides R enviroments for the annotation of
+    (description "This package provides R environments for the annotation of
 microarrays.")
     (license license:artistic2.0)))
 
diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm
index 31841d0e06..4b43348a50 100644
--- a/gnu/packages/certs.scm
+++ b/gnu/packages/certs.scm
@@ -74,7 +74,7 @@
 (define-public nss-certs
   (package
     (name "nss-certs")
-    (version "3.30.1")
+    (version "3.30")
     (source (origin
               (method url-fetch)
               (uri (let ((version-with-underscores
@@ -85,7 +85,7 @@
                       "nss-" version ".tar.gz")))
               (sha256
                (base32
-                "1djypq081m22iw0wg0q7gnpndam5f8qjhqfd5v9by4c6l6lp78hz"))))
+                "1agkkwb51si4raw46p44vl3d0l7wzvdjcblpcdjjz6aymq6h1h58"))))
     (build-system gnu-build-system)
     (outputs '("out"))
     (native-inputs
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 794c775901..cc2f8a2f92 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -576,9 +576,6 @@ types are supported, as is encryption.")
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags (list "CC=gcc"
-                          ;; Make the resulting library position-independent so the
-                          ;; static version can be included in shared objects.
-                          "EXTRA_CXXFLAGS=-fPIC"
                           (string-append "INSTALL_PATH="
                                          (assoc-ref %outputs "out")))
        #:phases
@@ -587,36 +584,31 @@ types are supported, as is encryption.")
            (lambda _
              (substitute* "Makefile"
                (("build_tools/gnu_parallel") "parallel")
+               ;; Don't depend on the static library when installing.
+               (("install: install-static")
+                "install: install-shared")
                (("#!/bin/sh") (string-append "#!" (which "sh"))))
              #t))
          (delete 'configure)
          (add-before 'check 'disable-failing-tests
            (lambda _
              (substitute* "Makefile"
+               ;; This test fails with GCC-5 and is unmaintained.
+               ;; https://github.com/facebook/rocksdb/issues/2148
+               (("^[[:blank:]]+spatial_db_test[[:blank:]]+\\\\") "\\")
                ;; These tests reliably fail due to "Too many open files".
                (("^[[:blank:]]+env_test[[:blank:]]+\\\\") "\\")
                (("^[[:blank:]]+persistent_cache_test[[:blank:]]+\\\\") "\\"))
              #t))
-         (add-after
-          'check 'build-release-libraries
-          ;; The 'check' target depends on the default target which is compiled
-          ;; with debug symbols. The 'install' target depends on shared and
-          ;; static release targets so we build them here for clarity.
-          ;; TODO: Add debug output.
-          (lambda* (#:key (make-flags '()) #:allow-other-keys)
-            ;; Prevent the build from adding machine-specific optimizations.
-            ;; This does not work if passed as a make flag...
-            (setenv "PORTABLE" "1")
-            (and (zero? (apply system* "make" "static_lib" make-flags))
-                 (zero? (apply system* "make" "shared_lib" make-flags)))))
-         (add-after 'install 'delete-static-library
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (lib (string-append out "/lib")))
-               (for-each (lambda (file)
-                           (delete-file file))
-                         (find-files lib "\\.l?a$"))
-               #t))))))
+         (add-after 'check 'build-release-libraries
+           ;; The default build target is a debug build for tests. The
+           ;; install target depends on "shared_lib" and "static_lib"
+           ;; targets for release builds so we build them here for clarity.
+           ;; TODO: Add debug output.
+           (lambda* (#:key (make-flags '()) #:allow-other-keys)
+             ;; Prevent the build from adding machine-specific optimizations.
+             (setenv "PORTABLE" "1")
+             (zero? (apply system* "make" "shared_lib" make-flags)))))))
     (native-inputs
      `(("parallel" ,parallel)
        ("perl" ,perl)
diff --git a/gnu/packages/datastructures.scm b/gnu/packages/datastructures.scm
index ef249b9659..79068a54d0 100644
--- a/gnu/packages/datastructures.scm
+++ b/gnu/packages/datastructures.scm
@@ -65,7 +65,7 @@ and heaps.")
      "This library contains several hash-map implementations, similar in API
 to SGI's @code{hash_map} class, but with different performance
 characteristics.  @code{sparse_hash_map} uses very little space overhead, 1-2
-bits per entry.  @code{dense_hash_map} is very fast, particulary on lookup.
+bits per entry.  @code{dense_hash_map} is very fast, particularly on lookup.
 @code{sparse_hash_set} and @code{dense_hash_set} are the set versions of these
 routines.  All these implementation use a hashtable with internal quadratic
 probing.  This method is space-efficient -- there is no pointer overhead --
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 53ffa54630..c0279565d8 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -275,9 +275,9 @@ asynchronous fashion.")
 (define-public yadifa
   (package
     (name "yadifa")
-    (version "2.2.3")
+    (version "2.2.4")
     (source
-     (let ((revision "6711"))
+     (let ((revision "6924"))
        (origin
          (method url-fetch)
          (uri
@@ -285,7 +285,7 @@ asynchronous fashion.")
                          name "-" version "-" revision ".tar.gz"))
          (sha256
           (base32
-           "0ikfm40gx0zjw3gnxsw3rn1k4wb8jacgklja3ygcj1knq6hy2zaa")))))
+           "060ydcfn9876bs6p5xi3p1k20ca547f4jck25r5x1hnxjlv7ss03")))))
     (build-system gnu-build-system)
     (native-inputs
      `(("which" ,which)))
@@ -377,7 +377,7 @@ Extensions} (DNSSEC).")
                             "/etc/bash_completion.d"))))
     (home-page "https://www.knot-dns.cz/")
     (synopsis "Authoritative DNS name server")
-    (description "Knot DNS is an authorative name server for the @dfn{Domain
+    (description "Knot DNS is an authoritative name server for the @dfn{Domain
 Name System} (DNS), designed to meet the needs of root and @dfn{top-level
 domain} (TLD) name servers.  It is implemented as a threaded daemon and uses a
 number of programming techniques to improve speed.  For example, the responder
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 976ea31e00..6eb8751ad9 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -24,6 +24,7 @@
 ;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org>
 ;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
+;;; Copyright © 2017 Feng Shu <tumashu@163.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1207,6 +1208,28 @@ writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
 or XEmacs.")
     (license license:gpl3+)))
 
+(define-public emacs-calfw
+  (package
+    (name "emacs-calfw")
+    (version "1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/kiwanami/emacs-calfw/archive/v"
+             version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "17ssg8gx66yp63nhygjq2r6kgl4h45cacmrxsxs9f0lrfcx37k0l"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/kiwanami/emacs-calfw/")
+    (synopsis "Calendar framework for Emacs")
+    (description
+     "This package displays a calendar view with various shedule data in
+the Emacs buffer.")
+    (license license:gpl3+)))
+
 (define-public emacs-mmm-mode
   (package
     (name "emacs-mmm-mode")
@@ -4037,10 +4060,10 @@ number on the left margin in Emacs.")
          "0kdv10hrgqpskjh0zvpnzwlkn5bccnqxas62gkws6njln57bf8nl"))))
     (build-system emacs-build-system)
     (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
-    (synopsis "Highlights all occurences of the word the point is on")
+    (synopsis "Highlights all occurrences of the word the point is on")
     (description
      "This Emacs package provides @code{idle-highlight-mode} that sets
- an idle timer to highlight all occurences in the buffer of the word under
+ an idle timer to highlight all occurrences in the buffer of the word under
  the point.")
     (license license:gpl3+)))
 
@@ -4360,3 +4383,114 @@ commands are also offered as part of the AUCTeX package, but it is not
 the same - CDLaTeX focuses on speediness for inserting LaTeX
 constructs.")
     (license license:gpl3+)))
+
+(define-public emacs-xelb
+  (package
+    (name "emacs-xelb")
+    (version "0.12")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://elpa.gnu.org/packages/xelb-"
+                                  version ".tar"))
+              (sha256
+               (base32
+                "0i9n0f3ibj4a5pwcsvwrah9m0fz32m0x6a9wsmjn3li20v8pcb81"))))
+    (build-system emacs-build-system)
+    ;; The following functions and variables needed by emacs-xelb are
+    ;; not included in emacs-minimal:
+    ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
+    ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
+    ;; x-display-pixel-width, x-display-pixel-height
+    (arguments
+     `(#:emacs ,emacs
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'regenerate-el-files
+           (lambda* (#:key inputs #:allow-other-keys)
+             (zero? (system* "make"
+                             (string-append "PROTO_PATH="
+                                            (assoc-ref inputs "xcb-proto")
+                                            "/share/xcb")
+                             (string-append "EMACS_BIN="
+                                            (assoc-ref inputs "emacs")
+                                            "/bin/emacs -Q"))))))))
+    (native-inputs `(("xcb-proto" ,xcb-proto)))
+    (home-page "https://github.com/ch11ng/xelb")
+    (synopsis "X protocol Emacs Lisp binding")
+    (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
+X11 protocol based on the XML description files from the XCB project.  It
+features an object-oriented API and permits a certain degree of concurrency.
+It should enable you to implement low-level X11 applications.")
+    (license license:gpl3+)))
+
+(define-public emacs-exwm
+  (package
+    (name "emacs-exwm")
+    (version "0.13")
+    (synopsis "Emacs X window manager")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://elpa.gnu.org/packages/exwm-"
+                                  version ".tar"))
+              (sha256
+               (base32
+                "0n1wzy6chh024r0yaywjbf7mdsrxs6hrfycv5v0ps0drf6q3zldc"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-xelb" ,emacs-xelb)))
+    (inputs
+     `(("xhost" ,xhost)
+       ("dbus" ,dbus)))
+    ;; The following functions and variables needed by emacs-exwm are
+    ;; not included in emacs-minimal:
+    ;; scroll-bar-mode, fringe-mode
+    ;; x-display-pixel-width, x-display-pixel-height
+    (arguments
+     `(#:emacs ,emacs
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'build 'install-xsession
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (xsessions (string-append out "/share/xsessions"))
+                    (bin (string-append out "/bin"))
+                    (exwm-executable (string-append bin "/exwm")))
+               ;; Add a .desktop file to xsessions
+               (mkdir-p xsessions)
+               (mkdir-p bin)
+               (with-output-to-file
+                   (string-append xsessions "/exwm.desktop")
+                 (lambda _
+                   (format #t "[Desktop Entry]~@
+                     Name=~a~@
+                     Comment=~a~@
+                     Exec=~a~@
+                     TryExec=~@*~a~@
+                     Type=Application~%" ,name ,synopsis exwm-executable)))
+               ;; Add a shell wrapper to bin
+               ;; Set DISPLAY variable to work around
+               ;; https://github.com/ch11ng/exwm/issues/213
+               (with-output-to-file exwm-executable
+                 (lambda _
+                   (format #t "#!~a ~@
+                     export DISPLAY=:0 ~@
+                     ~a +SI:localuser:$USER ~@
+                     exec ~a --exit-with-session ~a --eval '~s' ~%"
+                           (string-append (assoc-ref inputs "bash") "/bin/sh")
+                           (string-append (assoc-ref inputs "xhost") "/bin/xhost")
+                           (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
+                           (string-append (assoc-ref inputs "emacs") "/bin/emacs")
+                           '(cond
+                             ((file-exists-p "~/.exwm")
+                              (load-file "~/.exwm"))
+                             ((not (featurep 'exwm))
+                              (require 'exwm)
+                              (require 'exwm-config)
+                              (exwm-config-default)
+                              (message "exwm configuration not found. Falling back to default configuration..."))))))
+               (chmod exwm-executable #o555)
+               #t))))))
+    (home-page "https://github.com/ch11ng/exwm")
+    (description "EXWM is a full-featured tiling X window manager for Emacs
+built on top of XELB.")
+    (license license:gpl3+)))
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 8f5b1fb0da..41d85aac87 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2016, 2017 Kei Kebreau <kei@openmailbox.org>
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Julian Graham <joolean@gmail.com>
+;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -69,7 +70,7 @@
 (define-public bullet
   (package
     (name "bullet")
-    (version "2.85.1")
+    (version "2.86.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/bulletphysics/bullet3/"
@@ -77,7 +78,7 @@
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0qpd37ws0xlxwy55dg058a5b4yw2jxiz09yyc3lc0frpa05pq5bf"))))
+                "0nghzcl84p8di215p7xj0gy1hyy072hw2xk9cnmav9hv6bjb4n60"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags (list (string-append
@@ -253,7 +254,7 @@ clone.")
        ("libjpeg" ,libjpeg)
        ("libsndfile" ,libsndfile)
        ("openal" ,openal)))
-    (home-page "http://www.sfml-dev.org")
+    (home-page "https://www.sfml-dev.org")
     (synopsis "Simple and Fast Multimedia Library")
     (description
      "SFML provides a simple interface to the various computer components,
@@ -305,7 +306,7 @@ sounds from presets such as \"explosion\" or \"powerup\".")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://icculus.org/physfs/downloads/physfs-"
+                    "https://icculus.org/physfs/downloads/physfs-"
                     version ".tar.bz2"))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
@@ -318,7 +319,7 @@ sounds from presets such as \"explosion\" or \"powerup\".")
      `(("zlib" ,zlib)))
     (native-inputs
      `(("doxygen" ,doxygen)))
-    (home-page "http://icculus.org/physfs")
+    (home-page "https://icculus.org/physfs")
     (synopsis "File system abstraction library")
     (description
      "PhysicsFS is a library to provide abstract access to various archives.
@@ -510,7 +511,7 @@ etc.")
     (description "Aseprite is a tool for creating 2D pixel art for video
 games.  In addition to basic pixel editing features, Aseprite can assist in
 the creation of animations, tiled graphics, texture atlases, and more.")
-    (home-page "http://www.aseprite.org/")
+    (home-page "https://www.aseprite.org/")
     (license license:gpl2+)))
 
 (define-public qqwing
@@ -655,7 +656,7 @@ interface (API).")
        ("libsmpeg" ,libsmpeg)
        ("portmidi" ,portmidi)
        ("v4l-utils" ,v4l-utils)))
-    (home-page "http://www.pygame.org")
+    (home-page "https://www.pygame.org")
     (synopsis "SDL wrapper for Python")
     (description "Pygame is a set of Python modules designed for writing games.
 Pygame adds functionality on top of the excellent SDL library. This allows you
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index c712785091..31ba037af0 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -433,7 +433,7 @@ that beneath its ruins lay buried an ancient evil.")
            (lambda _
              (substitute* "acinclude.m4"
                (("ncursesw5-config") "ncursesw6-config"))
-             (zero? (system* "sh" "autogen.sh"))))))) 
+             (zero? (system* "sh" "autogen.sh")))))))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)))
@@ -598,14 +598,14 @@ To that extent, it also includes a front-end for managing all of your D-Mods.")
 (define freedink-data
   (package
     (name "freedink-data")
-    (version "1.08.20140901")
+    (version "1.08.20170401")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/freedink/freedink-data-"
-                                  version ".tar.gz"))
+                                  version ".tar.xz"))
               (sha256
                (base32
-                "04f1aa8gfz30qkgv7chjz5n1s8v5hbqs01h2113cq1ylm3isd5sp"))))
+                "1zx7qywibhznj7bnz217404scr8dfh0xj24xjihnda5iapzz7lz8"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -1084,7 +1084,7 @@ either by Infocom or created using the Inform compiler.")
 (define-public retroarch
   (package
     (name "retroarch")
-    (version "1.3.6")
+    (version "1.5.0")
     (source
      (origin
        (method url-fetch)
@@ -1092,7 +1092,7 @@ either by Infocom or created using the Inform compiler.")
                            version ".tar.gz"))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1xar0wagcz50clwwkvjg4zq9m1sjqw47vw3xx44pisdj94g21m5y"))))
+        (base32 "1rbdax3i33myg1v938pxy28117ihff2lml1ky6g70c8099fkirjx"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ; no tests
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 105348c9d1..8db53f109a 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -21,7 +21,7 @@
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
-;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;;
@@ -127,6 +127,7 @@
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages qemu)
   #:use-module (gnu packages zip)
+  #:use-module (gnu packages speech)
   #:use-module (srfi srfi-1))
 
 (define-public brasero
@@ -862,11 +863,11 @@ some form of information without getting in the user's way.")
     (home-page "https://wiki.gnome.org/Libpeas")
     (synopsis "GObject plugin system")
     (description
-     "Libpeas is a gobject-based plugins engine, and is targetted at giving
-every application the chance to assume its own extensibility.  It also has a
-set of features including, but not limited to: multiple extension points; on
-demand (lazy) programming language support for C, Python and JS; simplicity of
-the API.")
+     "Libpeas is a gobject-based plugin engine, targeted at giving every
+application the chance to assume its own extensibility.  It also has a set of
+features including, but not limited to: multiple extension points; on-demand
+(lazy) programming language support for C, Python and JS; simplicity of the
+API.")
     (license license:lgpl2.0+)))
 
 (define-public gtkglext
@@ -6029,3 +6030,93 @@ for process dependencies, icons for processes, the ability to hide processes,
 graphical time histories of CPU/memory/swap usage and the ability to
 kill/reinice processes.")
     (license license:gpl2+)))
+
+(define-public python-pyatspi
+  (package
+    (name "python-pyatspi")
+    (version "2.24.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/pyatspi/"
+                    (version-major+minor version)
+                    "/pyatspi-" version ".tar.xz"))
+              (sha256
+               (base32
+                "14m6y27ziqc9f6339gjz49mlsk6mrsyg4bkj055cdzc7sfjlgvz7"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("python" ,python)
+       ("python-pygobject" ,python-pygobject)))
+    (synopsis "Python client bindings for D-Bus AT-SPI")
+    (home-page "https://wiki.linuxfoundation.org/accessibility\
+/atk/at-spi/at-spi_on_d-bus")
+    (description
+     "This package includes a python client library for the AT-SPI D-Bus
+accessibility infrastructure.")
+    (license license:lgpl2.0)
+    (properties '((upstream-name . "pyatspi")))))
+
+(define-public orca
+  (package
+    (name "orca")
+    (version "3.24.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://gnome/sources/" name "/"
+                    (version-major+minor version) "/"
+                    name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1la6f815drykrgqf791jx1dda6716cfv6052frqp7nhjxr75xg97"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'qualify-xkbcomp
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((xkbcomp (string-append
+                             (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
+               (substitute* "src/orca/orca.py"
+                 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
+             #t))
+         (add-after 'install 'wrap-orca
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out  (assoc-ref outputs "out"))
+                    (prog (string-append out "/bin/orca")))
+               (wrap-program prog
+                 `("GI_TYPELIB_PATH" ":" prefix
+                   (,(getenv "GI_TYPELIB_PATH")))
+                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
+                   (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
+                 `("PYTHONPATH" ":" prefix
+                   (,(getenv "PYTHONPATH")))))
+             #t)))))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)))
+    (inputs
+     `(("at-spi2-atk" ,at-spi2-atk)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("gst-plugins-good" ,gst-plugins-good)
+       ("gtk+" ,gtk+)
+       ("python" ,python)
+       ("python-pygobject" ,python-pygobject)
+       ("python-pyatspi" ,python-pyatspi)
+       ("python-speechd" ,speech-dispatcher)
+       ("xkbcomp" ,xkbcomp)))
+    (synopsis
+     "Screen reader for individuals who are blind or visually impaired")
+    (home-page "https://wiki.gnome.org/Projects/Orca")
+    (description
+     "Orca is a screen reader that provides access to the graphical desktop
+via speech and refreshable braille.  Orca works with applications and toolkits
+that support the Assistive Technology Service Provider Interface (AT-SPI).")
+    (license license:lgpl2.1+)))
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 3b69a6b815..bfb0f1eb41 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -194,7 +194,7 @@ in the Mozilla clients.")
 (define-public nss
   (package
     (name "nss")
-    (version "3.30.1")
+    (version "3.30")
     (source (origin
               (method url-fetch)
               (uri (let ((version-with-underscores
@@ -205,7 +205,7 @@ in the Mozilla clients.")
                       "nss-" version ".tar.gz")))
               (sha256
                (base32
-                "1djypq081m22iw0wg0q7gnpndam5f8qjhqfd5v9by4c6l6lp78hz"))
+                "1agkkwb51si4raw46p44vl3d0l7wzvdjcblpcdjjz6aymq6h1h58"))
               ;; Create nss.pc and nss-config.
               (patches (search-patches "nss-pkgconfig.patch"
                                        "nss-increase-test-timeout.patch"))))
@@ -524,11 +524,7 @@ standards.")
                            "--with-system-jpeg"        ; must be libjpeg-turbo
                            "--with-system-libevent"
                            "--with-system-libvpx"
-
-                           ;; FIXME: It is preferable to build with system
-                           ;; libraries, but this fixes crashes.
-                           ;; "--with-system-icu"
-
+                           "--with-system-icu"
                            "--with-system-nspr"
                            "--with-system-nss"
                            "--enable-system-pixman"
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 00630ce067..90a809eb27 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -3,8 +3,9 @@
 ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
 ;;; Copyright © 2016 Andy Wingo <wingo@igalia.com>
 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016 Petter <petter@mykolab.ch>
+;;; Copyright © 2016, 2017 Petter <petter@mykolab.ch>
 ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2017 Sergei Trofimovich <slyfox@inbox.ru>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -197,11 +198,11 @@ garbage collection, various safety features and in the style of communicating
 sequential processes (CSP) concurrent programming features added.")
     (license license:bsd-3)))
 
-(define-public go-1.7
+(define-public go-1.8
   (package
     (inherit go-1.4)
     (name "go")
-    (version "1.7.5")
+    (version "1.8.1")
     (source
      (origin
        (method url-fetch)
@@ -209,7 +210,7 @@ sequential processes (CSP) concurrent programming features added.")
                            name version ".src.tar.gz"))
        (sha256
         (base32
-         "058q57zmi23rflingzhy1b87yl69mb62ql2psfxqr7q7l89lb0sf"))))
+         "0mqf8ydxdx1pwmrs8p8wl5y1qrplzxmxzgb6vkghy4l67z0g9nik"))))
     (arguments
      (substitute-keyword-arguments (package-arguments go-1.4)
        ((#:phases phases)
@@ -300,8 +301,8 @@ sequential processes (CSP) concurrent programming features added.")
                    (("/etc/services") (string-append net-base "/etc/services")))
                  (substitute* "time/zoneinfo_unix.go"
                    (("/usr/share/zoneinfo/") tzdata-path))
-                 (substitute* (find-files "cmd" "asm.c")
-                   (("/lib/ld-linux.*\\.so\\.[0-9]") loader))
+                 (substitute* (find-files "cmd" "\\.go")
+                   (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
                  #t)))
            (add-before 'build 'set-bootstrap-variables
              (lambda* (#:key outputs inputs #:allow-other-keys)
@@ -364,4 +365,4 @@ sequential processes (CSP) concurrent programming features added.")
      `(("go" ,go-1.4)
        ,@(package-native-inputs go-1.4)))))
 
-(define-public go go-1.7)
+(define-public go go-1.8)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 8f7a027d84..dffa2baf30 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
 ;;; Copyright © 2016 Patrick Hetu <patrick.hetu@auf.org>
 ;;; Coypright © 2016 ng0 <ng0@we.make.ritual.n0.is>
+;;; Coypright © 2017 Roel Janssen <roel@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -42,6 +43,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -1208,7 +1210,7 @@ extensive documentation, including API reference and a tutorial.")
     (synopsis "Python bindings for GTK+")
     (description
      "PyGTK allows you to write full featured GTK programs in Python.  It is
-targetted at GTK 2.x, and can be used in conjunction with gnome-python to
+targeted at GTK 2.x, and can be used in conjunction with gnome-python to
 write GNOME applications.")
     (license license:lgpl2.1+)))
 
@@ -1419,3 +1421,41 @@ misspelled words in a GtkTextView widget.")
 thereof, global hotkeys and clipboard item actions.  It was forked from
 Parcellite and adds bugfixes and features.")
     (license license:gpl2+)))
+
+(define-public graphene
+  (package
+    (name "graphene")
+    (version "1.6.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/ebassi/graphene/archive/"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1zd2daj7y590wnzn4jw0niyc4fnzgxrcl9i7nwhy8b25ks2hz5wq"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags '("--enable-introspection=yes")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'autogen
+           (lambda _
+             (zero? (system* "./autogen.sh")))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("which" ,which)
+       ("pkg-config" ,pkg-config)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
+    (inputs
+     `(("python" ,python)
+       ("python-2" ,python-2)
+       ("glib" ,glib)
+       ("gobject-introspection" ,gobject-introspection)))
+    (home-page "http://ebassi.github.io/graphene")
+    (synopsis "Thin layer of graphic data types")
+    (description "This library provides graphic types and their relative API;
+it does not deal with windowing system surfaces, drawing, scene graphs, or
+input.")
+    (license license:expat)))
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index ff7cf40811..207daa54e6 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com>
 ;;; Copyright © 2016 Eraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2016, 2017 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>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
@@ -1359,7 +1359,7 @@ SQL databases.  This package implements the interface for SQLite.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
-     `(("guile" ,guile-2.0)
+     `(("guile" ,guile-2.2)
        ("libx11" ,libx11)
        ("libxext" ,libxext)
        ("libxinerama" ,libxinerama)
@@ -1375,7 +1375,7 @@ library}.")
 (define-public guile-daemon
   (package
     (name "guile-daemon")
-    (version "0.1.1")
+    (version "0.1.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/alezost/" name
@@ -1383,12 +1383,12 @@ library}.")
                                   "/" name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0wsq9l6a4sijq4i1r3kcddfaznsak2jc5k59gzkhs5il5d2kn5yi"))))
+                "0hh6gq6b6phpxm0b1dkxyzj3f4sxdf7dji63609lzypa5v1ad2gv"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
-     `(("guile" ,guile-2.0)))
+     `(("guile" ,guile-2.2)))
     (home-page "https://github.com/alezost/guile-daemon")
     (synopsis "Evaluate code in a running Guile process")
     (description
diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm
index d842f03b4e..2b51441002 100644
--- a/gnu/packages/icu4c.scm
+++ b/gnu/packages/icu4c.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,6 +31,7 @@
   (package
    (name "icu4c")
    (version "58.2")
+   (replacement icu4c/fixed)
    (source (origin
             (method url-fetch)
             (uri (string-append
@@ -63,3 +65,12 @@ globalisation support for software applications.  This package contains the
 C/C++ part.")
    (license x11)
    (home-page "http://site.icu-project.org/")))
+
+(define icu4c/fixed
+  (package
+    (inherit icu4c)
+    (replacement #f)
+    (source (origin
+              (inherit (package-source icu4c))
+              (patches
+               (search-patches "icu4c-reset-keyword-list-iterator.patch"))))))
diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm
index 2b7f4cc9dd..de9b5dd1d0 100644
--- a/gnu/packages/idris.scm
+++ b/gnu/packages/idris.scm
@@ -31,7 +31,7 @@
 (define-public idris
   (package
     (name "idris")
-    (version "0.99.1")
+    (version "1.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -39,7 +39,7 @@
                     "idris-" version "/idris-" version ".tar.gz"))
               (sha256
                (base32
-                "12kw452arnl5ldip2x749j5np3l40bv7asqdv9w0f60j45hii40r"))))
+                "1srbz0cyvd0k1yqgbrwnfj94yg5y3z533q1kzac96z1h7v454s5h"))))
     (build-system haskell-build-system)
     (inputs
      `(("gmp" ,gmp)
@@ -146,12 +146,14 @@ Epigram and Agda.")
                                                     idris-path-files))
                  (install-cmd (cons* idris-bin
                                      "--ibcsubdir" ibcsubdir
-                                     "--install" ipkg
+                                     "--build" ipkg
+                                     ;; only trigger a build, as --ibcsubdir
+                                     ;; already installs .ibc files.
+
                                      (apply append (map (lambda (path)
                                                           (list "--idrispath"
                                                                 path))
                                                         idris-path-subdirs)))))
-            (setenv "IDRIS_LIBRARY_PATH" idris-libs)
             ;; FIXME: Seems to be a bug in idris that causes a dubious failure.
             (apply system* install-cmd)
             #t))))))
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 78654a1cd3..2ec176422c 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -1426,7 +1426,7 @@ from DocBook files.")
     (synopsis "Extract metadata from different fileformats")
     (description "KFileMetaData provides a simple library for extracting the
 text and metadata from a number of different files.  This library is typically
-used by file indexers to retreive the metadata.  This library can also be used
+used by file indexers to retrieve the metadata.  This library can also be used
 by applications to write metadata.")
     (license (list license:lgpl2.0 license:lgpl2.1 license:lgpl3))))
 
@@ -1750,7 +1750,7 @@ maintaining an index of the contents of your files.")
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Core components for the KDE Activity concept")
     (description "KActivities provides the infrastructure needed to manage a
-user's activites, allowing them to switch between tasks, and for applications
+user's activities, allowing them to switch between tasks, and for applications
 to update their state to match the user's current activity.  This includes a
 daemon, a library for interacting with that daemon, and plugins for integration
 with other frameworks.")
diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm
index b5d86b5636..c59b78773d 100644
--- a/gnu/packages/kodi.scm
+++ b/gnu/packages/kodi.scm
@@ -239,8 +239,8 @@ generator library for C++.")
 (define-public kodi
   ;; We package the git version because the current released
   ;; version was cut while the cmake transition was in turmoil.
-  (let ((commit "ec5d53da72868ad37df8bc005452a6daaa20f20b")
-        (revision "1"))
+  (let ((commit "478d3064a8c3d395e8afac314143561c7468ad87")
+        (revision "2"))
   (package
     (name "kodi")
     (version (string-append "18.0_alpha-" revision "-" (string-take commit 7)))
@@ -252,7 +252,7 @@ generator library for C++.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "05f0bip0w784ya72plw3p2bism5m501q07si2xbmg03vhqsagjl5"))
+                "19vb1qkk0ffh0b03x6whwl598bylsby3813i79vgrq5cvr4pigfy"))
               (snippet
                '(begin
                   (use-modules (guix build utils))
@@ -263,7 +263,6 @@ generator library for C++.")
                               ;; And these sources:
                               ;; "tools/depend/native/JsonSchemaBuilder"
                               ;; "tools/depend/native/TexturePacker"
-                              ;; "lib/UnrarXlib"
                               ;; "lib/gtest"
                               ;; "lib/cpluff"
                               ;; "lib/libexif"
@@ -287,8 +286,7 @@ generator library for C++.")
              (string-append "-Dlibdvdcss_URL="
                             (assoc-ref %build-inputs "libdvdcss-bootstrapped"))
              (string-append "-DSYSTEM_LDFLAGS=-Wl,-rpath="
-                            (assoc-ref %build-inputs "curl") "/lib")
-             "-DENABLE_NONFREE=OFF")
+                            (assoc-ref %build-inputs "curl") "/lib"))
        #:phases
        (modify-phases %standard-phases
          ;; The build system tries to bootstrap these bundled components
diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm
index 1bfdefd7b5..4aab447333 100644
--- a/gnu/packages/libevent.scm
+++ b/gnu/packages/libevent.scm
@@ -182,7 +182,7 @@ resolution, asynchronous file system operations, and threading primitives.")
      "API for I/O, timer, signal, child process and completion events")
     (description
      "This module allows using a variety of events without forcing module
-authors to pick a specific event loop, and without noticable overhead.
+authors to pick a specific event loop, and without noticeable overhead.
 Currently supported event loops are EV, Event, Glib/Gtk2, Tk, Qt,
 @code{Event::Lib}, Irssi, @code{IO::Async} and POE (and thus also WxWidgets
 and Prima).  It also comes with a very fast Pure Perl event loop that does
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index e1ae84e3a7..548a8b0a98 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -86,6 +86,7 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
   #:use-module (gnu packages video)
+  #:use-module (gnu packages web)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xdisorg)
@@ -1016,21 +1017,28 @@ external rate conversion.")
 (define-public iptables
   (package
     (name "iptables")
-    (version "1.4.21")
+    (version "1.6.1")
     (source (origin
              (method url-fetch)
              (uri (string-append
-                   "http://www.netfilter.org/projects/iptables/files/iptables-"
+                   "mirror://netfilter.org/iptables/iptables-"
                    version ".tar.bz2"))
              (sha256
               (base32
-               "1q6kg7sf0pgpq0qhab6sywl23cngxxfzc9zdzscsba8x09l4q02j"))))
+               "1x8c9y340x79djsq54bc1674ryv59jfphrk4f88i7qbvbnyxghhg"))))
     (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("flex" ,flex)
+       ("bison" ,bison)))
+    (inputs
+     `(("libmnl" ,libmnl)
+       ("libnftnl" ,libnftnl)))
     (arguments
      '(#:tests? #f       ; no test suite
        #:configure-flags ; add $libdir to the RUNPATH of executables
        (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))))
-    (home-page "http://www.netfilter.org/projects/iptables/index.html")
+    (home-page "https://www.netfilter.org/projects/iptables/index.html")
     (synopsis "Program to configure the Linux IP packet filtering rules")
     (description
      "iptables is the userspace command line program used to configure the
@@ -1569,22 +1577,22 @@ UnionFS-FUSE additionally supports copy-on-write.")
 (define-public sshfs-fuse
   (package
     (name "sshfs-fuse")
-    (version "2.8")
+    (version "2.9")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/libfuse/sshfs/releases/"
-                                  "download/sshfs_" version
-                                  "/sshfs-" version ".tar.gz"))
+                                  "download/sshfs-" version "/sshfs-" version
+                                  ".tar.gz"))
               (sha256
                (base32
-                "08mdd4rs7yys7hmyig6i08qlid76p17xlvrh64k7wsrfs1s92s3z"))))
+                "1pp5wsl1jx11apkv2fpp559miifqhi8ka400npy5awp9ghlf3la6"))))
     (build-system gnu-build-system)
     (inputs
      `(("fuse" ,fuse)
        ("glib" ,glib)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://fuse.sourceforge.net/sshfs.html")
+    (home-page "https://github.com/libfuse/sshfs")
     (synopsis "Mount remote file systems over SSH")
     (description
      "This is a file system client based on the SSH File Transfer Protocol.
@@ -2599,7 +2607,7 @@ arrays when needed.")
 (define-public multipath-tools
   (package
     (name "multipath-tools")
-    (version "0.6.4")
+    (version "0.7.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://git.opensvc.com/?p=multipath-tools/"
@@ -2607,7 +2615,7 @@ arrays when needed.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "12smwmljrkl2afc06dghd2253rqnfawvzr818a2xpxr06f44f9qy"))
+                "0w0rgi3lqksaki30yvd4l5rgjqb0d7js1sh7masl8aw6xbrsm26p"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -2623,20 +2631,36 @@ arrays when needed.")
      '(#:tests? #f ; No tests.
        #:make-flags (list (string-append "DESTDIR="
                                          (assoc-ref %outputs "out"))
+                          "SYSTEMDPATH=lib"
                           (string-append "LDFLAGS=-Wl,-rpath="
                                          (assoc-ref %outputs "out")
                                          "/lib"))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((lvm2 (assoc-ref inputs "lvm2"))
+                   (udev (assoc-ref inputs "udev")))
+               (substitute* "Makefile.inc"
+                 (("\\$\\(prefix\\)/usr") "$(prefix)"))
+               (substitute* '("kpartx/Makefile" "libmultipath/Makefile")
+                 (("/usr/include/libdevmapper.h")
+                  (string-append lvm2 "/include/libdevmapper.h"))
+                 (("/usr/include/libudev.h")
+                  (string-append udev "/include/libudev.h")))
+               #t)))
          (delete 'configure)
          (add-before 'build 'set-CC
            (lambda _
              (setenv "CC" "gcc")
              #t)))))
     (native-inputs
-     `(("valgrind" ,valgrind)))
+     `(("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("valgrind" ,valgrind)))
     (inputs
      `(("ceph:lib" ,ceph "lib")
+       ("json-c" ,json-c)
        ("libaio" ,libaio)
        ("liburcu" ,liburcu)
        ("lvm2" ,lvm2)
@@ -3711,3 +3735,50 @@ and more on DMI-capable x86 or EFI (IA-64) systems and on some PowerPC
 machines (PowerMac G4 is known to work).")
     (home-page "https://www.ezix.org/project/wiki/HardwareLiSter")
     (license license:gpl2+)))
+
+(define-public libmnl
+  (package
+    (name "libmnl")
+    (version "1.0.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://netfilter.org/libmnl/"
+                            "libmnl-" version ".tar.bz2"))
+        (sha256
+         (base32
+          "108zampspaalv44zn0ar9h386dlfixpd149bnxa5hsi8kxlqj7qp"))))
+    (build-system gnu-build-system)
+    (home-page "https://www.netfilter.org/projects/libmnl/")
+    (synopsis "Netlink utility library")
+    (description "Libmnl is a minimalistic user-space library oriented to
+Netlink developers.  There are a lot of common tasks in parsing, validating,
+constructing of both the Netlink header and TLVs that are repetitive and easy to
+get wrong.  This library aims to provide simple helpers that allows you to
+re-use code and to avoid re-inventing the wheel.")
+    (license license:lgpl2.1+)))
+
+(define-public libnftnl
+  (package
+    (name "libnftnl")
+    (version "1.0.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "mirror://netfilter.org/libnftnl/"
+                            "libnftnl-" version ".tar.bz2"))
+        (sha256
+         (base32
+          "10irjrylcfkbp11617yr19vpfhgl54w0kw02jhj0i1abqv5nxdlv"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libmnl" ,libmnl)))
+    (home-page "https://www.netfilter.org/projects/libnftnl/index.html")
+    (synopsis "Netlink programming interface to the Linux nf_tables subsystem")
+    (description "Libnftnl is a userspace library providing a low-level netlink
+programming interface to the in-kernel nf_tables subsystem.  The library
+libnftnl has been previously known as libnftables.  This library is currently
+used by nftables.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 30f005a331..58ae81d207 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -207,7 +207,7 @@ classification.")
       (description
        "The General Hidden Markov Model library (GHMM) is a C library with
 additional Python bindings implementing a wide range of types of @dfn{Hidden
-Markov Models} (HMM) and algorithms: discrete, continous emissions, basic
+Markov Models} (HMM) and algorithms: discrete, continuous emissions, basic
 training, HMM clustering, HMM mixtures.")
       (license license:lgpl2.0+))))
 
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 255837198b..983629f85d 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
+;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -221,14 +222,14 @@ aliasing facilities to work just as they would on normal mail.")
 (define-public mutt
   (package
     (name "mutt")
-    (version "1.8.0")
+    (version "1.8.1")
     (source (origin
              (method url-fetch)
-             (uri (string-append "ftp://ftp.mutt.org/pub/mutt/mutt-"
-                                 version ".tar.gz"))
+             (uri (string-append "https://bitbucket.org/mutt/mutt/downloads/"
+                                 "mutt-" version ".tar.gz"))
              (sha256
               (base32
-               "1axdcylyv0p194y6lj1jx127g5yc74zqzzxdc014cjw02bd1x125"))
+               "1b8dggq5x1b77a9i9250b3jhv2iddfzhr9rix1yfzckdms65mr8b"))
              (patches (search-patches "mutt-store-references.patch"))))
     (build-system gnu-build-system)
     (inputs
@@ -418,7 +419,7 @@ and corrections.  It is based on a Bayesian filter.")
 (define-public offlineimap
   (package
     (name "offlineimap")
-    (version "7.0.14")
+    (version "7.1.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/OfflineIMAP/offlineimap/"
@@ -426,7 +427,7 @@ and corrections.  It is based on a Bayesian filter.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0i5dvygps1ai2qwgamab8kngrp0c5m3bgaw0jk34l8ypsk54wj8r"))))
+                "1r0sbgwyirpbks82ri9g88raf3mp8shq9rg0r92gkr7h6888v6fw"))))
     (build-system python-build-system)
     (native-inputs
      `(("asciidoc" ,asciidoc)))
@@ -2052,7 +2053,7 @@ the GNU Mailman 3 REST API.")
     (description
      "Mlmmj is a simple and slim mailing list manager (MLM) inspired by ezmlm.
 It works with many different Mail Transport Agents (MTAs) and is simple for a
-system adminstrator to install, configure and integrate with other software.
+system administrator to install, configure and integrate with other software.
 As it uses very few resources, and requires no daemons, it is ideal for
 installation on systems where resources are limited.  Its features include:
 @enumerate
diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 8600539adf..c8c7c63ee5 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -61,16 +61,15 @@
 (define-public mate-themes
   (package
     (name "mate-themes")
-    (version (package-version gtk+))
+    (version "3.22.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://pub.mate-desktop.org/releases/themes/"
-                                  (version-major+minor (package-version gtk+))
-                                  "/mate-themes-" (package-version gtk+)
-                                  ".tar.xz"))
+                                  (version-major+minor version) "/mate-themes-"
+                                  version ".tar.xz"))
               (sha256
                (base32
-                "1gsfzrcbwp7835pbilk7cvda8hjsf9g3gl4llbm61y9j7a4x2kn6"))))
+                "03ficjfxa4qpx4vcshhk2zxryivckxpw7wcjgbn8xqnjk3lgzjcb"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index a924764db0..272a0979ad 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -3003,7 +3003,7 @@ compilers and compiler versions as well as portability between different vector
 instruction sets.  Thus, an application written with Vc can be compiled for:
 @enumerate
 @item AVX and AVX2
-@item SSE2 upto SSE4.2 or SSE4a
+@item SSE2 up to SSE4.2 or SSE4a
 @item Scalar
 @item MIC
 @item NEON (in development)
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 2a37cf4a4e..c434aa5eb2 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -2526,7 +2526,7 @@ parallel with a DarkBooster, followed by a volume control.")))
     (synopsis "Fuzz effect modelled after the UniVox SuperFuzz")
     (description "This package provides the LV2 plugin \"GxSuperFuzz\", an
 analog simulation of the UniVox SuperFuzz pedal.  In this simulation the trim
-pot, which is usualy in the housing, is exposed as a control parameter.  It
+pot, which is usually in the housing, is exposed as a control parameter.  It
 adjusts the amount of harmonics.")))
 
 (define-public gx-vintage-fuzz-master-lv2
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 0c7dcd0fc3..cb9903791e 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2016 Benz Schenk <benz.schenk@uzh.ch>
 ;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl>
+;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -379,7 +380,7 @@ intended as a substitute for the PPPStatus and EthStatus projects.")
     (description
      "Nload is a console application which monitors network traffic and
 bandwidth usage in real time.  It visualizes the in- and outgoing traffic using
-two graphs and provides additional info like total amount of transfered data
+two graphs, and provides additional info like total amount of transferred data
 and min/max network usage.")
     (license license:gpl2+)))
 
@@ -470,7 +471,7 @@ which can be used to encrypt a password with @code{crypt(3)}.")
 (define-public wireshark
   (package
     (name "wireshark")
-    (version "2.2.5")
+    (version "2.2.6")
     (synopsis "Network traffic analyzer")
     (source
      (origin
@@ -479,7 +480,7 @@ which can be used to encrypt a password with @code{crypt(3)}.")
                            version ".tar.bz2"))
        (sha256
         (base32
-         "1j4sc3pmy8l6k41007spglcqiabjlzc7f85pn3jmjr9ksv9qipbm"))))
+         "0jd89i9si43lyv3hsl6p1lkjmz4zagvc37wcbigsxxc5v8gda9zn"))))
     (build-system glib-or-gtk-build-system)
     (inputs `(("bison" ,bison)
               ("c-ares" ,c-ares)
@@ -1124,7 +1125,7 @@ IPFIX, RSPAN, CLI, LACP, 802.1ag).")
 (define-public speedtest-cli
   (package
     (name "speedtest-cli")
-    (version "1.0.2")
+    (version "1.0.3")
     (source
      (origin
        (method url-fetch)
@@ -1133,7 +1134,7 @@ IPFIX, RSPAN, CLI, LACP, 802.1ag).")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1ir9fqwr7cl9kfq7dgh9vkydkwf59wsx0cwbzbffw8i313xhzxa1"))))
+         "1v4xd03303mlzmv43qaz3fmskp2prhs1678a5522ia2yqwv98adz"))))
     (build-system python-build-system)
     (home-page "https://github.com/sivel/speedtest-cli")
     (synopsis "Internet bandwidth tester")
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index 2df7816b59..cb57415161 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -38,14 +38,14 @@
 (define-public node
   (package
     (name "node")
-    (version "6.8.0")
+    (version "7.8.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://nodejs.org/dist/v" version
                                   "/node-v" version ".tar.gz"))
               (sha256
                (base32
-                "0lj3250hglz4w5ic4svd7wlg2r3qc49hnasvbva1v69l8yvx98m8"))
+                "1nkngdjbsm81nn3v0w0c2aqx9nb7mwy3z49ynq4wwcrzfr9ap8ka"))
               ;; https://github.com/nodejs/node/pull/9077
               (patches (search-patches "node-9077.patch"))))
     (build-system gnu-build-system)
@@ -62,6 +62,7 @@
              ;; Fix hardcoded /bin/sh references.
              (substitute* '("lib/child_process.js"
                             "lib/internal/v8_prof_polyfill.js"
+                            "test/parallel/test-child-process-spawnsync-shell.js"
                             "test/parallel/test-stdio-closed.js")
                (("'/bin/sh'")
                 (string-append "'" (which "sh") "'")))
@@ -130,4 +131,5 @@ event-driven, non-blocking I/O model that makes it lightweight and efficient,
 perfect for data-intensive real-time applications that run across distributed
 devices.")
     (home-page "http://nodejs.org/")
-    (license expat)))
+    (license expat)
+    (properties '((timeout . 3600))))) ; 1 h
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 82132d587a..d4f83d3510 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -450,16 +450,17 @@ transactions from C or Python.")
 (define-public diffoscope
   (package
     (name "diffoscope")
-    (version "78")
+    (version "81")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri name version))
               (sha256
                (base32
-                "1bx8i6sx2mcvm166nhw0i5442ld6wigkwav8dsnv22y7gnsl9d7n"))))
+                "093lxy6zj69i19fxdkj3jnai3b1ajqbksyqcvy8wqj3plaaxjna5"))))
     (build-system python-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
+                  (add-before 'unpack 'n (lambda _ #t))
                   ;; setup.py mistakenly requires python-magic from PyPi, even
                   ;; though the Python bindings of `file` are sufficient.
                   ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815844
diff --git a/gnu/packages/patches/ceph-disable-unittest-throttle.patch b/gnu/packages/patches/ceph-disable-unittest-throttle.patch
new file mode 100644
index 0000000000..08ae5f9e24
--- /dev/null
+++ b/gnu/packages/patches/ceph-disable-unittest-throttle.patch
@@ -0,0 +1,52 @@
+FIXME: This test broke after the gcc-5/glibc-2.25 core-updates merge.
+Not sure what's going on here, it hangs after spawning the first thread.
+
+diff --git a/src/test/common/Throttle.cc b/src/test/common/Throttle.cc
+index 5b6d73217d..40a477b2a3 100644
+--- a/src/test/common/Throttle.cc
++++ b/src/test/common/Throttle.cc
+@@ -216,44 +216,6 @@ TEST_F(ThrottleTest, wait) {
+   } while(!waited);
+ }
+ 
+-TEST_F(ThrottleTest, destructor) {
+-  Thread_get *t;
+-  {
+-    int64_t throttle_max = 10;
+-    Throttle *throttle = new Throttle(g_ceph_context, "throttle", throttle_max);
+-
+-    ASSERT_FALSE(throttle->get(5));
+-
+-    t = new Thread_get(*throttle, 7);
+-    t->create("t_throttle");
+-    bool blocked;
+-    useconds_t delay = 1;
+-    do {
+-      usleep(delay);
+-      if (throttle->get_or_fail(1)) {
+-	throttle->put(1);
+-	blocked = false;
+-      } else {
+-	blocked = true;
+-      }
+-      delay *= 2;
+-    } while(!blocked);
+-    delete throttle;
+-  }
+-
+-  { //
+-    // The thread is left hanging, otherwise it will abort().
+-    // Deleting the Throttle on which it is waiting creates a
+-    // inconsistency that will be detected: the Throttle object that
+-    // it references no longer exists.
+-    //
+-    pthread_t id = t->get_thread_id();
+-    ASSERT_EQ(pthread_kill(id, 0), 0);
+-    delete t;
+-    ASSERT_EQ(pthread_kill(id, 0), 0);
+-  }
+-}
+-
+ std::pair<double, std::chrono::duration<double> > test_backoff(
+   double low_threshhold,
+   double high_threshhold,
diff --git a/gnu/packages/patches/icu4c-reset-keyword-list-iterator.patch b/gnu/packages/patches/icu4c-reset-keyword-list-iterator.patch
new file mode 100644
index 0000000000..17970aa4a8
--- /dev/null
+++ b/gnu/packages/patches/icu4c-reset-keyword-list-iterator.patch
@@ -0,0 +1,130 @@
+Copied from upstream: http://bugs.icu-project.org/trac/changeset/39484/.
+
+Fixes <http://bugs.gnu.org/26462> (crashes).
+
+Paths and line endings have been adapted.
+
+Index: icu/source/common/ulist.c
+===================================================================
+--- icu/source/common/ulist.c	(revision 39483)
++++ icu/source/common/ulist.c	(revision 39484)
+@@ -30,5 +30,4 @@
+     
+     int32_t size;
+-    int32_t currentIndex;
+ };
+ 
+@@ -52,5 +51,4 @@
+     newList->tail = NULL;
+     newList->size = 0;
+-    newList->currentIndex = -1;
+     
+     return newList;
+@@ -81,6 +79,7 @@
+         p->next->previous = p->previous;
+     }
+-    list->curr = NULL;
+-    list->currentIndex = 0;
++    if (p == list->curr) {
++        list->curr = p->next;
++    }
+     --list->size;
+     if (p->forceDelete) {
+@@ -151,5 +150,4 @@
+         list->head->previous = newItem;
+         list->head = newItem;
+-        list->currentIndex++;
+     }
+     
+@@ -194,5 +192,4 @@
+     curr = list->curr;
+     list->curr = curr->next;
+-    list->currentIndex++;
+     
+     return curr->data;
+@@ -210,5 +207,4 @@
+     if (list != NULL) {
+         list->curr = list->head;
+-        list->currentIndex = 0;
+     }
+ }
+@@ -273,3 +269,2 @@
+     return (UList *)(en->context);
+ }
+-
+Index: icu/source/i18n/ucol_res.cpp
+===================================================================
+--- icu/source/i18n/ucol_res.cpp	(revision 39483)
++++ icu/source/i18n/ucol_res.cpp	(revision 39484)
+@@ -681,4 +681,5 @@
+     }
+     memcpy(en, &defaultKeywordValues, sizeof(UEnumeration));
++    ulist_resetList(sink.values);  // Initialize the iterator.
+     en->context = sink.values;
+     sink.values = NULL;  // Avoid deletion in the sink destructor.
+Index: icu/source/test/intltest/apicoll.cpp
+===================================================================
+--- icu/source/test/intltest/apicoll.cpp	(revision 39483)
++++ icu/source/test/intltest/apicoll.cpp	(revision 39484)
+@@ -82,14 +82,7 @@
+     col = Collator::createInstance(Locale::getEnglish(), success);
+     if (U_FAILURE(success)){
+-        errcheckln(success, "Default Collator creation failed. - %s", u_errorName(success));
+-        return;
+-    }
+-
+-    StringEnumeration* kwEnum = col->getKeywordValuesForLocale("", Locale::getEnglish(),true,success);
+-    if (U_FAILURE(success)){
+-        errcheckln(success, "Get Keyword Values for Locale failed. - %s", u_errorName(success));
+-        return;
+-    }
+-    delete kwEnum;
++        errcheckln(success, "English Collator creation failed. - %s", u_errorName(success));
++        return;
++    }
+ 
+     col->getVersion(versionArray);
+@@ -230,4 +223,27 @@
+     delete aFrCol;
+     delete junk;
++}
++
++void CollationAPITest::TestKeywordValues() {
++    IcuTestErrorCode errorCode(*this, "TestKeywordValues");
++    LocalPointer<Collator> col(Collator::createInstance(Locale::getEnglish(), errorCode));
++    if (errorCode.logIfFailureAndReset("English Collator creation failed")) {
++        return;
++    }
++
++    LocalPointer<StringEnumeration> kwEnum(
++        col->getKeywordValuesForLocale("collation", Locale::getEnglish(), TRUE, errorCode));
++    if (errorCode.logIfFailureAndReset("Get Keyword Values for English Collator failed")) {
++        return;
++    }
++    assertTrue("expect at least one collation tailoring for English", kwEnum->count(errorCode) > 0);
++    const char *kw;
++    UBool hasStandard = FALSE;
++    while ((kw = kwEnum->next(NULL, errorCode)) != NULL) {
++        if (strcmp(kw, "standard") == 0) {
++            hasStandard = TRUE;
++        }
++    }
++    assertTrue("expect at least the 'standard' collation tailoring for English", hasStandard);
+ }
+ 
+@@ -2467,4 +2483,5 @@
+     TESTCASE_AUTO_BEGIN;
+     TESTCASE_AUTO(TestProperty);
++    TESTCASE_AUTO(TestKeywordValues);
+     TESTCASE_AUTO(TestOperators);
+     TESTCASE_AUTO(TestDuplicate);
+Index: icu/source/test/intltest/apicoll.h
+===================================================================
+--- icu/source/test/intltest/apicoll.h	(revision 39483)
++++ icu/source/test/intltest/apicoll.h	(revision 39484)
+@@ -36,4 +36,5 @@
+      */
+     void TestProperty(/* char* par */);
++    void TestKeywordValues();
+ 
+     /**
diff --git a/gnu/packages/patches/mupdf-CVE-2017-5896.patch b/gnu/packages/patches/mupdf-CVE-2017-5896.patch
deleted file mode 100644
index 1537ecc896..0000000000
--- a/gnu/packages/patches/mupdf-CVE-2017-5896.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-Fix CVE-2017-5896:
-
-https://bugs.ghostscript.com/show_bug.cgi?id=697515
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5896
-http://www.openwall.com/lists/oss-security/2017/02/10/1
-https://security-tracker.debian.org/tracker/CVE-2017-5896
-https://blogs.gentoo.org/ago/2017/02/09/mupdf-use-after-free-in-fz_subsample_pixmap-pixmap-c/
-
-Patch lifted from upstream source repository:
-
-http://git.ghostscript.com/?p=mupdf.git;h=2c4e5867ee699b1081527bc6c6ea0e99a35a5c27
-
-From 2c4e5867ee699b1081527bc6c6ea0e99a35a5c27 Mon Sep 17 00:00:00 2001
-From: Robin Watts <Robin.Watts@artifex.com>
-Date: Thu, 9 Feb 2017 07:12:16 -0800
-Subject: [PATCH] bug 697515: Fix out of bounds read in fz_subsample_pixmap
-
-Pointer arithmetic for final special case was going wrong.
----
- source/fitz/pixmap.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/source/fitz/pixmap.c b/source/fitz/pixmap.c
-index a8317127..f1291dc2 100644
---- a/source/fitz/pixmap.c
-+++ b/source/fitz/pixmap.c
-@@ -1104,6 +1104,7 @@ fz_subsample_pixmap_ARM(unsigned char *ptr, int w, int h, int f, int factor,
- 	"@STACK:r1,<9>,factor,n,fwd,back,back2,fwd2,divX,back4,fwd4,fwd3,divY,back5,divXY\n"
- 	"ldr	r4, [r13,#4*22]		@ r4 = divXY			\n"
- 	"ldr	r5, [r13,#4*11]		@ for (nn = n; nn > 0; n--) {	\n"
-+	"ldr	r8, [r13,#4*17]		@ r8 = back4			\n"
- 	"18:				@				\n"
- 	"mov	r14,#0			@ r14= v = 0			\n"
- 	"sub	r5, r5, r1, LSL #8	@ for (xx = x; xx > 0; x--) {	\n"
-@@ -1120,7 +1121,7 @@ fz_subsample_pixmap_ARM(unsigned char *ptr, int w, int h, int f, int factor,
- 	"mul	r14,r4, r14		@ r14= v *= divX		\n"
- 	"mov	r14,r14,LSR #16		@ r14= v >>= 16			\n"
- 	"strb	r14,[r9], #1		@ *d++ = r14			\n"
--	"sub	r0, r0, r8		@ s -= back2			\n"
-+	"sub	r0, r0, r8		@ s -= back4			\n"
- 	"subs	r5, r5, #1		@ n--				\n"
- 	"bgt	18b			@ }				\n"
- 	"21:				@				\n"
-@@ -1249,6 +1250,7 @@ fz_subsample_pixmap(fz_context *ctx, fz_pixmap *tile, int factor)
- 		x += f;
- 		if (x > 0)
- 		{
-+			int back4 = x * n - 1;
- 			div = x * y;
- 			for (nn = n; nn > 0; nn--)
- 			{
-@@ -1263,7 +1265,7 @@ fz_subsample_pixmap(fz_context *ctx, fz_pixmap *tile, int factor)
- 					s -= back5;
- 				}
- 				*d++ = v / div;
--				s -= back2;
-+				s -= back4;
- 			}
- 		}
- 	}
--- 
-2.12.0
-
diff --git a/gnu/packages/patches/mupdf-CVE-2017-5991.patch b/gnu/packages/patches/mupdf-CVE-2017-5991.patch
deleted file mode 100644
index 1fa6dc3466..0000000000
--- a/gnu/packages/patches/mupdf-CVE-2017-5991.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-Fix CVE-2017-5991:
-
-https://bugs.ghostscript.com/show_bug.cgi?id=697500
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5991
-https://security-tracker.debian.org/tracker/CVE-2017-5991
-
-Patch lifted from upstream source repository:
-
-http://git.ghostscript.com/?p=mupdf.git;h=1912de5f08e90af1d9d0a9791f58ba3afdb9d465
-
-From 1912de5f08e90af1d9d0a9791f58ba3afdb9d465 Mon Sep 17 00:00:00 2001
-From: Robin Watts <robin.watts@artifex.com>
-Date: Thu, 9 Feb 2017 15:49:15 +0000
-Subject: [PATCH] Bug 697500: Fix NULL ptr access.
-
-Cope better with errors during rendering - avoid letting the
-gstate stack get out of sync.
-
-This avoids us ever getting into the situation of popping
-a clip when we should be popping a mask or a group. This was
-causing an unexpected case in the painting.
----
- source/pdf/pdf-op-run.c | 26 ++++++++++++++++++--------
- 1 file changed, 18 insertions(+), 8 deletions(-)
-
-diff --git a/source/pdf/pdf-op-run.c b/source/pdf/pdf-op-run.c
-index a3ea895d..f1eac8d3 100644
---- a/source/pdf/pdf-op-run.c
-+++ b/source/pdf/pdf-op-run.c
-@@ -1213,6 +1213,7 @@ pdf_run_xobject(fz_context *ctx, pdf_run_processor *proc, pdf_xobject *xobj, pdf
- 	pdf_run_processor *pr = (pdf_run_processor *)proc;
- 	pdf_gstate *gstate = NULL;
- 	int oldtop = 0;
-+	int oldbot = -1;
- 	fz_matrix local_transform = *transform;
- 	softmask_save softmask = { NULL };
- 	int gparent_save;
-@@ -1232,16 +1233,17 @@ pdf_run_xobject(fz_context *ctx, pdf_run_processor *proc, pdf_xobject *xobj, pdf
- 	fz_var(cleanup_state);
- 	fz_var(gstate);
- 	fz_var(oldtop);
-+	fz_var(oldbot);
- 
- 	gparent_save = pr->gparent;
- 	pr->gparent = pr->gtop;
-+	oldtop = pr->gtop;
- 
- 	fz_try(ctx)
- 	{
- 		pdf_gsave(ctx, pr);
- 
- 		gstate = pr->gstate + pr->gtop;
--		oldtop = pr->gtop;
- 
- 		pdf_xobject_bbox(ctx, xobj, &xobj_bbox);
- 		pdf_xobject_matrix(ctx, xobj, &xobj_matrix);
-@@ -1302,12 +1304,25 @@ pdf_run_xobject(fz_context *ctx, pdf_run_processor *proc, pdf_xobject *xobj, pdf
- 
- 		doc = pdf_get_bound_document(ctx, xobj->obj);
- 
-+		oldbot = pr->gbot;
-+		pr->gbot = pr->gtop;
-+
- 		pdf_process_contents(ctx, (pdf_processor*)pr, doc, resources, xobj->obj, NULL);
- 	}
- 	fz_always(ctx)
- 	{
-+		/* Undo any gstate mismatches due to the pdf_process_contents call */
-+		if (oldbot != -1)
-+		{
-+			while (pr->gtop > pr->gbot)
-+			{
-+				pdf_grestore(ctx, pr);
-+			}
-+			pr->gbot = oldbot;
-+		}
-+
- 		if (cleanup_state >= 3)
--			pdf_grestore(ctx, pr); /* Remove the clippath */
-+			pdf_grestore(ctx, pr); /* Remove the state we pushed for the clippath */
- 
- 		/* wrap up transparency stacks */
- 		if (transparency)
-@@ -1341,13 +1356,8 @@ pdf_run_xobject(fz_context *ctx, pdf_run_processor *proc, pdf_xobject *xobj, pdf
- 		pr->gstate[pr->gparent].ctm = gparent_save_ctm;
- 		pr->gparent = gparent_save;
- 
--		if (gstate)
--		{
--			while (oldtop < pr->gtop)
--				pdf_grestore(ctx, pr);
--
-+		while (oldtop < pr->gtop)
- 			pdf_grestore(ctx, pr);
--		}
- 
- 		pdf_unmark_obj(ctx, xobj->obj);
- 	}
--- 
-2.12.0
-
diff --git a/gnu/packages/patches/mupdf-build-with-openjpeg-2.1.patch b/gnu/packages/patches/mupdf-build-with-openjpeg-2.1.patch
index d97c1cb348..0b5b735ff3 100644
--- a/gnu/packages/patches/mupdf-build-with-openjpeg-2.1.patch
+++ b/gnu/packages/patches/mupdf-build-with-openjpeg-2.1.patch
@@ -13,17 +13,15 @@ diff --git a/source/fitz/load-jpx.c b/source/fitz/load-jpx.c
 index 6b92e5c..72dea50 100644
 --- a/source/fitz/load-jpx.c
 +++ b/source/fitz/load-jpx.c
-@@ -1,13 +1,5 @@
- #include "mupdf/fitz.h"
+@@ -444,11 +444,6 @@
+ 
+ #else /* HAVE_LURATECH */
  
--/* Without the definition of OPJ_STATIC, compilation fails on windows
-- * due to the use of __stdcall. We believe it is required on some
-- * linux toolchains too. */
 -#define OPJ_STATIC
--#ifndef _MSC_VER
+-#define OPJ_HAVE_INTTYPES_H
+-#if !defined(_WIN32) && !defined(_WIN64)
 -#define OPJ_HAVE_STDINT_H
 -#endif
--
- #include <openjpeg.h>
+ #define USE_JPIP
  
- static void fz_opj_error_callback(const char *msg, void *client_data)
+ #include <openjpeg.h>
diff --git a/gnu/packages/patches/mupdf-mujs-CVE-2016-10132.patch b/gnu/packages/patches/mupdf-mujs-CVE-2016-10132.patch
deleted file mode 100644
index e752e57ec5..0000000000
--- a/gnu/packages/patches/mupdf-mujs-CVE-2016-10132.patch
+++ /dev/null
@@ -1,188 +0,0 @@
-Fix CVE-2016-10132:
-
-https://bugs.ghostscript.com/show_bug.cgi?id=697381
-http://seclists.org/oss-sec/2017/q1/74
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10132
-
-Patch lifted from upstream source repository:
-
-http://git.ghostscript.com/?p=mujs.git;h=fd003eceda531e13fbdd1aeb6e9c73156496e569
-
-From fd003eceda531e13fbdd1aeb6e9c73156496e569 Mon Sep 17 00:00:00 2001
-From: Tor Andersson <tor@ccxvii.net>
-Date: Fri, 2 Dec 2016 14:56:20 -0500
-Subject: [PATCH] Fix 697381: check allocation when compiling regular
- expressions.
-
-Also use allocator callback function.
----
- thirdparty/mujs/jsgc.c     |  2 +-
- thirdparty/mujs/jsregexp.c |  2 +-
- thirdparty/mujs/jsstate.c  |  6 ------
- thirdparty/mujs/regexp.c   | 45 +++++++++++++++++++++++++++++++++++----------
- thirdparty/mujs/regexp.h   |  7 +++++++
- 5 files changed, 44 insertions(+), 18 deletions(-)
-
-diff --git a/thirdparty/mujs/jsgc.c b/thirdparty/mujs/jsgc.c
-index 4f7e7dc..f80111e 100644
---- a/thirdparty/mujs/jsgc.c
-+++ b/thirdparty/mujs/jsgc.c
-@@ -46,7 +46,7 @@ static void jsG_freeobject(js_State *J, js_Object *obj)
- 		jsG_freeproperty(J, obj->head);
- 	if (obj->type == JS_CREGEXP) {
- 		js_free(J, obj->u.r.source);
--		js_regfree(obj->u.r.prog);
-+		js_regfreex(J->alloc, J->actx, obj->u.r.prog);
- 	}
- 	if (obj->type == JS_CITERATOR)
- 		jsG_freeiterator(J, obj->u.iter.head);
-diff --git a/thirdparty/mujs/jsregexp.c b/thirdparty/mujs/jsregexp.c
-index a2d5156..7b09c06 100644
---- a/thirdparty/mujs/jsregexp.c
-+++ b/thirdparty/mujs/jsregexp.c
-@@ -16,7 +16,7 @@ void js_newregexp(js_State *J, const char *pattern, int flags)
- 	if (flags & JS_REGEXP_I) opts |= REG_ICASE;
- 	if (flags & JS_REGEXP_M) opts |= REG_NEWLINE;
- 
--	prog = js_regcomp(pattern, opts, &error);
-+	prog = js_regcompx(J->alloc, J->actx, pattern, opts, &error);
- 	if (!prog)
- 		js_syntaxerror(J, "regular expression: %s", error);
- 
-diff --git a/thirdparty/mujs/jsstate.c b/thirdparty/mujs/jsstate.c
-index 638cab3..fd5bcf6 100644
---- a/thirdparty/mujs/jsstate.c
-+++ b/thirdparty/mujs/jsstate.c
-@@ -9,12 +9,6 @@
- 
- static void *js_defaultalloc(void *actx, void *ptr, int size)
- {
--	if (size == 0) {
--		free(ptr);
--		return NULL;
--	}
--	if (!ptr)
--		return malloc((size_t)size);
- 	return realloc(ptr, (size_t)size);
- }
- 
-diff --git a/thirdparty/mujs/regexp.c b/thirdparty/mujs/regexp.c
-index 9852be2..01c18a3 100644
---- a/thirdparty/mujs/regexp.c
-+++ b/thirdparty/mujs/regexp.c
-@@ -807,23 +807,31 @@ static void dumpprog(Reprog *prog)
- }
- #endif
- 
--Reprog *regcomp(const char *pattern, int cflags, const char **errorp)
-+Reprog *regcompx(void *(*alloc)(void *ctx, void *p, int n), void *ctx,
-+	const char *pattern, int cflags, const char **errorp)
- {
- 	struct cstate g;
- 	Renode *node;
- 	Reinst *split, *jump;
- 	int i;
- 
--	g.prog = malloc(sizeof (Reprog));
--	g.pstart = g.pend = malloc(sizeof (Renode) * strlen(pattern) * 2);
-+	g.pstart = NULL;
-+	g.prog = NULL;
- 
- 	if (setjmp(g.kaboom)) {
- 		if (errorp) *errorp = g.error;
--		free(g.pstart);
--		free(g.prog);
-+		alloc(ctx, g.pstart, 0);
-+		alloc(ctx, g.prog, 0);
- 		return NULL;
- 	}
- 
-+	g.prog = alloc(ctx, NULL, sizeof (Reprog));
-+	if (!g.prog)
-+		die(&g, "cannot allocate regular expression");
-+	g.pstart = g.pend = alloc(ctx, NULL, sizeof (Renode) * strlen(pattern) * 2);
-+	if (!g.pstart)
-+		die(&g, "cannot allocate regular expression parse list");
-+
- 	g.source = pattern;
- 	g.ncclass = 0;
- 	g.nsub = 1;
-@@ -840,7 +848,9 @@ Reprog *regcomp(const char *pattern, int cflags, const char **errorp)
- 		die(&g, "syntax error");
- 
- 	g.prog->nsub = g.nsub;
--	g.prog->start = g.prog->end = malloc((count(node) + 6) * sizeof (Reinst));
-+	g.prog->start = g.prog->end = alloc(ctx, NULL, (count(node) + 6) * sizeof (Reinst));
-+	if (!g.prog->start)
-+		die(&g, "cannot allocate regular expression instruction list");
- 
- 	split = emit(g.prog, I_SPLIT);
- 	split->x = split + 3;
-@@ -859,20 +869,35 @@ Reprog *regcomp(const char *pattern, int cflags, const char **errorp)
- 	dumpprog(g.prog);
- #endif
- 
--	free(g.pstart);
-+	alloc(ctx, g.pstart, 0);
- 
- 	if (errorp) *errorp = NULL;
- 	return g.prog;
- }
- 
--void regfree(Reprog *prog)
-+void regfreex(void *(*alloc)(void *ctx, void *p, int n), void *ctx, Reprog *prog)
- {
- 	if (prog) {
--		free(prog->start);
--		free(prog);
-+		alloc(ctx, prog->start, 0);
-+		alloc(ctx, prog, 0);
- 	}
- }
- 
-+static void *default_alloc(void *ctx, void *p, int n)
-+{
-+	return realloc(p, (size_t)n);
-+}
-+
-+Reprog *regcomp(const char *pattern, int cflags, const char **errorp)
-+{
-+	return regcompx(default_alloc, NULL, pattern, cflags, errorp);
-+}
-+
-+void regfree(Reprog *prog)
-+{
-+	regfreex(default_alloc, NULL, prog);
-+}
-+
- /* Match */
- 
- static int isnewline(int c)
-diff --git a/thirdparty/mujs/regexp.h b/thirdparty/mujs/regexp.h
-index 4bb4615..6bb73e8 100644
---- a/thirdparty/mujs/regexp.h
-+++ b/thirdparty/mujs/regexp.h
-@@ -1,6 +1,8 @@
- #ifndef regexp_h
- #define regexp_h
- 
-+#define regcompx js_regcompx
-+#define regfreex js_regfreex
- #define regcomp js_regcomp
- #define regexec js_regexec
- #define regfree js_regfree
-@@ -8,6 +10,11 @@
- typedef struct Reprog Reprog;
- typedef struct Resub Resub;
- 
-+Reprog *regcompx(void *(*alloc)(void *ctx, void *p, int n), void *ctx,
-+	const char *pattern, int cflags, const char **errorp);
-+void regfreex(void *(*alloc)(void *ctx, void *p, int n), void *ctx,
-+	Reprog *prog);
-+
- Reprog *regcomp(const char *pattern, int cflags, const char **errorp);
- int regexec(Reprog *prog, const char *string, Resub *sub, int eflags);
- void regfree(Reprog *prog);
--- 
-2.9.1
-
diff --git a/gnu/packages/patches/mupdf-mujs-CVE-2016-10133.patch b/gnu/packages/patches/mupdf-mujs-CVE-2016-10133.patch
deleted file mode 100644
index d73849262c..0000000000
--- a/gnu/packages/patches/mupdf-mujs-CVE-2016-10133.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Fix CVE-2016-10133:
-
-https://bugs.ghostscript.com/show_bug.cgi?id=697401
-http://seclists.org/oss-sec/2017/q1/74
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10133
-
-Patch lifted from upstream source repository:
-
-https://git.ghostscript.com/?p=mujs.git;h=77ab465f1c394bb77f00966cd950650f3f53cb24
-
-From 77ab465f1c394bb77f00966cd950650f3f53cb24 Mon Sep 17 00:00:00 2001
-From: Tor Andersson <tor.andersson@gmail.com>
-Date: Thu, 12 Jan 2017 14:47:01 +0100
-Subject: [PATCH] Fix 697401: Error when dropping extra arguments to
- lightweight functions.
-
----
- thirdparty/mujs/jsrun.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/thirdparty/mujs/jsrun.c b/thirdparty/mujs/jsrun.c
-index ee80845..782a6f9 100644
---- a/thirdparty/mujs/jsrun.c
-+++ b/thirdparty/mujs/jsrun.c
-@@ -937,7 +937,7 @@ static void jsR_calllwfunction(js_State *J, int n, js_Function *F, js_Environmen
- 	jsR_savescope(J, scope);
- 
- 	if (n > F->numparams) {
--		js_pop(J, F->numparams - n);
-+		js_pop(J, n - F->numparams);
- 		n = F->numparams;
- 	}
- 	for (i = n; i < F->varlen; ++i)
--- 
-2.9.1
-
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 0882d3b942..5ccaa38eea 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -531,7 +531,7 @@ extracting content or merging files.")
 (define-public mupdf
   (package
     (name "mupdf")
-    (version "1.10a")
+    (version "1.11")
     (source
       (origin
         (method url-fetch)
@@ -539,10 +539,8 @@ extracting content or merging files.")
                             name "-" version "-source.tar.gz"))
         (sha256
          (base32
-          "0dm8wcs8i29aibzkqkrn8kcnk4q0kd1v66pg48h5c3qqp4v1zk5a"))
-        (patches (search-patches "mupdf-build-with-openjpeg-2.1.patch"
-                                 "mupdf-mujs-CVE-2016-10132.patch"
-                                 "mupdf-mujs-CVE-2016-10133.patch"))
+          "02phamcchgsmvjnb3ir7r5sssvx9fcrscn297z73b82n1jl79510"))
+        (patches (search-patches "mupdf-build-with-openjpeg-2.1.patch"))
         (modules '((guix build utils)))
         (snippet
             ;; Delete all the bundled libraries except for mujs, which is
@@ -554,7 +552,7 @@ extracting content or merging files.")
                          "thirdparty/glfw"
                          "thirdparty/harfbuzz"
                          "thirdparty/jbig2dec"
-                         "thirdparty/jpeg"
+                         "thirdparty/libjpeg"
                          "thirdparty/openjpeg"
                          "thirdparty/zlib")))))
     (build-system gnu-build-system)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 3470121883..3eb7815f28 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2017 Raoul J.P. Bonnal <ilpuccio.febo@gmail.com>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 humanitiesNerd <catonano@gmail.com>
+;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -6122,9 +6123,8 @@ statements: @code{switch} and @code{case}.")
     (build-system perl-build-system)
     (synopsis "Perl extension for getting CPU information")
     (description
-     "In responce to a post on perlmonks.org, a module for counting the number
-of CPU's on a system.  Support has now also been added for type of CPU and
-clock speed.")
+     "Sys::CPU is a module for counting the number of CPUs on a system, and
+determining their type and clock speed.")
     (home-page (string-append "http://search.cpan.org/~mzsanford/"
                               "Sys-CPU-" version))
     (license (package-license perl))))
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index 6d84bf2db6..f94d56992e 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2016, 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -173,14 +173,14 @@ colors, styles, options and details.")
 (define-public asymptote
   (package
     (name "asymptote")
-    (version "2.40")
+    (version "2.41")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/asymptote/"
                                   version "/asymptote-" version ".src.tgz"))
               (sha256
                (base32
-                "08hy8hgh217df9kwznr22mg8vxxh3rbmbxgx3nqhxyggc9xqy544"))))
+                "1w7fbq6gy65g0mxg6wdxi7v178c5yxvh9yrnv3bzm4sjzf4pwvhx"))))
     (build-system gnu-build-system)
     ;; Note: The 'asy' binary retains a reference to docdir for use with its
     ;; "help" command in interactive mode, so adding a "doc" output is not
diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm
index 42fb5df5ae..cd796525c0 100644
--- a/gnu/packages/pulseaudio.scm
+++ b/gnu/packages/pulseaudio.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -220,3 +221,38 @@ sound server.")
 graphical user interface to connect to a PulseAudio server and
 easily control the volume of all clients, sinks, etc.")
     (license l:gpl2+)))
+
+(define-public ponymix
+  (package
+    (name "ponymix")
+    (version "5")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "https://github.com/falconindy/ponymix/"
+                                 "archive/" version ".tar.gz"))
+             (sha256
+              (base32
+               "1c0ch98zry3c4ixywwynjid1n1nh4xl4l1p548giq2w3zwflaghn"))
+             (file-name (string-append name "-" version ".tar.gz"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; There is no test suite.
+       #:make-flags (let ((out (assoc-ref %outputs "out")))
+                      (list (string-append "DESTDIR=" out)))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-paths
+           (lambda _
+             (substitute* "Makefile"
+               (("/usr") ""))))
+         (delete 'configure)))) ; There's no configure phase.
+    (inputs
+     `(("pulseaudio" ,pulseaudio)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "https://github.com/falconindy/ponymix")
+    (synopsis "Console-based PulseAudio mixer")
+    (description "Ponymix is a PulseAudio mixer and volume controller with a
+command-line interface.  In addition, it is possible to use named sources and
+sinks.")
+    (license l:expat)))
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 231c629297..8cd433a93d 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -7089,7 +7089,7 @@ printing of sub-tables by specifying a row range.")
     (home-page "http://www.pytables.org/")
     (synopsis "Hierarchical datasets for Python")
     (description "PyTables is a package for managing hierarchical datasets and
-designed to efficently cope with extremely large amounts of data.")
+designed to efficiently cope with extremely large amounts of data.")
     (license license:bsd-3)))
 
 (define-public python2-tables
@@ -8691,7 +8691,7 @@ pure Python module that works on virtually all Python versions.")
     (description "Execnet provides a share-nothing model with
 channel-send/receive communication for distributing execution across many
 Python interpreters across version, platform and network barriers.  It has a
-minimal and fast API targetting the following uses:
+minimal and fast API targeting the following uses:
 @enumerate
 @item distribute tasks to (many) local or remote CPUs
 @item write and deploy hybrid multi-process applications
@@ -10790,7 +10790,7 @@ Python.  It generates C++ code and a Makefile."))
     (description "Rope is a refactoring library for Python.  It facilitates
 the renaming, moving and extracting of attributes, functions, modules, fields
 and parameters in Python 2 source code.  These refactorings can also be applied
-to occurences in strings and comments.")
+to occurrences in strings and comments.")
     (license license:gpl2)))
 
 (define-public python-py3status
@@ -13832,7 +13832,7 @@ in other versions.")
     (home-page "https://liw.fi/coverage-test-runner/")
     (synopsis "Python module for running unit tests")
     (description "@code{CoverageTestRunner} is a python module for running
-unit tests and failing them if the unit test module does not excercise all
+unit tests and failing them if the unit test module does not exercise all
 statements in the module it tests.")
     (license license:gpl3+)))
 
diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index 8c13222fe3..5bcd5980a1 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -146,14 +146,14 @@ anywhere.")
 (define-public samba
   (package
     (name "samba")
-    (version "4.5.7")
+    (version "4.5.8")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.samba.org/pub/samba/stable/"
                                  "samba-" version ".tar.gz"))
              (sha256
               (base32
-               "004lzl059bc2wvkmivxiy96y87l4ajjw16qvkqcdhf86z2dg0w5c"))))
+               "1w41pxszv5z6gjclg6zymn47mk8n51lnpgcx1k2q18i3i1nnafzn"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 1ccf62586f..f6aee005c4 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -392,7 +392,7 @@ implementation techniques and as an expository tool.")
 (define-public racket
   (package
     (name "racket")
-    (version "6.6")
+    (version "6.8")
     (source (origin
              (method url-fetch)
              (uri (list (string-append "http://mirror.racket-lang.org/installers/"
@@ -402,7 +402,7 @@ implementation techniques and as an expository tool.")
                          version "/racket/racket-" version "-src-unix.tgz")))
              (sha256
               (base32
-               "1kzdi1n6h6hmz8zd9k8r5a5yp2ryi4w3c2fjm1k6cqicn18cwaxz"))))
+               "1l9z1a0r5zydr50cklx9xjw3l0pwnf64i10xq7112fl1r89q3qgv"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 9e073b7a98..eb3cb26759 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -262,7 +262,7 @@ it a convenient format to store user input files.")
 (define-public capnproto
   (package
     (name "capnproto")
-    (version "0.5.3")
+    (version "0.5.3.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -270,7 +270,7 @@ it a convenient format to store user input files.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "1yvaadhgakskqq5wpv53hd6fc3pp17mrdldw4i5cvgck4iwprcfd"))))
+                "06wi4fcxx58nc7pr2xga20hn11psk56b0yhna5bx2pw90mlcbd84"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
index 1d903520e7..53303d28d7 100644
--- a/gnu/packages/speech.scm
+++ b/gnu/packages/speech.scm
@@ -24,11 +24,13 @@
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages textutils))
 
 (define-public mitlm
@@ -75,9 +77,12 @@ efficiency through the use of a compact vector representation of n-grams.")
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("dotconf" ,dotconf)
+       ("espeak" ,espeak)
        ("glib" ,glib)
        ("libltdl" ,libltdl)
-       ("libsndfile" ,libsndfile)))
+       ("libsndfile" ,libsndfile)
+       ("pulseaudio" ,pulseaudio)
+       ("python" ,python)))
     (synopsis "Common interface to speech synthesizers")
     (description "The Speech Dispatcher project provides a high-level
 device independent layer for access to speech synthesis through a simple,
diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm
index 7288a0f790..388eb10444 100644
--- a/gnu/packages/storage.scm
+++ b/gnu/packages/storage.scm
@@ -59,6 +59,7 @@
               (patches
                (search-patches "ceph-skip-unittest_blockdev.patch"
                                "ceph-skip-collect-sys-info-test.patch"
+                               "ceph-disable-unittest-throttle.patch"
                                "ceph-disable-cpu-optimizations.patch"))
               (modules '((guix build utils)))
               (snippet
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 7dcd164dc6..979278a53b 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -85,7 +85,7 @@
 gnome-terminal (GNOME) or Konsole (KDE), with the difference that it drops down
 from the edge of a screen when a certain configurable hotkey is pressed.  This
 is similar to the built-in consoles in some applications.  Tilda is highly
-configureable through a graphical wizard.")
+configurable through a graphical wizard.")
     (home-page "https://github.com/lanoxx/tilda")
     (license license:gpl2+)))
 
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 9da627b65b..920868b52d 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -42,18 +42,17 @@
 (define-public vis
   (package
     (name "vis")
-    (version "0.2")
+    (version "0.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/martanne/"
                                   name "/archive/v" version ".tar.gz"))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
-               (base32 "0bbmkblpndc53pvr8xcfywdn8g351yxfj8c46zp5d744c3bq2nry"))))
+               (base32 "0xvhkj4j8pcmpnsx7f93d6n2f068xnl7wacfs97vr0agxwrfvn5y"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags '("CFLAGS=-pie")
-       #:tests? #f ; No tests.
+     `(#:tests? #f ; No tests.
        #:phases
        (modify-phases %standard-phases
          (add-after 'install 'wrap-binary
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index f6dab288e3..383e88cf9b 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -15,6 +15,8 @@
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2017 Feng Shu <tumashu@163.com>
+;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -95,6 +97,7 @@
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
+  #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
@@ -365,13 +368,13 @@ canvas operations.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://download.videolan.org/pub/videolan/libdca/"
+                    "https://download.videolan.org/pub/videolan/libdca/"
                     version "/libdca-" version ".tar.bz2"))
               (sha256
                (base32
                 "0hh6a7l8vvccsd5i1fkv9av2gzv9fy8m0b8jpsn5p6hh4bh2586v"))))
     (build-system gnu-build-system)
-    (home-page "http://www.videolan.org/developers/libdca.html")
+    (home-page "https://www.videolan.org/developers/libdca.html")
     (synopsis "DTS Coherent Acoustics decoder")
     (description "libdca is a library for decoding DTS Coherent Acoustics
 streams.")
@@ -985,7 +988,7 @@ access to mpv's powerful playback capabilities.")
 (define-public youtube-dl
   (package
     (name "youtube-dl")
-    (version "2017.04.14")
+    (version "2017.04.16")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://yt-dl.org/downloads/"
@@ -993,7 +996,7 @@ access to mpv's powerful playback capabilities.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1rjc4ilafzrig02znrlxwjyzk5rpcc3li55n8rw2c4dmjmvjppkh"))))
+                "1pgdfspzv15772q7kakfq5qx1r70lcviwzk6sz9z1cddxzffxgdd"))))
     (build-system python-build-system)
     (arguments
      ;; The problem here is that the directory for the man page and completion
@@ -1024,10 +1027,85 @@ YouTube.com and a few more sites.")
     (home-page "https://yt-dl.org")
     (license license:public-domain)))
 
+(define-public youtube-dl-gui
+  (package
+    (name "youtube-dl-gui")
+    (version "0.3.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "Youtube-DLG" version))
+       (sha256
+        (base32
+         "0napxwzgls5ik1bxbp99vly32l23xpc4ng5kr24hfhf21ypjyadb"))))
+    (build-system python-build-system)
+    (arguments
+     ;; In Guix, wxpython has not yet been packaged for Python 3.
+     `(#:python ,python-2
+       ;; This package has no tests.
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'patch-source
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; The youtube-dl-gui program lets you configure options.  Some of
+             ;; them are problematic, so we change their defaults.
+             (substitute* "youtube_dl_gui/optionsmanager.py"
+               ;; When this is true, the builder process will try (and fail) to
+               ;; write logs to the builder user's home directory.
+               (("'enable_log': True") "'enable_log': False")
+               ;; This determines which youtube-dl program youtube-dl-gui will
+               ;; run.  If we don't set this, then youtube-dl-gui might download
+               ;; an arbitrary copy from the Internet into the user's home
+               ;; directory and run it, so let's make sure youtube-dl-gui uses
+               ;; the youtube-dl from the inputs by default.
+               (("'youtubedl_path': self.config_path")
+                (string-append "'youtubedl_path': '"
+                               (assoc-ref inputs "youtube-dl")
+                               "/bin'"))
+               ;; When this is True, when youtube-dl-gui is finished downloading
+               ;; a file, it will try (and possibly fail) to open the directory
+               ;; containing the downloaded file.  This can fail because it
+               ;; assumes that xdg-open is in PATH.  Unfortunately, simply
+               ;; adding xdg-utils to the propagated inputs is not enough to
+               ;; make this work, so for now we set the default to False.
+               (("'open_dl_dir': True") "'open_dl_dir': False"))
+             ;; The youtube-dl program from the inputs is actually a wrapper
+             ;; script written in bash, so attempting to invoke it as a python
+             ;; script will fail.
+             (substitute* "youtube_dl_gui/downloaders.py"
+               (("cmd = \\['python', self\\.youtubedl_path\\]")
+                "cmd = [self.youtubedl_path]"))
+             ;; Use relative paths for installing data files so youtube-dl-gui
+             ;; installs the files relative to its prefix in the store, rather
+             ;; than relative to /.  Also, instead of installing data files into
+             ;; $prefix/usr/share, install them into $prefix/share for
+             ;; consistency (see: (standards) Directory Variables).
+             (substitute* "setup.py"
+               (("= '/usr/share") "= 'share"))
+             ;; Update get_locale_file() so it finds the installed localization
+             ;; files.
+             (substitute* "youtube_dl_gui/utils.py"
+               (("os\\.path\\.join\\('/usr', 'share'")
+                (string-append "os.path.join('"
+                               (assoc-ref %outputs "out")
+                               "', 'share'"))))))))
+    (inputs
+     `(("python2-wxpython" ,python2-wxpython)
+       ("youtube-dl" ,youtube-dl)))
+    (home-page "https://github.com/MrS0m30n3/youtube-dl-gui")
+    (synopsis
+     "GUI (Graphical User Interface) for @command{youtube-dl}")
+    (description
+     "Youtube-dlG is a GUI (Graphical User Interface) for
+@command{youtube-dl}.  You can use it to download videos from YouTube and any
+other site that youtube-dl supports.")
+    (license license:unlicense)))
+
 (define-public you-get
   (package
     (name "you-get")
-    (version "0.4.652")
+    (version "0.4.715")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1035,7 +1113,7 @@ YouTube.com and a few more sites.")
                     version "/you-get-" version ".tar.gz"))
               (sha256
                (base32
-                "0brkz98lycx8mmxjwmn7jlhqfdbvl0hy070n7skwr1k75kh99q30"))))
+                "043122hfh56fbbszp1kwd1f65asgyn60j1ijday93hf2dkhvbrnh"))))
     (build-system python-build-system)
     (arguments
      ;; no tests
@@ -1097,7 +1175,7 @@ players, like VLC or MPlayer.")
     (version "5.0.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://download.videolan.org/videolan/"
+              (uri (string-append "https://download.videolan.org/videolan/"
                                   name "/" version "/"
                                   name "-" version ".tar.bz2"))
               (sha256
@@ -1120,7 +1198,7 @@ installed).")
     (version "5.0.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://download.videolan.org/videolan/"
+              (uri (string-append "https://download.videolan.org/videolan/"
                                   name "/" version "/"
                                   name "-" version ".tar.bz2"))
               (sha256
@@ -1154,7 +1232,7 @@ encapsulated.")
               (method url-fetch)
               (uri
                (string-append
-                "http://download.videolan.org/videolan/libdvdnav/libdvdnav-"
+                "https://download.videolan.org/videolan/libdvdnav/libdvdnav-"
                 version ".tar.xz"))
               (sha256
                (base32
@@ -1178,14 +1256,14 @@ encapsulated.")
     (version "1.4.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://download.videolan.org/pub/"
+              (uri (string-append "https://download.videolan.org/pub/"
                                   name "/" version "/"
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
                 "0nl45ifc4xcb196snv9d6hinfw614cqpzcqp92dg43c0hickg290"))))
     (build-system gnu-build-system)
-    (home-page "http://www.videolan.org/developers/libdvdcss.html")
+    (home-page "https://www.videolan.org/developers/libdvdcss.html")
     (synopsis "Library for accessing DVDs as block devices")
     (description
      "libdvdcss is a simple library designed for accessing DVDs like a block
@@ -1491,14 +1569,14 @@ tools, XML authoring components, and an extensible plug-in based API.")
 (define-public v4l-utils
   (package
     (name "v4l-utils")
-    (version "1.10.1")
+    (version "1.12.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://linuxtv.org/downloads/v4l-utils"
                                   "/v4l-utils-" version ".tar.bz2"))
               (sha256
                (base32
-                "1h1nhg5cmmzlbipak526nk4bm6d0yb217mll75f3rpg7kz1cqiv1"))))
+                "0vpl3jl0x441y7b5cn7zhdsyi954hp9h2p30jhnr1zkx1rpxsiss"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
@@ -1507,7 +1585,8 @@ tools, XML authoring components, and an extensible plug-in based API.")
                             "/lib/udev")
              "CXXFLAGS=-std=gnu++11")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("glu" ,glu)
@@ -1709,7 +1788,7 @@ and MPEG system streams.")
     (inputs
      `(("libgcrypt" ,libgcrypt)))
     (build-system gnu-build-system)
-    (home-page "http://www.videolan.org/developers/libbdplus.html")
+    (home-page "https://www.videolan.org/developers/libbdplus.html")
     (synopsis "Library for decrypting certain Blu-Ray discs")
     (description "libbdplus is a library which implements the BD+ System
 specifications.")
@@ -1732,7 +1811,7 @@ specifications.")
      `(("bison" ,bison)
        ("flex" ,flex)))
     (build-system gnu-build-system)
-    (home-page "http://www.videolan.org/developers/libaacs.html")
+    (home-page "https://www.videolan.org/developers/libaacs.html")
     (synopsis "Library for decrypting certain Blu-Ray discs")
     (description "libaacs is a library which implements the Advanced Access
 Content System specification.")
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 3dbd6d952b..44ae52202c 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
+;;; Copyright © 2016, 2017 ng0 <ng0@no-reply.pragmatique.xyz>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;;
@@ -60,7 +60,7 @@
 (define-public vim
   (package
     (name "vim")
-    (version "8.0.0494")
+    (version "8.0.0566")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://github.com/vim/vim/archive/v"
@@ -68,7 +68,7 @@
              (file-name (string-append name "-" version ".tar.gz"))
              (sha256
               (base32
-               "08kzimdyla35ndrbn68jf8pmzm7nd2qrydnvk57j089m6ajic62r"))))
+               "0qq9pj8391sikzaahlqi289l5wdkbvsdhz8qb6np268yqizpg4p2"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 972ad73682..88181e1813 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -2812,10 +2812,10 @@ X server.")
 
 
 (define-public xf86-video-intel
-  (let ((commit "7e9e92c86b0fc4c848d164fe571798add5e1e36e"))
+  (let ((commit "b57abe20e81f4b8e4dd203b6a9eda7ff441bc8ce"))
     (package
       (name "xf86-video-intel")
-      (version (string-append "2.99.917-4-" (string-take commit 7)))
+      (version (string-append "2.99.917-5-" (string-take commit 7)))
       (source
        (origin
          ;; there's no current tarball
@@ -2825,7 +2825,7 @@ X server.")
                (commit commit)))
          (sha256
           (base32
-           "0igfw8vpz1q0a2526j81fl65z6avfh6lzzrijcs72gwihqqhb1sv"))
+           "1l08jdrqrpaj2168hlz0hwlx27bm7n7lnv82jjyvy884v47gn2ay"))
          (file-name (string-append name "-" version))))
       (build-system gnu-build-system)
       (inputs `(("mesa" ,mesa)