[arch-commits] Commit in lxdm/repos (22 files)

Balló György bgyorgy at archlinux.org
Sun Nov 23 17:04:56 UTC 2014


    Date: Sunday, November 23, 2014 @ 18:04:56
  Author: bgyorgy
Revision: 123003

archrelease: copy trunk to community-i686, community-x86_64

Added:
  lxdm/repos/community-i686/PKGBUILD
    (from rev 123002, lxdm/trunk/PKGBUILD)
  lxdm/repos/community-i686/Xsession
    (from rev 123002, lxdm/trunk/Xsession)
  lxdm/repos/community-i686/default-config.patch
    (from rev 123002, lxdm/trunk/default-config.patch)
  lxdm/repos/community-i686/git-fixes.patch
    (from rev 123002, lxdm/trunk/git-fixes.patch)
  lxdm/repos/community-i686/lxdm.install
    (from rev 123002, lxdm/trunk/lxdm.install)
  lxdm/repos/community-i686/lxdm.pam
    (from rev 123002, lxdm/trunk/lxdm.pam)
  lxdm/repos/community-x86_64/PKGBUILD
    (from rev 123002, lxdm/trunk/PKGBUILD)
  lxdm/repos/community-x86_64/Xsession
    (from rev 123002, lxdm/trunk/Xsession)
  lxdm/repos/community-x86_64/default-config.patch
    (from rev 123002, lxdm/trunk/default-config.patch)
  lxdm/repos/community-x86_64/git-fixes.patch
    (from rev 123002, lxdm/trunk/git-fixes.patch)
  lxdm/repos/community-x86_64/lxdm.install
    (from rev 123002, lxdm/trunk/lxdm.install)
  lxdm/repos/community-x86_64/lxdm.pam
    (from rev 123002, lxdm/trunk/lxdm.pam)
Deleted:
  lxdm/repos/community-i686/PKGBUILD
  lxdm/repos/community-i686/Xsession
  lxdm/repos/community-i686/default-config.patch
  lxdm/repos/community-i686/lxdm.install
  lxdm/repos/community-i686/lxdm.pam
  lxdm/repos/community-x86_64/PKGBUILD
  lxdm/repos/community-x86_64/Xsession
  lxdm/repos/community-x86_64/default-config.patch
  lxdm/repos/community-x86_64/lxdm.install
  lxdm/repos/community-x86_64/lxdm.pam

---------------------------------------+
 /PKGBUILD                             |  136 +++++++++++++++++++++++
 /Xsession                             |  128 ++++++++++++++++++++++
 /default-config.patch                 |   42 +++++++
 /lxdm.install                         |   34 +++++
 /lxdm.pam                             |   14 ++
 community-i686/PKGBUILD               |   63 -----------
 community-i686/Xsession               |   64 -----------
 community-i686/default-config.patch   |   21 ---
 community-i686/git-fixes.patch        |  183 ++++++++++++++++++++++++++++++++
 community-i686/lxdm.install           |   17 --
 community-i686/lxdm.pam               |    7 -
 community-x86_64/PKGBUILD             |   63 -----------
 community-x86_64/Xsession             |   64 -----------
 community-x86_64/default-config.patch |   21 ---
 community-x86_64/git-fixes.patch      |  183 ++++++++++++++++++++++++++++++++
 community-x86_64/lxdm.install         |   17 --
 community-x86_64/lxdm.pam             |    7 -
 17 files changed, 720 insertions(+), 344 deletions(-)

Deleted: community-i686/PKGBUILD
===================================================================
--- community-i686/PKGBUILD	2014-11-23 17:04:39 UTC (rev 123002)
+++ community-i686/PKGBUILD	2014-11-23 17:04:56 UTC (rev 123003)
@@ -1,63 +0,0 @@
-# $Id$
-# Maintainer: Balló György <ballogyor+arch at gmail dot com>
-# Contributor: Bartłomiej Piotrowski <bpiotrowski at archlinux.org>
-# Contributor: AndyRTR <andyrtr at archlinux.org>
-# Contributor: kiefer <jorgelmadrid at gmail.com>
-
-pkgname=lxdm
-pkgver=0.5.0
-pkgrel=2
-pkgdesc='Lightweight X11 Display Manager'
-arch=('i686' 'x86_64')
-url="https://sourceforge.net/projects/lxdm/"
-license=('GPL')
-groups=('lxde')
-depends=('gtk2' 'xorg-server')
-makedepends=('intltool' 'iso-codes')
-optdepends=('gtk-engines: default GTK+ theme'
-            'iso-codes: show language names in language chooser'
-            'librsvg: display the default background')
-install=$pkgname.install
-backup=('etc/lxdm/lxdm.conf' 'etc/pam.d/lxdm' 'etc/lxdm/Xsession'
-        'etc/lxdm/PreLogin' 'etc/lxdm/LoginReady' 'etc/lxdm/PostLogin'
-        'etc/lxdm/PostLogout' 'etc/lxdm/PreReboot' 'etc/lxdm/PreShutdown')
-source=(http://downloads.sourceforge.net/lxdm/$pkgname-$pkgver.tar.xz
-        default-config.patch
-        lxdm.pam
-        Xsession)
-md5sums=('a51686720e606ca456d7f56ae4159d1f'
-         'f0ae6c072f151104c53a030fd7757821'
-         'c941ef896248bc7c03901b513490425c'
-         'd9c8f8c9e6de52dbc389696454c8f572')
-
-prepare(){
-  cd "$srcdir/$pkgname-$pkgver"
-
-  # Adjust Arch-specific settings
-  patch -Np1 -i ../default-config.patch
-
-  # Use our custom pam and Xsession files
-  cp ../lxdm.pam pam/lxdm
-  cp ../Xsession data/Xsession
-
-  # Support for pulseaudio
-  echo 'test -x /usr/bin/pax11publish && /usr/bin/pax11publish -r' >>data/PostLogout.in
-}
-
-build() {
-  cd "$srcdir/$pkgname-$pkgver"
-  ./configure --prefix=/usr --sbindir=/usr/bin --libexecdir=/usr/lib/lxdm \
-              --sysconfdir=/etc --localstatedir=/var
-  make
-}
-
-package() {
-  cd "$srcdir/$pkgname-$pkgver"
-  make DESTDIR="$pkgdir" install
-  chmod 644 "$pkgdir/etc/lxdm/lxdm.conf"
-
-  # Home directory
-  install -dm 755 "$pkgdir/var/lib/lxdm"
-  echo 'GDK_CORE_DEVICE_EVENTS=true' > "$pkgdir"/var/lib/lxdm/.pam_environment
-  chown -R 121:121 "$pkgdir/var/lib/lxdm"
-}

