commit: b59b766f6b243d444558c7e8efe5ce3d5cfd337a Author: Michael Weber <michael <AT> xmw <DOT> de> AuthorDate: Thu Jul 9 07:16:56 2015 +0000 Commit: Michael Weber <xmw <AT> gentoo <DOT> org> CommitDate: Thu Jul 9 07:16:56 2015 +0000 URL: https://gitweb.gentoo.org/dev/xmw.git/commit/?id=b59b766f
Version bump. Package-Manager: portage-2.2.20 Manifest-Sign-Key: 62EEF090 x11-misc/trivdm/ChangeLog | 8 +++- x11-misc/trivdm/files/trivdm-0_p20150709 | 63 ++++++++++++++++++++++++++++++ x11-misc/trivdm/metadata.xml | 1 - x11-misc/trivdm/trivdm-0_p20150709.ebuild | 64 +++++++++++++++++++++++++++++++ 4 files changed, 134 insertions(+), 2 deletions(-) diff --git a/x11-misc/trivdm/ChangeLog b/x11-misc/trivdm/ChangeLog index 0dc097c..d293da6 100644 --- a/x11-misc/trivdm/ChangeLog +++ b/x11-misc/trivdm/ChangeLog @@ -1,7 +1,13 @@ # ChangeLog for x11-misc/trivdm -# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 +# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2 # $Header: $ +*trivdm-0_p20150709 (09 Jul 2015) + + 09 Jul 2015; Michael Weber <[email protected]> +files/trivdm-0_p20150709, + +trivdm-0_p20150709.ebuild, metadata.xml: + Version bump. + *trivdm-0_p20130707-r1 (01 Aug 2013) 01 Aug 2013; Michael Weber <[email protected]> +trivdm-0_p20130707-r1.ebuild, diff --git a/x11-misc/trivdm/files/trivdm-0_p20150709 b/x11-misc/trivdm/files/trivdm-0_p20150709 new file mode 100644 index 0000000..64bdd0d --- /dev/null +++ b/x11-misc/trivdm/files/trivdm-0_p20150709 @@ -0,0 +1,63 @@ +#!/bin/zsh +# trivdm by Christian Neukirchen, Michael Weber [email protected] +# wget http://xmw.de/tmp/trivdm -O /usr/local/bin/trivdm +# c7:2345:respawn:/usr/bin/openvt -c 7 -f -w /usr/local/bin/trivdm +# symlinks to /usr/local/bin/{gdmflexiserver,w} and /etc/local.d/trivdm.start +# groupadd --system trivdm ; useradd --system -g trivdm -G wheel trivdm +# chmod u+s /usr/bin/chvt + +NAME=$(basename $0) ; USER=trivdm ; LANG=C ; TTYNUM=7 ; FALLBACK=Xsession +log() { echo "$@" | logger -s -t $NAME } +trap 'read -s -k -t 10 "?Press any key to continue ..." ; exit -1 ' ZERR +w() { ps haxo ruser,tty,comm | egrep -v "$USER|tty${TTYNUM}|agetty|login$" | \ + awk '{ if ( $3 == "X" || $2 != "?" ) print $1" "$2 }' | sort -u | \ + awk '{ ORS="" ; if ( u != $1 ) { u=$1 ; print "\n"u"\t" } ; print $2"," }' \ + | sed -e '1d ; s:,$:: ; $a\' } + +case $NAME in + gdmflexiserver) + [ "$1" = "-ls" ] && exec chvt 7 || exec /usr/bin/gdmflexiserver $@ ;; + trivdm.start) + chvt ${TTYNUM} ; exec setfont sun12x22 ;; + w) + w ; exec /usr/bin/w $@ ;; + *) + [ "$1" = "update" ] && exec wget http://xmw.de/tmp/$NAME -O $0 + [ "$(id -un)" = "$USER" ] || exec su -c $0 $USER ;; +esac + +clear +toilet --font mono9 --metal $(hostname) | awk \ + '{a[NR%8]=a[NR%8] $0} END {for (i=1;i<=NR;i++) print a[i];print a[0]}' \ + | sed 's/ *$//g;/^$/d' ; echo +( uname -srp ; echo " (" ; date +%H:%M:%S ; echo ")" ) | tr -d '\n' +print -n "\n\nUsage: <username>[/<session type>]|!halt|!reboot + <session type> in ~/.xinitrc (default), $FALLBACK (fallback),\n\t" +find /etc/X11/Sessions -type f ! -name $FALLBACK | \ + awk -F / 'BEGIN { ORS=", " } { print $5 }' | sed 's:, $:\n\n:' +print "connected users:\n$({ w | grep '' || print '<none>'} | sed 's:^:\t:')\n" +read "login?$(hostname)/tty7 x11 login: " + +case $login in + "" ) [ ] ;; + !* ) if [ -z "$(w)" ] ; then sudo -n "${login[2,-1]}" + else log "$login denied, users logged in!" ; fi ; [ ] ;; + */* ) xclient=$(find /etc/X11/Sessions -iname "*${login#*/}*" \ + -type f | sort | head -n 1) + [ -n "$xclient" ] || { log invalid session ; [ ] } + login=${login%/*} ;; + * ) xclient="~/.xinitrc" ;; +esac + +id "$login" 2>&1 >/dev/null | sed "s|^id:|$NAME:|" +id "$login" 2>/dev/null >/dev/null + +tty=$(ps h -eo ruser,tty,comm | grep "^$login " | awk '$3=="X" {print $2}') +[ "$tty" ] && { log switching to console $tty ; chvt "${tty#tty}" ; [ ] } + +dpy=0 ; while [ -e /tmp/.X11-unix/X$dpy ] ; do (( dpy += 1 )) done +su -l -c "export xclient=$xclient ; + [ -x \"\$xclient\" ] || xclient=/etc/X11/Sessions/$FALLBACK ; + /usr/sbin/daemonize -a -e ~/.xorg-stderr -o ~/.xorg-stdout -c ~ \ + /usr/bin/startx \$xclient -- :$dpy -retro" $login +[ ] diff --git a/x11-misc/trivdm/metadata.xml b/x11-misc/trivdm/metadata.xml index 02b909e..59acc2c 100644 --- a/x11-misc/trivdm/metadata.xml +++ b/x11-misc/trivdm/metadata.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> -<herd>no-herd</herd> <maintainer> <email>[email protected]</email> <name>Michael Weber</name> diff --git a/x11-misc/trivdm/trivdm-0_p20150709.ebuild b/x11-misc/trivdm/trivdm-0_p20150709.ebuild new file mode 100644 index 0000000..563e111 --- /dev/null +++ b/x11-misc/trivdm/trivdm-0_p20150709.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=5 + +inherit eutils readme.gentoo user + +DESCRIPTION="trivial display manager" +HOMEPAGE="http://xmw.de/tmp/trivdm" +SRC_URI="" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND="app-admin/sudo + app-misc/toilet + app-shells/zsh + sys-apps/daemonize + sys-apps/kbd" +DEPEND="" + +S=${WORKDIR} + +pkg_postinst() { + enewgroup ${PN} + enewuser ${PN} -1 /usr/bin/${PN} -1 ${PN} + + readme.gentoo_print_elog +} + +src_install() { + newbin "${FILESDIR}"/${P} ${PN} + + echo "CONFIG_PROTECT=\"/usr/bin/${PN}\"" > "${T}"/90${PN} || die + doenvd "${T}"/90${PN} + + echo "#${PN} ALL=(root) NOPASSWD: /sbin/reboot,/sbin/halt" \ + > "${T}"/${PN} || die + insopts -m0440 + insinto /etc/sudoers.d + doins "${T}"/${PN} + + readme.gentoo_create_doc +} + +DISABLE_AUTOFORMATTING=1 +DOC_CONTENTS="Your system needs 5 minor adjustments that +must not be made by Gentoo portage system: +1) enable xscreensaver->newlogin compartibility + ln -s ../../bin/${PN} /usr/local/bin/gdmflexiserver +2) tune w to display remote login sessions and daemonized X11 + ln -s ../../bin/${PN} /usr/local/bin/w +3) set a fancy font on framebuffer console on startup + ln -s ../../usr/bin/${PN} /etc/local.d/${PN}.start +4) grant chvt to everyone + chmod u+s /usr/bin/chvt +5) updated /etc/inittab (etc-update, dispatch-conf, ...) and reload + echo \"c7:2345:respawn:/usr/bin/openvt -c 7 -f -w /usr/bin/trivdm\" \ + > /etc/inittab + kill -HUP 1 +Install app-admin/sudo and review /etc/sudoers.d/${PN}"
