- Clean up gdu patches and bump BR for gdu to 0.3

- Avoiding showing volume for ignored mounts (#495033)
This commit is contained in:
David Zeuthen 2009-04-10 01:24:24 +00:00
parent 339758d122
commit 5455e5f26a
9 changed files with 430 additions and 242 deletions

View File

@ -1,8 +1,55 @@
Index: configure.ac From 9d51c0de20170731db25422e858fee0e44b1dbd1 Mon Sep 17 00:00:00 2001
=================================================================== From: David Zeuthen <davidz@redhat.com>
--- configure.ac (revision 2286) Date: Thu, 9 Apr 2009 19:01:18 -0400
+++ configure.ac (working copy) Subject: [PATCH 1/7] =?utf-8?q?Bug=20573826=20=E2=80=93=20gdu=20volume=20monitor?=
@@ -198,6 +198,31 @@ 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"]) AM_CONDITIONAL(USE_GCONF, [test "$msg_gconf" = "yes"])
@ -10,14 +57,13 @@ Index: configure.ac
+dnl *** Check for gnome-disk-utility *** +dnl *** Check for gnome-disk-utility ***
+dnl ************************************ +dnl ************************************
+ +
+dnl TODO: when there is a more stable version of gdu available, turn this on by default +AC_ARG_ENABLE(gdu, [ --disable-gdu build without GDU volume monitor])
+AC_ARG_ENABLE(gdu, [ --enable-gdu build with gdu support])
+msg_gdu=no +msg_gdu=no
+GDU_LIBS= +GDU_LIBS=
+GDU_CFLAGS= +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) + PKG_CHECK_EXISTS([gdu >= $GDU_REQUIRED], msg_gdu=yes)
+ +
+ if test "x$msg_gdu" == "xyes"; then + if test "x$msg_gdu" == "xyes"; then
@ -34,7 +80,7 @@ Index: configure.ac
dnl ********************** dnl **********************
dnl *** Check for HAL *** dnl *** Check for HAL ***
dnl ********************** dnl **********************
@@ -558,6 +583,7 @@ @@ -558,6 +582,7 @@ daemon/Makefile
monitor/Makefile monitor/Makefile
monitor/proxy/Makefile monitor/proxy/Makefile
monitor/hal/Makefile monitor/hal/Makefile
@ -42,7 +88,7 @@ Index: configure.ac
monitor/gphoto2/Makefile monitor/gphoto2/Makefile
gconf/Makefile gconf/Makefile
programs/Makefile programs/Makefile
@@ -579,7 +605,8 @@ @@ -579,7 +604,8 @@ echo "
archive support: $msg_archive archive support: $msg_archive
GConf support: $msg_gconf GConf support: $msg_gconf
DNS-SD support: $msg_avahi DNS-SD support: $msg_avahi
@ -52,11 +98,11 @@ Index: configure.ac
GNOME Keyring support: $msg_keyring GNOME Keyring support: $msg_keyring
Bash-completion support: $msg_bash_completion Bash-completion support: $msg_bash_completion
" "
Index: monitor/Makefile.am diff --git a/monitor/Makefile.am b/monitor/Makefile.am
=================================================================== index d4197d5..f68423e 100644
--- monitor/Makefile.am (revision 2286) --- a/monitor/Makefile.am
+++ monitor/Makefile.am (working copy) +++ b/monitor/Makefile.am
@@ -5,6 +5,10 @@ @@ -5,6 +5,10 @@ if USE_HAL
SUBDIRS += hal SUBDIRS += hal
endif endif
@ -67,8 +113,70 @@ Index: monitor/Makefile.am
if USE_GPHOTO2 if USE_GPHOTO2
SUBDIRS += gphoto2 SUBDIRS += gphoto2
endif endif
--- /dev/null 2009-03-04 16:07:30.099029290 -0500 diff --git a/monitor/gdu/Makefile.am b/monitor/gdu/Makefile.am
+++ monitor/gdu/gdu-volume-monitor-daemon.c 2009-03-01 23:47:15.000000000 -0500 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 @@ @@ -0,0 +1,46 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+/* gvfs - extensions for gio +/* gvfs - extensions for gio
@ -116,8 +224,22 @@ Index: monitor/Makefile.am
+ "org.gtk.Private.GduVolumeMonitor", + "org.gtk.Private.GduVolumeMonitor",
+ G_TYPE_GDU_VOLUME_MONITOR); + G_TYPE_GDU_VOLUME_MONITOR);
+} +}
--- /dev/null 2009-03-04 16:07:30.099029290 -0500 diff --git a/monitor/gdu/gdu.monitor b/monitor/gdu/gdu.monitor
+++ monitor/gdu/ggdudrive.c 2009-03-01 23:48:33.000000000 -0500 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 @@ @@ -0,0 +1,691 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+/* gvfs - extensions for gio +/* gvfs - extensions for gio
@ -810,8 +932,11 @@ Index: monitor/Makefile.am
+{ +{
+ return drive->presentable; + return drive->presentable;
+} +}
--- /dev/null 2009-03-04 16:07:30.099029290 -0500 diff --git a/monitor/gdu/ggdudrive.h b/monitor/gdu/ggdudrive.h
+++ monitor/gdu/ggdudrive.h 2009-03-01 23:48:26.000000000 -0500 new file mode 100644
index 0000000..e182c29
--- /dev/null
+++ b/monitor/gdu/ggdudrive.h
@@ -0,0 +1,69 @@ @@ -0,0 +1,69 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+/* gvfs - extensions for gio +/* gvfs - extensions for gio
@ -882,8 +1007,11 @@ Index: monitor/Makefile.am
+G_END_DECLS +G_END_DECLS
+ +
+#endif /* __G_GDU_DRIVE_H__ */ +#endif /* __G_GDU_DRIVE_H__ */
--- /dev/null 2009-03-04 16:07:30.099029290 -0500 diff --git a/monitor/gdu/ggdumount.c b/monitor/gdu/ggdumount.c
+++ monitor/gdu/ggdumount.c 2009-03-02 14:18:23.000000000 -0500 new file mode 100644
index 0000000..27c22d9
--- /dev/null
+++ b/monitor/gdu/ggdumount.c
@@ -0,0 +1,958 @@ @@ -0,0 +1,958 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+/* gvfs - extensions for gio +/* gvfs - extensions for gio
@ -1843,8 +1971,11 @@ Index: monitor/Makefile.am
+{ +{
+ return mount->volume == volume; + return mount->volume == volume;
+} +}
--- /dev/null 2009-03-04 16:07:30.099029290 -0500 diff --git a/monitor/gdu/ggdumount.h b/monitor/gdu/ggdumount.h
+++ monitor/gdu/ggdumount.h 2009-03-01 23:48:16.000000000 -0500 new file mode 100644
index 0000000..62a19d8
--- /dev/null
+++ b/monitor/gdu/ggdumount.h
@@ -0,0 +1,64 @@ @@ -0,0 +1,64 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+/* gvfs - extensions for gio +/* gvfs - extensions for gio
@ -1910,8 +2041,11 @@ Index: monitor/Makefile.am
+G_END_DECLS +G_END_DECLS
+ +
+#endif /* __G_GDU_MOUNT_H__ */ +#endif /* __G_GDU_MOUNT_H__ */
--- /dev/null 2009-03-04 16:07:30.099029290 -0500 diff --git a/monitor/gdu/ggduvolume.c b/monitor/gdu/ggduvolume.c
+++ monitor/gdu/ggduvolume.c 2009-03-04 16:19:41.000000000 -0500 new file mode 100644
index 0000000..b540325
--- /dev/null
+++ b/monitor/gdu/ggduvolume.c
@@ -0,0 +1,1408 @@ @@ -0,0 +1,1408 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+/* gvfs - extensions for gio +/* gvfs - extensions for gio
@ -3321,8 +3455,11 @@ Index: monitor/Makefile.am
+ +
+ return GDU_PRESENTABLE (ret); + return GDU_PRESENTABLE (ret);
+} +}
--- /dev/null 2009-03-04 16:07:30.099029290 -0500 diff --git a/monitor/gdu/ggduvolume.h b/monitor/gdu/ggduvolume.h
+++ monitor/gdu/ggduvolume.h 2009-03-01 23:48:05.000000000 -0500 new file mode 100644
index 0000000..8fd7358
--- /dev/null
+++ b/monitor/gdu/ggduvolume.h
@@ -0,0 +1,78 @@ @@ -0,0 +1,78 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+/* gvfs - extensions for gio +/* gvfs - extensions for gio
@ -3402,8 +3539,11 @@ Index: monitor/Makefile.am
+G_END_DECLS +G_END_DECLS
+ +
+#endif /* __G_GDU_VOLUME_H__ */ +#endif /* __G_GDU_VOLUME_H__ */
--- /dev/null 2009-03-04 16:07:30.099029290 -0500 diff --git a/monitor/gdu/ggduvolumemonitor.c b/monitor/gdu/ggduvolumemonitor.c
+++ monitor/gdu/ggduvolumemonitor.c 2009-03-04 16:29:02.000000000 -0500 new file mode 100644
index 0000000..32604d0
--- /dev/null
+++ b/monitor/gdu/ggduvolumemonitor.c
@@ -0,0 +1,1432 @@ @@ -0,0 +1,1432 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+/* gvfs - extensions for gio +/* gvfs - extensions for gio
@ -4837,8 +4977,11 @@ Index: monitor/Makefile.am
+ +
+ g_list_free (cur_discs); + g_list_free (cur_discs);
+} +}
--- /dev/null 2009-03-04 16:07:30.099029290 -0500 diff --git a/monitor/gdu/ggduvolumemonitor.h b/monitor/gdu/ggduvolumemonitor.h
+++ monitor/gdu/ggduvolumemonitor.h 2009-03-01 23:49:48.000000000 -0500 new file mode 100644
index 0000000..ec559c4
--- /dev/null
+++ b/monitor/gdu/ggduvolumemonitor.h
@@ -0,0 +1,60 @@ @@ -0,0 +1,60 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+/* gvfs - extensions for gio +/* gvfs - extensions for gio
@ -4900,8 +5043,20 @@ Index: monitor/Makefile.am
+G_END_DECLS +G_END_DECLS
+ +
+#endif /* __G_GDU_VOLUME_MONITOR_H__ */ +#endif /* __G_GDU_VOLUME_MONITOR_H__ */
--- /dev/null 2009-03-04 16:07:30.099029290 -0500 diff --git a/monitor/gdu/org.gtk.Private.GduVolumeMonitor.service.in b/monitor/gdu/org.gtk.Private.GduVolumeMonitor.service.in
+++ monitor/gdu/polkit.c 2009-03-01 23:47:50.000000000 -0500 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 @@ @@ -0,0 +1,137 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+/* gvfs - extensions for gio +/* gvfs - extensions for gio
@ -5040,8 +5195,11 @@ Index: monitor/Makefile.am
+ dbus_message_unref (message); + dbus_message_unref (message);
+ dbus_connection_unref (connection); + dbus_connection_unref (connection);
+} +}
--- /dev/null 2009-03-04 16:07:30.099029290 -0500 diff --git a/monitor/gdu/polkit.h b/monitor/gdu/polkit.h
+++ monitor/gdu/polkit.h 2009-03-01 23:47:41.000000000 -0500 new file mode 100644
index 0000000..4b26189
--- /dev/null
+++ b/monitor/gdu/polkit.h
@@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+/* gvfs - extensions for gio +/* gvfs - extensions for gio
@ -5087,73 +5245,6 @@ Index: monitor/Makefile.am
+G_END_DECLS +G_END_DECLS
+ +
+#endif /* __POLKIT_H__ */ +#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 1.6.2.2
@@ -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

