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 --- staging/slim/PKGBUILD | 63 +++++++++++++++++++++++++++++ staging/slim/fix-glibc-segfault-1.3.4.patch | 13 ++++++ staging/slim/libpng-1.4+-support.patch | 14 +++++++ staging/slim/logrotate | 9 +++++ staging/slim/pam.d | 10 +++++ staging/slim/rc.d | 36 +++++++++++++++++ staging/slim/session-name.patch | 21 ++++++++++ staging/slim/slim.service | 9 +++++ staging/slim/tty-slowness.patch | 30 ++++++++++++++ 9 files changed, 205 insertions(+) create mode 100644 staging/slim/PKGBUILD create mode 100644 staging/slim/fix-glibc-segfault-1.3.4.patch create mode 100644 staging/slim/libpng-1.4+-support.patch create mode 100644 staging/slim/logrotate create mode 100644 staging/slim/pam.d create mode 100755 staging/slim/rc.d create mode 100644 staging/slim/session-name.patch create mode 100644 staging/slim/slim.service create mode 100644 staging/slim/tty-slowness.patch (limited to 'staging/slim') diff --git a/staging/slim/PKGBUILD b/staging/slim/PKGBUILD new file mode 100644 index 000000000..a4580b756 --- /dev/null +++ b/staging/slim/PKGBUILD @@ -0,0 +1,63 @@ +# $Id: PKGBUILD 168702 2012-10-14 15:17:29Z tomegun $ +# Maintainer: Gaetan Bisson +# Contributor: Thayer Williams +# Contributor: Alexander Fehr +# Contributor: Hugo Ideler + +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/staging/slim/fix-glibc-segfault-1.3.4.patch b/staging/slim/fix-glibc-segfault-1.3.4.patch new file mode 100644 index 000000000..b035f8a78 --- /dev/null +++ b/staging/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(malloc(sizeof(char*)*n)); ++ child_env = static_cast(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/staging/slim/libpng-1.4+-support.patch b/staging/slim/libpng-1.4+-support.patch new file mode 100644 index 000000000..57b39272b --- /dev/null +++ b/staging/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/staging/slim/logrotate b/staging/slim/logrotate new file mode 100644 index 000000000..26ec3b0f4 --- /dev/null +++ b/staging/slim/logrotate @@ -0,0 +1,9 @@ +/var/log/slim.log { + compress + rotate 1 + size 1024k + notifempty + missingok + copytruncate + noolddir +} diff --git a/staging/slim/pam.d b/staging/slim/pam.d new file mode 100644 index 000000000..59db5a8c5 --- /dev/null +++ b/staging/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/staging/slim/rc.d b/staging/slim/rc.d new file mode 100755 index 000000000..b0be7ffc5 --- /dev/null +++ b/staging/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/staging/slim/session-name.patch b/staging/slim/session-name.patch new file mode 100644 index 000000000..8211c4f72 --- /dev/null +++ b/staging/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/staging/slim/slim.service b/staging/slim/slim.service new file mode 100644 index 000000000..b894085a0 --- /dev/null +++ b/staging/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/staging/slim/tty-slowness.patch b/staging/slim/tty-slowness.patch new file mode 100644 index 000000000..c590fbed8 --- /dev/null +++ b/staging/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); -- cgit v1.2.3-54-g00ecf