Date: Sunday, January 30, 2011 @ 07:14:12
  Author: bisson
Revision: 108150

Make slim not set PAM Host, so suspend/hibernate hopefully works (see patch).
Also, minor cosmetic changes.

Added:
  slim/trunk/gcc44.patch
    (from rev 108149, slim/trunk/slim-gcc44.patch)
  slim/trunk/no-host.patch
  slim/trunk/restart.patch
    (from rev 108149, slim/trunk/slim-restart.patch)
  slim/trunk/tty-slowness.patch
    (from rev 108149, slim/trunk/slim-tty-slowness.patch)
Modified:
  slim/trunk/PKGBUILD
Deleted:
  slim/trunk/slim-gcc44.patch
  slim/trunk/slim-restart.patch
  slim/trunk/slim-tty-slowness.patch

-------------------------+
 PKGBUILD                |   45 +++++++-------
 gcc44.patch             |   11 +++
 no-host.patch           |   29 +++++++++
 restart.patch           |  144 ++++++++++++++++++++++++++++++++++++++++++++++
 slim-gcc44.patch        |   11 ---
 slim-restart.patch      |  141 ---------------------------------------------
 slim-tty-slowness.patch |   30 ---------
 tty-slowness.patch      |   30 +++++++++
 8 files changed, 238 insertions(+), 203 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2011-01-30 11:17:24 UTC (rev 108149)
+++ PKGBUILD    2011-01-30 12:14:12 UTC (rev 108150)
@@ -5,51 +5,54 @@
 
 pkgname=slim
 pkgver=1.3.2
-pkgrel=1
+pkgrel=2
 pkgdesc='Desktop-independent graphical login manager for X11'
 arch=('i686' 'x86_64')
 url='http://slim.berlios.de/'
 license=('GPL2')
-depends=('pam' 'libxmu' 'libpng' 'libjpeg>=8' 'libxft')
+depends=('pam' 'libxmu' 'libpng' 'libjpeg' 'libxft')
 backup=('etc/slim.conf' 'etc/logrotate.d/slim' 'etc/pam.d/slim')
 install=slim.install
-source=("http://download.berlios.de/${pkgname}/${pkgname}-$pkgver.tar.gz";
+source=("http://download.berlios.de/${pkgname}/${pkgname}-${pkgver}.tar.gz";
         'slim'
         'slim.logrotate'
         'slim.pam'
-        'slim-restart.patch'
-        'slim-tty-slowness.patch'
-        'slim-gcc44.patch')
+        'gcc44.patch'
+        'tty-slowness.patch'
+        'restart.patch'
+       'no-host.patch')
 sha1sums=('e421d5487732c8317f8f591906661e014b036358'
           '6fe0ba83509af634bce47be34e30995965bffc79'
           'b969cc902c1d9915a5609141a652c77b2732407b'
           'aff213af9ade7fe05db54fcd9a193e3dcb002aa9'
-          'e9b5b624da2063d4e0cbc68de44a3eae22d509cb'
+          '51121d451116c768d0fc027ff1ea70aaaef036e7'
           '213fefe8533c845ea8c40585b6a8097820d5e5d2'
-          '51121d451116c768d0fc027ff1ea70aaaef036e7')
+          '2d526bc0c498bf307ee50e2d22b4f53ffa0c4435'
+          'b86eddd083fb9f6259e46c735f55ebe76c655bd3')
 
 build() {
-  cd "$srcdir/${pkgname}-$pkgver"
+  cd "${srcdir}/${pkgname}-${pkgver}"
   
-  sed -i -e 's/png12/png14/g' Makefile # libpng 1.4.0
-  patch -p1 < ../slim-gcc44.patch
-  patch -p1 < ../slim-tty-slowness.patch # fix sluggish tty after slim start
-  patch -p1 < ../slim-restart.patch # restart X server if killed
-  # See 
http://developer.berlios.de/patch/?func=detailpatch&patch_id=2378&group_id=2663
+  sed -i -e 's/png12/png14/g' Makefile
+  patch -p1 -i  ../gcc44.patch
 
+  patch -p1 -i ../tty-slowness.patch # fix sluggish tty after slim start
+  patch -p1 -i ../restart.patch # restart X server if killed
+  patch -p1 -i ../no-host.patch # do not set PAM host
+
   make USE_PAM=1
 }
 
 package() {
-  cd "$srcdir/${pkgname}-$pkgver"
+  cd "${srcdir}/${pkgname}-${pkgver}"
 
-  make DESTDIR="$pkgdir" MANDIR=/usr/share/man install
+  make DESTDIR="${pkgdir}" MANDIR=/usr/share/man install
 
-  install -D -m755 ../slim "$pkgdir/etc/rc.d/slim"
-  install -D -m644 ../slim.logrotate "$pkgdir/etc/logrotate.d/slim"
-  install -D -m644 ../slim.pam "$pkgdir/etc/pam.d/slim"
+  install -D -m755 ../slim "${pkgdir}/etc/rc.d/slim"
+  install -D -m644 ../slim.logrotate "${pkgdir}/etc/logrotate.d/slim"
+  install -D -m644 ../slim.pam "${pkgdir}/etc/pam.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"
+  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"
 }

