New Xsession script, bug 334111 by Ian Stakenvicius
authorJeremy Olexa <darkside@gentoo.org>
Tue, 16 Aug 2011 02:18:37 +0000 (02:18 +0000)
committerJeremy Olexa <darkside@gentoo.org>
Tue, 16 Aug 2011 02:18:37 +0000 (02:18 +0000)
Package-Manager: portage-2.1.10.6/cvs/Linux x86_64

x11-misc/slim/ChangeLog
x11-misc/slim/Manifest
x11-misc/slim/files/Xsession-r2 [new file with mode: 0644]
x11-misc/slim/slim-1.3.2-r4.ebuild [new file with mode: 0644]

index fea63e515bf3de4fc22c114ccccbd32307ce91d1..db5cdc2871c6ed25297b184dc3c234b1eb3dc585 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for x11-misc/slim
 # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-misc/slim/ChangeLog,v 1.67 2011/08/09 17:38:39 ssuominen Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-misc/slim/ChangeLog,v 1.68 2011/08/16 02:18:37 darkside Exp $
+
+*slim-1.3.2-r4 (16 Aug 2011)
+
+  16 Aug 2011; Jeremy Olexa <darkside@gentoo.org> +slim-1.3.2-r4.ebuild,
+  +files/Xsession-r2:
+  New Xsession script, bug 334111 by Ian Stakenvicius
 
   09 Aug 2011; Samuli Suominen <ssuominen@gentoo.org> slim-1.3.2-r3.ebuild,
   +files/slim-1.3.2-libpng15.patch:
index 846800355d6ef041c38816bbd01072ee8fccaaa7..b5f38fa9ce5e9b06ed29e1c916efae7c73d5a445 100644 (file)
@@ -1,24 +1,16 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA256
-
 AUX 14509-fix-keyboard-in-tty-from-which-slim-is-lauched.patch 754 RMD160 079984153eb6ca97dafc94b065aeff6c57cf19ee SHA1 25fc499e10133c5325823453202aefdf828c3c21 SHA256 72995a16600174994864b9af959659d321c1fc6aa093650ed0b95b6760d91a13
 AUX 15287-fix-pam-authentication-with-pam_unix2.patch 3017 RMD160 ae6a20b9eb313bd6b9f93726d5519309a2bafc85 SHA1 e17c582fe0cc1d2a07e51d410db2d61c11aba4c6 SHA256 ced3b92f48ba09cd61287b72737ea58e499a7eedd4f61e25ee1b148d0b6cfbb3
 AUX 261359-fix-SIGTERM-freeze.patch 1284 RMD160 ba75eda8cc539138f68f26de18c76a5e290f4d93 SHA1 dd8b782438bbdb86c44a4e1cb64bd8c3e3afefe6 SHA256 bd3221c9b94cc64ba6f4d786ec57a5d085f247b283cd64117034be15fedc5201
 AUX 261713-restart-xserver-if-killed.patch 3198 RMD160 97b6627b17f74a6fb88a967fee7364bdb3280710 SHA1 15d7bffb0588ac33ece488aa209c2418023d4739 SHA256 c4ff22a4930d6ef12ee6ff30f4782b64785c00d54f687ac620e5cbd5eee283f9
 AUX 346037-stop_setting_host_for_pam_ck_connector_so.patch 328 RMD160 62012df3cccf607d8cba139b0754a7238bfb1dd3 SHA1 04f26bc3ad82dab47c8911f3ac069b756fe5a1a8 SHA256 51bee429be20f2538b19b84c311b136761acdf2b857661af11749e45cc73ad44
 AUX Xsession 4215 RMD160 86ab057ea3f78a9604811a1bff7e5aad88c2f717 SHA1 46dc684b873b190b74df199eae39b38e0f5ffccc SHA256 55671397563aa32d89e66658e6594f17d4ddcddd1ad6aa2d7582ba56ceec7628
