[arch-commits] CVS update of extra/gnome/gnome-volume-manager (2 files)

Jan de Groot jgc at archlinux.org
Sun Sep 23 18:40:18 UTC 2007


    Date: Sunday, September 23, 2007 @ 14:40:18
  Author: jgc
    Path: /home/cvs-extra/extra/gnome/gnome-volume-manager

   Added: gvm-check-local.patch (1.1)
Modified: PKGBUILD (1.22 -> 1.23)

upgpkg: gnome-volume-manager 2.17.0-3
GNOME 2.20 - fix local user check, check for DISPLAY variable


-----------------------+
 PKGBUILD              |   16 +++++++-----
 gvm-check-local.patch |   61 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 71 insertions(+), 6 deletions(-)


Index: extra/gnome/gnome-volume-manager/PKGBUILD
diff -u extra/gnome/gnome-volume-manager/PKGBUILD:1.22 extra/gnome/gnome-volume-manager/PKGBUILD:1.23
--- extra/gnome/gnome-volume-manager/PKGBUILD:1.22	Sun Apr 22 12:12:32 2007
+++ extra/gnome/gnome-volume-manager/PKGBUILD	Sun Sep 23 14:40:17 2007
@@ -1,25 +1,29 @@
-# $Id: PKGBUILD,v 1.22 2007/04/22 16:12:32 jgc Exp $
+# $Id: PKGBUILD,v 1.23 2007/09/23 18:40:17 jgc Exp $
 # Maintainer: Jan de Groot <jgc at archlinux.org>
 # Contributor: Link Dupont <link at subpop.net>
 
 pkgname=gnome-volume-manager
 pkgver=2.17.0
-pkgrel=2
+pkgrel=3
 pkgdesc="GNOME daemon to auto-mount and manage media devices"
 arch=(i686 x86_64)
 license=('GPL')
 url=http://www.gnome.org/
-depends=('libgnomeui>=2.18.1-2' 'libnotify>=0.4.4' 'gnome-mount>=0.6')
-makedepends=('nautilus>=2.18.1' 'perlxml' 'pkgconfig')
+depends=('libgnomeui>=2.20.0' 'libnotify>=0.4.4' 'gnome-mount>=0.6')
+makedepends=('nautilus>=2.20.0' 'perlxml' 'pkgconfig')
 install=gnome-volume-manager.install
 groups=('gnome-extra')
 source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.17/${pkgname}-${pkgver}.tar.bz2
-	gvm-mount-async.patch)
-md5sums=('104cec26e721e0bba69debd392367195' '534b8b9633148bd975b2b9b518c41fb4')
+	gvm-mount-async.patch
+	gvm-check-local.patch)
+md5sums=('104cec26e721e0bba69debd392367195'
+         '534b8b9633148bd975b2b9b518c41fb4'
+         'cb45810b2adb95d39e1272470f10a21a')
 
 build() {
   cd ${startdir}/src/${pkgname}-${pkgver}
   patch -Np0 -i ${startdir}/src/gvm-mount-async.patch || return 1
+  patch -Np0 -i ${startdir}/src/gvm-check-local.patch || return 1
   ./configure --prefix=/usr --sysconfdir=/etc \
               --localstatedir=/var
   make || return 1
Index: extra/gnome/gnome-volume-manager/gvm-check-local.patch
diff -u /dev/null extra/gnome/gnome-volume-manager/gvm-check-local.patch:1.1
--- /dev/null	Sun Sep 23 14:40:18 2007
+++ extra/gnome/gnome-volume-manager/gvm-check-local.patch	Sun Sep 23 14:40:17 2007
@@ -0,0 +1,61 @@
+--- src/manager.c.orig	2007-09-23 18:07:07.000000000 +0000
++++ src/manager.c	2007-09-23 18:26:48.000000000 +0000
+@@ -3177,55 +3177,9 @@
+ static gboolean
+ gvm_local_user (void)
+ {
+-	static guint32 local = 0;
+-	struct dirent *dent;
+-	struct utmp *utmp;
+-	const char *user;
+-	char *vtend;
+-	size_t n;
+-	DIR *dir;
+-	int vt;
+-	
+-	if (local & LOCAL_USER_CHECKED)
+-		return (local & LOCAL_USER_FOUND);
+-	
+-	user = g_get_user_name ();
+-	n = strlen (user);
+-	
+-	if (!(dir = opendir (GVM_CONSOLE_AUTH_DIR)))
+-		goto fallback;
+-	
+-	/* 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;
+-		}
+-		
+-		endutent ();
+-	}
+-	
+-	local |= LOCAL_USER_CHECKED;
+-	
+-	return (local & LOCAL_USER_FOUND);
++	const gchar* display;
++	display = g_getenv("DISPLAY");
++	return (display != NULL && display[0] == ':');
+ }
+ 
+ /* checks that the user is at the local active X session */




More information about the arch-commits mailing list