summaryrefslogtreecommitdiff
path: root/community/lxdm
diff options
context:
space:
mode:
Diffstat (limited to 'community/lxdm')
-rw-r--r--community/lxdm/PKGBUILD82
-rw-r--r--community/lxdm/lxdm-0.4.1-Xsession-source-profile.patch11
-rw-r--r--community/lxdm/lxdm-0.4.1-conf.patch11
-rw-r--r--community/lxdm/lxdm-0.4.1-event-check-bug.patch21
-rw-r--r--community/lxdm/lxdm-0.4.1-industrial-greeter-ui.patch13
-rw-r--r--community/lxdm/lxdm-0.4.1-kill_user_processes.patch35
-rw-r--r--community/lxdm/lxdm-0.4.1-modern-systems.patch26
-rw-r--r--community/lxdm/lxdm-0.4.1-nolang-show-sessions.patch13
-rw-r--r--community/lxdm/lxdm-0.4.1-pam-env-vars.patch50
-rw-r--r--community/lxdm/lxdm.install22
-rw-r--r--community/lxdm/lxdm.pam10
-rw-r--r--community/lxdm/lxdm.service9
12 files changed, 303 insertions, 0 deletions
diff --git a/community/lxdm/PKGBUILD b/community/lxdm/PKGBUILD
new file mode 100644
index 000000000..8316a95aa
--- /dev/null
+++ b/community/lxdm/PKGBUILD
@@ -0,0 +1,82 @@
+# $Id: PKGBUILD 95338 2013-08-09 22:46:10Z dwallace $
+# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
+# Contributor: AndyRTR <andyrtr@archlinux.org>
+# Contributor: kiefer <jorgelmadrid@gmail.com>
+
+pkgname=lxdm
+pkgver=0.4.1
+pkgrel=23
+pkgdesc='Lightweight X11 Display Manager'
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/lxdm/"
+license=('GPL')
+groups=('lxde')
+depends=('gtk2' 'xorg-server')
+makedepends=('intltool')
+optdepends=('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/lxde/$pkgname-$pkgver.tar.gz
+ lxdm.pam lxdm.service
+ lxdm-0.4.1-Xsession-source-profile.patch
+ lxdm-0.4.1-conf.patch
+ lxdm-0.4.1-event-check-bug.patch
+ lxdm-0.4.1-industrial-greeter-ui.patch
+ lxdm-0.4.1-modern-systems.patch
+ lxdm-0.4.1-nolang-show-sessions.patch
+ lxdm-0.4.1-pam-env-vars.patch
+ lxdm-0.4.1-kill_user_processes.patch
+ )
+md5sums=('8da1cfc2be6dc9217c85a7cf51e1e821'
+ '9cc734228696a3c6f06d91bba61b03c1'
+ 'b86317143ae44d7ed38c150fe4f25502'
+ 'd2e4a4a22ee2aa1a986be154c647b6c6'
+ 'c50dd01b715b0a236407d48066191601'
+ 'a1e3c46a8bef691bc544028f5b6cfe22'
+ '2c4afdbe3532be4f90d8f6240d352766'
+ 'baed9055e8825a5511712bc095197519'
+ '28475239d0c8b4fd778ec49f5ec72962'
+ '4c1d43e81e9a256e8d1ea7686c24b3d3'
+ '3ac63085f9df9296dfa645fa623af0e2')
+
+prepare(){
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np1 -i $srcdir/lxdm-0.4.1-event-check-bug.patch
+ patch -Np1 -i $srcdir/lxdm-0.4.1-nolang-show-sessions.patch
+ patch -Np1 -i $srcdir/lxdm-0.4.1-pam-env-vars.patch
+ patch -Np1 -i $srcdir/lxdm-0.4.1-kill_user_processes.patch
+}
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+
+ ./configure --sysconfdir=/etc --prefix=/usr --libexecdir=/usr/lib/lxdm \
+ --bindir=/usr/bin \
+ --sbindir=/usr/bin
+ make
+
+ patch -Np0 -i $srcdir/lxdm-0.4.1-modern-systems.patch
+ patch -Np0 -i $srcdir/lxdm-0.4.1-conf.patch
+ patch -Np0 -i $srcdir/lxdm-0.4.1-Xsession-source-profile.patch
+ patch -Np0 -i $srcdir/lxdm-0.4.1-industrial-greeter-ui.patch
+}
+
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir sbindir=/usr/bin install
+
+ install -m644 $srcdir/lxdm.pam $pkgdir/etc/pam.d/lxdm
+ install -Dm644 $srcdir/lxdm.service $pkgdir/usr/lib/systemd/system/lxdm.service
+ install -d $pkgdir/var/lib/lxdm
+ echo "GDK_CORE_DEVICE_EVENTS\t\t\tDEFAULT=1" > $pkgdir/var/lib/lxdm/.pam_environment
+ chmod 644 $pkgdir/var/lib/lxdm/.pam_environment
+
+ # fix the greeter location
+ sed -i -e 's/local\/libexec/lib\/lxdm/' $pkgdir/etc/lxdm/lxdm.conf
+ sed -i 's:sbin:bin:' $pkgdir/usr/bin/lxdm
+
+}
diff --git a/community/lxdm/lxdm-0.4.1-Xsession-source-profile.patch b/community/lxdm/lxdm-0.4.1-Xsession-source-profile.patch
new file mode 100644
index 000000000..035ff0383
--- /dev/null
+++ b/community/lxdm/lxdm-0.4.1-Xsession-source-profile.patch
@@ -0,0 +1,11 @@
+--- data/Xsession.orig 2011-07-29 15:42:33.000000000 +0200
++++ data/Xsession 2011-12-03 09:09:14.592876087 +0100
+@@ -9,6 +9,8 @@
+ LXSESSION=/usr/bin/startlxde
+ fi
+
++[ -f /etc/profile ] && . /etc/profile
++[ -f ~/.profile ] && . ~/.profile
+ [ -f /etc/xprofile ] && . /etc/xprofile
+ [ -f ~/.xprofile ] && . ~/.xprofile
+
diff --git a/community/lxdm/lxdm-0.4.1-conf.patch b/community/lxdm/lxdm-0.4.1-conf.patch
new file mode 100644
index 000000000..1744e557e
--- /dev/null
+++ b/community/lxdm/lxdm-0.4.1-conf.patch
@@ -0,0 +1,11 @@
+--- data/lxdm.conf.orig 2011-11-01 17:57:59.208757577 +0100
++++ data/lxdm.conf 2011-11-01 18:03:55.608741945 +0100
+@@ -27,7 +27,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
diff --git a/community/lxdm/lxdm-0.4.1-event-check-bug.patch b/community/lxdm/lxdm-0.4.1-event-check-bug.patch
new file mode 100644
index 000000000..cebfc6133
--- /dev/null
+++ b/community/lxdm/lxdm-0.4.1-event-check-bug.patch
@@ -0,0 +1,21 @@
+From: dgod <dgod.osa@gmail.com>
+Date: Sun, 25 Dec 2011 07:23:19 +0000 (+0800)
+Subject: fix event check bug caused cpu 100%
+X-Git-Url: http://lxde.git.sourceforge.net/git/gitweb.cgi?p=lxde%2Flxdm;a=commitdiff_plain;h=d4e41ecb;hp=f0951bdf736026b041001e846d2cb93f7f2852e1
+
+fix event check bug caused cpu 100%
+---
+
+diff --git a/src/lxcom.c b/src/lxcom.c
+index 02763eb..18ee12e 100644
+--- a/src/lxcom.c
++++ b/src/lxcom.c
+@@ -89,7 +89,7 @@ static gboolean lxcom_prepare (GSource *source,gint *timeout)
+
+ static gboolean lxcom_check(GSource *source)
+ {
+- return TRUE;
++ return (((LXComSource*)source)->poll.revents&G_IO_IN)?TRUE:FALSE;
+ }
+
+ static gboolean lxcom_dispatch (GSource *source,GSourceFunc callback,gpointer user_data)
diff --git a/community/lxdm/lxdm-0.4.1-industrial-greeter-ui.patch b/community/lxdm/lxdm-0.4.1-industrial-greeter-ui.patch
new file mode 100644
index 000000000..a2a366809
--- /dev/null
+++ b/community/lxdm/lxdm-0.4.1-industrial-greeter-ui.patch
@@ -0,0 +1,13 @@
+--- data/themes/Industrial/greeter.ui.orig 2012-05-09 23:54:03.743980613 -0300
++++ data/themes/Industrial/greeter.ui 2012-05-10 00:26:20.340687396 -0300
+@@ -201,7 +201,9 @@
+ </packing>
+ </child>
+ <child>
+- <object class="GtkComboBoxEntry" id="keyboard"/>
++ <object class="GtkComboBoxEntry" id="keyboard">
++ <property name="text_column">0</property>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">3</property>
diff --git a/community/lxdm/lxdm-0.4.1-kill_user_processes.patch b/community/lxdm/lxdm-0.4.1-kill_user_processes.patch
new file mode 100644
index 000000000..f267b105a
--- /dev/null
+++ b/community/lxdm/lxdm-0.4.1-kill_user_processes.patch
@@ -0,0 +1,35 @@
+diff -aur lxdm/src/xconn.c lxdm.modified/src/xconn.c
+--- lxdm/src/xconn.c 2012-12-23 19:27:04.512531088 -0800
++++ lxdm/src/xconn.c 2012-12-23 19:28:31.659227448 -0800
+@@ -172,7 +172,7 @@
+ free(c);
+ }
+
+-#if 0
++//#if 0
+ static xcb_window_t xconn_get_root(xconn_t c)
+ {
+ const xcb_setup_t *setup;
+@@ -181,11 +181,11 @@
+ xcb_screen_t *screen = iter.data;
+ return screen->root;
+ }
+-#endif
++//#endif
+
+ void xconn_clean(xconn_t c)
+ {
+-#if 0
++//#if 0
+ xcb_query_tree_cookie_t wintree;
+ xcb_query_tree_reply_t *rep;
+ xcb_window_t *children;
+@@ -202,7 +202,7 @@
+ xcb_kill_client(c->c,children[i]);
+ free(rep);
+ xcb_flush(c->c);
+-#endif
++//#endif
+ }
+
+ #endif
diff --git a/community/lxdm/lxdm-0.4.1-modern-systems.patch b/community/lxdm/lxdm-0.4.1-modern-systems.patch
new file mode 100644
index 000000000..a703a386d
--- /dev/null
+++ b/community/lxdm/lxdm-0.4.1-modern-systems.patch
@@ -0,0 +1,26 @@
+--- data/lxdm.orig 2010-01-24 16:58:42.262866825 -0200
++++ data/lxdm 2010-01-19 11:56:34.308668692 -0200
+@@ -1,21 +1,13 @@
+ #!/bin/sh
+
+-[ -f /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n
+-
+-if [ -z "$LANG" -a -e /etc/sysconfig/language ]; then
+- . /etc/sysconfig/language
+- if [ -n "$RC_LANG"]; then
+- LANG=$RC_LANG
+- fi
++if [ -r /etc/profile.d/locale.sh ]; then
++ . /etc/profile.d/locale.sh
+ fi
+
+ if [ -n "$LANG" ]; then
+ export LANG
+ fi
+
+-[ -f /etc/sysconfig/desktop ] && . /etc/sysconfig/desktop
+-[ -f /etc/sysconfig/windowmanager ] && . /etc/sysconfig/windowmanager
+-
+ if [ -n "$DEFAULT_WM" ]; then
+ PREFERRED=$DEFAULT_WM
+ fi
diff --git a/community/lxdm/lxdm-0.4.1-nolang-show-sessions.patch b/community/lxdm/lxdm-0.4.1-nolang-show-sessions.patch
new file mode 100644
index 000000000..f3b94a57a
--- /dev/null
+++ b/community/lxdm/lxdm-0.4.1-nolang-show-sessions.patch
@@ -0,0 +1,13 @@
+diff --git a/src/greeter.c b/src/greeter.c
+index c0c150d..1f6b88e 100644
+--- a/src/greeter.c
++++ b/src/greeter.c
+@@ -114,7 +114,7 @@ static char *get_session_exec(void)
+ GtkTreeModel* model;
+ GtkTreeIter it;
+ gchar *res;
+- if(!lang)
++ if(!sessions)
+ return g_strdup("");
+
+ if(!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(sessions), &it))
diff --git a/community/lxdm/lxdm-0.4.1-pam-env-vars.patch b/community/lxdm/lxdm-0.4.1-pam-env-vars.patch
new file mode 100644
index 000000000..ab8605ff1
--- /dev/null
+++ b/community/lxdm/lxdm-0.4.1-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/lxdm/lxdm.install b/community/lxdm/lxdm.install
new file mode 100644
index 000000000..3bbb59a2e
--- /dev/null
+++ b/community/lxdm/lxdm.install
@@ -0,0 +1,22 @@
+post_install() {
+ getent group lxdm >/dev/null && groupmod -g 121 lxdm || groupadd -g 121 lxdm
+ getent passwd lxdm >/dev/null && usermod -u 121 -g 121 lxdm || useradd -r -d /var/lib/lxdm -u 121 -g 121 lxdm
+ chown -R 121:121 /var/lib/lxdm
+ chgrp 121 /etc/lxdm/lxdm.conf
+ chmod +r /etc/lxdm/lxdm.conf
+ systemd-tmpfiles --create lxdm.conf
+}
+
+post_upgrade() {
+ post_install $1
+ if [[ $(vercmp $2 0.4.1-22) < 0 ]]; then
+ groupmod -g 121 lxdm
+ usermod -g 121 -u 121 lxdm
+ fi
+}
+
+post_remove() {
+ userdel -f lxdm
+ groupdel lxdm
+ true
+}
diff --git a/community/lxdm/lxdm.pam b/community/lxdm/lxdm.pam
new file mode 100644
index 000000000..57f33b221
--- /dev/null
+++ b/community/lxdm/lxdm.pam
@@ -0,0 +1,10 @@
+#%PAM-1.0
+auth requisite pam_nologin.so
+auth required pam_env.so
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_limits.so
+session required pam_unix.so
+password required pam_unix.so
+-session optional pam_loginuid.so
+-session optional pam_systemd.so
diff --git a/community/lxdm/lxdm.service b/community/lxdm/lxdm.service
new file mode 100644
index 000000000..026d62b50
--- /dev/null
+++ b/community/lxdm/lxdm.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=LXDE Display Manager
+After=systemd-user-sessions.service
+
+[Service]
+ExecStart=/usr/bin/lxdm
+
+[Install]
+Alias=display-manager.service