summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/audio.scm8
-rw-r--r--gnu/packages/bioinformatics.scm4
-rw-r--r--gnu/packages/crypto.scm8
-rw-r--r--gnu/packages/emacs-xyz.scm32
-rw-r--r--gnu/packages/finance.scm185
-rw-r--r--gnu/packages/image-viewers.scm108
-rw-r--r--gnu/packages/imagemagick.scm5
-rw-r--r--gnu/packages/irc.scm4
-rw-r--r--gnu/packages/linux.scm12
-rw-r--r--gnu/packages/lisp.scm57
-rw-r--r--gnu/packages/mail.scm25
-rw-r--r--gnu/packages/mpd.scm4
-rw-r--r--gnu/packages/music.scm4
-rw-r--r--gnu/packages/password-utils.scm73
-rw-r--r--gnu/packages/patches/monero-use-system-miniupnpc.patch95
-rw-r--r--gnu/packages/python-xyz.scm4
-rw-r--r--gnu/packages/ruby.scm48
-rw-r--r--gnu/packages/video.scm22
-rw-r--r--gnu/packages/virtualization.scm20
-rw-r--r--gnu/packages/vpn.scm4
-rw-r--r--gnu/packages/xdisorg.scm8
-rw-r--r--gnu/packages/xfce.scm35
-rw-r--r--gnu/packages/xorg.scm4
-rw-r--r--guix/derivations.scm33
-rw-r--r--guix/profiles.scm3
-rw-r--r--guix/store.scm12
26 files changed, 493 insertions, 324 deletions
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index b9217dfa53..7024c46bb5 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -322,7 +322,7 @@ engineers, musicians, soundtrack editors and composers.")
 (define-public audacity
   (package
     (name "audacity")
-    (version "2.2.2")
+    (version "2.3.2")
     (source
      (origin
        (method git-fetch)
@@ -332,7 +332,7 @@ engineers, musicians, soundtrack editors and composers.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "10maxmjxbmjybj7n4m7a9bbm7g8xxw8f8vbsf7c9ih5j2gr15ihs"))
+         "08w96124vv8k4myd4vifq73ningq6404x889wvg2sk016kc4dfv1"))
        (patches (search-patches "audacity-build-with-system-portaudio.patch"))
        (modules '((guix build utils)))
        (snippet
@@ -3375,14 +3375,14 @@ on the ALSA software PCM plugin.")
 (define-public snd
   (package
     (name "snd")
-    (version "19.3")
+    (version "19.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
                                   "snd-" version ".tar.gz"))
               (sha256
                (base32
-                "16j3fqyw361wdsr1076f0p3va2y7wdzq1lvr4ijz1ajmbxdlc723"))))
+                "0sk6iyykwi2mm3f1g4r0iqbsrwk3zmyagp6jjqkh8njbq42cjr1y"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 8c140a1d24..9a30a0eaff 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -12550,7 +12550,7 @@ once.  This package provides tools to perform Drop-seq analyses.")
 (define-public pigx-rnaseq
   (package
     (name "pigx-rnaseq")
-    (version "0.0.7")
+    (version "0.0.8")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_rnaseq/"
@@ -12558,7 +12558,7 @@ once.  This package provides tools to perform Drop-seq analyses.")
                                   "/pigx_rnaseq-" version ".tar.gz"))
               (sha256
                (base32
-                "013inbh22bjvwg2w0kx5i42k66w1zl4310ldip2ax6msgprs2ydj"))))
+                "19nhflzs6k5c7yhi7gkwggq237cjdd1s4b4qkj5x5fkwg0rhn33i"))))
     (build-system gnu-build-system)
     (arguments
      `(#:parallel-tests? #f             ; not supported
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 6bee8cb31a..dadd545287 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2015, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017, 2018, 2019 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox>
-;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2016, 2017, 2019 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
@@ -330,14 +330,14 @@ no man page, refer to the home page for usage details.")
 (define-public tomb
   (package
     (name "tomb")
-    (version "2.5")
+    (version "2.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://files.dyne.org/tomb/"
                                   "Tomb-" version ".tar.gz"))
               (sha256
                (base32
-                "12c6qldngaw520gvb02inzkhnxbl4k0dwmddrgnaf7xashy6j0wc"))))
+                "1sr3jcn96mciyn8xd0amd1jzamxxzpybakf8an7laf26gjim1dh2"))))
     (build-system gnu-build-system)
     (native-inputs `(("sudo" ,sudo)))   ;presence needed for 'check' phase
     (inputs
@@ -356,7 +356,7 @@ no man page, refer to the home page for usage details.")
        ;; TODO: Build and install gtk and qt trays
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)   ;no configuration to be done
+         (delete 'configure)            ;no configuration to be done
          (add-after 'install 'i18n
            (lambda* (#:key make-flags #:allow-other-keys)
              (apply invoke "make" "-C" "extras/translations"
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index c30a05bd82..d78025e0a9 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -433,6 +433,38 @@ these arguments.  The prototypical use is for the command to call an external
 process, passing on the arguments as command line arguments.")
     (license license:gpl3+)))
 
+(define-public emacs-minions
+  (package
+    (name "emacs-minions")
+    (version "0.3.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/tarsius/minions.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0q2y37zfxlbfvgdn70ikg3abp8vljna4ir9nyqlz1awmz5i1c43s"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-dash" ,emacs-dash)))
+    (home-page "https://github.com/tarsius/minions")
+    (synopsis "Minor-mode menu for the mode line")
+    (description
+     "This package implements a menu that lists enabled minor-modes, as well
+as commonly but not currently enabled minor-modes.  It can be used to toggle
+local and global minor-modes, to access mode-specific menus, and to get help
+about modes.
+
+This menu is intended as a replacement for the incomplete yet wide list of
+enabled minor-modes that is displayed in the mode line by default.  To use the
+menu like this, enable Minions mode.
+
+Alternatively the menu can be bound globally, for example:
+@code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
+    (license license:gpl3+)))
+
 (define-public emacs-treepy
   (package
     (name "emacs-treepy")
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 03a8285fc1..550354b650 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2018 Adriano Peluso <catonano@gmail.com>
 ;;; Copyright © 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,6 +40,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages documentation)
@@ -68,6 +70,7 @@
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages upnp)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages gnuzilla))
@@ -428,49 +431,59 @@ other machines/servers.  Electroncash does not download the Bitcoin Cash blockch
 
 (define-public monero
   ;; This package bundles easylogging++ and lmdb.
-  ;; The bundled easylogging++ is modified, and the changes will not be upstreamed.
+  ;; The bundled easylogging++ is modified, and the changes will not be
+  ;; upstreamed.
   ;; The devs deem the lmdb driver too critical a consenus component, to use
   ;; the system's dynamically linked library.
   (package
     (name "monero")
-    (version "0.12.3.0")
+    (version "0.14.1.0")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/monero-project/monero")
-             (commit (string-append "v" version))))
+             (url "https://github.com/monero-project/monero.git")
+             (commit (string-append "v" version))
+             (recursive? #t)))
        (file-name (git-file-name name version))
        (patches (search-patches "monero-use-system-miniupnpc.patch"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Delete bundled dependencies.
+           (for-each
+            delete-file-recursively
+            '("external/miniupnp" "external/rapidjson"
+              "external/unbound"))
+           #t))
        (sha256
         (base32
-         "14db9kgjm2ha93c2x5fjdw01xaqshn756qr3x2cnzyyjh7caz5qd"))))
+         "1asa197fad81jfv12qgaa7y7pdr1r1pda96m9pvivkh4v30cx0nh"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("doxygen" ,doxygen)
-       ("googletest" ,googletest)
+       ("git" ,git)
        ("graphviz" ,graphviz)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("qttools" ,qttools)))
     (inputs
-     `(("bind" ,isc-bind)
-       ("boost" ,boost)
-       ("zeromq" ,zeromq)
+     `(("boost" ,boost)
        ("cppzmq" ,cppzmq)
        ("expat" ,expat)
-       ("libsodium" ,libsodium)
+       ("hidapi" ,hidapi)
        ("libunwind" ,libunwind)
-       ("lmdb" ,lmdb)
-       ("miniupnpc" ,monero-miniupnpc)
+       ("libsodium" ,libsodium)
+       ("miniupnpc" ,miniupnpc)
        ("openssl" ,openssl)
        ("rapidjson" ,rapidjson)
-       ("unbound" ,unbound)))
+       ("readline" ,readline)
+       ("unbound" ,unbound)
+       ("xz" ,xz)
+       ("zeromq" ,zeromq)))
     (arguments
      `(#:out-of-source? #t
-       #:build-type "release"
-       #:configure-flags '("-DBUILD_TESTS=ON"
-                           ,@(if (string=? "aarch64-linux" (%current-system))
-                                 '("-DARCH=armv8-a")
-                                 '())
+       #:configure-flags '("-DARCH=default"
+                           "-DBUILD_TESTS=ON"
                            "-DBUILD_GUI_DEPS=ON")
        #:phases
        (modify-phases %standard-phases
@@ -479,24 +492,18 @@ other machines/servers.  Electroncash does not download the Bitcoin Cash blockch
            (lambda _
              (setenv "HOME" (getcwd))
              #t))
-         (add-after 'set-home 'fix-wallet-path-for-unit-tests
-           (lambda _
-             (substitute* "tests/unit_tests/serialization.cpp"
-               (("\\.\\./\\.\\./\\.\\./\\.\\./") "../../"))
-             #t))
-         (add-after 'fix-wallet-path-for-unit-tests 'change-log-path
+         (add-after 'set-home 'change-log-path
            (lambda _
              (substitute* "contrib/epee/src/mlog.cpp"
                (("epee::string_tools::get_current_module_folder\\(\\)")
-                "\".bitmonero\""))
-             (substitute* "contrib/epee/src/mlog.cpp"
-               (("return \\(") "return ((std::string(getenv(\"HOME\"))) / "))
+                "\".bitmonero\"")
+               (("return \\(")
+                "return ((std::string(getenv(\"HOME\"))) / "))
              #t))
+         ;; Only try tests that don't need access to network or system
          (replace 'check
            (lambda _
-             (invoke "make" "ARGS=-E 'unit_tests|libwallet_api_tests'"
-                     "test")))
-         ;; The excluded unit tests need network access
+             (invoke "make" "ARGS=-R 'hash|core_tests'" "test")))
          (add-after 'check 'unit-tests
            (lambda _
              (let ((excluded-unit-tests
@@ -506,58 +513,69 @@ other machines/servers.  Electroncash does not download the Bitcoin Cash blockch
                        "DNSResolver.IPv4Success"
                        "DNSResolver.DNSSECSuccess"
                        "DNSResolver.DNSSECFailure"
-                       "DNSResolver.GetTXTRecord")
+                       "DNSResolver.GetTXTRecord"
+                       ;; TODO: Find why portability_wallet test fails
+                       ;; Maybe the Boost version used to create the test
+                       ;; wallet and the current Boost version are not
+                       ;; completely compatible?
+                       "Serialization.portability_wallet"
+                       "is_hdd.linux_os_root")
                      ":")))
                (invoke "tests/unit_tests/unit_tests"
                        (string-append "--gtest_filter=-"
-                                      excluded-unit-tests)))))
-         (add-after 'install 'install-blockchain-import-export
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin (string-append out "/bin")))
-               (install-file "bin/monero-blockchain-import" bin)
-               (install-file "bin/monero-blockchain-export" bin)))))))
+                                      excluded-unit-tests))))))))
     (home-page "https://getmonero.org/")
     (synopsis "Command-line interface to the Monero currency")
     (description
-     "Monero is a secure, private, untraceable currency.  This package provides the
-Monero command line client and daemon.")
+     "Monero is a secure, private, untraceable currency.  This package provides
+the Monero command line client and daemon.")
     (license license:bsd-3)))
 
 (define-public monero-gui
   (package
     (name "monero-gui")
-    (version "0.12.2.0")
+    (version "0.14.1.0")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/monero-project/monero-gui")
+             (url "https://github.com/monero-project/monero-gui.git")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1cnrkwh7kp64lnzz1xfmkf1mhsgm5gls292gpqai3jr8jydpkahl"))))
+         "0ilx47771faygf97wilm64xnqxgxa3b43q0g9v014npk0qj8pc31"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("graphviz" ,graphviz)
-       ("pkg-config" ,pkg-config)
+     `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
     (inputs
      `(("boost" ,boost)
+       ("hidapi" ,hidapi)
        ("libunwind" ,libunwind)
+       ("libsodium" ,libsodium)
        ("openssl" ,openssl)
        ("qtbase" ,qtbase)
        ("qtdeclarative" ,qtdeclarative)
        ("qtgraphicaleffects" ,qtgraphicaleffects)
+       ("qtlocation" ,qtlocation)
+       ("qtmultimedia" ,qtmultimedia)
        ("qtquickcontrols" ,qtquickcontrols)
-       ("readline" ,readline)
+       ("qtquickcontrols2",qtquickcontrols2)
+       ("qtsvg" ,qtsvg)
+       ("qtwebchannel" ,qtwebchannel)
+       ("qtx11extras" ,qtx11extras)
+       ("qtxmlpatterns" ,qtxmlpatterns)
        ("unbound" ,unbound)))
     (propagated-inputs
      `(("monero" ,monero)))
     (arguments
-     `(#:phases
+     `(#:modules ((guix build gnu-build-system)
+                  (guix build qt-utils)
+                  (guix build utils))
+       #:imported-modules (,@%gnu-build-system-modules
+                           (guix build qt-utils))
+       #:phases
        (modify-phases %standard-phases
          (delete 'configure)
          (delete 'check)
@@ -569,32 +587,45 @@ Monero command line client and daemon.")
          (add-after 'fix-makefile-vars 'fix-library-paths
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "monero-wallet-gui.pro"
-               (("-L/usr/local/lib") "")
+               (("-L/usr/local/lib")
+                "")
                (("-L/usr/local/opt/openssl/lib")
-                (string-append "-L"
-                               (assoc-ref inputs "openssl")
-                               "/lib"))
+                (string-append "-L" (assoc-ref inputs "openssl") "/lib"))
                (("-L/usr/local/opt/boost/lib")
-                (string-append "-L"
-                               (assoc-ref inputs "boost")
-                               "/lib")))
+                (string-append "-L" (assoc-ref inputs "boost") "/lib")))
              #t))
          (add-after 'fix-library-paths 'fix-monerod-path
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "src/daemon/DaemonManager.cpp"
                (("QApplication::applicationDirPath\\(\\) \\+ \"/monerod")
-                (string-append "\""(assoc-ref inputs "monero")
+                (string-append "\"" (assoc-ref inputs "monero")
                                "/bin/monerod")))
              #t))
          (add-after 'fix-monerod-path 'fix-qt-paths
            (lambda* (#:key inputs #:allow-other-keys)
-             (let* ((qttools  (assoc-ref inputs "qttools"))
-                    (lrelease (string-append qttools "/bin/lrelease"))
-                    (lupdate (string-append qttools "/bin/lupdate")))
-               (substitute* "monero-wallet-gui.pro"
-                 (("\\$\\$\\[QT_INSTALL_BINS\\]/lrelease") lrelease)
-                 (("\\$\\$\\[QT_INSTALL_BINS\\]/lupdate") lupdate))
-               #t)))
+             (substitute* "monero-wallet-gui.pro"
+               (("\\$\\$\\[QT_INSTALL_BINS\\]/lrelease")
+                (string-append (assoc-ref inputs "qttools") "/bin/lrelease"))
+               (("\\$\\$\\[QT_INSTALL_BINS\\]/lupdate")
+                (string-append (assoc-ref inputs "qttools") "/bin/lupdate")))
+             #t))
+         (add-after 'fix-qt-paths 'make-qt-deterministic
+           (lambda _
+             (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
+             #t))
+         (add-after 'make-qt-deterministic 'fix-version
+           (lambda _
+             (substitute* "build.sh"
+               (("echo .*> version.js")
+                ""))
+             (with-output-to-file "version.js"
+               (lambda _
+                 (format #t
+                         "var GUI_VERSION = \"~a\"~@
+                          var GUI_MONERO_VERSION = \"~a\"~%"
+                         ,version
+                         ,(package-version monero))))
+             #t))
          (replace 'build
            (lambda _
              (invoke "./build.sh")))
@@ -606,28 +637,18 @@ Monero command line client and daemon.")
              #t))
          (add-before 'install 'change-dir
            (lambda _
-             (chdir "build")))
-         (add-after 'install 'wrap-executable
-           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (chdir "build")
+             #t))
+         (add-after 'install 'wrap-program
+           (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
-               (wrap-program (string-append out "/bin/monero-wallet-gui")
-                 `("QT_PLUGIN_PATH" ":" prefix
-                   ,(map (lambda (label)
-                           (string-append (assoc-ref inputs label)
-                                          "/lib/qt5/plugins"))
-                         '("qtbase" "qtdeclarative")))
-                 `("QML2_IMPORT_PATH" ":" prefix
-                   ,(map (lambda (label)
-                           (string-append (assoc-ref inputs label)
-                                          "/lib/qt5/qml"))
-                         '("qtdeclarative" "qtgraphicaleffects"
-                           "qtquickcontrols"))))
-               #t))))))
+               (wrap-qt-program out "monero-wallet-gui"))
+             #t)))))
     (home-page "https://getmonero.org/")
     (synopsis "Graphical user interface for the Monero currency")
     (description
-     "Monero is a secure, private, untraceable currency.  This package provides the
-Monero GUI client.")
+     "Monero is a secure, private, untraceable currency.  This package provides
+the Monero GUI client.")
     (license license:bsd-3)))
 
 (define-public monero-core
diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm
index 7d2ff9a677..6db52e0be0 100644
--- a/gnu/packages/image-viewers.scm
+++ b/gnu/packages/image-viewers.scm
@@ -110,59 +110,73 @@ actions.")
               "See 'COPYING' in the distribution."))))
 
 (define-public geeqie
-  (package
-    (name "geeqie")
-    (version "1.4")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "https://github.com/BestImageViewer/geeqie/"
-                                 "releases/download/v" version "/geeqie-"
-                                 version ".tar.xz"))
-             (sha256
-              (base32
-               "0ciygvcxb78pqg59r6p061mkbpvkgv2rv3r79j3kgv3kalb3ln2w"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(;; Enable support for a "map" pane using GPS data.
-       #:configure-flags '("--enable-map")
+  ;; The latest release, 1.4, fails to build with Exiv2 0.27.1.  The upstream
+  ;; repo has several fixes for that, so take a snapshot.
+  (let ((commit "c220ddefb1b6b11b54f7598f0d44dd0723325ed4")
+        (revision "1"))
+    (package
+      (name "geeqie")
+      (version (git-version "1.4" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/BestImageViewer/geeqie")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "07424nzrnwbksgalgg1a6ig2snd986w79kca1cfnv1q9kc7x2h3x"))
+                (file-name (git-file-name name version))))
+      (build-system gnu-build-system)
+      (arguments
+       `( ;; Enable support for a "map" pane using GPS data.
+         #:configure-flags '("--enable-map")
 
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'bootstrap 'pre-bootstrap
-           (lambda _
-             (define (write-dummy-changelog port)
-               (display "See Git history for a change log.\n" port))
-             ;; Create ChangeLog{,.html} to placate the makefile, which would
-             ;; otherwise require access to the Git repo.
-             (call-with-output-file "ChangeLog"
-               write-dummy-changelog)
-             (call-with-output-file "ChangeLog.html"
-               write-dummy-changelog)
-             (setenv "NOCONFIGURE" "true")
-             #t)))))
-    (inputs
-     `(("clutter" ,clutter)
-       ("libchamplain" ,libchamplain)
-       ("lcms" ,lcms)
-       ("exiv2" ,exiv2)
-       ("libpng" ,libpng)
-       ("gtk+" ,gtk+)))
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("glib" ,glib "bin") ; glib-gettextize
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
-    (home-page "http://www.geeqie.org/")
-    (synopsis "Lightweight GTK+ based image viewer")
-    (description
-     "Geeqie is a lightweight GTK+ based image viewer for Unix like operating
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'bootstrap 'pre-bootstrap
+             (lambda _
+               (define (write-dummy-changelog port)
+                 (display "See Git history for a change log.\n" port))
+               ;; Create ChangeLog{,.html} to placate the makefile, which would
+               ;; otherwise require access to the Git repo.
+               (call-with-output-file "ChangeLog"
+                 write-dummy-changelog)
+               (call-with-output-file "ChangeLog.html"
+                 write-dummy-changelog)
+               (setenv "NOCONFIGURE" "true")
+
+               ;; Don't try to run 'git' for the version number.
+               (substitute* "configure.ac"
+                 (("m4_esyscmd_s\\([^)]+\\)")
+                  (string-append "[" ,version "]")))
+
+               ;; Remove references to non-existent files.
+               (substitute* "po/POTFILES.in"
+                 (("^plugins/import/.*") ""))
+               #t)))))
+      (inputs
+       `(("clutter" ,clutter)
+         ("libchamplain" ,libchamplain)
+         ("lcms" ,lcms)
+         ("exiv2" ,exiv2)
+         ("libpng" ,libpng)
+         ("gtk+" ,gtk+)))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("glib" ,glib "bin")                     ; glib-gettextize
+         ("intltool" ,intltool)
+         ("pkg-config" ,pkg-config)))
+      (home-page "http://www.geeqie.org/")
+      (synopsis "Lightweight GTK+ based image viewer")
+      (description
+       "Geeqie is a lightweight GTK+ based image viewer for Unix like operating
 systems.  It features: EXIF, IPTC and XMP metadata browsing and editing
 interoperability; easy integration with other software; geeqie works on files
 and directories, there is no need to import images; fast preview for many raw
 image formats; tools for image comparison, sorting and managing photo
 collection.  Geeqie was initially based on GQview.")
-    (license license:gpl2+)))
+      (license license:gpl2+))))
 
 (define-public gpicview
   (package
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index 3cc9396d57..39fcf61a12 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -170,7 +170,7 @@ script.")
 (define-public graphicsmagick
   (package
     (name "graphicsmagick")
-    (version "1.3.31")
+    (version "1.3.32")
     (source
      (origin
        (method url-fetch)
@@ -182,7 +182,8 @@ script.")
                         "GraphicsMagick/" (version-major+minor version)
                         "/GraphicsMagick-" version ".tar.xz")))
        (sha256
-        (base32 "0y22740f25qxsqqqg26xqlfp920dm57b7hrgaqmx7azksrcvnsq9"))))
+        (base32
+         "1qclp9i31idpcbbqswmnq2q11lmv0a7cvdb1y72xcky8sshaahmq"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index 851bea05bf..622f1253d8 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -127,7 +127,7 @@ irssi, but graphical.")
 (define-public irssi
   (package
     (name "irssi")
-    (version "1.1.2")
+    (version "1.1.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/irssi/irssi/"
@@ -135,7 +135,7 @@ irssi, but graphical.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0clppwqhllrmqjg1dd47v9v1qiqx7cf9afm81bm1pscllf4jpk2w"))))
+                "0jq8zjdhdjxkjbfl4g4nfr1ninyfxffa27lm8vcyrihhhkrn65yf"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 9696364d83..3da3fd9910 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -421,8 +421,8 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
 It has been modified to remove all non-free binary blobs.")
     (license license:gpl2)))
 
-(define %linux-libre-version "5.1.15")
-(define %linux-libre-hash "1f0hhyjsm4bl7k7w88aifvhmqmjkvkvlpd2b69y7s6csr22fk6v4")
+(define %linux-libre-version "5.1.16")
+(define %linux-libre-hash "055vs2g6z6wx34qvi0aw952x9q3drbj7z27s7g7pks6w730xkga8")
 
 (define %linux-libre-5.1-patches
   (list %boot-logo-patch
@@ -439,8 +439,8 @@ It has been modified to remove all non-free binary blobs.")
   (make-linux-libre-headers %linux-libre-version
                             %linux-libre-hash))
 
-(define %linux-libre-4.19-version "4.19.56")
-(define %linux-libre-4.19-hash "1zqiic55viy065lhnkmhn33sz3bbbr2ykbm5f92yzd8lpc9zl7yx")
+(define %linux-libre-4.19-version "4.19.57")
+(define %linux-libre-4.19-hash "0p9b27hfbzppxgad9q2g7nvfzv0phzdsk16sqy87q3dglc8wqrqq")
 
 (define %linux-libre-4.19-patches
   (list %boot-logo-patch
@@ -457,8 +457,8 @@ It has been modified to remove all non-free binary blobs.")
   (make-linux-libre-headers %linux-libre-4.19-version
                             %linux-libre-4.19-hash))
 
-(define %linux-libre-4.14-version "4.14.131")
-(define %linux-libre-4.14-hash "1qcf4cg83zpjirkj8l09y07x4zzskypngampvfw7zyazynwwgs1i")
+(define %linux-libre-4.14-version "4.14.132")
+(define %linux-libre-4.14-hash "0mvp4izw21f8w5kkk8qm8m8b7qjxbp8hshgffdlh1aik41zvcnyq")
 
 (define-public linux-libre-4.14
   (make-linux-libre %linux-libre-4.14-version
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 37e375d356..8250340467 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6035,3 +6035,60 @@ cookie headers, cookie creation, cookie jar creation and more.")
       (description "cl-cookie is a Common Lisp library featuring parsing of
 cookie headers, cookie creation, cookie jar creation and more.")
       (license license:bsd-2))))
+
+(define-public sbcl-dexador
+  (let ((commit "a2714d126cc94bc7a9a6e1e3c08de455b3a66378")
+        (revision "1"))
+    (package
+      (name "sbcl-dexador")
+      (build-system asdf-build-system/sbcl)
+      (version (git-version "0.9.10" revision commit))
+      (home-page "https://github.com/fukamachi/dexador")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url home-page)
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0nbqgn4v3l2z6m1k1bdxfnqpfrk84nxdmz7csz11zzcfs4flkv79"))))
+      (inputs
+       `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
+         ("babel" ,sbcl-babel)
+         ("usocket" ,sbcl-usocket)
+         ("fast-http" ,sbcl-fast-http)
+         ("quri" ,sbcl-quri)
+         ("fast-io" ,sbcl-fast-io)
+         ("chunga" ,sbcl-chunga)
+         ("cl-ppcre" ,sbcl-cl-ppcre)
+         ("cl-cookie" ,sbcl-cl-cookie)
+         ("trivial-mimes" ,sbcl-trivial-mimes)
+         ("chipz" ,sbcl-chipz)
+         ("cl-base64" ,sbcl-cl-base64)
+         ("cl-reexport" ,sbcl-cl-reexport)
+         ("cl+ssl" ,sbcl-cl+ssl)
+         ("bordeaux-threads" ,sbcl-bordeaux-threads)
+         ("alexandria" ,sbcl-alexandria)))
+      (native-inputs
+       `(("prove" ,sbcl-prove)
+         ("prove-asdf" ,sbcl-prove-asdf)
+         ("lack-request" ,sbcl-lack-request)
+         ("clack" ,sbcl-clack)
+         ("babel" ,sbcl-babel)
+         ("alexandria" ,sbcl-alexandria)
+         ("quri" ,sbcl-quri)
+         ("cl-ppcre" ,sbcl-cl-ppcre)
+         ("local-time" ,sbcl-local-time)))
+      (arguments
+       ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
+       `(#:tests? #f
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-permissions
+             (lambda _ (make-file-writable "t/data/test.gz") #t)))))
+      (synopsis "Yet another HTTP client for Common Lisp")
+      (description "Dexador is yet another HTTP client for Common Lisp with
+neat APIs and connection-pooling.  It is meant to supersede Drakma.")
+      (license license:expat))))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 1694b7c6b1..6ab0f9358e 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -2526,20 +2526,23 @@ operators and scripters.")
 (define-public alpine
   (package
     (name "alpine")
-    (version "2.21.9999")
+    ;; Upstream doesn't use git tags, but does ‘tag’ their releases in the
+    ;; commit message.  Hence the lack of GIT-VERSIONing despite using a commit
+    ;; ID below.  Don't forget to update it…
+    (version "2.21.99999")
     (source
      (origin
-       (method url-fetch)
+       (method git-fetch)
        ;; There are two versions: the plain continuation of Alpine without extra
        ;; patches and the version which adds extra fixes. Every distro uses
        ;; the patched version, and so do we to not break expectations.
        ;; http://alpine.freeiz.com/alpine/readme/README.patches
-       (uri (string-append "http://repo.or.cz/alpine.git/snapshot/"
-                           "d3e6f3932f2af9deca8eed09e30a55e9bd524362.tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (uri (git-reference
+             (url "http://repo.or.cz/alpine.git")
+             (commit "abeb2c25935ef8c75f1e5deef0f81276754dc975")))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0w4qyybfdxi29r2z3giq0by6aa6v6nrgibh1xgv4d1vwwq4hw35w"))))
+        (base32 "0rqgbw08a5lj41dkp82aq480lqkc4bnxagna7wpqffi821n8gkwz"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags (list "CC=gcc")
@@ -2555,7 +2558,8 @@ operators and scripters.")
                                               "/lib")
                                (string-append "--with-interactive-spellcheck="
                                               (assoc-ref %build-inputs "aspell")
-                                              "/bin/aspell"))
+                                              "/bin/aspell")
+                               "--with-date-stamp=Thu  1 Jan 01:00:01 CET 1970")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'make-reproducible
@@ -2563,9 +2567,6 @@ operators and scripters.")
              ;; This removes time-dependent code to make alpine reproducible.
              (substitute* "pico/blddate.c"
                (("%02d-%s-%d") "1970-01-01"))
-             (substitute* (list "alpine/Makefile.in"
-                                "web/src/alpined.d/Makefile.in")
-               (("`date`") "1970-01-01"))
              #t)))))
     (inputs
      `(("ncurses" ,ncurses)
@@ -2577,7 +2578,7 @@ operators and scripters.")
        ("aspell" ,aspell)
        ("tcl" ,tcl)
        ("linux-pam" ,linux-pam)))
-    (home-page "http://repo.or.cz/alpine.git")
+    (home-page "https://repo.or.cz/alpine.git")
     (synopsis "Alternatively Licensed Program for Internet News and Email")
     (description
      "Alpine is a text-based mail and news client.  Alpine includes several
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index f72256fe50..d65ac33416 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -90,7 +90,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
 (define-public mpd
   (package
     (name "mpd")
-    (version "0.21.10")
+    (version "0.21.11")
     (source (origin
               (method url-fetch)
               (uri
@@ -99,7 +99,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
                               "/mpd-" version ".tar.xz"))
               (sha256
                (base32
-                "0fx9n6qmyb4ls17j7kl58i1ivg9wfx9zm9wyfnwzw7lcwdl56sqk"))))
+                "1gbcg8icm0pp918jw1lx1j066m39zg9wyqjla328ic848j5zhbnk"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags '("-Ddocumentation=true"))) ;the default is 'false'...
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 08130d3c8e..66ef122354 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -4442,7 +4442,7 @@ discard bad quality ones.
 (define-public lpd8editor
   (package
     (name "lpd8editor")
-    (version "0.0.12")
+    (version "0.0.13")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4451,7 +4451,7 @@ discard bad quality ones.
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1v3fz8h1zs7kkl80faah79pp6yqwz0j7bkv3dbmh2hp42zbfiz1q"))))
+                "0lsz3v493ilq2zr016m7kvymrplxd0n3pqv1pjglpq1h7sjw9764"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 10d04b1dbc..49024b26c4 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
 ;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
+;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -562,6 +563,78 @@ one-time-password (OTP) secrets, generating OTP codes, and displaying secret
 key URIs using the standard otpauth:// scheme.")
     (license license:gpl3+)))
 
+(define-public qtpass
+  (package
+    (name "qtpass")
+    (version "1.2.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/IJHack/QtPass.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1vfhfyccrxq9snyvayqfzm5rqik8ny2gysyv7nipc91kvhq3bhky"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               ;; lupdate/lrelease need to find qmake.
+               (setenv "QMAKE" "qmake")
+               ;; qmake needs to find lrelease/lupdate.
+               (invoke "qmake"
+                       "QMAKE_LRELEASE=lrelease"
+                       "QMAKE_LUPDATE=lupdate"
+                       (string-append "PREFIX=" out)))))
+         (add-after 'configure 'reset-resource-timestamps
+           ;; Reset timestamps on localization files for a reproducible build.
+           (lambda _
+             (with-directory-excursion "localization"
+               (for-each (lambda (file)
+                           (let* ((base (basename file ".qm"))
+                                  (src (string-append base ".ts"))
+                                  (st (stat src)))
+                             (set-file-time file st)))
+                         (find-files "." ".*\\.qm")))
+             #t))
+         (add-after 'install 'install-auxilliary
+           ;; Install man-page, icon and .desktop file.
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (applications (string-append out "/share/applications"))
+                    (icons (string-append out "/share/icons/hicolor/scalable/apps"))
+                    (man (string-append out "/share/man/man1")))
+               (install-file "qtpass.desktop" applications)
+               (install-file "artwork/icon.svg" icons)
+               (rename-file (string-append icons "/icon.svg")
+                            (string-append icons "/qtpass-icon.svg"))
+               (install-file "qtpass.1" man)
+               #t)))
+         (add-before 'check 'check-setup
+           ;; Make Qt render "offscreen", required for tests.
+           (lambda _
+             (setenv "QT_QPA_PLATFORM" "offscreen")
+             #t)))))
+    (native-inputs
+     `(("qttools" ,qttools)))
+    (inputs
+     `(("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)))
+    (home-page "https://qtpass.org")
+    (synopsis "GUI for password manager password-store")
+    (description
+     "Qt-based graphical user interface for the password manager
+password-store also known as pass.  Can use either pass or gpg to interact
+with password-store files.  Features configurable password generation,
+templates, clipboard handling, and per folder settings for multi-recipient
+encryption.")
+    (license license:gpl3+)))
+
 (define-public argon2
   (package
     (name "argon2")
diff --git a/gnu/packages/patches/monero-use-system-miniupnpc.patch b/gnu/packages/patches/monero-use-system-miniupnpc.patch
index 6bc825d121..c5d376d793 100644
--- a/gnu/packages/patches/monero-use-system-miniupnpc.patch
+++ b/gnu/packages/patches/monero-use-system-miniupnpc.patch
@@ -1,111 +1,42 @@
-This reverts commit 1e20d705e7c64d2b17c031f345057d1e8850fafa, so that it's possible to use our own
-miniupnpc, instead of a git submodule.
----
- CMakeLists.txt          |  8 ++++++++
- external/CMakeLists.txt | 41 +++++++++++++++++++++++++++++++----------
- src/p2p/net_node.inl    | 13 ++++++++++---
- 3 files changed, 49 insertions(+), 13 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3b93988e..ef948885 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -430,6 +430,14 @@ include_directories("${CMAKE_CURRENT_BINARY_DIR}/translations")
- 
- add_subdirectory(external)
- 
-+# Final setup for miniupnpc
-+if(UPNP_STATIC OR IOS)
-+  add_definitions("-DUPNP_STATIC")
-+else()
-+  add_definitions("-DUPNP_DYNAMIC")
-+  include_directories(${UPNP_INCLUDE})
-+endif()
-+
- # Final setup for libunbound
- include_directories(${UNBOUND_INCLUDE})
- link_directories(${UNBOUND_LIBRARY_DIRS})
 diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
-index 1fc4d64c..b4f712ee 100644
+index 7553f87e..8e865c6c 100644
 --- a/external/CMakeLists.txt
 +++ b/external/CMakeLists.txt
-@@ -34,21 +34,42 @@
- # We always compile if we are building statically to reduce static dependency issues...
- # ...except for FreeBSD, because FreeBSD is a special case that doesn't play well with
- # others.
-+if(NOT IOS)
-+    find_package(Miniupnpc QUIET)
-+endif()
+@@ -37,19 +37,7 @@
  
--find_package(Miniupnpc REQUIRED)
-+# If we have the correct shared version and we're not building static, use it
-+if(STATIC OR IOS)
-+ set(USE_SHARED_MINIUPNPC false)
-+elseif(MINIUPNP_FOUND AND MINIUPNPC_VERSION_1_7_OR_HIGHER)
-+ set(USE_SHARED_MINIUPNPC true)
-+endif()
+ find_package(Miniupnpc REQUIRED)
  
 -message(STATUS "Using in-tree miniupnpc")
-+if(USE_SHARED_MINIUPNPC)
-+  message(STATUS "Using shared miniupnpc found at ${MINIUPNP_INCLUDE_DIR}")
- 
 -add_subdirectory(miniupnp/miniupnpc)
-+  set(UPNP_STATIC false PARENT_SCOPE)
-+  set(UPNP_INCLUDE ${MINIUPNP_INCLUDE_DIR} PARENT_SCOPE)
-+  set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE)
-+else()
-+  if(STATIC)
-+    message(STATUS "Using miniupnpc from local source tree for static build")
-+  else()
-+    message(STATUS "Using miniupnpc from local source tree (/external/miniupnp/miniupnpc)")
-+  endif()
- 
 -set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
 -if(MSVC)
 -  set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267")
 -elseif(NOT MSVC)
 -  set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value")
 -endif()
-+  add_subdirectory(miniupnp/miniupnpc)
-+
-+  set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
-+  if(MSVC)
-+    set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267")
-+  elseif(NOT MSVC)
-+    set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value")
-+  endif()
- 
+-if(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
+-	set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -D_NETBSD_SOURCE")
+-endif()
+-
 -set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
-+  set(UPNP_STATIC true PARENT_SCOPE)
-+  set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
-+endif()
++set(UPNP_LIBRARIES "miniupnpc" PARENT_SCOPE)
  
  find_package(Unbound)
  
 diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl
-index 9b21705e..76340a22 100644
+index 74924e4f..3554dd0d 100644
 --- a/src/p2p/net_node.inl
 +++ b/src/p2p/net_node.inl
-@@ -49,9 +49,16 @@
+@@ -49,9 +49,9 @@
  #include "storages/levin_abstract_invoke2.h"
  #include "cryptonote_core/cryptonote_core.h"
  
 -#include <miniupnp/miniupnpc/miniupnpc.h>
 -#include <miniupnp/miniupnpc/upnpcommands.h>
 -#include <miniupnp/miniupnpc/upnperrors.h>
-+// We have to look for miniupnpc headers in different places, dependent on if its compiled or external
-+#ifdef UPNP_STATIC
-+  #include <miniupnp/miniupnpc/miniupnpc.h>
-+  #include <miniupnp/miniupnpc/upnpcommands.h>
-+  #include <miniupnp/miniupnpc/upnperrors.h>
-+#else
-+  #include "miniupnpc.h"
-+  #include "upnpcommands.h"
-+  #include "upnperrors.h"
-+#endif
++#include <miniupnpc/miniupnpc.h>
++#include <miniupnpc/upnpcommands.h>
++#include <miniupnpc/upnperrors.h>
  
  #undef MONERO_DEFAULT_LOG_CATEGORY
  #define MONERO_DEFAULT_LOG_CATEGORY "net.p2p"
--- 
-2.16.2
-
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 67e104d503..7e8de98814 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -3600,13 +3600,13 @@ color scales, and color space conversion easy.  It has support for:
 (define-public python-pygit2
   (package
     (name "python-pygit2")
-    (version "0.28.0")
+    (version "0.28.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pygit2" version))
        (sha256
-        (base32 "0lngsaz029d4fjcwhl17pr59nh9gwl6hwfin36nph60fgsmfdg3d"))))
+        (base32 "11kzj5mjkspvplnpdb6bj8dcj6rgmkk986k8hjcklyg5yaxkz32d"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f))            ; tests don't run correctly in our environment
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 49e0b9fe73..481495bba0 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2019 Mikhail Kirillov <w96k.ru@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1081,24 +1082,6 @@ code in Merb and Rails.")
     (home-page "https://github.com/jnunemaker/crack")
     (license license:expat)))
 
-(define-public ruby-crass
-  (package
-    (name "ruby-crass")
-    (version "1.0.4")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (rubygems-uri "crass" version))
-       (sha256
-        (base32
-         "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi"))))
-    (build-system ruby-build-system)
-    (synopsis "Pure Ruby CSS parser based on CSS Syntax Level 3")
-    (description
-     "Crass is a pure Ruby CSS parser based on the CSS Syntax Level 3 spec.")
-    (home-page "https://github.com/rgrove/crass/")
-    (license license:expat)))
-
 (define-public ruby-cliver
   (package
     (name "ruby-cliver")
@@ -8725,3 +8708,32 @@ app to deliver to smtp://127.0.0.1:1025 instead of your default SMTP server,
 then check out http://127.0.0.1:1080 to see the mail.")
     (home-page "https://mailcatcher.me")
     (license license:expat)))
+
+(define-public ruby-backport
+  (package
+    (name "ruby-backport")
+    (version "1.1.1")
+    (source
+     (origin
+       ;; The gem does not include test code, so fetch from the Git repository
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/castwide/backport.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0ii3y1wx1n48nd2mhlv0v61b2m21h7dg30if9vc2idza7k4afyw8"))))
+    (build-system ruby-build-system)
+    (arguments
+     `(#:test-target "spec"))
+    (native-inputs
+     `(("bundler" ,bundler)
+       ("ruby-rspec" ,ruby-rspec)))
+    (inputs
+     `(("ruby-simplecov" ,ruby-simplecov)))
+    (synopsis "Pure Ruby library for event-driven IO")
+    (description
+     "This package provides a pure Ruby library for event-driven IO.")
+    (home-page "https://github.com/castwide/backport")
+    (license license:expat)))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 2b6d9f5b7e..995f7fab15 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1549,7 +1549,27 @@ YouTube.com and many more sites.")
                 (string-append "os.path.join('"
                                (assoc-ref %outputs "out")
                                "', 'share'")))
-             #t)))))
+             #t))
+         (add-after 'install 'create-desktop-file
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (applications (string-append out "/share/applications")))
+               (mkdir-p applications)
+               (call-with-output-file
+                   (string-append applications "/youtube-dl-gui.desktop")
+                 (lambda (file)
+                   (format
+                    file
+                    "[Desktop Entry]~@
+                     Name=Youtube-dl GUI~@
+                     Comment=Graphical interface to download video with youtube-dl~@
+                     Exec=youtube-dl-gui~@
+                     TryExec=youtube-dl-gui~@
+                     Terminal=false~@
+                     Icon=youtube-dl-gui~@
+                     Type=Application~@
+                     Categories=AudioVideo;Audio;Video;Network~%")))
+               #t))))))
     (inputs
      `(("python2-wxpython" ,python2-wxpython)
        ("youtube-dl" ,youtube-dl)))
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index a35f124f46..a640a64d40 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -399,14 +399,14 @@ manage system or application containers.")
 (define-public libvirt
   (package
     (name "libvirt")
-    (version "5.4.0")
+    (version "5.5.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://libvirt.org/sources/libvirt-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0ywf8m9yz2hxnic7fylzlmgy4m353r4vv5zsvp89zq5yh4h81yhw"))))
+                "1s1mzw4cmkcfivs1kphpgy4lpddx0w1qnjysr4ggk5558w4yy1i3"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -536,13 +536,15 @@ three libraries:
 (define-public python-libvirt
   (package
     (name "python-libvirt")
-    (version "5.3.0")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "libvirt-python" version))
-              (sha256
-               (base32
-                "1zrhkz68ka4f08wwm36y3zzwfn1r65h4nw1nm9qgg8jmrfazj4sj"))))
+    (version "5.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       ;; The latest version hosted on PyPI at 5.5.0 release time was 5.3.0.
+       (uri (string-append "https://libvirt.org/sources/python/libvirt-python-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "00x6idyw9xrrr21vrnsyw37q2sd8yh4n6pwh0l28hh9yp3nsy72n"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index fdcd4521e8..c7046b7f50 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -456,14 +456,14 @@ The peer-to-peer VPN implements a Layer 2 (Ethernet) network between the peers
 (define-public wireguard
   (package
     (name "wireguard")
-    (version "0.0.20190601")
+    (version "0.0.20190702")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://git.zx2c4.com/WireGuard/snapshot/"
                                   "WireGuard-" version ".tar.xz"))
               (sha256
                (base32
-                "0s2mys78whsr0yw045a132iqx6nfy3c6hppiskbln5x04hc4ca3m"))))
+                "1b5s1ncwqxdgb0c6cd07x4ynnj6cpbiqp4bxqir7mm5bf6y124qs"))))
     (build-system gnu-build-system)
     (outputs '("out" ; The WireGuard userspace tools
                "kernel-patch")) ; A patch to build Linux with WireGuard support
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index a9b96529cf..35fa478c2d 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -379,7 +379,7 @@ rasterisation.")
 (define-public libdrm
   (package
     (name "libdrm")
-    (version "2.4.98")
+    (version "2.4.99")
     (source
       (origin
         (method url-fetch)
@@ -389,7 +389,7 @@ rasterisation.")
                ".tar.bz2"))
         (sha256
          (base32
-          "150qdzsm2nx6dfacc75rx53anzsc6m31nhxidf5xxax3mk6fvq4b"))
+          "0pnsw4bmajzdbz8pk4wswdmw93shhympf2q9alhbnpfjgsf57gsd"))
         (patches (search-patches "libdrm-symbol-check.patch"))))
     (build-system meson-build-system)
     (arguments
@@ -716,7 +716,7 @@ shows it again when the mouse cursor moves or a mouse button is pressed.")
 (define-public xlockmore
   (package
     (name "xlockmore")
-    (version "5.56")
+    (version "5.57")
     (source (origin
              (method url-fetch)
              (uri (list (string-append "http://sillycycle.com/xlock/"
@@ -727,7 +727,7 @@ shows it again when the mouse cursor moves or a mouse button is pressed.")
                                        name "-" version ".tar.xz")))
              (sha256
               (base32
-               "1dg1n79rnswhxqz36mxnl5lp8p37i9fbibnzzyrqknmvf2s8xpd0"))))
+               "18r8rh8fzdn9miicbpc3qbdd4mm2g1jpsbcvj29sr66pxydzkb7r"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags (list (string-append "--enable-appdefaultdir="
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index 2b4feb1c2d..93c36dac1e 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -220,7 +220,7 @@ development.")
 (define-public garcon
   (package
     (name "garcon")
-    (version "0.6.2")
+    (version "0.6.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -228,7 +228,7 @@ development.")
                                   "garcon-" version ".tar.bz2"))
               (sha256
                (base32
-                "0z64g6f2vwfjzqsrsn05nbcbs8l6y4cfdgxk4k2la3giixj0jzx8"))))
+                "00c4g4gmbr8710k0yv1zybnm9s2gkc1rj63zfrg9qgin66jzxcbn"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -250,7 +250,7 @@ merging features essential for loading menus modified with menu editors.")
 (define-public tumbler
   (package
     (name "tumbler")
-    (version "0.2.4")
+    (version "0.2.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -258,15 +258,15 @@ merging features essential for loading menus modified with menu editors.")
                                   "tumbler-" version ".tar.bz2"))
               (sha256
                (base32
-                "19mnwmcxdhqfqkd9433z8h2y8w49vlc7jw5p5h8j54wz7zhrgx0g"))))
+                "0nfld1lvrdpsjfvm08y5487km45pm1mdr928hgqm8j0shrx6jiv4"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("intltool" ,intltool)
-       ("glib:bin" ,glib "bin") ; need glib-genmarshal
-       ("dbus-glib" ,dbus-glib))) ; need dbus-binding-tool
+       ("glib:bin" ,glib "bin")         ; need glib-genmarshal
+       ("dbus-glib" ,dbus-glib)))       ; need dbus-binding-tool
     (propagated-inputs
-     `(("glib" ,glib))) ; required by tumbler-1.pc
+     `(("glib" ,glib)))                 ; required by tumbler-1.pc
     (inputs
      `(("dbus" ,dbus)
        ("gdk-pixbuf" ,gdk-pixbuf)
@@ -596,7 +596,7 @@ like appearance, display, keyboard and mouse settings.")
 (define-public thunar
   (package
     (name "thunar")
-    (version "1.8.6")
+    (version "1.8.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://archive.xfce.org/src/xfce/"
@@ -604,7 +604,7 @@ like appearance, display, keyboard and mouse settings.")
                                   "Thunar-" version ".tar.bz2"))
               (sha256
                (base32
-                "0apg70dwkh8q89ybzhj4q2gp4yxiybwxfzpbvx0nj0rxis1gprf0"))))
+                "0afkp528mwwa2m18m39mvw53qgaijyynrw9wwwiyxgjiczq3l0ry"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -628,14 +628,15 @@ fast.")
 (define-public thunar-volman
   (package
     (name "thunar-volman")
-    (version "0.8.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "http://archive.xfce.org/xfce/4.12/src/"
-                                  name "-" version ".tar.bz2"))
-              (sha256
-               (base32
-                "1gf259n1v3y23n1zlkhyr6r0i8j59rnl1cmxvxj6la9cwdfbn22s"))))
+    (version "0.9.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://archive.xfce.org/src/xfce/thunar-volman/"
+                           (version-major+minor version) "/"
+                           "thunar-volman-" version ".tar.bz2"))
+       (sha256
+        (base32 "1sfmz40164rg77hclrkrgnbk8cb7f325qqi7lz2hh3wbvf8r0c19"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 1653810c0d..cb5fb79f4d 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -3841,7 +3841,7 @@ extension to the X11 protocol.  It includes:
 (define-public xkeyboard-config
   (package
     (name "xkeyboard-config")
-    (version "2.26")
+    (version "2.27")
     (source
       (origin
         (method url-fetch)
@@ -3851,7 +3851,7 @@ extension to the X11 protocol.  It includes:
               ".tar.bz2"))
         (sha256
           (base32
-            "13h3381pfp4pv32189zkfsj2x0alr91xj6dqii76rl0c8v3ihdrr"))))
+            "07wh443lhwv1j0q6xnxnji7f7ahh7xphxj90fv02cdd6zv4aw3b9"))))
     (build-system gnu-build-system)
     (inputs
       `(("gettext" ,gettext-minimal)
diff --git a/guix/derivations.scm b/guix/derivations.scm
index ebeac31877..186d7a3f8f 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -320,8 +320,7 @@ substituter many times."
     ;; info is not already in cache.
     ;; Also, skip derivations marked as non-substitutable.
     (append-map (lambda (input)
-                  (let ((drv (read-derivation-from-file
-                              (derivation-input-path input))))
+                  (let ((drv (derivation-input-derivation input)))
                     (if (substitutable-derivation? drv)
                         (derivation-input-output-paths input)
                         '())))
@@ -652,12 +651,10 @@ list of name/path pairs of its outputs."
 ;;; Derivation primitive.
 ;;;
 
-(define derivation-path->base16-hash
-  (mlambda (file)
-    "Return a string containing the base16 representation of the hash of the
-derivation at FILE."
-    (bytevector->base16-string
-     (derivation-hash (read-derivation-from-file file)))))
+(define derivation-base16-hash
+  (mlambdaq (drv)
+    "Return a string containing the base16 representation of the hash of DRV."
+    (bytevector->base16-string (derivation-hash drv))))
 
 (define (derivation/masked-inputs drv)
   "Assuming DRV is a regular derivation (not fixed-output), replace the file
@@ -666,9 +663,8 @@ name of each input with that input's hash."
     (($ <derivation> outputs inputs sources
                      system builder args env-vars)
      (let ((inputs (map (match-lambda
-                          (($ <derivation-input> (= derivation-file-name path)
-                                                 sub-drvs)
-                           (let ((hash (derivation-path->base16-hash path)))
+                          (($ <derivation-input> drv sub-drvs)
+                           (let ((hash (derivation-base16-hash drv)))
                              (make-derivation-input hash sub-drvs))))
                         inputs)))
        (make-derivation outputs
@@ -886,8 +882,11 @@ long-running processes that know what they're doing.  Use with care!"
   ;; Typically this is meant to be used by Cuirass and Hydra, which can clear
   ;; caches when they start evaluating packages for another architecture.
   (invalidate-memoization! derivation->bytevector)
-  (invalidate-memoization! derivation-path->base16-hash)
-  (hash-clear! %derivation-cache))
+  (invalidate-memoization! derivation-base16-hash)
+
+  ;; FIXME: Comment out to work around <https://bugs.gnu.org/36487>.
+  ;; (hash-clear! %derivation-cache)
+  )
 
 (define derivation-properties
   (mlambdaq (drv)
@@ -945,16 +944,14 @@ recursively."
       ;; in the format used in 'derivation' calls.
       (mlambda (input loop)
         (match input
-          (($ <derivation-input> (= derivation-file-name path)
-                                 (sub-drvs ...))
-           (match (vhash-assoc path mapping)
+          (($ <derivation-input> drv (sub-drvs ...))
+           (match (vhash-assoc (derivation-file-name drv) mapping)
              ((_ . (? derivation? replacement))
               (cons replacement sub-drvs))
              ((_ . replacement)
               (list replacement))
              (#f
-              (let* ((drv (loop (read-derivation-from-file path))))
-                (cons drv sub-drvs))))))))
+              (cons (loop drv) sub-drvs)))))))
 
     (let loop ((drv drv))
       (let* ((inputs       (map (cut rewritten-input <> loop)
diff --git a/guix/profiles.scm b/guix/profiles.scm
index dfc9ba1ca0..f5c863945c 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2017 Huang Ying <huang.ying.caritas@gmail.com>
 ;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -337,7 +338,7 @@ denoting a specific output of a package."
 
   (manifest
    (map (match-lambda
-          ((package output)
+          (((? package? package) output)
            (package->manifest-entry package output))
           ((? package? package)
            (package->manifest-entry package))
diff --git a/guix/store.scm b/guix/store.scm
index 8fa16499f8..52940ff751 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -1783,6 +1783,9 @@ the store."
   ;; when using 'gexp->derivation' and co.
   (make-parameter #f))
 
+(define set-store-connection-object-cache!
+  (record-modifier <store-connection> 'object-cache))
+
 (define* (run-with-store store mval
                          #:key
                          (guile-for-build (%guile-for-build))
@@ -1798,9 +1801,12 @@ connection, and return the result."
                  (%current-target-system target))
     (call-with-values (lambda ()
                         (run-with-state mval store))
-      (lambda (result store)
-        ;; Discard the state.
-        result))))
+      (lambda (result new-store)
+        ;; Copy the object cache from NEW-STORE so we don't fully discard the
+        ;; state.
+        (let ((cache (store-connection-object-cache new-store)))
+          (set-store-connection-object-cache! store cache)
+          result)))))
 
 
 ;;;