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 <bpiotrow...@archlinux.org> -# Contributor: AndyRTR <andy...@archlinux.org> -# Contributor: kiefer <jorgelmad...@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 <bpiotrow...@archlinux.org> +# Contributor: AndyRTR <andy...@archlinux.org> +# Contributor: kiefer <jorgelmad...@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 <bpiotrow...@archlinux.org> -# Contributor: AndyRTR <andy...@archlinux.org> -# Contributor: kiefer <jorgelmad...@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 <bpiotrow...@archlinux.org> +# Contributor: AndyRTR <andy...@archlinux.org> +# Contributor: kiefer <jorgelmad...@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