summary refs log tree commit diff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2020-05-29 23:36:38 +0200
committerMarius Bakke <marius@gnu.org>2020-05-29 23:36:38 +0200
commitfe6d003908fd8278de65761bc550240c520ef9f4 (patch)
treeabe88c7905a8907ddafc554fbeef5b0af08f835d /gnu/packages/patches
parent8a7a5dc7805f4628e60f90af6b2416f951d0c034 (diff)
parent031315e4f0fbc4e04ffc8adee04128c23173a1f7 (diff)
downloadguix-fe6d003908fd8278de65761bc550240c520ef9f4.tar.gz
Merge branch 'master' into staging
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/darkice-workaround-fpermissive-error.patch62
-rw-r--r--gnu/packages/patches/dhall-remove-network-tests.patch97
-rw-r--r--gnu/packages/patches/emacs-libgit-use-system-libgit2.patch88
-rw-r--r--gnu/packages/patches/emacs-magit-log-format-author-margin.patch72
-rw-r--r--gnu/packages/patches/enlightenment-fix-setuid-path.patch16
-rw-r--r--gnu/packages/patches/grub-setup-root.patch124
-rw-r--r--gnu/packages/patches/libnftnl-dont-check-NFTNL_FLOWTABLE_SIZE.patch47
-rw-r--r--gnu/packages/patches/lxsession-use-gapplication.patch152
-rw-r--r--gnu/packages/patches/netsurf-system-utf8proc.patch51
-rw-r--r--gnu/packages/patches/ruby-sanitize-system-libxml.patch38
-rw-r--r--gnu/packages/patches/transmission-CVE-2018-10756.patch71
11 files changed, 432 insertions, 386 deletions
diff --git a/gnu/packages/patches/darkice-workaround-fpermissive-error.patch b/gnu/packages/patches/darkice-workaround-fpermissive-error.patch
deleted file mode 100644
index 5ee29147c2..0000000000
--- a/gnu/packages/patches/darkice-workaround-fpermissive-error.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Copied from Debian:
-<https://sources.debian.org/data/main/d/darkice/1.3-0.2/debian/patches/0001-Cast-float-in-SRC-lib-calls-to-delete-fpermissive-co.patch>
-
-From 1e2eb18d349f205c70cb2836232825442359b6e3 Mon Sep 17 00:00:00 2001
-From: belette <ouack23@yahoo.fr>
-Date: Wed, 26 Oct 2016 02:43:43 +0200
-Subject: Cast float* in SRC lib calls to delete fpermissive compilation error
-
----
- darkice/trunk/src/FaacEncoder.cpp      | 2 +-
- darkice/trunk/src/OpusLibEncoder.cpp   | 2 +-
- darkice/trunk/src/VorbisLibEncoder.cpp | 2 +-
- darkice/trunk/src/aacPlusEncoder.cpp   | 2 +-
- 4 files changed, 4 insertions(+), 4 deletions(-)
-
---- a/src/FaacEncoder.cpp
-+++ b/src/FaacEncoder.cpp
-@@ -164,7 +164,7 @@ FaacEncoder :: write (  const void    * buf,
-     if ( converter ) {
-         unsigned int         converted;
- #ifdef HAVE_SRC_LIB
--        src_short_to_float_array ((short *) b, converterData.data_in, samples);
-+        src_short_to_float_array ((short *) b, (float *) converterData.data_in, samples);
-         converterData.input_frames   = nSamples;
-         converterData.data_out = resampledOffset + (resampledOffsetSize * channels);
-         int srcError = src_process (converter, &converterData);
---- a/src/OpusLibEncoder.cpp
-+++ b/src/OpusLibEncoder.cpp
-@@ -403,7 +403,7 @@ OpusLibEncoder :: write ( const void    * buf,
- #ifdef HAVE_SRC_LIB
-             (void)inCount;
-             converterData.input_frames   = processed;
--            src_short_to_float_array (shortBuffer, converterData.data_in, totalSamples);
-+            src_short_to_float_array (shortBuffer, (float *) converterData.data_in, totalSamples);
-             int srcError = src_process (converter, &converterData);
-             if (srcError)
-                  throw Exception (__FILE__, __LINE__, "libsamplerate error: ", src_strerror (srcError));
---- a/src/VorbisLibEncoder.cpp
-+++ b/src/VorbisLibEncoder.cpp
-@@ -337,7 +337,7 @@ VorbisLibEncoder :: write ( const void    * buf,
-         int         converted;
- #ifdef HAVE_SRC_LIB
-         converterData.input_frames   = nSamples;
--        src_short_to_float_array (shortBuffer, converterData.data_in, totalSamples);
-+        src_short_to_float_array (shortBuffer, (float *) converterData.data_in, totalSamples);
-         int srcError = src_process (converter, &converterData);
-         if (srcError)
-              throw Exception (__FILE__, __LINE__, "libsamplerate error: ", src_strerror (srcError));
---- a/src/aacPlusEncoder.cpp
-+++ b/src/aacPlusEncoder.cpp
-@@ -155,7 +155,7 @@ aacPlusEncoder :: write (  const void    * buf,
-     if ( converter ) {
-         unsigned int         converted;
- #ifdef HAVE_SRC_LIB
--        src_short_to_float_array ((short *) b, converterData.data_in, samples);
-+        src_short_to_float_array ((short *) b, (float *) converterData.data_in, samples);
-         converterData.input_frames   = nSamples;
-         converterData.data_out = resampledOffset + (resampledOffsetSize * channels);
-         int srcError = src_process (converter, &converterData);
--- 
-2.11.0
-
diff --git a/gnu/packages/patches/dhall-remove-network-tests.patch b/gnu/packages/patches/dhall-remove-network-tests.patch
new file mode 100644
index 0000000000..c260e7844d
--- /dev/null
+++ b/gnu/packages/patches/dhall-remove-network-tests.patch
@@ -0,0 +1,97 @@
+diff a/dhall-lang/tests/import/failure/referentiallyInsane.dhall b/dhall-lang/tests/import/failure/referentiallyInsane.dhall
+--- a/dhall-lang/tests/import/failure/referentiallyInsane.dhall
++++ /dev/null
+@@ -1,13 +0,0 @@
+-{- The following remote import attempts to import an environment variable, which
+-   must be disallowed by the referential sanity check
+-
+-   One reason for doing this is to protect against remote imports exfiltrating
+-   environment variables (such as via custom headers).  Only referentially
+-   opaque imports (i.e. local imports) have permission to refer to other
+-   referentially opaque imports in order to protect against this attack.
+-
+-   The referential sanity check also ensures that remote imports are
+-   referentially transparent.  Or in other words, any import that is globally
+-   addressable must have a meaning that is not context-sensitive.
+--}
+-https://raw.githubusercontent.com/dhall-lang/dhall-lang/master/tests/import/data/referentiallyOpaque.dhall
+diff a/dhall-lang/tests/import/success/customHeadersA.dhall b/dhall-lang/tests/import/success/customHeadersA.dhall
+--- a/dhall-lang/tests/import/success/customHeadersA.dhall
++++ /dev/null
+@@ -1,3 +0,0 @@
+-https://httpbin.org/user-agent
+-  using [ { mapKey = "User-Agent", mapValue = "Dhall" } ]
+-  as Text
+diff a/dhall-lang/tests/import/success/noHeaderForwardingA.dhall b/dhall-lang/tests/import/success/noHeaderForwardingA.dhall
+--- a/dhall-lang/tests/import/success/noHeaderForwardingA.dhall
++++ /dev/null
+@@ -1,6 +0,0 @@
+-{- The purpose of this test is to verify that the custom headers supplied to
+-   this import are not forwarded to the transitive import of
+-   https://httpbin.org/user-agent
+--}
+-https://raw.githubusercontent.com/dhall-lang/dhall-lang/master/tests/import/success/customHeadersA.dhall
+-  using [ { mapKey = "User-Agent", mapValue = "Secret" } ]
+diff a/dhall-lang/tests/import/success/unit/RemoteAsTextA.dhall b/dhall-lang/tests/import/success/unit/RemoteAsTextA.dhall
+--- a/dhall-lang/tests/import/success/unit/RemoteAsTextA.dhall
++++ /dev/null
+@@ -1 +0,0 @@
+-https://raw.githubusercontent.com/dhall-lang/dhall-lang/0b983b92aa2222dc3e292c20550ee37dea3f41df/tests/import/data/example.txt as Text
+diff a/dhall-lang/tests/import/success/unit/SimpleRemoteA.dhall b/dhall-lang/tests/import/success/unit/SimpleRemoteA.dhall
+--- a/dhall-lang/tests/import/success/unit/SimpleRemoteA.dhall
++++ /dev/null
+@@ -1 +0,0 @@
+-https://raw.githubusercontent.com/dhall-lang/dhall-lang/0b983b92aa2222dc3e292c20550ee37dea3f41df/tests/import/data/simple.dhall
+diff a/dhall-lang/tests/import/success/unit/asLocation/RemoteChain1A.dhall b/dhall-lang/tests/import/success/unit/asLocation/RemoteChain1A.dhall
+--- a/dhall-lang/tests/import/success/unit/asLocation/RemoteChain1A.dhall
++++ /dev/null
+@@ -1 +0,0 @@
+-https://raw.githubusercontent.com/dhall-lang/dhall-lang/0b983b92aa2222dc3e292c20550ee37dea3f41df/tests/import/data/simpleLocation.dhall
+diff a/dhall-lang/tests/import/success/unit/asLocation/RemoteChain2A.dhall b/dhall-lang/tests/import/success/unit/asLocation/RemoteChain2A.dhall
+--- a/dhall-lang/tests/import/success/unit/asLocation/RemoteChain2A.dhall
++++ /dev/null
+@@ -1 +0,0 @@
+-https://raw.githubusercontent.com/Nadrieril/dhall-rust/f7d8c64a9799f139ad65427c2518376adb9e2e2f/dhall/tests/import/success/unit/asLocation/Canonicalize3A.dhall
+diff a/dhall-lang/tests/import/success/unit/asLocation/RemoteChain3A.dhall b/dhall-lang/tests/import/success/unit/asLocation/RemoteChain3A.dhall
+--- a/dhall-lang/tests/import/success/unit/asLocation/RemoteChain3A.dhall
++++ /dev/null
+@@ -1 +0,0 @@
+-https://raw.githubusercontent.com/Nadrieril/dhall-rust/f7d8c64a9799f139ad65427c2518376adb9e2e2f/dhall/tests/import/success/unit/asLocation/Canonicalize5A.dhall
+diff a/dhall-lang/tests/import/success/unit/asLocation/RemoteChainEnvA.dhall b/dhall-lang/tests/import/success/unit/asLocation/RemoteChainEnvA.dhall
+--- a/dhall-lang/tests/import/success/unit/asLocation/RemoteChainEnvA.dhall
++++ /dev/null
+@@ -1,5 +0,0 @@
+-{-
+-    This test verifies that `env:VAR as Location` isn't rejected as referentially opaque,
+-    as `env:VAR` on its own would.
+--}
+-https://raw.githubusercontent.com/Nadrieril/dhall-rust/f7d8c64a9799f139ad65427c2518376adb9e2e2f/dhall/tests/import/success/unit/asLocation/EnvA.dhall
+diff a/dhall-lang/tests/import/success/unit/asLocation/RemoteChainMissingA.dhall b/dhall-lang/tests/import/success/unit/asLocation/RemoteChainMissingA.dhall
+--- a/dhall-lang/tests/import/success/unit/asLocation/RemoteChainMissingA.dhall
++++ /dev/null
+@@ -1,6 +0,0 @@
+-{- This test verifies that `missing as Location` succeeds when chained since:
+-   * The `missing` is never actually resolved (due to the `as Location`)
+-   * The `missing` should be treated as referentially transparent (and therefore
+-     be a valid transitive dependency of a remote import)
+--}
+-https://raw.githubusercontent.com/Nadrieril/dhall-rust/f7d8c64a9799f139ad65427c2518376adb9e2e2f/dhall/tests/import/success/unit/asLocation/MissingA.dhall
+diff a/dhall-lang/tests/type-inference/success/CacheImportsA.dhall b/dhall-lang/tests/type-inference/success/CacheImportsA.dhall
+--- a/dhall-lang/tests/type-inference/success/CacheImportsA.dhall
++++ /dev/null
+@@ -1,6 +0,0 @@
+-{-
+-    This URL returns (probably) a different result for each request. This test
+-    ensures that import results for a given URL are correctly cached within an
+-    execution of dhall.
+--}
+-let _ = assert : https://csrng.net/csrng/csrng.php?min=0&max=1000 as Text === https://csrng.net/csrng/csrng.php?min=0&max=1000 as Text in 0
+diff a/dhall-lang/tests/type-inference/success/CacheImportsCanonicalizeA.dhall b/dhall-lang/tests/type-inference/success/CacheImportsCanonicalizeA.dhall
+--- a/dhall-lang/tests/type-inference/success/CacheImportsCanonicalizeA.dhall
++++ /dev/null
+@@ -1,5 +0,0 @@
+-{-
+-    This URL returns (probably) a different result for each request. This test
+-    ensures that import locations are canonicalized before being cached.
+--}
+-let _ = assert : https://csrng.net/csrng/csrng.php?min=0&max=1000 as Text === https://csrng.net/csrng/../csrng/csrng.php?min=0&max=1000 as Text in 0
diff --git a/gnu/packages/patches/emacs-libgit-use-system-libgit2.patch b/gnu/packages/patches/emacs-libgit-use-system-libgit2.patch
new file mode 100644
index 0000000000..4a5546b06b
--- /dev/null
+++ b/gnu/packages/patches/emacs-libgit-use-system-libgit2.patch
@@ -0,0 +1,88 @@
+From de3c48d72ec7064e7f0522877fe759c729df0c50 Mon Sep 17 00:00:00 2001
+From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
+Date: Wed, 25 Mar 2020 11:32:18 -0400
+Subject: [PATCH] Allow using a system provided libgit2 library
+
+Setting the USE_SYSTEM_LIBGIT2 Make or CMake variable (through the
+BUILD_OPTIONS variable) to any value enables using the system library.
+The default behavior of using a bundled copy of libgit2 is unchanged.
+---
+ CMakeLists.txt     |  9 +++++++--
+ Makefile           | 11 +++++++++++
+ src/CMakeLists.txt |  9 +++++++--
+ 3 files changed, 25 insertions(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a393d7c..75d6ca6 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,9 +7,14 @@ set(BUILD_SHARED_LIBS OFF CACHE BOOL "shared" FORCE)
+ set(BUILD_CLAR OFF CACHE BOOL "clar" FORCE)
+ set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DEGIT_DEBUG")
+ 
+-add_subdirectory(libgit2)
++if(USE_SYSTEM_LIBGIT2)
++  find_package(PkgConfig REQUIRED)
++  pkg_check_modules(git2 REQUIRED IMPORTED_TARGET libgit2)
++else()
++  add_subdirectory(libgit2)
++  find_library(git2 libgit2.a)
++endif()
+ 
+-find_library(git2 libgit2.a)
+ add_subdirectory(src)
+ 
+ enable_testing()
+diff --git a/Makefile b/Makefile
+index 8199532..6a6a4e1 100644
+--- a/Makefile
++++ b/Makefile
+@@ -13,6 +13,13 @@ ifeq ($(UNAME),MSYS)
+ 	BUILD_OPTIONS+= -G "MSYS Makefiles"
+ endif
+ 
++# If the variable USE_SYSTEM_LIBGIT2 is set to *any* value, use the
++# system provided libgit2 library.
++USE_SYSTEM_LIBGIT2? := \
++	$(if $(or $(USE_SYSTEM_LIBGIT2),\
++	 	  $(findstring USE_SYSTEM_LIBGIT2,$(BUILD_OPTIONS))),\
++		true)
++
+ ifeq "$(TRAVIS)" "true"
+ ## Makefile for Travis ###################################################
+ #
+@@ -87,7 +94,11 @@ submodule-update:
+ 	@git submodule update
+ 
+ libgit2:
++ifeq ($(USE_SYSTEM_LIBGIT2?),)
+ 	@git submodule update --init
++else
++	@echo "Using the system provided libgit2 library"
++endif
+ 
+ CLEAN  = $(ELCS) $(PKG)-autoloads.el build
+ 
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index cfb5777..0dbad8a 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -13,8 +13,13 @@ if(WIN32)
+   set_target_properties(egit2 PROPERTIES PREFIX lib)
+ endif(WIN32)
+ 
+-target_link_libraries(egit2 git2)
+-target_include_directories(egit2 SYSTEM PRIVATE "${libgit2_SOURCE_DIR}/include")
++if(USE_SYSTEM_LIBGIT2)
++  target_link_libraries(egit2 PRIVATE PkgConfig::git2)
++else()
++  target_link_libraries(egit2 git2)
++  target_include_directories(
++    egit2 SYSTEM PRIVATE "${libgit2_SOURCE_DIR}/include")
++endif()
+ 
+ if(CMAKE_COMPILER_IS_GNUCC)
+   target_compile_options(egit2 PRIVATE -Wall -Wextra)
+-- 
+2.26.2
+
diff --git a/gnu/packages/patches/emacs-magit-log-format-author-margin.patch b/gnu/packages/patches/emacs-magit-log-format-author-margin.patch
deleted file mode 100644
index fc52157a32..0000000000
--- a/gnu/packages/patches/emacs-magit-log-format-author-margin.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 94914ca4690c0cff12d600a0c8ba6bfb3fb38dc5 Mon Sep 17 00:00:00 2001
-From: Jonas Bernoulli <jonas@bernoul.li>
-Date: Tue, 25 Jun 2019 21:44:32 +0200
-Subject: [PATCH] magit-log-format-author-margin: New function
-
-Split it from `magit-log-format-margin'.
----
- lisp/magit-log.el | 48 +++++++++++++++++++++++++----------------------
- 1 file changed, 26 insertions(+), 22 deletions(-)
-
-diff --git a/lisp/magit-log.el b/lisp/magit-log.el
-index c8e6ef63..c0a79b19 100644
---- a/lisp/magit-log.el
-+++ b/lisp/magit-log.el
-@@ -1374,28 +1374,32 @@ The shortstat style is experimental and rather slow."
-   (when-let ((option (magit-margin-option)))
-     (if magit-log-margin-show-shortstat
-         (magit-log-format-shortstat-margin rev)
--      (pcase-let ((`(,_ ,style ,width ,details ,details-width)
--                   (or magit-buffer-margin
--                       (symbol-value option))))
--        (magit-make-margin-overlay
--         (concat (and details
--                      (concat (propertize (truncate-string-to-width
--                                           (or author "")
--                                           details-width
--                                           nil ?\s (make-string 1 magit-ellipsis))
--                                          'face 'magit-log-author)
--                              " "))
--                 (propertize
--                  (if (stringp style)
--                      (format-time-string
--                       style
--                       (seconds-to-time (string-to-number date)))
--                    (pcase-let* ((abbr (eq style 'age-abbreviated))
--                                 (`(,cnt ,unit) (magit--age date abbr)))
--                      (format (format (if abbr "%%2i%%-%ic" "%%2i %%-%is")
--                                      (- width (if details (1+ details-width) 0)))
--                              cnt unit)))
--                  'face 'magit-log-date)))))))
-+      (magit-log-format-author-margin author date))))
-+
-+(defun magit-log-format-author-margin (author date &optional previous-line)
-+  (pcase-let ((`(,_ ,style ,width ,details ,details-width)
-+               (or magit-buffer-margin
-+                   (symbol-value option))))
-+    (magit-make-margin-overlay
-+     (concat (and details
-+                  (concat (propertize (truncate-string-to-width
-+                                       (or author "")
-+                                       details-width
-+                                       nil ?\s (make-string 1 magit-ellipsis))
-+                                      'face 'magit-log-author)
-+                          " "))
-+             (propertize
-+              (if (stringp style)
-+                  (format-time-string
-+                   style
-+                   (seconds-to-time (string-to-number date)))
-+                (pcase-let* ((abbr (eq style 'age-abbreviated))
-+                             (`(,cnt ,unit) (magit--age date abbr)))
-+                  (format (format (if abbr "%%2i%%-%ic" "%%2i %%-%is")
-+                                  (- width (if details (1+ details-width) 0)))
-+                          cnt unit)))
-+              'face 'magit-log-date))
-+     previous-line)))
- 
- (defun magit-log-format-shortstat-margin (rev)
-   (magit-make-margin-overlay
--- 
-2.23.0
-
diff --git a/gnu/packages/patches/enlightenment-fix-setuid-path.patch b/gnu/packages/patches/enlightenment-fix-setuid-path.patch
index f2930845ba..a0efb29857 100644
--- a/gnu/packages/patches/enlightenment-fix-setuid-path.patch
+++ b/gnu/packages/patches/enlightenment-fix-setuid-path.patch
@@ -1,26 +1,24 @@
 diff --git a/src/bin/e_auth.c b/src/bin/e_auth.c
-index 8b0aa6641..f15d2c2a2 100644
+index 8b0aa6641..3dff0ad84 100644
 --- a/src/bin/e_auth.c
 +++ b/src/bin/e_auth.c
-@@ -11,9 +11,7 @@ e_auth_begin(char *passwd)
-    pwlen = strlen(passwd);
+@@ -12,8 +12,7 @@ e_auth_begin(char *passwd)
     if (pwlen == 0) goto out;
  
--   snprintf(buf, sizeof(buf),
+    snprintf(buf, sizeof(buf),
 -            "%s/enlightenment/utils/enlightenment_ckpasswd pw",
 -            e_prefix_lib_get());
-+   snprintf(buf, sizeof(buf), "/run/setuid-programs/enlightenment_ckpasswd");
++            "/run/setuid-programs/enlightenment_ckpasswd pw");
     exe = ecore_exe_pipe_run(buf, ECORE_EXE_PIPE_WRITE, NULL);
     if (!exe) goto out;
     if (ecore_exe_send(exe, passwd, pwlen) != EINA_TRUE) goto out;
-@@ -46,9 +44,7 @@ e_auth_polkit_begin(char *passwd, const char *cookie, unsigned int uid)
-    pwlen = strlen(passwd);
+@@ -47,8 +46,7 @@ e_auth_polkit_begin(char *passwd, const char *cookie, unsigned int uid)
     if (pwlen == 0) goto out;
  
--   snprintf(buf, sizeof(buf),
+    snprintf(buf, sizeof(buf),
 -            "%s/enlightenment/utils/enlightenment_ckpasswd pk",
 -            e_prefix_lib_get());
-+   snprintf(buf, sizeof(buf), "/run/setuid-programs/enlightenment_ckpasswd");
++            "/run/setuid-programs/enlightenment_ckpasswd pk");
     exe = ecore_exe_pipe_run(buf, ECORE_EXE_PIPE_WRITE, NULL);
     if (!exe) goto out;
     snprintf(buf, sizeof(buf), "%s %u %s", cookie, uid, passwd);
diff --git a/gnu/packages/patches/grub-setup-root.patch b/gnu/packages/patches/grub-setup-root.patch
new file mode 100644
index 0000000000..1abe9c383a
--- /dev/null
+++ b/gnu/packages/patches/grub-setup-root.patch
@@ -0,0 +1,124 @@
+This patch is taken from OpenWrt, see:
+
+https://github.com/openwrt/openwrt/blob/master/package/boot/grub2/patches/100-grub_setup_root.patch.
+
+It allows to use grub-bios-setup on a raw disk-images, without root permissions.
+
+--- a/util/grub-setup.c
++++ b/util/grub-setup.c
+@@ -87,6 +87,8 @@ static struct argp_option options[] = {
+    N_("install even if problems are detected"), 0},
+   {"skip-fs-probe",'s',0,      0,
+    N_("do not probe for filesystems in DEVICE"), 0},
++  {"root-device", 'r', N_("DEVICE"), 0,
++   N_("use DEVICE as the root device"), 0},
+   {"verbose",     'v', 0,      0, N_("print verbose messages."), 0},
+   {"allow-floppy", 'a', 0,      0,
+    /* TRANSLATORS: The potential breakage isn't limited to floppies but it's
+@@ -130,6 +132,7 @@ struct arguments
+   char *core_file;
+   char *dir;
+   char *dev_map;
++  char *root_dev;
+   int  force;
+   int  fs_probe;
+   int allow_floppy;
+@@ -178,6 +181,13 @@ argp_parser (int key, char *arg, struct
+         arguments->dev_map = xstrdup (arg);
+         break;
+ 
++      case 'r':
++        if (arguments->root_dev)
++          free (arguments->root_dev);
++
++        arguments->root_dev = xstrdup (arg);
++        break;
++
+       case 'f':
+         arguments->force = 1;
+         break;
+@@ -313,7 +323,7 @@ main (int argc, char *argv[])
+   GRUB_SETUP_FUNC (arguments.dir ? : DEFAULT_DIRECTORY,
+ 		   arguments.boot_file ? : DEFAULT_BOOT_FILE,
+ 		   arguments.core_file ? : DEFAULT_CORE_FILE,
+-		   dest_dev, arguments.force,
++		   arguments.root_dev, dest_dev, arguments.force,
+ 		   arguments.fs_probe, arguments.allow_floppy,
+ 		   arguments.add_rs_codes);
+ 
+--- a/util/setup.c
++++ b/util/setup.c
+@@ -252,13 +252,12 @@ identify_partmap (grub_disk_t disk __att
+ void
+ SETUP (const char *dir,
+        const char *boot_file, const char *core_file,
+-       const char *dest, int force,
++       char *root, const char *dest, int force,
+        int fs_probe, int allow_floppy,
+        int add_rs_codes __attribute__ ((unused))) /* unused on sparc64 */
+ {
+   char *core_path;
+   char *boot_img, *core_img, *boot_path;
+-  char *root = 0;
+   size_t boot_size, core_size;
+   grub_uint16_t core_sectors;
+   grub_device_t root_dev = 0, dest_dev, core_dev;
+@@ -307,7 +306,10 @@ SETUP (const char *dir,
+ 
+   core_dev = dest_dev;
+ 
+-  {
++  if (root)
++    root_dev = grub_device_open(root);
++
++  if (!root_dev) {
+     char **root_devices = grub_guess_root_devices (dir);
+     char **cur;
+     int found = 0;
+@@ -320,6 +322,8 @@ SETUP (const char *dir,
+ 	char *drive;
+ 	grub_device_t try_dev;
+ 
++	if (root_dev)
++	  break;
+ 	drive = grub_util_get_grub_dev (*cur);
+ 	if (!drive)
+ 	  continue;
+--- a/include/grub/util/install.h
++++ b/include/grub/util/install.h
+@@ -191,13 +191,13 @@ grub_install_get_image_target (const cha
+ void
+ grub_util_bios_setup (const char *dir,
+ 		      const char *boot_file, const char *core_file,
+-		      const char *dest, int force,
++		      char *root, const char *dest, int force,
+ 		      int fs_probe, int allow_floppy,
+ 		      int add_rs_codes);
+ void
+ grub_util_sparc_setup (const char *dir,
+ 		       const char *boot_file, const char *core_file,
+-		       const char *dest, int force,
++		       char *root, const char *dest, int force,
+ 		       int fs_probe, int allow_floppy,
+ 		       int add_rs_codes);
+ 
+--- a/util/grub-install.c
++++ b/util/grub-install.c
+@@ -1712,7 +1712,7 @@ main (int argc, char *argv[])
+ 	/*  Now perform the installation.  */
+ 	if (install_bootsector)
+ 	  grub_util_bios_setup (platdir, "boot.img", "core.img",
+-				install_drive, force,
++				NULL, install_drive, force,
+ 				fs_probe, allow_floppy, add_rs_codes);
+ 	break;
+       }
+@@ -1738,7 +1738,7 @@ main (int argc, char *argv[])
+ 	/*  Now perform the installation.  */
+ 	if (install_bootsector)
+ 	  grub_util_sparc_setup (platdir, "boot.img", "core.img",
+-				 install_drive, force,
++				 NULL, install_drive, force,
+ 				 fs_probe, allow_floppy,
+ 				 0 /* unused */ );
+ 	break;
diff --git a/gnu/packages/patches/libnftnl-dont-check-NFTNL_FLOWTABLE_SIZE.patch b/gnu/packages/patches/libnftnl-dont-check-NFTNL_FLOWTABLE_SIZE.patch
deleted file mode 100644
index df0571bf2b..0000000000
--- a/gnu/packages/patches/libnftnl-dont-check-NFTNL_FLOWTABLE_SIZE.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From: Tobias Geerinckx-Rice <me@tobias.gr>
-Date: Tue, 10 Dec 2019 16:20:40 +0100
-Subject: gnu: libnftnl: Don't check NFTNL_FLOWTABLE_SIZE.
-
-Taken verbatim from the upstream commit[0] directly following the 1.1.5
-release.
-
-[0]: https://git.netfilter.org/libnftnl/commit/?id=b2388765e0c4405442faa13845419f6a35d0134c
-
-From b2388765e0c4405442faa13845419f6a35d0134c Mon Sep 17 00:00:00 2001
-From: Phil Sutter <phil@nwl.cc>
-Date: Mon, 2 Dec 2019 18:29:56 +0100
-Subject: tests: flowtable: Don't check NFTNL_FLOWTABLE_SIZE
-
-Marshalling code around that attribute has been dropped by commit
-d1c4b98c733a5 ("flowtable: remove NFTA_FLOWTABLE_SIZE") so it's value is
-lost during the test.
-
-Assuming that NFTNL_FLOWTABLE_SIZE will receive kernel support at a
-later point, leave the test code in place but just comment it out.
-
-Fixes: d1c4b98c733a5 ("flowtable: remove NFTA_FLOWTABLE_SIZE")
-Signed-off-by: Phil Sutter <phil@nwl.cc>
-Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
- tests/nft-flowtable-test.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/tests/nft-flowtable-test.c b/tests/nft-flowtable-test.c
-index 3edb00d..8ab8d4c 100644
---- a/tests/nft-flowtable-test.c
-+++ b/tests/nft-flowtable-test.c
-@@ -33,9 +33,11 @@ static void cmp_nftnl_flowtable(struct nftnl_flowtable *a, struct nftnl_flowtabl
- 	if (nftnl_flowtable_get_u32(a, NFTNL_FLOWTABLE_USE) !=
- 	    nftnl_flowtable_get_u32(b, NFTNL_FLOWTABLE_USE))
- 		print_err("Flowtable use mismatches");
-+#if 0
- 	if (nftnl_flowtable_get_u32(a, NFTNL_FLOWTABLE_SIZE) !=
- 	    nftnl_flowtable_get_u32(b, NFTNL_FLOWTABLE_SIZE))
- 		print_err("Flowtable size mismatches");
-+#endif
- 	if (nftnl_flowtable_get_u32(a, NFTNL_FLOWTABLE_FLAGS) !=
- 	    nftnl_flowtable_get_u32(b, NFTNL_FLOWTABLE_FLAGS))
- 		print_err("Flowtable flags mismatches");
--- 
-cgit v1.2.1
-
diff --git a/gnu/packages/patches/lxsession-use-gapplication.patch b/gnu/packages/patches/lxsession-use-gapplication.patch
deleted file mode 100644
index 3f2269a42f..0000000000
--- a/gnu/packages/patches/lxsession-use-gapplication.patch
+++ /dev/null
@@ -1,152 +0,0 @@
-Upstream patch to remove libunique dependency, and use glib >= 2.28.0
-to handle unique apps both for GTK+ 2 and 3.
-https://sourceforge.net/p/lxde/patches/539/
-
-
-From a7d3b40a79a7a16c1f5d50d2bd466570258dae29 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <ballogyor@gmail.com>
-Date: Sun, 22 Jan 2017 01:09:59 +0100
-Subject: [PATCH] Use GApplication for unique app handling
-
-Remove libunique dependency, and use glib >= 2.28.0 to handle unique apps both for GTK+ 2 and 3.
----
- Makefile.am           |  6 ------
- configure.ac          |  7 +------
- lxclipboard/main.vala | 16 +---------------
- lxpolkit/main.vala    | 16 +---------------
- 4 files changed, 3 insertions(+), 42 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index c2e1fe8..e3a3b97 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -90,9 +90,6 @@ if USE_GTK3
- lxclipboard_lxclipboard_VALAFLAGS += --define USE_GTK3
- else
- lxclipboard_lxclipboard_VALAFLAGS += --define USE_GTK2
--lxclipboard_lxclipboard_VALAFLAGS += --pkg unique-1.0
--lxclipboard_lxclipboard_CPPFLAGS += $(UNIQUE_CFLAGS)
--lxclipboard_lxclipboard_LDADD += $(UNIQUE_LIBS)
- endif
- 
- lxpolkit_lxpolkit_vala_SOURCES = \
-@@ -137,9 +134,6 @@ if USE_GTK3
- lxpolkit_lxpolkit_VALAFLAGS += --define USE_GTK3
- else
- lxpolkit_lxpolkit_VALAFLAGS += --define USE_GTK2
--lxpolkit_lxpolkit_VALAFLAGS += --pkg unique-1.0
--lxpolkit_lxpolkit_CPPFLAGS += $(UNIQUE_CFLAGS)
--lxpolkit_lxpolkit_LDADD += $(UNIQUE_LIBS)
- endif
- 
- lxsession_db_lxsession_db_SOURCES = \
-diff --git a/configure.ac b/configure.ac
-index 06ddbb3..9126f4d 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -45,7 +45,7 @@ PKG_CHECK_MODULES(X11, [x11])
- AC_SUBST(X11_CFLAGS)
- AC_SUBST(X11_LIBS)
- 
--PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.6.0])
-+PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.28.0])
- AC_SUBST(GLIB_CFLAGS)
- AC_SUBST(GLIB_LIBS)
- 
-@@ -79,11 +79,6 @@ else
-     CFLAGS="$CFLAGS -D USE_GTK2"
-     gtk_modules="gtk+-2.0 >= 2.6.0"
-     VALA_GTK_LIBS="gtk+-2.0"
--
--    PKG_CHECK_MODULES(UNIQUE, [unique-1.0])
--    AC_SUBST(UNIQUE_CFLAGS)
--    AC_SUBST(UNIQUE_LIBS)
--
-   fi
-   PKG_CHECK_MODULES(GTK, [$gtk_modules])
-   AC_SUBST(GTK_CFLAGS)
-diff --git a/lxclipboard/main.vala b/lxclipboard/main.vala
-index bee4044..3d4a8d7 100644
---- a/lxclipboard/main.vala
-+++ b/lxclipboard/main.vala
-@@ -17,9 +17,6 @@
-  *      MA 02110-1301, USA.
-  */
- using Gtk;
--#if USE_GTK2
--using Unique;
--#endif
- 
- namespace Lxsession
- {
-@@ -28,17 +25,7 @@ namespace Lxsession
-         public static int main(string[] args)
-         {
-             Gtk.init (ref args);
--#if USE_GTK2
--            Unique.App app = new Unique.App("org.lxde.lxclipboard", null);
--
--            if(app.is_running)
--            {
--                message("lxclipboard is already running. Existing");
--                return 0;
--            }
--#endif
--# if USE_GTK3
--            Gtk.Application app = new Gtk.Application (
-+            GLib.Application app = new GLib.Application (
-                 "org.lxde.lxclipboard",
-                 GLib.ApplicationFlags.FLAGS_NONE);
-             app.register ();
-@@ -48,7 +35,6 @@ namespace Lxsession
-                 message("lxclipboard is already running. Existing");
-                 return 0;
-             }
--#endif
- 
-             clipboard_start ();
- 
-diff --git a/lxpolkit/main.vala b/lxpolkit/main.vala
-index c0d6ae2..50c3cb7 100644
---- a/lxpolkit/main.vala
-+++ b/lxpolkit/main.vala
-@@ -17,9 +17,6 @@
-  *      MA 02110-1301, USA.
-  */
- using Gtk;
--#if USE_GTK2
--using Unique;
--#endif
- 
- const string GETTEXT_PACKAGE = "lxsession";
- 
-@@ -33,17 +30,7 @@ namespace Lxsession
-             Intl.bind_textdomain_codeset(GETTEXT_PACKAGE, "utf-8");
- 
-             Gtk.init (ref args);
--#if USE_GTK2
--            Unique.App app = new Unique.App("org.lxde.lxpolkit", null);
--
--            if(app.is_running)
--            {
--                message(_("lxpolkit is already running. Existing"));
--                return 0;
--            }
--#endif
--# if USE_GTK3
--            Gtk.Application app = new Gtk.Application (
-+            GLib.Application app = new GLib.Application (
-                 "org.lxde.lxpolkit",
-                 GLib.ApplicationFlags.FLAGS_NONE);
-             app.register ();
-@@ -53,7 +40,6 @@ namespace Lxsession
-                 message(_("lxpolkit is already running. Existing"));
-                 return 0;
-             }
--#endif
- 
-             policykit_agent_init();
- 
--- 
-2.11.0
-
diff --git a/gnu/packages/patches/netsurf-system-utf8proc.patch b/gnu/packages/patches/netsurf-system-utf8proc.patch
index a2ee52ca05..04bf828f37 100644
--- a/gnu/packages/patches/netsurf-system-utf8proc.patch
+++ b/gnu/packages/patches/netsurf-system-utf8proc.patch
@@ -1,50 +1,13 @@
-Use upstream utf8proc package, as suggested in
-http://source.netsurf-browser.org/libutf8proc.git/commit/?id=770e329cceaf0620c7b482589a9b17ed1d19c16d
+Fix include directory for system utf8proc.
 
-Work around upstream's lack of a pkg-config file and update API.
-
---- netsurf-3.6/Makefile
-+++ netsurf-3.6/Makefile
-@@ -527,10 +527,9 @@
- $(eval $(call pkg_config_find_and_add,libcss,CSS))
- $(eval $(call pkg_config_find_and_add,libdom,DOM))
- $(eval $(call pkg_config_find_and_add,libnsutils,nsutils))
--$(eval $(call pkg_config_find_and_add,libutf8proc,utf8proc))
- 
- # Common libraries without pkg-config support
--LDFLAGS += -lz
-+LDFLAGS += -lz -lutf8proc
+--- netsurf-3.10/utils/idna.c
++++ netsurf-3.10/utils/idna.c
+@@ -167,7 +167,7 @@
  
- # Optional libraries with pkgconfig
+ #ifdef WITH_UTF8PROC
  
---- netsurf-3.8/utils/idna.c
-+++ netsurf-3.8/utils/idna.c
-@@ -27,7 +27,7 @@
- #include <stdlib.h>
- #include <string.h>
- #include <sys/types.h>
 -#include <libutf8proc/utf8proc.h>
 +#include <utf8proc.h>
  
- #include "netsurf/inttypes.h"
- 
---- netsurf-3.8/test/Makefile
-+++ netsurf-3.8/test/Makefile
-@@ -142,14 +142,15 @@
- 	-Itest -Iinclude -Icontent/handlers -Ifrontends -I. -I.. \
- 	-Dnsgtk \
- 	$(SAN_FLAGS) \
--	$(shell pkg-config --cflags libcurl libparserutils libwapcaplet libdom libnsutils libutf8proc) \
-+	$(shell pkg-config --cflags libcurl libparserutils libwapcaplet libdom libnsutils) \
- 	$(LIB_CFLAGS)
- TESTCFLAGS := $(BASE_TESTCFLAGS) \
- 	$(COV_CFLAGS) \
- 	$(COV_CPPFLAGS)
- 
- TESTLDFLAGS := -L$(TESTROOT) \
--	$(shell pkg-config --libs libcurl libparserutils libwapcaplet libdom libnsutils libutf8proc) -lz \
-+	$(shell pkg-config --libs libcurl libparserutils libwapcaplet libdom libnsutils) \
-+	$(LDFLAGS) \
- 	$(SAN_FLAGS) \
- 	$(LIB_LDFLAGS)\
- 	$(COV_LDFLAGS)
+ int32_t idna_contexto[] = {
+ 	/* CONTEXTO codepoints which have a rule defined */
diff --git a/gnu/packages/patches/ruby-sanitize-system-libxml.patch b/gnu/packages/patches/ruby-sanitize-system-libxml.patch
new file mode 100644
index 0000000000..d19eb07294
--- /dev/null
+++ b/gnu/packages/patches/ruby-sanitize-system-libxml.patch
@@ -0,0 +1,38 @@
+Fix test failures that occur when nokogiri is using system libxml:
+
+  https://github.com/rgrove/sanitize/issues/198
+
+Taken from upstream:
+https://github.com/rgrove/sanitize/commit/21da9b62baf9ea659811d92e6b574130aee57eba
+
+diff --git a/test/test_malicious_html.rb b/test/test_malicious_html.rb
+index 2c23074..0756de0 100644
+--- a/test/test_malicious_html.rb
++++ b/test/test_malicious_html.rb
+@@ -135,6 +135,8 @@
+   # The relevant libxml2 code is here:
+   # <https://github.com/GNOME/libxml2/commit/960f0e275616cadc29671a218d7fb9b69eb35588>
+   describe 'unsafe libxml2 server-side includes in attributes' do
++    using_unpatched_libxml2 = Nokogiri::VersionInfo.instance.libxml2_using_system?
++
+     tag_configs = [
+       {
+         tag_name: 'a',
+@@ -166,6 +168,8 @@
+         input = %[<#{tag_name} #{attr_name}='examp<!--" onmouseover=alert(1)>-->le.com'>foo</#{tag_name}>]
+ 
+         it 'should escape unsafe characters in attributes' do
++          skip "behavior should only exist in nokogiri's patched libxml" if using_unpatched_libxml2
++
+           # This uses Nokogumbo's HTML-compliant serializer rather than
+           # libxml2's.
+           @s.fragment(input).
+@@ -191,6 +195,8 @@
+         input = %[<#{tag_name} #{attr_name}='examp<!--" onmouseover=alert(1)>-->le.com'>foo</#{tag_name}>]
+ 
+         it 'should not escape characters unnecessarily' do
++          skip "behavior should only exist in nokogiri's patched libxml" if using_unpatched_libxml2
++
+           # This uses Nokogumbo's HTML-compliant serializer rather than
+           # libxml2's.
+           @s.fragment(input).
diff --git a/gnu/packages/patches/transmission-CVE-2018-10756.patch b/gnu/packages/patches/transmission-CVE-2018-10756.patch
new file mode 100644
index 0000000000..f9bdcf60aa
--- /dev/null
+++ b/gnu/packages/patches/transmission-CVE-2018-10756.patch
@@ -0,0 +1,71 @@
+Fix CVE-2018-10756:
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-10756
+
+Patch copied from Fedora:
+
+https://src.fedoraproject.org/rpms/transmission/blob/master/f/2123adf8e5e1c2b48791f9d22fc8c747e974180e.patch
+
+--- a/libtransmission/variant.c	2018-05-01 12:21:08.000000000 -0500
++++ b/libtransmission/variant.c	2020-05-18 10:21:27.554214128 -0500
+@@ -820,7 +820,7 @@
+ struct SaveNode
+ {
+   const tr_variant * v;
+-  tr_variant sorted;
++  tr_variant* sorted;
+   size_t childIndex;
+   bool isVisited;
+ };
+@@ -849,26 +849,33 @@
+ 
+       qsort (tmp, n, sizeof (struct KeyIndex), compareKeyIndex);
+ 
+-      tr_variantInitDict (&node->sorted, n);
++      node->sorted = tr_new(tr_variant, 1);
++      tr_variantInitDict (node->sorted, n);
+       for (i=0; i<n; ++i)
+-        node->sorted.val.l.vals[i] = *tmp[i].val;
++        node->sorted->val.l.vals[i] = *tmp[i].val;
+       node->sorted.val.l.count = n;
+ 
+       tr_free (tmp);
+ 
+-      node->v = &node->sorted;
++      v = node->sorted;
+     }
+   else
+     {
+-      node->v = v;
++      node->sorted = NULL;
+     }
++    
++    node->v = v;
+ }
+ 
+ static void
+ nodeDestruct (struct SaveNode * node)
+ {
+-  if (node->v == &node->sorted)
+-    tr_free (node->sorted.val.l.vals);
++    //TR_ASSERT(node != NULL);
++    if (node->sorted != NULL)
++    {
++        tr_free(node->sorted->val.l.vals);
++        tr_free(node->sorted);    
++    }
+ }
+ 
+ /**
+--- a/libtransmission/variant.c	2020-05-18 10:21:49.000000000 -0500
++++ b/libtransmission/variant.c	2020-05-18 10:24:34.673648865 -0500
+@@ -853,7 +853,7 @@
+       tr_variantInitDict (node->sorted, n);
+       for (i=0; i<n; ++i)
+         node->sorted->val.l.vals[i] = *tmp[i].val;
+-      node->sorted.val.l.count = n;
++      node->sorted->val.l.count = n;
+ 
+       tr_free (tmp);
+ 
+