From e9dd04abd0ede1143ea4af10059e37c2f599e1fd Mon Sep 17 00:00:00 2001 From: root Date: Mon, 15 Oct 2012 00:36:27 -0700 Subject: Mon Oct 15 00:36:26 PDT 2012 --- community-staging/lxdm/PKGBUILD | 38 ++++++++++++----------- community-staging/lxdm/lxdm-pam | 2 ++ community-staging/lxdm/lxdm.install | 26 +++++++--------- community-staging/lxdm/pam-env-vars.patch | 50 +++++++++++++++++++++++++++++++ community-staging/lxdm/service | 2 +- 5 files changed, 83 insertions(+), 35 deletions(-) create mode 100644 community-staging/lxdm/pam-env-vars.patch (limited to 'community-staging/lxdm') diff --git a/community-staging/lxdm/PKGBUILD b/community-staging/lxdm/PKGBUILD index a35c35f31..1430d5160 100644 --- a/community-staging/lxdm/PKGBUILD +++ b/community-staging/lxdm/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 72524 2012-06-16 08:50:39Z bpiotrowski $ -# Maintainer: Bartłomiej Piotrowski +# $Id: PKGBUILD 77741 2012-10-14 07:48:01Z bpiotrowski $ +# Maintainer: Bartłomiej Piotrowski # Contributor: AndyRTR # Contributor: kiefer pkgname=lxdm pkgver=0.4.1 -pkgrel=12 +pkgrel=16 pkgdesc='Lightweight X11 Display Manager' arch=('i686' 'x86_64') url="http://sourceforge.net/projects/lxdm/" license=('GPL') groups=('lxde') -depends=('gtk2' 'xorg-server' 'consolekit') +depends=('gtk2' 'xorg-server') makedepends=('intltool') install=${pkgname}.install backup=('etc/lxdm/lxdm.conf' 'etc/pam.d/lxdm' 'etc/lxdm/Xsession' @@ -19,43 +19,45 @@ backup=('etc/lxdm/lxdm.conf' 'etc/pam.d/lxdm' 'etc/lxdm/Xsession' 'etc/lxdm/PostLogout' 'etc/lxdm/PreReboot' 'etc/lxdm/PreShutdown') source=(http://downloads.sourceforge.net/lxde/$pkgname-$pkgver.tar.gz glib2-2.32.0.patch lxdm.patch lxdm.conf.patch Xsession.patch - greeter-session.patch rc.d lxdm-pam service) + greeter-session.patch pam-env-vars.patch rc.d lxdm-pam service) md5sums=('8da1cfc2be6dc9217c85a7cf51e1e821' 'a1e3c46a8bef691bc544028f5b6cfe22' 'baed9055e8825a5511712bc095197519' 'c50dd01b715b0a236407d48066191601' 'd2e4a4a22ee2aa1a986be154c647b6c6' '28475239d0c8b4fd778ec49f5ec72962' + '4c1d43e81e9a256e8d1ea7686c24b3d3' '705f394052fdd0dec22e95321d170de0' - 'b20fe3c8487a039050986d60e45233a9' - '4aaa9a7175cf327d9f7651c2586ef922') + '34908bc0ec15b6ae4e1074f39fce44df' + 'e8cc66eb1a2405d2d9d184a727cbd9d8') build() { - cd $srcdir/$pkgname-$pkgver + cd $srcdir/$pkgname-$pkgver - patch -Np1 -i $srcdir/glib2-2.32.0.patch + patch -Np1 -i $srcdir/glib2-2.32.0.patch patch -Np1 -i $srcdir/greeter-session.patch + patch -Np1 -i $srcdir/pam-env-vars.patch ./configure --sysconfdir=/etc --prefix=/usr --libexecdir=/usr/lib/lxdm - make + make - patch -Np0 -i $srcdir/lxdm.patch + patch -Np0 -i $srcdir/lxdm.patch patch -Np0 -i $srcdir/lxdm.conf.patch patch -Np0 -i $srcdir/Xsession.patch } package() { - cd $srcdir/$pkgname-$pkgver - make DESTDIR=$pkgdir install + cd $srcdir/$pkgname-$pkgver + make DESTDIR=$pkgdir install - install -m644 $srcdir/lxdm-pam $pkgdir/etc/pam.d/lxdm - install -Dm755 $srcdir/rc.d $pkgdir/etc/rc.d/lxdm - install -Dm644 $srcdir/service $pkgdir/usr/lib/systemd/system/lxdm.service + install -m644 $srcdir/lxdm-pam $pkgdir/etc/pam.d/lxdm + install -Dm755 $srcdir/rc.d $pkgdir/etc/rc.d/lxdm + install -Dm644 $srcdir/service $pkgdir/usr/lib/systemd/system/lxdm.service install -d $pkgdir/var/{lib,run}/lxdm - # fix the greeter location - sed -i -e 's/local\/libexec/lib\/lxdm/' $pkgdir/etc/lxdm/lxdm.conf + # fix the greeter location + sed -i -e 's/local\/libexec/lib\/lxdm/' $pkgdir/etc/lxdm/lxdm.conf # avoid conflict with filesystem>=2012.06 rm -r $pkgdir/var/run diff --git a/community-staging/lxdm/lxdm-pam b/community-staging/lxdm/lxdm-pam index 3f5df04a7..c62f62721 100644 --- a/community-staging/lxdm/lxdm-pam +++ b/community-staging/lxdm/lxdm-pam @@ -6,3 +6,5 @@ account required pam_unix.so session required pam_limits.so session required pam_unix.so password required pam_unix.so +-session optional pam_systemd.so +-session optional pam_loginuid.so diff --git a/community-staging/lxdm/lxdm.install b/community-staging/lxdm/lxdm.install index eaf2339cd..4d1285dc5 100644 --- a/community-staging/lxdm/lxdm.install +++ b/community-staging/lxdm/lxdm.install @@ -1,24 +1,18 @@ -pkgname=lxdm - post_install() { - if [ -z "`getent group "lxdm" 2> /dev/null`" ]; then - groupadd lxdm - chown root:lxdm /etc/lxdm/lxdm.conf - fi - chown -R root:lxdm /var/lib/lxdm > /dev/null - chmod +r /etc/lxdm/lxdm.conf + if ! getent group lxdm > /dev/null ; then + groupadd --system lxdm + chgrp -R lxdm /var/lib/lxdm + chgrp lxdm /etc/lxdm/lxdm.conf + chmod +r /etc/lxdm/lxdm.conf + fi } post_upgrade() { - post_install + post_install $1 } post_remove() { - getent group "lxdm" &>/dev/null && groupdel lxdm #1>/dev/null - return 0 + if ! getent group lxdm > /dev/null ; then + groupdel lxdm + fi } - -op=$1 -shift - -$op "$@" diff --git a/community-staging/lxdm/pam-env-vars.patch b/community-staging/lxdm/pam-env-vars.patch new file mode 100644 index 000000000..ab8605ff1 --- /dev/null +++ b/community-staging/lxdm/pam-env-vars.patch @@ -0,0 +1,50 @@ +diff --git a/src/lxdm.c b/src/lxdm.c +index 369aedf..cd1d486 100644 +--- a/src/lxdm.c ++++ b/src/lxdm.c +@@ -935,16 +935,23 @@ void setup_pam_session(LXSession *s,struct passwd *pw,char *session_name) + g_warning( "pam open session error \"%s\"\n", pam_strerror(s->pamh, err)); + } + +-void append_pam_environ(pam_handle_t *pamh,char **env) ++static char **append_pam_environ(pam_handle_t *pamh,char **env) + { +- int i,j,n; ++ int i,j,n,a; + char **penv; +- if(!pamh) return; ++ if(!pamh) return env; + penv=pam_getenvlist(pamh); +- if(!penv) return; ++ if(!penv) return env; ++ a=g_strv_length(penv); ++ if(a==0) ++ { ++ free(penv); ++ return env; ++ } ++ env=g_renew(char *,env,g_strv_length(env)+1+a+10); + for(i=0;penv[i]!=NULL;i++) + { +- //printf("PAM %s\n",penv[i]); ++ fprintf(stderr,"PAM %s\n",penv[i]); + n=strcspn(penv[i],"=")+1; + for(j=0;env[j]!=NULL;j++) + { +@@ -960,6 +967,7 @@ void append_pam_environ(pam_handle_t *pamh,char **env) + free(penv[i]); + } + free(penv); ++ return env; + } + + #endif +@@ -1540,7 +1548,7 @@ void lxdm_do_login(struct passwd *pw, char *session, char *lang, char *option) + if(s->child==0) + { + #if HAVE_LIBPAM +- append_pam_environ(s->pamh,env); ++ env=append_pam_environ(s->pamh,env); + pam_end(s->pamh,0); + #endif + switch_user(pw, session_exec, env); diff --git a/community-staging/lxdm/service b/community-staging/lxdm/service index b76e1190e..e1840476c 100644 --- a/community-staging/lxdm/service +++ b/community-staging/lxdm/service @@ -6,4 +6,4 @@ After=systemd-user-sessions.service ExecStart=/usr/sbin/lxdm [Install] -WantedBy=graphical.target +Alias=display-manager.service -- cgit v1.2.3-54-g00ecf