summaryrefslogtreecommitdiff
path: root/testing/slim
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-10-19 08:15:39 -0700
committerroot <root@rshg054.dnsready.net>2012-10-19 08:15:39 -0700
commitdcc55a1cfa32068d0759c1c8307f6c07c11aec99 (patch)
tree2f6cd8ae52f7f49ed4ac2db1b0f4bf88a8ba5d96 /testing/slim
parent9e3985ed7c9851da65023a0ab3d0739cce1858e2 (diff)
Fri Oct 19 08:15:38 PDT 2012
Diffstat (limited to 'testing/slim')
-rw-r--r--testing/slim/PKGBUILD63
-rw-r--r--testing/slim/fix-glibc-segfault-1.3.4.patch13
-rw-r--r--testing/slim/libpng-1.4+-support.patch14
-rw-r--r--testing/slim/logrotate9
-rw-r--r--testing/slim/pam.d10
-rwxr-xr-xtesting/slim/rc.d36
-rw-r--r--testing/slim/session-name.patch21
-rw-r--r--testing/slim/slim.service9
-rw-r--r--testing/slim/tty-slowness.patch30
9 files changed, 205 insertions, 0 deletions
diff --git a/testing/slim/PKGBUILD b/testing/slim/PKGBUILD
new file mode 100644
index 000000000..3aa5a9f1b
--- /dev/null
+++ b/testing/slim/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 169287 2012-10-18 19:49:16Z jgc $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Hugo Ideler <hugoideler@dse.nl>
+
+pkgname=slim
+pkgver=1.3.4
+pkgrel=4
+pkgdesc='Desktop-independent graphical login manager for X11'
+arch=('i686' 'x86_64')
+url='http://slim.berlios.de/'
+license=('GPL2')
+depends=('pam' 'libxmu' 'libpng' 'libjpeg' 'libxft')
+makedepends=('cmake' 'freeglut')
+backup=('etc/slim.conf' 'etc/logrotate.d/slim' 'etc/pam.d/slim')
+source=("http://download.berlios.de/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'rc.d'
+ 'pam.d'
+ 'logrotate'
+ 'slim.service'
+ 'session-name.patch'
+ 'libpng-1.4+-support.patch'
+ 'fix-glibc-segfault-1.3.4.patch')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i ../session-name.patch # FS#26693: fix default session name
+ patch -Np1 -i ../libpng-1.4+-support.patch # taken from gentoo to build
+ patch -Np0 -i ../fix-glibc-segfault-1.3.4.patch # FS#30864
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DUSE_PAM=yes -DUSE_CONSOLEKIT=no
+ make
+}
+
+package() {
+ cd ${srcdir}/build/
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m755 ../rc.d "${pkgdir}"/etc/rc.d/slim
+ install -D -m644 ../pam.d "${pkgdir}"/etc/pam.d/slim
+ install -D -m644 ../logrotate "${pkgdir}"/etc/logrotate.d/slim
+
+ # Provide sane defaults
+ sed -i 's|#xserver_arguments.*|xserver_arguments -nolisten tcp vt07|' "${pkgdir}"/etc/slim.conf
+ sed -i 's|/var/run/slim.lock|/var/lock/slim.lock|' "${pkgdir}"/etc/slim.conf
+ # install systemd files
+ install -D -m644 ${srcdir}/slim.service ${pkgdir}/usr/lib/systemd/system/slim.service
+}
+md5sums=('51543533e492b41007811f7d880720fa'
+ 'd8ea9c4dee2811524b67f4f666311a1f'
+ '37ef35079139544d04b8316c7f66f754'
+ '43da096480bf72c3ccec8ad8400f34f0'
+ 'a5d6bde9e63899df7d2081e1585bbe54'
+ 'ebcb6829028615686de7b64ceeaaf8ed'
+ '6d19bd7a91592ed2bb902b22b9594565'
+ '9efc4e0d82d354f0c578be7723870769')
diff --git a/testing/slim/fix-glibc-segfault-1.3.4.patch b/testing/slim/fix-glibc-segfault-1.3.4.patch
new file mode 100644
index 000000000..b035f8a78
--- /dev/null
+++ b/testing/slim/fix-glibc-segfault-1.3.4.patch
@@ -0,0 +1,13 @@
+Index: app.cpp
+===================================================================
+--- app.cpp (revision 223)
++++ app.cpp (working copy)
+@@ -593,7 +593,7 @@
+
+ n++;
+
+- child_env = static_cast<char**>(malloc(sizeof(char*)*n));
++ child_env = static_cast<char**>(malloc(sizeof(char*)*(n+1)));
+ memcpy(child_env, old_env, sizeof(char*)*n);
+ child_env[n - 1] = StrConcat("XDG_SESSION_COOKIE=", ck.get_xdg_session_cookie());
+ child_env[n] = NULL;
diff --git a/testing/slim/libpng-1.4+-support.patch b/testing/slim/libpng-1.4+-support.patch
new file mode 100644
index 000000000..57b39272b
--- /dev/null
+++ b/testing/slim/libpng-1.4+-support.patch
@@ -0,0 +1,14 @@
+--- a/image.cpp 2012-06-26 04:20:14.000000000 -0400
++++ b/image.cpp 2012-06-27 11:41:34.000000000 -0400
+@@ -781,7 +781,11 @@
+ (png_infopp) NULL);
+ }
+
++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
++ if (setjmp(png_jmpbuf((png_ptr)))) {
++#else
+ if (setjmp(png_ptr->jmpbuf)) {
++#endif
+ goto png_destroy;
+ }
+
diff --git a/testing/slim/logrotate b/testing/slim/logrotate
new file mode 100644
index 000000000..26ec3b0f4
--- /dev/null
+++ b/testing/slim/logrotate
@@ -0,0 +1,9 @@
+/var/log/slim.log {
+ compress
+ rotate 1
+ size 1024k
+ notifempty
+ missingok
+ copytruncate
+ noolddir
+}
diff --git a/testing/slim/pam.d b/testing/slim/pam.d
new file mode 100644
index 000000000..59db5a8c5
--- /dev/null
+++ b/testing/slim/pam.d
@@ -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
+password required pam_unix.so
+session required pam_limits.so
+session required pam_unix.so
+session optional pam_loginuid.so
+-session optional pam_systemd.so
diff --git a/testing/slim/rc.d b/testing/slim/rc.d
new file mode 100755
index 000000000..b0be7ffc5
--- /dev/null
+++ b/testing/slim/rc.d
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/slim`
+case "$1" in
+ start)
+ stat_busy "Starting Simple Login Manager"
+ [ -z "$PID" ] && /usr/bin/slim -d &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon slim
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Simple Login Manager"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon slim
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/slim/session-name.patch b/testing/slim/session-name.patch
new file mode 100644
index 000000000..8211c4f72
--- /dev/null
+++ b/testing/slim/session-name.patch
@@ -0,0 +1,21 @@
+diff -Naur slim-1.3.2.old/panel.cpp slim-1.3.2.new/panel.cpp
+--- slim-1.3.2.old/panel.cpp 2010-10-24 06:01:15.117000019 +0000
++++ slim-1.3.2.new/panel.cpp 2010-10-24 17:26:30.987999967 +0000
+@@ -23,7 +23,7 @@
+ Root = root;
+ cfg = config;
+
+- session = "";
++ session = cfg->nextSession(session);
+
+ // Init GC
+ XGCValues gcv;
+@@ -188,7 +188,7 @@
+ }
+
+ void Panel::ClearPanel() {
+- session = "";
++ session = cfg->nextSession(session);
+ Reset();
+ XClearWindow(Dpy, Root);
+ XClearWindow(Dpy, Win);
diff --git a/testing/slim/slim.service b/testing/slim/slim.service
new file mode 100644
index 000000000..b894085a0
--- /dev/null
+++ b/testing/slim/slim.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=SLiM Simple Login Manager
+After=systemd-user-sessions.service
+
+[Service]
+ExecStart=/usr/bin/slim -nodaemon
+
+[Install]
+Alias=display-manager.service
diff --git a/testing/slim/tty-slowness.patch b/testing/slim/tty-slowness.patch
new file mode 100644
index 000000000..c590fbed8
--- /dev/null
+++ b/testing/slim/tty-slowness.patch
@@ -0,0 +1,30 @@
+diff -aur slim-1.3.2.a/app.cpp slim-1.3.2.b/app.cpp
+--- slim-1.3.2.a/app.cpp 2010-08-21 15:10:13.702755711 +0200
++++ slim-1.3.2.b/app.cpp 2010-08-21 15:10:48.579631179 +0200
+@@ -280,21 +280,22 @@
+ signal(SIGALRM, AlarmSignal);
+
+ #ifndef XNEST_DEBUG
+- OpenLog();
+-
+ if (!force_nodaemon && cfg->getOption("daemon") == "yes") {
+ daemonmode = true;
+ }
+
+ // Daemonize
+ if (daemonmode) {
+- if (daemon(0, 1) == -1) {
++ if (daemon(0, 0) == -1) {
+ cerr << APPNAME << ": " << strerror(errno) << endl;
+ exit(ERR_EXIT);
+ }
+- UpdatePid();
+ }
+
++ OpenLog();
++
++ if (daemonmode) UpdatePid();
++
+ CreateServerAuth();
+ StartServer();
+ alarm(2);