summaryrefslogtreecommitdiff
path: root/gnome-base/nautilus/files/3.30.5-thumbnailer-updates.patch
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2019-03-19 11:37:34 +0000
committerV3n3RiX <venerix@redcorelinux.org>2019-03-19 11:37:34 +0000
commitb7b97785ebbb2f11d24d14dab8b81ed274f4ce6a (patch)
tree9fd110f9fc996e8a4213eeda994a8c112491b86d /gnome-base/nautilus/files/3.30.5-thumbnailer-updates.patch
parent066d27181e9a797ad9f8fc43b49fc9a10ff2f707 (diff)
gentoo resync : 19.03.2019
Diffstat (limited to 'gnome-base/nautilus/files/3.30.5-thumbnailer-updates.patch')
-rw-r--r--gnome-base/nautilus/files/3.30.5-thumbnailer-updates.patch113
1 files changed, 113 insertions, 0 deletions
diff --git a/gnome-base/nautilus/files/3.30.5-thumbnailer-updates.patch b/gnome-base/nautilus/files/3.30.5-thumbnailer-updates.patch
new file mode 100644
index 000000000000..84d0bfc1d5af
--- /dev/null
+++ b/gnome-base/nautilus/files/3.30.5-thumbnailer-updates.patch
@@ -0,0 +1,113 @@
+From 2e36d4bacc3cffebe62161adc375bb9ec64099f5 Mon Sep 17 00:00:00 2001
+From: Timothy OBrien <obrien.timothy.a@gmail.com>
+Date: Fri, 18 Jan 2019 19:42:46 +1100
+Subject: [PATCH 1/2] gnome-desktop: update to latest version of upstream
+ thumbnail code
+
+The thumbnail code in gnome-desktop had recent bug fixes that needed to be carried across to the Nautilus implementation. Issues for the three related upstream fixes can be found at: https://gitlab.gnome.org/GNOME/gnome-desktop/issues/4 | https://gitlab.gnome.org/GNOME/gnome-desktop/issues/89 | https://gitlab.gnome.org/GNOME/gnome-desktop/issues/87
+
+This patch includes the latest thumbnail code from the gnome-desktop repository to include the fixes.
+
+Fixes #836
+
+(cherry picked from commit e88b2dc8783833c4263ad5d84567a67dbc7bc6de)
+---
+ .../gnome-desktop-thumbnail-script.c | 54 +++++++++++++++++--
+ src/gnome-desktop/gnome-desktop-thumbnail.c | 4 +-
+ 2 files changed, 52 insertions(+), 6 deletions(-)
+
+diff --git a/src/gnome-desktop/gnome-desktop-thumbnail-script.c b/src/gnome-desktop/gnome-desktop-thumbnail-script.c
+index 14e2fed3a..525766388 100644
+--- a/src/gnome-desktop/gnome-desktop-thumbnail-script.c
++++ b/src/gnome-desktop/gnome-desktop-thumbnail-script.c
+@@ -506,22 +506,68 @@ setup_seccomp (GPtrArray *argv_array,
+ #endif
+
+ #ifdef HAVE_BWRAP
++static gboolean
++path_is_usrmerged (const char *dir)
++{
++ /* does /dir point to /usr/dir? */
++ g_autofree char *target = NULL;
++ GStatBuf stat_buf_src, stat_buf_target;
++
++ if (g_stat (dir, &stat_buf_src) < 0)
++ return FALSE;
++
++ target = g_strdup_printf ("/usr/%s", dir);
++
++ if (g_stat (target, &stat_buf_target) < 0)
++ return FALSE;
++
++ return (stat_buf_src.st_dev == stat_buf_target.st_dev) &&
++ (stat_buf_src.st_ino == stat_buf_target.st_ino);
++}
++
+ static gboolean
+ add_bwrap (GPtrArray *array,
+ ScriptExec *script)
+ {
++ const char * const usrmerged_dirs[] = { "bin", "lib64", "lib", "sbin" };
++ int i;
++
+ g_return_val_if_fail (script->outdir != NULL, FALSE);
+ g_return_val_if_fail (script->s_infile != NULL, FALSE);
+
+ add_args (array,
+ "bwrap",
+ "--ro-bind", "/usr", "/usr",
+- "--ro-bind", "/lib", "/lib",
+- "--ro-bind", "/lib64", "/lib64",
++ "--ro-bind", "/etc/ld.so.cache", "/etc/ld.so.cache",
++ NULL);
++
++ /* These directories might be symlinks into /usr/... */
++ for (i = 0; i < G_N_ELEMENTS (usrmerged_dirs); i++)
++ {
++ g_autofree char *absolute_dir = g_strdup_printf ("/%s", usrmerged_dirs[i]);
++
++ if (!g_file_test (absolute_dir, G_FILE_TEST_EXISTS))
++ continue;
++
++ if (path_is_usrmerged (absolute_dir))
++ {
++ g_autofree char *symlink_target = g_strdup_printf ("/usr/%s", absolute_dir);
++
++ add_args (array,
++ "--symlink", symlink_target, absolute_dir,
++ NULL);
++ }
++ else
++ {
++ add_args (array,
++ "--ro-bind", absolute_dir, absolute_dir,
++ NULL);
++ }
++ }
++
++ add_args (array,
+ "--proc", "/proc",
+ "--dev", "/dev",
+- "--symlink", "usr/bin", "/bin",
+- "--symlink", "usr/sbin", "/sbin",
+ "--chdir", "/",
+ "--setenv", "GIO_USE_VFS", "local",
+ "--unshare-all",
+diff --git a/src/gnome-desktop/gnome-desktop-thumbnail.c b/src/gnome-desktop/gnome-desktop-thumbnail.c
+index b31bad58d..f48fd461a 100644
+--- a/src/gnome-desktop/gnome-desktop-thumbnail.c
++++ b/src/gnome-desktop/gnome-desktop-thumbnail.c
+@@ -967,8 +967,8 @@ get_preview_thumbnail (const char *uri,
+ if (file_info == NULL)
+ return NULL;
+
+- object = g_file_info_get_attribute_object (file_info,
+- G_FILE_ATTRIBUTE_PREVIEW_ICON);
++ object = g_object_ref (g_file_info_get_attribute_object (file_info,
++ G_FILE_ATTRIBUTE_PREVIEW_ICON));
+ g_object_unref (file_info);
+
+ if (!object)
+--
+2.17.0
+