diff options
author | root <root@rshg054.dnsready.net> | 2012-05-28 17:43:57 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-05-28 17:43:57 +0000 |
commit | 483f7de4ab6a706517279a24d2efc969f4a1996d (patch) | |
tree | 128a7513d3e42c4d8812b5fd11a4afb116399762 /testing/slim | |
parent | 89dd7b5f30d48c708092a71b1c8285090fe91505 (diff) |
Mon May 28 17:43:57 UTC 2012
Diffstat (limited to 'testing/slim')
-rw-r--r-- | testing/slim/PKGBUILD | 65 | ||||
-rw-r--r-- | testing/slim/fix-numlock-1.3.3.patch | 46 | ||||
-rw-r--r-- | testing/slim/install | 7 | ||||
-rw-r--r-- | testing/slim/logrotate | 9 | ||||
-rw-r--r-- | testing/slim/pam.d | 9 | ||||
-rw-r--r-- | testing/slim/ptr_pam.patch | 52 | ||||
-rwxr-xr-x | testing/slim/rc.d | 36 | ||||
-rw-r--r-- | testing/slim/session-name.patch | 21 | ||||
-rw-r--r-- | testing/slim/slim.service | 9 | ||||
-rw-r--r-- | testing/slim/tty-slowness.patch | 30 |
10 files changed, 284 insertions, 0 deletions
diff --git a/testing/slim/PKGBUILD b/testing/slim/PKGBUILD new file mode 100644 index 000000000..7237c3a47 --- /dev/null +++ b/testing/slim/PKGBUILD @@ -0,0 +1,65 @@ +# $Id: PKGBUILD 160004 2012-05-27 19:50:08Z tpowa $ +# 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.3 +pkgrel=4 +pkgdesc='Desktop-independent graphical login manager for X11' +arch=('i686' 'x86_64') +url='http://slim.berlios.de/' +license=('GPL2') +depends=('consolekit' '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' + 'ptr_pam.patch' + 'session-name.patch' + 'fix-numlock-1.3.3.patch') + +install=install + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + patch -p1 -i ../ptr_pam.patch # FS#23995: pointer mishandling confuses PAM + patch -p1 -i ../session-name.patch # FS#26693: fix default session name + patch -p1 -i ../fix-numlock-1.3.3.patch # FS#29818: fix numlock handling + 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=yes + 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=('ce53e44c1e4a2eacf5bb7688ee2a5de8' + 'd8ea9c4dee2811524b67f4f666311a1f' + 'ebfff3417058619a1328284ae0e2f48e' + '43da096480bf72c3ccec8ad8400f34f0' + '7c0bf1fb6292537e2c63ec04f8532079' + 'ae4b237d472ec5d373e30080aa0ff804' + 'ebcb6829028615686de7b64ceeaaf8ed' + '6c29c93370e44ed310ff30132424b619') diff --git a/testing/slim/fix-numlock-1.3.3.patch b/testing/slim/fix-numlock-1.3.3.patch new file mode 100644 index 000000000..179fffcbf --- /dev/null +++ b/testing/slim/fix-numlock-1.3.3.patch @@ -0,0 +1,46 @@ +--- trunk/app.cpp 2012/02/21 23:57:28 211 ++++ trunk/app.cpp 2012/04/16 23:28:34 212 +@@ -332,6 +332,15 @@ + Login(); + } + } ++ ++ // Set NumLock ++ string numlock = cfg->getOption("numlock"); ++ if (numlock == "on") { ++ NumLock::setOn(Dpy); ++ } else if (numlock == "off") { ++ NumLock::setOff(Dpy); ++ } ++ + // Start looping + int panelclosed = 1; + Panel::ActionType Action; +@@ -971,13 +980,6 @@ + break; + } + +- string numlock = cfg->getOption("numlock"); +- if (numlock == "on") { +- NumLock::setOn(Dpy); +- } else if (numlock == "off") { +- NumLock::setOff(Dpy); +- } +- + delete args; + + serverStarted = true; +--- trunk/numlock.cpp 2012/02/21 23:57:28 211 ++++ trunk/numlock.cpp 2012/04/16 23:28:34 212 +@@ -68,9 +68,9 @@ + return; + + if( flag == true ) +- XkbLockModifiers ( dpy, XkbUseCoreKbd, mask, 0); +- else + XkbLockModifiers ( dpy, XkbUseCoreKbd, mask, mask); ++ else ++ XkbLockModifiers ( dpy, XkbUseCoreKbd, mask, 0); + } + + void NumLock::setOn(Display *dpy) { diff --git a/testing/slim/install b/testing/slim/install new file mode 100644 index 000000000..65aa77d72 --- /dev/null +++ b/testing/slim/install @@ -0,0 +1,7 @@ +post_install() { + cat <<EOF + +==> Add slim to the DAEMONS array in /etc/rc.conf or update /etc/inittab. + +EOF +} 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..4a6b53d0f --- /dev/null +++ b/testing/slim/pam.d @@ -0,0 +1,9 @@ +#%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 diff --git a/testing/slim/ptr_pam.patch b/testing/slim/ptr_pam.patch new file mode 100644 index 000000000..3a3fbcdb7 --- /dev/null +++ b/testing/slim/ptr_pam.patch @@ -0,0 +1,52 @@ +diff -aur old/app.cpp new/app.cpp +--- old/app.cpp 2010-07-08 07:04:10.000000000 +0200 ++++ new/app.cpp 2011-05-01 18:30:52.933844872 +0200 +@@ -43,8 +43,8 @@ + Panel* panel = *static_cast<Panel**>(appdata_ptr); + int result = PAM_SUCCESS; + for (int i=0; i<num_msg; i++){ +- resp[i]->resp=0; +- resp[i]->resp_retcode=0; ++ (*resp)[i].resp=0; ++ (*resp)[i].resp_retcode=0; + switch(msg[i]->msg_style){ + case PAM_PROMPT_ECHO_ON: + // We assume PAM is asking for the username +@@ -53,13 +53,13 @@ + case Panel::Suspend: + case Panel::Halt: + case Panel::Reboot: +- resp[i]->resp=strdup("root"); ++ (*resp)[i].resp=strdup("root"); + break; + + case Panel::Console: + case Panel::Exit: + case Panel::Login: +- resp[i]->resp=strdup(panel->GetName().c_str()); ++ (*resp)[i].resp=strdup(panel->GetName().c_str()); + break; + } + break; +@@ -75,7 +75,7 @@ + + default: + panel->EventHandler(Panel::Get_Passwd); +- resp[i]->resp=strdup(panel->GetPasswd().c_str()); ++ (*resp)[i].resp=strdup(panel->GetPasswd().c_str()); + break; + } + break; +@@ -91,9 +91,9 @@ + } + if (result!=PAM_SUCCESS){ + for (int i=0; i<num_msg; i++){ +- if (resp[i]->resp==0) continue; +- free(resp[i]->resp); +- resp[i]->resp=0; ++ if ((*resp)[i].resp==0) continue; ++ free((*resp)[i].resp); ++ (*resp)[i].resp=0; + }; + free(*resp); + *resp=0; 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..18d8c99be --- /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] +WantedBy=graphical.target 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); |