+AUX Xsession-r2 4045 RMD160 538a23b1f0812fe2243d678276bced4ea03256a3 SHA1 b4deabb6795738cedca66f171e2fc504dc0cc96d SHA256 5eaa3c03278443f27a8477397dd0bcaa5f95e7d0cf99448f028bf0165ce089af
 AUX slim-1.3.2-bsd-install.patch 1315 RMD160 290a7c31b077bce33b120ab55b9bdd3c6262d2be SHA1 a50d2e3e2810af82ab9bef058a72286734afd338 SHA256 bfb5a506b3baec6d24e6f0cfba34f045768bbccccc652af11199f30a7c45d843
 AUX slim-1.3.2-libpng15.patch 247 RMD160 b28d9a376f4c01baa8b1aec0c5e0e76294997255 SHA1 3cd674e548f4e0aadbbd32a67b4efd1ed263afef SHA256 f84e3e4c069ec103a5f4ec2a60698bf9d035346b604dee59b6efc883c7f14042
 AUX slim-1.3.2-r2-config.diff 2572 RMD160 217c3d64b77e0af496670cee82849a0500516d0d SHA1 7dbc1b0df45a49688b52bfc701acc3dc15019394 SHA256 7ea06809e15f40c5113d8c05df2b6ca4eb4ba9ebc1e9fc1747b080337997384d
 AUX slim.logrotate 102 RMD160 ccf614eca8c0b8fc1fbc2dfb8bf71b02485a743b SHA1 d2bc9202862f0d33bb902eba3aa8fefe0797d7a3 SHA256 d0559cf7764147f601f2bab8077fd956b1171adad4872c0d324279f6a978264a
 DIST slim-1.3.2.tar.gz 220592 RMD160 1ca6504c07ea2d420fde86b6db0f4cfbbd6680fc SHA1 e421d5487732c8317f8f591906661e014b036358 SHA256 f1560125005f253b9b88220598fed7a9575ef405716862c6ca3fcc72dbd482b8
 EBUILD slim-1.3.2-r3.ebuild 3845 RMD160 c05d3a83231ff745710f184913797e54fa65d847 SHA1 a215c9cb6e4f01b59bccad3096c2efd9a0d021f2 SHA256 52b09e2d2a8b78c35b82001d5c71eb177494e15652c6a6ce34eeafc111858bc0