Copied: lxdm/repos/community-i686/PKGBUILD (from rev 123002, lxdm/trunk/PKGBUILD)
===================================================================
--- community-i686/PKGBUILD	                        (rev 0)
+++ community-i686/PKGBUILD	2014-11-23 17:04:56 UTC (rev 123003)
@@ -0,0 +1,68 @@
+# $Id$
+# Maintainer: Balló György <ballogyor+arch at gmail dot com>
+# Contributor: Bartłomiej Piotrowski <bpiotrowski at archlinux.org>
+# Contributor: AndyRTR <andyrtr at archlinux.org>
+# Contributor: kiefer <jorgelmadrid at gmail.com>
+
+pkgname=lxdm
+pkgver=0.5.0
+pkgrel=3
+pkgdesc='Lightweight X11 Display Manager'
+arch=('i686' 'x86_64')
+url="https://sourceforge.net/projects/lxdm/"
+license=('GPL')
+groups=('lxde')
+depends=('gtk2' 'xorg-server')
+makedepends=('intltool' 'iso-codes')
+optdepends=('gtk-engines: default GTK+ theme'
+            'iso-codes: show language names in language chooser'
+            'librsvg: display the default background')
+install=$pkgname.install
+backup=('etc/lxdm/lxdm.conf' 'etc/pam.d/lxdm' 'etc/lxdm/Xsession'
+        'etc/lxdm/PreLogin' 'etc/lxdm/LoginReady' 'etc/lxdm/PostLogin'
+        'etc/lxdm/PostLogout' 'etc/lxdm/PreReboot' 'etc/lxdm/PreShutdown')
+source=(http://downloads.sourceforge.net/lxdm/$pkgname-$pkgver.tar.xz
+        git-fixes.patch
+        default-config.patch
+        lxdm.pam
+        Xsession)
+md5sums=('a51686720e606ca456d7f56ae4159d1f'
+         '3463d9b886d9ee847cbbb23bc586a3d3'
+         'f0ae6c072f151104c53a030fd7757821'
+         'c941ef896248bc7c03901b513490425c'
+         'd9c8f8c9e6de52dbc389696454c8f572')
+
+prepare(){
+  cd "$srcdir/$pkgname-$pkgver"
+
+  # Apply some fixes from git
+  patch -Np1 -i ../git-fixes.patch
+
+  # Adjust Arch-specific settings
+  patch -Np1 -i ../default-config.patch
+
+  # Use our custom pam and Xsession files
+  cp ../lxdm.pam pam/lxdm
+  cp ../Xsession data/Xsession
+
+  # Support for pulseaudio
+  echo 'test -x /usr/bin/pax11publish && /usr/bin/pax11publish -r' >>data/PostLogout.in
+}
+
+build() {
+  cd "$srcdir/$pkgname-$pkgver"
+  ./configure --prefix=/usr --sbindir=/usr/bin --libexecdir=/usr/lib/lxdm \
+              --sysconfdir=/etc --localstatedir=/var
+  make
+}
+
+package() {
+  cd "$srcdir/$pkgname-$pkgver"
+  make DESTDIR="$pkgdir" install
+  chmod 644 "$pkgdir/etc/lxdm/lxdm.conf"
+
+  # Home directory
+  install -dm 755 "$pkgdir/var/lib/lxdm"
+  echo 'GDK_CORE_DEVICE_EVENTS=true' > "$pkgdir"/var/lib/lxdm/.pam_environment
+  chown -R 121:121 "$pkgdir/var/lib/lxdm"
+}

