public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/hardened-dev:musl commit in: x11-misc/slim/, x11-misc/slim/files/
@ 2014-06-18 15:07 Anthony G. Basile
  0 siblings, 0 replies; only message in thread
From: Anthony G. Basile @ 2014-06-18 15:07 UTC (permalink / raw
  To: gentoo-commits

commit:     5a60874960ba951038a1b15cec865e13d6775c93
Author:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 18 15:07:17 2014 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Wed Jun 18 15:07:17 2014 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-dev.git;a=commit;h=5a608749

x11-misc/slim: add missing libgen.h header

Package-Manager: portage-2.2.8-r1
Manifest-Sign-Key: 0xF52D4BBA

---
 x11-misc/slim/files/Xsession-r3                    | 158 +++++++++++++++++++++
 x11-misc/slim/files/slim-1.3.5-arm.patch           |  11 ++
 .../files/slim-1.3.5-disable-ck-for-systemd.patch  | 122 ++++++++++++++++
 .../files/slim-1.3.6-add-missing-libgen_h.patch    |  11 ++
 x11-misc/slim/files/slim-1.3.6-config.diff         |  77 ++++++++++
 x11-misc/slim/files/slim-1.3.6-drop-zlib.patch     |  10 ++
 .../files/slim-1.3.6-fix-slimlock-nopam-v2.patch   |  26 ++++
 x11-misc/slim/files/slim-1.3.6-honour-cflags.patch |  14 ++
 .../files/slim-1.3.6-libslim-cmake-fixes.patch     |  33 +++++
 .../slim/files/slim-1.3.6-session-chooser.patch    | 115 +++++++++++++++
 .../slim-1.3.6-strip-systemd-unit-install.patch    |  13 ++
 .../slim/files/slim-1.3.6-systemd-session.patch    |  29 ++++
 x11-misc/slim/files/slim.logrotate                 |   9 ++
 x11-misc/slim/metadata.xml                         |  12 ++
 x11-misc/slim/slim-1.3.6-r99.ebuild                | 123 ++++++++++++++++
 15 files changed, 763 insertions(+)

diff --git a/x11-misc/slim/files/Xsession-r3 b/x11-misc/slim/files/Xsession-r3
new file mode 100644
index 0000000..237fb36
--- /dev/null
+++ b/x11-misc/slim/files/Xsession-r3
@@ -0,0 +1,158 @@
+#!/bin/sh
+#
+# Slim login manager Xsession script
+#
+
+command="$@"
+
+# this will go into slim.log along with all other echo's
+# good for debugging where things go wrong
+echo "$0: Beginning session setup..."
+
+# First read /etc/profile and .profile
+test -f /etc/profile && . /etc/profile
+test -f "$HOME/.profile" && . "$HOME/.profile"
+# Second read /etc/xprofile and .xprofile for X specific setup
+test -f /etc/xprofile && . /etc/xprofile
+test -f "$HOME/.xprofile" && . "$HOME/.xprofile"
+
+# wrap possible arguments to determine whether to treat special or not
+if [ "x$command" = "xcustom" ] || [ "x$command" = "xCustom" ] || [ "x$command" = "xdefault" ] || [ "x$command" = "xDefault" ]; then
+  command="Xsession"
+fi
+if [ "x$command" = "x" ]; then
+  # no default specified, check if Xsession will complete
+  # and if not then assign XSESSION to command
+  if [ -x "$HOME/.xsession" ] || [ -x "$HOME/.Xclients" ] || [ -x /etc/X11/xinit/Xclients ] || [ -x /etc/X11/Xclients ]; then
+    command="Xsession"
+  else
+    command=$XSESSION
+  fi
+fi
+
+# most of this is from /etc/X11/chooser.sh
+sessionscript=""
+if [ -n "${command}" ]; then
+  # find a match for $command in /etc/X11/Sessions
+  for x in /etc/X11/Sessions/* ; do
+    if [ "`echo ${x##*/} | awk '{ print toupper($1) }'`" = "`echo ${command} | awk '{ print toupper($1) }'`" ]; then
+      sessionscript=${x}
+      break
+    fi
+  done
+  if [ -n "${sessionscript}" ]; then
+    if [ -x "${sessionscript}" ]; then
+      command="${sessionscript}"
+    else
+      command="/bin/sh ${sessionscript}"
+    fi
+  else
+
+    # find an executable for $command
+    x=""
+    y=""
+
+    for x in "${command}" "`echo ${command} | awk '{ print toupper($1) }'`" "`echo ${command} | awk '{ print tolower($1) }'`"
+    do
+      # Fall through ...
+      if [ -x "`which ${x} 2>/dev/null`" ]; then
+	y="`which ${x} 2>/dev/null`"
+	break
+      fi
+    done
+    # note , if the command could not be found then $command will be empty
+    command="$y"
+    unset x
+    unset y
+  fi
+fi
+
+# call xrdb and xmodmap and such, since $command is not a session script
+if [ -z "${sessionscript}" ]; then
+  userresources="$HOME/.Xresources"
+  usermodmap="$HOME/.Xmodmap"
+  userxkbmap="$HOME/.Xkbmap"
+
+  sysresources=/etc/X11/Xresources 
+  sysmodmap=/etc/X11/Xmodmap 
+  sysxkbmap=/etc/X11/Xkbmap
+
+  rh6sysresources=/etc/X11/xinit/Xresources 
+  rh6sysmodmap=/etc/X11/xinit/Xmodmap 
+
+  # merge in defaults
+  if [ -f "$rh6sysresources" ]; then
+    xrdb -merge "$rh6sysresources"
+  fi
+
+  if [ -f "$sysresources" ]; then
+    xrdb -merge "$sysresources"
+  fi
+
+  if [ -f "$userresources" ]; then
+    xrdb -merge "$userresources"
+  fi
+
+  # merge in keymaps
+  if [ -f "$sysxkbmap" ]; then
+    setxkbmap `cat "$sysxkbmap"`
+    XKB_IN_USE=yes
+  fi
+
+  if [ -f "$userxkbmap" ]; then
+    setxkbmap `cat "$userxkbmap"`
+    XKB_IN_USE=yes
+  fi
+
+  #
+  # Eeek, this seems like too much magic here
+  #
+  if [ -z "$XKB_IN_USE" -a ! -L /etc/X11/X ]; then
+    if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 && [ -f /etc/X11/XF86Config ]; then
+      xkbsymbols=`sed -n -e 's/^[     ]*XkbSymbols[   ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config`
+      if [ -n "$xkbsymbols" ]; then
+        setxkbmap -symbols "$xkbsymbols"
+        XKB_IN_USE=yes
+      fi
+    fi
+  fi
+
+  # xkb and xmodmap don't play nice together
+  if [ -z "$XKB_IN_USE" ]; then
+    if [ -f "$rh6sysmodmap" ]; then
+      xmodmap "$rh6sysmodmap"
+    fi
+
+    if [ -f "$sysmodmap" ]; then
+      xmodmap "$sysmodmap"
+    fi
+
+    if [ -f "$usermodmap" ]; then
+      xmodmap "$usermodmap"
+    fi
+  fi
+
+  unset XKB_IN_USE
+fi
+unset sessionscript
+
+# start failsafe session
+if [ -z "${command}" ]; then
+  echo "$0: Failed to find a command to start the session, so starting a failsafe xterm."
+  exec xterm -geometry 80x24+0+0
+fi
+
+# run all system xinitrc shell scripts which will update command
+if [ -d /etc/X11/xinit/xinitrc.d ]; then
+  for i in /etc/X11/xinit/xinitrc.d/* ; do
+    if [ -x "$i" ]; then
+      . "$i"
+    fi
+  done
+  unset i
+fi
+
+echo "$0: Setup done, will execute: $command"
+exec $command
+
+# vim:ts=4

diff --git a/x11-misc/slim/files/slim-1.3.5-arm.patch b/x11-misc/slim/files/slim-1.3.5-arm.patch
new file mode 100644
index 0000000..9438ce4
--- /dev/null
+++ b/x11-misc/slim/files/slim-1.3.5-arm.patch
@@ -0,0 +1,11 @@
+--- a/Ck.cpp	2012-06-26 04:20:14.000000000 -0400
++++ b/Ck.cpp	2012-10-05 13:25:29.000000000 -0400
+@@ -91,7 +91,7 @@
+ 
+ 	vt = *((long *)return_value);
+ 
+-	std::snprintf(device, 32, "/dev/tty%ld", vt);
++	std::sprintf(device, "/dev/tty%ld", vt);
+ 
+ 	if(return_value)
+ 	  XFree(return_value);

diff --git a/x11-misc/slim/files/slim-1.3.5-disable-ck-for-systemd.patch b/x11-misc/slim/files/slim-1.3.5-disable-ck-for-systemd.patch
new file mode 100644
index 0000000..f7e3617
--- /dev/null
+++ b/x11-misc/slim/files/slim-1.3.5-disable-ck-for-systemd.patch
@@ -0,0 +1,122 @@
+diff -Naur slim-1.3.5/app.cpp slim-1.3.5.new/app.cpp
+--- slim-1.3.5/app.cpp	2012-12-31 08:03:42.000000000 -0500
++++ slim-1.3.5.new/app.cpp	2013-08-22 14:16:37.994854259 -0400
+@@ -138,11 +138,14 @@
+ 	daemonmode = false;
+ 	force_nodaemon = false;
+ 	firstlogin = true;
++#ifdef USE_CONSOLEKIT
++	consolekit_support_enabled = true;
++#endif
+ 	Dpy = NULL;
+ 
+ 	/* Parse command line
+ 	   Note: we force a option for nodaemon switch to handle "-nodaemon" */
+-	while((tmp = getopt(argc, argv, "vhp:n:d?")) != EOF) {
++	while((tmp = getopt(argc, argv, "vhsp:n:d?")) != EOF) {
+ 		switch (tmp) {
+ 		case 'p':	/* Test theme */
+ 			testtheme = optarg;
+@@ -163,6 +166,11 @@
+ 			std::cout << APPNAME << " version " << VERSION << endl;
+ 			exit(OK_EXIT);
+ 			break;
++#ifdef USE_CONSOLEKIT
++		case 's':	/* Disable consolekit support */
++			consolekit_support_enabled = false;
++			break;
++#endif
+ 		case '?':	/* Illegal */
+ 			logStream << endl;
+ 		case 'h':   /* Help */
+@@ -171,6 +179,9 @@
+ 			<< "	-d: daemon mode" << endl
+ 			<< "	-nodaemon: no-daemon mode" << endl
+ 			<< "	-v: show version" << endl
++#ifdef USE_CONSOLEKIT
++			<< "	-s: start for systemd, disable consolekit support" << endl
++#endif
+ 			<< "	-p /path/to/theme/dir: preview theme" << endl;
+ 			exit(OK_EXIT);
+ 			break;
+@@ -559,6 +570,7 @@
+ #endif
+ 
+ #ifdef USE_CONSOLEKIT
++	if (consolekit_support_enabled) {
+ 	/* Setup the ConsoleKit session */
+ 	try {
+ 		ck.open_session(DisplayName, pw->pw_uid);
+@@ -567,6 +579,7 @@
+ 		logStream << APPNAME << ": " << e << endl;
+ 		exit(ERR_EXIT);
+ 	}
++	}
+ #endif
+ 
+ 	/* Create new process */
+@@ -578,6 +591,7 @@
+ 		char** child_env = pam.getenvlist();
+ 
+ # ifdef USE_CONSOLEKIT
++		if (consolekit_support_enabled) {
+ 		char** old_env = child_env;
+ 
+ 		/* Grow the copy of the environment for the session cookie */
+@@ -590,6 +604,7 @@
+ 		memcpy(child_env, old_env, sizeof(char*)*n+1);
+ 		child_env[n - 1] = StrConcat("XDG_SESSION_COOKIE=", ck.get_xdg_session_cookie());
+ 		child_env[n] = NULL;
++		}
+ # endif /* USE_CONSOLEKIT */
+ #else
+ 
+@@ -611,6 +626,7 @@
+ 		child_env[n++]=StrConcat("MAIL=", maildir.c_str());
+ 		child_env[n++]=StrConcat("XAUTHORITY=", xauthority.c_str());
+ # ifdef USE_CONSOLEKIT
++		if (consolekit_support_enabled)
+ 		child_env[n++]=StrConcat("XDG_SESSION_COOKIE=", ck.get_xdg_session_cookie());
+ # endif /* USE_CONSOLEKIT */
+ 		child_env[n++]=0;
+@@ -656,12 +672,14 @@
+ 	}
+ 
+ #ifdef USE_CONSOLEKIT
++	if (consolekit_support_enabled) {
+ 	try {
+ 		ck.close_session();
+ 	}
+ 	catch(Ck::Exception &e) {
+ 		logStream << APPNAME << ": " << e << endl;
+ 	};
++	}
+ #endif
+ 
+ #ifdef USE_PAM
+diff -Naur slim-1.3.5/app.h slim-1.3.5.new/app.h
+--- slim-1.3.5/app.h	2012-12-31 08:03:42.000000000 -0500
++++ slim-1.3.5.new/app.h	2013-08-22 14:12:45.536850016 -0400
+@@ -108,6 +108,10 @@
+ 	char *testtheme;
+ 	bool testing;
+ 
++#ifdef USE_CONSOLEKIT
++	bool consolekit_support_enabled;
++#endif
++
+ 	std::string themeName;
+ 	std::string mcookie;
+ 
+diff -Naur slim-1.3.5/slim.service slim-1.3.5.new/slim.service
+--- slim-1.3.5/slim.service	2012-12-31 08:03:42.000000000 -0500
++++ slim-1.3.5.new/slim.service	2013-08-22 14:15:39.186853186 -0400
+@@ -3,7 +3,7 @@
+ After=systemd-user-sessions.service
+ 
+ [Service]
+-ExecStart=/usr/bin/slim -nodaemon
++ExecStart=/usr/bin/slim -nodaemon -s
+ 
+ [Install]
+ Alias=display-manager.service

diff --git a/x11-misc/slim/files/slim-1.3.6-add-missing-libgen_h.patch b/x11-misc/slim/files/slim-1.3.6-add-missing-libgen_h.patch
new file mode 100644
index 0000000..f137d94
--- /dev/null
+++ b/x11-misc/slim/files/slim-1.3.6-add-missing-libgen_h.patch
@@ -0,0 +1,11 @@
+diff -Naur slim-1.3.6.orig/panel.cpp slim-1.3.6/panel.cpp
+--- slim-1.3.6.orig/panel.cpp	2014-06-18 11:04:57.958630814 -0400
++++ slim-1.3.6/panel.cpp	2014-06-18 11:05:10.675631393 -0400
+@@ -11,6 +11,7 @@
+ 
+ #include <sstream>
+ #include <poll.h>
++#include <libgen.h>
+ #include <X11/extensions/Xrandr.h>
+ #include "panel.h"
+ 

diff --git a/x11-misc/slim/files/slim-1.3.6-config.diff b/x11-misc/slim/files/slim-1.3.6-config.diff
new file mode 100644
index 0000000..9da6795
--- /dev/null
+++ b/x11-misc/slim/files/slim-1.3.6-config.diff
@@ -0,0 +1,77 @@
+--- slim.conf.orig	2010-08-25 11:52:23.000000000 -0400
++++ slim.conf	2010-08-25 11:58:58.000000000 -0400
+@@ -2,7 +2,7 @@
+ # Note: -xauth $authfile is automatically appended
+ default_path        /bin:/usr/bin:/usr/local/bin
+ default_xserver     /usr/bin/X
+-#xserver_arguments   -dpi 75
++xserver_arguments   -nolisten tcp -br -deferglyphs 16 vt07
+ 
+ # Commands for halt, login, etc.
+ halt_cmd            /sbin/shutdown -h now
+@@ -18,7 +18,7 @@
+ 
+ 
+ # Activate numlock when slim starts. Valid values: on|off
+-# numlock             on
++numlock             on
+ 
+ # Hide the mouse cursor (note: does not work with some WMs).
+ # Valid values: true|false
+@@ -33,7 +33,8 @@
+ # to adjust the command according to your preferred shell,
+ # i.e. for freebsd use:
+ # login_cmd           exec /bin/sh - ~/.xinitrc %session
+-login_cmd           exec /bin/bash -login ~/.xinitrc %session
++# login_cmd           exec /bin/bash -login ~/.xinitrc %session
++login_cmd           exec /bin/bash -login /usr/share/slim/Xsession %session
+ 
+ # Commands executed when starting and exiting a session.
+ # They can be used for registering a X11 session with
+@@ -41,20 +42,30 @@
+ #
+ # sessionstart_cmd	some command
+ # sessionstop_cmd	some command
++sessionstart_cmd	/usr/bin/sessreg -a -l :0.0 %user
++sessionstop_cmd     /usr/bin/sessreg -d -l :0.0 %user
+ 
+ # Start in daemon mode. Valid values: yes | no
+ # Note that this can be overriden by the command line
+ # options "-d" and "-nodaemon"
+-# daemon	yes
++daemon	yes
+ 
+-# Available sessions (first one is the default).
+-# The current chosen session name is replaced in the login_cmd
++# Available sessions:
++# The current chosen session name replaces %session in the login_cmd
+ # above, so your login command can handle different sessions.
++# If no session is chosen (via F1), %session will be an empty string.
+ # see the xinitrc.sample file shipped with slim sources
+-sessions            xfce4,icewm-session,wmaker,blackbox
++#sessions            xfce4,icewm-session,wmaker,blackbox
++# Alternatively, read available sessions from a directory of scripts:
++#sessiondir           /etc/X11/Sessions
++# Or, read available sessions from the xsessions desktop files --
++# note that this may provide a full path to the session executable!
++sessiondir	/usr/share/xsessions
+ 
+-# Executed when pressing F11 (requires imagemagick)
++# Executed when pressing F11 (requires media-gfx/imagemagick for import)
++# Alternative is media-gfx/scrot. See Gentoo bug 252241 for more info.
+ screenshot_cmd      import -window root /slim.png
++#screenshot_cmd      scrot /root/slim.png
+ 
+ # welcome message. Available variables: %host, %domain
+ welcome_msg         Welcome to %host
+@@ -83,8 +91,8 @@
+ # randomly choose from
+ current_theme       default
+ 
+-# Lock file
+-lockfile            /var/run/slim.lock
++# Lock file, /etc/init.d/xdm expects slim.pid
++lockfile            /run/slim.pid
+ 
+ # Log file
+ logfile             /var/log/slim.log

diff --git a/x11-misc/slim/files/slim-1.3.6-drop-zlib.patch b/x11-misc/slim/files/slim-1.3.6-drop-zlib.patch
new file mode 100644
index 0000000..cf2106a
--- /dev/null
+++ b/x11-misc/slim/files/slim-1.3.6-drop-zlib.patch
@@ -0,0 +1,10 @@
+--- a/CMakeLists.txt	2014-02-28 10:38:48.655262163 -0500
++++ b/CMakeLists.txt	2014-02-28 10:47:01.671271162 -0500
+@@ -96,7 +96,6 @@
+ find_package(Freetype REQUIRED)
+ find_package(JPEG REQUIRED)
+ find_package(PNG REQUIRED)
+-find_package(ZLIB REQUIRED)
+ 
+ # Fontconfig
+ set(FONTCONFIG_DIR ${CMAKE_MODULE_PATH})

diff --git a/x11-misc/slim/files/slim-1.3.6-fix-slimlock-nopam-v2.patch b/x11-misc/slim/files/slim-1.3.6-fix-slimlock-nopam-v2.patch
new file mode 100644
index 0000000..d5fc4db
--- /dev/null
+++ b/x11-misc/slim/files/slim-1.3.6-fix-slimlock-nopam-v2.patch
@@ -0,0 +1,26 @@
+--- a/CMakeLists.txt	2013-10-27 21:24:21.193802669 -0400
++++ b/CMakeLists.txt	2013-10-27 21:26:54.127806951 -0400
+@@ -220,7 +220,6 @@
+ ####### install
+ # slim
+ install(TARGETS slim RUNTIME DESTINATION bin)
+-install(TARGETS slimlock RUNTIME DESTINATION bin)
+ 
+ if (BUILD_SHARED_LIBS)
+ 	set_target_properties(libslim PROPERTIES
+@@ -235,8 +234,14 @@
+ 
+ # man file
+ install(FILES slim.1 DESTINATION ${MANDIR}/man1/)
+-install(FILES slimlock.1 DESTINATION ${MANDIR}/man1/)
+ # configure
+ install(FILES slim.conf DESTINATION ${SYSCONFDIR})
++
++#slimlock
++if(BUILD_SLIMLOCK)
++install(TARGETS slimlock RUNTIME DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE SETUID)
++install(FILES slimlock.1 DESTINATION ${MANDIR}/man1/)
++endif(BUILD_SLIMLOCK)
++
+ # themes directory
+ subdirs(themes)

diff --git a/x11-misc/slim/files/slim-1.3.6-honour-cflags.patch b/x11-misc/slim/files/slim-1.3.6-honour-cflags.patch
new file mode 100644
index 0000000..8335e0f
--- /dev/null
+++ b/x11-misc/slim/files/slim-1.3.6-honour-cflags.patch
@@ -0,0 +1,14 @@
+--- CMakeLists.txt	2013-10-01 18:38:05.000000000 -0400
++++ CMakeLists.txt.new	2013-10-15 11:33:18.975741094 -0400
+@@ -42,11 +42,6 @@
+ set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DPKGDATADIR=\"${PKGDATADIR}\"")
+ set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DSYSCONFDIR=\"${SYSCONFDIR}\"")
+ 
+-# Flags
+-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -g -O2")
+-set(CMAKE_CPP_FLAGS "${CMAKE_CPP_FLAGS} -Wall -g -O2")
+-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -g -O2")
+-
+ # source 
+ set(slim_srcs
+ 	main.cpp

diff --git a/x11-misc/slim/files/slim-1.3.6-libslim-cmake-fixes.patch b/x11-misc/slim/files/slim-1.3.6-libslim-cmake-fixes.patch
new file mode 100644
index 0000000..11e39dc
--- /dev/null
+++ b/x11-misc/slim/files/slim-1.3.6-libslim-cmake-fixes.patch
@@ -0,0 +1,33 @@
+--- a/CMakeLists.txt	2013-10-15 11:35:16.688739802 -0400
++++ b/CMakeLists.txt	2013-10-15 11:53:46.185727620 -0400
+@@ -115,6 +115,7 @@
+ 		message("\tPAM Found")
+ 		set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DUSE_PAM")
+ 		target_link_libraries(${PROJECT_NAME} ${PAM_LIBRARY})
++		target_link_libraries(libslim ${PAM_LIBRARY})
+ 		target_link_libraries(slimlock ${PAM_LIBRARY})
+ 		include_directories(${PAM_INCLUDE_DIR})
+ 	else(PAM_FOUND)
+@@ -173,7 +174,10 @@
+ )
+ 
+ target_link_libraries(libslim
+-    ${JPEG_LIBRARIES}
++	${RT_LIB}
++	${X11_Xft_LIB}
++	${X11_Xrandr_LIB}
++	${JPEG_LIBRARIES}
+ 	${PNG_LIBRARIES}
+ )
+ 
+@@ -228,8 +228,8 @@
+ 		SOVERSION ${SLIM_VERSION})
+ 
+ 	install(TARGETS libslim
+-		LIBRARY DESTINATION lib
+-		ARCHIVE DESTINATION lib
++		LIBRARY DESTINATION lib${LIB_SUFFIX}
++		ARCHIVE DESTINATION lib${LIB_SIFFUX}
+ 	)
+ endif (BUILD_SHARED_LIBS)
+ 

