summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn N. Laliberte <allanonjl@gentoo.org>2006-06-18 23:47:11 +0000
committerJohn N. Laliberte <allanonjl@gentoo.org>2006-06-18 23:47:11 +0000
commit445a1429525253527c1080910beae7ab2f816f33 (patch)
treed3b26b4986c7a823a3860777b057c9eb56ac0106 /gnome-base
parentVersion bump to 0.0.3. (diff)
downloadgentoo-2-445a1429525253527c1080910beae7ab2f816f33.tar.gz
gentoo-2-445a1429525253527c1080910beae7ab2f816f33.tar.bz2
gentoo-2-445a1429525253527c1080910beae7ab2f816f33.zip
fix for mounting things that already have a line in fstab. fixes #137211. combine all previous patches into 1 patch from upstream cvs.
(Portage version: 2.1.1_pre1-r1)
Diffstat (limited to 'gnome-base')
-rw-r--r--gnome-base/gnome-mount/ChangeLog9
-rw-r--r--gnome-base/gnome-mount/files/digest-gnome-mount-0.4-r43
-rw-r--r--gnome-base/gnome-mount/files/gnome-mount-hal-no-media-fstab.patch678
-rw-r--r--gnome-base/gnome-mount/gnome-mount-0.4-r4.ebuild35
4 files changed, 724 insertions, 1 deletions
diff --git a/gnome-base/gnome-mount/ChangeLog b/gnome-base/gnome-mount/ChangeLog
index 566e8474abd2..5c780d613698 100644
--- a/gnome-base/gnome-mount/ChangeLog
+++ b/gnome-base/gnome-mount/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for gnome-base/gnome-mount
# Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-mount/ChangeLog,v 1.10 2006/05/21 23:37:07 dang Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-mount/ChangeLog,v 1.11 2006/06/18 23:47:11 allanonjl Exp $
+
+*gnome-mount-0.4-r4 (18 Jun 2006)
+
+ 18 Jun 2006; John N. Laliberte <allanonjl@gentoo.org>
+ +files/gnome-mount-hal-no-media-fstab.patch, +gnome-mount-0.4-r4.ebuild:
+ fix for mounting things that already have a line in fstab. fixes #137211.
+ combine all previous patches into 1 patch from upstream cvs.
21 May 2006; Daniel Gryniewicz <dang@gentoo.org>
-gnome-mount-0.4-r1.ebuild:
diff --git a/gnome-base/gnome-mount/files/digest-gnome-mount-0.4-r4 b/gnome-base/gnome-mount/files/digest-gnome-mount-0.4-r4
new file mode 100644
index 000000000000..8b49c8a43c9e
--- /dev/null
+++ b/gnome-base/gnome-mount/files/digest-gnome-mount-0.4-r4
@@ -0,0 +1,3 @@
+MD5 75f260ea6b0ec3c5e0af3c722fbd9568 gnome-mount-0.4.tar.gz 364546
+RMD160 a4f28e3111bfcfce2101cbf53f9c57f63d9ba2be gnome-mount-0.4.tar.gz 364546
+SHA256 fa9456c0cd1adeda962721fed955914bdc23723a403bebf31bd95a1f54211dd8 gnome-mount-0.4.tar.gz 364546
diff --git a/gnome-base/gnome-mount/files/gnome-mount-hal-no-media-fstab.patch b/gnome-base/gnome-mount/files/gnome-mount-hal-no-media-fstab.patch
new file mode 100644
index 000000000000..5900e4feb151
--- /dev/null
+++ b/gnome-base/gnome-mount/files/gnome-mount-hal-no-media-fstab.patch
@@ -0,0 +1,678 @@
+--- gnome-mount-0.4/src/gnome-mount.c 2006-02-24 00:14:23.000000000 -0500
++++ gnome-mount-0.4.new/src/gnome-mount.c 2006-06-18 19:40:03.000000000 -0400
+@@ -238,7 +238,8 @@
+ /* #define MOUNT_ERROR_DIALOG_RESPONSE_INSTALL_DRIVER 10 see below */
+
+ static void
+-show_error_dialog_mount (LibHalVolume *volume, const char *error_name, const char *error_detail,
++show_error_dialog_mount (LibHalVolume *volume, LibHalDrive *drive,
++ const char *error_name, const char *error_detail,
+ const char *fstype_requested)
+ {
+ GtkWidget *w;
+@@ -266,7 +267,10 @@
+ 0,
+ _("Cannot mount volume"));
+
+- volume_name = libhal_volume_get_label (volume);
++ if (volume != NULL)
++ volume_name = libhal_volume_get_label (volume);
++ else
++ volume_name = NULL;
+
+ if (strcmp (error_name, "org.freedesktop.Hal.Device.Volume.PermissionDenied") == 0) {
+ gtk_message_dialog_format_secondary_text (
+@@ -289,8 +293,8 @@
+ volume_name != NULL ?
+ _("The volume '%s' uses the <i>%s</i> file system which is not supported by your system.") :
+ _("The volume uses the <i>%s</i> file system which is not supported by your system."),
+- volume_name != NULL ? volume_name : fstype_requested,
+- volume_name != NULL ? fstype_requested : "");
++ volume_name != NULL ? volume_name : (fstype_requested != NULL ? fstype_requested : ""),
++ volume_name != NULL ? (fstype_requested != NULL ? fstype_requested : "") : "");
+
+ /* some day.. :-)
+ gtk_dialog_add_buttons (GTK_DIALOG (w),
+@@ -463,9 +467,9 @@
+
+ notify_parent (FALSE);
+
+- show_error_dialog_mount (volume, error.name, error.message,
++ show_error_dialog_mount (volume, drive, error.name, error.message,
+ (fstype != NULL && strlen (fstype) > 0) ?
+- fstype : libhal_volume_get_fstype (volume));
++ fstype : (volume != NULL ? libhal_volume_get_fstype (volume) : NULL));
+
+ dbus_error_free (&error);
+ goto out;
+@@ -573,6 +577,226 @@
+ return flags;
+ }
+
++
++static gboolean
++fstab_open (gpointer *handle)
++{
++#ifdef __FreeBSD__
++ return setfsent () == 1;
++#else
++ *handle = fopen ("/etc/fstab", "r");
++ return *handle != NULL;
++#endif
++}
++
++static char *
++fstab_next (gpointer handle, char **mount_point)
++{
++#ifdef __FreeBSD__
++ struct fstab *fstab;
++
++ fstab = getfsent ();
++
++ /* TODO: fill out mount_point */
++ if (mount_point != NULL && fstab != NULL) {
++ *mount_point = fstab->fs_file;
++ }
++
++ return fstab ? fstab->fs_spec : NULL;
++#else
++ struct mntent *mnt;
++
++ mnt = getmntent (handle);
++
++ if (mount_point != NULL && mnt != NULL) {
++ *mount_point = mnt->mnt_dir;
++ }
++
++ return mnt ? mnt->mnt_fsname : NULL;
++#endif
++}
++
++
++static void
++fstab_close (gpointer handle)
++{
++#ifdef __FreeBSD__
++ endfsent ();
++#else
++ fclose (handle);
++#endif
++}
++
++
++/* borrowed from gtk/gtkfilesystemunix.c in GTK+ on 02/23/2006 */
++static void
++canonicalize_filename (gchar *filename)
++{
++ gchar *p, *q;
++ gboolean last_was_slash = FALSE;
++
++ p = filename;
++ q = filename;
++
++ while (*p)
++ {
++ if (*p == G_DIR_SEPARATOR)
++ {
++ if (!last_was_slash)
++ *q++ = G_DIR_SEPARATOR;
++
++ last_was_slash = TRUE;
++ }
++ else
++ {
++ if (last_was_slash && *p == '.')
++ {
++ if (*(p + 1) == G_DIR_SEPARATOR ||
++ *(p + 1) == '\0')
++ {
++ if (*(p + 1) == '\0')
++ break;
++
++ p += 1;
++ }
++ else if (*(p + 1) == '.' &&
++ (*(p + 2) == G_DIR_SEPARATOR ||
++ *(p + 2) == '\0'))
++ {
++ if (q > filename + 1)
++ {
++ q--;
++ while (q > filename + 1 &&
++ *(q - 1) != G_DIR_SEPARATOR)
++ q--;
++ }
++
++ if (*(p + 2) == '\0')
++ break;
++
++ p += 2;
++ }
++ else
++ {
++ *q++ = *p;
++ last_was_slash = FALSE;
++ }
++ }
++ else
++ {
++ *q++ = *p;
++ last_was_slash = FALSE;
++ }
++ }
++
++ p++;
++ }
++
++ if (q > filename + 1 && *(q - 1) == G_DIR_SEPARATOR)
++ q--;
++
++ *q = '\0';
++}
++
++static char *
++resolve_symlink (const char *file)
++{
++ GError *error;
++ char *dir;
++ char *link;
++ char *f;
++ char *f1;
++
++ f = g_strdup (file);
++
++ while (g_file_test (f, G_FILE_TEST_IS_SYMLINK)) {
++ link = g_file_read_link (f, &error);
++ if (link == NULL) {
++ g_warning ("Cannot resolve symlink %s: %s", f, error->message);
++ g_error_free (error);
++ g_free (f);
++ f = NULL;
++ goto out;
++ }
++
++ dir = g_path_get_dirname (f);
++ f1 = g_strdup_printf ("%s/%s", dir, link);
++ g_free (dir);
++ g_free (link);
++ g_free (f);
++ f = f1;
++ }
++
++out:
++ if (f != NULL)
++ canonicalize_filename (f);
++ return f;
++}
++
++static gboolean
++is_in_fstab (const char *device_file, const char *label, const char *uuid, char **mount_point)
++{
++ gboolean ret;
++ gpointer handle;
++ char *entry;
++ char *_mount_point;
++
++ ret = FALSE;
++
++ /* check if /etc/fstab mentions this device... (with symlinks etc) */
++ if (!fstab_open (&handle)) {
++ handle = NULL;
++ goto out;
++ }
++
++ while ((entry = fstab_next (handle, &_mount_point)) != NULL) {
++ char *resolved;
++
++ if (label != NULL && g_str_has_prefix (entry, "LABEL=")) {
++ if (strcmp (entry + 6, label) == 0) {
++ ret = TRUE;
++ if (mount_point != NULL)
++ *mount_point = g_strdup (_mount_point);
++ goto out;
++ }
++ }
++
++ if (uuid != NULL && g_str_has_prefix (entry, "UUID=")) {
++ if (strcmp (entry + 5, uuid) == 0) {
++ ret = TRUE;
++ if (mount_point != NULL)
++ *mount_point = g_strdup (_mount_point);
++ goto out;
++ }
++ }
++
++ resolved = resolve_symlink (entry);
++ if (strcmp (device_file, resolved) == 0) {
++ ret = TRUE;
++ g_free (resolved);
++ if (mount_point != NULL)
++ *mount_point = g_strdup (_mount_point);
++ goto out;
++ }
++
++ g_free (resolved);
++ }
++
++out:
++ if (handle != NULL)
++ fstab_close (handle);
++
++ return ret;
++}
++
++#ifdef __FreeBSD__
++#define MOUNT "/sbin/mount"
++#define UMOUNT "/sbin/umount"
++#else
++#define MOUNT "/bin/mount"
++#define UMOUNT "/bin/umount"
++#endif
++
+ static gboolean
+ volume_mount (const char *udi, LibHalVolume *volume, LibHalDrive *drive)
+ {
+@@ -587,9 +811,89 @@
+ char *key;
+ gboolean ret;
+ const char *fstype;
++ const char *device_file;
++ const char *label;
++ const char *uuid;
+
+ ret = FALSE;
+
++ g_debug ("Mounting %s", udi);
++
++ /* check if it's in /etc/fstab */
++ label = NULL;
++ uuid = NULL;
++ device_file = NULL;
++ if (volume != NULL) {
++ label = libhal_volume_get_label (volume);
++ uuid = libhal_volume_get_uuid (volume);
++ device_file = libhal_volume_get_device_file (volume);
++ } else if (drive != NULL) {
++ device_file = libhal_drive_get_device_file (drive);
++ }
++ if (device_file != NULL) {
++ char *mount_point = NULL;
++
++ if (is_in_fstab (device_file, label, uuid, &mount_point)) {
++ GError *err = NULL;
++ char *sout = NULL;
++ char *serr = NULL;
++ int exit_status;
++ char *args[3] = {MOUNT, NULL, NULL};
++ char **envp = {NULL};
++
++ g_print (_("Device %s is in /etc/fstab with mount point \"%s\"\n"),
++ device_file, mount_point);
++ args[1] = mount_point;
++ if (!g_spawn_sync ("/",
++ args,
++ envp,
++ 0,
++ NULL,
++ NULL,
++ &sout,
++ &serr,
++ &exit_status,
++ &err)) {
++ g_warning ("Cannot execute %s\n", MOUNT);
++ g_free (mount_point);
++ goto out;
++ }
++
++ if (exit_status != 0) {
++ char errstr[] = "mount: unknown filesystem type";
++
++ g_warning ("%s said error %d, stdout='%s', stderr='%s'\n",
++ MOUNT, exit_status, sout, serr);
++
++ if (strstr (serr, "unknown filesystem type") != NULL) {
++ show_error_dialog_mount (volume, drive, "org.freedesktop.Hal.Device.Volume.UnknownFilesystemType", serr, NULL);
++ } else if (strstr (serr, "already mounted") != NULL) {
++ show_error_dialog_mount (volume, drive, "org.freedesktop.Hal.Device.Volume.AlreadyMounted", serr, NULL);
++ } else if (strstr (serr, "only root") != NULL) {
++ show_error_dialog_mount (volume, drive, "org.freedesktop.Hal.Device.Volume.PermissionDenied", serr, NULL);
++ } else if (strstr (serr, "bad option") != NULL) {
++ show_error_dialog_mount (volume, drive, "org.freedesktop.Hal.Device.Volume.InvalidMountOption", serr, NULL);
++ } else {
++ show_error_dialog_mount (volume, drive, "org.freedesktop.Hal.Device.Volume.UnknownFailure", serr, NULL);
++ }
++
++ g_free (mount_point);
++ goto out;
++
++ }
++
++ g_print (_("Mounted %s at \"%s\" (using /etc/fstab)\n"), device_file, mount_point);
++
++ g_free (mount_point);
++ ret = TRUE;
++ goto out;
++
++ }
++ g_free (mount_point);
++ }
++
++
++
+ if (volume != NULL) {
+ fstype = libhal_volume_get_fstype (volume);
+ } else {
+@@ -690,6 +994,7 @@
+
+ g_free (mount_point);
+
++out:
+ return ret;
+ }
+
+@@ -697,15 +1002,89 @@
+ static gboolean
+ volume_unmount (const char *udi, LibHalVolume *volume, LibHalDrive *drive)
+ {
+- gboolean ret = FALSE;
++ gboolean ret;
+ DBusMessage *msg = NULL;
+ DBusMessage *reply = NULL;
+ DBusError error;
+ char **options = NULL;
+ unsigned int num_options = 0;
++ const char *fstype;
++ const char *device_file;
++ const char *label;
++ const char *uuid;
++
++ ret = FALSE;
+
+ g_debug ("Unmounting %s", udi);
+
++ /* check if it's in /etc/fstab */
++ label = NULL;
++ uuid = NULL;
++ device_file = NULL;
++ if (volume != NULL) {
++ label = libhal_volume_get_label (volume);
++ uuid = libhal_volume_get_uuid (volume);
++ device_file = libhal_volume_get_device_file (volume);
++ } else if (drive != NULL) {
++ device_file = libhal_drive_get_device_file (drive);
++ }
++ if (device_file != NULL) {
++ char *mount_point = NULL;
++
++ if (is_in_fstab (device_file, label, uuid, &mount_point)) {
++ GError *err = NULL;
++ char *sout = NULL;
++ char *serr = NULL;
++ int exit_status;
++ char *args[3] = {UMOUNT, NULL, NULL};
++ char **envp = {NULL};
++
++ g_print (_("Device %s is in /etc/fstab with mount point \"%s\"\n"),
++ device_file, mount_point);
++ args[1] = mount_point;
++ if (!g_spawn_sync ("/",
++ args,
++ envp,
++ 0,
++ NULL,
++ NULL,
++ &sout,
++ &serr,
++ &exit_status,
++ &err)) {
++ g_warning ("Cannot execute %s\n", UMOUNT);
++ g_free (mount_point);
++ goto out;
++ }
++
++ if (exit_status != 0) {
++ g_warning ("%s said error %d, stdout='%s', stderr='%s'\n",
++ UMOUNT, exit_status, sout, serr);
++ g_free (mount_point);
++
++ if (strstr (serr, "is busy") != NULL) {
++ show_error_dialog_unmount (udi, volume, drive, "org.freedesktop.Hal.Device.Volume.Busy", serr);
++ } else if (strstr (serr, "not mounted") != NULL) {
++ show_error_dialog_unmount (udi, volume, drive, "org.freedesktop.Hal.Device.Volume.NotMounted", serr);
++ } else if (strstr (serr, "only root") != NULL) {
++ show_error_dialog_unmount (udi, volume, drive, "org.freedesktop.Hal.Device.Volume.PermissionDenied", serr);
++ } else {
++ show_error_dialog_unmount (udi, volume, drive, "org.freedesktop.Hal.Device.Volume.UnknownFailure", serr);
++ }
++
++ goto out;
++ }
++
++ g_print (_("Unmounted %s (using /etc/fstab).\n"), device_file);
++
++ g_free (mount_point);
++ ret = TRUE;
++ goto out;
++
++ }
++ g_free (mount_point);
++ }
++
+ msg = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
+ "org.freedesktop.Hal.Device.Volume",
+ "Unmount");
+@@ -752,8 +1131,82 @@
+ DBusError error;
+ char **options = NULL;
+ unsigned int num_options = 0;
++ const char *fstype;
++ const char *device_file;
++ const char *label;
++ const char *uuid;
++
++ ret = FALSE;
+
+ g_debug ("Ejecting %s", udi);
++
++ /* check if it's in /etc/fstab */
++ label = NULL;
++ uuid = NULL;
++ device_file = NULL;
++ if (volume != NULL) {
++ label = libhal_volume_get_label (volume);
++ uuid = libhal_volume_get_uuid (volume);
++ device_file = libhal_volume_get_device_file (volume);
++ } else if (drive != NULL) {
++ device_file = libhal_drive_get_device_file (drive);
++ }
++ if (device_file != NULL) {
++ char *mount_point = NULL;
++
++ if (is_in_fstab (device_file, label, uuid, &mount_point)) {
++ GError *err = NULL;
++ char *sout = NULL;
++ char *serr = NULL;
++ int exit_status;
++ char *args[3] = {"eject", NULL, NULL};
++ char **envp = {NULL};
++
++ g_print (_("Device %s is in /etc/fstab with mount point \"%s\"\n"),
++ device_file, mount_point);
++ args[1] = mount_point;
++ if (!g_spawn_sync ("/",
++ args,
++ envp,
++ G_SPAWN_SEARCH_PATH,
++ NULL,
++ NULL,
++ &sout,
++ &serr,
++ &exit_status,
++ &err)) {
++ g_warning ("Cannot execute %s\n", "eject");
++ g_free (mount_point);
++ goto out;
++ }
++
++ if (exit_status != 0) {
++ g_warning ("%s said error %d, stdout='%s', stderr='%s'\n",
++ "eject", exit_status, sout, serr);
++ g_free (mount_point);
++
++ if (strstr (serr, "is busy") != NULL) {
++ show_error_dialog_eject (udi, volume, drive, "org.freedesktop.Hal.Device.Volume.Busy", serr);
++ } else if (strstr (serr, "only root") != NULL) {
++ show_error_dialog_eject (udi, volume, drive, "org.freedesktop.Hal.Device.Volume.PermissionDenied", serr);
++ } else if (strstr (serr, "unable to open") != NULL) {
++ show_error_dialog_eject (udi, volume, drive, "org.freedesktop.Hal.Device.Volume.PermissionDenied", serr);
++ } else {
++ show_error_dialog_eject (udi, volume, drive, "org.freedesktop.Hal.Device.Volume.UnknownFailure", serr);
++ }
++
++ goto out;
++ }
++
++ g_print (_("Ejected %s (using /etc/fstab).\n"), device_file);
++
++ g_free (mount_point);
++ ret = TRUE;
++ goto out;
++
++ }
++ g_free (mount_point);
++ }
+
+ msg = dbus_message_new_method_call ("org.freedesktop.Hal", udi,
+ "org.freedesktop.Hal.Device.Volume",
+@@ -1255,112 +1708,6 @@
+ {
+ }
+
+-
+-/* borrowed from gtk/gtkfilesystemunix.c in GTK+ on 02/23/2006 */
+-static void
+-canonicalize_filename (gchar *filename)
+-{
+- gchar *p, *q;
+- gboolean last_was_slash = FALSE;
+-
+- p = filename;
+- q = filename;
+-
+- while (*p)
+- {
+- if (*p == G_DIR_SEPARATOR)
+- {
+- if (!last_was_slash)
+- *q++ = G_DIR_SEPARATOR;
+-
+- last_was_slash = TRUE;
+- }
+- else
+- {
+- if (last_was_slash && *p == '.')
+- {
+- if (*(p + 1) == G_DIR_SEPARATOR ||
+- *(p + 1) == '\0')
+- {
+- if (*(p + 1) == '\0')
+- break;
+-
+- p += 1;
+- }
+- else if (*(p + 1) == '.' &&
+- (*(p + 2) == G_DIR_SEPARATOR ||
+- *(p + 2) == '\0'))
+- {
+- if (q > filename + 1)
+- {
+- q--;
+- while (q > filename + 1 &&
+- *(q - 1) != G_DIR_SEPARATOR)
+- q--;
+- }
+-
+- if (*(p + 2) == '\0')
+- break;
+-
+- p += 2;
+- }
+- else
+- {
+- *q++ = *p;
+- last_was_slash = FALSE;
+- }
+- }
+- else
+- {
+- *q++ = *p;
+- last_was_slash = FALSE;
+- }
+- }
+-
+- p++;
+- }
+-
+- if (q > filename + 1 && *(q - 1) == G_DIR_SEPARATOR)
+- q--;
+-
+- *q = '\0';
+-}
+-
+-static char *
+-resolve_symlink (const char *file)
+-{
+- GError *error;
+- char *dir;
+- char *link;
+- char *f;
+- char *f1;
+-
+- f = g_strdup (file);
+-
+- while (g_file_test (f, G_FILE_TEST_IS_SYMLINK)) {
+- link = g_file_read_link (f, &error);
+- if (link == NULL) {
+- g_warning ("Cannot resolve symlink %s: %s", f, error->message);
+- g_error_free (error);
+- g_free (f);
+- f = NULL;
+- goto out;
+- }
+-
+- dir = g_path_get_dirname (f);
+- f1 = g_strdup_printf ("%s/%s", dir, link);
+- g_free (dir);
+- g_free (link);
+- g_free (f);
+- f = f1;
+- }
+-
+-out:
+- if (f != NULL)
+- canonicalize_filename (f);
+- return f;
+-}
+-
+ int
+ main (int argc, char *argv[])
+ {
+@@ -1689,7 +2036,8 @@
+
+ goto out;
+
+- } else if (fsusage == LIBHAL_VOLUME_USAGE_MOUNTABLE_FILESYSTEM) {
++ } else if (fsusage == LIBHAL_VOLUME_USAGE_MOUNTABLE_FILESYSTEM ||
++ fsusage == LIBHAL_VOLUME_USAGE_UNKNOWN) {
+ if (volume_mount (udi, volume, drive))
+ rc = 0;
+ }
+@@ -1700,7 +2048,7 @@
+
+ out:
+ if (drive != NULL)
+- libhal_volume_free (volume);
++ libhal_drive_free (drive);
+
+ if (volume != NULL)
+ libhal_volume_free (volume);
diff --git a/gnome-base/gnome-mount/gnome-mount-0.4-r4.ebuild b/gnome-base/gnome-mount/gnome-mount-0.4-r4.ebuild
new file mode 100644
index 000000000000..00f8396cd5ab
--- /dev/null
+++ b/gnome-base/gnome-mount/gnome-mount-0.4-r4.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-mount/gnome-mount-0.4-r4.ebuild,v 1.1 2006/06/18 23:47:11 allanonjl Exp $
+
+inherit eutils gnome2
+
+DESCRIPTION="Wrapper for (un)mounting and ejecting disks"
+HOMEPAGE="http://freedesktop.org/~david/"
+SRC_URI="http://freedesktop.org/~david/dist/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="debug"
+
+RDEPEND=">=gnome-base/libgnomeui-2.13
+ >=sys-apps/dbus-0.60
+ >=sys-apps/hal-0.5.7-r1
+ >=x11-libs/gtk+-2.8
+ gnome-base/gnome-keyring
+ >=gnome-base/libglade-2
+ >=gnome-base/gconf-2"
+
+DEPEND="${RDEPEND}
+ dev-util/pkgconfig
+ >=dev-util/intltool-0.29"
+
+DOCS="AUTHORS ChangeLog COPYING HACKING INSTALL NEWS README TODO"
+
+src_unpack() {
+ gnome2_src_unpack
+
+ # fixes for bug #133549, bug #133880, bug #137211
+ epatch ${FILESDIR}/${PN}-hal-no-media-fstab.patch
+}