Copied: slim/trunk/gcc44.patch (from rev 108149, slim/trunk/slim-gcc44.patch)
===================================================================
--- gcc44.patch                         (rev 0)
+++ gcc44.patch 2011-01-30 12:14:12 UTC (rev 108150)
@@ -0,0 +1,11 @@
+diff -aur slim-1.3.2/switchuser.h slim-1.3.2.a/switchuser.h
+--- slim-1.3.2/switchuser.h    2010-07-08 07:04:10.000000000 +0200
++++ slim-1.3.2.a/switchuser.h  2010-08-21 15:10:34.306212393 +0200
+@@ -13,6 +13,7 @@
+ #define _SWITCHUSER_H_
+ 
+ #include <stdlib.h>
++#include <stdio.h> /* remove */
+ #include <unistd.h>
+ #include <string.h>
+ #include <pwd.h>

Added: no-host.patch
===================================================================
--- no-host.patch                               (rev 0)
+++ no-host.patch       2011-01-30 12:14:12 UTC (rev 108150)
@@ -0,0 +1,29 @@
+Datum: Sun, 30 Jan 2011 12:49:00 +0200
+Von: Samuli Suominen <ssuomi...@gentoo.org>
+An: j...@archlinux.org, andy...@archlinux.org, tha...@archlinux.org
+Betreff: SLIM and ConsoleKit 0.4.2 (and up)
+
+People have been coming to #xfce after Arch's ConsoleKit 0.4.3 upgrade
+to ask for help why Suspend / Hibernate / and such doesn't work.
+
+It's because SLIM is using pam_ck_connector.so and SLIM sets Host to localhost
+and makes pam_ck_connector.so believe it's actually a *remote host* called
+localhost and will refuse access.
+
+http://bugs.gentoo.org/346037
+https://developer.berlios.de/bugs/?func=detailbug&bug_id=17757&group_id=2663
+http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-misc/slim/files/346037-stop_setting_host_for_pam_ck_connector_so.patch?view=log
+
+
+diff -aur old/app.cpp new/app.cpp
+--- old/app.cpp        2011-01-30 12:39:34.033337944 +0100
++++ new/app.cpp        2011-01-30 12:40:25.843337943 +0100
+@@ -228,8 +228,6 @@
+         pam.start("slim");
+         pam.set_item(PAM::Authenticator::TTY, DisplayName);
+         pam.set_item(PAM::Authenticator::Requestor, "root");
+-        pam.set_item(PAM::Authenticator::Host, "localhost");
+-
+     }
+     catch(PAM::Exception& e){
+         cerr << APPNAME << ": " << e << endl;

Copied: slim/trunk/restart.patch (from rev 108149, 
slim/trunk/slim-restart.patch)
===================================================================
--- restart.patch                               (rev 0)
+++ restart.patch       2011-01-30 12:14:12 UTC (rev 108150)
@@ -0,0 +1,144 @@
+http://developer.berlios.de/patch/?func=detailpatch&patch_id=2378&group_id=2663
+
+
+diff -aur slim-1.3.2.b/app.cpp slim-1.3.2.c/app.cpp
+--- slim-1.3.2.b/app.cpp       2010-08-21 15:10:48.579631179 +0200
++++ slim-1.3.2.c/app.cpp       2010-08-21 15:11:03.946389843 +0200
+@@ -104,6 +104,11 @@
+ 
+ extern App* LoginApp;
+ 
++int xioerror(Display *disp) {
++      LoginApp->RestartServer();
++    return 0;
++}
++
+ void CatchSignal(int sig) {
+     cerr << APPNAME << ": unexpected signal " << sig << endl;
+ 
+@@ -114,19 +119,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);
+ }
+@@ -277,7 +269,6 @@
+         signal(SIGHUP, CatchSignal);
+         signal(SIGPIPE, CatchSignal);
+         signal(SIGUSR1, User1Signal);
+-        signal(SIGALRM, AlarmSignal);
+ 
+ #ifndef XNEST_DEBUG
+         if (!force_nodaemon && cfg->getOption("daemon") == "yes") {
+@@ -298,7 +289,6 @@
+ 
+         CreateServerAuth();
+         StartServer();
+-        alarm(2);
+ #endif
+ 
+     }
+@@ -614,6 +604,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");
+@@ -659,9 +651,6 @@
+ 
+ 
+ void App::Reboot() {
+-    // Stop alarm clock
+-    alarm(0);
+-
+ #ifdef USE_PAM
+     try{
+         pam.end();
+@@ -684,9 +673,6 @@
+ 
+ 
+ void App::Halt() {
+-    // Stop alarm clock
+-    alarm(0);
+-
+ #ifdef USE_PAM
+     try{
+         pam.end();
+@@ -772,6 +758,7 @@
+ 
+     StopServer(); 
+     RemoveLock();
++      while (waitpid(-1, NULL, WNOHANG) > 0); // Collects all dead childrens
+     Run();
+ } 
+ 
+@@ -842,6 +829,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"))
+@@ -926,9 +914,6 @@
+             ServerPID = -1;
+             break;
+         }
+-        alarm(15);
+-        pause();
+-        alarm(0);
+ 
+         // Wait for server to start up
+         if(WaitForServer() == 0) {
+@@ -963,15 +948,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 -aur slim-1.3.2.b/app.h slim-1.3.2.c/app.h
+--- slim-1.3.2.b/app.h 2010-08-21 15:10:40.499582804 +0200
++++ slim-1.3.2.c/app.h 2010-08-21 15:11:03.946389843 +0200
+@@ -34,6 +34,7 @@
+     ~App();
+     void Run();
+     int GetServerPID();
++    void RestartServer();
+     void StopServer();
+ 
+       bool serverStarted;
+@@ -49,7 +50,6 @@
+     void Console();
+     void Exit();
+     void KillAllClients(Bool top);
+-    void RestartServer();
+     void ReadConfig();
+     void OpenLog();
+     void CloseLog();

Deleted: slim-gcc44.patch
===================================================================
--- slim-gcc44.patch    2011-01-30 11:17:24 UTC (rev 108149)
+++ slim-gcc44.patch    2011-01-30 12:14:12 UTC (rev 108150)
@@ -1,11 +0,0 @@
-diff -aur slim-1.3.2/switchuser.h slim-1.3.2.a/switchuser.h
---- slim-1.3.2/switchuser.h    2010-07-08 07:04:10.000000000 +0200
-+++ slim-1.3.2.a/switchuser.h  2010-08-21 15:10:34.306212393 +0200
-@@ -13,6 +13,7 @@
- #define _SWITCHUSER_H_
- 
- #include <stdlib.h>
-+#include <stdio.h> /* remove */
- #include <unistd.h>
- #include <string.h>
- #include <pwd.h>

Deleted: slim-restart.patch
===================================================================
--- slim-restart.patch  2011-01-30 11:17:24 UTC (rev 108149)
+++ slim-restart.patch  2011-01-30 12:14:12 UTC (rev 108150)
@@ -1,141 +0,0 @@
-diff -aur slim-1.3.2.b/app.cpp slim-1.3.2.c/app.cpp
---- slim-1.3.2.b/app.cpp       2010-08-21 15:10:48.579631179 +0200
-+++ slim-1.3.2.c/app.cpp       2010-08-21 15:11:03.946389843 +0200
-@@ -104,6 +104,11 @@
- 
- extern App* LoginApp;
- 
-+int xioerror(Display *disp) {
-+      LoginApp->RestartServer();
-+    return 0;
-+}
-+
- void CatchSignal(int sig) {
-     cerr << APPNAME << ": unexpected signal " << sig << endl;
- 
-@@ -114,19 +119,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);
- }
-@@ -277,7 +269,6 @@
-         signal(SIGHUP, CatchSignal);
-         signal(SIGPIPE, CatchSignal);
-         signal(SIGUSR1, User1Signal);
--        signal(SIGALRM, AlarmSignal);
- 
- #ifndef XNEST_DEBUG
-         if (!force_nodaemon && cfg->getOption("daemon") == "yes") {
-@@ -298,7 +289,6 @@
- 
-         CreateServerAuth();
-         StartServer();
--        alarm(2);
- #endif
- 
-     }
-@@ -614,6 +604,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");
-@@ -659,9 +651,6 @@
- 
- 
- void App::Reboot() {
--    // Stop alarm clock
--    alarm(0);
--
- #ifdef USE_PAM
-     try{
-         pam.end();
-@@ -684,9 +673,6 @@
- 
- 
- void App::Halt() {
--    // Stop alarm clock
--    alarm(0);
--
- #ifdef USE_PAM
-     try{
-         pam.end();
-@@ -772,6 +758,7 @@
- 
-     StopServer(); 
-     RemoveLock();
-+      while (waitpid(-1, NULL, WNOHANG) > 0); // Collects all dead childrens
-     Run();
- } 
- 
-@@ -842,6 +829,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"))
-@@ -926,9 +914,6 @@
-             ServerPID = -1;
-             break;
-         }
--        alarm(15);
--        pause();
--        alarm(0);
- 
-         // Wait for server to start up
-         if(WaitForServer() == 0) {
-@@ -963,15 +948,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 -aur slim-1.3.2.b/app.h slim-1.3.2.c/app.h
---- slim-1.3.2.b/app.h 2010-08-21 15:10:40.499582804 +0200
-+++ slim-1.3.2.c/app.h 2010-08-21 15:11:03.946389843 +0200
-@@ -34,6 +34,7 @@
-     ~App();
-     void Run();
-     int GetServerPID();
-+    void RestartServer();
-     void StopServer();
- 
-       bool serverStarted;
-@@ -49,7 +50,6 @@
-     void Console();
-     void Exit();
-     void KillAllClients(Bool top);
--    void RestartServer();
-     void ReadConfig();
-     void OpenLog();
-     void CloseLog();

Deleted: slim-tty-slowness.patch
===================================================================
--- slim-tty-slowness.patch     2011-01-30 11:17:24 UTC (rev 108149)
+++ slim-tty-slowness.patch     2011-01-30 12:14:12 UTC (rev 108150)
@@ -1,30 +0,0 @@
-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);

Copied: slim/trunk/tty-slowness.patch (from rev 108149, 
slim/trunk/slim-tty-slowness.patch)
===================================================================
--- tty-slowness.patch                          (rev 0)
+++ tty-slowness.patch  2011-01-30 12:14:12 UTC (rev 108150)
@@ -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);

Reply via email to