summaryrefslogtreecommitdiff
path: root/extra/slim
diff options
context:
space:
mode:
authorNicolas Reynolds <fauno@kiwwwi.com.ar>2011-05-02 22:27:00 -0300
committerNicolas Reynolds <fauno@kiwwwi.com.ar>2011-05-02 22:27:00 -0300
commit7046a475b24925c0ec7816ef7d2cdcf3b9cd4eb0 (patch)
tree4aa3a3a8bc27e82c152669c7f386675785341f39 /extra/slim
parent2b277c04e05c47b6f66a4a3b8b1fcf8756088153 (diff)
parentddb2605f6bccbdb398f3937ff21e4688915a450d (diff)
Merge branch 'master' of ssh://vparabola/home/parabola/abslibre-pre-mips64el
Conflicts: extra/file-roller/PKGBUILD
Diffstat (limited to 'extra/slim')
-rw-r--r--extra/slim/PKGBUILD17
-rw-r--r--extra/slim/ptr_pam.patch52
2 files changed, 62 insertions, 7 deletions
diff --git a/extra/slim/PKGBUILD b/extra/slim/PKGBUILD
index 806359df7..96f18be9f 100644
--- a/extra/slim/PKGBUILD
+++ b/extra/slim/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 121225 2011-04-29 15:13:05Z bisson $
+# $Id: PKGBUILD 122020 2011-05-01 17:05:22Z bisson $
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
# Contributor: Thayer Williams <thayer@archlinux.org>
# Contributor: Alexander Fehr <pizzapunk gmail com>
@@ -6,7 +6,7 @@
pkgname=slim
pkgver=1.3.2
-pkgrel=4
+pkgrel=5
pkgdesc='Desktop-independent graphical login manager for X11'
arch=('i686' 'x86_64' 'mips64el')
url='http://slim.berlios.de/'
@@ -18,6 +18,7 @@ source=("http://download.berlios.de/${pkgname}/${pkgname}-${pkgver}.tar.gz"
'pam.d'
'logrotate'
'gcc44.patch'
+ 'ptr_pam.patch'
'no-host.patch'
'restart.patch'
'sigterm.patch'
@@ -27,6 +28,7 @@ sha1sums=('e421d5487732c8317f8f591906661e014b036358'
'a0e991ef0ac5120465a3be014a26e70ba073b6ae'
'b969cc902c1d9915a5609141a652c77b2732407b'
'51121d451116c768d0fc027ff1ea70aaaef036e7'
+ '640668c984a13593a1bfba8d3b503c005d5f401e'
'b86eddd083fb9f6259e46c735f55ebe76c655bd3'
'2d526bc0c498bf307ee50e2d22b4f53ffa0c4435'
'0b35048723c527fb824c5e0f9b9064f751871785'
@@ -38,11 +40,12 @@ build() {
cd "${srcdir}/${pkgname}-${pkgver}"
sed -i -e 's/png12/png14/g' Makefile
- patch -p1 -i ../gcc44.patch
- patch -p1 -i ../no-host.patch # do not set PAM host
- patch -p1 -i ../restart.patch # restart X server if killed
- patch -p1 -i ../sigterm.patch # do not wait for user input when SIGTERM'd
- patch -p1 -i ../tty-slowness.patch # fix sluggish TTY after slim start
+ patch -p1 -i ../gcc44.patch # FS#14815: lacks include for gcc-4.4
+ patch -p1 -i ../ptr_pam.patch # FS#23995: pointer mishandling confuses PAM
+ patch -p1 -i ../no-host.patch # cf patch: do not set PAM host
+ patch -p1 -i ../restart.patch # cf patch: restart X server if killed
+ patch -p1 -i ../sigterm.patch # FS#23984: do not wait for input when SIGTERM'd
+ patch -p1 -i ../tty-slowness.patch # FS#18313: fix sluggish TTY after slim start
make USE_PAM=1
}
diff --git a/extra/slim/ptr_pam.patch b/extra/slim/ptr_pam.patch
new file mode 100644
index 000000000..3a3fbcdb7
--- /dev/null
+++ b/extra/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;