diff --git a/srcpkgs/slim/files/slim.pam b/srcpkgs/slim/files/slim.pam new file mode 100644 index 00000000000..59db5a8c589 --- /dev/null +++ b/srcpkgs/slim/files/slim.pam @@ -0,0 +1,10 @@ +#%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 +-session optional pam_systemd.so diff --git a/srcpkgs/slim/files/slim.service b/srcpkgs/slim/files/slim.service new file mode 100644 index 00000000000..b894085a0aa --- /dev/null +++ b/srcpkgs/slim/files/slim.service @@ -0,0 +1,9 @@ +[Unit] +Description=SLiM Simple Login Manager +After=systemd-user-sessions.service + +[Service] +ExecStart=/usr/bin/slim -nodaemon + +[Install] +Alias=display-manager.service diff --git a/srcpkgs/slim/patches/fix-array-overflow.patch b/srcpkgs/slim/patches/fix-array-overflow.patch new file mode 100644 index 00000000000..e7766989e12 --- /dev/null +++ b/srcpkgs/slim/patches/fix-array-overflow.patch @@ -0,0 +1,11 @@ +--- app.cpp (revision 223) ++++ app.cpp (working copy) +@@ -593,7 +593,7 @@ + + n++; + +- child_env = static_cast(malloc(sizeof(char*)*n)); ++ child_env = static_cast(malloc(sizeof(char*)*(n+1))); + memcpy(child_env, old_env, sizeof(char*)*n); + child_env[n - 1] = StrConcat("XDG_SESSION_COOKIE=", ck.get_xdg_session_cookie()); + child_env[n] = NULL; diff --git a/srcpkgs/slim/patches/libpng-1.4+-support.patch b/srcpkgs/slim/patches/libpng-1.4+-support.patch new file mode 100644 index 00000000000..f3501b159ab --- /dev/null +++ b/srcpkgs/slim/patches/libpng-1.4+-support.patch @@ -0,0 +1,13 @@ +--- image.cpp 2012-06-26 04:20:14.000000000 -0400 ++++ image.cpp 2012-06-27 11:41:34.000000000 -0400 +@@ -781,7 +781,11 @@ + (png_infopp) NULL); + } + ++#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4 ++ if (setjmp(png_jmpbuf((png_ptr)))) { ++#else + if (setjmp(png_ptr->jmpbuf)) { ++#endif + goto png_destroy; + } diff --git a/srcpkgs/slim/patches/session-name.patch b/srcpkgs/slim/patches/session-name.patch new file mode 100644 index 00000000000..f76d606ced5 --- /dev/null +++ b/srcpkgs/slim/patches/session-name.patch @@ -0,0 +1,20 @@ +--- panel.cpp 2010-10-24 06:01:15.117000019 +0000 ++++ 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/srcpkgs/slim/template b/srcpkgs/slim/template new file mode 100644 index 00000000000..7f1c3c8c24f --- /dev/null +++ b/srcpkgs/slim/template @@ -0,0 +1,33 @@ +# Template file for 'slim' +pkgname=slim +version=1.3.4 +revision=1 +build_style=cmake +configure_args="-DUSE_PAM=yes -DUSE_CONSOLEKIT=no" +short_desc="Desktop-independent graphical login manager for X11" +maintainer="Juan RP " +license="GPL-2" +homepage="http://slim.berlios.de/" +distfiles="http://download.berlios.de/slim/slim-${version}.tar.gz" +checksum=155c26460c98b9f0925624028b4254afc0de4fda33300f3ac45606b2c5cbd501 +long_desc=" + It aims to be light and simple, although completely configurable through + themes and an option file; is suitable for machines on which remote login + functionalities are not needed. Features included: + + PNG and XFT support for alpha transparency and antialiased fonts + External themes support + Configurable runtime options: X server, login / shutdown / reboot commands + Single (GDM-like) or double (XDM-like) input control + Can load predefined user at startup + Configurable welcome / shutdown messages + Random theme selection" + +conf_files="/etc/slim.conf /etc/pam.d/slim" +makedepends="cmake pkg-config libpng-devel jpeg-devel libXmu-devel libXft-devel + pam-devel" + +post_install() { + vinstall ${FILESDIR}/slim.pam 644 etc/pam.d slim + vinstall ${FILESDIR}/slim.service 644 usr/lib/systemd/system +}