From f9f897b59c5f423a6453f3d10c50724644659df6 Mon Sep 17 00:00:00 2001 From: David Zeuthen Date: Wed, 16 Apr 2008 06:41:50 +0000 Subject: [PATCH] - Only show mounts in /media and inside $HOME (#442189) --- gvfs-0.2.2-only-show-allowed-mounts.patch | 78 +++++++++++++++++++++++ gvfs.spec | 7 +- 2 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 gvfs-0.2.2-only-show-allowed-mounts.patch diff --git a/gvfs-0.2.2-only-show-allowed-mounts.patch b/gvfs-0.2.2-only-show-allowed-mounts.patch new file mode 100644 index 0000000..66778d8 --- /dev/null +++ b/gvfs-0.2.2-only-show-allowed-mounts.patch @@ -0,0 +1,78 @@ +Index: hal/ghalvolumemonitor.c +=================================================================== +--- hal/ghalvolumemonitor.c (revision 1736) ++++ hal/ghalvolumemonitor.c (working copy) +@@ -845,6 +845,32 @@ + } + + static gboolean ++should_mount_be_ignored (HalPool *pool, HalDevice *d) ++{ ++ const char *device_mount_point; ++ ++ device_mount_point = hal_device_get_property_string (d, "volume.mount_point"); ++ if (device_mount_point != NULL && strlen (device_mount_point) > 0) ++ { ++ GUnixMountEntry *mount_entry; ++ ++ /*g_warning ("device_mount_point = '%s'", device_mount_point);*/ ++ ++ mount_entry = g_unix_mount_at (device_mount_point, NULL); ++ if (mount_entry != NULL) { ++ if (!g_unix_mount_guess_should_display (mount_entry)) ++ { ++ g_unix_mount_free (mount_entry); ++ return TRUE; ++ } ++ g_unix_mount_free (mount_entry); ++ } ++ } ++ ++ return FALSE; ++} ++ ++static gboolean + should_volume_be_ignored (HalPool *pool, HalDevice *d, GList *fstab_mount_points) + { + gboolean volume_ignore; +@@ -893,6 +919,9 @@ + if (mount_point != NULL && !_g_unix_mount_point_guess_should_display (mount_point)) + return TRUE; + ++ if (hal_device_get_property_bool (d, "volume.is_mounted")) ++ return should_mount_be_ignored (pool, d); ++ + return FALSE; + } + +@@ -1207,13 +1236,29 @@ + { + GList *new_mounts; + GList *removed, *added; +- GList *l; ++ GList *l, *ll; + GHalMount *mount; + GHalVolume *volume; + const char *device_path; + const char *mount_path; + + new_mounts = g_unix_mounts_get (NULL); ++ ++ /* remove mounts we want to ignore - we do it here so we get to reevaluate ++ * on the next update whether they should still be ignored ++ */ ++ for (l = new_mounts; l != NULL; l = ll) ++ { ++ GUnixMountEntry *mount_entry = l->data; ++ ll = l->next; ++ ++ /* keep in sync with should_mount_be_ignored() */ ++ if (!g_unix_mount_guess_should_display (mount_entry)) ++ { ++ g_unix_mount_free (mount_entry); ++ new_mounts = g_list_delete_link (new_mounts, l); ++ } ++ } + + new_mounts = g_list_sort (new_mounts, (GCompareFunc) g_unix_mount_compare); + diff --git a/gvfs.spec b/gvfs.spec index 0b22e31..42ef111 100644 --- a/gvfs.spec +++ b/gvfs.spec @@ -1,7 +1,7 @@ Summary: Backends for the gio framework in GLib Name: gvfs Version: 0.2.3 -Release: 3%{?dist} +Release: 4%{?dist} License: LGPLv2+ Group: System Environment/Libraries URL: http://www.gtk.org @@ -36,6 +36,7 @@ BuildRequires: libtool Patch1: gvfs-0.2.2-archive-integration.patch Patch2: gvfs-64clean.patch Patch3: regexxer-crash.patch +Patch4: gvfs-0.2.2-only-show-allowed-mounts.patch %description The gvfs package provides backend implementations for the gio @@ -67,6 +68,7 @@ to access the gvfs filesystems. %patch1 -p0 -b .archive-integration %patch2 -p1 -b .64clean %patch3 -p1 -b .regexxer-crash +%patch4 -p0 -b .only-show-allowed-mounts %build @@ -180,6 +182,9 @@ update-desktop-database &> /dev/null ||: %changelog +* Wed Apr 16 2008 David Zeuthen - 0.2.3-4 +- Only show mounts in /media and inside $HOME (#442189) + * Mon Apr 14 2008 Matthias Clasen - 0.2.3-3 - Fix a bug that causes application crashes (#441084)