diff --git a/SOURCES/4155.patch b/SOURCES/4155.patch new file mode 100644 index 0000000..f2b811f --- /dev/null +++ b/SOURCES/4155.patch @@ -0,0 +1,83 @@ +From d9fec76b594fccc6eda3ce04a74beae1c8b8c1d2 Mon Sep 17 00:00:00 2001 +From: Ondrej Holy +Date: Fri, 12 Jul 2024 11:14:10 +0200 +Subject: [PATCH] gfile: Add support for x-gvfs-trash mount option + +Currently, the trash functionality is disabled for system internal mounts. +That might be a problem in some cases. The `x-gvfs-notrash` mount option +allows disabling the trash functionality for certain mounts. Let's add +support for the `x-gvfs-trash` mount option to allow the opposite. + +See: https://issues.redhat.com/browse/RHEL-46828 +--- + gio/gfile.c | 7 +++++-- + gio/glocalfile.c | 22 +++++++++++++--------- + 2 files changed, 18 insertions(+), 11 deletions(-) + +diff --git a/gio/gfile.c b/gio/gfile.c +index 4f9b9c6750..5ac73c03e8 100644 +--- a/gio/gfile.c ++++ b/gio/gfile.c +@@ -4744,10 +4744,13 @@ g_file_delete_finish (GFile *file, + * + * Sends @file to the "Trashcan", if possible. This is similar to + * deleting it, but the user can recover it before emptying the trashcan. +- * Not all file systems support trashing, so this call can return the ++ * Trashing is disabled for system mounts by default (see ++ * g_unix_mount_is_system_internal()), so this call can return the + * %G_IO_ERROR_NOT_SUPPORTED error. Since GLib 2.66, the `x-gvfs-notrash` unix +- * mount option can be used to disable g_file_trash() support for certain ++ * mount option can be used to disable g_file_trash() support for particular + * mounts, the %G_IO_ERROR_NOT_SUPPORTED error will be returned in that case. ++ * Since 2.82, the `x-gvfs-trash` unix mount option can be used to enable ++ * g_file_trash() support for particular system mounts. + * + * If @cancellable is not %NULL, then the operation can be cancelled by + * triggering the cancellable object from another thread. If the operation +diff --git a/gio/glocalfile.c b/gio/glocalfile.c +index 7b70c614c6..ac918d25e3 100644 +--- a/gio/glocalfile.c ++++ b/gio/glocalfile.c +@@ -1807,10 +1807,6 @@ ignore_trash_mount (GUnixMountEntry *mount) + { + GUnixMountPoint *mount_point = NULL; + const gchar *mount_options; +- gboolean retval = TRUE; +- +- if (g_unix_mount_is_system_internal (mount)) +- return TRUE; + + mount_options = g_unix_mount_get_options (mount); + if (mount_options == NULL) +@@ -1819,15 +1815,23 @@ ignore_trash_mount (GUnixMountEntry *mount) + NULL); + if (mount_point != NULL) + mount_options = g_unix_mount_point_get_options (mount_point); ++ ++ g_clear_pointer (&mount_point, g_unix_mount_point_free); + } + +- if (mount_options == NULL || +- strstr (mount_options, "x-gvfs-notrash") == NULL) +- retval = FALSE; ++ if (mount_options != NULL) ++ { ++ if (strstr (mount_options, "x-gvfs-trash") != NULL) ++ return FALSE; ++ ++ if (strstr (mount_options, "x-gvfs-notrash") != NULL) ++ return TRUE; ++ } + +- g_clear_pointer (&mount_point, g_unix_mount_point_free); ++ if (g_unix_mount_is_system_internal (mount)) ++ return TRUE; + +- return retval; ++ return FALSE; + } + + static gboolean +-- +GitLab + diff --git a/SPECS/glib2.spec b/SPECS/glib2.spec index 971000a..f8c7941 100644 --- a/SPECS/glib2.spec +++ b/SPECS/glib2.spec @@ -1,6 +1,6 @@ Name: glib2 Version: 2.68.4 -Release: 15%{?dist} +Release: 16%{?dist} Summary: A library of handy utility functions License: LGPLv2+ @@ -60,6 +60,9 @@ Patch: 3845.patch # https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4057 Patch: 4038.patch +# https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4155 +Patch: 4155.patch + BuildRequires: chrpath BuildRequires: gcc BuildRequires: gcc-c++ @@ -275,6 +278,10 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : %{_datadir}/installed-tests %changelog +* Thu Sep 26 2024 Ondrej Holy - 2.68.4-16 +- Add support for x-gvfs-trash mount option +- Resolves: RHEL-52360 + * Mon May 13 2024 Michael Catanzaro - 2.68.4-15 - Fix CVE-2024-34397, signal subscription vulnerabilities - Resolves: RHEL-35775