[arch-commits] Commit in slim/trunk (7 files)

Alexander Fehr alexanderf at archlinux.org
Sat Dec 6 15:04:35 UTC 2008


    Date: Saturday, December 6, 2008 @ 10:04:35
  Author: alexanderf
Revision: 20755

upgpkg: slim 1.3.1-1

Added:
  slim/trunk/ChangeLog
  slim/trunk/slim-restart.patch
  slim/trunk/slim.pam
Modified:
  slim/trunk/PKGBUILD
  slim/trunk/slim
  slim/trunk/slim.install
  slim/trunk/slim.logrotate

--------------------+
 ChangeLog          |   13 ++++
 PKGBUILD           |   62 +++++++++++-----------
 slim               |   12 +---
 slim-restart.patch |  141 +++++++++++++++++++++++++++++++++++++++++++++++++++
 slim.install       |   32 +----------
 slim.logrotate     |    2 
 slim.pam           |    8 ++
 7 files changed, 202 insertions(+), 68 deletions(-)

Added: ChangeLog
===================================================================
--- ChangeLog	                        (rev 0)
+++ ChangeLog	2008-12-06 15:04:35 UTC (rev 20755)
@@ -0,0 +1,13 @@
+2008-11-22  Alexander Fehr  <pizzapunk gmail com>
+
+  * slim-1.3.1-1:
+  New upstream release.
+  New maintainer.
+  Changed license to GPL2.
+  Changed dependency on gcc to gcc-libs.
+  Added patch to fix FS#8454.
+  Added PAM support.
+  Fixed man page location.
+  Cleaned up PKGBUILD.
+  Cleaned up install file.
+  Added ChangeLog.

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2008-12-06 14:56:20 UTC (rev 20754)
+++ PKGBUILD	2008-12-06 15:04:35 UTC (rev 20755)
@@ -1,42 +1,44 @@
 # $Id$
-# Maintainer : Aaron Griffin <aaron at archlinux.org>
+# Maintainer: Alexander Fehr <pizzapunk gmail com>
 # Contributor: Hugo Ideler <hugoideler at dse.nl>
 
 pkgname=slim
-pkgver=1.3.0
-pkgrel=2
-pkgdesc="Simple Login Manager for X11"
-arch=(i686 x86_64)
-url="http://slim.berlios.de"
-backup=(etc/slim.conf)
-depends=(gcc-libs libxmu libxft libjpeg libpng bash)
+pkgver=1.3.1
+pkgrel=1
+pkgdesc="Desktop-independent graphical login manager for X11"
+arch=('i686' 'x86_64')
+url="http://slim.berlios.de/"
+license=('GPL2')
+depends=('gcc-libs' 'libxmu' 'libpng' 'libjpeg' 'libxft')
+backup=('etc/slim.conf')
 install=slim.install
-license=('GPL')
-source=(http://download.berlios.de/$pkgname/$pkgname-$pkgver.tar.gz
-        slim slim.logrotate)
-md5sums=('1c1a87f3cbd3c334c874585e42701961' '07431fcbd753d3abbcfedaa76401e212'\
-         '257cf53a3f762ff609e2afd265dac953')
+source=(http://download.berlios.de/slim/slim-$pkgver.tar.gz
+        slim
+        slim.logrotate
+        slim.pam
+        slim-restart.patch)
+md5sums=('727d0acb24c0fbf0751134c37a9c895f'
+         'd8ea9c4dee2811524b67f4f666311a1f'
+         '43da096480bf72c3ccec8ad8400f34f0'
+         'b20fe3c8487a039050986d60e45233a9'
+         '648d871fe7d2a97b7d7b928019e2feee')
 
 build() {
-  cd $startdir/src/$pkgname-$pkgver
+  cd "$srcdir/slim-$pkgver"
 
-  sed -i "s|/usr/X11R6/include|/usr/include/xorg|g" Makefile
-  cp /usr/include/shadow.h . #wtf is going on with this? it works fine if copied locally
-  sed -i "s|/usr/X11R6/|/usr/|g" Makefile
-  make || return 1
+  # Restart Xserver if killed
+  # http://developer.berlios.de/patch/?func=detailpatch&patch_id=2378&group_id=2663
+  patch -Np1 -i "$srcdir/slim-restart.patch" || return 1
 
-  sed -i "s|/usr/X11R6/include|/usr/include/xorg|g" slim.conf
-  sed -i "s|/usr/X11R6/|/usr/|g" slim.conf
-  make DESTDIR=$startdir/pkg install
+  make USE_PAM=1 || return 1
+  make DESTDIR="$pkgdir" MANDIR=/usr/share/man install || return 1
 
-  install -D -m755 -o root -g root $startdir/src/slim $startdir/pkg/etc/rc.d/slim
-  install -D -m644 -o root -g root $startdir/src/slim.logrotate $startdir/pkg/etc/logrotate.d/slim
+  install -D -m755 "$srcdir/slim" "$pkgdir/etc/rc.d/slim" || return 1
+  install -D -m644 "$srcdir/slim.logrotate" "$pkgdir/etc/logrotate.d/slim" || return 1
+  install -D -m644 "$srcdir/slim.pam" "$pkgdir/etc/pam.d/slim" || return 1
 
-  # let's make this a tad safer... "sane defaults" and all
-  sed -i "s@#xserver_arguments.*@xserver_arguments   -nolisten tcp vt07@"\
-    $startdir/pkg/etc/slim.conf
-
-  # lockfile is defaulted in /var/run, which is not cleared at boot
-  # (causes problems) - thanks bogomipz
-  sed -i 's@/var/run/slim.lock@/var/lock/slim.lock@' $startdir/pkg/etc/slim.conf
+  # Provide sane defaults
+  sed -i 's|#xserver_arguments.*|xserver_arguments   -nolisten tcp vt07|' \
+    "$pkgdir/etc/slim.conf" || return 1
+  sed -i 's|/var/run/slim.lock|/var/lock/slim.lock|' "$pkgdir/etc/slim.conf" || return 1
 }

