diff options
author | 2008-03-10 22:35:27 +0000 | |
---|---|---|
committer | 2008-03-10 22:35:27 +0000 | |
commit | 750f8d25c519a042901c0528ba76f2e0579439d6 (patch) | |
tree | 6b0df4cec4bf2e1020ea955c7f966e763556a483 /gnome-base/gnome-volume-manager | |
parent | Remove GNOME 2.18 (diff) | |
download | historical-750f8d25c519a042901c0528ba76f2e0579439d6.tar.gz historical-750f8d25c519a042901c0528ba76f2e0579439d6.tar.bz2 historical-750f8d25c519a042901c0528ba76f2e0579439d6.zip |
Remove old GNOME 2.16 version
Package-Manager: portage-2.1.4.4
Diffstat (limited to 'gnome-base/gnome-volume-manager')
-rw-r--r-- | gnome-base/gnome-volume-manager/files/gnome-volume-manager-2.15.0-check_local_user.patch | 246 | ||||
-rw-r--r-- | gnome-base/gnome-volume-manager/gnome-volume-manager-2.15.0-r1.ebuild | 59 |
2 files changed, 0 insertions, 305 deletions
diff --git a/gnome-base/gnome-volume-manager/files/gnome-volume-manager-2.15.0-check_local_user.patch b/gnome-base/gnome-volume-manager/files/gnome-volume-manager-2.15.0-check_local_user.patch deleted file mode 100644 index 985da86c8c7d..000000000000 --- a/gnome-base/gnome-volume-manager/files/gnome-volume-manager-2.15.0-check_local_user.patch +++ /dev/null @@ -1,246 +0,0 @@ -# patch to g-v-m 2.15.0 to fix the startx session bug which is caused by -# gvm_local_user, where ut_line is returned as ttyN rather than :0. -=================================================================== -RCS file: src/manager.c,v -retrieving revision 1.152 -retrieving revision 1.153 -diff -u -r1.152 -r1.153 ---- src/manager.c 2006/08/07 13:47:31 1.152 -+++ src/manager.c 2006/08/11 18:01:08 1.153 -@@ -1717,6 +1717,58 @@ - } - - -+static gboolean -+gvm_mount_options (GPtrArray *options, guint32 opts, const char *type, const char *where) -+{ -+ char *option, *key, *tmp, *p; -+ GSList *list, *l, *n; -+ GConfClient *gconf; -+ const char *dir; -+ -+ if (!strncmp (where, "/org/freedesktop/Hal/", 21)) { -+ /* flatten the UDI */ -+ dir = p = tmp = g_strdup (where); -+ while (*p != '\0') { -+ if (*p == '/') -+ *p = '_'; -+ p++; -+ } -+ } else { -+ dir = where; -+ tmp = NULL; -+ } -+ -+ key = g_strdup_printf ("/system/storage/%s/%s/mount_options", type, dir); -+ g_free (tmp); -+ -+ gconf = gconf_client_get_default (); -+ list = gconf_client_get_list (gconf, key, GCONF_VALUE_STRING, NULL); -+ g_object_unref (gconf); -+ g_free (key); -+ -+ if (list == NULL) { -+ fprintf (stderr, "no mount options found for %s::%s\n", type, where); -+ return FALSE; -+ } -+ -+ for (l = list; l != NULL; l = n) { -+ option = l->data; -+ n = l->next; -+ -+ g_ptr_array_add (options, option); -+ -+ g_slist_free_1 (l); -+ } -+ -+ if (opts & MOUNT_UID) { -+ option = g_strdup_printf ("uid=%u", getuid ()); -+ g_ptr_array_add (options, option); -+ } -+ -+ return TRUE; -+} -+ -+ - /* - * gvm_device_mount - mount the given device. - * -@@ -1761,10 +1813,13 @@ - - return retval; - } else { -- char *mount_point, *fstype, fmask_opt[12], *charset_opt = NULL; -+ char *mount_point, *fstype, *drive, **moptions, fmask_opt[12], *charset_opt = NULL; - DBusMessage *dmesg, *reply; -+ gboolean freev = FALSE; - GPtrArray *options; -+ guint32 opts = 0; - DBusError error; -+ size_t i, j; - - if (!(dmesg = dbus_message_new_method_call ("org.freedesktop.Hal", udi, - "org.freedesktop.Hal.Device.Volume", -@@ -1773,26 +1828,48 @@ - return FALSE; - } - -+ if ((moptions = libhal_device_get_property_strlist (hal_ctx, udi, "volume.mount.valid_options", NULL))) { -+ for (i = 0; moptions[i]; i++) { -+ for (j = 0; j < G_N_ELEMENTS (mount_options); j++) { -+ if (!strcmp (moptions[i], mount_options[j].name)) -+ opts |= mount_options[j].flag; -+ } -+ } -+ -+ libhal_free_string_array (moptions); -+ } -+ - options = g_ptr_array_new (); -+ -+ /* check volume-specific mount options */ -+ if (gvm_mount_options (options, opts, "volumes", udi)) { -+ freev = TRUE; -+ goto mount; -+ } -+ -+ /* check drive specific mount options */ -+ if ((drive = libhal_device_get_property_string (hal_ctx, udi, "block.storage_device", NULL))) { -+ if (gvm_mount_options (options, opts, "drives", drive)) { -+ libhal_free_string (drive); -+ freev = TRUE; -+ goto mount; -+ } -+ libhal_free_string (drive); -+ } -+ - if ((fstype = libhal_device_get_property_string (hal_ctx, udi, "volume.fstype", NULL))) { -- char **moptions = NULL; - const char *iocharset; -- guint32 opts = 0; - char uid[32]; -- size_t i, j; - mode_t mask; - -- if ((moptions = libhal_device_get_property_strlist (hal_ctx, udi, "volume.mount.valid_options", NULL))) { -- for (i = 0; moptions[i]; i++) { -- for (j = 0; j < G_N_ELEMENTS (mount_options); j++) { -- if (!strcmp (moptions[i], mount_options[j].name)) -- opts |= mount_options[j].flag; -- } -- } -- -- libhal_free_string_array (moptions); -+ /* fall back to using fstype-specific mount options */ -+ if (gvm_mount_options (options, opts, "default_options", fstype)) { -+ libhal_free_string (fstype); -+ freev = TRUE; -+ goto mount; - } - -+ /* take our best guess at what the user would want */ - if (!strcmp (fstype, "vfat")) { - if (opts & MOUNT_NOEXEC) - g_ptr_array_add (options, "noexec"); -@@ -1843,9 +1920,11 @@ - g_ptr_array_add (options, uid); - } - -- g_free (fstype); -+ libhal_free_string (fstype); - } - -+ mount: -+ - mount_point = ""; - fstype = ""; - -@@ -1857,6 +1936,11 @@ - return FALSE; - } - -+ if (freev) { -+ for (i = 0; i < options->len; i++) -+ g_free (options->pdata[i]); -+ } -+ - g_ptr_array_free (options, TRUE); - g_free (charset_opt); - -@@ -3080,31 +3164,64 @@ - } - - -+enum { -+ LOCAL_USER_CHECKED = (1 << 0), -+ LOCAL_USER_FOUND = (1 << 1) -+}; -+ - /* checks that the user is logged-in at a local X session (which does not necessarily infer an *active* session) */ - static gboolean - gvm_local_user (void) - { -- gboolean local = FALSE; -+ static guint32 local = 0; -+ struct dirent *dent; - struct utmp *utmp; - const char *user; -- size_t ulen; -+ char *vtend; -+ size_t n; -+ DIR *dir; -+ int vt; -+ -+ if (local & LOCAL_USER_CHECKED) -+ return (local & LOCAL_USER_FOUND); - - user = g_get_user_name (); -- ulen = strlen (user); -+ n = strlen (user); - -- setutent (); -+ if (!(dir = opendir (GVM_CONSOLE_AUTH_DIR))) -+ goto fallback; - -- while (!local && (utmp = getutent ())) { -- if (utmp->ut_type != USER_PROCESS || strncmp (utmp->ut_user, user, ulen) != 0) -- continue; -+ /* this works for pam_console ($path/user) and pam_foreground ($path/user:vt) - see bug #336932 */ -+ while ((dent = readdir (dir))) { -+ if (!strncmp (user, dent->d_name, n) && dent->d_name[n] == '\0' -+ || (dent->d_name[n] == ':' && ((vt = strtol (dent->d_name + n + 1, &vtend, 10)) >= 0) && *vtend == '\0')) { -+ local = LOCAL_USER_FOUND; -+ break; -+ } -+ } -+ -+ closedir (dir); -+ -+ fallback: -+ -+ if (!(local & LOCAL_USER_FOUND)) { -+ setutent (); -+ -+ while (!(local & LOCAL_USER_FOUND) && (utmp = getutent ())) { -+ if (utmp->ut_type != USER_PROCESS || strncmp (utmp->ut_user, user, n) != 0) -+ continue; -+ -+ /* only accept local X sessions or local tty's (user started X via `startx`) */ -+ local = utmp->ut_line[0] == ':' && utmp->ut_line[1] >= '0' && utmp->ut_line[1] <= '9' -+ || !strncmp (utmp->ut_line, "tty", 3) ? LOCAL_USER_FOUND : 0; -+ } - -- /* only accept local X sessions */ -- local = utmp->ut_line[0] == ':' && utmp->ut_line[1] >= '0' && utmp->ut_line[1] <= '9'; -+ endutent (); - } - -- endutent (); -+ local |= LOCAL_USER_CHECKED; - -- return local; -+ return (local & LOCAL_USER_FOUND); - } - - /* checks that the user is at the local active X session */ - diff --git a/gnome-base/gnome-volume-manager/gnome-volume-manager-2.15.0-r1.ebuild b/gnome-base/gnome-volume-manager/gnome-volume-manager-2.15.0-r1.ebuild deleted file mode 100644 index 9f943956ba39..000000000000 --- a/gnome-base/gnome-volume-manager/gnome-volume-manager-2.15.0-r1.ebuild +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 1999-2007 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-volume-manager/gnome-volume-manager-2.15.0-r1.ebuild,v 1.7 2007/08/02 05:37:56 mr_bones_ Exp $ - -inherit gnome2 eutils autotools - -DESCRIPTION="Daemon that enforces volume-related policies" -HOMEPAGE="http://www.gnome.org/" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="alpha amd64 hppa ia64 ppc ppc64 sparc x86" -IUSE="crypt debug doc" - -RDEPEND="gnome-base/nautilus - >=gnome-base/libgnomeui-2.1.5 - >=dev-libs/dbus-glib-0.71 - >=sys-apps/hal-0.5.6 - >=x11-libs/gtk+-2.6 - >=gnome-base/libglade-2 - >=x11-libs/libnotify-0.3 - >=gnome-base/gconf-2 - >=gnome-base/control-center-2.0 - gnome-base/gnome-mime-data - gnome-base/gnome-mount" - -DEPEND="${RDEPEND} - sys-devel/gettext - >=dev-util/pkgconfig-0.20 - >=dev-util/intltool-0.35" - -DOCS="AUTHORS ChangeLog README HACKING NEWS TODO" - -src_unpack() { - unpack ${A} - cd ${S} - - epatch "${FILESDIR}/${P}-check_local_user.patch" -} - -pkg_setup() { - G2CONF="${G2CONF} \ - $(use_enable crypt) \ - $(use_enable debug) \ - $(use_enable doc)" - - # FIXME: We should be more intelligent about disabling multiuser support - # (like enable it when pam_console is available?). For now, this is a - # slightly nicer solution than applying ${PN}-1.5.9-no-pam_console.patch - G2CONF="${G2CONF} --disable-multiuser" -} - -pkg_postinst() { - gnome2_pkg_postinst - - elog "To start the gnome-volume-manager daemon you need to configure" - elog "it through it's preferences capplet. Also the HAL daemon (hald)" - elog "needs to be running or it will shut down." -} |