summary refs log tree commit diff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2019-12-12 04:10:59 +0200
committerEfraim Flashner <efraim@flashner.co.il>2019-12-12 04:10:59 +0200
commitc9e676d0b141f510c19e26edb1e6fad079b9b502 (patch)
tree79abb4a4b92ecf4504a46e55ffa7971a06c8a5df /gnu/packages/patches
parentd45720d8b456e82380601d77e25bd05c6e0dc36a (diff)
parentdcb7ce500bd025455982d74c3384c707f35bbb46 (diff)
downloadguix-c9e676d0b141f510c19e26edb1e6fad079b9b502.tar.gz
Merge remote-tracking branch 'origin/master' into core-updates
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch140
-rw-r--r--gnu/packages/patches/gnome-control-center-udisks.patch221
-rw-r--r--gnu/packages/patches/guile-finalization-crash.patch61
-rw-r--r--gnu/packages/patches/mes-remove-store-name.patch121
-rw-r--r--gnu/packages/patches/ncompress-fix-softlinks.patch24
-rw-r--r--gnu/packages/patches/nss-CVE-2019-11745.patch24
-rw-r--r--gnu/packages/patches/python-pyatspi-python-37.patch82
-rw-r--r--gnu/packages/patches/ruby-safe-yaml-add-require-time.patch19
-rw-r--r--gnu/packages/patches/stumpwm-fix-broken-read-one-line.patch45
-rw-r--r--gnu/packages/patches/totem-meson-compat.patch14
-rw-r--r--gnu/packages/patches/totem-meson-easy-codec.patch65
-rw-r--r--gnu/packages/patches/websocketpp-fix-for-boost-1.70.patch103
12 files changed, 333 insertions, 586 deletions
diff --git a/gnu/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch b/gnu/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch
deleted file mode 100644
index d05b4351b3..0000000000
--- a/gnu/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-This patch was taken from Nixpkgs.
-
-From 616381bc25b0e90198683fb049f994e82d467d96 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= <mail@nh2.me>
-Date: Sat, 13 May 2017 02:45:49 +0200
-Subject: [PATCH] Don't use hardcoded /sbin, /usr/bin etc. paths. Fixes
- #1450546.
-
-Instead, rely on programs to be in PATH, as gluster already
-does in many places across its code base.
-
-Change-Id: Id21152fe42f5b67205d8f1571b0656c4d5f74246
----
- contrib/fuse-lib/mount-common.c               |  8 ++++----
- xlators/mgmt/glusterd/src/glusterd-ganesha.c  |  6 +++---
- xlators/mgmt/glusterd/src/glusterd-quota.c    |  6 +++---
- xlators/mgmt/glusterd/src/glusterd-snapshot.c |  4 ++--
- xlators/mgmt/glusterd/src/glusterd-utils.c    | 14 +-------------
- 5 files changed, 13 insertions(+), 25 deletions(-)
-
-diff --git a/contrib/fuse-lib/mount-common.c b/contrib/fuse-lib/mount-common.c
-index e9f80fe81..6380dd867 100644
---- a/contrib/fuse-lib/mount-common.c
-+++ b/contrib/fuse-lib/mount-common.c
-@@ -255,16 +255,16 @@ fuse_mnt_umount (const char *progname, const char *abs_mnt,
-                         exit (1);
-                 }
- #ifdef GF_LINUX_HOST_OS
--                execl ("/bin/umount", "/bin/umount", "-i", rel_mnt,
-+                execl ("umount", "umount", "-i", rel_mnt,
-                        lazy ? "-l" : NULL, NULL);
--                GFFUSE_LOGERR ("%s: failed to execute /bin/umount: %s",
-+                GFFUSE_LOGERR ("%s: failed to execute umount: %s",
-                                progname, strerror (errno));
- #elif __NetBSD__
-                 /* exitting the filesystem causes the umount */
-                 exit (0);
- #else
--                execl ("/sbin/umount", "/sbin/umount", "-f", rel_mnt, NULL);
--                GFFUSE_LOGERR ("%s: failed to execute /sbin/umount: %s",
-+                execl ("umount", "umount", "-f", rel_mnt, NULL);
-+                GFFUSE_LOGERR ("%s: failed to execute umount: %s",
-                                progname, strerror (errno));
- #endif /* GF_LINUX_HOST_OS */
-                 exit (1);
-diff --git a/xlators/mgmt/glusterd/src/glusterd-quota.c b/xlators/mgmt/glusterd/src/glusterd-quota.c
-index 0e6629cf0..fcb4738b7 100644
---- a/xlators/mgmt/glusterd/src/glusterd-quota.c
-+++ b/xlators/mgmt/glusterd/src/glusterd-quota.c
-@@ -30,7 +30,7 @@
- 
- #ifndef _PATH_SETFATTR
- # ifdef GF_LINUX_HOST_OS
--#  define _PATH_SETFATTR "/usr/bin/setfattr"
-+#  define _PATH_SETFATTR "setfattr"
- # endif
- # ifdef __NetBSD__
- #  define _PATH_SETFATTR "/usr/pkg/bin/setfattr"
-@@ -335,7 +335,7 @@ _glusterd_quota_initiate_fs_crawl (glusterd_conf_t *priv,
- 
-                 if (type == GF_QUOTA_OPTION_TYPE_ENABLE ||
-                     type == GF_QUOTA_OPTION_TYPE_ENABLE_OBJECTS)
--                        runner_add_args (&runner, "/usr/bin/find", ".", NULL);
-+                        runner_add_args (&runner, "find", ".", NULL);
- 
-                 else if (type == GF_QUOTA_OPTION_TYPE_DISABLE) {
- 
-@@ -351,7 +351,7 @@ _glusterd_quota_initiate_fs_crawl (glusterd_conf_t *priv,
-                                          VIRTUAL_QUOTA_XATTR_CLEANUP_KEY, "1",
-                                          "{}", "\\", ";", NULL);
- #else
--                        runner_add_args (&runner, "/usr/bin/find", ".",
-+                        runner_add_args (&runner, "find", ".",
-                                          "-exec", _PATH_SETFATTR, "-n",
-                                          VIRTUAL_QUOTA_XATTR_CLEANUP_KEY, "-v",
-                                          "1", "{}", "\\", ";", NULL);
-diff --git a/xlators/mgmt/glusterd/src/glusterd-snapshot.c b/xlators/mgmt/glusterd/src/glusterd-snapshot.c
-index da0152366..f0d135350 100644
---- a/xlators/mgmt/glusterd/src/glusterd-snapshot.c
-+++ b/xlators/mgmt/glusterd/src/glusterd-snapshot.c
-@@ -121,7 +121,7 @@ glusterd_build_snap_device_path (char *device, char *snapname,
-         }
- 
-         runinit (&runner);
--        runner_add_args (&runner, "/sbin/lvs", "--noheadings", "-o", "vg_name",
-+        runner_add_args (&runner, "lvs", "--noheadings", "-o", "vg_name",
-                          device, NULL);
-         runner_redir (&runner, STDOUT_FILENO, RUN_PIPE);
-         snprintf (msg, sizeof (msg), "Get volume group for device %s", device);
-@@ -1982,7 +1982,7 @@ glusterd_is_thinp_brick (char *device, uint32_t *op_errno)
- 
-         runinit (&runner);
- 
--        runner_add_args (&runner, "/sbin/lvs", "--noheadings", "-o", "pool_lv",
-+        runner_add_args (&runner, "lvs", "--noheadings", "-o", "pool_lv",
-                          device, NULL);
-         runner_redir (&runner, STDOUT_FILENO, RUN_PIPE);
-         runner_log (&runner, this->name, GF_LOG_DEBUG, msg);
-diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c
-index 51db13df0..6fa7b92f9 100644
---- a/xlators/mgmt/glusterd/src/glusterd-utils.c
-+++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
-@@ -6027,7 +6027,6 @@ static struct fs_info {
-         char *fs_tool_pattern;
-         char *fs_tool_pkg;
- } glusterd_fs[] = {
--        /* some linux have these in /usr/sbin/and others in /sbin/? */
-         { "xfs", "xfs_info", NULL, "isize=", "xfsprogs" },
-         { "ext3", "tune2fs", "-l", "Inode size:", "e2fsprogs" },
-         { "ext4", "tune2fs", "-l", "Inode size:", "e2fsprogs" },
-@@ -6048,7 +6047,6 @@ glusterd_add_inode_size_to_dict (dict_t *dict, int count)
-         char           *trail             = NULL;
-         runner_t        runner            = {0, };
-         struct fs_info *fs                = NULL;
--        char            fs_tool_name[256] = {0, };
-         static dict_t  *cached_fs         = NULL;
- 
-         memset (key, 0, sizeof (key));
-@@ -6085,17 +6083,7 @@ glusterd_add_inode_size_to_dict (dict_t *dict, int count)
-                                 cur_word = "N/A";
-                                 goto cached;
-                         }
--
--                        snprintf (fs_tool_name, sizeof (fs_tool_name),
--                                  "/usr/sbin/%s", fs->fs_tool_name);
--                        if (sys_access (fs_tool_name, R_OK|X_OK) == 0)
--                                runner_add_arg (&runner, fs_tool_name);
--                        else {
--                                snprintf (fs_tool_name, sizeof (fs_tool_name),
--                                          "/sbin/%s", fs->fs_tool_name);
--                                if (sys_access (fs_tool_name, R_OK|X_OK) == 0)
--                                        runner_add_arg (&runner, fs_tool_name);
--                        }
-+                        runner_add_arg (&runner, fs->fs_tool_name);
-                         break;
-                 }
-         }
--- 
-2.12.0
-
diff --git a/gnu/packages/patches/gnome-control-center-udisks.patch b/gnu/packages/patches/gnome-control-center-udisks.patch
deleted file mode 100644
index 823684b2e9..0000000000
--- a/gnu/packages/patches/gnome-control-center-udisks.patch
+++ /dev/null
@@ -1,221 +0,0 @@
-This patch is derived from upstream commit 2520aea6 and fixes upstream issues
-285 and 302.  See https://gitlab.gnome.org/GNOME/gcr/merge_requests/387,
-https://gitlab.gnome.org/GNOME/gnome-control-center/issues/285 and
-https://gitlab.gnome.org/GNOME/gnome-control-center/issues/302.
-
-diff --git a/panels/info/cc-info-overview-panel.c b/panels/info/cc-info-overview-panel.c
-index e2276a295b3fd9de01b30fc3369069b5d33ba5b7..ff47c1fef2493bcc7ab34f9e8716d570d8d370ed 100644
---- a/panels/info/cc-info-overview-panel.c
-+++ b/panels/info/cc-info-overview-panel.c
-@@ -36,6 +36,7 @@
- #include <glibtop/mountlist.h>
- #include <glibtop/mem.h>
- #include <glibtop/sysinfo.h>
-+#include <udisks/udisks.h>
- 
- #include <gdk/gdk.h>
- 
-@@ -81,9 +82,7 @@ typedef struct
- 
-   GCancellable   *cancellable;
- 
--  /* Free space */
--  GList          *primary_mounts;
--  guint64         total_bytes;
-+  UDisksClient   *client;
- 
-   GraphicsData   *graphics_data;
- } CcInfoOverviewPanelPrivate;
-@@ -96,8 +95,6 @@ struct _CcInfoOverviewPanel
-  CcInfoOverviewPanelPrivate *priv;
- };
- 
--static void get_primary_disc_info_start (CcInfoOverviewPanel *self);
--
- typedef struct
- {
-   char *major;
-@@ -486,111 +483,51 @@ get_os_type (void)
- }
- 
- static void
--query_done (GFile               *file,
--            GAsyncResult        *res,
--            CcInfoOverviewPanel *self)
-+get_primary_disc_info (CcInfoOverviewPanel *self)
- {
-   CcInfoOverviewPanelPrivate *priv;
--  g_autoptr(GFileInfo) info = NULL;
--  g_autoptr(GError) error = NULL;
--
--  info = g_file_query_filesystem_info_finish (file, res, &error);
--  if (info != NULL)
--    {
--      priv = cc_info_overview_panel_get_instance_private (self);
--      priv->total_bytes += g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_FILESYSTEM_SIZE);
--    }
--  else
--    {
--      if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
--          return;
--      else
--        {
--          g_autofree char *path = NULL;
--          path = g_file_get_path (file);
--          g_warning ("Failed to get filesystem free space for '%s': %s", path, error->message);
--        }
--    }
-+  GDBusObjectManager *manager;
-+  g_autolist(GDBusObject) objects = NULL;
-+  GList *l;
-+  guint64 total_size;
- 
--  /* And onto the next element */
--  get_primary_disc_info_start (self);
--}
--
--static void
--get_primary_disc_info_start (CcInfoOverviewPanel *self)
--{
--  GUnixMountEntry *mount;
--  g_autoptr(GFile) file = NULL;
--  CcInfoOverviewPanelPrivate *priv = cc_info_overview_panel_get_instance_private (self);
-+  priv = cc_info_overview_panel_get_instance_private (self);
-+  total_size = 0;
- 
--  if (priv->primary_mounts == NULL)
-+  if (!priv->client)
-     {
--      g_autofree char *size = NULL;
--
--      size = g_format_size (priv->total_bytes);
--      gtk_label_set_text (GTK_LABEL (priv->disk_label), size);
--
-+      gtk_label_set_text (GTK_LABEL (priv->disk_label), _("Unknown"));
-       return;
-     }
- 
--  mount = priv->primary_mounts->data;
--  priv->primary_mounts = g_list_remove (priv->primary_mounts, mount);
--  file = g_file_new_for_path (g_unix_mount_get_mount_path (mount));
--  g_unix_mount_free (mount);
--
--  g_file_query_filesystem_info_async (file,
--                                      G_FILE_ATTRIBUTE_FILESYSTEM_SIZE,
--                                      0,
--                                      priv->cancellable,
--                                      (GAsyncReadyCallback) query_done,
--                                      self);
--}
--
--static void
--get_primary_disc_info (CcInfoOverviewPanel *self)
--{
--  GList *points;
--  GList *p;
--  GHashTable *hash;
--  CcInfoOverviewPanelPrivate *priv = cc_info_overview_panel_get_instance_private (self);
--
--  hash = g_hash_table_new (g_str_hash, g_str_equal);
--  points = g_unix_mount_points_get (NULL);
--
--  /* If we do not have /etc/fstab around, try /etc/mtab */
--  if (points == NULL)
--    points = g_unix_mounts_get (NULL);
-+  manager = udisks_client_get_object_manager (priv->client);
-+  objects = g_dbus_object_manager_get_objects (manager);
- 
--  for (p = points; p != NULL; p = p->next)
-+  for (l = objects; l != NULL; l = l->next)
-     {
--      GUnixMountEntry *mount = p->data;
--      const char *mount_path;
--      const char *device_path;
--
--      mount_path = g_unix_mount_get_mount_path (mount);
--      device_path = g_unix_mount_get_device_path (mount);
--
--      /* Do not count multiple mounts with same device_path, because it is
--       * probably something like btrfs subvolume. Use only the first one in
--       * order to count the real size. */
--      if (gsd_should_ignore_unix_mount (mount) ||
--          gsd_is_removable_mount (mount) ||
--          g_str_has_prefix (mount_path, "/media/") ||
--          g_str_has_prefix (mount_path, g_get_home_dir ()) ||
--          g_hash_table_lookup (hash, device_path) != NULL)
-+      UDisksDrive *drive;
-+      drive = udisks_object_peek_drive (UDISKS_OBJECT (l->data));
-+
-+      /* Skip removable devices */
-+      if (drive == NULL ||
-+          udisks_drive_get_removable (drive) ||
-+          udisks_drive_get_ejectable (drive))
-         {
--          g_unix_mount_free (mount);
-           continue;
-         }
- 
--      priv->primary_mounts = g_list_prepend (priv->primary_mounts, mount);
--      g_hash_table_insert (hash, (gpointer) device_path, (gpointer) device_path);
-+      total_size += udisks_drive_get_size (drive);
-     }
--  g_list_free (points);
--  g_hash_table_destroy (hash);
- 
--  priv->cancellable = g_cancellable_new ();
--  get_primary_disc_info_start (self);
-+  if (total_size > 0)
-+    {
-+      g_autofree gchar *size = g_format_size (total_size);
-+      gtk_label_set_text (GTK_LABEL (priv->disk_label), size);
-+    }
-+  else
-+    {
-+      gtk_label_set_text (GTK_LABEL (priv->disk_label), _("Unknown"));
-+    }
- }
- 
- static char *
-@@ -852,8 +789,7 @@ cc_info_overview_panel_finalize (GObject *object)
-       g_clear_object (&priv->cancellable);
-     }
- 
--  if (priv->primary_mounts)
--    g_list_free_full (priv->primary_mounts, (GDestroyNotify) g_unix_mount_free);
-+  g_clear_object (&priv->client);
- 
-   g_free (priv->gnome_version);
-   g_free (priv->gnome_date);
-@@ -895,6 +831,7 @@ static void
- cc_info_overview_panel_init (CcInfoOverviewPanel *self)
- {
-   CcInfoOverviewPanelPrivate *priv = cc_info_overview_panel_get_instance_private (self);
-+  g_autoptr(GError) error = NULL;
- 
-   gtk_widget_init_template (GTK_WIDGET (self));
- 
-@@ -907,6 +844,12 @@ cc_info_overview_panel_init (CcInfoOverviewPanel *self)
-   else
-     gtk_widget_destroy (priv->updates_button);
- 
-+  priv->client = udisks_client_new_sync (NULL, &error);
-+
-+  if (error != NULL)
-+      g_warning ("Unable to get UDisks client: %s. Disk information will not be available.",
-+                 error->message);
-+
-   info_overview_panel_setup_overview (self);
-   info_overview_panel_setup_virt (self);
- }
-diff --git a/panels/info/meson.build b/panels/info/meson.build
-index 03742551314f91b60e3ec1caad153ff314b93310..c54e5fdaff3c6ddb59cca8ee9a2bf5a0212bf196 100644
---- a/panels/info/meson.build
-+++ b/panels/info/meson.build
-@@ -61,6 +61,7 @@ sources += gnome.compile_resources(
- 
- deps = common_deps + [
-   polkit_gobject_dep,
-+  dependency('udisks2', version: '>= 2.1.8'),
-   dependency('libgtop-2.0')
- ]
- 
diff --git a/gnu/packages/patches/guile-finalization-crash.patch b/gnu/packages/patches/guile-finalization-crash.patch
new file mode 100644
index 0000000000..098249e49f
--- /dev/null
+++ b/gnu/packages/patches/guile-finalization-crash.patch
@@ -0,0 +1,61 @@
+commit edf5aea7ac852db2356ef36cba4a119eb0c81ea9
+Author: Ludovic Courtès <ludo@gnu.org>
+Date:   Mon Dec 9 14:44:59 2019 +0100
+
+    Fix non-deterministic crash in 'finalization_thread_proc'.
+    
+    Fixes <https://bugs.gnu.org/37757>.
+    Reported by Jesse Gibbons <jgibbons2357@gmail.com>.
+    
+    * libguile/finalizers.c (finalization_thread_proc): Do not enter the
+    "switch (data.byte)" condition when data.n <= 0.
+
+diff --git a/libguile/finalizers.c b/libguile/finalizers.c
+index c5d69e8e3..94a6e6b0a 100644
+--- a/libguile/finalizers.c
++++ b/libguile/finalizers.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2012, 2013, 2014 Free Software Foundation, Inc.
++/* Copyright (C) 2012, 2013, 2014, 2019 Free Software Foundation, Inc.
+  *
+  * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public License
+@@ -211,21 +211,26 @@ finalization_thread_proc (void *unused)
+ 
+       scm_without_guile (read_finalization_pipe_data, &data);
+       
+-      if (data.n <= 0 && data.err != EINTR) 
++      if (data.n <= 0)
+         {
+-          perror ("error in finalization thread");
+-          return NULL;
++          if (data.err != EINTR)
++            {
++              perror ("error in finalization thread");
++              return NULL;
++            }
+         }
+-
+-      switch (data.byte)
++      else
+         {
+-        case 0:
+-          scm_run_finalizers ();
+-          break;
+-        case 1:
+-          return NULL;
+-        default:
+-          abort ();
++          switch (data.byte)
++            {
++            case 0:
++              scm_run_finalizers ();
++              break;
++            case 1:
++              return NULL;
++            default:
++              abort ();
++            }
+         }
+     }
+ }
diff --git a/gnu/packages/patches/mes-remove-store-name.patch b/gnu/packages/patches/mes-remove-store-name.patch
new file mode 100644
index 0000000000..ad055c51f2
--- /dev/null
+++ b/gnu/packages/patches/mes-remove-store-name.patch
@@ -0,0 +1,121 @@
+From d8f361705325cf91fc6c2ec84f281cdcd6bfa8b1 Mon Sep 17 00:00:00 2001
+From: Jan Nieuwenhuizen <janneke@gnu.org>
+Date: Tue, 3 Dec 2019 21:23:24 +0100
+Subject: [PATCH] core: Remove MES_PKGDATADIR.
+
+* configure: Do not add MES_PKGDATADIR to config.h.
+* configure.sh: Likewise.
+* simple.sh: Likewise.
+* src/mes.c (open_boot): Do not use MES_PKGDATADIR; rely on
+MES_PREFIX or cwd.
+---
+ configure    |  1 -
+ configure.sh |  1 -
+ simple.sh    |  2 --
+ src/mes.c    | 13 -------------
+ 4 files changed, 17 deletions(-)
+
+diff --git a/configure b/configure
+index 8edb2ce7b..12d8323f2 100755
+--- a/configure
++++ b/configure
+@@ -666,7 +666,6 @@ See \"Porting GNU Mes\" in the manual, or try --with-courage\n" mes-system)
+ "))
+               (display (string-append "
+ #define MES_VERSION \"" VERSION "\"
+-#define MES_PKGDATADIR \"" pkgdatadir "\"
+ ")))))
+         (substitute (string-append srcdest "build-aux/config.make.in") pairs #:target ".config.make"))
+ 
+diff --git a/configure.sh b/configure.sh
+index 947ddd851..0139cbc36 100755
+--- a/configure.sh
++++ b/configure.sh
+@@ -244,7 +244,6 @@ EOF
+ fi
+ cat >> include/mes/config.h <<EOF
+ #define MES_VERSION "$VERSION"
+-#define MES_PKGDATADIR "$pkgdatadir"
+ EOF
+ 
+ cat <<EOF
+diff --git a/simple.sh b/simple.sh
+index db6950354..b54398a59 100755
+--- a/simple.sh
++++ b/simple.sh
+@@ -33,7 +33,6 @@ mes_bits=64
+ cat > include/mes/config.h <<EOF
+ #define SYSTEM_LIBC 1
+ #define MES_VERSION "git"
+-#define MES_PKGDATADIR "/usr/local/share/mes"
+ EOF
+ 
+ ## Build ##
+@@ -126,7 +125,6 @@ mes_cpu=x86_64
+ cat > include/mes/config.h <<EOF
+ // #define SYSTEM_LIBC 0
+ #define MES_VERSION "git"
+-#define MES_PKGDATADIR "/usr/local/share/mes"
+ EOF
+ 
+ ## Build ##
+diff --git a/src/mes.c b/src/mes.c
+index d9760fad6..a5e7f2b69 100644
+--- a/src/mes.c
++++ b/src/mes.c
+@@ -1775,12 +1775,6 @@ open_boot ()
+   char boot[1024];
+   char file_name[1024];
+   strcpy (g_datadir, ".");
+-  if (g_debug > 1)
+-    {
+-      eputs (";;; pkgdatadir=");
+-      eputs (MES_PKGDATADIR);
+-      eputs ("\n");
+-    }
+   if (getenv ("MES_BOOT"))
+     strcpy (boot, getenv ("MES_BOOT"));
+   else
+@@ -1801,13 +1795,6 @@ open_boot ()
+           __stdin = try_open_boot (file_name, boot, "MES_PREFIX/share/mes");
+         }
+     }
+-  if (__stdin < 0)
+-    {
+-      strcpy (g_datadir, MES_PKGDATADIR);
+-      strcpy (file_name, g_datadir);
+-      strcpy (file_name + strlen (file_name), "/module/mes/");
+-      __stdin = try_open_boot (file_name, boot, "pkgdatadir");
+-    }
+   if (__stdin < 0)
+     {
+       g_datadir[0] = 0;
+-- 
+2.24.0
+
+commit 2f6fab05b3f09df02aba70c3e21d5fedb45dc567
+Author: Jan Nieuwenhuizen <janneke@gnu.org>
+Date:   Sun Nov 24 23:12:29 2019 +0100
+
+    core: Throw instead of segfault on non-existing input file.  WIP.
+    
+    Reported by theruran.
+    
+    * src/posix.c (open_input_file): Call error instead of failing silently.
+
+diff --git a/src/posix.c b/src/posix.c
+index 7ba2e9915..fd753232d 100644
+--- a/src/posix.c
++++ b/src/posix.c
+@@ -188,7 +188,10 @@ current_input_port ()
+ SCM
+ open_input_file (SCM file_name)
+ {
+-  return MAKE_NUMBER (mes_open (CSTRING (file_name), O_RDONLY, 0));
++  int filedes = mes_open (CSTRING (file_name), O_RDONLY, 0);
++  if (filedes == -1)
++    error (cell_symbol_system_error, cons (MAKE_STRING0 ("No such file or directory"), file_name));
++  return MAKE_NUMBER (filedes);
+ }
+ 
+ SCM
diff --git a/gnu/packages/patches/ncompress-fix-softlinks.patch b/gnu/packages/patches/ncompress-fix-softlinks.patch
new file mode 100644
index 0000000000..98752e8e64
--- /dev/null
+++ b/gnu/packages/patches/ncompress-fix-softlinks.patch
@@ -0,0 +1,24 @@
+Patch taken from Debian sid.
+
+Description: Support uncompressing and compressing soft links.
+ Historically, ncompress for Debian has been built using a command line
+ directly in debian/rules.  For 4.2.4.5-1, I simplified by swtching to the
+ upstream Makefile.  However, that caused a regression - the Debian version of
+ ncompress has always successfully handled soft links, but this stopped
+ working.  To revert to the original behavior, I need to remove -DLSTAT from
+ the build options, to be consistent with how the code was previously built.
+Author: Kenneth J. Pronovici <pronovic@debian.org>
+Bug-Debian: http://bugs.debian.org/918836
+Index: ncompress/GNUmakefile
+===================================================================
+--- ncompress.orig/GNUmakefile
++++ ncompress/GNUmakefile
+@@ -9,7 +9,7 @@ distclean: cleanup
+ 
+ Makefile: Makefile.def GNUmakefile
+ 	sed \
+-		-e 's:options= :options= $$(CFLAGS) -DNOFUNCDEF -DUTIME_H -DLSTAT $$(LDFLAGS) :' \
++		-e 's:options= :options= $$(CFLAGS) -DNOFUNCDEF -DUTIME_H $$(LDFLAGS) :' \
+ 		Makefile.def > Makefile
+ 
+ check:
diff --git a/gnu/packages/patches/nss-CVE-2019-11745.patch b/gnu/packages/patches/nss-CVE-2019-11745.patch
new file mode 100644
index 0000000000..ae0eeda3c8
--- /dev/null
+++ b/gnu/packages/patches/nss-CVE-2019-11745.patch
@@ -0,0 +1,24 @@
+Fix CVE-2019-11745 (Out-of-bounds write when passing an output buffer smaller
+than the block size to NSC_EncryptUpdate).
+
+Copied from Debian, equivalent to upstream fix:
+<https://hg.mozilla.org/projects/nss/rev/1e22a0c93afe9f46545560c86caedef9dab6cfda>.
+
+# HG changeset patch
+# User Craig Disselkoen <cdisselk@cs.ucsd.edu>
+# Date 1574189697 25200
+# Node ID 60bca7c6dc6dc44579b9b3e0fb62ca3b82d92eec
+# Parent  64e55c9f658e2a75f0835d00a8a1cdc2f25c74d6
+Bug 1586176 - EncryptUpdate should use maxout not block size. r=franziskus
+
+--- a/nss/lib/softoken/pkcs11c.c
++++ b/nss/lib/softoken/pkcs11c.c
+@@ -1285,7 +1285,7 @@ NSC_EncryptUpdate(CK_SESSION_HANDLE hSes
+             }
+             /* encrypt the current padded data */
+             rv = (*context->update)(context->cipherInfo, pEncryptedPart,
+-                                    &padoutlen, context->blockSize, context->padBuf,
++                                    &padoutlen, maxout, context->padBuf,
+                                     context->blockSize);
+             if (rv != SECSuccess) {
+                 return sftk_MapCryptError(PORT_GetError());
diff --git a/gnu/packages/patches/python-pyatspi-python-37.patch b/gnu/packages/patches/python-pyatspi-python-37.patch
deleted file mode 100644
index caa6aea39e..0000000000
--- a/gnu/packages/patches/python-pyatspi-python-37.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 29a7b929f7f1160b643dc5f5911533887173fcff Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
-Date: Thu, 28 Jun 2018 17:10:33 +0200
-Subject: [PATCH] Rename async to asynchronous, keep backwards comaptibility
-
-async is a keyword in Python 3.7 and keeping it results in SyntaxError.
-
-Fixes https://gitlab.gnome.org/GNOME/pyatspi2/issues/1
----
- pyatspi/registry.py | 35 +++++++++++++++++++++++++++--------
- 1 file changed, 27 insertions(+), 8 deletions(-)
-
-diff --git a/pyatspi/registry.py b/pyatspi/registry.py
-index cb28395..f73ee16 100644
---- a/pyatspi/registry.py
-+++ b/pyatspi/registry.py
-@@ -50,9 +50,9 @@ class Registry(object):
-         reference to the Accessibility.Registry singleton. Doing so is harmless and
-         has no point.
- 
--        @@ivar async: Should event dispatch to local listeners be decoupled from event
--                receiving from the registry?
--        @@type async: boolean
-+        @@ivar asynchronous: Should event dispatch to local listeners be decoupled
-+                from event receiving from the registry?
-+        @@type asynchronous: boolean
-         @@ivar reg: Reference to the real, wrapped registry object
-         @@type reg: Accessibility.Registry
-         @@ivar dev: Reference to the device controller
-@@ -111,25 +111,44 @@ class Registry(object):
- 
-                 self.has_implementations = True
- 
--                self.async = False	# not fully supported yet
-+                self.asynchronous = False	# not fully supported yet
-                 self.started = False
-                 self.event_listeners = dict()
- 
-+        def __getattr__(self, name):
-+            """
-+            For backwards compatibility with old API
-+            """
-+            if name == 'async':
-+                return self.asynchronous
-+            return object.__getattr__(self, name)
-+
-+        def __setattr__(self, name, value):
-+            """
-+            For backwards compatibility with old API
-+            """
-+            if name == 'async':
-+                self.asynchronous = value
-+            object.__setattr__(self, name, value)
-+
-         def _set_default_registry (self):
-                 self._set_registry (MAIN_LOOP_GLIB)
- 
--        def start(self, async=False, gil=True):
-+        def start(self, asynchronous=False, gil=True, **kwargs):
-                 """
-                 Enter the main loop to start receiving and dispatching events.
- 
--                @@param async: Should event dispatch be asynchronous (decoupled) from 
--                        event receiving from the AT-SPI registry?
--                @@type async: boolean
-+                @@param asynchronous: Should event dispatch be asynchronous
-+                        (decoupled) from event receiving from the AT-SPI registry?
-+                @@type asynchronous: boolean
-                 @@param gil: Add an idle callback which releases the Python GIL for a few
-                         milliseconds to allow other threads to run? Necessary if other threads
-                         will be used in this process.
-                 @@type gil: boolean
-                 """
-+                if 'async' in kwargs:
-+                    # support previous API
-+                    asynchronous = kwargs['async']
-                 if not self.has_implementations:
-                         self._set_default_registry ()
-                 self.started = True
--- 
-2.22.0
-
diff --git a/gnu/packages/patches/ruby-safe-yaml-add-require-time.patch b/gnu/packages/patches/ruby-safe-yaml-add-require-time.patch
deleted file mode 100644
index 92e5505985..0000000000
--- a/gnu/packages/patches/ruby-safe-yaml-add-require-time.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-From 9dd1e8d9ad0396a8c9092c2e9f17d498c58e0208 Mon Sep 17 00:00:00 2001
-From: elifoster <elifosterwy@gmail.com>
-Date: Tue, 5 Dec 2017 14:30:13 -0800
-Subject: [PATCH] Fix uninitialized constant DateTime Close #80
-
----
- lib/safe_yaml/parse/date.rb | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/lib/safe_yaml/parse/date.rb b/lib/safe_yaml/parse/date.rb
-index cd3c62a..3a30a8b 100644
---- a/lib/safe_yaml/parse/date.rb
-+++ b/lib/safe_yaml/parse/date.rb
-@@ -1,3 +1,5 @@
-+require 'time'
-+
- module SafeYAML
-   class Parse
-     class Date
diff --git a/gnu/packages/patches/stumpwm-fix-broken-read-one-line.patch b/gnu/packages/patches/stumpwm-fix-broken-read-one-line.patch
deleted file mode 100644
index f8dac61307..0000000000
--- a/gnu/packages/patches/stumpwm-fix-broken-read-one-line.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From a13db62a4da06426cf2eb2376d1a3723b5ee52d5 Mon Sep 17 00:00:00 2001
-From: Vasily Postnicov <shamaz.mazum@gmail.com>
-Date: Fri, 14 Dec 2018 20:01:53 +0300
-Subject: [PATCH] READ-ONE-LINE: Turn COMPLETIONS into a keyword argument
-
-This keeps READ-ONE-line backwards compatible to changes prior
-dae0422811771d179077b9336618f2b19be85b7b. Currently both
-ARGUMENT-POP-OR-READ and ARGUMENT-POP-REST-OR-READ are still being
-called with the previous lambda list. Update the calls to the
-READ-ONE-LINE that used the 'new' lambda list, COMPLETING-READ and
-YES-OR-NO-P.
-
-Closes #538
----
- input.lisp | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/input.lisp b/input.lisp
-index b698a368..7904b35f 100644
---- a/input.lisp
-+++ b/input.lisp
-@@ -307,10 +307,13 @@ passed the substring to complete on and is expected to return a list
- of matches. If require-match argument is non-nil then the input must
- match with an element of the completions."
-   (check-type completions (or list function symbol))
--  (let ((line (read-one-line screen prompt completions :initial-input initial-input :require-match require-match)))
-+  (let ((line (read-one-line screen prompt
-+                             :completions completions
-+                             :initial-input initial-input
-+                             :require-match require-match)))
-     (when line (string-trim " " line))))
- 
--(defun read-one-line (screen prompt completions &key (initial-input "") require-match password)
-+(defun read-one-line (screen prompt &key completions (initial-input "") require-match password)
-   "Read a line of input through stumpwm and return it. Returns nil if the user aborted."
-   (let ((*input-last-command* nil)
-         (*input-completions* completions)
-@@ -842,6 +845,7 @@ user presses 'y'"
- user presses 'yes'"
-   (loop for line = (read-one-line (current-screen)
-                                   (format nil "~a(yes or no) " message)
-+                                  :completions
-                                   '("yes" "no"))
-         until (find line '("yes" "no") :test 'string-equal)
-         do (message "Please answer yes or no")
diff --git a/gnu/packages/patches/totem-meson-compat.patch b/gnu/packages/patches/totem-meson-compat.patch
deleted file mode 100644
index 8557908dd0..0000000000
--- a/gnu/packages/patches/totem-meson-compat.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Fix an error that occurs with Meson 0.50.0 and later:
-"ERROR: Subdir keyword must not be an absolute path".
-
---- a/src/meson.build	2019-03-15 00:10:26.882293850 +0100
-+++ b/src/meson.build	2019-03-15 00:10:54.312197229 +0100
-@@ -82,7 +82,7 @@
- 
- install_headers(
-   headers,
--  subdir: join_paths(totem_includedir, totem_api_path)
-+  install_dir: join_paths(totem_includedir, totem_api_path)
- )
- 
- libtotem_player_sources = files(
diff --git a/gnu/packages/patches/totem-meson-easy-codec.patch b/gnu/packages/patches/totem-meson-easy-codec.patch
deleted file mode 100644
index b97d555c1a..0000000000
--- a/gnu/packages/patches/totem-meson-easy-codec.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-Fix a bug whereby the 'have_easy_codec' would be left undefined
-when passing '-D enable-easy-codec-installation=no'.  Likewise,
-don't rely on GStreamer's plug-in support when it's disabled.
-
---- totem-3.26.0/meson.build	2017-10-11 22:29:44.506280919 +0200
-+++ totem-3.26.0/meson.build	2017-10-11 22:29:50.902252058 +0200
-@@ -203,6 +203,8 @@ if easy_codec_option != 'no'
-   missing_plugins_deps += gst_pbutils_dep
-   config_h.set('ENABLE_MISSING_PLUGIN_INSTALLATION', have_easy_codec,
-                description: 'Whether we can and want to do installation of missing plugins')
-+else
-+  have_easy_codec = false
- endif
- 
- # python support
-
---- totem-3.26.0/src/backend/bacon-video-widget.c	2017-10-11 22:40:52.531217356 +0200
-+++ totem-3.26.0/src/backend/bacon-video-widget.c	2017-10-11 22:45:44.973847231 +0200
-@@ -341,6 +341,22 @@ get_type_name (GType class_type, int typ
-   return value->value_nick;
- }
- 
-+#ifndef ENABLE_MISSING_PLUGIN_INSTALLATION
-+
-+gchar *
-+gst_missing_plugin_message_get_installer_detail (GstMessage *message)
-+{
-+  return NULL;
-+}
-+
-+char *
-+gst_missing_plugin_message_get_description (GstMessage *message)
-+{
-+  return NULL;
-+}
-+
-+#endif
-+
- static gchar **
- bvw_get_missing_plugins_foo (const GList * missing_plugins, MsgToStrFunc func)
- {
-@@ -1654,10 +1670,12 @@ bvw_handle_element_message (BaconVideoWi
-       }
-     }
-     goto done;
-+#ifdef ENABLE_MISSING_PLUGIN_INSTALLATION
-   } else if (gst_is_missing_plugin_message (msg)) {
-     bvw->priv->missing_plugins =
-       g_list_prepend (bvw->priv->missing_plugins, gst_message_ref (msg));
-     goto done;
-+#endif
-   } else if (strcmp (type_name, "not-mounted") == 0) {
-     const GValue *val;
-     GFile *file;
-@@ -6109,7 +6127,9 @@ bacon_video_widget_initable_init (GInita
-   GST_DEBUG ("Initialised %s", version_str);
-   g_free (version_str);
- 
-+#ifdef ENABLE_MISSING_PLUGIN_INSTALLATION
-   gst_pb_utils_init ();
-+#endif
- 
-   /* Instantiate all the fallible plugins */
-   bvw->priv->play = element_make_or_warn ("playbin", "play");
-
diff --git a/gnu/packages/patches/websocketpp-fix-for-boost-1.70.patch b/gnu/packages/patches/websocketpp-fix-for-boost-1.70.patch
new file mode 100644
index 0000000000..ece414a1cb
--- /dev/null
+++ b/gnu/packages/patches/websocketpp-fix-for-boost-1.70.patch
@@ -0,0 +1,103 @@
+This patch for Boost >= 1.70 was made by merging two patches that
+are in the 'develop' branch (c769c92 and f810ca2).
+
+diff -u b/websocketpp/transport/asio/connection.hpp b/websocketpp/transport/asio/connection.hpp
+--- b/websocketpp/transport/asio/connection.hpp
++++ b/websocketpp/transport/asio/connection.hpp
+@@ -311,9 +311,10 @@
+      * needed.
+      */
+     timer_ptr set_timer(long duration, timer_handler callback) {
+-        timer_ptr new_timer = lib::make_shared<lib::asio::steady_timer>(
+-            lib::ref(*m_io_service),
+-            lib::asio::milliseconds(duration)
++        timer_ptr new_timer(
++            new lib::asio::steady_timer(
++                *m_io_service,
++                lib::asio::milliseconds(duration))
+         );
+ 
+         if (config::enable_multithreading) {
+@@ -461,8 +462,7 @@
+         m_io_service = io_service;
+ 
+         if (config::enable_multithreading) {
+-            m_strand = lib::make_shared<lib::asio::io_service::strand>(
+-                lib::ref(*io_service));
++            m_strand.reset(new lib::asio::io_service::strand(*io_service));
+         }
+ 
+         lib::error_code ec = socket_con_type::init_asio(io_service, m_strand,
+diff -u b/websocketpp/transport/asio/endpoint.hpp b/websocketpp/transport/asio/endpoint.hpp
+--- b/websocketpp/transport/asio/endpoint.hpp
++++ b/websocketpp/transport/asio/endpoint.hpp
+@@ -195,8 +195,7 @@
+ 
+         m_io_service = ptr;
+         m_external_io_service = true;
+-        m_acceptor = lib::make_shared<lib::asio::ip::tcp::acceptor>(
+-            lib::ref(*m_io_service));
++        m_acceptor.reset(new lib::asio::ip::tcp::acceptor(*m_io_service));
+ 
+         m_state = READY;
+         ec = lib::error_code();
+@@ -688,9 +687,7 @@
+      * @since 0.3.0
+      */
+     void start_perpetual() {
+-        m_work = lib::make_shared<lib::asio::io_service::work>(
+-            lib::ref(*m_io_service)
+-        );
++        m_work.reset(new lib::asio::io_service::work(*m_io_service));
+     }
+ 
+     /// Clears the endpoint's perpetual flag, allowing it to exit when empty
+@@ -854,8 +851,7 @@
+ 
+         // Create a resolver
+         if (!m_resolver) {
+-            m_resolver = lib::make_shared<lib::asio::ip::tcp::resolver>(
+-                lib::ref(*m_io_service));
++            m_resolver.reset(new lib::asio::ip::tcp::resolver(*m_io_service));
+         }
+ 
+         tcon->set_uri(u);
+unchanged:
+--- a/websocketpp/transport/asio/security/none.hpp
++++ b/websocketpp/transport/asio/security/none.hpp
+@@ -168,8 +168,7 @@ protected:
+             return socket::make_error_code(socket::error::invalid_state);
+         }
+ 
+-        m_socket = lib::make_shared<lib::asio::ip::tcp::socket>(
+-            lib::ref(*service));
++        m_socket.reset(new lib::asio::ip::tcp::socket(*service));
+ 
+         if (m_socket_init_handler) {
+             m_socket_init_handler(m_hdl, *m_socket);
+unchanged:
+--- a/websocketpp/transport/asio/security/tls.hpp
++++ b/websocketpp/transport/asio/security/tls.hpp
+@@ -193,8 +193,7 @@ protected:
+         if (!m_context) {
+             return socket::make_error_code(socket::error::invalid_tls_context);
+         }
+-        m_socket = lib::make_shared<socket_type>(
+-            _WEBSOCKETPP_REF(*service),lib::ref(*m_context));
++        m_socket.reset(new socket_type(*service, *m_context));
+ 
+         if (m_socket_init_handler) {
+             m_socket_init_handler(m_hdl, get_socket());
+only in patch2:
+unchanged:
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -202,7 +202,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES)
+ 	endif ()
+ 
+     if (NOT Boost_USE_STATIC_LIBS)
+-        add_definitions (/DBOOST_TEST_DYN_LINK)
++        add_definitions (-DBOOST_TEST_DYN_LINK)
+     endif ()
+ 
+     set (Boost_FIND_REQUIRED TRUE)