summaryrefslogtreecommitdiff
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-patches-c9e676d0b141f510c19e26edb1e6fad079b9b502.tar
guix-patches-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)