Deleted: community-i686/Xsession
===================================================================
--- community-i686/Xsession	2014-11-23 17:04:39 UTC (rev 123002)
+++ community-i686/Xsession	2014-11-23 17:04:56 UTC (rev 123003)
@@ -1,64 +0,0 @@
-#!/bin/sh
-#
-# LXDM wrapper to run around X sessions.
-
-echo "Running X session wrapper"
-
-if [ $# -eq 1 -a -n "$1" ]; then
-	LXSESSION=$1
-else
-# default session
-	LXSESSION=/usr/bin/startlxde
-fi
-
-# Load profile
-for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do
-    if [ -f "$file" ]; then
-        echo "Loading profile from $file";
-        . "$file"
-    fi
-done
-
-# Load resources
-for file in "/etc/X11/Xresources" "$HOME/.Xresources"; do
-    if [ -f "$file" ]; then
-        echo "Loading resource: $file"
-        xrdb -nocpp -merge "$file"
-    fi
-done
-
-# Load keymaps
-for file in "/etc/X11/Xkbmap" "$HOME/.Xkbmap"; do
-    if [ -f "$file" ]; then
-        echo "Loading keymap: $file"
-        setxkbmap `cat "$file"`
-        XKB_IN_USE=yes
-    fi
-done
-
-# Load xmodmap if not using XKB
-if [ -z "$XKB_IN_USE" ]; then
-    for file in "/etc/X11/Xmodmap" "$HOME/.Xmodmap"; do
-        if [ -f "$file" ]; then
-           echo "Loading modmap: $file"
-           xmodmap "$file"
-        fi
-    done
-fi
-
-unset XKB_IN_USE
-
-# Run all system xinitrc shell scripts.
-xinitdir="/etc/X11/xinit/xinitrc.d"
-if [ -d "$xinitdir" ]; then
-    for script in $xinitdir/*; do
-        echo "Loading xinit script $script"
-        if [ -x "$script" -a ! -d "$script" ]; then
-            . "$script"
-        fi
-    done
-fi
-
-echo "X session wrapper complete, running session $LXSESSION"
-
-exec $LXSESSION

Copied: lxdm/repos/community-i686/Xsession (from rev 123002, lxdm/trunk/Xsession)
===================================================================
--- community-i686/Xsession	                        (rev 0)
+++ community-i686/Xsession	2014-11-23 17:04:56 UTC (rev 123003)
@@ -0,0 +1,64 @@
+#!/bin/sh
+#
+# LXDM wrapper to run around X sessions.
+
+echo "Running X session wrapper"
+
+if [ $# -eq 1 -a -n "$1" ]; then
+	LXSESSION=$1
+else
+# default session
+	LXSESSION=/usr/bin/startlxde
+fi
+
+# Load profile
+for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do
+    if [ -f "$file" ]; then
+        echo "Loading profile from $file";
+        . "$file"
+    fi
+done
+
+# Load resources
+for file in "/etc/X11/Xresources" "$HOME/.Xresources"; do
+    if [ -f "$file" ]; then
+        echo "Loading resource: $file"
+        xrdb -nocpp -merge "$file"
+    fi
+done
+
+# Load keymaps
+for file in "/etc/X11/Xkbmap" "$HOME/.Xkbmap"; do
+    if [ -f "$file" ]; then
+        echo "Loading keymap: $file"
+        setxkbmap `cat "$file"`
+        XKB_IN_USE=yes
+    fi
+done
+
+# Load xmodmap if not using XKB
+if [ -z "$XKB_IN_USE" ]; then
+    for file in "/etc/X11/Xmodmap" "$HOME/.Xmodmap"; do
+        if [ -f "$file" ]; then
+           echo "Loading modmap: $file"
+           xmodmap "$file"
+        fi
+    done
+fi
+
+unset XKB_IN_USE
+
+# Run all system xinitrc shell scripts.
+xinitdir="/etc/X11/xinit/xinitrc.d"
+if [ -d "$xinitdir" ]; then
+    for script in $xinitdir/*; do
+        echo "Loading xinit script $script"
+        if [ -x "$script" -a ! -d "$script" ]; then
+            . "$script"
+        fi
+    done
+fi
+
+echo "X session wrapper complete, running session $LXSESSION"
+
+exec $LXSESSION

Deleted: community-i686/default-config.patch
===================================================================
--- community-i686/default-config.patch	2014-11-23 17:04:39 UTC (rev 123002)
+++ community-i686/default-config.patch	2014-11-23 17:04:56 UTC (rev 123003)
@@ -1,21 +0,0 @@
-diff -Naur lxdm.orig/data/lxdm.conf.in lxdm/data/lxdm.conf.in
---- lxdm.orig/data/lxdm.conf.in	2013-08-30 17:56:16.097006000 +0200
-+++ lxdm/data/lxdm.conf.in	2013-09-04 01:54:12.942117085 +0200
-@@ -23,7 +23,7 @@
- 
- [server]
- ## arg used to start xserver, not fully function
--# arg=/usr/bin/X -background vt1
-+arg=/usr/bin/X -background vt1
- # uncomment this if you really want xserver listen to tcp
- # tcp_listen=1
- # uncoment this if you want reset the xserver after logou
-@@ -34,7 +34,7 @@
- gtk_theme=Clearlooks
- 
- ## background of the greeter
--bg=/usr/share/backgrounds/default.png
-+# bg=/usr/share/backgrounds/default.png
- 
- ## if show bottom pane
- bottom_pane=1

Copied: lxdm/repos/community-i686/default-config.patch (from rev 123002, lxdm/trunk/default-config.patch)
===================================================================
--- community-i686/default-config.patch	                        (rev 0)
+++ community-i686/default-config.patch	2014-11-23 17:04:56 UTC (rev 123003)
@@ -0,0 +1,21 @@
+diff -Naur lxdm.orig/data/lxdm.conf.in lxdm/data/lxdm.conf.in
+--- lxdm.orig/data/lxdm.conf.in	2013-08-30 17:56:16.097006000 +0200
++++ lxdm/data/lxdm.conf.in	2013-09-04 01:54:12.942117085 +0200
+@@ -23,7 +23,7 @@
+ 
+ [server]
+ ## arg used to start xserver, not fully function
+-# arg=/usr/bin/X -background vt1
++arg=/usr/bin/X -background vt1
+ # uncomment this if you really want xserver listen to tcp
+ # tcp_listen=1
+ # uncoment this if you want reset the xserver after logou
+@@ -34,7 +34,7 @@
+ gtk_theme=Clearlooks
+ 
+ ## background of the greeter
+-bg=/usr/share/backgrounds/default.png
++# bg=/usr/share/backgrounds/default.png
+ 
+ ## if show bottom pane
+ bottom_pane=1

Copied: lxdm/repos/community-i686/git-fixes.patch (from rev 123002, lxdm/trunk/git-fixes.patch)
===================================================================
--- community-i686/git-fixes.patch	                        (rev 0)
+++ community-i686/git-fixes.patch	2014-11-23 17:04:56 UTC (rev 123003)
@@ -0,0 +1,183 @@
+diff --git a/src/lxcom.c b/src/lxcom.c
+index 9491cb2..397d1b5 100644
+--- a/src/lxcom.c
++++ b/src/lxcom.c
+@@ -183,7 +183,6 @@ static GString *lxcom_func(gpointer data,int uid,int pid,int argc,char **argv)
+ 	GSList *p,*n;
+ 	GString *res=NULL;
+ 	assert(argc>0 && argv!=NULL);
+-
+ 	do{
+ 	if(!strcmp(argv[0],"SIGNAL"))
+ 	{
+@@ -193,16 +192,18 @@ static GString *lxcom_func(gpointer data,int uid,int pid,int argc,char **argv)
+ 			int sig=atoi(argv[1]);
+ 			if(sig==SIGCHLD)
+ 			{
+-				for(p=child_watch_list;p!=NULL;p=n)
++				CHECK_SIGCHLD:
++				for(p=child_watch_list;p!=NULL;p=p->next)
+ 				{
+ 					ChildWatch *item=p->data;
+ 					int status;
+-					n=p->next;
+ 					if(waitpid(item->pid,&status,WNOHANG)>0)
+ 					{
+ 						child_watch_list=g_slist_delete_link(child_watch_list,p);
++						// item->func may change the child_watch_list
+ 						item->func(item->data,item->pid,status);
+ 						g_free(item);
++						goto CHECK_SIGCHLD;
+ 					}
+ 				}
+ 			}
+@@ -438,7 +439,7 @@ gboolean lxcom_send(const char *sock,const char *buf,char **res)
+ int lxcom_add_child_watch(int pid,void (*func)(void*,int,int),void *data)
+ {
+ 	ChildWatch *item;
+-	if(pid<0 || !func)
++	if(pid<=0 || !func)
+ 		return -1;
+ 	item=g_new(ChildWatch,1);
+ 	item->func=func;
+diff --git a/src/lxdm.c b/src/lxdm.c
+index 638c30f..62ac31d 100644
+--- a/src/lxdm.c
++++ b/src/lxdm.c
+@@ -669,7 +669,7 @@ static void xauth_write_file(const char *file,int dpy,char data[16])
+ 	gethostname(addr,sizeof(addr));
+ 	
+ 	fd=open(file,O_CREAT|O_TRUNC|O_WRONLY,0600);
+-	if(!fd==-1) return;
++	if(fd==-1) return;
+ 	xauth_write_uint16(fd,256);		//FamilyLocalHost
+ 	xauth_write_string(fd,addr);
+ 	xauth_write_string(fd,buf);
+@@ -1022,7 +1022,18 @@ static void on_session_stop(void *data,int pid, int status)
+ 	int level;
+ 	LXSession *s=data;
+ 
+-	lxsession_stop(s);
++	gchar *argv[] = { "/etc/lxdm/PostLogout", NULL };
++	g_spawn_async(NULL, argv, s->env, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL);
++
++	if(g_key_file_get_integer(config,"server","reset",NULL)!=1)
++	{
++		lxsession_stop(s);
++	}
++	else
++	{
++		lxsession_free(s);
++		s=NULL;
++	}
+ 
+ 	level=get_run_level();
+ 	if(level=='0' || level=='6')
+@@ -1034,22 +1045,19 @@ static void on_session_stop(void *data,int pid, int status)
+ 		g_message("run level %c\n",level);
+ 		lxdm_quit_self(0);
+ 	}
+-	if(s!=lxsession_greeter())
++	if(s && s!=lxsession_greeter())
+ 	{
+ 		lxsession_free(s);
+ 	}
+-	else if(g_key_file_get_integer(config,"server","reset",NULL)==1)
++	else if(!s)
+ 	{
+-		lxsession_free(s);
+ 		lxsession_greeter();
+ 	}
+-	gchar *argv[] = { "/etc/lxdm/PostLogout", NULL };
+-	g_spawn_async(NULL, argv, s->env, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL);
+ }
+ 
+-gboolean lxdm_get_session_info(char *session,char **pname,char **pexec)
++gboolean lxdm_get_session_info(const char *session,char **pname,char **pexec,char **pdesktop_names)
+ {
+-	char *name=NULL,*exec=NULL;
++	char *name=NULL,*exec=NULL,**names=NULL,*desktop_names=NULL;
+ 	if(!session || !session[0])
+ 	{
+ 		name=g_key_file_get_string(config, "base", "session", 0);
+@@ -1072,6 +1080,11 @@ gboolean lxdm_get_session_info(char *session,char **pname,char **pexec)
+ 			}
+ 			name=g_key_file_get_string(cfg,"Desktop Entry","Name",NULL);
+ 			exec=g_key_file_get_string(cfg,"Desktop Entry","Exec",NULL);
++			names = g_key_file_get_string_list (cfg, "Desktop Entry", "DesktopNames", NULL, NULL);
++			if (names != NULL) {
++				desktop_names = g_strjoinv (":", names);
++				g_strfreev (names);
++			}
+ 			g_key_file_free(cfg);
+ 			if(!name || !exec)
+ 			{
+@@ -1097,6 +1110,11 @@ gboolean lxdm_get_session_info(char *session,char **pname,char **pexec)
+ 			{
+ 				name = g_key_file_get_locale_string(f, "Desktop Entry", "Name", NULL, NULL);
+ 				exec = g_key_file_get_string(f, "Desktop Entry", "Exec", NULL);
++				names = g_key_file_get_string_list (f, "Desktop Entry", "DesktopNames", NULL, NULL);
++				if (names != NULL) {
++					desktop_names = g_strjoinv (":", names);
++					g_strfreev (names);
++				}
+ 			}
+ 			else
+ 			{
+@@ -1120,6 +1138,7 @@ gboolean lxdm_get_session_info(char *session,char **pname,char **pexec)
+ 	}
+ 	if(pname) *pname=name;
+ 	if(pexec) *pexec=exec;
++	if(pdesktop_names) *pdesktop_names=desktop_names;
+ 	return TRUE;
+ }
+ 
+@@ -1194,7 +1213,7 @@ static void lxdm_save_login(char *session,char *lang)
+ 
+ void lxdm_do_login(struct passwd *pw, char *session, char *lang, char *option)
+ {
+-	char *session_name=0,*session_exec=0;
++	char *session_name=0,*session_exec=0,*session_desktop_names=0;
+ 	gboolean alloc_session=FALSE,alloc_lang=FALSE;
+ 	int pid;
+ 	LXSession *s,*prev;
+@@ -1222,7 +1241,7 @@ void lxdm_do_login(struct passwd *pw, char *session, char *lang, char *option)
+ 		g_key_file_free(dmrc);
+ 	}
+ 
+-	if(!lxdm_get_session_info(session,&session_name,&session_exec))
++	if(!lxdm_get_session_info(session,&session_name,&session_exec,&session_desktop_names))
+ 	{
+ 		if(alloc_session)
+ 			g_free(session);
+@@ -1329,6 +1348,9 @@ void lxdm_do_login(struct passwd *pw, char *session, char *lang, char *option)
+ 		env=g_environ_setenv(env, "LC_MESSAGES", lang, TRUE);
+ 		env=g_environ_setenv(env, "LANGUAGE", lang, TRUE);
+ 	}
++
++	if( session_desktop_names && session_desktop_names[0] )
++		env=g_environ_setenv(env, "XDG_CURRENT_DESKTOP", session_desktop_names, TRUE);
+ 	
+ #ifndef DISABLE_XAUTH
+ 	env=create_client_auth(pw,env);
+@@ -1348,6 +1370,7 @@ void lxdm_do_login(struct passwd *pw, char *session, char *lang, char *option)
+ 	
+ 	g_free(session_name);
+ 	g_free(session_exec);
++	g_free(session_desktop_names);
+ 	if(alloc_session)
+ 		g_free(session);
+ 	if(alloc_lang)
+diff --git a/src/ui.c b/src/ui.c
+index f233589..efe02a1 100644
+--- a/src/ui.c
++++ b/src/ui.c
+@@ -145,7 +145,7 @@ static gboolean on_greeter_input(GIOChannel *source, GIOCondition condition, gpo
+ 	else if( !strncmp(str, "shutdown", 6) )
+ 		lxdm_do_shutdown();
+ 	else if( !strncmp(str, "log ", 4) )
+-		g_message(str + 4);
++		g_message("%s",str + 4);
+ 	else if( !strncmp(str, "login ", 6) )
+ 	{
+ 		char *user = greeter_param(str, "user");

Deleted: community-i686/lxdm.install
===================================================================
--- community-i686/lxdm.install	2014-11-23 17:04:39 UTC (rev 123002)
+++ community-i686/lxdm.install	2014-11-23 17:04:56 UTC (rev 123003)
@@ -1,17 +0,0 @@
-post_install() {
-  getent group lxdm > /dev/null 2>&1 && \
-    groupmod -g 121 lxdm > /dev/null 2>&1 || \
-    groupadd -g 121 lxdm
-  getent passwd lxdm > /dev/null 2>&1 && \
-    usermod -c 'Lightweight X11 Display Manager' -u 121 -g 121 -d /var/lib/lxdm -s /sbin/nologin lxdm > /dev/null 2>&1 || \
-    useradd -c 'Lightweight X11 Display Manager' -u 121 -g 121 -d /var/lib/lxdm -s /sbin/nologin lxdm
-  passwd -l lxdm > /dev/null
-}
-
-post_upgrade() {
-  post_install
-}
-
-post_remove() {
-  getent passwd lxdm > /dev/null 2>&1 && userdel lxdm
-}

Copied: lxdm/repos/community-i686/lxdm.install (from rev 123002, lxdm/trunk/lxdm.install)
===================================================================
--- community-i686/lxdm.install	                        (rev 0)
+++ community-i686/lxdm.install	2014-11-23 17:04:56 UTC (rev 123003)
@@ -0,0 +1,17 @@
+post_install() {
+  getent group lxdm > /dev/null 2>&1 && \
+    groupmod -g 121 lxdm > /dev/null 2>&1 || \
+    groupadd -g 121 lxdm
+  getent passwd lxdm > /dev/null 2>&1 && \
+    usermod -c 'Lightweight X11 Display Manager' -u 121 -g 121 -d /var/lib/lxdm -s /sbin/nologin lxdm > /dev/null 2>&1 || \
+    useradd -c 'Lightweight X11 Display Manager' -u 121 -g 121 -d /var/lib/lxdm -s /sbin/nologin lxdm
+  passwd -l lxdm > /dev/null
+}
+
+post_upgrade() {
+  post_install
+}
+
+post_remove() {
+  getent passwd lxdm > /dev/null 2>&1 && userdel lxdm
+}

Deleted: community-i686/lxdm.pam
===================================================================
--- community-i686/lxdm.pam	2014-11-23 17:04:39 UTC (rev 123002)
+++ community-i686/lxdm.pam	2014-11-23 17:04:56 UTC (rev 123003)
@@ -1,7 +0,0 @@
-#%PAM-1.0
-auth        include     system-login
--auth       optional    pam_gnome_keyring.so
-account     include     system-login
-password    include     system-login
-session     include     system-login
--session    optional    pam_gnome_keyring.so auto_start

Copied: lxdm/repos/community-i686/lxdm.pam (from rev 123002, lxdm/trunk/lxdm.pam)
===================================================================
--- community-i686/lxdm.pam	                        (rev 0)
+++ community-i686/lxdm.pam	2014-11-23 17:04:56 UTC (rev 123003)
@@ -0,0 +1,7 @@
+#%PAM-1.0
+auth        include     system-login
+-auth       optional    pam_gnome_keyring.so
+account     include     system-login
+password    include     system-login
+session     include     system-login
+-session    optional    pam_gnome_keyring.so auto_start

Deleted: community-x86_64/PKGBUILD
===================================================================
--- community-x86_64/PKGBUILD	2014-11-23 17:04:39 UTC (rev 123002)
+++ community-x86_64/PKGBUILD	2014-11-23 17:04:56 UTC (rev 123003)
@@ -1,63 +0,0 @@
-# $Id$
-# Maintainer: Balló György <ballogyor+arch at gmail dot com>
-# Contributor: Bartłomiej Piotrowski <bpiotrowski at archlinux.org>
-# Contributor: AndyRTR <andyrtr at archlinux.org>
-# Contributor: kiefer <jorgelmadrid at gmail.com>
-
-pkgname=lxdm
-pkgver=0.5.0
-pkgrel=2
-pkgdesc='Lightweight X11 Display Manager'
-arch=('i686' 'x86_64')
-url="https://sourceforge.net/projects/lxdm/"
-license=('GPL')
-groups=('lxde')
-depends=('gtk2' 'xorg-server')
-makedepends=('intltool' 'iso-codes')
-optdepends=('gtk-engines: default GTK+ theme'
-            'iso-codes: show language names in language chooser'
-            'librsvg: display the default background')
-install=$pkgname.install
-backup=('etc/lxdm/lxdm.conf' 'etc/pam.d/lxdm' 'etc/lxdm/Xsession'
-        'etc/lxdm/PreLogin' 'etc/lxdm/LoginReady' 'etc/lxdm/PostLogin'
-        'etc/lxdm/PostLogout' 'etc/lxdm/PreReboot' 'etc/lxdm/PreShutdown')
-source=(http://downloads.sourceforge.net/lxdm/$pkgname-$pkgver.tar.xz
-        default-config.patch
-        lxdm.pam
-        Xsession)
-md5sums=('a51686720e606ca456d7f56ae4159d1f'
-         'f0ae6c072f151104c53a030fd7757821'
-         'c941ef896248bc7c03901b513490425c'
-         'd9c8f8c9e6de52dbc389696454c8f572')
-
-prepare(){
-  cd "$srcdir/$pkgname-$pkgver"
-
-  # Adjust Arch-specific settings
-  patch -Np1 -i ../default-config.patch
-
-  # Use our custom pam and Xsession files
-  cp ../lxdm.pam pam/lxdm
-  cp ../Xsession data/Xsession
-
-  # Support for pulseaudio
-  echo 'test -x /usr/bin/pax11publish && /usr/bin/pax11publish -r' >>data/PostLogout.in
-}
-
-build() {
-  cd "$srcdir/$pkgname-$pkgver"
-  ./configure --prefix=/usr --sbindir=/usr/bin --libexecdir=/usr/lib/lxdm \
-              --sysconfdir=/etc --localstatedir=/var
-  make
-}
-
-package() {
-  cd "$srcdir/$pkgname-$pkgver"
-  make DESTDIR="$pkgdir" install
-  chmod 644 "$pkgdir/etc/lxdm/lxdm.conf"
-
-  # Home directory
-  install -dm 755 "$pkgdir/var/lib/lxdm"
-  echo 'GDK_CORE_DEVICE_EVENTS=true' > "$pkgdir"/var/lib/lxdm/.pam_environment
-  chown -R 121:121 "$pkgdir/var/lib/lxdm"
-}

Copied: lxdm/repos/community-x86_64/PKGBUILD (from rev 123002, lxdm/trunk/PKGBUILD)
===================================================================
--- community-x86_64/PKGBUILD	                        (rev 0)
+++ community-x86_64/PKGBUILD	2014-11-23 17:04:56 UTC (rev 123003)
@@ -0,0 +1,68 @@
+# $Id$
+# Maintainer: Balló György <ballogyor+arch at gmail dot com>
+# Contributor: Bartłomiej Piotrowski <bpiotrowski at archlinux.org>
+# Contributor: AndyRTR <andyrtr at archlinux.org>
+# Contributor: kiefer <jorgelmadrid at gmail.com>
+
+pkgname=lxdm
+pkgver=0.5.0
+pkgrel=3
+pkgdesc='Lightweight X11 Display Manager'
+arch=('i686' 'x86_64')
+url="https://sourceforge.net/projects/lxdm/"
+license=('GPL')
+groups=('lxde')
+depends=('gtk2' 'xorg-server')
+makedepends=('intltool' 'iso-codes')
+optdepends=('gtk-engines: default GTK+ theme'
+            'iso-codes: show language names in language chooser'
+            'librsvg: display the default background')
+install=$pkgname.install
+backup=('etc/lxdm/lxdm.conf' 'etc/pam.d/lxdm' 'etc/lxdm/Xsession'
+        'etc/lxdm/PreLogin' 'etc/lxdm/LoginReady' 'etc/lxdm/PostLogin'
+        'etc/lxdm/PostLogout' 'etc/lxdm/PreReboot' 'etc/lxdm/PreShutdown')
+source=(http://downloads.sourceforge.net/lxdm/$pkgname-$pkgver.tar.xz
+        git-fixes.patch
+        default-config.patch
+        lxdm.pam
+        Xsession)
+md5sums=('a51686720e606ca456d7f56ae4159d1f'
+         '3463d9b886d9ee847cbbb23bc586a3d3'
+         'f0ae6c072f151104c53a030fd7757821'
+         'c941ef896248bc7c03901b513490425c'
+         'd9c8f8c9e6de52dbc389696454c8f572')
+
+prepare(){
+  cd "$srcdir/$pkgname-$pkgver"
+
+  # Apply some fixes from git
+  patch -Np1 -i ../git-fixes.patch
+
+  # Adjust Arch-specific settings
+  patch -Np1 -i ../default-config.patch
+
+  # Use our custom pam and Xsession files
+  cp ../lxdm.pam pam/lxdm
+  cp ../Xsession data/Xsession
+
+  # Support for pulseaudio
+  echo 'test -x /usr/bin/pax11publish && /usr/bin/pax11publish -r' >>data/PostLogout.in
+}
+
+build() {
+  cd "$srcdir/$pkgname-$pkgver"
+  ./configure --prefix=/usr --sbindir=/usr/bin --libexecdir=/usr/lib/lxdm \
+              --sysconfdir=/etc --localstatedir=/var
+  make
+}
+
+package() {
+  cd "$srcdir/$pkgname-$pkgver"
+  make DESTDIR="$pkgdir" install
+  chmod 644 "$pkgdir/etc/lxdm/lxdm.conf"
+
+  # Home directory
+  install -dm 755 "$pkgdir/var/lib/lxdm"
+  echo 'GDK_CORE_DEVICE_EVENTS=true' > "$pkgdir"/var/lib/lxdm/.pam_environment
+  chown -R 121:121 "$pkgdir/var/lib/lxdm"
+}

Deleted: community-x86_64/Xsession
===================================================================
--- community-x86_64/Xsession	2014-11-23 17:04:39 UTC (rev 123002)
+++ community-x86_64/Xsession	2014-11-23 17:04:56 UTC (rev 123003)
@@ -1,64 +0,0 @@
-#!/bin/sh
-#
-# LXDM wrapper to run around X sessions.
-
-echo "Running X session wrapper"
-
-if [ $# -eq 1 -a -n "$1" ]; then
-	LXSESSION=$1
-else
-# default session
-	LXSESSION=/usr/bin/startlxde
-fi
-
-# Load profile
-for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do
-    if [ -f "$file" ]; then
-        echo "Loading profile from $file";
-        . "$file"
-    fi
-done
-
-# Load resources
-for file in "/etc/X11/Xresources" "$HOME/.Xresources"; do
-    if [ -f "$file" ]; then
-        echo "Loading resource: $file"
-        xrdb -nocpp -merge "$file"
-    fi
-done
-
-# Load keymaps
-for file in "/etc/X11/Xkbmap" "$HOME/.Xkbmap"; do
-    if [ -f "$file" ]; then
-        echo "Loading keymap: $file"
-        setxkbmap `cat "$file"`
-        XKB_IN_USE=yes
-    fi
-done
-
-# Load xmodmap if not using XKB
-if [ -z "$XKB_IN_USE" ]; then
-    for file in "/etc/X11/Xmodmap" "$HOME/.Xmodmap"; do
-        if [ -f "$file" ]; then
-           echo "Loading modmap: $file"
-           xmodmap "$file"
-        fi
-    done
-fi
-
-unset XKB_IN_USE
-
-# Run all system xinitrc shell scripts.
-xinitdir="/etc/X11/xinit/xinitrc.d"
-if [ -d "$xinitdir" ]; then
-    for script in $xinitdir/*; do
-        echo "Loading xinit script $script"
-        if [ -x "$script" -a ! -d "$script" ]; then
-            . "$script"
-        fi
-    done
-fi
-
-echo "X session wrapper complete, running session $LXSESSION"
-
-exec $LXSESSION

Copied: lxdm/repos/community-x86_64/Xsession (from rev 123002, lxdm/trunk/Xsession)
===================================================================
--- community-x86_64/Xsession	                        (rev 0)
+++ community-x86_64/Xsession	2014-11-23 17:04:56 UTC (rev 123003)
@@ -0,0 +1,64 @@
+#!/bin/sh
+#
+# LXDM wrapper to run around X sessions.
+
+echo "Running X session wrapper"
+
+if [ $# -eq 1 -a -n "$1" ]; then
+	LXSESSION=$1
+else
+# default session
+	LXSESSION=/usr/bin/startlxde
+fi
+
+# Load profile
+for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do
+    if [ -f "$file" ]; then
+        echo "Loading profile from $file";
+        . "$file"
+    fi
+done
+
+# Load resources
+for file in "/etc/X11/Xresources" "$HOME/.Xresources"; do
+    if [ -f "$file" ]; then
+        echo "Loading resource: $file"
+        xrdb -nocpp -merge "$file"
+    fi
+done
+
+# Load keymaps
+for file in "/etc/X11/Xkbmap" "$HOME/.Xkbmap"; do
+    if [ -f "$file" ]; then
+        echo "Loading keymap: $file"
+        setxkbmap `cat "$file"`
+        XKB_IN_USE=yes
+    fi
+done
+
+# Load xmodmap if not using XKB
+if [ -z "$XKB_IN_USE" ]; then
+    for file in "/etc/X11/Xmodmap" "$HOME/.Xmodmap"; do
+        if [ -f "$file" ]; then
+           echo "Loading modmap: $file"
+           xmodmap "$file"
+        fi
+    done
+fi
+
+unset XKB_IN_USE
+
+# Run all system xinitrc shell scripts.
+xinitdir="/etc/X11/xinit/xinitrc.d"
+if [ -d "$xinitdir" ]; then
+    for script in $xinitdir/*; do
+        echo "Loading xinit script $script"
+        if [ -x "$script" -a ! -d "$script" ]; then
+            . "$script"
+        fi
+    done
+fi
+
+echo "X session wrapper complete, running session $LXSESSION"
+
+exec $LXSESSION

Deleted: community-x86_64/default-config.patch
===================================================================
--- community-x86_64/default-config.patch	2014-11-23 17:04:39 UTC (rev 123002)
+++ community-x86_64/default-config.patch	2014-11-23 17:04:56 UTC (rev 123003)
@@ -1,21 +0,0 @@
-diff -Naur lxdm.orig/data/lxdm.conf.in lxdm/data/lxdm.conf.in
---- lxdm.orig/data/lxdm.conf.in	2013-08-30 17:56:16.097006000 +0200
-+++ lxdm/data/lxdm.conf.in	2013-09-04 01:54:12.942117085 +0200
-@@ -23,7 +23,7 @@
- 
- [server]
- ## arg used to start xserver, not fully function
--# arg=/usr/bin/X -background vt1
-+arg=/usr/bin/X -background vt1
- # uncomment this if you really want xserver listen to tcp
- # tcp_listen=1
- # uncoment this if you want reset the xserver after logou
-@@ -34,7 +34,7 @@
- gtk_theme=Clearlooks
- 
- ## background of the greeter
--bg=/usr/share/backgrounds/default.png
-+# bg=/usr/share/backgrounds/default.png
- 
- ## if show bottom pane
- bottom_pane=1

Copied: lxdm/repos/community-x86_64/default-config.patch (from rev 123002, lxdm/trunk/default-config.patch)
===================================================================
--- community-x86_64/default-config.patch	                        (rev 0)
+++ community-x86_64/default-config.patch	2014-11-23 17:04:56 UTC (rev 123003)
@@ -0,0 +1,21 @@
+diff -Naur lxdm.orig/data/lxdm.conf.in lxdm/data/lxdm.conf.in
+--- lxdm.orig/data/lxdm.conf.in	2013-08-30 17:56:16.097006000 +0200
++++ lxdm/data/lxdm.conf.in	2013-09-04 01:54:12.942117085 +0200
+@@ -23,7 +23,7 @@
+ 
+ [server]
+ ## arg used to start xserver, not fully function
+-# arg=/usr/bin/X -background vt1
++arg=/usr/bin/X -background vt1
+ # uncomment this if you really want xserver listen to tcp
+ # tcp_listen=1
+ # uncoment this if you want reset the xserver after logou
+@@ -34,7 +34,7 @@
+ gtk_theme=Clearlooks
+ 
+ ## background of the greeter
+-bg=/usr/share/backgrounds/default.png
++# bg=/usr/share/backgrounds/default.png
+ 
+ ## if show bottom pane
+ bottom_pane=1

Copied: lxdm/repos/community-x86_64/git-fixes.patch (from rev 123002, lxdm/trunk/git-fixes.patch)
===================================================================
--- community-x86_64/git-fixes.patch	                        (rev 0)
+++ community-x86_64/git-fixes.patch	2014-11-23 17:04:56 UTC (rev 123003)
@@ -0,0 +1,183 @@
+diff --git a/src/lxcom.c b/src/lxcom.c
+index 9491cb2..397d1b5 100644
+--- a/src/lxcom.c
++++ b/src/lxcom.c
+@@ -183,7 +183,6 @@ static GString *lxcom_func(gpointer data,int uid,int pid,int argc,char **argv)
+ 	GSList *p,*n;
+ 	GString *res=NULL;
+ 	assert(argc>0 && argv!=NULL);
+-
+ 	do{
+ 	if(!strcmp(argv[0],"SIGNAL"))
+ 	{
+@@ -193,16 +192,18 @@ static GString *lxcom_func(gpointer data,int uid,int pid,int argc,char **argv)
+ 			int sig=atoi(argv[1]);
+ 			if(sig==SIGCHLD)
+ 			{
+-				for(p=child_watch_list;p!=NULL;p=n)
++				CHECK_SIGCHLD:
++				for(p=child_watch_list;p!=NULL;p=p->next)
+ 				{
+ 					ChildWatch *item=p->data;
+ 					int status;
+-					n=p->next;
+ 					if(waitpid(item->pid,&status,WNOHANG)>0)
+ 					{
+ 						child_watch_list=g_slist_delete_link(child_watch_list,p);
++						// item->func may change the child_watch_list
+ 						item->func(item->data,item->pid,status);
+ 						g_free(item);
++						goto CHECK_SIGCHLD;
+ 					}
+ 				}
+ 			}
+@@ -438,7 +439,7 @@ gboolean lxcom_send(const char *sock,const char *buf,char **res)
+ int lxcom_add_child_watch(int pid,void (*func)(void*,int,int),void *data)
+ {
+ 	ChildWatch *item;
+-	if(pid<0 || !func)
++	if(pid<=0 || !func)
+ 		return -1;
+ 	item=g_new(ChildWatch,1);
+ 	item->func=func;
+diff --git a/src/lxdm.c b/src/lxdm.c
+index 638c30f..62ac31d 100644
+--- a/src/lxdm.c
++++ b/src/lxdm.c
+@@ -669,7 +669,7 @@ static void xauth_write_file(const char *file,int dpy,char data[16])
+ 	gethostname(addr,sizeof(addr));
+ 	
+ 	fd=open(file,O_CREAT|O_TRUNC|O_WRONLY,0600);
+-	if(!fd==-1) return;
++	if(fd==-1) return;
+ 	xauth_write_uint16(fd,256);		//FamilyLocalHost
+ 	xauth_write_string(fd,addr);
+ 	xauth_write_string(fd,buf);
+@@ -1022,7 +1022,18 @@ static void on_session_stop(void *data,int pid, int status)
+ 	int level;
+ 	LXSession *s=data;
+ 
+-	lxsession_stop(s);
++	gchar *argv[] = { "/etc/lxdm/PostLogout", NULL };
++	g_spawn_async(NULL, argv, s->env, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL);
++
++	if(g_key_file_get_integer(config,"server","reset",NULL)!=1)
++	{
++		lxsession_stop(s);
++	}
++	else
++	{
++		lxsession_free(s);
++		s=NULL;
++	}
+ 
+ 	level=get_run_level();
+ 	if(level=='0' || level=='6')
+@@ -1034,22 +1045,19 @@ static void on_session_stop(void *data,int pid, int status)
+ 		g_message("run level %c\n",level);
+ 		lxdm_quit_self(0);
+ 	}
+-	if(s!=lxsession_greeter())
++	if(s && s!=lxsession_greeter())
+ 	{
+ 		lxsession_free(s);
+ 	}
+-	else if(g_key_file_get_integer(config,"server","reset",NULL)==1)
++	else if(!s)
+ 	{
+-		lxsession_free(s);
+ 		lxsession_greeter();
+ 	}
+-	gchar *argv[] = { "/etc/lxdm/PostLogout", NULL };
+-	g_spawn_async(NULL, argv, s->env, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL);
+ }
+ 
+-gboolean lxdm_get_session_info(char *session,char **pname,char **pexec)
++gboolean lxdm_get_session_info(const char *session,char **pname,char **pexec,char **pdesktop_names)
+ {
+-	char *name=NULL,*exec=NULL;
++	char *name=NULL,*exec=NULL,**names=NULL,*desktop_names=NULL;
+ 	if(!session || !session[0])
+ 	{
+ 		name=g_key_file_get_string(config, "base", "session", 0);
+@@ -1072,6 +1080,11 @@ gboolean lxdm_get_session_info(char *session,char **pname,char **pexec)
+ 			}
+ 			name=g_key_file_get_string(cfg,"Desktop Entry","Name",NULL);
+ 			exec=g_key_file_get_string(cfg,"Desktop Entry","Exec",NULL);
++			names = g_key_file_get_string_list (cfg, "Desktop Entry", "DesktopNames", NULL, NULL);
++			if (names != NULL) {
++				desktop_names = g_strjoinv (":", names);
++				g_strfreev (names);
++			}
+ 			g_key_file_free(cfg);
+ 			if(!name || !exec)
+ 			{
+@@ -1097,6 +1110,11 @@ gboolean lxdm_get_session_info(char *session,char **pname,char **pexec)
+ 			{
+ 				name = g_key_file_get_locale_string(f, "Desktop Entry", "Name", NULL, NULL);
+ 				exec = g_key_file_get_string(f, "Desktop Entry", "Exec", NULL);
++				names = g_key_file_get_string_list (f, "Desktop Entry", "DesktopNames", NULL, NULL);
++				if (names != NULL) {
++					desktop_names = g_strjoinv (":", names);
++					g_strfreev (names);
++				}
+ 			}
+ 			else
+ 			{
+@@ -1120,6 +1138,7 @@ gboolean lxdm_get_session_info(char *session,char **pname,char **pexec)
+ 	}
+ 	if(pname) *pname=name;
+ 	if(pexec) *pexec=exec;
++	if(pdesktop_names) *pdesktop_names=desktop_names;
+ 	return TRUE;
+ }
+ 
+@@ -1194,7 +1213,7 @@ static void lxdm_save_login(char *session,char *lang)
+ 
+ void lxdm_do_login(struct passwd *pw, char *session, char *lang, char *option)
+ {
+-	char *session_name=0,*session_exec=0;
++	char *session_name=0,*session_exec=0,*session_desktop_names=0;
+ 	gboolean alloc_session=FALSE,alloc_lang=FALSE;
+ 	int pid;
+ 	LXSession *s,*prev;
+@@ -1222,7 +1241,7 @@ void lxdm_do_login(struct passwd *pw, char *session, char *lang, char *option)
+ 		g_key_file_free(dmrc);
+ 	}
+ 
+-	if(!lxdm_get_session_info(session,&session_name,&session_exec))
++	if(!lxdm_get_session_info(session,&session_name,&session_exec,&session_desktop_names))
+ 	{
+ 		if(alloc_session)
+ 			g_free(session);
+@@ -1329,6 +1348,9 @@ void lxdm_do_login(struct passwd *pw, char *session, char *lang, char *option)
+ 		env=g_environ_setenv(env, "LC_MESSAGES", lang, TRUE);
+ 		env=g_environ_setenv(env, "LANGUAGE", lang, TRUE);
+ 	}
++
++	if( session_desktop_names && session_desktop_names[0] )
++		env=g_environ_setenv(env, "XDG_CURRENT_DESKTOP", session_desktop_names, TRUE);
+ 	
+ #ifndef DISABLE_XAUTH
+ 	env=create_client_auth(pw,env);
+@@ -1348,6 +1370,7 @@ void lxdm_do_login(struct passwd *pw, char *session, char *lang, char *option)
+ 	
+ 	g_free(session_name);
+ 	g_free(session_exec);
++	g_free(session_desktop_names);
+ 	if(alloc_session)
+ 		g_free(session);
+ 	if(alloc_lang)
+diff --git a/src/ui.c b/src/ui.c
+index f233589..efe02a1 100644
+--- a/src/ui.c
++++ b/src/ui.c
+@@ -145,7 +145,7 @@ static gboolean on_greeter_input(GIOChannel *source, GIOCondition condition, gpo
+ 	else if( !strncmp(str, "shutdown", 6) )
+ 		lxdm_do_shutdown();
+ 	else if( !strncmp(str, "log ", 4) )
+-		g_message(str + 4);
++		g_message("%s",str + 4);
+ 	else if( !strncmp(str, "login ", 6) )
+ 	{
+ 		char *user = greeter_param(str, "user");

Deleted: community-x86_64/lxdm.install
===================================================================
--- community-x86_64/lxdm.install	2014-11-23 17:04:39 UTC (rev 123002)
+++ community-x86_64/lxdm.install	2014-11-23 17:04:56 UTC (rev 123003)
@@ -1,17 +0,0 @@
-post_install() {
-  getent group lxdm > /dev/null 2>&1 && \
-    groupmod -g 121 lxdm > /dev/null 2>&1 || \
-    groupadd -g 121 lxdm
-  getent passwd lxdm > /dev/null 2>&1 && \
-    usermod -c 'Lightweight X11 Display Manager' -u 121 -g 121 -d /var/lib/lxdm -s /sbin/nologin lxdm > /dev/null 2>&1 || \
-    useradd -c 'Lightweight X11 Display Manager' -u 121 -g 121 -d /var/lib/lxdm -s /sbin/nologin lxdm
-  passwd -l lxdm > /dev/null
-}
-
-post_upgrade() {
-  post_install
-}
-
-post_remove() {
-  getent passwd lxdm > /dev/null 2>&1 && userdel lxdm
-}

Copied: lxdm/repos/community-x86_64/lxdm.install (from rev 123002, lxdm/trunk/lxdm.install)
===================================================================
--- community-x86_64/lxdm.install	                        (rev 0)
+++ community-x86_64/lxdm.install	2014-11-23 17:04:56 UTC (rev 123003)
@@ -0,0 +1,17 @@
+post_install() {
+  getent group lxdm > /dev/null 2>&1 && \
+    groupmod -g 121 lxdm > /dev/null 2>&1 || \
+    groupadd -g 121 lxdm
+  getent passwd lxdm > /dev/null 2>&1 && \
+    usermod -c 'Lightweight X11 Display Manager' -u 121 -g 121 -d /var/lib/lxdm -s /sbin/nologin lxdm > /dev/null 2>&1 || \
+    useradd -c 'Lightweight X11 Display Manager' -u 121 -g 121 -d /var/lib/lxdm -s /sbin/nologin lxdm
+  passwd -l lxdm > /dev/null
+}
+
+post_upgrade() {
+  post_install
+}
+
+post_remove() {
+  getent passwd lxdm > /dev/null 2>&1 && userdel lxdm
+}

Deleted: community-x86_64/lxdm.pam
===================================================================
--- community-x86_64/lxdm.pam	2014-11-23 17:04:39 UTC (rev 123002)
+++ community-x86_64/lxdm.pam	2014-11-23 17:04:56 UTC (rev 123003)
@@ -1,7 +0,0 @@
-#%PAM-1.0
-auth        include     system-login
--auth       optional    pam_gnome_keyring.so
-account     include     system-login
-password    include     system-login
-session     include     system-login
--session    optional    pam_gnome_keyring.so auto_start

Copied: lxdm/repos/community-x86_64/lxdm.pam (from rev 123002, lxdm/trunk/lxdm.pam)
===================================================================
--- community-x86_64/lxdm.pam	                        (rev 0)
+++ community-x86_64/lxdm.pam	2014-11-23 17:04:56 UTC (rev 123003)
@@ -0,0 +1,7 @@
+#%PAM-1.0
+auth        include     system-login
+-auth       optional    pam_gnome_keyring.so
+account     include     system-login
+password    include     system-login
+session     include     system-login
+-session    optional    pam_gnome_keyring.so auto_start


More information about the arch-commits mailing list