aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKoen Kooi <koen@dominion.thruhere.net>2011-06-10 16:32:42 +0200
committerKoen Kooi <koen@dominion.thruhere.net>2011-06-10 22:26:37 +0200
commit813141a9927174de146a7de1d286a4bff30b9197 (patch)
tree589f45a0a7b2e89a5c8ca6fd2ff32cefd07d4b4b
parent2b28e32b1cd63157571878cca527c9523b745fcf (diff)
gnome-settings-daemon: add 2.32.1
and drop 2.26.1 Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
-rw-r--r--meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_2.32.1.bb (renamed from meta-gnome/recipes-gnome/gnome/gnome-settings-daemon_2.26.1.bb)20
-rw-r--r--meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/configurefix.patch30
-rw-r--r--meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/desktop-moblin.patch11
-rw-r--r--meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-2.24.0-catch-deviceadded.patch19
-rw-r--r--meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-fix-gthread.patch13
-rw-r--r--meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/mojito-cleanup.patch74
-rw-r--r--meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/mount-plugin.patch618
7 files changed, 10 insertions, 775 deletions
diff --git a/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon_2.26.1.bb b/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_2.32.1.bb
index cb216b2..58c513a 100644
--- a/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon_2.26.1.bb
+++ b/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_2.32.1.bb
@@ -1,24 +1,24 @@
DESCRIPTION = "GNOME settings daemon"
-LICENSE = "GPL"
-DEPENDS = "libxklavier gnome-doc-utils gtk+ libglade libgnomekbd gnome-desktop librsvg libxml2 libart-lgpl"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-PR = "r3"
+DEPENDS = "libnotify libxklavier gnome-doc-utils gtk+ libglade libgnomekbd gnome-desktop librsvg libxml2 libart-lgpl"
inherit gnome
-
-SRC_URI += "file://desktop-moblin.patch;patch=1 \
- file://gnome-settings-daemon-fix-gthread.patch;patch=1 \
- file://mount-plugin.patch;patch=1 \
- file://gnome-settings-daemon-2.24.0-catch-deviceadded.patch;patch=1 \
- file://configurefix.patch;patch=1 \
- file://mojito-cleanup.patch;patch=1"
+SRC_URI[archive.md5sum] = "6420706542e8fb959acba7e2a69ee35f"
+SRC_URI[archive.sha256sum] = "0074b3fec3ad6e3ab91a05dc20906b06101ea8bca0cd2caf394a5cc141b05e86"
EXTRA_OECONF = "--disable-esd --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR}"
ASNEEDED = ""
+do_configure_prepend() {
+ sed -i -e 's:-L$libdir::g' -e 's:-I$includedir::g' configure.ac
+}
+
FILES_${PN} += "${libdir}/gnome-settings-daemon-2.0/*.so ${libdir}/gnome-settings-daemon-2.0/*plugin \
${datadir}/dbus-1/ \
${datadir}/icon* \
+ ${datadir}/gnome-control-center \
${datadir}/xsession*"
FILES_${PN}-dbg += "${libdir}/gnome-settings-daemon-2.0/.debug"
diff --git a/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/configurefix.patch b/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/configurefix.patch
deleted file mode 100644
index 01b4f64..0000000
--- a/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/configurefix.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Index: gnome-settings-daemon-2.26.1/configure.ac
-===================================================================
---- gnome-settings-daemon-2.26.1.orig/configure.ac 2009-09-16 22:57:31.000000000 +0100
-+++ gnome-settings-daemon-2.26.1/configure.ac 2009-09-16 22:58:45.000000000 +0100
-@@ -133,9 +133,6 @@
- #
- AC_DEFUN([AC_CHECK_X_HEADERS], [
- ac_save_CPPFLAGS="$CPPFLAGS"
-- if test \! -z "$includedir" ; then
-- CPPFLAGS="$CPPFLAGS -I$includedir"
-- fi
- CPPFLAGS="$CPPFLAGS $X_CFLAGS"
- AC_CHECK_HEADERS([$1],[$2],[$3],[$4])
- CPPFLAGS="$ac_save_CPPFLAGS"])
-@@ -148,15 +145,9 @@
- ac_save_LDFLAGS="$LDFLAGS"
- # ac_save_LIBS="$LIBS"
-
-- if test \! -z "$includedir" ; then
-- CPPFLAGS="$CPPFLAGS -I$includedir"
-- fi
- # note: $X_CFLAGS includes $x_includes
- CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-
-- if test \! -z "$libdir" ; then
-- LDFLAGS="$LDFLAGS -L$libdir"
-- fi
- # note: $X_LIBS includes $x_libraries
- LDFLAGS="$LDFLAGS $ALL_X_LIBS"
-
diff --git a/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/desktop-moblin.patch b/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/desktop-moblin.patch
deleted file mode 100644
index d3fd76c..0000000
--- a/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/desktop-moblin.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- gnome-settings-daemon-2.26.1/data/gnome-settings-daemon.desktop.in.in~ 2009-04-24 20:59:51.000000000 -0700
-+++ gnome-settings-daemon-2.26.1/data/gnome-settings-daemon.desktop.in.in 2009-04-24 20:59:51.000000000 -0700
-@@ -2,7 +2,7 @@
- Type=Application
- _Name=GNOME Settings Daemon
- Exec=@LIBEXECDIR@/gnome-settings-daemon
--OnlyShowIn=GNOME;
-+OnlyShowIn=GNOME;MOBLIN;
- X-GNOME-Autostart-Phase=Initialization
- X-GNOME-Autostart-Notify=true
- X-GNOME-AutoRestart=true
diff --git a/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-2.24.0-catch-deviceadded.patch b/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-2.24.0-catch-deviceadded.patch
deleted file mode 100644
index 8e1d0ce..0000000
--- a/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-2.24.0-catch-deviceadded.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-============================================================
- Listen for DeviceAdded in addition to DeviceEnabled
-
- This should help address problems like left-handed
-mouse, and acceleration settings getting lost after
-resume, or when new devices gets plugged in.
-
-diff --git a/plugins/mouse/gsd-mouse-manager.c b/plugins/mouse/gsd-mouse-manager.c
---- a/plugins/mouse/gsd-mouse-manager.c
-+++ b/plugins/mouse/gsd-mouse-manager.c
-@@ -320,7 +320,7 @@ devicepresence_filter (GdkXEvent *xevent,
- if (xev->type == xi_presence)
- {
- XDevicePresenceNotifyEvent *dpn = (XDevicePresenceNotifyEvent *) xev;
-- if (dpn->devchange == DeviceEnabled)
-+ if (dpn->devchange == DeviceEnabled || dpn->devchange == DeviceAdded)
- set_mouse_settings ((GsdMouseManager *) data);
- }
- return GDK_FILTER_CONTINUE;
diff --git a/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-fix-gthread.patch b/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-fix-gthread.patch
deleted file mode 100644
index d77063e..0000000
--- a/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/gnome-settings-daemon-fix-gthread.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: gnome-settings-daemon-2.25.90/configure.ac
-===================================================================
---- gnome-settings-daemon-2.25.90.orig/configure.ac
-+++ gnome-settings-daemon-2.25.90/configure.ac
-@@ -85,6 +85,8 @@ AC_PATH_PROG(GCONFTOOL, gconftool-2)
-
- AM_GCONF_SOURCE_2
-
-+AC_CHECK_LIB(gthread-2.0, g_thread_init)
-+
- dnl ---------------------------------------------------------------------------
- dnl - Check for libnotify
- dnl ---------------------------------------------------------------------------
diff --git a/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/mojito-cleanup.patch b/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/mojito-cleanup.patch
deleted file mode 100644
index 1aff2d6..0000000
--- a/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/mojito-cleanup.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-diff --git a/plugins/housekeeping/gsd-housekeeping-manager.c b/plugins/housekeeping/gsd-housekeeping-manager.c
-index f84cfad..e8f474a 100644
---- a/plugins/housekeeping/gsd-housekeeping-manager.c
-+++ b/plugins/housekeeping/gsd-housekeeping-manager.c
-@@ -85,9 +85,13 @@ thumb_data_free (gpointer data)
- }
- }
-
-+typedef enum {
-+ HASH,
-+ HASH_PNG
-+} FileType;
-
- static GList *
--read_dir_for_purge (const char *path, GList *files)
-+read_dir_for_purge (const char *path, GList *files, FileType type)
- {
- GFile *read_path;
- GFileEnumerator *enum_dir;
-@@ -105,9 +109,20 @@ read_dir_for_purge (const char *path, GList *files)
- GFileInfo *info;
- while ((info = g_file_enumerator_next_file (enum_dir, NULL, NULL)) != NULL) {
- const char *name;
-+ gboolean prune = FALSE;
-+
- name = g_file_info_get_name (info);
-
-- if (strlen (name) == 36 && strcmp (name + 32, ".png") == 0) {
-+ switch (type) {
-+ case HASH:
-+ prune = (strlen (name) == 36);
-+ break;
-+ case HASH_PNG:
-+ prune = (strlen (name) == 36 && strcmp (name + 32, ".png") == 0);
-+ break;
-+ }
-+
-+ if (prune) {
- ThumbData *td;
- GFile *entry;
- char *entry_path;
-@@ -197,14 +212,14 @@ purge_thumbnail_cache (void)
- ".thumbnails",
- "normal",
- NULL);
-- files = read_dir_for_purge (path, NULL);
-+ files = read_dir_for_purge (path, NULL, HASH_PNG);
- g_free (path);
-
- path = g_build_filename (g_get_home_dir (),
- ".thumbnails",
- "large",
- NULL);
-- files = read_dir_for_purge (path, files);
-+ files = read_dir_for_purge (path, files, HASH_PNG);
- g_free (path);
-
- path = g_build_filename (g_get_home_dir (),
-@@ -212,7 +227,14 @@ purge_thumbnail_cache (void)
- "fail",
- "gnome-thumbnail-factory",
- NULL);
-- files = read_dir_for_purge (path, files);
-+ files = read_dir_for_purge (path, files, HASH_PNG);
-+ g_free (path);
-+
-+ path = g_build_filename (g_get_user_cache_dir (),
-+ "mojito",
-+ "thumbnails",
-+ NULL);
-+ files = read_dir_for_purge (path, files, HASH);
- g_free (path);
-
- g_get_current_time (&current_time);
diff --git a/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/mount-plugin.patch b/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/mount-plugin.patch
deleted file mode 100644
index 67f056b..0000000
--- a/meta-gnome/recipes-gnome/gnome/gnome-settings-daemon/mount-plugin.patch
+++ /dev/null
@@ -1,618 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index 135f2ce..ba737a5 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -356,6 +356,7 @@ plugins/keybindings/Makefile
- plugins/keyboard/Makefile
- plugins/media-keys/Makefile
- plugins/media-keys/cut-n-paste/Makefile
-+plugins/mount/Makefile
- plugins/mouse/Makefile
- plugins/screensaver/Makefile
- plugins/sound/Makefile
-diff --git a/data/gnome-settings-daemon.schemas.in b/data/gnome-settings-daemon.schemas.in
-index 4920ae3..502e9e6 100644
---- a/data/gnome-settings-daemon.schemas.in
-+++ b/data/gnome-settings-daemon.schemas.in
-@@ -557,5 +557,29 @@
- </locale>
- </schema>
-
-+ <schema>
-+ <key>/schemas/apps/gnome_settings_daemon/plugins/mount/active</key>
-+ <applyto>/apps/gnome_settings_daemon/plugins/mount/active</applyto>
-+ <owner>gnome-settings-daemon</owner>
-+ <type>bool</type>
-+ <default>TRUE</default>
-+ <locale name="C">
-+ <short>Enable mount plugin</short>
-+ <long>Set to True to enable the plugin to automount media.</long>
-+ </locale>
-+ </schema>
-+ <schema>
-+ <key>/schemas/apps/gnome_settings_daemon/plugins/mount/priority</key>
-+ <applyto>/apps/gnome_settings_daemon/plugins/mount/priority</applyto>
-+ <owner>gnome-settings-daemon</owner>
-+ <type>int</type>
-+ <default>99</default>
-+ <locale name="C">
-+ <short></short>
-+ <long></long>
-+ </locale>
-+ </schema>
-+
-+
- </schemalist>
- </gconfschemafile>
-diff --git a/plugins/Makefile.am b/plugins/Makefile.am
-index 2d33061..46615c1 100644
---- a/plugins/Makefile.am
-+++ b/plugins/Makefile.am
-@@ -11,6 +11,7 @@ SUBDIRS = \
- keybindings \
- keyboard \
- media-keys \
-+ mount \
- mouse \
- screensaver \
- sound \
-diff --git a/plugins/mount/Makefile.am b/plugins/mount/Makefile.am
-new file mode 100644
-index 0000000..188c83d
---- /dev/null
-+++ b/plugins/mount/Makefile.am
-@@ -0,0 +1,39 @@
-+plugin_LTLIBRARIES = \
-+ libmount.la
-+
-+libmount_la_SOURCES = \
-+ gsd-mount-manager.c \
-+ gsd-mount-manager.h \
-+ gsd-mount-plugin.c \
-+ gsd-mount-plugin.h
-+
-+libmount_la_CPPFLAGS = \
-+ -I$(top_srcdir)/gnome-settings-daemon \
-+ -DGNOME_SETTINGS_LOCALEDIR=\""$(datadir)/locale"\" \
-+ $(AM_CPPFLAGS)
-+
-+libmount_la_CFLAGS = \
-+ $(SETTINGS_PLUGIN_CFLAGS) \
-+ $(AM_CFLAGS)
-+
-+libmount_la_LDFLAGS = \
-+ $(GSD_PLUGIN_LDFLAGS)
-+
-+libmount_la_LIBADD = \
-+ $(SETTINGS_PLUGIN_LIBS)
-+
-+plugin_in_files = \
-+ mount.gnome-settings-plugin.in
-+
-+plugin_DATA = $(plugin_in_files:.gnome-settings-plugin.in=.gnome-settings-plugin)
-+
-+EXTRA_DIST = \
-+ $(plugin_in_files)
-+
-+CLEANFILES = \
-+ $(plugin_DATA)
-+
-+DISTCLEANFILES = \
-+ $(plugin_DATA)
-+
-+@GSD_INTLTOOL_PLUGIN_RULE@
-diff --git a/plugins/mount/gsd-mount-manager.c b/plugins/mount/gsd-mount-manager.c
-new file mode 100644
-index 0000000..a768f03
---- /dev/null
-+++ b/plugins/mount/gsd-mount-manager.c
-@@ -0,0 +1,261 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
-+ *
-+ * Copyright (C) 2009 Intel Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU General Public License as published by the Free Software
-+ * Foundation; either version 2 of the License, or (at your option) any later
-+ * version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
-+ * Place - Suite 330, Boston, MA 02111-1307, USA.
-+ *
-+ */
-+
-+#include <config.h>
-+
-+#include <glib.h>
-+#include <glib/gi18n.h>
-+#include <gio/gio.h>
-+#include <gtk/gtk.h>
-+
-+#include "gsd-mount-manager.h"
-+
-+#define GSD_MOUNT_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_MOUNT_MANAGER, GsdMountManagerPrivate))
-+
-+struct GsdMountManagerPrivate
-+{
-+ GVolumeMonitor *monitor;
-+};
-+
-+G_DEFINE_TYPE (GsdMountManager, gsd_mount_manager, G_TYPE_OBJECT)
-+
-+static gpointer manager_object = NULL;
-+
-+#if 0
-+static void
-+drive_connected_cb (GVolumeMonitor *monitor,
-+ GDrive *drive,
-+ GsdMountManager *manager)
-+{
-+ /* TODO: listen for the eject button */
-+}
-+#endif
-+
-+static void
-+volume_mounted_cb (GObject *source_object, GAsyncResult *result, gpointer user_data)
-+{
-+ GError *error = NULL;
-+ char *name;
-+
-+ name = g_volume_get_name (G_VOLUME (source_object));
-+
-+ if (!g_volume_mount_finish (G_VOLUME (source_object), result, &error)) {
-+ g_debug ("Failed to mount '%s': %s", name, error->message);
-+
-+ if (error->code != G_IO_ERROR_FAILED_HANDLED) {
-+ char *primary;
-+ GtkWidget *dialog;
-+
-+ primary = g_strdup_printf (_("Unable to mount %s"), name);
-+
-+ dialog = gtk_message_dialog_new (NULL, 0,
-+ GTK_MESSAGE_ERROR,
-+ GTK_BUTTONS_CLOSE,
-+ primary);
-+
-+ g_free (primary);
-+ gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), error->message);
-+
-+ gtk_dialog_run (GTK_DIALOG (dialog));
-+ gtk_widget_destroy (dialog);
-+ }
-+ g_error_free (error);
-+ } else {
-+ g_debug ("Mounted '%s'", name);
-+ }
-+
-+ g_free (name);
-+}
-+
-+static void
-+volume_added_cb (GVolumeMonitor *monitor,
-+ GVolume *volume,
-+ GsdMountManager *manager)
-+{
-+ char *name;
-+
-+ name = g_volume_get_name (volume);
-+ g_debug ("Volme '%s' added", name);
-+
-+ if (g_volume_can_mount (volume)) {
-+ GMountOperation *mount_op;
-+
-+ g_debug ("Mounting '%s'", name);
-+
-+ mount_op = gtk_mount_operation_new (NULL);
-+ g_volume_mount (volume, G_MOUNT_MOUNT_NONE,
-+ mount_op, NULL,
-+ volume_mounted_cb, manager);
-+ }
-+
-+ g_free (name);
-+}
-+
-+static void
-+mount_added_cb (GVolumeMonitor *monitor,
-+ GMount *mount,
-+ GsdMountManager *manager)
-+{
-+ GFile *file;
-+ char *uri;
-+
-+ file = g_mount_get_root (mount);
-+ uri = g_file_get_uri (file);
-+
-+ g_debug ("%s mounted, starting file manager", uri);
-+
-+ /* TODO: error */
-+ gtk_show_uri (NULL, uri, GDK_CURRENT_TIME, NULL);
-+
-+ g_free (uri);
-+ g_object_unref (file);
-+}
-+
-+static void
-+mount_existing_volumes (GsdMountManager *manager)
-+{
-+ /* TODO: iterate over drives to hook up eject */
-+ GList *l;
-+
-+ g_debug ("Mounting existing volumes");
-+
-+ l = g_volume_monitor_get_volumes (manager->priv->monitor);
-+ while (l) {
-+ GVolume *volume = l->data;
-+ GMount *mount;
-+
-+ mount = g_volume_get_mount (volume);
-+ if (mount == NULL &&
-+ g_volume_can_mount (volume) &&
-+ g_volume_should_automount (volume)) {
-+ GMountOperation *mount_op;
-+ char *name;
-+
-+ name = g_volume_get_name (volume);
-+ g_debug ("Mounting '%s'", name);
-+ g_free (name);
-+
-+ mount_op = gtk_mount_operation_new (NULL);
-+ g_volume_mount (volume, G_MOUNT_MOUNT_NONE,
-+ mount_op, NULL,
-+ volume_mounted_cb, manager);
-+ }
-+
-+ if (mount)
-+ g_object_unref (mount);
-+ g_object_unref (volume);
-+ l = g_list_delete_link (l, l);
-+ }
-+}
-+
-+gboolean
-+gsd_mount_manager_start (GsdMountManager *manager,
-+ GError **error)
-+{
-+ g_debug ("Starting mount manager");
-+
-+ manager->priv->monitor = g_volume_monitor_get ();
-+
-+#if 0
-+ g_signal_connect_object (manager->priv->monitor, "drive-connected",
-+ G_CALLBACK (drive_connected_cb), manager, 0);
-+#endif
-+ g_signal_connect_object (manager->priv->monitor, "volume-added",
-+ G_CALLBACK (volume_added_cb), manager, 0);
-+ g_signal_connect_object (manager->priv->monitor, "mount-added",
-+ G_CALLBACK (mount_added_cb), manager, 0);
-+
-+ /* TODO: handle eject buttons */
-+
-+#if 0
-+ mount_existing_volumes (manager);
-+#endif
-+
-+ return TRUE;
-+}
-+
-+void
-+gsd_mount_manager_stop (GsdMountManager *manager)
-+{
-+ g_debug ("Stopping mount manager");
-+}
-+
-+static void
-+gsd_mount_manager_dispose (GObject *object)
-+{
-+ GsdMountManager *manager = GSD_MOUNT_MANAGER (object);
-+
-+ if (manager->priv->monitor) {
-+ g_signal_handlers_disconnect_by_func
-+ (manager->priv->monitor, volume_added_cb, manager);
-+ g_signal_handlers_disconnect_by_func
-+ (manager->priv->monitor, mount_added_cb, manager);
-+ g_object_unref (manager->priv->monitor);
-+ manager->priv->monitor = NULL;
-+ }
-+
-+ G_OBJECT_CLASS (gsd_mount_manager_parent_class)->dispose (object);
-+}
-+
-+static void
-+gsd_mount_manager_init (GsdMountManager *manager)
-+{
-+ manager->priv = GSD_MOUNT_MANAGER_GET_PRIVATE (manager);
-+}
-+
-+static void
-+gsd_mount_manager_finalize (GObject *object)
-+{
-+ GsdMountManager *mount_manager;
-+
-+ g_return_if_fail (object != NULL);
-+ g_return_if_fail (GSD_IS_MOUNT_MANAGER (object));
-+
-+ mount_manager = GSD_MOUNT_MANAGER (object);
-+
-+ g_return_if_fail (mount_manager->priv != NULL);
-+
-+ G_OBJECT_CLASS (gsd_mount_manager_parent_class)->finalize (object);
-+}
-+
-+static void
-+gsd_mount_manager_class_init (GsdMountManagerClass *klass)
-+{
-+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
-+
-+ object_class->dispose = gsd_mount_manager_dispose;
-+ object_class->finalize = gsd_mount_manager_finalize;
-+
-+ g_type_class_add_private (klass, sizeof (GsdMountManagerPrivate));
-+}
-+
-+GsdMountManager *
-+gsd_mount_manager_new (void)
-+{
-+ if (manager_object != NULL) {
-+ g_object_ref (manager_object);
-+ } else {
-+ manager_object = g_object_new (GSD_TYPE_MOUNT_MANAGER, NULL);
-+ g_object_add_weak_pointer (manager_object,
-+ (gpointer *) &manager_object);
-+ }
-+
-+ return GSD_MOUNT_MANAGER (manager_object);
-+}
-diff --git a/plugins/mount/gsd-mount-manager.h b/plugins/mount/gsd-mount-manager.h
-new file mode 100644
-index 0000000..9093fff
---- /dev/null
-+++ b/plugins/mount/gsd-mount-manager.h
-@@ -0,0 +1,58 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
-+ *
-+ * Copyright (C) 2009 Intel Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU General Public License as published by the Free Software
-+ * Foundation; either version 2 of the License, or (at your option) any later
-+ * version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
-+ * Place - Suite 330, Boston, MA 02111-1307, USA.
-+ *
-+ */
-+
-+#ifndef __GSD_MOUNT_MANAGER_H
-+#define __GSD_MOUNT_MANAGER_H
-+
-+#include <glib-object.h>
-+
-+G_BEGIN_DECLS
-+
-+#define GSD_TYPE_MOUNT_MANAGER (gsd_mount_manager_get_type ())
-+#define GSD_MOUNT_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_MOUNT_MANAGER, GsdMountManager))
-+#define GSD_MOUNT_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSD_TYPE_MOUNT_MANAGER, GsdMountManagerClass))
-+#define GSD_IS_MOUNT_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_MOUNT_MANAGER))
-+#define GSD_IS_MOUNT_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_MOUNT_MANAGER))
-+#define GSD_MOUNT_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_MOUNT_MANAGER, GsdMountManagerClass))
-+
-+typedef struct GsdMountManagerPrivate GsdMountManagerPrivate;
-+
-+typedef struct
-+{
-+ GObject parent;
-+ GsdMountManagerPrivate *priv;
-+} GsdMountManager;
-+
-+typedef struct
-+{
-+ GObjectClass parent_class;
-+} GsdMountManagerClass;
-+
-+GType gsd_mount_manager_get_type (void);
-+
-+GsdMountManager * gsd_mount_manager_new (void);
-+
-+gboolean gsd_mount_manager_start (GsdMountManager *manager,
-+ GError **error);
-+void gsd_mount_manager_stop (GsdMountManager *manager);
-+
-+G_END_DECLS
-+
-+#endif /* __GSD_MOUNT_MANAGER_H */
-diff --git a/plugins/mount/gsd-mount-plugin.c b/plugins/mount/gsd-mount-plugin.c
-new file mode 100644
-index 0000000..af295a5
---- /dev/null
-+++ b/plugins/mount/gsd-mount-plugin.c
-@@ -0,0 +1,103 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
-+ *
-+ * Copyright (C) 2009 Intel Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU General Public License as published by the Free Software
-+ * Foundation; either version 2, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
-+ * Place - Suite 330, Boston, MA 02111-1307, USA.
-+ *
-+ */
-+
-+#include <config.h>
-+
-+#include <glib/gi18n.h>
-+#include <gmodule.h>
-+#include <gnome-settings-daemon/gnome-settings-plugin.h>
-+
-+#include "gsd-mount-plugin.h"
-+#include "gsd-mount-manager.h"
-+
-+struct GsdMountPluginPrivate {
-+ GsdMountManager *manager;
-+};
-+
-+#define GSD_MOUNT_PLUGIN_GET_PRIVATE(object) (G_TYPE_INSTANCE_GET_PRIVATE ((object), GSD_TYPE_MOUNT_PLUGIN, GsdMountPluginPrivate))
-+
-+GNOME_SETTINGS_PLUGIN_REGISTER (GsdMountPlugin, gsd_mount_plugin)
-+
-+static void
-+gsd_mount_plugin_init (GsdMountPlugin *plugin)
-+{
-+ plugin->priv = GSD_MOUNT_PLUGIN_GET_PRIVATE (plugin);
-+
-+ g_debug ("GsdMountPlugin initializing");
-+
-+ plugin->priv->manager = gsd_mount_manager_new ();
-+}
-+
-+static void
-+gsd_mount_plugin_finalize (GObject *object)
-+{
-+ GsdMountPlugin *plugin;
-+
-+ g_return_if_fail (object != NULL);
-+ g_return_if_fail (GSD_IS_MOUNT_PLUGIN (object));
-+
-+ g_debug ("GsdMountPlugin finalizing");
-+
-+ plugin = GSD_MOUNT_PLUGIN (object);
-+
-+ g_return_if_fail (plugin->priv != NULL);
-+
-+ if (plugin->priv->manager != NULL) {
-+ g_object_unref (plugin->priv->manager);
-+ }
-+
-+ G_OBJECT_CLASS (gsd_mount_plugin_parent_class)->finalize (object);
-+}
-+
-+static void
-+impl_activate (GnomeSettingsPlugin *plugin)
-+{
-+ gboolean res;
-+ GError *error;
-+
-+ g_debug ("Activating mount plugin");
-+
-+ error = NULL;
-+ res = gsd_mount_manager_start (GSD_MOUNT_PLUGIN (plugin)->priv->manager, &error);
-+ if (! res) {
-+ g_warning ("Unable to start mount manager: %s", error->message);
-+ g_error_free (error);
-+ }
-+}
-+
-+static void
-+impl_deactivate (GnomeSettingsPlugin *plugin)
-+{
-+ g_debug ("Deactivating mount plugin");
-+ gsd_mount_manager_stop (GSD_MOUNT_PLUGIN (plugin)->priv->manager);
-+}
-+
-+static void
-+gsd_mount_plugin_class_init (GsdMountPluginClass *klass)
-+{
-+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
-+ GnomeSettingsPluginClass *plugin_class = GNOME_SETTINGS_PLUGIN_CLASS (klass);
-+
-+ object_class->finalize = gsd_mount_plugin_finalize;
-+
-+ plugin_class->activate = impl_activate;
-+ plugin_class->deactivate = impl_deactivate;
-+
-+ g_type_class_add_private (klass, sizeof (GsdMountPluginPrivate));
-+}
-diff --git a/plugins/mount/gsd-mount-plugin.h b/plugins/mount/gsd-mount-plugin.h
-new file mode 100644
-index 0000000..526a41f
---- /dev/null
-+++ b/plugins/mount/gsd-mount-plugin.h
-@@ -0,0 +1,55 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
-+ *
-+ * Copyright (C) 2009 Intel Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU General Public License as published by the Free Software
-+ * Foundation; either version 2, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-+ * details.
-+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
-+ * Place - Suite 330, Boston, MA 02111-1307, USA.
-+ *
-+ */
-+
-+#ifndef __GSD_MOUNT_PLUGIN_H__
-+#define __GSD_MOUNT_PLUGIN_H__
-+
-+#include <glib-object.h>
-+#include <gmodule.h>
-+#include <gnome-settings-daemon/gnome-settings-plugin.h>
-+
-+G_BEGIN_DECLS
-+
-+#define GSD_TYPE_MOUNT_PLUGIN (gsd_mount_plugin_get_type ())
-+#define GSD_MOUNT_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_MOUNT_PLUGIN, GsdMountPlugin))
-+#define GSD_MOUNT_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSD_TYPE_MOUNT_PLUGIN, GsdMountPluginClass))
-+#define GSD_IS_MOUNT_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_MOUNT_PLUGIN))
-+#define GSD_IS_MOUNT_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_MOUNT_PLUGIN))
-+#define GSD_MOUNT_PLUGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_MOUNT_PLUGIN, GsdMountPluginClass))
-+
-+typedef struct GsdMountPluginPrivate GsdMountPluginPrivate;
-+
-+typedef struct
-+{
-+ GnomeSettingsPlugin parent;
-+ GsdMountPluginPrivate *priv;
-+} GsdMountPlugin;
-+
-+typedef struct
-+{
-+ GnomeSettingsPluginClass parent_class;
-+} GsdMountPluginClass;
-+
-+GType gsd_mount_plugin_get_type (void) G_GNUC_CONST;
-+
-+G_MODULE_EXPORT GType register_gnome_settings_plugin (GTypeModule *module);
-+
-+G_END_DECLS
-+
-+#endif /* __GSD_MOUNT_PLUGIN_H__ */
-diff --git a/plugins/mount/mount.gnome-settings-plugin.in b/plugins/mount/mount.gnome-settings-plugin.in
-new file mode 100644
-index 0000000..ca29ad1
---- /dev/null
-+++ b/plugins/mount/mount.gnome-settings-plugin.in
-@@ -0,0 +1,8 @@
-+[GNOME Settings Plugin]
-+Module=mount
-+IAge=0
-+_Name=Mount
-+_Description=Mount removable media
-+Authors=Ross Burton
-+Copyright=Copyright © 2009 Intel Corporation
-+Website=