Modified: slim
===================================================================
--- slim	2008-12-06 14:56:20 UTC (rev 20754)
+++ slim	2008-12-06 15:04:35 UTC (rev 20755)
@@ -3,13 +3,11 @@
 . /etc/rc.conf
 . /etc/rc.d/functions
 
-lockfile=$(grep lockfile /etc/slim.conf |tr -s " " | cut -d" " -f2)
-pid=$(pidof -o %PPID /usr/bin/slim)
-
+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 2>&1
+    [ -z "$PID" ] && /usr/bin/slim -d &> /dev/null
     if [ $? -gt 0 ]; then
       stat_fail
     else
@@ -19,8 +17,7 @@
     ;;
   stop)
     stat_busy "Stopping Simple Login Manager"
-    rm -f $lockfile
-    [ ! -z "$pid" ]  && kill $pid >/dev/null 2>&1
+    [ ! -z "$PID" ] && kill $PID &> /dev/null
     if [ $? -gt 0 ]; then
       stat_fail
     else
@@ -34,7 +31,6 @@
     $0 start
     ;;
   *)
-    echo "usage: $0 {start|stop|restart}"  
+    echo "usage: $0 {start|stop|restart}"
 esac
-
 exit 0

Added: slim-restart.patch
===================================================================
--- slim-restart.patch	                        (rev 0)
+++ slim-restart.patch	2008-12-06 15:04:35 UTC (rev 20755)
@@ -0,0 +1,141 @@
+diff -ur slim-1.3.1.orig/app.cpp slim-1.3.1/app.cpp
+--- slim-1.3.1.orig/app.cpp	2008-09-26 02:54:15.000000000 +0200
++++ slim-1.3.1/app.cpp	2008-11-21 20:38:48.000000000 +0100
+@@ -102,6 +102,11 @@
+ 
+ extern App* LoginApp;
+ 
++int xioerror(Display *disp) {
++	LoginApp->RestartServer();
++    return 0;
++}
++
+ void CatchSignal(int sig) {
+     cerr << APPNAME << ": unexpected signal " << sig << endl;
+     LoginApp->StopServer();
+@@ -109,19 +114,6 @@
+     exit(ERR_EXIT);
+ }
+ 
+-
+-void AlarmSignal(int sig) {
+-    int pid = LoginApp->GetServerPID();
+-    if(waitpid(pid, NULL, WNOHANG) == pid) {
+-        LoginApp->StopServer();
+-        LoginApp->RemoveLock();
+-        exit(OK_EXIT);
+-    }
+-    signal(sig, AlarmSignal);
+-    alarm(2);
+-}
+-
+-
+ void User1Signal(int sig) {
+     signal(sig, User1Signal);
+ }
+@@ -267,7 +259,6 @@
+         signal(SIGHUP, CatchSignal);
+         signal(SIGPIPE, CatchSignal);
+         signal(SIGUSR1, User1Signal);
+-        signal(SIGALRM, AlarmSignal);
+ 
+ #ifndef XNEST_DEBUG
+         OpenLog();
+@@ -287,7 +278,6 @@
+ 
+         CreateServerAuth();
+         StartServer();
+-        alarm(2);
+ #endif
+ 
+     }
+@@ -603,6 +593,8 @@
+     int status;
+     while (wpid != pid) {
+         wpid = wait(&status);
++		if (wpid == ServerPID)
++			xioerror(Dpy);	// Server died, simulate IO error
+     }
+     if (WIFEXITED(status) && WEXITSTATUS(status)) {
+         LoginPanel->Message("Failed to execute login command");
+@@ -648,9 +640,6 @@
+ 
+ 
+ void App::Reboot() {
+-    // Stop alarm clock
+-    alarm(0);
+-
+ #ifdef USE_PAM
+     try{
+         pam.end();
+@@ -673,9 +662,6 @@
+ 
+ 
+ void App::Halt() {
+-    // Stop alarm clock
+-    alarm(0);
+-
+ #ifdef USE_PAM
+     try{
+         pam.end();
+@@ -761,6 +747,7 @@
+ 
+     StopServer(); 
+     RemoveLock();
++	while (waitpid(-1, NULL, WNOHANG) > 0); // Collects all dead childrens
+     Run();
+ } 
+ 
+@@ -831,6 +818,7 @@
+ 
+     for(cycles = 0; cycles < ncycles; cycles++) {
+         if((Dpy = XOpenDisplay(DisplayName))) {
++            XSetIOErrorHandler(xioerror);
+             return 1;
+         } else {
+             if(!ServerTimeout(1, (char *) "X server to begin accepting connections"))
+@@ -913,9 +901,6 @@
+             ServerPID = -1;
+             break;
+         }
+-        alarm(15);
+-        pause();
+-        alarm(0);
+ 
+         // Wait for server to start up
+         if(WaitForServer() == 0) {
+@@ -948,15 +933,12 @@
+ 
+ 
+ void App::StopServer() {
+-    // Stop alars clock and ignore signals
+-    alarm(0);
+     signal(SIGQUIT, SIG_IGN);
+     signal(SIGINT, SIG_IGN);
+     signal(SIGHUP, SIG_IGN);
+     signal(SIGPIPE, SIG_IGN);
+     signal(SIGTERM, SIG_DFL);
+     signal(SIGKILL, SIG_DFL);
+-    signal(SIGALRM, SIG_DFL);
+ 
+     // Catch X error
+     XSetIOErrorHandler(IgnoreXIO);
+diff -ur slim-1.3.1.orig/app.h slim-1.3.1/app.h
+--- slim-1.3.1.orig/app.h	2008-09-26 02:54:15.000000000 +0200
++++ slim-1.3.1/app.h	2008-11-21 20:38:48.000000000 +0100
+@@ -34,6 +34,7 @@
+     ~App();
+     void Run();
+     int GetServerPID();
++    void RestartServer();
+     void StopServer();
+ 
+     // Lock functions
+@@ -48,7 +49,6 @@
+     void Console();
+     void Exit();
+     void KillAllClients(Bool top);
+-    void RestartServer();
+     void ReadConfig();
+     void OpenLog();
+     void CloseLog();

Modified: slim.install
===================================================================
--- slim.install	2008-12-06 14:56:20 UTC (rev 20754)
+++ slim.install	2008-12-06 15:04:35 UTC (rev 20755)
@@ -1,33 +1,7 @@
-pre_install() {
-  /bin/true
-}
-
 post_install() {
-  echo "==> Config file is at /etc/slim.conf"
-  echo "==> Installed themes in /usr/share/slim/themes"
-  echo "==> Add 'slim' to your DAEMONS in /etc/rc.conf"
-  echo ""
-  echo " If you want to use slim's console command as-is"
-  echo "  be sure to install xterm as well"
-  /bin/true
-}
+  cat << _EOF
 
-pre_upgrade() {
-  /bin/true
-}
+  Add slim to the DAEMONS array in /etc/rc.conf or update /etc/inittab.
 
-post_upgrade() {
-  /bin/true
+_EOF
 }
-
-pre_remove() {
-  /bin/true
-}
-
-post_remove() {
-  /bin/true
-}
-
-op=$1
-shift
-$op $*

Modified: slim.logrotate
===================================================================
--- slim.logrotate	2008-12-06 14:56:20 UTC (rev 20754)
+++ slim.logrotate	2008-12-06 15:04:35 UTC (rev 20755)
@@ -1,7 +1,7 @@
 /var/log/slim.log {
     compress
     rotate 1
-    size=+1024k
+    size 1024k
     notifempty
     missingok
     copytruncate

Added: slim.pam
===================================================================
--- slim.pam	                        (rev 0)
+++ slim.pam	2008-12-06 15:04:35 UTC (rev 20755)
@@ -0,0 +1,8 @@
+#%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




More information about the arch-commits mailing list