summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk4
-rw-r--r--gnu/packages/admin.scm39
-rw-r--r--gnu/packages/avr.scm4
-rw-r--r--gnu/packages/connman.scm5
-rw-r--r--gnu/packages/cross-base.scm32
-rw-r--r--gnu/packages/crypto.scm26
-rw-r--r--gnu/packages/emacs.scm53
-rw-r--r--gnu/packages/embedded.scm43
-rw-r--r--gnu/packages/fontutils.scm11
-rw-r--r--gnu/packages/game-development.scm15
-rw-r--r--gnu/packages/games.scm9
-rw-r--r--gnu/packages/gnuzilla.scm56
-rw-r--r--gnu/packages/graphics.scm106
-rw-r--r--gnu/packages/kodi.scm6
-rw-r--r--gnu/packages/linux.scm95
-rw-r--r--gnu/packages/logging.scm40
-rw-r--r--gnu/packages/make-bootstrap.scm4
-rw-r--r--gnu/packages/messaging.scm53
-rw-r--r--gnu/packages/ocaml.scm257
-rw-r--r--gnu/packages/patches/graphite2-CVE-2017-5436.patch25
-rw-r--r--gnu/packages/patches/graphite2-check-code-point-limit.patch50
-rw-r--r--gnu/packages/patches/graphite2-fix-32-bit-wrap-arounds.patch93
-rw-r--r--gnu/packages/patches/graphite2-non-linear-classes-even-number.patch26
-rw-r--r--gnu/packages/python.scm212
-rw-r--r--gnu/packages/tls.scm4
-rw-r--r--gnu/packages/video.scm4
-rw-r--r--gnu/packages/webkit.scm4
-rw-r--r--gnu/packages/wm.scm11
-rw-r--r--gnu/packages/xdisorg.scm4
29 files changed, 920 insertions, 371 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 416bf9e716..6bb230687f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -640,11 +640,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
   %D%/packages/patches/gobject-introspection-cc.patch		\
   %D%/packages/patches/gobject-introspection-girepository.patch	\
-  %D%/packages/patches/graphite2-CVE-2017-5436.patch		\
-  %D%/packages/patches/graphite2-check-code-point-limit.patch	\
   %D%/packages/patches/graphite2-ffloat-store.patch		\
