- 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
===================================================================
--- configure.ac (revision 2286)
+++ configure.ac (working copy)
@@ -198,6 +198,31 @@
From 9d51c0de20170731db25422e858fee0e44b1dbd1 Mon Sep 17 00:00:00 2001
From: David Zeuthen <davidz@redhat.com>
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

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
--- 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 <tbzatek@redhat.com>
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 <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)
{
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

View File

@ -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 <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)
volume->should_automount = FALSE;
}
@ -57,3 +82,6 @@
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
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 <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
- Avoid automounting device-mapper devices and similar (#494144)