aboutsummaryrefslogtreecommitdiffstats
path: root/main/lxdm
diff options
context:
space:
mode:
Diffstat (limited to 'main/lxdm')
-rw-r--r--main/lxdm/APKBUILD55
-rw-r--r--main/lxdm/lxdm-execinfo.patch47
-rw-r--r--main/lxdm/lxdm-nopam.patch18
-rwxr-xr-xmain/lxdm/lxdm.initd12
4 files changed, 132 insertions, 0 deletions
diff --git a/main/lxdm/APKBUILD b/main/lxdm/APKBUILD
new file mode 100644
index 0000000000..05f9931dc1
--- /dev/null
+++ b/main/lxdm/APKBUILD
@@ -0,0 +1,55 @@
+# Contributor: William Pitcock <nenolod@dereferenced.org>
+# Maintainer: William Pitcock <nenolod@dereferenced.org>
+pkgname=lxdm
+pkgver=0.3.0
+pkgrel=2
+pkgdesc="LXDE desktop login manager"
+url="http://wiki.lxde.org/en/LXDM"
+license="GPL"
+depends="bash"
+makedepends="autoconf automake gtk+-dev consolekit-dev"
+install=
+source="http://downloads.sourceforge.net/lxde/$pkgname-$pkgver.tar.gz
+ lxdm.initd
+ lxdm-execinfo.patch
+ lxdm-nopam.patch"
+arch="all"
+
+_builddir="$srcdir"/$pkgname-$pkgver
+
+prepare() {
+ cd "$_builddir"
+
+ for i in $source; do
+ case $i in
+ *.patch)
+ msg "Applying $i..."
+ patch -s -p1 -N -i "$srcdir"/$i || return 1
+ ;;
+ esac
+ done
+
+ autoreconf
+}
+
+build() {
+ cd "$_builddir"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --without-pam
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install
+
+ install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+}
+
+md5sums="1d0688e088edab7c3c563263eb2f9654 lxdm-0.3.0.tar.gz
+d6455d172d5d897f6bfcefe9a1a632c7 lxdm.initd
+045da38f5bb183ccacc489ea7e50e927 lxdm-execinfo.patch
+0d44e8cd97894fd680e3f09e680c3481 lxdm-nopam.patch"
diff --git a/main/lxdm/lxdm-execinfo.patch b/main/lxdm/lxdm-execinfo.patch
new file mode 100644
index 0000000000..b81ef2fc84
--- /dev/null
+++ b/main/lxdm/lxdm-execinfo.patch
@@ -0,0 +1,47 @@
+--- lxdm-0.3.0/configure.ac
++++ lxdm-0.3.0.mod/configure.ac
+@@ -23,7 +23,7 @@
+
+ # Checks for header files.
+ AC_PATH_X
+-AC_CHECK_HEADERS([shadow.h stdlib.h string.h unistd.h])
++AC_CHECK_HEADERS([shadow.h stdlib.h string.h unistd.h execinfo.h])
+
+ # Checks for typedefs, structures, and compiler characteristics.
+ AC_TYPE_PID_T
+Only in lxdm-0.3.0: data/LoginReady
+Only in lxdm-0.3.0: data/PostLogin
+Only in lxdm-0.3.0: data/PostLogout
+Only in lxdm-0.3.0: data/PreLogin
+Only in lxdm-0.3.0: data/PreReboot
+Only in lxdm-0.3.0: data/PreShutdown
+--- lxdm-0.3.0/src/lxdm.c
++++ lxdm-0.3.0.mod/src/lxdm.c
+@@ -51,7 +51,9 @@
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
+
++#ifdef HAVE_EXECINFO_H
+ #include <execinfo.h>
++#endif
+
+ #include <utmp.h>
+
+@@ -1480,6 +1482,7 @@
+
+ static void log_sigsegv(void)
+ {
++#ifdef HAVE_EXECINFO_H
+ void *array[40];
+ size_t size;
+ char **bt_strs;
+@@ -1492,6 +1495,9 @@
+ fprintf(stderr, "%s\n", bt_strs[i]);
+
+ free(bt_strs);
++#else
++ fprintf(stderr, "backtrace is unavailable\n");
++#endif
+ }
+
+ static void sigsegv_handler(int sig)
diff --git a/main/lxdm/lxdm-nopam.patch b/main/lxdm/lxdm-nopam.patch
new file mode 100644
index 0000000000..86c808fcb6
--- /dev/null
+++ b/main/lxdm/lxdm-nopam.patch
@@ -0,0 +1,18 @@
+--- lxdm-0.3.0/src/lxdm.c
++++ lxdm-0.3.0.mod/src/lxdm.c
+@@ -152,6 +152,7 @@
+ while( waitpid(-1, 0, WNOHANG) > 0 ) ;
+ }
+
++#if HAVE_LIBPAM
+ static void close_pam_session(pam_handle_t *pamh)
+ {
+ int err;
+@@ -161,6 +162,7 @@
+ pam_end(pamh, err);
+ pamh = NULL;
+ }
++#endif
+
+ static LXSession *lxsession_find_greeter(void)
+ {
diff --git a/main/lxdm/lxdm.initd b/main/lxdm/lxdm.initd
new file mode 100755
index 0000000000..d0f17a24f8
--- /dev/null
+++ b/main/lxdm/lxdm.initd
@@ -0,0 +1,12 @@
+#!/sbin/runscript
+
+depends() {
+ needs localmount
+}
+
+description="Lightweight Login Manager"
+command="/usr/sbin/lxdm"
+command_args="-d"
+pidfile="/var/run/lxdm.pid"
+
+# uses the openrc templates for start()/stop()