-  %D%/packages/patches/graphite2-fix-32-bit-wrap-arounds.patch	\
-  %D%/packages/patches/graphite2-non-linear-classes-even-number.patch \
   %D%/packages/patches/grep-gnulib-lock.patch                   \
   %D%/packages/patches/grep-timing-sensitive-test.patch		\
   %D%/packages/patches/gsl-test-i686.patch			\
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index aa6ccc0a73..e80dc5867d 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -57,6 +57,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cross-base)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages bison)
@@ -1904,20 +1905,48 @@ Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.")
         '(delete-file-recursively "bin"))
        (file-name (string-append name "-" version ".tar.gz"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("cross-gcc" ,(cross-gcc "arm-linux-gnueabihf"
+                                #:xbinutils (cross-binutils "arm-linux-gnueabihf")
+                                #:libc (cross-libc "arm-linux-gnueabihf")))
+       ("cross-libc" ,(cross-libc "arm-linux-gnueabihf"))))
     (inputs
      `(("libusb" ,libusb)))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; no tests exist
+     `(#:tests? #f                      ; no tests exist
        #:make-flags (list (string-append "PREFIX="
                                          (assoc-ref %outputs "out"))
-                          "CROSS_COMPILE="
-                          "CC=gcc"
-                          "all")
+                          (string-append "CROSS_COMPILE="
+                                         "arm-linux-gnueabihf-")
+                          "CC=gcc")
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
+         (add-before 'build 'set-environment-up
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (define (cross? x)
+               (string-contains x "cross-arm-linux"))
+             (setenv "CROSS_C_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))
+             (setenv "CROSS_CPLUS_INCLUDE_PATH" (getenv "CPLUS_INCLUDE_PATH"))
+             (setenv "CROSS_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
+             (for-each
+              (lambda (env-name)
+                (let* ((env-value (getenv env-name))
+                       (search-path (search-path-as-string->list env-value))
+                       (new-search-path (filter (lambda (e) (not (cross? e)))
+                                                search-path))
+                       (new-env-value (list->search-path-as-string
+                                       new-search-path ":")))
+                  (setenv env-name new-env-value)))
+              '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH" "LIBRARY_PATH"))
+             #t))
+         (replace 'build
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (zero? (apply system* "make" "tools" "misc" make-flags))))
+         (add-after 'build 'build-armhf
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (zero? (apply system* "make" "target-tools" make-flags))))
          (replace 'install
            (lambda* (#:key make-flags #:allow-other-keys)
              (zero? (apply system* "make" "install-all" "install-misc"
diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm
index fd18ff6a9a..916f7983fa 100644
--- a/gnu/packages/avr.scm
+++ b/gnu/packages/avr.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
-;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;;
@@ -39,7 +39,7 @@
     (name "avr-binutils")))
 
 (define-public avr-gcc-4.9
-  (let ((xgcc (cross-gcc "avr" avr-binutils)))
+  (let ((xgcc (cross-gcc "avr" #:xgcc gcc-4.9 #:xbinutils avr-binutils)))
     (package
       (inherit xgcc)
       (name "avr-gcc")
diff --git a/gnu/packages/connman.scm b/gnu/packages/connman.scm
index b3d62d6f6f..08e725118d 100644
--- a/gnu/packages/connman.scm
+++ b/gnu/packages/connman.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -145,9 +146,9 @@ sharing) to clients via USB, ethernet, WiFi, cellular and Bluetooth.")
        (sha256
         (base32 "16g9byxr1rkmrnzi6sjplpmkr8h6pqj7418jz30czqviw5qlkqwl"))))
     (inputs
-     `(("qt" ,qt)))
+     `(("qtbase" ,qtbase)))
     (native-inputs
-     `(("qmake" ,qt)))
+     `(("qttools" ,qttools)))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 47e0958193..d5ca9b8da0 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -100,9 +100,9 @@
                binutils)
            target)))
 
-(define (cross-gcc-arguments target libc)
-  "Return build system arguments for a cross-gcc for TARGET, using LIBC (which
-may be either a libc package or #f.)"
+(define (cross-gcc-arguments target xgcc libc)
+  "Return build system arguments for a cross-gcc for TARGET, using XGCC as the
+base compiler and using LIBC (which may be either a libc package or #f.)"
   ;; Set the current target system so that 'glibc-dynamic-linker' returns the
   ;; right name.
   (parameterize ((%current-target-system target))
@@ -111,7 +111,7 @@ may be either a libc package or #f.)"
     ;; <http://lists.fedoraproject.org/pipermail/arm/2010-August/000663.html>
     ;; for instance.
     (let ((args `(#:strip-binaries? #f
-                  ,@(package-arguments %xgcc))))
+                  ,@(package-arguments xgcc))))
      (substitute-keyword-arguments args
        ((#:configure-flags flags)
         `(append (list ,(string-append "--target=" target)
@@ -183,18 +183,22 @@ may be either a libc package or #f.)"
         (else #f)))
 
 (define* (cross-gcc target
-                    #:optional (xbinutils (cross-binutils target)) libc)
+                    #:key
+                    (xgcc %xgcc)
+                    (xbinutils (cross-binutils target))
+                    (libc #f))
   "Return a cross-compiler for TARGET, where TARGET is a GNU triplet.  Use
-XBINUTILS as the associated cross-Binutils.  If LIBC is false, then build a
-GCC that does not target a libc; otherwise, target that libc."
-  (package (inherit %xgcc)
+XGCC as the base compiler.  Use XBINUTILS as the associated cross-Binutils.
+If LIBC is false, then build a GCC that does not target a libc; otherwise,
+target that libc."
+  (package (inherit xgcc)
     (name (string-append "gcc-cross-"
                          (if libc "" "sans-libc-")
                          target))
-    (source (origin (inherit (package-source %xgcc))
+    (source (origin (inherit (package-source xgcc))
               (patches
                (append
-                (origin-patches (package-source %xgcc))
+                (origin-patches (package-source xgcc))
                 (cons (search-patch "gcc-cross-environment-variables.patch")
                       (cross-gcc-patches target))))
               (modules '((guix build utils)))
@@ -216,7 +220,7 @@ GCC that does not target a libc; otherwise, target that libc."
                   (srfi srfi-26)
                   (ice-9 regex))
 
-       ,@(cross-gcc-arguments target libc)))
+       ,@(cross-gcc-arguments target xgcc libc)))
 
     (native-inputs
      `(("ld-wrapper-cross" ,(make-ld-wrapper
@@ -230,7 +234,7 @@ GCC that does not target a libc; otherwise, target that libc."
        ("libc-native" ,@(assoc-ref (%final-inputs) "libc"))
 
        ;; Remaining inputs.
-       ,@(let ((inputs (append (package-inputs %xgcc)
+       ,@(let ((inputs (append (package-inputs xgcc)
                                (alist-delete "libc" (%final-inputs)))))
            (cond
             ((target-mingw? target)
@@ -490,8 +494,8 @@ XBINUTILS and the cross tool chain."
 ;; (define-public xgcc-armhf
 ;;   (let ((triplet "arm-linux-gnueabihf"))
 ;;     (cross-gcc triplet
-;;                (cross-binutils triplet)
-;;                (cross-libc triplet))))
+;;                #:xbinutils (cross-binutils triplet)
+;;                #:libc (cross-libc triplet))))
 ;;
 ;;; We don't do that here because we'd be referring to bindings from (gnu
 ;;; packages gcc) from the top level, which doesn't play well with circular
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 856308afe8..2e55aa04af 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -51,7 +51,8 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
-  #:use-module (guix build-system gnu))
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system python))
 
 (define-public libsodium
   (package
@@ -414,3 +415,26 @@ utility as a demonstration of the @code{scrypt} key derivation function.
 @code{Scrypt} is designed to be far more resistant against hardware brute-force
 attacks than alternative functions such as @code{PBKDF2} or @code{bcrypt}.")
     (license license:bsd-2)))
+
+(define-public python-asn1crypto
+  (package
+    (name "python-asn1crypto")
+    (version "0.22.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/wbond/asn1crypto/archive/"
+                            version ".tar.gz"))
+        (sha256
+         (base32
+          "1kn910896l3knmilla1c9ly20q181s43w1ah08lzkbm1h3j6pcz0"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/wbond/asn1crypto")
+    (synopsis "ASN.1 parser and serializer in Python")
+    (description "asn1crypto is an ASN.1 parser and serializer with definitions
+for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7,
+PKCS#8, PKCS#12, PKCS#5, X.509 and TSP.")
+    (license license:expat)))
+
+(define-public python2-asn1crypto
+  (package-with-python2 python-asn1crypto))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index a59a4ca698..a85177d814 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -25,6 +25,7 @@
 ;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org>
 ;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
 ;;; Copyright © 2017 Feng Shu <tumashu@163.com>
+;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -3248,6 +3249,25 @@ identifiers based on their names.  Each identifier gets a color based on a hash
 of its name.")
     (license license:bsd-2)))
 
+(define-public emacs-rainbow-mode
+  (package
+    (name "emacs-rainbow-mode")
+    (version "0.12")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
+              (sha256
+               (base32
+                "10a7qs7fvw4qi4vxj9n56j26gjk61bl79dgz4md1d26slb2j1c04"))))
+    (build-system emacs-build-system)
+    (home-page "http://elpa.gnu.org/packages/rainbow-mode.html")
+    (synopsis "Colorize color names in buffers")
+    (description
+     "This minor mode sets background color to strings that match color
+names, e.g. #0000ff is displayed in white with a blue background.")
+    (license license:gpl3+)))
+
 (define-public emacs-visual-fill-column
   (package
     (name "emacs-visual-fill-column")
@@ -4525,7 +4545,7 @@ It should enable you to implement low-level X11 applications.")
 (define-public emacs-exwm
   (package
     (name "emacs-exwm")
-    (version "0.13")
+    (version "0.14")
     (synopsis "Emacs X window manager")
     (source (origin
               (method url-fetch)
@@ -4533,7 +4553,7 @@ It should enable you to implement low-level X11 applications.")
                                   version ".tar"))
               (sha256
                (base32
-                "0n1wzy6chh024r0yaywjbf7mdsrxs6hrfycv5v0ps0drf6q3zldc"))))
+                "14hjjpbasm84p54fxy73fg7g1fdwqkvisdw8dwwgzkflmd647mkx"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-xelb" ,emacs-xelb)))
@@ -4567,12 +4587,9 @@ It should enable you to implement low-level X11 applications.")
                      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")
@@ -4586,7 +4603,8 @@ It should enable you to implement low-level X11 applications.")
                               (require 'exwm)
                               (require 'exwm-config)
                               (exwm-config-default)
-                              (message "exwm configuration not found. Falling back to default configuration..."))))))
+                              (message (concat "exwm configuration not found. "
+                                               "Falling back to default configuration...")))))))
                (chmod exwm-executable #o555)
                #t))))))
     (home-page "https://github.com/ch11ng/exwm")
@@ -4836,3 +4854,26 @@ Emacs.")
 using ERT.  It assumes a certain test structure setup and can therefore make
 running tests easier.")
       (license license:gpl3+))))
+
+(define-public emacs-disable-mouse
+  (package
+    (name "emacs-disable-mouse")
+    (version "0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/purcell/disable-mouse/archive/"
+             version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0haqpq23r1wx04lsqrrg3p5visg9hx5i36dg55ab003wfsrlrzbc"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/purcell/disable-mouse")
+    (synopsis "Disable mouse commands globally")
+    (description
+     "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
+pair of minor modes which suppress all mouse events by intercepting them and
+running a customisable handler command (@code{ignore} by default). ")
+    (license license:gpl3+)))
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 289fbcfb5c..b9b8e84685 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -52,7 +52,8 @@
 ;; See https://launchpadlibrarian.net/218827644/release.txt
 (define-public gcc-arm-none-eabi-4.9
   (let ((xgcc (cross-gcc "arm-none-eabi"
-                         (cross-binutils "arm-none-eabi")))
+                         #:xgcc gcc-4.9
+                         #:xbinutils (cross-binutils "arm-none-eabi")))
         (revision "1")
         (svn-revision 227977))
     (package (inherit xgcc)
@@ -196,6 +197,30 @@ usable on embedded products.")
            "--disable-nls"))))
     (synopsis "Newlib variant for small systems with limited memory")))
 
+(define (make-libstdc++-arm-none-eabi xgcc newlib)
+  (let ((libstdc++ (make-libstdc++ xgcc)))
+    (package (inherit libstdc++)
+      (name "libstdc++-arm-none-eabi")
+      (arguments
+       (substitute-keyword-arguments (package-arguments libstdc++)
+         ((#:configure-flags flags)
+          ``("--target=arm-none-eabi"
+             "--host=arm-none-eabi"
+             "--disable-libstdcxx-pch"
+             "--enable-multilib"
+             "--with-multilib-list=armv6-m,armv7-m,armv7e-m"
+             "--disable-shared"
+             "--disable-tls"
+             "--disable-plugin"
+             "--with-newlib"
+             ,(string-append "--with-gxx-include-dir="
+                             (assoc-ref %outputs "out")
+                             "/arm-none-eabi/include")))))
+      (native-inputs
+       `(("newlib" ,newlib)
+         ("xgcc" ,xgcc)
+         ,@(package-native-inputs libstdc++))))))
+
 (define (arm-none-eabi-toolchain xgcc newlib)
   "Produce a cross-compiler toolchain package with the compiler XGCC and the C
 library variant NEWLIB."
@@ -212,9 +237,19 @@ library variant NEWLIB."
       (version (package-version xgcc))
       (source #f)
       (build-system trivial-build-system)
-      (arguments '(#:builder (mkdir %output)))
+      (arguments
+       '(#:modules ((guix build union))
+         #:builder
+         (begin
+           (use-modules (ice-9 match)
+                        (guix build union))
+           (match %build-inputs
+             (((names . directories) ...)
+              (union-build (assoc-ref %outputs "out")
+                           directories))))))
       (propagated-inputs
        `(("binutils" ,(cross-binutils "arm-none-eabi"))
+         ("libstdc++" ,(make-libstdc++-arm-none-eabi xgcc newlib-with-xgcc))
          ("gcc" ,xgcc)
          ("newlib" ,newlib-with-xgcc)))
       (synopsis "Complete GCC tool chain for ARM bare metal development")
@@ -419,7 +454,7 @@ with a layered architecture of JTAG interface and TAP support.")
 
 (define-public propeller-gcc
   (let ((xgcc (cross-gcc "propeller-elf"
-                         propeller-binutils))
+                         #:xbinutils propeller-binutils))
         (commit "b4f45a4725e0b6d0af59e594c4e3e35ca4105867")
         (revision "1"))
     (package (inherit xgcc)
@@ -776,7 +811,7 @@ the Raspberry Pi chip.")
 
 (define-public gcc-vc4
   (let ((commit "165f6d0e11d2e76ee799533bb45bd5c92bf60dc2")
-        (xgcc (cross-gcc "vc4-elf" binutils-vc4)))
+        (xgcc (cross-gcc "vc4-elf" #:xbinutils binutils-vc4)))
     (package (inherit xgcc)
       (name "gcc-vc4")
       (source (origin
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 5544111393..c5a69232ca 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -375,21 +375,16 @@ applications should be.")
 (define-public graphite2
   (package
    (name "graphite2")
-   (version "1.3.9")
+   (version "1.3.10")
    (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/silnrsi/graphite/releases/"
                            "download/" version "/" name "-" version ".tgz"))
-       (patches (search-patches
-                 "graphite2-ffloat-store.patch"
-                 "graphite2-check-code-point-limit.patch"
-                 "graphite2-CVE-2017-5436.patch"
-                 "graphite2-fix-32-bit-wrap-arounds.patch"
-                 "graphite2-non-linear-classes-even-number.patch"))
+       (patches (search-patches "graphite2-ffloat-store.patch"))
        (sha256
         (base32
-         "0rs5h7m340z75kygx8d72cps0q6yvvqa9i788vym7585cfv8a0gc"))))
+         "1bm1rl2ww0m8rvmknh8fpajyz9xqv43qs9qrzf7xd5gaz6rf7zch"))))
    (build-system cmake-build-system)
    (native-inputs
     `(("python" ,python-2) ; because of "import imap" in tests
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index da3a850fed..b7bcdee94c 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -262,13 +262,22 @@ levels.")
                (base32
                 "1kcj2blrlfpghjv0qigip2qcbxfx7vv9i8nr4997hkwhsh6i2pjp"))))
     (build-system gnu-build-system)
-    (inputs `(("qt" ,qt)
-              ("zlib" ,zlib)))
+    (inputs
+     `(("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("qttools" ,qttools)))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (replace 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (substitute* "translations/translations.pro"
+               (("LRELEASE =.*")
+                (string-append "LRELEASE = "
+                               (assoc-ref inputs "qttools")
+                               "/bin/lrelease\n")))
              (let ((out (assoc-ref outputs "out")))
                (system* "qmake"
                         (string-append "PREFIX=" out))))))))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 4c297005dc..60d885500c 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -2784,6 +2784,12 @@ fullscreen, use F5 or Alt+Enter.")
            (lambda _
              (substitute* "icons/Makefile.in"
                (("\\$\\(INSTALL_DATA\\) \\$\\(srcdir\\)/warzone2100.appdata.xml.*") ""))
+             #t))
+         (add-after 'unpack 'patch-for-qt5.8
+           (lambda _
+             (substitute* "lib/widget/editbox.cpp"
+               (("== '\\\\0'")
+                "== QChar('\\0')"))
              #t)))))
     (native-inputs `(("pkg-config" ,pkg-config)
                      ("unzip" ,unzip)
@@ -2797,7 +2803,8 @@ fullscreen, use F5 or Alt+Enter.")
               ("libxrandr" ,libxrandr)
               ("openal" ,openal)
               ("physfs" ,physfs)
-              ("qt" ,qt)
+              ("qtbase" ,qtbase)
+              ("qtscript" ,qtscript)
               ("openssl" ,openssl)
               ("quesoglc" ,quesoglc)
               ("sdl2" ,sdl2)))
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index d9901fd0fb..8d03f0e00d 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -451,7 +451,61 @@ standards.")
         (mozilla-patch "icecat-bug-1346012.patch"        "1ce6d0652921" "163ji64a86h682frh1jq016w1mjf8g24r8cni0irsdmiihis7zxc")
         (mozilla-patch "icecat-bug-1324140.patch"        "8886f9cd5dd3" "0byabs9md8r3pc4r67sv2759427n1za0gfayln40nx47n2p52kmg")
         (mozilla-patch "icecat-bug-1342552.patch"        "ad995e90916b" "02nq9sg675p26z99nr2pykbz51hi2phf0gmrb1bjpq9pjbll7gsa")
-        (mozilla-patch "icecat-bug-1355039.patch"        "4ae71415fecf" "0yfkkdkkimad9a3w734xx85lb7hrl870c8k8an7w78fq3vl3fjnd")))
+        (mozilla-patch "icecat-bug-1355039.patch"        "4ae71415fecf" "0yfkkdkkimad9a3w734xx85lb7hrl870c8k8an7w78fq3vl3fjnd")
+        (mozilla-patch "icecat-bug-1363396.patch"        "24cbb7f2e0ff" "006f0zhz5nxs72q9plwzhq4l79b47svzizvv510m5g2krsfrccza")
+        (mozilla-patch "icecat-bug-1356558.patch"        "89c7fb6c5be3" "19650nmc4vn1prbpn5h06kz9d1al279xkc23v39577h4zhdrknkj")
+        (mozilla-patch "icecat-bug-1337810.patch"        "0f6dd3564c76" "1sxajqh6r7fjs45xhvjwg94smpvyvplh3rdvq11d3q5m9v4kg7mz")
+        (mozilla-patch "icecat-bug-1347748.patch"        "145905da25d3" "0c2q9f000snpm9x0qda2y0awrsm313iwxbv0kh33ca0kpza49a76")
+        (mozilla-patch "icecat-bug-1345355.patch"        "c5012009a0b2" "0m772bgrwb8iwv2bdgx694ybg5wgbf58xg5v245x0p7gwhgwiwmr")
+        (mozilla-patch "icecat-bug-1351340.patch"        "047f19a1b9a0" "0qjnhybibs3cpcba3ga4g7d4c0w716xa9jf87y2ir8yz7dw1f9vl")
+        (mozilla-patch "icecat-bug-1056322.patch"        "f076a30f6c29" "0xgskjl6zmxi3v4l0f3wlas0qb2403fin5lv1hi3jf2142ihpaml")
+        (mozilla-patch "icecat-bug-1355414.patch"        "28e09d4ac3e9" "06clr2kwz28nyjlj13y036x6rxwh6frdh11aq6kbm1nj6s01i9zl")
+        (mozilla-patch "icecat-bug-1313977.patch"        "4c0b09f70aea" "04jq1xrlhj04n5bgh93xkbqwnh01pswfjhv81zk7i87c7xz6h92q")
+        (mozilla-patch "icecat-bug-1357366.patch"        "0b855945ce34" "0va8kqlgx6qhq2qrawkcm66kqrwwpmxblyjp3c7ifplxd0j0ijaf")
+        (mozilla-patch "icecat-bug-1338574-pt0.patch"    "243d7bffa4f1" "1d1v68amhnygc0g4w1afs374pjs7z5fx5inyq8idawbh4kxfncq7")
+        (mozilla-patch "icecat-bug-1338574-pt1.patch"    "337398a83aa5" "1141n7dhy9rh70sww8v58cbkba74xm5i75j1sgm5qwvkhh69qr5h")
+        (mozilla-patch "icecat-bug-1338574-pt2.patch"    "50e120d7ac64" "0dbcaq27vsjlh7vm30c88rlhkx8c1195rnr01six40mymh09rhym")
+        (mozilla-patch "icecat-bug-1338574-pt3.patch"    "2d4da5a366e8" "1761npkpw5zsm4q8rzfrg8m1ayrf8c857iq3vdd8rbqcswzv6xq0")
+        (mozilla-patch "icecat-bug-1338574-pt4.patch"    "b10d9b0c187f" "044zq9gzw4v5r3ki8dwfjg9dznai0jch29y0xrxzb2rfr6yvx0sb")
+        (mozilla-patch "icecat-bug-1338574-pt5.patch"    "697713a6841c" "1m9q4rh4ny945xsx3p3f5bg1izs9q58d71la5drj31z6kvbhnsi2")
+        (mozilla-patch "icecat-bug-1338574-pt6.patch"    "1d14abf37cf8" "1xyja9hjb7qfqi7kh85bw5nxkhyzw1rijjhnh5pgr5z0v718kjyc")
+        (mozilla-patch "icecat-bug-1338574-pt7.patch"    "5e85bc599d0c" "1pmhs3hmhkgj6q19padcbpi5qvgnhx6ib09zpcwxr8ll6lllxhig")
+        (mozilla-patch "icecat-bug-1152353.patch"        "d893dea8e7b4" "1pbayv7np6z7hlkk1dhvx3ppkni7f8n3cz8hs67l3nssw214c1ih")
+        (mozilla-patch "icecat-bug-1345893.patch"        "3a747480ead1" "0sxd23y9g77mx5indjs9isxnnrkin835qrh6dn62dlvbll8lgqi2")
+        (mozilla-patch "icecat-bug-1343172.patch"        "c7b064f6b93a" "1sh10j3h8cnqi3rpr70lv2yz14zhy1v9ms4f64fmrbjlz7q09j6q")
+        (mozilla-patch "icecat-bug-1352348.patch"        "1d86e96610a1" "02ybn2608v57pjh8kjgnhkg157asawjk5xia59qb63m5vfvrinwv")
+        (mozilla-patch "icecat-bug-1354308.patch"        "c8ba3f911eb1" "0w70b8dmvqjn1d8sphfkwnbwii8nh2q5k48clkvbhn7kpc2890mi")
+        (mozilla-patch "icecat-bug-1335904.patch"        "366cdd623cfb" "0gcmld4bplaakx6d50gw223lg1jjcni7866q1f2hxm0h1r9wwd3k")
+        (mozilla-patch "icecat-bug-1355340.patch"        "6b174b41fa44" "0zdgfy0zsrs3cvfkmrhxw0mrfibpnb58xp3z8fapx5ja59wmcabs")
+        (mozilla-patch "icecat-bug-1360574-pt1.patch"    "237eee780619" "1iw6z762zdc42kwjvv58a2cjc0s4kzwwy7838apl7y7cq85g0jg2")
+        (mozilla-patch "icecat-bug-1360574-pt2.patch"    "46a5a4aac189" "1i553f9qvav0fn5avbp8912995pqbhzbzamxxfz8gn2ik17y3xly")
+        (mozilla-patch "icecat-bug-1358776.patch"        "bd35fa23f79a" "12nicgwhcn63knmlcl0c2askn9sj35bfclaab3826pkd9yq5g4p5")
+        (mozilla-patch "icecat-bug-1362590.patch"        "c1314a709b41" "0klgrcyc20fig6rbm9znjpcnfsz6xnlp1v03fbvaww0riy2qm42k")
+        (mozilla-patch "icecat-bug-1359859.patch"        "e38948fb79d6" "1sfyc5s9ndv6q72k8n9x0rvj4sz40k51iljrs42gwykzkjm2fx5m")
+        (mozilla-patch "icecat-bug-1342057.patch"        "278bef1d7a64" "0zk18s9pnbwz9ankmc9mj4197s55j1jvax04ansqymmmc3a5ciif")
+        (mozilla-patch "icecat-bug-1325513.patch"        "218e0963406f" "0wqms5nany4sx2g4p01lbam7la2dyazz87dhv5hcsf8ifxrfww11")
+        (mozilla-patch "icecat-bug-1304566.patch"        "188e39630fcd" "1bfxfgj5ywx4bcf91kwyrjh5ppiv59gadx4445achyabdi639l8d")
+        (mozilla-patch "icecat-bug-1356601.patch"        "8191e403fedf" "1k4zmq0923f5dc3dwbz1q0bkcbm90ldwkczym366hgwadb2305nd")
+        (mozilla-patch "icecat-bug-1334097.patch"        "fe2a2c7e88cb" "1rppaivaddigwk65krn8m9f9mcdkiiv28ws9n9zj62n0rc1shyvc")
+        (mozilla-patch "icecat-bug-1359051.patch"        "8d7dbe5c6587" "14zh74bbld4s0jy0a48fi9acxkc236mh9wjid3vrf72yj6bi5xnp")
+        (mozilla-patch "icecat-bug-1359697.patch"        "ca2b5274549f" "1ns7v70i1hfkxqnjhf9fp0lk9095hdcllg94j3dl1nfaif4w6vbf")
+        (mozilla-patch "icecat-bug-1343256.patch"        "a30dd7dd6617" "1k078176fp8vz871wirjz9d3yx9l2lfl8p75c4905n3j3zv2297q")
+        (mozilla-patch "icecat-bug-1349310.patch"        "81b3ce7d37b3" "0ad0wqczy4kpggj6m3b8bzxi6ax340mik1mfawhkq89a1h2sfpxv")
+        (mozilla-patch "icecat-bug-1356179.patch"        "66d8893f37f0" "0izl31lagvdv4qpb9gkjxvgpmxzw50x5bviap4l7bbnb56cv7d8p")
+        (mozilla-patch "icecat-bug-1365602.patch"        "aad883966edd" "058axnrwrbvy2h9r9pb766lyky45hb92rap142sbp17yz0sxfmww")
+        (mozilla-patch "icecat-bug-1355520.patch"        "7ca2d8839f7a" "1xbmpvr2x720x9ghd5wgbg6lknbnhcyqmkkfamdf97mqcyizyr21")
+        (mozilla-patch "icecat-bug-1358469.patch"        "4d432638c0f9" "0qpjmwik3dryjwmgfwmkqk0rs9rb2lafb2k9fc3pkjnrq5y0l9xg")
+        (mozilla-patch "icecat-bug-1356025.patch"        "f5967db0a0f3" "045wbvkm21kbm314dd6lbq2disiaf26kmsxi6brf442fd0028gwq")
+        (mozilla-patch "icecat-bug-1345910.patch"        "ec6b6720e54e" "0lm15jl46mdlsds6947jsiyvhf9agb8hcdrqj2svc3kn9kzvyr2n")
+        (mozilla-patch "icecat-bug-1359639.patch"        "a4f8d8a12afa" "0d7sjc21af074rvgvijj42gmpjvcb1v1zlpgb3s7ky7w6wjr35vx")
+        (mozilla-patch "icecat-bug-1357090.patch"        "d07f24a72ce4" "1qbwska76b2zslb95wnx9v04znb6k9fqylr4ajyfqpwk1sr363hg")
+        (mozilla-patch "icecat-bug-1364283.patch"        "a6caa7628e36" "1yv5f4h8js9bry9krcx130w6ic8rdmmq4fap6va24kfx8qflg70h")
+        (mozilla-patch "icecat-bug-1237868.patch"        "41138235d4ea" "0mcj4x2kmagwf5hp8xhczf04sxm995pk1zarc9yffk84z7fcrxkj")
+        (mozilla-patch "icecat-bug-1331335.patch"        "b724283e3b31" "1xbb1vcdzfpcmrmxm8ihwzslh2vz15k0k601nvyhh6vgx270h1wn")
+        (mozilla-patch "icecat-bug-1367267.patch"        "4c2f4d8b693e" "1hrndhfnz0vnjnspwh5mbvgl2j8d1cs62awp04wx2w6z4l4wrmbv")
+        (mozilla-patch "icecat-bug-1366595.patch"        "cce3fd607206" "1z97jw8jpfyx61jxf0j8nsplnna2c5bwihwnl9cvlc2cspp3kgp5")
+        (mozilla-patch "icecat-bug-1349266.patch"        "dc4e3c64d781" "1zd666k4qpdamly3av09k602pmirjcs9l6la6ba0qq9w9vfan3g5")
+        (mozilla-patch "icecat-bug-1366140.patch"        "379c348250e8" "0kvsyhi9j3bjx14ffr13dslqp8ghcgrz6ds2fikdkrrrk4syskd5")))
       (modules '((guix build utils)))
       (snippet
        '(begin
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index a502f246ff..cc1497cb8d 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Tomáš Čech <sleep_walker@gnu.org>
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
 ;;;
@@ -23,7 +23,7 @@
 
 (define-module (gnu packages graphics)
   #:use-module (guix download)
-  #:use-module (guix svn-download)
+  #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
@@ -423,66 +423,66 @@ output.")
     (license (license:non-copyleft "file://LICENSE"))))
 
 (define-public brdf-explorer
-  (package
-    (name "brdf-explorer")
-    (version "17")                                ;svn revision
-    (source (origin
-              ;; There are no release tarballs, and not even tags in the repo,
-              ;; so use the latest revision.
-              (method svn-fetch)
-              (uri (svn-reference
-                    (url "https://github.com/wdas/brdf")
-                    (revision (string->number version))))
-              (sha256
-               (base32
-                "1458fwsqxramh0gpnp24x7brfpl9afhvr1wqg6c78xqwf32960m5"))
-              (file-name (string-append name "-" version "-checkout"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (replace 'configure
-                           (lambda* (#:key outputs #:allow-other-keys)
-                             (let ((out (assoc-ref outputs "out")))
-                               (chdir "trunk")
-                               (zero? (system* "qmake"
-                                               (string-append
-                                                "prefix=" out))))))
-                  (add-after 'install 'wrap-program
-                             (lambda* (#:key outputs #:allow-other-keys)
-                               (let* ((out (assoc-ref outputs "out"))
-                                      (bin (string-append out "/bin"))
-                                      (data (string-append
-                                             out "/share/brdf")))
-                                 (with-directory-excursion bin
-                                   (rename-file "brdf" ".brdf-real")
-                                   (call-with-output-file "brdf"
-                                     (lambda (port)
-                                       (format port "#!/bin/sh
+  ;; There are no release tarballs, and not even tags in the repo,
+  ;; so use the latest revision.
+  (let ((commit "5b2cd46f38a06e47207fa7229b72d37beb945019")
+        (revision "1"))
+    (package
+      (name "brdf-explorer")
+      (version (string-append "1.0.0-" revision "." (string-take commit 9)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/wdas/brdf.git")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "06vzbiajzbi2xl8jlff5d45bc9wd68i3jdndfab1f3jgfrd8bsgx"))
+                (file-name (string-append name "-" version "-checkout"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:phases (modify-phases %standard-phases
+                    (replace 'configure
+                      (lambda* (#:key outputs #:allow-other-keys)
+                        (let ((out (assoc-ref outputs "out")))
+                          (zero? (system* "qmake"
+                                          (string-append "prefix=" out))))))
+                    (add-after 'install 'wrap-program
+                      (lambda* (#:key outputs #:allow-other-keys)
+                        (let* ((out (assoc-ref outputs "out"))
+                               (bin (string-append out "/bin"))
+                               (data (string-append
+                                      out "/share/brdf")))
+                          (with-directory-excursion bin
+                            (rename-file "brdf" ".brdf-real")
+                            (call-with-output-file "brdf"
+                              (lambda (port)
+                                (format port "#!/bin/sh
 # Run the thing from its home, otherwise it just bails out.
 cd \"~a\"
 exec -a \"$0\" ~a/.brdf-real~%"
-                                               data bin)))
-                                   (chmod "brdf" #o555))))))))
-    (native-inputs
-     `(("qt" ,qt-4)))                             ;for 'qmake'
-    (inputs
-     `(("qt" ,qt-4)
-       ("mesa" ,mesa)
-       ("glew" ,glew)
-       ("freeglut" ,freeglut)
-       ("zlib" ,zlib)))
-    (home-page "http://www.disneyanimation.com/technology/brdf.html")
-    (synopsis
-     "Analyze bidirectional reflectance distribution functions (BRDFs)")
-    (description
-     "BRDF Explorer is an application that allows the development and analysis
+                                        data bin)))
+                            (chmod "brdf" #o555))))))))
+      (native-inputs
+       `(("qttools" ,qttools))) ;for 'qmake'
+      (inputs
+       `(("qtbase" ,qtbase)
+         ("mesa" ,mesa)
+         ("glew" ,glew)
+         ("freeglut" ,freeglut)
+         ("zlib" ,zlib)))
+      (home-page "http://www.disneyanimation.com/technology/brdf.html")
+      (synopsis
+       "Analyze bidirectional reflectance distribution functions (BRDFs)")
+      (description
+       "BRDF Explorer is an application that allows the development and analysis
 of bidirectional reflectance distribution functions (BRDFs).  It can load and
 plot analytic BRDF functions (coded as functions in OpenGL's GLSL shader
 language), measured material data from the MERL database, and anisotropic
 measured material data from MIT CSAIL.  Graphs and visualizations update in
 real time as parameters are changed, making it a useful tool for evaluating
 and understanding different BRDFs (and other component functions).")
-    (license license:ms-pl)))
+      (license license:ms-pl))))
 
 (define-public agg
   (package
diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm
index 260ca947bd..cdab7eca03 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 "b8ad238aa8010063eaf7d608d139002a50075e8d")
-        (revision "4"))
+  (let ((commit "1a38948ad068870671042bff2d8ac615dca9e5d8")
+        (revision "5"))
   (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
-                "192agb8lpbajljbnnpn7y1pk2c6bvqbcpqhlgq4pja4pdf664xzg"))
+                "1apkiicmxb6ncqhznflb8wc4n770jx89asw1drmch7lq7j9m6sns"))
               (snippet
                '(begin
                   (use-modules (guix build utils))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index bfe6b64ffe..13e08dcfaf 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -18,11 +18,12 @@
 ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
 ;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
-;;; Copyright © 2016 ng0 <ng0@libertad.pw>
+;;; Copyright © 2016, 2017 ng0 <ng0@no-reply.pragmatique.xyz>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.com>
 ;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -354,8 +355,8 @@ It has been modified to remove all non-free binary blobs.")
 
 (define %intel-compatible-systems '("x86_64-linux" "i686-linux"))
 
-(define %linux-libre-version "4.11.2")
-(define %linux-libre-hash "0vp6hjc7cb6q6bhbg6jcf08r27xbf293cdib2vfng15ygvxpyfij")
+(define %linux-libre-version "4.11.3")
+(define %linux-libre-hash "14fbn9s7n86p5yivr4vmh4axdavny6xw1qk63cfwlcma7426wmva")
 
 (define-public linux-libre
   (make-linux-libre %linux-libre-version
@@ -364,14 +365,14 @@ It has been modified to remove all non-free binary blobs.")
                     #:configuration-file kernel-config))
 
 (define-public linux-libre-4.9
-  (make-linux-libre "4.9.29"
-                    "0yj4gajdzilxnh9lhb2zl0hs654lagdfx8cp7bv2w4q41bnmc3l9"
+  (make-linux-libre "4.9.30"
+                    "1m1ii9n65lwkbwx0ifj13vgdfr0mnx8n7sfvhf5mn4r8krhxi77a"
                     %intel-compatible-systems
                     #:configuration-file kernel-config))
 
 (define-public linux-libre-4.4
-  (make-linux-libre "4.4.69"
-                    "14q5lqsfmwyiilbhffr3bwsm6i3z1jv6y09rg8x3faibcg766wny"
+  (make-linux-libre "4.4.70"
+                    "1dvcj3mk42m91y1x41yh52frjdcwip1wj57qwlkmrpg02icr0b3s"
                     %intel-compatible-systems
                     #:configuration-file kernel-config))
 
@@ -824,14 +825,14 @@ images more compressible.")
 (define-public strace
   (package
     (name "strace")
-    (version "4.16")
+    (version "4.17")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://sourceforge/strace/strace/" version
                                  "/strace-" version ".tar.xz"))
              (sha256
               (base32
-               "1vzhmpcy989i4k12q4cc438yal2ghhm6x7ychscjbhcf2yspqj4q"))))
+               "06bl4dld5fk4a3iiq4pyrkm6sh63599ah8dmds0glg5vbw45pww1"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -1641,6 +1642,38 @@ system.")
     (license (list license:gpl2                   ;programs
                    license:lgpl2.1))))            ;library
 
+(define-public kbd-neo
+  (package
+    (name "kbd-neo")
+    (version "2486")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://svn.neo-layout.org/!svn/bc/"
+                           version "/linux/console/neo.map"))
+       (file-name (string-append name "-" version ".map"))
+       (sha256
+        (base32
+         "19mfrd31vzpsjiwc7pshxm0b0sz5dd17xrz6k079cy4im1vf0r4g"))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder (begin
+                   (use-modules (guix build utils))
+                   (let ((out (string-append %output "/share/keymaps"))
+                         (source (assoc-ref %build-inputs "source")))
+                     (mkdir-p out)
+                     (copy-file source (string-append out "/neo.map"))
+                     #t))))
+    (home-page "https://neo-layout.org")
+    (synopsis "Neo2 console layout")
+    (description
+     "Kbd-neo provides the Neo2 keyboard layout for use with
+@command{loadkeys(1)} from @code{kbd(4)}.")
+    ;; The file is located in an svn directory, the entire content of
+    ;; the directory is licensed as GPL3.
+    (license license:gpl3+)))
+
 (define-public kbd
   (package
     (name "kbd")
@@ -1689,6 +1722,10 @@ system.")
               ("gzip" ,gzip)
               ("bzip2" ,bzip2)
               ("pam" ,linux-pam)))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "LOADKEYS_KEYMAP_PATH")
+            (files (list "share/keymaps")))))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (home-page "http://kbd-project.org/")
     (synopsis "Linux keyboard utilities and keyboard maps")
@@ -3325,14 +3362,14 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.")
 (define-public mcelog
   (package
     (name "mcelog")
-    (version "150")
+    (version "151")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://git.kernel.org/cgit/utils/cpu/mce/"
                                   "mcelog.git/snapshot/v" version ".tar.gz"))
               (sha256
                (base32
-                "1skfiracl3a1afmml8mvnccr4rym4ibv33c342rkyxn0j3088h24"))
+                "1cgfdlz51hv2zbph00ylzm8z94gv8wakx7dva1pa4jcl3hnq0dh5"))
               (file-name (string-append name "-" version ".tar.gz"))
               (modules '((guix build utils)))
               (snippet
@@ -3912,3 +3949,39 @@ available in the kernel Linux.")
                    #t))))))
        ((#:allowed-references _ '("out"))
         '("out"))))))
+
+(define-public cpuid
+  (package
+    (name "cpuid")
+    (version "20170122")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.etallen.com/cpuid/cpuid-"
+                                  version ".src.tar.gz"))
+              (sha256
+               (base32
+                "0ra8ph9m1dckqaikfnbsh408fp2w9k49fkl423fl2hvhwsm14xk6"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:make-flags '("CC=gcc")
+       #:tests? #f ; no tests
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure)
+                  (add-before 'install 'fix-makefile
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (substitute* "Makefile"
+                        (("\\$\\(BUILDROOT\\)/usr") (assoc-ref outputs "out")))
+                      ;; Make the compressed manpages writable so that the
+                      ;; reset-gzip-timestamps phase does not error out.
+                      (substitute* "Makefile"
+                        (("-m 444") "-m 644"))
+                      #t)))))
+    (inputs `(("perl" ,perl)))
+    (supported-systems '("i686-linux" "x86_64-linux"))
+    (home-page "http://www.etallen.com/cpuid.html")
+    (synopsis "Linux tool to dump x86 CPUID information about the CPU(s)")
+    (description "cpuid dumps detailed information about the CPU(s) gathered
+from the CPUID instruction, and also determines the exact model of CPU(s).  It
+supports Intel, AMD, and VIA CPUs, as well as older Transmeta, Cyrix, UMC,
+NexGen, Rise, and SiS CPUs.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm
index b2b0582aee..eecfe45581 100644
--- a/gnu/packages/logging.scm
+++ b/gnu/packages/logging.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +27,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
+  #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
   #:use-module (gnu packages autotools))
@@ -129,3 +131,41 @@ command line.")
      "Tailon provides a web interface around the tail, grep, awk and sed
 commands, displaying the results via a web interface.")
     (license license:bsd-3)))
+
+(define-public multitail
+  (package
+    (name "multitail")
+    (version "6.4.2")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://vanheusden.com/multitail/multitail-"
+                          version ".tgz"))
+      (sha256
+       (base32
+        "1zd1r89xkxngl1pdrvsc877838nwkfqkbcgfqm3vglwalxc587dg"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list "CC=gcc"
+             "PREFIX="
+             (string-append "DESTDIR="
+                            (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-curses-lib
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* "mt.h"
+                 (("ncursesw\\/panel.h") "panel.h")
+                 (("ncursesw\\/ncurses.h") "ncurses.h")))
+             #t))
+         (delete 'configure))
+       #:tests? #f)) ; no test suite (make check just runs cppcheck)
+    (inputs `(("ncurses" ,ncurses)))
+    (home-page "https://vanheusden.com/multitail/")
+    (synopsis "Monitor multiple logfiles")
+    (description
+     "MultiTail allows you to monitor logfiles and command output in multiple
+windows in a terminal, colorize, filter and merge.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index 2c6d1f5dad..9efe338a19 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -99,8 +99,8 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
     (if (%current-target-system)
         (let ((target (%current-target-system)))
           `(("cross-gcc"      ,(cross-gcc target
-                                          (cross-binutils target)
-                                          (cross-bootstrap-libc)))
+                                          #:xbinutils (cross-binutils target)
+                                          #:libc (cross-bootstrap-libc)))
             ("cross-binutils" ,(cross-binutils target))
             ,@(%final-inputs)))
         `(("libc" ,(glibc-for-bootstrap))
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 89df0970d6..c22d3d4dc8 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -756,48 +756,43 @@ instant messenger with audio and video chat capabilities.")
 (define-public qtox
   (package
     (name "qtox")
-    (version "1.5.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/qTox/qTox/archive/v"
-                           version ".tar.gz"))
-       (sha256
-        (base32 "0y15mc39x54k1kz36cw9412kl1p1p6nzlx97gagv4gg3vybfhbjv"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+    (version "1.10.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/qTox/qTox/archive/v"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0b37an611i2jdri59vsspyl3yf6cn4h0bn9d2jdrkw8d2rfqc8qy"))
+              (file-name (string-append name "-" version ".tar.gz"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-reproducibility-issues
+           (lambda _
+             (substitute* "src/main.cpp"
+               (("__DATE__") "\"\"")
+               (("__TIME__") "\"\"")
+               (("TIMESTAMP") "\"\""))
+             #t)))))
     (inputs
      `(("ffmpeg" ,ffmpeg)
        ("glib" ,glib)
        ("gtk+" ,gtk+-2)
        ("libsodium" ,libsodium)
-       ("libtoxcore" ,libtoxcore)
+       ("c-toxcore" ,c-toxcore)
        ("libvpx" ,libvpx)
        ("libxscrnsaver" ,libxscrnsaver)
        ("libx11" ,libx11)
        ("openal" ,openal)
        ("qrencode" ,qrencode)
-       ("qt" ,qt)
+       ("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)
        ("sqlcipher" ,sqlcipher)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("qmake" ,qt)))
-    (build-system gnu-build-system)
-    (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-reproducibility-issues
-           (lambda _
-             (substitute* "src/main.cpp"
-               (("__DATE__") "\"\"")
-               (("__TIME__") "\"\"")
-               (("TIMESTAMP") "\"\""))
-             #t))
-         (replace 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
-             (zero?
-              (system* "qmake"
-                       (string-append "PREFIX="
-                                      (assoc-ref outputs "out")))))))))
+       ("qmake" ,qttools)))
     (home-page "https://qtox.github.io/")
     (synopsis "Tox chat client using Qt")
     (description "qTox is a Tox client that follows the Tox design
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index b9f1d53cf6..863e367a5b 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -2650,3 +2650,260 @@ match expressions, and if expressions.")
     (synopsis "Generation of runtime types from type declarations")
     (description "Automatic generation of runtime types from type definitions.")
     (license license:asl2.0)))
+
+(define-public ocaml-ppx-sexp-value
+  (package
+    (name "ocaml-ppx-sexp-value")
+    (version "113.33.03")
+    (source (janestreet-origin "ppx_sexp_value" version
+              "0m3ag23mbqm0i2pv1dzilfks15ipa5q60mf57a0cd3p0pvarq10g"))
+    (build-system ocaml-build-system)
+    (native-inputs
+     `(("js-build-tools" ,ocaml-js-build-tools)
+       ("opam" ,opam)))
+    (propagated-inputs
+     `(("ppx-driver" ,ocaml-ppx-driver)
+       ("ppx-here" ,ocaml-ppx-here)
+       ("ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+       ("ppx-tools" ,ocaml-ppx-tools)
+       ("ppx-core" ,ocaml-ppx-core)))
+    (arguments janestreet-arguments)
+    (home-page "https://github.com/janestreet/ppx_sexp_value/")
+    (synopsis "Simplify building s-expressions from ocaml values")
+    (description "A ppx rewriter that simplifies building s-expressions from
+ocaml values.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-pipebang
+  (package
+    (name "ocaml-ppx-pipebang")
+    (version "113.33.03")
+    (source (janestreet-origin "ppx_pipebang" version
+              "1965c7hymp26ncmjs0pfxi2s5jlj60z2c9b194lgcwxqiav56pcw"))
+    (build-system ocaml-build-system)
+    (native-inputs
+     `(("js-build-tools" ,ocaml-js-build-tools)
+       ("opam" ,opam)))
+    (propagated-inputs
+     `(("ppx-driver" ,ocaml-ppx-driver)
+       ("ppx-tools" ,ocaml-ppx-tools)
+       ("ppx-core" ,ocaml-ppx-core)))
+    (arguments janestreet-arguments)
+    (home-page "https://github.com/janestreet/ppx_pipebang/")
+    (synopsis "Inline reverse application operators `|>` and `|!`")
+    (description "A ppx rewriter that inlines reverse application operators
+@code{|>} and @code{|!}.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-bin-prot
+  (package
+    (name "ocaml-ppx-bin-prot")
+    (version "113.33.03")
+    (source (janestreet-origin "ppx_bin_prot" version
+              "173kjv36giik11zgfvsbzwfbpr66dm2pcha9vf990jgzh8hqz39h"))
+    (build-system ocaml-build-system)
+    (native-inputs
+     `(("js-build-tools" ,ocaml-js-build-tools)
+       ("opam" ,opam)))
+    (propagated-inputs
+     `(("bin-prot" ,ocaml-bin-prot)
+       ("ppx-tools" ,ocaml-ppx-tools)
+       ("ppx-type-conv" ,ocaml-ppx-type-conv)
+       ("ppx-core" ,ocaml-ppx-core)))
+    (arguments janestreet-arguments)
+    (home-page "https://github.com/janestreet/ppx_bin_prot/")
+    (synopsis "Generation of bin_prot readers and writers from types")
+    (description "Generation of binary serialization and deserialization
+functions from type definitions.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-fail
+  (package
+    (name "ocaml-ppx-fail")
+    (version "113.33.03")
+    (source (janestreet-origin "ppx_fail" version
+              "1dwgad0f05gqp5rnwf9dcasidpfi7q3mrpazsw3a2vijjblbhjgn"))
+    (build-system ocaml-build-system)
+    (native-inputs
+     `(("js-build-tools" ,ocaml-js-build-tools)
+       ("opam" ,opam)))
+    (propagated-inputs
+     `(("ppx-driver" ,ocaml-ppx-driver)
+       ("ppx-tools" ,ocaml-ppx-tools)
+       ("ppx-here" ,ocaml-ppx-here)
+       ("ppx-core" ,ocaml-ppx-core)))
+    (arguments janestreet-arguments)
+    (home-page "https://github.com/janestreet/ppx_fail/")
+    (synopsis "Add location to calls to failwiths")
+    (description "Syntax extension that makes [failwiths] always include a
+position.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-custom-printf
+  (package
+    (name "ocaml-ppx-custom-printf")
+    (version "113.33.03")
+    (source (janestreet-origin "ppx_custom_printf" version
+              "11jlx0n87g2j1vyyp343dibx7lvvwig5j5q0nq0b80kbsq0k6yr8"))
+    (build-system ocaml-build-system)
+    (native-inputs
+     `(("js-build-tools" ,ocaml-js-build-tools)
+       ("opam" ,opam)))
+    (propagated-inputs
+     `(("ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+       ("ppx-tools" ,ocaml-ppx-tools)
+       ("ppx-core" ,ocaml-ppx-core)
+       ("ppx-driver" ,ocaml-ppx-driver)))
+    (arguments janestreet-arguments)
+    (home-page "https://github.com/janestreet/ppx_custom_printf/")
+    (synopsis "Printf-style format-strings for user-defined string conversion")
+    (description "Extensions to printf-style format-strings for user-defined
+string conversion.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-sexp-message
+  (package
+    (name "ocaml-ppx-sexp-message")
+    (version "113.33.03")
+    (source (janestreet-origin "ppx_sexp_message" version
+              "084w1l3gnyw4ri9vbn7bv9b2xkw1520qczfxpxdarfivdrz8xr68"))
+    (build-system ocaml-build-system)
+    (native-inputs
+     `(("js-build-tools" ,ocaml-js-build-tools)
+       ("opam" ,opam)))
+    (propagated-inputs
+     `(("ppx-driver" ,ocaml-ppx-driver)
+       ("ppx-here" ,ocaml-ppx-here)
+       ("ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+       ("ppx-tools" ,ocaml-ppx-tools)
+       ("ppx-core" ,ocaml-ppx-core)))
+    (arguments janestreet-arguments)
+    (home-page "https://github.com/janestreet/ppx_sexp_message/")
+    (synopsis "A ppx rewriter for easy construction of s-expressions")
+    (description "Ppx_sexp_message aims to ease the creation of s-expressions
+in OCaml.  This is mainly motivated by writing error and debugging messages,
+where one needs to construct a s-expression based on various element of the
+context such as function arguments.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-fields-conv
+  (package
+    (name "ocaml-ppx-fields-conv")
+    (version "113.33.03")
+    (source (janestreet-origin "ppx_fields_conv" version
+              "1vzbdz27g5qhhfs7wx6rjf979q4xyssxqbmp6sc1sxknbghslbdv"))
+    (build-system ocaml-build-system)
+    (native-inputs
+     `(("js-build-tools" ,ocaml-js-build-tools)
+       ("opam" ,opam)
+       ("ppx-core" ,ocaml-ppx-core)))
+    (propagated-inputs
+     `(("fieldslib" ,ocaml-fieldslib)
+       ("ppx-tools" ,ocaml-ppx-tools)
+       ("ppx-core" ,ocaml-ppx-core)
+       ("ppx-type-conv" ,ocaml-ppx-type-conv)))
+    (arguments janestreet-arguments)
+    (home-page "https://github.com/janestreet/ppx_fields_conv/")
+    (synopsis "Generation of accessor and iteration functions for ocaml records")
+    (description "Ppx_fields_conv is a ppx rewriter that can be used to define
+first class values representing record fields, and additional routines, to get
+and set record fields, iterate and fold over all fields of a record and create
+new record values.")
+    (license license:asl2.0)))
+
+(define-public ocaml-re
+  (package
+    (name "ocaml-re")
+    (version "1.7.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/ocaml/ocaml-re//archive/"
+                                  version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1s3rcr76cgm4p1xmaazc58arkg2lz3zfcp1icm00m6s5ccnkh67b"))))
+    (build-system ocaml-build-system)
+    (native-inputs `(("ounit" ,ocaml-ounit)))
+    (home-page "https://github.com/ocaml/ocaml-re/")
+    (synopsis "Regular expression library for OCaml")
+    (description "Pure OCaml regular expressions with:
+@enumerate
+@item Perl-style regular expressions (module Re_perl)
+@item Posix extended regular expressions (module Re_posix)
+@item Emacs-style regular expressions (module Re_emacs)
+@item Shell-style file globbing (module Re_glob)
+@item Compatibility layer for OCaml's built-in Str module (module Re_str)
+@end enumerate")
+    (license license:expat)))
+
+(define-public ocaml-ppx-expect
+  (package
+    (name "ocaml-ppx-expect")
+    (version "113.33.03")
+    (source (janestreet-origin "ppx_expect" version
+              "03sbs4s5i8l9syr45v25f5hzy7msd2b47k2a9wsq9m43d4imgkrc"))
+    (build-system ocaml-build-system)
+    (native-inputs
+     `(("js-build-tools" ,ocaml-js-build-tools)
+       ("opam" ,opam)))
+    (propagated-inputs
+     `(("fieldslib" ,ocaml-fieldslib)
+       ("ppx-tools" ,ocaml-ppx-tools)
+       ("ppx-assert" ,ocaml-ppx-assert)
+       ("ppx-compare" ,ocaml-ppx-compare)
+       ("ppx-core" ,ocaml-ppx-core)
+       ("ppx-custom-printf" ,ocaml-ppx-custom-printf)
+       ("ppx-driver" ,ocaml-ppx-driver)
+       ("ppx-fields-conv" ,ocaml-ppx-fields-conv)
+       ("ppx-inline-test" ,ocaml-ppx-inline-test)
+       ("ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+       ("ppx-variants-conv" ,ocaml-ppx-variants-conv)
+       ("re" ,ocaml-re)
+       ("sexplib" ,ocaml-sexplib)
+       ("variantslib" ,ocaml-variantslib)))
+    (arguments janestreet-arguments)
+    (home-page "https://github.com/janestreet/ppx_expect/")
+    (synopsis "Cram like framework for OCaml")
+    (description "Expect-test is a framework for writing tests in OCaml, similar
+to Cram.  Expect-tests mimic the existing inline tests framework with the
+let%expect_test construct.  The body of an expect-test can contain
+output-generating code, interleaved with %expect extension expressions to denote
+the expected output.")
+    (license license:asl2.0)))
+
+(define-public ocaml-ppx-jane
+  (package
+    (name "ocaml-ppx-jane")
+    (version "113.33.03")
+    (source (janestreet-origin "ppx_jane" version
+              "0bjxkhmzgm6x9dcvjwybbccn34khbvyyjimcbaja30fp6qcqk5yl"))
+    (build-system ocaml-build-system)
+    (native-inputs
+     `(("js-build-tools" ,ocaml-js-build-tools)
+       ("opam" ,opam)))
+    (propagated-inputs
+     `(("ppx-assert" ,ocaml-ppx-assert)
+       ("ppx-bench" ,ocaml-ppx-bench)
+       ("ppx-bin-prot" ,ocaml-ppx-bin-prot)
+       ("ppx-compare" ,ocaml-ppx-compare)
+       ("ppx-custom-printf" ,ocaml-ppx-custom-printf)
+       ("ppx-deriving" ,ocaml-ppx-deriving)
+       ("ppx-enumerate" ,ocaml-ppx-enumerate)
+       ("ppx-expect" ,ocaml-ppx-expect)
+       ("ppx-fail" ,ocaml-ppx-fail)
+       ("ppx-fields-conv" ,ocaml-ppx-fields-conv)
+       ("ppx-here" ,ocaml-ppx-here)
+       ("ppx-inline-test" ,ocaml-ppx-inline-test)
+       ("ppx-let" ,ocaml-ppx-let)
+       ("ppx-pipebang" ,ocaml-ppx-pipebang)
+       ("ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+       ("ppx-sexp-message" ,ocaml-ppx-sexp-message)
+       ("ppx-sexp-value" ,ocaml-ppx-sexp-value)
+       ("ppx-typerep-conv" ,ocaml-ppx-typerep-conv)
+       ("ppx-variants-conv" ,ocaml-ppx-variants-conv)))
+    (arguments janestreet-arguments)
+    (home-page "https://github.com/janestreet/ppx_jane/")
+    (synopsis "Standard Jane Street ppx rewriters")
+    (description "Ppx_jane is a ppx_driver including all standard ppx rewriters.")
+    (license license:asl2.0)))
diff --git a/gnu/packages/patches/graphite2-CVE-2017-5436.patch b/gnu/packages/patches/graphite2-CVE-2017-5436.patch
deleted file mode 100644
index d7383ec8de..0000000000
--- a/gnu/packages/patches/graphite2-CVE-2017-5436.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 1ce331d5548b98ed8b818532b2556d6f2c7a3b83 Mon Sep 17 00:00:00 2001
-From: Martin Hosken <martin_hosken@sil.org>
-Date: Thu, 9 Mar 2017 22:04:04 +0000
-Subject: [PATCH] Ensure features have enough space. Fix from Mozilla
-
----
- src/FeatureMap.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/FeatureMap.cpp b/src/FeatureMap.cpp
-index b8c8405..83bd5f6 100644
---- a/src/FeatureMap.cpp
-+++ b/src/FeatureMap.cpp
-@@ -275,7 +275,7 @@ bool FeatureRef::applyValToFeature(uint32 val, Features & pDest) const
-     else
-       if (pDest.m_pMap!=&m_pFace->theSill().theFeatureMap())
-         return false;       //incompatible
--    pDest.reserve(m_index);
-+    pDest.reserve(m_index+1);
-     pDest[m_index] &= ~m_mask;
-     pDest[m_index] |= (uint32(val) << m_bits);
-     return true;
--- 
-2.12.2
-
diff --git a/gnu/packages/patches/graphite2-check-code-point-limit.patch b/gnu/packages/patches/graphite2-check-code-point-limit.patch
deleted file mode 100644
index a9b6caf53f..0000000000
--- a/gnu/packages/patches/graphite2-check-code-point-limit.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 348c11e4571b534efdbd58a575bbea979c880b2f Mon Sep 17 00:00:00 2001
-From: Tim Eves <tim_eves@sil.org>
-Date: Wed, 1 Mar 2017 14:23:46 +0700
-Subject: [PATCH] Fix decoding of USV greater than U+110000
-
-Add test cases too
----
- src/inc/UtfCodec.h        | 4 ++--
- tests/utftest/utftest.cpp | 3 +++
- 2 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/src/inc/UtfCodec.h b/src/inc/UtfCodec.h
-index 3417bac..9dc760f 100644
---- a/src/inc/UtfCodec.h
-+++ b/src/inc/UtfCodec.h
-@@ -124,7 +124,7 @@ struct _utf_codec<8>
- private:
-     static const int8 sz_lut[16];
-     static const byte mask_lut[5];
--
-+    static const uchar_t    limit = 0x110000;
- 
- public:
-     typedef uint8   codeunit_t;
-@@ -157,7 +157,7 @@ public:
-             case 0:     l = -1; return 0xFFFD;
-         }
- 
--        if (l != seq_sz || toolong)
-+        if (l != seq_sz || toolong  || u >= limit)
-         {
-             l = -l;
-             return 0xFFFD;
-diff --git a/tests/utftest/utftest.cpp b/tests/utftest/utftest.cpp
-index 21cb188..a23553a 100644
---- a/tests/utftest/utftest.cpp
-+++ b/tests/utftest/utftest.cpp
-@@ -8,6 +8,9 @@ struct test8
-     unsigned char str[12];
- };
- struct test8 tests8[] = {
-+    { 0,  0, {0xF4, 0x90, 0x80, 0x80, 0,    0,    0,    0,    0,    0,    0,    0} },   // bad(4) [U+110000]
-+    { 0,  0, {0xC0, 0x80, 0,    0,    0,    0,    0,    0,    0,    0,    0,    0} },   // bad(4) [U+110000]
-+    { 0,  0, {0xA0, 0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0} },   // bad(4) [U+110000]    
-     { 4, -1, {0x7F, 0xDF, 0xBF, 0xEF, 0xBF, 0xBF, 0xF4, 0x8F, 0xBF, 0xBF, 0,    0} },   // U+7F, U+7FF, U+FFFF, U+10FFF
-     { 2,  3, {0x7F, 0xDF, 0xBF, 0xF0, 0x8F, 0xBF, 0xBF, 0xF4, 0x8F, 0xBF, 0xBF, 0} },   // U+7F, U+7FF, long(U+FFFF), U+10FFF
-     { 1,  1, {0x7F, 0xE0, 0x9F, 0xBF, 0xEF, 0xBF, 0xBF, 0xF4, 0x8F, 0xBF, 0xBF, 0} },   // U+7F, long(U+7FF), U+FFFF, U+10FFF
--- 
-2.12.2
-
diff --git a/gnu/packages/patches/graphite2-fix-32-bit-wrap-arounds.patch b/gnu/packages/patches/graphite2-fix-32-bit-wrap-arounds.patch
deleted file mode 100644
index 57d4ce2c6e..0000000000
--- a/gnu/packages/patches/graphite2-fix-32-bit-wrap-arounds.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-This patch incorporates the following 6 consecutive commits from the upstream
-graphite2 repository:
-
-75b83cd..: Martin Hosken 2017-03-28 Fix 32-bit wrap arounds
-1f97e36..: Martin Hosken 2017-03-28 balance comparisons in decompressor
-9493785..: Martin Hosken 2017-03-29 Speculative rounding fix
-09af043..: Tim Eves      2017-03-31 Move a MINMATCH to rhs of a comparisio
-28cc60d..: Tim Eves      2017-03-31 Deal with similar wrap around in literal_len
-8afc7d0..: Martin Hosken 2017-04-03 Fix 32-bit rollover in decompressor, again
-
-This diff was generated by the following command:
-
-  git diff 1ce331d5548b98ed..8afc7d0081959866
-
-
-diff --git a/src/Decompressor.cpp b/src/Decompressor.cpp
-index 084570f..56d531f 100644
---- a/src/Decompressor.cpp
-+++ b/src/Decompressor.cpp
-@@ -51,7 +51,7 @@ bool read_sequence(u8 const * &src, u8 const * const end, u8 const * &literal, u
-     literal = src;
-     src += literal_len;
-     
--    if (src > end - 2)
-+    if (src > end - 2 || src < literal)
-         return false;
-     
-     match_dist  = *src++;
-@@ -85,7 +85,7 @@ int lz4::decompress(void const *in, size_t in_size, void *out, size_t out_size)
-         {
-             // Copy in literal. At this point the last full sequence must be at
-             // least MINMATCH + 5 from the end of the output buffer.
--            if (dst + align(literal_len) > dst_end - (MINMATCH+5))
-+            if (align(literal_len) > unsigned(dst_end - dst - (MINMATCH+5)) || dst_end - dst < MINMATCH + 5)
-                 return -1;
-             dst = overrun_copy(dst, literal, literal_len);
-         }
-@@ -94,7 +94,8 @@ int lz4::decompress(void const *in, size_t in_size, void *out, size_t out_size)
-         //  decoded output.
-         u8 const * const pcpy = dst - match_dist;
-         if (pcpy < static_cast<u8*>(out)
--                  || dst + match_len + MINMATCH > dst_end - 5)
-+                  || match_len > unsigned(dst_end - dst - (MINMATCH+5))
-+                  || dst_end - dst < MINMATCH + 5)
-             return -1;
-         if (dst > pcpy+sizeof(unsigned long) 
-             && dst + align(match_len + MINMATCH) <= dst_end)
-@@ -103,8 +104,8 @@ int lz4::decompress(void const *in, size_t in_size, void *out, size_t out_size)
-             dst = safe_copy(dst, pcpy, match_len + MINMATCH);
-     }
-     
--    if (literal + literal_len > src_end
--              || dst + literal_len > dst_end)
-+    if (literal_len > src_end - literal
-+              || literal_len > dst_end - dst)
-         return -1;
-     dst = fast_copy(dst, literal, literal_len);
-     
-diff --git a/src/Pass.cpp b/src/Pass.cpp
-index a4bac2e..683143c 100644
---- a/src/Pass.cpp
-+++ b/src/Pass.cpp
-@@ -171,7 +171,7 @@ bool Pass::readPass(const byte * const pass_start, size_t pass_length, size_t su
-     const uint16 * const o_actions = reinterpret_cast<const uint16 *>(p);
-     be::skip<uint16>(p, m_numRules + 1);
-     const byte * const states = p;
--    if (e.test(p + 2u*m_numTransition*m_numColumns >= pass_end, E_BADPASSLENGTH)) return face.error(e);
-+    if (e.test(2u*m_numTransition*m_numColumns >= (unsigned)(pass_end - p), E_BADPASSLENGTH)) return face.error(e);
-     be::skip<int16>(p, m_numTransition*m_numColumns);
-     be::skip<uint8>(p);
-     if (e.test(p != pcCode, E_BADPASSCCODEPTR)) return face.error(e);
-@@ -192,7 +192,7 @@ bool Pass::readPass(const byte * const pass_start, size_t pass_length, size_t su
-         m_cPConstraint = vm::Machine::Code(true, pcCode, pcCode + pass_constraint_len, 
-                                   precontext[0], be::peek<uint16>(sort_keys), *m_silf, face, PASS_TYPE_UNKNOWN);
-         if (e.test(!m_cPConstraint, E_OUTOFMEM)
--                || e.test(!m_cPConstraint, m_cPConstraint.status() + E_CODEFAILURE))
-+                || e.test(m_cPConstraint.status() != Code::loaded, m_cPConstraint.status() + E_CODEFAILURE))
-             return face.error(e);
-         face.error_context(face.error_context() - 1);
-     }
-diff --git a/src/Silf.cpp b/src/Silf.cpp
-index 72a22cd..d661992 100644
---- a/src/Silf.cpp
-+++ b/src/Silf.cpp
-@@ -191,7 +191,7 @@ bool Silf::readGraphite(const byte * const silf_start, size_t lSilf, Face& face,
- 
-     const size_t clen = readClassMap(p, passes_start - p, version, e);
-     m_passes = new Pass[m_numPasses];
--    if (e || e.test(p + clen > passes_start, E_BADPASSESSTART)
-+    if (e || e.test(clen > unsigned(passes_start - p), E_BADPASSESSTART)
-           || e.test(!m_passes, E_OUTOFMEM))
-     { releaseBuffers(); return face.error(e); }
- 
diff --git a/gnu/packages/patches/graphite2-non-linear-classes-even-number.patch b/gnu/packages/patches/graphite2-non-linear-classes-even-number.patch
deleted file mode 100644
index 2bb1c9f94e..0000000000
--- a/gnu/packages/patches/graphite2-non-linear-classes-even-number.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 0646e4ee471183994f78a759269f0505617711f3 Mon Sep 17 00:00:00 2001
-From: Martin Hosken <martin_hosken@sil.org>
-Date: Tue, 18 Apr 2017 13:17:14 +0100
-Subject: [PATCH] Ensure non linear classes have even number of elements
-
----
- src/Silf.cpp | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/Silf.cpp b/src/Silf.cpp
-index d661992..9f2f954 100644
---- a/src/Silf.cpp
-+++ b/src/Silf.cpp
-@@ -293,7 +293,8 @@ size_t Silf::readClassMap(const byte *p, size_t data_len, uint32 version, Error
-         if (e.test(*o + 4 > max_off, E_HIGHCLASSOFFSET)                        // LookupClass doesn't stretch over max_off
-          || e.test(lookup[0] == 0                                                   // A LookupClass with no looks is a suspicious thing ...
-                     || lookup[0] * 2 + *o + 4 > max_off                             // numIDs lookup pairs fits within (start of LookupClass' lookups array, max_off]
--                    || lookup[3] + lookup[1] != lookup[0], E_BADCLASSLOOKUPINFO))   // rangeShift:   numIDs  - searchRange
-+                    || lookup[3] + lookup[1] != lookup[0], E_BADCLASSLOOKUPINFO)    // rangeShift:   numIDs  - searchRange
-+         || e.test(((o[1] - *o) & 1) != 0, ERROROFFSET))                         // glyphs are in pairs so difference must be even.
-             return ERROROFFSET;
-     }
- 
--- 
-2.12.2
-
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index dc1efd62a4..b958199bdb 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -27,7 +27,7 @@
 ;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2016 Stefan Reichoer <stefan@xsteve.at>
+;;; Copyright © 2016, 2017 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
 ;;; Copyright © 2016 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
@@ -65,6 +65,7 @@
   #:use-module (gnu packages backup)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages django)
   #:use-module (gnu packages file)
@@ -1487,16 +1488,38 @@ backported for previous versions of Python from 2.4 to 3.3.")
        (base32
         "0iv1c34npr4iynwpgv1vkjx9rjd18a85ir8c01gc5f7wp8iv7l1x"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-tests
+           (lambda _
+             (substitute* "tests/test_parse_type_parse.py"
+               ;; Newer Python versions don't have the problem this test tests.
+               (("self[.]assertRaises[(]parse.TooManyFields, p.parse, ''[)]")
+                ""))
+             #t)))))
     (propagated-inputs
      `(("python-six" ,python-six)
        ("python-parse" ,python-parse)))
-    (arguments '(#:tests? #f))            ;TODO: tests require pytest
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-pytest-runner" ,python-pytest-runner)))
     (home-page "https://github.com/jenisys/parse_type")
     (synopsis "Extended parse module")
     (description
      "Parse_type extends the python parse module.")
+    (properties
+     `((python2-variant . ,(delay python2-parse-type))))
     (license license:bsd-3)))
 
+(define-public python2-parse-type
+  (let ((base (package-with-python2
+                (strip-python2-variant python-parse-type))))
+    (package (inherit base)
+      (propagated-inputs
+       `(("python2-enum34" ,python2-enum34)
+         ,@(package-propagated-inputs base))))))
+
 (define-public python-parse
   (package
     (name "python-parse")
@@ -4727,15 +4750,14 @@ a front-end for C compilers or analysis tools.")
 (define-public python-xcffib
   (package
     (name "python-xcffib")
-    (version "0.1.9")
+    (version "0.5.1")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "https://pypi.python.org/packages/source/x/"
-                          "xcffib/xcffib-" version ".tar.gz"))
+      (uri (pypi-uri "xcffib" version))
       (sha256
        (base32
-        "0655hzxv57h1a9ja9kwp0ichbkhf3djw32k33d66xp0q37dq2y81"))))
+        "09gbnmr5vn58mm8xi3fmd7fz6743cks6c46dphnxzwax6zsxmy60"))))
     (build-system python-build-system)
     (inputs
      `(("libxcb" ,libxcb)))
@@ -4743,10 +4765,16 @@ a front-end for C compilers or analysis tools.")
      `(("python-cffi" ,python-cffi) ; used at run time
        ("python-six" ,python-six)))
     (arguments
-     `(;; FIXME: Tests cannot load libxcb.so.1
+     `(;; FIXME: Tests need more work. See ".travis.yml" in the repository.
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'fix-libxcb-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((libxcb (assoc-ref inputs "libxcb")))
+               (substitute* '("xcffib/__init__.py")
+                 (("^soname = \"") (string-append "soname = \"" libxcb "/lib/")))
+               #t)))
          (add-after 'install 'install-doc
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((doc (string-append (assoc-ref outputs "out") "/share"
@@ -7305,14 +7333,14 @@ responses, rather than doing any computation.")
 (define-public python-cryptography-vectors
   (package
     (name "python-cryptography-vectors")
-    (version "1.7.1")
+    (version "1.8.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "cryptography_vectors" version))
        (sha256
         (base32
-         "1x2mz4wggja5ih45c6cw0kzyad4jr8avg327dawjr1gnpdq1psa7"))))
+         "0hzvq0bfy21bc35p8z7zdxpv3hbvi7adg4axc1b5yd3hk16a1nh0"))))
     (build-system python-build-system)
     (home-page "https://github.com/pyca/cryptography")
     (synopsis "Test vectors for the cryptography package")
@@ -7327,29 +7355,33 @@ responses, rather than doing any computation.")
 (define-public python-cryptography
   (package
     (name "python-cryptography")
-    (version "1.7.1")
+    (version "1.8.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "cryptography" version))
        (sha256
         (base32
-         "0k6v7wq4h0yk9r0x0bl2x9fyrg4a6gj5qp4m9mgpk6m481yyygwm"))))
+         "1nmy4fw3zy7rlvarkhn33g9905rwpy9z7k5kv8j80f0s6ynfp24f"))))
     (build-system python-build-system)
     (inputs
      `(("openssl" ,openssl)))
     (propagated-inputs
-     `(("python-cffi" ,python-cffi)
+     `(("python-asn1crypto" ,python-asn1crypto)
+       ("python-cffi" ,python-cffi)
        ("python-six" ,python-six)
-       ("python-pyasn1" ,python-pyasn1)
        ("python-idna" ,python-idna)
+       ;; Packaging is used to check the version of python-cffi in
+       ;; 'src/cryptography/hazmat/primitives/ciphers/base.py'. We should be
+       ;; able to remove this dependency in the next release of cryptography:
+       ;; python-cryptography:
+       ;; https://github.com/pyca/cryptography/commit/0417d00d9ff1e19bc3ab67d39bdd18e1674768c1
+       ("python-packaging" ,python-packaging)
        ("python-iso8601" ,python-iso8601)))
     (native-inputs
      `(("python-cryptography-vectors" ,python-cryptography-vectors)
        ("python-hypothesis" ,python-hypothesis)
        ("python-pretend" ,python-pretend)
-       ("python-pyasn1" ,python-pyasn1)
-       ("python-pyasn1-modules" ,python-pyasn1-modules)
        ("python-pytz" ,python-pytz)
        ("python-pytest" ,python-pytest-3.0)))
     (home-page "https://github.com/pyca/cryptography")
@@ -13448,6 +13480,33 @@ faster ones are not available.")
 to ansi-escaped strings suitable for display in a terminal.")
     (license license:expat)))
 
+(define-public python-ansi2html
+  (package
+    (name "python-ansi2html")
+    (version "1.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "ansi2html" version))
+       (sha256
+        (base32
+         "1wa00zffprb78w1mqq90dk47czz1knanys2a40zbw2vyapd5lp9y"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-mock" ,python-mock)
+       ("python-nose" ,python-nose)))
+    (propagated-inputs
+     `(("python-six" ,python-six)))
+    (home-page "http://github.com/ralphbean/ansi2html")
+    (synopsis "Convert ANSI-decorated console output to HTML")
+    (description
+     "@command{ansi2html} is a Python library and command line utility for
+convering text with ANSI color codes to HTML or LaTeX.")
+    (license license:gpl3+)))
+
+(define-public python2-ansi2html
+  (package-with-python2 python-ansi2html))
+
 (define-public python-ddt
   (package
     (name "python-ddt")
@@ -14622,3 +14681,126 @@ substitute for redis.")
 
 (define-public python2-fakeredis
   (package-with-python2 python-fakeredis))
+
+(define-public python-behave-web-api
+  (package
+    (name "python-behave-web-api")
+    (version "1.0.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "behave-web-api" version))
+       (sha256
+        (base32
+         "03kpq2xsy1gab3jy0dccbxlsg7vwfy4lagss0qldwmx3xz6b3i19"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-dependencies
+           (lambda _
+             (substitute* "setup.py"
+               (("'wheel'") "")                ; We don't use it.
+               (("'ordereddict==1.1'") ""))))))) ; Python >= 2.7 has it built-in.
+    (propagated-inputs
+     `(("behave" ,behave)
+       ("python-requests" ,python-requests)))
+    (home-page "https://github.com/jefersondaniel/behave-web-api")
+    (synopsis "Provides testing for JSON APIs with Behave for Python")
+    (description "This package provides testing utility modules for testing
+JSON APIs with Behave.")
+    (license license:expat)))
+
+(define-public python2-behave-web-api
+  (package-with-python2 python-behave-web-api))
+
+(define-public python-flask-script
+  (package
+  (name "python-flask-script")
+  (version "2.0.5")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (pypi-uri "Flask-Script" version))
+      (sha256
+        (base32
+          "0zqh2yq8zk7m9b4xw1ryqmrljkdigfb3hk5155a3b5hkfnn6xxyf"))))
+  (build-system python-build-system)
+  (propagated-inputs
+   `(("python-flask" ,python-flask)
+     ("python-argcomplete" ,python-argcomplete)
+     ("python-werkzeug" ,python-werkzeug)))
+  (native-inputs
+   `(("python-pytest" ,python-pytest)))
+  (home-page
+    "http://github.com/smurfix/flask-script")
+  (synopsis "Scripting support for Flask")
+  (description "The Flask-Script extension provides support for writing
+external scripts in Flask.  This includes running a development server,
+a customised Python shell, scripts to set up your database, cronjobs,
+and other command-line tasks that belong outside the web application
+itself.")
+  (license license:bsd-3)))
+
+(define-public python2-flask-script
+  (package-with-python2 python-flask-script))
+
+(define-public python-flask-migrate
+  (package
+  (name "python-flask-migrate")
+  (version "2.0.3")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (pypi-uri "Flask-Migrate" version))
+      (sha256
+        (base32
+          "107x78lkqsnbg92dld3dkagg07jvchp3ib3y0sivc4ipz6n1y7rk"))))
+  (build-system python-build-system)
+  (propagated-inputs
+   `(("python-flask" ,python-flask)
+     ("python-alembic" ,python-alembic)
+     ("python-sqlalchemy" ,python-sqlalchemy)
+     ("python-flask-script" ,python-flask-script)
+     ("python-flask-sqlalchemy" ,python-flask-sqlalchemy)))
+  (home-page "http://github.com/miguelgrinberg/flask-migrate/")
+  (synopsis "SQLAlchemy database migrations for Flask programs using
+Alembic")
+  (description "This package contains SQLAlchemy database migration tools
+for Flask programs that are using @code{python-alembic}.")
+  (license license:expat)))
+
+(define-public python2-flask-migrate
+  (package-with-python2 python-flask-migrate))
+
+(define-public python-packaging
+  (package
+    (name "python-packaging")
+    (version "16.8")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "packaging" version))
+        (sha256
+         (base32
+          "17k1xbjshackwvbsnxqixbph8rbqhz4bf4g3al5xyzhavxgq6l2x"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-pretend" ,python-pretend)
+       ("python-pytest" ,python-pytest)))
+    (propagated-inputs
+     `(("python-pyparsing" ,python-pyparsing)
+       ("python-six" ,python-six)))
+    (home-page "https://github.com/pypa/packaging")
+    (synopsis "Core utilities for Python packages")
+    (description "Packaging is a Python module for dealing with Python packages.
+It offers an interface for working with package versions, names, and dependency
+information.")
+    ;; From 'LICENSE': This software is made available under the terms of
+    ;; *either* of the licenses found in LICENSE.APACHE or LICENSE.BSD.
+    ;; Contributions to this software is made under the terms of *both* these
+    ;; licenses.
+    (license (list license:asl2.0 license:bsd-2))))
+
+(define-public python2-packaging
+  (package-with-python2 python-packaging))
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 544ab53fd9..1cd6a99dc0 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -365,7 +365,7 @@ required structures.")
   (package
     (inherit openssl)
     (name "openssl")
-    (version "1.1.0e")
+    (version "1.1.0f")
     (source (origin
              (method url-fetch)
              (uri (list (string-append "ftp://ftp.openssl.org/source/"
@@ -376,7 +376,7 @@ required structures.")
               (patches (search-patches "openssl-1.1.0-c-rehash-in.patch"))
               (sha256
                (base32
-                "0k47sdd9gs6yxfv6ldlgpld2lyzrkcv9kz4cf88ck04xjwc8dgjp"))))
+                "0r97n4n552ns571diz54qsgarihrxvbn7kvyv8wjyfs9ybrldxqj"))))
     (outputs '("out"
                "doc"        ;1.3MiB of man3 pages
                "static"))   ; 5.5MiB of .a files
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index b7c26a0424..5399334f2e 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -646,7 +646,7 @@ audio/video codec library.")
 (define-public vlc
   (package
     (name "vlc")
-    (version "2.2.5.1")
+    (version "2.2.6")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -654,7 +654,7 @@ audio/video codec library.")
                    version "/vlc-" version ".tar.xz"))
              (sha256
               (base32
-               "1k51vm6piqlrnld7sxyg0s4kdkd3lan97lmy3v5wdh3qyll8m2xj"))))
+               "1a22b913p2227ljz89c4fgjlyln5gcz8z58w32r0wh4srnnd60y4"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("git" ,git) ; needed for a test
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index e343f40cab..71f1e9dc7f 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -53,14 +53,14 @@
 (define-public webkitgtk
   (package
     (name "webkitgtk")
-    (version "2.16.2")
+    (version "2.16.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.webkitgtk.org/releases/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0lpj14cfr8p0ys6z1ych0zcwxbc86asvgs7v3qa72azb0ai8kxjy"))))
+                "04mmfxm8284zrlkrhkcn9gq1l4lpm1q6wwb5hyybj081v8qr2ki0"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f ; no tests
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 3cf74c4ca8..607ef2b0e7 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -72,16 +72,17 @@
 (define-public libconfuse
   (package
     (name "libconfuse")
-    (version "2.7")
+    (version "3.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://savannah.nongnu.org/download/confuse/"
-                                  "confuse-" version ".tar.gz"))
+              (uri (string-append "https://github.com/martinh/libconfuse/"
+                                  "releases/download/v" version
+                                  "/confuse-" version ".tar.xz"))
               (sha256
                (base32
-                "0y47r2ashz44wvnxdb18ivpmj8nxhw3y9bf7v9w0g5byhgyp89g3"))))
+                "0rnacgfkd88qyxrfdfzn9cxz533l9s5wrzb9093f9mbi00gg6wc1"))))
     (build-system gnu-build-system)
-    (home-page "http://www.nongnu.org/confuse/")
+    (home-page "https://github.com/martinh/libconfuse")
     (synopsis "Configuration file parser library")
     (description "libconfuse is a configuration file parser library.  It
 supports sections and (lists of) values (strings, integers, floats, booleans
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 980b6e8022..ad919a6b28 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -441,7 +441,7 @@ of the screen selected by mouse.")
 (define-public slop
   (package
     (name "slop")
-    (version "5.3.38")
+    (version "6.3.38")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -450,7 +450,7 @@ of the screen selected by mouse.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1gvsxzl4y4l7d5gvx24i0yxk3jxc1gnb48bjwvqmrh34gx974wn7"))))
+                "1jh08k7nqx6hr4rmb5damzqhnqiac439i6i51fmzymzw3fqykas8"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f)) ; no "check" target