View File

@ -1,7 +1,22 @@
diff -up gvfs-1.1.7/monitor/gdu/ggduvolumemonitor.c.orig gvfs-1.1.7/monitor/gdu/ggduvolumemonitor.c From 94707c12442ed9ce099f110ec7089309133727ae Mon Sep 17 00:00:00 2001
--- gvfs-1.1.7/monitor/gdu/ggduvolumemonitor.c.orig 2009-03-06 13:24:00.000000000 +0100 From: Tomas Bzatek <tbzatek@redhat.com>
+++ gvfs-1.1.7/monitor/gdu/ggduvolumemonitor.c 2009-03-06 14:45:49.000000000 +0100 Date: Thu, 9 Apr 2009 19:03:16 -0400
@@ -617,7 +617,7 @@ get_mount_point_for_device (GduDevice *d 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 <davidz@redhat.com>
---
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) for (l = fstab_mount_points; l != NULL; l = l->next)
{ {
GUnixMountPoint *mount_point = l->data; 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; const gchar *fstab_mount_path;
fstab_mount_path = g_unix_mount_point_get_mount_path (mount_point); 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; 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; ret = mount_point;
goto out; 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 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; ret = mount_point;
goto out; goto out;
--
1.6.2.2

View File

@ -1,5 +1,30 @@
--- gvfs-1.2.1/monitor/gdu/ggduvolume.c.orig 2009-04-09 14:13:39.000000000 -0400 From 47a663c7ad7b9de9942b9b740abff6610968a402 Mon Sep 17 00:00:00 2001
+++ gvfs-1.2.1/monitor/gdu/ggduvolume.c 2009-04-09 14:28:51.000000000 -0400 From: David Zeuthen <davidz@redhat.com>
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) @@ -293,6 +293,56 @@ update_volume (GGduVolume *volume)
volume->should_automount = FALSE; volume->should_automount = FALSE;
} }
@ -57,3 +82,6 @@
g_free (activation_uri); g_free (activation_uri);
} }
--
1.6.2.2