-MISC ChangeLog 10852 RMD160 4ea84c1f80e09e334162dc5f3b075f359d8ed8d7 SHA1 b369afd9ba162013efdf449a635bb6e9d9618df5 SHA256 30e008ee15a6bac4ce16bb1e699a518d60eabdab1f09d44cf748acdc8aba7f09
+EBUILD slim-1.3.2-r4.ebuild 3852 RMD160 47807963f7314fc2db281523cca61e007e9af52d SHA1 4a5df6f0fc144da7310613ca9a4d2bb43fb34b2d SHA256 191c34791e1e84370b7e3164a9ebd734d67b8ef016a582953c009ff841870dcf
+MISC ChangeLog 11031 RMD160 fe7b0b46f1cce032c30d3601ad026028b79d68d7 SHA1 6285db744d93d65c170c6baa7dabc5b5618fce32 SHA256 98356ae71ffcdbc4e45e16698876e77eab0a84f443f3b9915006f653889a6086
 MISC metadata.xml 377 RMD160 6320bad8fc67d0814f8d74a83480ba2fb4ed5d2f SHA1 0e938430a8782f832c96a778c2a287f1787cce06 SHA256 4c607a49c6e35158356c67f5b1111626d66b7d72f4fc85f2303eb9b0e7600a8f
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.17 (GNU/Linux)
-
-iF4EAREIAAYFAk5BcJYACgkQXkR9YqOcLPFKrQD9HoD88R7FfvuJoWW+39TuiCDY
-s9b5XsjniGRk5c+5ehYA/37hDpPog0pI9w3rELOR8EgzyshXOibBhbYd6+ZWzosb
-=UX+8
------END PGP SIGNATURE-----
diff --git a/x11-misc/slim/files/Xsession-r2 b/x11-misc/slim/files/Xsession-r2
new file mode 100644 (file)
index 0000000..237fb36
--- /dev/null
@@ -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/slim-1.3.2-r4.ebuild b/x11-misc/slim/slim-1.3.2-r4.ebuild
new file mode 100644 (file)
index 0000000..296efc9
--- /dev/null
@@ -0,0 +1,118 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-misc/slim/slim-1.3.2-r4.ebuild,v 1.1 2011/08/16 02:18:37 darkside Exp $
+
+EAPI=2
+
+inherit toolchain-funcs pam eutils
+
+DESCRIPTION="Simple Login Manager"
+HOMEPAGE="http://slim.berlios.de"
+SRC_URI="mirror://berlios/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+IUSE="branding pam"
+
+RDEPEND="x11-libs/libXmu
+       x11-libs/libX11
+       x11-libs/libXpm
+       x11-libs/libXft
+       >=media-libs/libpng-1.4
+       virtual/jpeg
+       x11-apps/sessreg
+       pam? ( virtual/pam )"
+DEPEND="${RDEPEND}
+       dev-util/pkgconfig
+       x11-proto/xproto"
+PDEPEND="branding? ( >=x11-themes/slim-themes-1.2.3a-r3 )"
+
+src_prepare() {
+       # respect C[XX]FLAGS, fix crosscompile,
+       # fix linking order for --as-needed"
+       sed -i -e "s:^CXX=.*:CXX=$(tc-getCXX) ${CXXFLAGS}:" \
+               -e "s:^CC=.*:CC=$(tc-getCC) ${CFLAGS}:" \
+               -e "s:^MANDIR=.*:MANDIR=/usr/share/man:" \
+               -e "s:^\t\(.*\)\ \$(LDFLAGS)\ \(.*\):\t\1\ \2\ \$(LDFLAGS):g" \
+               -e "s:-I/usr/include/libpng12:$(pkg-config --cflags-only-I libpng):" \
+               -e "s:-lpng12:$(pkg-config --libs-only-l libpng):" \
+               -r -e "s:^LDFLAGS=(.*):LDFLAGS=\1 ${LDFLAGS}:" \
+               Makefile || die "sed failed in Makefile"
+       # Our Gentoo-specific config changes
+       epatch "${FILESDIR}"/${PN}-1.3.2-r2-config.diff
+
+       if use elibc_FreeBSD; then
+               sed -i -e "s/CUSTOM=-DHAVE_SHADOW/CUSTOM=-DNEEDS_BASENAME/" Makefile \
+                       || die "sed failed in Makefile"
+               epatch "${FILESDIR}"/${PN}-1.3.2-bsd-install.patch
+       fi
+
+       if use branding; then
+               sed -i -e 's/  default/  slim-gentoo-simple/' slim.conf || die
+       fi
+
+       # Gentoo bug 297655
+       epatch "${FILESDIR}"/14509-fix-keyboard-in-tty-from-which-${PN}-is-lauched.patch
+       # Upstream bug #15287
+       epatch "${FILESDIR}"/15287-fix-pam-authentication-with-pam_unix2.patch
+       # Gentoo Bug 261713
+       epatch "${FILESDIR}"/261713-restart-xserver-if-killed.patch
+       # Gentoo bug 261359, upstream 15326
+       epatch "${FILESDIR}"/261359-fix-SIGTERM-freeze.patch
+       # Gentoo bug 346037
+       epatch "${FILESDIR}"/346037-stop_setting_host_for_pam_ck_connector_so.patch
+       # Gentoo bug 378505
+       epatch "${FILESDIR}"/${P}-libpng15.patch
+}
+
+src_compile() {
+       if use pam ; then
+               emake USE_PAM=1 || die "emake failed."
+       else
+               emake || die "emake failed."
+       fi
+}
+
+src_install() {
+       if use pam ; then
+               emake USE_PAM=1 DESTDIR="${D}" install || die "emake install failed."
+               pamd_mimic system-local-login slim auth account session
+       else
+               emake DESTDIR="${D}" install || die "emake install failed."
+       fi
+
+       insinto /usr/share/slim
+       newins "${FILESDIR}/Xsession-r2" Xsession || die "newins failed"
+
+       insinto /etc/logrotate.d
+       newins "${FILESDIR}/slim.logrotate" slim || die "newins failed"
+
+       dodoc xinitrc.sample ChangeLog README TODO THEMES
+}
+
+pkg_postinst() {
+       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\"."
+       elog
+       elog "By default, ${PN} now does 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
+       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"
+               elog "desired, then please remerge ${PN} with USE=pam"
+       fi
+}