From 5455e5f26ac31258f47ff0c2be4b8287cdf66db3 Mon Sep 17 00:00:00 2001 From: David Zeuthen Date: Fri, 10 Apr 2009 01:24:24 +0000 Subject: [PATCH] - Clean up gdu patches and bump BR for gdu to 0.3 - Avoiding showing volume for ignored mounts (#495033) --- ...u-0001-Bug-573826-gdu-volume-monitor.patch | 307 ++++++++++++------ ...-we-determine-if-a-volume-is-ignored.patch | 30 +- ...ng-volumes-on-virtual-and-unknown-bu.patch | 32 +- gdu-0004-Remove-debug-spew.patch | 27 ++ ...me-if-the-device-is-mounted-and-igno.patch | 31 ++ ...-all-volumes-of-the-drive-are-ignore.patch | 41 +++ ...llow-eject-even-on-non-ejectable-vol.patch | 49 +++ ...-1.2.0-fix-daemon-mount-op-bgo575728.patch | 113 ------- gvfs.spec | 42 ++- 9 files changed, 430 insertions(+), 242 deletions(-) rename gvfs-gdu-volume-monitor-3.patch => gdu-0001-Bug-573826-gdu-volume-monitor.patch (96%) rename gvfs-1.1.7-gdu-monitor-empty-drives.patch => gdu-0002-Fix-how-we-determine-if-a-volume-is-ignored.patch (63%) rename gvfs-1.2.1-only-mount-the-metal.patch => gdu-0003-Avoid-automounting-volumes-on-virtual-and-unknown-bu.patch (67%) create mode 100644 gdu-0004-Remove-debug-spew.patch create mode 100644 gdu-0005-Don-t-add-a-volume-if-the-device-is-mounted-and-igno.patch create mode 100644 gdu-0006-Ignore-drives-if-all-volumes-of-the-drive-are-ignore.patch create mode 100644 gdu-0007-Bug-576587-allow-eject-even-on-non-ejectable-vol.patch delete mode 100644 gvfs-1.2.0-fix-daemon-mount-op-bgo575728.patch diff --git a/gvfs-gdu-volume-monitor-3.patch b/gdu-0001-Bug-573826-gdu-volume-monitor.patch similarity index 96% rename from gvfs-gdu-volume-monitor-3.patch rename to gdu-0001-Bug-573826-gdu-volume-monitor.patch index 99f9275..6731f35 100644 --- a/gvfs-gdu-volume-monitor-3.patch +++ b/gdu-0001-Bug-573826-gdu-volume-monitor.patch @@ -1,8 +1,55 @@ -Index: configure.ac -=================================================================== ---- configure.ac (revision 2286) -+++ configure.ac (working copy) -@@ -198,6 +198,31 @@ +From 9d51c0de20170731db25422e858fee0e44b1dbd1 Mon Sep 17 00:00:00 2001 +From: David Zeuthen +Date: Thu, 9 Apr 2009 19:01:18 -0400 +Subject: [PATCH 1/7] =?utf-8?q?Bug=20573826=20=E2=80=93=20gdu=20volume=20monitor?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf-8 +Content-Transfer-Encoding: 8bit + +Add the GNOME Disk Utility based volume monitor, see + + http://bugzilla.gnome.org/show_bug.cgi?id=573826 + http://mail.gnome.org/archives/gvfs-list/2009-March/msg00002.html + +for details. +--- + configure.ac | 28 +- + monitor/Makefile.am | 4 + + monitor/gdu/Makefile.am | 53 + + monitor/gdu/gdu-volume-monitor-daemon.c | 46 + + monitor/gdu/gdu.monitor | 5 + + monitor/gdu/ggdudrive.c | 691 ++++++++++ + monitor/gdu/ggdudrive.h | 69 + + monitor/gdu/ggdumount.c | 958 +++++++++++++ + monitor/gdu/ggdumount.h | 64 + + monitor/gdu/ggduvolume.c | 1408 +++++++++++++++++++ + monitor/gdu/ggduvolume.h | 78 ++ + monitor/gdu/ggduvolumemonitor.c | 1432 ++++++++++++++++++++ + monitor/gdu/ggduvolumemonitor.h | 60 + + .../org.gtk.Private.GduVolumeMonitor.service.in | 3 + + monitor/gdu/polkit.c | 137 ++ + monitor/gdu/polkit.h | 44 + + 16 files changed, 5079 insertions(+), 1 deletions(-) + create mode 100644 monitor/gdu/Makefile.am + create mode 100644 monitor/gdu/gdu-volume-monitor-daemon.c + create mode 100644 monitor/gdu/gdu.monitor + create mode 100644 monitor/gdu/ggdudrive.c + create mode 100644 monitor/gdu/ggdudrive.h + create mode 100644 monitor/gdu/ggdumount.c + create mode 100644 monitor/gdu/ggdumount.h + create mode 100644 monitor/gdu/ggduvolume.c + create mode 100644 monitor/gdu/ggduvolume.h + create mode 100644 monitor/gdu/ggduvolumemonitor.c + create mode 100644 monitor/gdu/ggduvolumemonitor.h + create mode 100644 monitor/gdu/org.gtk.Private.GduVolumeMonitor.service.in + create mode 100644 monitor/gdu/polkit.c + create mode 100644 monitor/gdu/polkit.h + +diff --git a/configure.ac b/configure.ac +index 311127e..895309b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -198,6 +198,30 @@ AC_SUBST(GCONF_CFLAGS) AM_CONDITIONAL(USE_GCONF, [test "$msg_gconf" = "yes"]) @@ -10,14 +57,13 @@ Index: configure.ac +dnl *** Check for gnome-disk-utility *** +dnl ************************************ + -+dnl TODO: when there is a more stable version of gdu available, turn this on by default -+AC_ARG_ENABLE(gdu, [ --enable-gdu build with gdu support]) ++AC_ARG_ENABLE(gdu, [ --disable-gdu build without GDU volume monitor]) +msg_gdu=no +GDU_LIBS= +GDU_CFLAGS= -+GDU_REQUIRED=0.2 ++GDU_REQUIRED=0.3 + -+if test "x$enable_gdu" = "xyes"; then ++if test "x$enable_gdu" != "xno"; then + PKG_CHECK_EXISTS([gdu >= $GDU_REQUIRED], msg_gdu=yes) + + if test "x$msg_gdu" == "xyes"; then @@ -34,7 +80,7 @@ Index: configure.ac dnl ********************** dnl *** Check for HAL *** dnl ********************** -@@ -558,6 +583,7 @@ +@@ -558,6 +582,7 @@ daemon/Makefile monitor/Makefile monitor/proxy/Makefile monitor/hal/Makefile @@ -42,7 +88,7 @@ Index: configure.ac monitor/gphoto2/Makefile gconf/Makefile programs/Makefile -@@ -579,7 +605,8 @@ +@@ -579,7 +604,8 @@ echo " archive support: $msg_archive GConf support: $msg_gconf DNS-SD support: $msg_avahi @@ -52,11 +98,11 @@ Index: configure.ac GNOME Keyring support: $msg_keyring Bash-completion support: $msg_bash_completion " -Index: monitor/Makefile.am -=================================================================== ---- monitor/Makefile.am (revision 2286) -+++ monitor/Makefile.am (working copy) -@@ -5,6 +5,10 @@ +diff --git a/monitor/Makefile.am b/monitor/Makefile.am +index d4197d5..f68423e 100644 +--- a/monitor/Makefile.am ++++ b/monitor/Makefile.am +@@ -5,6 +5,10 @@ if USE_HAL SUBDIRS += hal endif @@ -67,8 +113,70 @@ Index: monitor/Makefile.am if USE_GPHOTO2 SUBDIRS += gphoto2 endif ---- /dev/null 2009-03-04 16:07:30.099029290 -0500 -+++ monitor/gdu/gdu-volume-monitor-daemon.c 2009-03-01 23:47:15.000000000 -0500 +diff --git a/monitor/gdu/Makefile.am b/monitor/gdu/Makefile.am +new file mode 100644 +index 0000000..10b80f3 +--- /dev/null ++++ b/monitor/gdu/Makefile.am +@@ -0,0 +1,53 @@ ++ ++NULL = ++ ++libexec_PROGRAMS = gvfs-gdu-volume-monitor ++ ++ ++gvfs_gdu_volume_monitor_SOURCES = \ ++ gdu-volume-monitor-daemon.c \ ++ ggdudrive.c ggdudrive.h \ ++ ggduvolume.c ggduvolume.h \ ++ ggdumount.c ggdumount.h \ ++ ggduvolumemonitor.c ggduvolumemonitor.h \ ++ polkit.c polkit.h \ ++ $(NULL) ++ ++gvfs_gdu_volume_monitor_CFLAGS = \ ++ -DG_LOG_DOMAIN=\"GVFS-Gdu\" \ ++ -I$(top_srcdir)/common \ ++ -I$(top_srcdir)/monitor/proxy \ ++ $(GLIB_CFLAGS) \ ++ $(GDU_CFLAGS) \ ++ $(DBUS_CFLAGS) \ ++ -DGIO_MODULE_DIR=\"$(GIO_MODULE_DIR)\" \ ++ -DGVFS_LOCALEDIR=\""$(localedir)"\" \ ++ -DG_DISABLE_DEPRECATED \ ++ -DGDU_API_IS_SUBJECT_TO_CHANGE \ ++ $(NULL) ++ ++gvfs_gdu_volume_monitor_LDFLAGS = \ ++ $(NULL) ++ ++gvfs_gdu_volume_monitor_LDADD = \ ++ $(GLIB_LIBS) \ ++ $(GDU_LIBS) \ ++ $(DBUS_LIBS) \ ++ $(top_builddir)/common/libgvfscommon.la \ ++ $(top_builddir)/monitor/proxy/libgvfsproxyvolumemonitordaemon-noin.la \ ++ $(NULL) ++ ++remote_volume_monitorsdir = $(datadir)/gvfs/remote-volume-monitors ++remote_volume_monitors_DATA = gdu.monitor ++ ++servicedir = $(datadir)/dbus-1/services ++service_in_files = org.gtk.Private.GduVolumeMonitor.service.in ++service_DATA = $(service_in_files:.service.in=.service) ++ ++$(service_DATA): $(service_in_files) Makefile ++ @sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@ ++ ++clean-local: ++ rm -f *~ *.loT $(BUILT_SOURCES) $(service_DATA) ++ ++EXTRA_DIST = $(service_in_files) gdu.monitor +diff --git a/monitor/gdu/gdu-volume-monitor-daemon.c b/monitor/gdu/gdu-volume-monitor-daemon.c +new file mode 100644 +index 0000000..cdb4f84 +--- /dev/null ++++ b/monitor/gdu/gdu-volume-monitor-daemon.c @@ -0,0 +1,46 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* gvfs - extensions for gio @@ -116,8 +224,22 @@ Index: monitor/Makefile.am + "org.gtk.Private.GduVolumeMonitor", + G_TYPE_GDU_VOLUME_MONITOR); +} ---- /dev/null 2009-03-04 16:07:30.099029290 -0500 -+++ monitor/gdu/ggdudrive.c 2009-03-01 23:48:33.000000000 -0500 +diff --git a/monitor/gdu/gdu.monitor b/monitor/gdu/gdu.monitor +new file mode 100644 +index 0000000..9a97695 +--- /dev/null ++++ b/monitor/gdu/gdu.monitor +@@ -0,0 +1,5 @@ ++[RemoteVolumeMonitor] ++Name=GProxyVolumeMonitorGdu ++DBusName=org.gtk.Private.GduVolumeMonitor ++IsNative=true ++NativePriority=3 +diff --git a/monitor/gdu/ggdudrive.c b/monitor/gdu/ggdudrive.c +new file mode 100644 +index 0000000..257a113 +--- /dev/null ++++ b/monitor/gdu/ggdudrive.c @@ -0,0 +1,691 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* gvfs - extensions for gio @@ -810,8 +932,11 @@ Index: monitor/Makefile.am +{ + return drive->presentable; +} ---- /dev/null 2009-03-04 16:07:30.099029290 -0500 -+++ monitor/gdu/ggdudrive.h 2009-03-01 23:48:26.000000000 -0500 +diff --git a/monitor/gdu/ggdudrive.h b/monitor/gdu/ggdudrive.h +new file mode 100644 +index 0000000..e182c29 +--- /dev/null ++++ b/monitor/gdu/ggdudrive.h @@ -0,0 +1,69 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* gvfs - extensions for gio @@ -882,8 +1007,11 @@ Index: monitor/Makefile.am +G_END_DECLS + +#endif /* __G_GDU_DRIVE_H__ */ ---- /dev/null 2009-03-04 16:07:30.099029290 -0500 -+++ monitor/gdu/ggdumount.c 2009-03-02 14:18:23.000000000 -0500 +diff --git a/monitor/gdu/ggdumount.c b/monitor/gdu/ggdumount.c +new file mode 100644 +index 0000000..27c22d9 +--- /dev/null ++++ b/monitor/gdu/ggdumount.c @@ -0,0 +1,958 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* gvfs - extensions for gio @@ -1843,8 +1971,11 @@ Index: monitor/Makefile.am +{ + return mount->volume == volume; +} ---- /dev/null 2009-03-04 16:07:30.099029290 -0500 -+++ monitor/gdu/ggdumount.h 2009-03-01 23:48:16.000000000 -0500 +diff --git a/monitor/gdu/ggdumount.h b/monitor/gdu/ggdumount.h +new file mode 100644 +index 0000000..62a19d8 +--- /dev/null ++++ b/monitor/gdu/ggdumount.h @@ -0,0 +1,64 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* gvfs - extensions for gio @@ -1910,8 +2041,11 @@ Index: monitor/Makefile.am +G_END_DECLS + +#endif /* __G_GDU_MOUNT_H__ */ ---- /dev/null 2009-03-04 16:07:30.099029290 -0500 -+++ monitor/gdu/ggduvolume.c 2009-03-04 16:19:41.000000000 -0500 +diff --git a/monitor/gdu/ggduvolume.c b/monitor/gdu/ggduvolume.c +new file mode 100644 +index 0000000..b540325 +--- /dev/null ++++ b/monitor/gdu/ggduvolume.c @@ -0,0 +1,1408 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* gvfs - extensions for gio @@ -3321,8 +3455,11 @@ Index: monitor/Makefile.am + + return GDU_PRESENTABLE (ret); +} ---- /dev/null 2009-03-04 16:07:30.099029290 -0500 -+++ monitor/gdu/ggduvolume.h 2009-03-01 23:48:05.000000000 -0500 +diff --git a/monitor/gdu/ggduvolume.h b/monitor/gdu/ggduvolume.h +new file mode 100644 +index 0000000..8fd7358 +--- /dev/null ++++ b/monitor/gdu/ggduvolume.h @@ -0,0 +1,78 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* gvfs - extensions for gio @@ -3402,8 +3539,11 @@ Index: monitor/Makefile.am +G_END_DECLS + +#endif /* __G_GDU_VOLUME_H__ */ ---- /dev/null 2009-03-04 16:07:30.099029290 -0500 -+++ monitor/gdu/ggduvolumemonitor.c 2009-03-04 16:29:02.000000000 -0500 +diff --git a/monitor/gdu/ggduvolumemonitor.c b/monitor/gdu/ggduvolumemonitor.c +new file mode 100644 +index 0000000..32604d0 +--- /dev/null ++++ b/monitor/gdu/ggduvolumemonitor.c @@ -0,0 +1,1432 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* gvfs - extensions for gio @@ -4837,8 +4977,11 @@ Index: monitor/Makefile.am + + g_list_free (cur_discs); +} ---- /dev/null 2009-03-04 16:07:30.099029290 -0500 -+++ monitor/gdu/ggduvolumemonitor.h 2009-03-01 23:49:48.000000000 -0500 +diff --git a/monitor/gdu/ggduvolumemonitor.h b/monitor/gdu/ggduvolumemonitor.h +new file mode 100644 +index 0000000..ec559c4 +--- /dev/null ++++ b/monitor/gdu/ggduvolumemonitor.h @@ -0,0 +1,60 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* gvfs - extensions for gio @@ -4900,8 +5043,20 @@ Index: monitor/Makefile.am +G_END_DECLS + +#endif /* __G_GDU_VOLUME_MONITOR_H__ */ ---- /dev/null 2009-03-04 16:07:30.099029290 -0500 -+++ monitor/gdu/polkit.c 2009-03-01 23:47:50.000000000 -0500 +diff --git a/monitor/gdu/org.gtk.Private.GduVolumeMonitor.service.in b/monitor/gdu/org.gtk.Private.GduVolumeMonitor.service.in +new file mode 100644 +index 0000000..3fe4277 +--- /dev/null ++++ b/monitor/gdu/org.gtk.Private.GduVolumeMonitor.service.in +@@ -0,0 +1,3 @@ ++[D-BUS Service] ++Name=org.gtk.Private.GduVolumeMonitor ++Exec=@libexecdir@/gvfs-gdu-volume-monitor +diff --git a/monitor/gdu/polkit.c b/monitor/gdu/polkit.c +new file mode 100644 +index 0000000..5c37ba6 +--- /dev/null ++++ b/monitor/gdu/polkit.c @@ -0,0 +1,137 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* gvfs - extensions for gio @@ -5040,8 +5195,11 @@ Index: monitor/Makefile.am + dbus_message_unref (message); + dbus_connection_unref (connection); +} ---- /dev/null 2009-03-04 16:07:30.099029290 -0500 -+++ monitor/gdu/polkit.h 2009-03-01 23:47:41.000000000 -0500 +diff --git a/monitor/gdu/polkit.h b/monitor/gdu/polkit.h +new file mode 100644 +index 0000000..4b26189 +--- /dev/null ++++ b/monitor/gdu/polkit.h @@ -0,0 +1,44 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* gvfs - extensions for gio @@ -5087,73 +5245,6 @@ Index: monitor/Makefile.am +G_END_DECLS + +#endif /* __POLKIT_H__ */ ---- /dev/null 2009-03-04 16:07:30.099029290 -0500 -+++ monitor/gdu/Makefile.am 2009-03-01 21:13:46.000000000 -0500 -@@ -0,0 +1,53 @@ -+ -+NULL = -+ -+libexec_PROGRAMS = gvfs-gdu-volume-monitor -+ -+ -+gvfs_gdu_volume_monitor_SOURCES = \ -+ gdu-volume-monitor-daemon.c \ -+ ggdudrive.c ggdudrive.h \ -+ ggduvolume.c ggduvolume.h \ -+ ggdumount.c ggdumount.h \ -+ ggduvolumemonitor.c ggduvolumemonitor.h \ -+ polkit.c polkit.h \ -+ $(NULL) -+ -+gvfs_gdu_volume_monitor_CFLAGS = \ -+ -DG_LOG_DOMAIN=\"GVFS-Gdu\" \ -+ -I$(top_srcdir)/common \ -+ -I$(top_srcdir)/monitor/proxy \ -+ $(GLIB_CFLAGS) \ -+ $(GDU_CFLAGS) \ -+ $(DBUS_CFLAGS) \ -+ -DGIO_MODULE_DIR=\"$(GIO_MODULE_DIR)\" \ -+ -DGVFS_LOCALEDIR=\""$(localedir)"\" \ -+ -DG_DISABLE_DEPRECATED \ -+ -DGDU_API_IS_SUBJECT_TO_CHANGE \ -+ $(NULL) -+ -+gvfs_gdu_volume_monitor_LDFLAGS = \ -+ $(NULL) -+ -+gvfs_gdu_volume_monitor_LDADD = \ -+ $(GLIB_LIBS) \ -+ $(GDU_LIBS) \ -+ $(DBUS_LIBS) \ -+ $(top_builddir)/common/libgvfscommon.la \ -+ $(top_builddir)/monitor/proxy/libgvfsproxyvolumemonitordaemon-noin.la \ -+ $(NULL) -+ -+remote_volume_monitorsdir = $(datadir)/gvfs/remote-volume-monitors -+remote_volume_monitors_DATA = gdu.monitor -+ -+servicedir = $(datadir)/dbus-1/services -+service_in_files = org.gtk.Private.GduVolumeMonitor.service.in -+service_DATA = $(service_in_files:.service.in=.service) -+ -+$(service_DATA): $(service_in_files) Makefile -+ @sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@ -+ -+clean-local: -+ rm -f *~ *.loT $(BUILT_SOURCES) $(service_DATA) -+ -+EXTRA_DIST = $(service_in_files) gdu.monitor ---- /dev/null 2009-03-04 16:07:30.099029290 -0500 -+++ monitor/gdu/gdu.monitor 2009-02-11 06:42:26.000000000 -0500 -@@ -0,0 +1,5 @@ -+[RemoteVolumeMonitor] -+Name=GProxyVolumeMonitorGdu -+DBusName=org.gtk.Private.GduVolumeMonitor -+IsNative=true -+NativePriority=3 ---- /dev/null 2009-03-04 16:07:30.099029290 -0500 -+++ monitor/gdu/org.gtk.Private.GduVolumeMonitor.service.in 2009-02-19 22:34:26.000000000 -0500 -@@ -0,0 +1,3 @@ -+[D-BUS Service] -+Name=org.gtk.Private.GduVolumeMonitor -+Exec=@libexecdir@/gvfs-gdu-volume-monitor +-- +1.6.2.2 + diff --git a/gvfs-1.1.7-gdu-monitor-empty-drives.patch b/gdu-0002-Fix-how-we-determine-if-a-volume-is-ignored.patch similarity index 63% rename from gvfs-1.1.7-gdu-monitor-empty-drives.patch rename to gdu-0002-Fix-how-we-determine-if-a-volume-is-ignored.patch index 07a6ec5..3cc470c 100644 --- a/gvfs-1.1.7-gdu-monitor-empty-drives.patch +++ b/gdu-0002-Fix-how-we-determine-if-a-volume-is-ignored.patch @@ -1,7 +1,22 @@ -diff -up gvfs-1.1.7/monitor/gdu/ggduvolumemonitor.c.orig gvfs-1.1.7/monitor/gdu/ggduvolumemonitor.c ---- gvfs-1.1.7/monitor/gdu/ggduvolumemonitor.c.orig 2009-03-06 13:24:00.000000000 +0100 -+++ gvfs-1.1.7/monitor/gdu/ggduvolumemonitor.c 2009-03-06 14:45:49.000000000 +0100 -@@ -617,7 +617,7 @@ get_mount_point_for_device (GduDevice *d +From 94707c12442ed9ce099f110ec7089309133727ae Mon Sep 17 00:00:00 2001 +From: Tomas Bzatek +Date: Thu, 9 Apr 2009 19:03:16 -0400 +Subject: [PATCH 2/7] Fix how we determine if a volume is ignored + +This fixes a typo - wrong assignment of device file when testing whether the +volume should be ignored or not. It led to empty GVolume list associated to a +GDrive and thus inability to mount anything via computer:// + +Signed-off-by: David Zeuthen +--- + monitor/gdu/ggduvolumemonitor.c | 18 +++++++++--------- + 1 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/monitor/gdu/ggduvolumemonitor.c b/monitor/gdu/ggduvolumemonitor.c +index 32604d0..b52ee11 100644 +--- a/monitor/gdu/ggduvolumemonitor.c ++++ b/monitor/gdu/ggduvolumemonitor.c +@@ -617,7 +617,7 @@ get_mount_point_for_device (GduDevice *d, GList *fstab_mount_points) for (l = fstab_mount_points; l != NULL; l = l->next) { GUnixMountPoint *mount_point = l->data; @@ -10,7 +25,7 @@ diff -up gvfs-1.1.7/monitor/gdu/ggduvolumemonitor.c.orig gvfs-1.1.7/monitor/gdu/ const gchar *fstab_mount_path; fstab_mount_path = g_unix_mount_point_get_mount_path (mount_point); -@@ -627,18 +627,18 @@ get_mount_point_for_device (GduDevice *d +@@ -627,18 +627,18 @@ get_mount_point_for_device (GduDevice *d, GList *fstab_mount_points) goto out; } @@ -34,7 +49,7 @@ diff -up gvfs-1.1.7/monitor/gdu/ggduvolumemonitor.c.orig gvfs-1.1.7/monitor/gdu/ { ret = mount_point; goto out; -@@ -646,11 +646,11 @@ get_mount_point_for_device (GduDevice *d +@@ -646,11 +646,11 @@ get_mount_point_for_device (GduDevice *d, GList *fstab_mount_points) } else { @@ -49,3 +64,6 @@ diff -up gvfs-1.1.7/monitor/gdu/ggduvolumemonitor.c.orig gvfs-1.1.7/monitor/gdu/ { ret = mount_point; goto out; +-- +1.6.2.2 + diff --git a/gvfs-1.2.1-only-mount-the-metal.patch b/gdu-0003-Avoid-automounting-volumes-on-virtual-and-unknown-bu.patch similarity index 67% rename from gvfs-1.2.1-only-mount-the-metal.patch rename to gdu-0003-Avoid-automounting-volumes-on-virtual-and-unknown-bu.patch index 54c9d13..741c2ce 100644 --- a/gvfs-1.2.1-only-mount-the-metal.patch +++ b/gdu-0003-Avoid-automounting-volumes-on-virtual-and-unknown-bu.patch @@ -1,5 +1,30 @@ ---- gvfs-1.2.1/monitor/gdu/ggduvolume.c.orig 2009-04-09 14:13:39.000000000 -0400 -+++ gvfs-1.2.1/monitor/gdu/ggduvolume.c 2009-04-09 14:28:51.000000000 -0400 +From 47a663c7ad7b9de9942b9b740abff6610968a402 Mon Sep 17 00:00:00 2001 +From: David Zeuthen +Date: Thu, 9 Apr 2009 19:05:37 -0400 +Subject: [PATCH 3/7] Avoid automounting volumes on virtual and unknown buses + +Basically we want to avoid automounting volumes from + + 1. drives on a 'virtual' or unset bus + 2. volumes without a drive + +This is to avoid interference with things like Fedora's livecd-tools +that use device-mapper to set up images. See + + https://bugzilla.redhat.com/show_bug.cgi?id=494144 for more + +background. + +In the future we might want to relax 1. so automounting things like +Linux MD and LVM2 devices work. +--- + monitor/gdu/ggduvolume.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 50 insertions(+), 0 deletions(-) + +diff --git a/monitor/gdu/ggduvolume.c b/monitor/gdu/ggduvolume.c +index b540325..a5a3321 100644 +--- a/monitor/gdu/ggduvolume.c ++++ b/monitor/gdu/ggduvolume.c @@ -293,6 +293,56 @@ update_volume (GGduVolume *volume) volume->should_automount = FALSE; } @@ -57,3 +82,6 @@ g_free (activation_uri); } +-- +1.6.2.2 + diff --git a/gdu-0004-Remove-debug-spew.patch b/gdu-0004-Remove-debug-spew.patch new file mode 100644 index 0000000..b9da41e --- /dev/null +++ b/gdu-0004-Remove-debug-spew.patch @@ -0,0 +1,27 @@ +From 82202f50bb76248f5a6368fe08de947758674acd Mon Sep 17 00:00:00 2001 +From: David Zeuthen +Date: Thu, 9 Apr 2009 19:14:25 -0400 +Subject: [PATCH 4/7] Remove debug spew + +--- + monitor/gdu/ggduvolume.c | 4 ---- + 1 files changed, 0 insertions(+), 4 deletions(-) + +diff --git a/monitor/gdu/ggduvolume.c b/monitor/gdu/ggduvolume.c +index a5a3321..6779f0f 100644 +--- a/monitor/gdu/ggduvolume.c ++++ b/monitor/gdu/ggduvolume.c +@@ -339,10 +339,6 @@ update_volume (GGduVolume *volume) + volume->should_automount = FALSE; + } + +- g_debug ("should_automount = %d for %s", +- volume->should_automount, +- device != NULL ? gdu_device_get_device_file (device) : "(none)"); +- + g_free (activation_uri); + } + +-- +1.6.2.2 + diff --git a/gdu-0005-Don-t-add-a-volume-if-the-device-is-mounted-and-igno.patch b/gdu-0005-Don-t-add-a-volume-if-the-device-is-mounted-and-igno.patch new file mode 100644 index 0000000..eea0e04 --- /dev/null +++ b/gdu-0005-Don-t-add-a-volume-if-the-device-is-mounted-and-igno.patch @@ -0,0 +1,31 @@ +From d9a00cc6172e2bf82f6825023c7a619be7f56747 Mon Sep 17 00:00:00 2001 +From: David Zeuthen +Date: Thu, 9 Apr 2009 19:33:35 -0400 +Subject: [PATCH 5/7] Don't add a volume if the device is mounted and ignored + +This fixes a problem where e.g. /dev/sdb1 a) is not referenced in +/etc/fstab; and b) is mounted in an ignored location e.g. /mnt/live. + +Specifically this bug affects the Fedora Live CD, see +https://bugzilla.redhat.com/show_bug.cgi?id=495033 for details. +--- + monitor/gdu/ggduvolumemonitor.c | 3 --- + 1 files changed, 0 insertions(+), 3 deletions(-) + +diff --git a/monitor/gdu/ggduvolumemonitor.c b/monitor/gdu/ggduvolumemonitor.c +index b52ee11..93aaf03 100644 +--- a/monitor/gdu/ggduvolumemonitor.c ++++ b/monitor/gdu/ggduvolumemonitor.c +@@ -671,9 +671,6 @@ should_mount_be_ignored (GduPool *pool, GduDevice *d) + + ret = FALSE; + +- if (gdu_device_is_mounted (d)) +- goto out; +- + mount_path = gdu_device_get_mount_path (d); + if (mount_path == NULL || strlen (mount_path) == 0) + goto out; +-- +1.6.2.2 + diff --git a/gdu-0006-Ignore-drives-if-all-volumes-of-the-drive-are-ignore.patch b/gdu-0006-Ignore-drives-if-all-volumes-of-the-drive-are-ignore.patch new file mode 100644 index 0000000..2fa3232 --- /dev/null +++ b/gdu-0006-Ignore-drives-if-all-volumes-of-the-drive-are-ignore.patch @@ -0,0 +1,41 @@ +From 346fdc3ddf383228ed58a48252e70919f6636b6e Mon Sep 17 00:00:00 2001 +From: David Zeuthen +Date: Thu, 9 Apr 2009 19:39:55 -0400 +Subject: [PATCH 6/7] Ignore drives if all volumes of the drive are ignored + +--- + monitor/gdu/ggduvolumemonitor.c | 16 +++++++++------- + 1 files changed, 9 insertions(+), 7 deletions(-) + +diff --git a/monitor/gdu/ggduvolumemonitor.c b/monitor/gdu/ggduvolumemonitor.c +index 93aaf03..9ecee8b 100644 +--- a/monitor/gdu/ggduvolumemonitor.c ++++ b/monitor/gdu/ggduvolumemonitor.c +@@ -763,15 +763,17 @@ should_drive_be_ignored (GduPool *pool, GduDrive *d, GList *fstab_mount_points) + + device = gdu_presentable_get_device (GDU_PRESENTABLE (d)); + +- /* the GduDevice for an activatable drive (such as RAID) is NULL if the drive is not +- * activated; never ignore these ++ /* If there is no GduDevice for a drive, then ignore it. ++ * ++ * Note that right now the only drives without a GduDevice are Linux ++ * MD arrays not yet activated. In the future we might want to ++ * display these so the user can start the array. + */ + if (device == NULL) +- goto out; +- +- /* never ignore drives with removable media */ +- if (gdu_device_is_removable (device)) +- goto out; ++ { ++ ret = TRUE; ++ goto out; ++ } + + has_volumes = FALSE; + all_volumes_are_ignored = TRUE; +-- +1.6.2.2 + diff --git a/gdu-0007-Bug-576587-allow-eject-even-on-non-ejectable-vol.patch b/gdu-0007-Bug-576587-allow-eject-even-on-non-ejectable-vol.patch new file mode 100644 index 0000000..88999b5 --- /dev/null +++ b/gdu-0007-Bug-576587-allow-eject-even-on-non-ejectable-vol.patch @@ -0,0 +1,49 @@ +From 303cfd43578f0a4198c063f1a5fbcd16fec2b0bf Mon Sep 17 00:00:00 2001 +From: David Zeuthen +Date: Thu, 9 Apr 2009 21:04:24 -0400 +Subject: [PATCH 7/7] =?utf-8?q?Bug=20576587=20=E2=80=93=20allow=20eject=20even=20on=20non-ejectable=20volumes?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf-8 +Content-Transfer-Encoding: 8bit + +This fixes a host of problems with e.g. Kindle or iPod devices +requiring to be "ejected" to display messages such as + + "If you want to use your Kindle and continue charging, please eject + your Kindle from your computer." + +to the user. + +Previously we relied on HAL fdi files or similar to tag that such +devices needed to be ejectable. Now we just set everything as +ejectable. + +For this to really work well the Nautilus patch in + + http://bugzilla.gnome.org/show_bug.cgi?id=574067 + +needs to be reverted. +--- + monitor/gdu/ggdudrive.c | 6 +++++- + 1 files changed, 5 insertions(+), 1 deletions(-) + +diff --git a/monitor/gdu/ggdudrive.c b/monitor/gdu/ggdudrive.c +index 257a113..29e108d 100644 +--- a/monitor/gdu/ggdudrive.c ++++ b/monitor/gdu/ggdudrive.c +@@ -166,7 +166,11 @@ update_drive (GGduDrive *drive) + drive->device_file = g_strdup (gdu_device_get_device_file (device)); + drive->is_media_removable = gdu_device_is_removable (device); + drive->has_media = gdu_device_is_media_available (device); +- drive->can_eject = gdu_device_drive_get_is_media_ejectable (device) || gdu_device_drive_get_requires_eject (device); ++ /* All drives with removable media are ejectable ++ * ++ * See http://bugzilla.gnome.org/show_bug.cgi?id=576587 for why we want this. ++ */ ++ drive->can_eject = gdu_device_drive_get_is_media_ejectable (device) || gdu_device_drive_get_requires_eject (device) || gdu_device_is_removable (device); + drive->is_media_check_automatic = gdu_device_is_media_change_detected (device); + drive->can_poll_for_media = TRUE; + } +-- +1.6.2.2 + diff --git a/gvfs-1.2.0-fix-daemon-mount-op-bgo575728.patch b/gvfs-1.2.0-fix-daemon-mount-op-bgo575728.patch deleted file mode 100644 index 427d5c1..0000000 --- a/gvfs-1.2.0-fix-daemon-mount-op-bgo575728.patch +++ /dev/null @@ -1,113 +0,0 @@ ---- trunk/common/gvfsdaemonprotocol.h 2009/02/27 12:59:47 2257 -+++ trunk/common/gvfsdaemonprotocol.h 2009/03/18 21:03:15 2342 -@@ -73,6 +73,7 @@ - #define G_VFS_DBUS_MOUNT_OPERATION_INTERFACE "org.gtk.vfs.MountOperation" - #define G_VFS_DBUS_MOUNT_OPERATION_OP_ASK_PASSWORD "askPassword" - #define G_VFS_DBUS_MOUNT_OPERATION_OP_ASK_QUESTION "askQuestion" -+#define G_VFS_DBUS_MOUNT_OPERATION_OP_ABORTED "aborted" - - /* Implemented by the spawner of a process, the spawned process sends the - spawned message (with noreply) when it has spawned and gotten a dbus id */ ---- trunk/common/gmountoperationdbus.c 2008/08/25 13:27:36 1907 -+++ trunk/common/gmountoperationdbus.c 2009/03/18 21:03:15 2342 -@@ -51,6 +51,8 @@ - DBusMessage *message); - static void mount_op_ask_question (GMountOperationDBus *op_dbus, - DBusMessage *message); -+static void mount_op_aborted (GMountOperationDBus *op_dbus, -+ DBusMessage *message); - - static void - g_mount_operation_dbus_free (GMountOperationDBus *op_dbus) -@@ -131,6 +133,10 @@ - G_VFS_DBUS_MOUNT_OPERATION_INTERFACE, - G_VFS_DBUS_MOUNT_OPERATION_OP_ASK_QUESTION)) - mount_op_ask_question (op_dbus, message); -+ else if (dbus_message_is_method_call (message, -+ G_VFS_DBUS_MOUNT_OPERATION_INTERFACE, -+ G_VFS_DBUS_MOUNT_OPERATION_OP_ABORTED)) -+ mount_op_aborted (op_dbus, message); - else - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - -@@ -322,3 +328,10 @@ - - dbus_free_string_array (choices); - } -+ -+static void -+mount_op_aborted (GMountOperationDBus *op_dbus, -+ DBusMessage *message) -+{ -+ g_signal_emit_by_name (op_dbus->op, "aborted"); -+} ---- trunk/common/gmountsource.c 2008/09/23 19:16:06 2021 -+++ trunk/common/gmountsource.c 2009/03/18 21:03:15 2342 -@@ -433,8 +433,8 @@ - handled = g_mount_source_ask_password_finish (source, - res, - &aborted, -- &username, - &password, -+ &username, - &domain, - NULL, - &password_save); -@@ -475,6 +475,7 @@ - flags, - op_ask_password_reply, - g_object_ref (op)); -+ g_signal_stop_emission_by_name (op, "ask_password"); - return TRUE; - } - -@@ -695,9 +696,41 @@ - n_choices, - op_ask_question_reply, - g_object_ref (op)); -+ g_signal_stop_emission_by_name (op, "ask_question"); - return TRUE; - } - -+static gboolean -+op_aborted (GMountOperation *op, -+ GMountSource *source) -+{ -+ DBusMessage *message; -+ DBusConnection *connection; -+ -+ /* If no dbus id specified, reply that we weren't handled */ -+ if (source->dbus_id[0] == 0) -+ goto out; -+ -+ connection = dbus_bus_get (DBUS_BUS_SESSION, NULL); -+ if (connection == NULL) -+ goto out; -+ -+ message = dbus_message_new_method_call (source->dbus_id, -+ source->obj_path, -+ G_VFS_DBUS_MOUNT_OPERATION_INTERFACE, -+ G_VFS_DBUS_MOUNT_OPERATION_OP_ABORTED); -+ -+ if (message) -+ { -+ dbus_connection_send (connection, message, NULL); -+ dbus_message_unref (message); -+ } -+ -+ out: -+ return TRUE; -+} -+ -+ - GMountOperation * - g_mount_source_get_operation (GMountSource *mount_source) - { -@@ -711,6 +744,7 @@ - - g_signal_connect (op, "ask_password", (GCallback)op_ask_password, mount_source); - g_signal_connect (op, "ask_question", (GCallback)op_ask_question, mount_source); -+ g_signal_connect (op, "aborted", (GCallback)op_aborted, mount_source); - - return op; - } diff --git a/gvfs.spec b/gvfs.spec index 0915f9d..194ca5e 100644 --- a/gvfs.spec +++ b/gvfs.spec @@ -1,7 +1,7 @@ Summary: Backends for the gio framework in GLib Name: gvfs Version: 1.2.1 -Release: 2%{?dist} +Release: 3%{?dist} License: LGPLv2+ Group: System Environment/Libraries URL: http://www.gtk.org @@ -19,7 +19,7 @@ BuildRequires: gnome-keyring-devel BuildRequires: intltool BuildRequires: gettext-devel BuildRequires: GConf2-devel -BuildRequires: gnome-disk-utility-devel >= 0.2 +BuildRequires: gnome-disk-utility-devel >= 0.3 Requires(post): desktop-file-utils @@ -30,18 +30,25 @@ BuildRequires: automake autoconf BuildRequires: libtool # http://bugzilla.gnome.org/show_bug.cgi?id=567235 Patch1: gvfs-0.99.2-archive-integration.patch - # http://bugzilla.gnome.org/show_bug.cgi?id=573826 -Patch2: gvfs-gdu-volume-monitor-3.patch +Patch2: gvfs-1.1.7-gdu-computer-expose-devices.patch +# Gdu volume monitor patches, from http://cgit.freedesktop.org/~david/gvfs/log/?h=gdu-volume-monitor +# # http://bugzilla.gnome.org/show_bug.cgi?id=573826 -Patch3: gvfs-1.1.7-gdu-monitor-empty-drives.patch - +Patch101: gdu-0001-Bug-573826-gdu-volume-monitor.patch # http://bugzilla.gnome.org/show_bug.cgi?id=573826 -Patch4: gvfs-1.1.7-gdu-computer-expose-devices.patch - +Patch102: gdu-0002-Fix-how-we-determine-if-a-volume-is-ignored.patch # https://bugzilla.redhat.com/show_bug.cgi?id=494144 -Patch5: gvfs-1.2.1-only-mount-the-metal.patch +Patch103: gdu-0003-Avoid-automounting-volumes-on-virtual-and-unknown-bu.patch +Patch104: gdu-0004-Remove-debug-spew.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=495033 +Patch105: gdu-0005-Don-t-add-a-volume-if-the-device-is-mounted-and-igno.patch +Patch106: gdu-0006-Ignore-drives-if-all-volumes-of-the-drive-are-ignore.patch + +# http://bugzilla.gnome.org/show_bug.cgi?id=576587 +# - Pending discussion + requires Nautilus patch +#Patch107: gdu-0007-Bug-576587-allow-eject-even-on-non-ejectable-vol.patch %description The gvfs package provides backend implementations for the gio @@ -124,10 +131,15 @@ media players (Media Transfer Protocol) to applications using gvfs. %prep %setup -q %patch1 -p0 -b .archive-integration -%patch2 -p0 -b .gdu -%patch3 -p1 -b .gdu-volumes-typo -%patch4 -p1 -b .computer-gdu -%patch5 -p1 -b .metal +%patch2 -p1 -b .computer-expose-devices + +%patch101 -p1 -b .gdu-volume-monitor +%patch102 -p1 -b .gdu-volumes-typo +%patch103 -p1 -b .gdu-avoid-automount +%patch104 -p1 -b .gdu-debug-spew +%patch105 -p1 -b .gdu-ignore-1 +%patch106 -p1 -b .gdu-ignore-2 +#%patch107 -p1 -b .gdu-always-eject %build @@ -271,6 +283,10 @@ update-desktop-database &> /dev/null ||: %changelog +* Thu Apr 9 2009 David Zeuthen - 1.2.1-3 +- Clean up gdu patches and bump BR for gdu to 0.3 +- Avoiding showing volume for ignored mounts (#495033) + * Thu Apr 9 2009 David Zeuthen - 1.2.1-2 - Avoid automounting device-mapper devices and similar (#494144)