View File

@ -0,0 +1,27 @@
From 82202f50bb76248f5a6368fe08de947758674acd Mon Sep 17 00:00:00 2001
From: David Zeuthen <davidz@redhat.com>
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

View File

@ -0,0 +1,31 @@
From d9a00cc6172e2bf82f6825023c7a619be7f56747 Mon Sep 17 00:00:00 2001
From: David Zeuthen <davidz@redhat.com>
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

View File

@ -0,0 +1,41 @@
From 346fdc3ddf383228ed58a48252e70919f6636b6e Mon Sep 17 00:00:00 2001
From: David Zeuthen <davidz@redhat.com>
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

View File

@ -0,0 +1,49 @@
From 303cfd43578f0a4198c063f1a5fbcd16fec2b0bf Mon Sep 17 00:00:00 2001
From: David Zeuthen <davidz@redhat.com>
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

View File

@ -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;
}

View File

@ -1,7 +1,7 @@
Summary: Backends for the gio framework in GLib Summary: Backends for the gio framework in GLib
Name: gvfs Name: gvfs
Version: 1.2.1 Version: 1.2.1
Release: 2%{?dist} Release: 3%{?dist}
License: LGPLv2+ License: LGPLv2+
Group: System Environment/Libraries Group: System Environment/Libraries
URL: http://www.gtk.org URL: http://www.gtk.org
@ -19,7 +19,7 @@ BuildRequires: gnome-keyring-devel
BuildRequires: intltool BuildRequires: intltool
BuildRequires: gettext-devel BuildRequires: gettext-devel
BuildRequires: GConf2-devel BuildRequires: GConf2-devel
BuildRequires: gnome-disk-utility-devel >= 0.2 BuildRequires: gnome-disk-utility-devel >= 0.3
Requires(post): desktop-file-utils Requires(post): desktop-file-utils
@ -30,18 +30,25 @@ BuildRequires: automake autoconf
BuildRequires: libtool BuildRequires: libtool
# http://bugzilla.gnome.org/show_bug.cgi?id=567235 # http://bugzilla.gnome.org/show_bug.cgi?id=567235
Patch1: gvfs-0.99.2-archive-integration.patch Patch1: gvfs-0.99.2-archive-integration.patch
# http://bugzilla.gnome.org/show_bug.cgi?id=573826 # 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 # 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 # 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 # 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 %description
The gvfs package provides backend implementations for the gio The gvfs package provides backend implementations for the gio
@ -124,10 +131,15 @@ media players (Media Transfer Protocol) to applications using gvfs.
%prep %prep
%setup -q %setup -q
%patch1 -p0 -b .archive-integration %patch1 -p0 -b .archive-integration
%patch2 -p0 -b .gdu %patch2 -p1 -b .computer-expose-devices
%patch3 -p1 -b .gdu-volumes-typo
%patch4 -p1 -b .computer-gdu %patch101 -p1 -b .gdu-volume-monitor
%patch5 -p1 -b .metal %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 %build
@ -271,6 +283,10 @@ update-desktop-database &> /dev/null ||:
%changelog %changelog
* Thu Apr 9 2009 David Zeuthen <davidz@redhat.com> - 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 <davidz@redhat.com> - 1.2.1-2 * Thu Apr 9 2009 David Zeuthen <davidz@redhat.com> - 1.2.1-2
- Avoid automounting device-mapper devices and similar (#494144) - Avoid automounting device-mapper devices and similar (#494144)