mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-05-05 12:26:52 +02:00
x11/slim: new aport
Desktop-independent graphical login manager for X11 http://slim.berlios.de/
This commit is contained in:
parent
5854d484bf
commit
95cb6b291e
30
x11/slim/APKBUILD
Normal file
30
x11/slim/APKBUILD
Normal file
@ -0,0 +1,30 @@
|
||||
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
|
||||
pkgname=slim
|
||||
pkgver=1.3.1
|
||||
pkgrel=0
|
||||
pkgdesc="Desktop-independent graphical login manager for X11"
|
||||
url="http://slim.berlios.de/"
|
||||
license="GPL-2"
|
||||
subpackages="$pkgname-doc"
|
||||
makedepends="libxmu-dev libpng-dev jpeg-dev libxft-dev"
|
||||
depends=""
|
||||
install=
|
||||
source="http://download.berlios.de/$pkgname/$pkgname-$pkgver.tar.gz
|
||||
$pkgname.logrotate
|
||||
$pkgname-restart.patch"
|
||||
|
||||
build ()
|
||||
{
|
||||
cd "$srcdir/slim-$pkgver"
|
||||
patch -Np1 -i "$srcdir/slim-restart.patch" || return 1
|
||||
make CXX="${CXX:-g++}" CC="${CC:-gcc}" || return 1
|
||||
make DESTDIR="$pkgdir" MANDIR=/usr/share/man install || return 1
|
||||
|
||||
install -D -m644 "$srcdir/slim.logrotate" "$pkgdir/etc/logrotate.d/slim" || return 1
|
||||
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
|
||||
|
||||
}
|
||||
md5sums="727d0acb24c0fbf0751134c37a9c895f slim-1.3.1.tar.gz
|
||||
43da096480bf72c3ccec8ad8400f34f0 slim.logrotate
|
||||
648d871fe7d2a97b7d7b928019e2feee slim-restart.patch"
|
||||
141
x11/slim/slim-restart.patch
Normal file
141
x11/slim/slim-restart.patch
Normal file
@ -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();
|
||||
18
x11/slim/slim.initd
Executable file
18
x11/slim/slim.initd
Executable file
@ -0,0 +1,18 @@
|
||||
#!/sbin/runscript
|
||||
|
||||
depends() {
|
||||
needs localmount
|
||||
}
|
||||
|
||||
start() {
|
||||
ebegin "Starting slim"
|
||||
start-stop-daemon --start --quiet --exec /usr/bin/slim -- -d
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop() {
|
||||
ebegin "Stopping slim"
|
||||
start-stop-daemon --stop --quiet --exec /usr/bin/slim
|
||||
eend $?
|
||||
}
|
||||
|
||||
7
x11/slim/slim.install
Normal file
7
x11/slim/slim.install
Normal file
@ -0,0 +1,7 @@
|
||||
post_install() {
|
||||
cat << _EOF
|
||||
|
||||
Add slim to the DAEMONS array in /etc/rc.conf or update /etc/inittab.
|
||||
|
||||
_EOF
|
||||
}
|
||||
9
x11/slim/slim.logrotate
Normal file
9
x11/slim/slim.logrotate
Normal file
@ -0,0 +1,9 @@
|
||||
/var/log/slim.log {
|
||||
compress
|
||||
rotate 1
|
||||
size 1024k
|
||||
notifempty
|
||||
missingok
|
||||
copytruncate
|
||||
noolddir
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user