diff --git a/x11-misc/slim/files/slim-1.3.6-session-chooser.patch b/x11-misc/slim/files/slim-1.3.6-session-chooser.patch
new file mode 100644
index 0000000..b43c9a3
--- /dev/null
+++ b/x11-misc/slim/files/slim-1.3.6-session-chooser.patch
@@ -0,0 +1,115 @@
+--- a/cfg.cpp	2013-10-01 18:38:05.000000000 -0400
++++ b/cfg.cpp	2013-10-24 12:12:20.584103253 -0400
+@@ -274,14 +274,14 @@
+ 	while (true) {
+ 		string::const_iterator begin = s;
+ 		while (*s != c && s != str.end()) { ++s; }
+-	tmp = string(begin, s);
+-	if (useEmpty || tmp.size() > 0)
++		tmp = string(begin, s);
++		if (useEmpty || tmp.size() > 0)
+ 			v.push_back(tmp);
+ 		if (s == str.end()) {
+ 			break;
+ 		}
+ 		if (++s == str.end()) {
+-		if (useEmpty)
++			if (useEmpty)
+ 				v.push_back("");
+ 			break;
+ 		}
+@@ -289,6 +289,7 @@
+ }
+ 
+ void Cfg::fillSessionList(){
++	string strSessionList = getOption("sessions");
+ 	string strSessionDir  = getOption("sessiondir");
+ 
+ 	sessions.clear();
+@@ -307,29 +308,29 @@
+ 				struct stat oFileStat;
+ 
+ 				if (stat(strFile.c_str(), &oFileStat) == 0) {
+-                    if (S_ISREG(oFileStat.st_mode) &&
+-                            access(strFile.c_str(), R_OK) == 0){
+-                        ifstream desktop_file( strFile.c_str() );
+-                        if (desktop_file){
+-                             string line, session_name = "", session_exec = "";
+-                             while (getline( desktop_file, line )) {
+-                                 if (line.substr(0, 5) == "Name=") {
+-                                     session_name = line.substr(5);
+-                                     if (!session_exec.empty())
+-                                         break;
+-                                 } else
+-                                     if (line.substr(0, 5) == "Exec=") {
+-                                         session_exec = line.substr(5);
+-                                         if (!session_name.empty())
+-                                             break;
+-                                     }
+-                             }
+-                             desktop_file.close();
+-                             pair<string,string> session(session_name,session_exec);
+-                             sessions.push_back(session);
+-                             cout << session_exec << " - " << session_name << endl;
+-                        }
+-
++					if (S_ISREG(oFileStat.st_mode) &&
++						access(strFile.c_str(), R_OK) == 0){
++							ifstream desktop_file( strFile.c_str() );
++							if (desktop_file){
++								string line, session_name = "", session_exec = "";
++								while (getline( desktop_file, line )) {
++								if (line.substr(0, 5) == "Name=") {
++									session_name = line.substr(5);
++									if (!session_exec.empty()) break;
++								} else if (line.substr(0, 5) == "Exec=") {
++									session_exec = line.substr(5);
++									if (!session_name.empty()) break;
++								}
++							}
++							desktop_file.close();
++							if (!session_name.empty() && !session_exec.empty()) {
++								pair<string,string> session(session_name,session_exec);
++								sessions.push_back(session);
++							} else if (access(strFile.c_str(), X_OK) == 0) {
++								pair<string,string> session(string(pDirent->d_name),strFile);
++								sessions.push_back(session);
++							}
++						}
+ 					}
+ 				}
+ 			}
+@@ -338,8 +339,18 @@
+ 	}
+ 
+ 	if (sessions.empty()){
+-        pair<string,string> session("","");
+-        sessions.push_back(session);
++		if (strSessionList.empty()) {
++			pair<string,string> session("","");
++			sessions.push_back(session);
++		} else {
++			// iterate through the split of the session list
++			vector<string> sessit;
++			split(sessit,strSessionList,',',false);
++			for (vector<string>::iterator it = sessit.begin(); it != sessit.end(); ++it) {
++				pair<string,string> session(*it,*it);
++				sessions.push_back(session);
++			}
++		}
+ 	}
+ }
+ 
+--- a/app.cpp	2013-10-24 12:16:59.870111072 -0400
++++ b/app.cpp	2013-10-24 12:29:59.899132910 -0400
+@@ -377,10 +377,6 @@
+ 			LoginPanel->SetName(cfg->getOption("default_user") );
+ 		}
+ 
+-        if (firstloop) {
+-            LoginPanel->SwitchSession();
+-        }
+-
+ 		if (!AuthenticateUser(focuspass && firstloop)){
+ 			panelclosed = 0;
+ 			firstloop = false;

diff --git a/x11-misc/slim/files/slim-1.3.6-strip-systemd-unit-install.patch b/x11-misc/slim/files/slim-1.3.6-strip-systemd-unit-install.patch
new file mode 100644
index 0000000..f116c5e
--- /dev/null
+++ b/x11-misc/slim/files/slim-1.3.6-strip-systemd-unit-install.patch
@@ -0,0 +1,13 @@
+--- CMakeLists.txt	2013-10-15 12:02:13.463722050 -0400
++++ CMakeLists.txt.new	2013-10-17 09:41:41.602917345 -0400
+@@ -238,10 +238,6 @@
+ install(FILES slimlock.1 DESTINATION ${MANDIR}/man1/)
+ # configure
+ install(FILES slim.conf DESTINATION ${SYSCONFDIR})
+-# systemd service file
+-if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+-	install(FILES slim.service DESTINATION ${LIBDIR}/systemd/system)
+-endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ # themes directory
+ subdirs(themes)
+ 

diff --git a/x11-misc/slim/files/slim-1.3.6-systemd-session.patch b/x11-misc/slim/files/slim-1.3.6-systemd-session.patch
new file mode 100644
index 0000000..0639aeb
--- /dev/null
+++ b/x11-misc/slim/files/slim-1.3.6-systemd-session.patch
@@ -0,0 +1,29 @@
+--- a/app.cpp	2013-10-23 16:19:57.074100282 -0400
++++ b/app.cpp	2013-10-23 16:33:13.302122574 -0400
+@@ -829,8 +829,13 @@
+ 
+ 	StopServer();
+ 	RemoveLock();
+-	while (waitpid(-1, NULL, WNOHANG) > 0); /* Collects all dead childrens */
+-	Run();
++	if (force_nodaemon) {
++		delete LoginPanel;
++		exit(ERR_EXIT); /* use ERR_EXIT so that systemd's RESTART=on-failure works */
++	} else {
++		while (waitpid(-1, NULL, WNOHANG) > 0); /* Collects all dead childrens */
++		Run();
++	}
+ }
+ 
+ void App::KillAllClients(Bool top) {
+--- a/slim.service	2013-10-23 16:19:57.074100282 -0400
++++ b/slim.service	2013-10-23 16:45:14.901142776 -0400
+@@ -4,6 +4,7 @@
+ 
+ [Service]
+ ExecStart=/usr/bin/slim -nodaemon -s
++Restart=on-failure
+ 
+ [Install]
+ Alias=display-manager.service
+Common subdirectories: slim-1.3.6/themes and slim-1.3.6.new/themes

diff --git a/x11-misc/slim/files/slim.logrotate b/x11-misc/slim/files/slim.logrotate
new file mode 100644
index 0000000..8901530
--- /dev/null
+++ b/x11-misc/slim/files/slim.logrotate
@@ -0,0 +1,9 @@
+/var/log/slim.log {
+	compress
+	rotate 4
+	weekly
+	delaycompress
+	copytruncate
+	missingok
+	notifempty
+}

diff --git a/x11-misc/slim/metadata.xml b/x11-misc/slim/metadata.xml
new file mode 100644
index 0000000..f6d2292
--- /dev/null
+++ b/x11-misc/slim/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<herd>desktop-misc</herd>
+	<maintainer>
+		<email>axs@gentoo.org</email>
+	</maintainer>
+	<use> 
+        	<flag name='consolekit'>Enable native consolekit support</flag>
+	</use>
+</pkgmetadata>
+

diff --git a/x11-misc/slim/slim-1.3.6-r99.ebuild b/x11-misc/slim/slim-1.3.6-r99.ebuild
new file mode 100644
index 0000000..04f8eea
--- /dev/null
+++ b/x11-misc/slim/slim-1.3.6-r99.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-misc/slim/slim-1.3.6-r4.ebuild,v 1.2 2014/02/28 15:52:09 axs Exp $
+
+EAPI=5
+
+CMAKE_MIN_VERSION="2.8.8"
+inherit cmake-utils pam eutils systemd versionator
+
+DESCRIPTION="Simple Login Manager"
+HOMEPAGE="http://slim.berlios.de"
+SRC_URI="mirror://berlios/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+IUSE="branding pam consolekit"
+REQUIRED_USE="consolekit? ( pam )"
+
+RDEPEND="x11-libs/libXmu
+	x11-libs/libX11
+	x11-libs/libXpm
+	x11-libs/libXft
+	x11-libs/libXrandr
+	media-libs/libpng:0=
+	virtual/jpeg:=
+	x11-apps/sessreg
+	consolekit? ( sys-auth/consolekit
+		sys-apps/dbus )
+	pam? (	virtual/pam
+		!x11-misc/slimlock )"
+DEPEND="${RDEPEND}
+	virtual/pkgconfig
+	x11-proto/xproto"
+PDEPEND="branding? ( >=x11-themes/slim-themes-1.2.3a-r3 )"
+
+src_prepare() {
+	# Our Gentoo-specific config changes
+	epatch "${FILESDIR}"/${P}-config.diff
+	epatch "${FILESDIR}"/${PN}-1.3.5-arm.patch
+	epatch "${FILESDIR}"/${P}-honour-cflags.patch
+	epatch "${FILESDIR}"/${P}-libslim-cmake-fixes.patch
+	epatch "${FILESDIR}"/${PN}-1.3.5-disable-ck-for-systemd.patch
+	epatch "${FILESDIR}"/${P}-strip-systemd-unit-install.patch
+	epatch "${FILESDIR}"/${P}-systemd-session.patch
+	epatch "${FILESDIR}"/${P}-session-chooser.patch
+	epatch "${FILESDIR}"/${P}-fix-slimlock-nopam-v2.patch
+	epatch "${FILESDIR}"/${P}-drop-zlib.patch
+	epatch "${FILESDIR}"/${P}-add-missing-libgen_h.patch
+
+	if use elibc_FreeBSD; then
+		sed -i -e 's/"-DHAVE_SHADOW"/"-DNEEDS_BASENAME"/' CMakeLists.txt \
+			|| die
+	fi
+
+	if use branding; then
+		sed -i -e 's/  default/  slim-gentoo-simple/' slim.conf || die
+	fi
+}
+
+src_configure() {
+	mycmakeargs=(
+		$(cmake-utils_use pam USE_PAM)
+		$(cmake-utils_use consolekit USE_CONSOLEKIT)
+	)
+
+	cmake-utils_src_configure
+}
+
+src_install() {
+	cmake-utils_src_install
+
+	if use pam ; then
+		pamd_mimic system-local-login slim auth account session
+		pamd_mimic system-local-login slimlock auth
+	fi
+
+	systemd_dounit slim.service
+
+	insinto /usr/share/slim
+	newins "${FILESDIR}/Xsession-r3" Xsession
+
+	insinto /etc/logrotate.d
+	newins "${FILESDIR}/slim.logrotate" slim
+
+	dodoc xinitrc.sample ChangeLog README TODO THEMES
+}
+
+pkg_postinst() {
+	# note, $REPLACING_VERSIONS will always contain 0 or 1 PV's for slim
+	if [[ -z ${REPLACING_VERSIONS} ]]; then
+		elog
+		elog "The configuration file is located at /etc/slim.conf."
+		elog
+		elog "If you wish ${PN} to start automatically, set DISPLAYMANAGER=\"${PN}\" "
+		elog "in /etc/conf.d/xdm and run \"rc-update add xdm default\"."
+	fi
+	if ! version_is_at_least "1.3.2-r7" "${REPLACING_VERSIONS:-1.0}" ; then
+		elog
+		elog "By default, ${PN} is set up to do proper X session selection, including ~/.xsession"
+		elog "support, as well as selection between sessions available in"
+		elog "/etc/X11/Sessions/ at login by pressing [F1]."
+		elog
+		elog "The XSESSION environment variable is still supported as a default"
+		elog "if no session has been specified by the user."
+		elog
+		elog "If you want to use .xinitrc in the user's home directory for session"
+		elog "management instead, see README and xinitrc.sample in"
+		elog "/usr/share/doc/${PF} and change your login_cmd in /etc/slim.conf"
+		elog "accordingly."
+		elog
+		ewarn "Please note that slim supports consolekit directly.  Please do not use any "
+		ewarn "old work-arounds (including calls to 'ck-launch-session' in xinitrc scripts)"
+		ewarn "and enable USE=\"consolekit\" instead."
+		ewarn
+	fi
+	if ! use pam; then
+		elog "You have merged ${PN} without USE=\"pam\", this will cause ${PN} to fall back to"
+		elog "the console when restarting your window manager. If this is not desired, then"
+		elog "please remerge ${PN} with USE=\"pam\""
+		elog
+	fi
+}


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2014-06-18 15:07 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-18 15:07 [gentoo-commits] proj/hardened-dev:musl commit in: x11-misc/slim/, x11-misc/slim/files/ Anthony G. Basile

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox