The branch, master has been updated via aaf29c0565aee2f6e46d25e33dfc53c05b674646 (commit) from e8d2037ab25e6cf0d137cbe99c1859ded58ddea0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit aaf29c0565aee2f6e46d25e33dfc53c05b674646 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Thu Oct 27 10:02:50 2011 +0200 Add Xsession.d processing to X2Go (as x2goserver-xsession add-on package). ----------------------------------------------------------------------- Summary of changes: Makefile | 6 + debian/changelog | 2 + debian/control | 27 +++++- x2goserver-xsession/Makefile | 95 ++++++++++++++++ .../VERSION.x2goserver-xsession | 0 x2goserver-xsession/doc/README.Xsession-x2go | 15 +++ x2goserver-xsession/etc/Xresources | 1 + x2goserver-xsession/etc/Xsession | 113 ++++++++++++++++++++ x2goserver-xsession/etc/Xsession.d | 1 + x2goserver-xsession/etc/Xsession.options | 1 + .../x2gofeature.d/x2goserver-xsession.features | 3 +- x2goserver/bin/x2gostartagent | 3 + 12 files changed, 265 insertions(+), 2 deletions(-) create mode 100755 x2goserver-xsession/Makefile copy x2goserver-compat/VERSION.x2goserver-compat => x2goserver-xsession/VERSION.x2goserver-xsession (100%) create mode 100644 x2goserver-xsession/doc/README.Xsession-x2go create mode 120000 x2goserver-xsession/etc/Xresources create mode 100755 x2goserver-xsession/etc/Xsession create mode 120000 x2goserver-xsession/etc/Xsession.d create mode 120000 x2goserver-xsession/etc/Xsession.options copy x2goserver-printing/share/x2gofeature.d/x2goserver-printing.features => x2goserver-xsession/share/x2gofeature.d/x2goserver-xsession.features (96%) The diff of changes is: diff --git a/Makefile b/Makefile index f3111d0..657dcfc 100755 --- a/Makefile +++ b/Makefile @@ -10,35 +10,41 @@ build_man2html: cd x2goserver-printing && make $@ cd x2goserver-compat && make $@ cd x2goserver-extensions && make $@ + cd x2goserver-xsession && make $@ clean: cd x2goserver && make $@ cd x2goserver-printing && make $@ cd x2goserver-compat && make $@ cd x2goserver-extensions && make $@ + cd x2goserver-xsession && make $@ build-arch: cd x2goserver && make $@ cd x2goserver-printing && make $@ cd x2goserver-compat && make $@ cd x2goserver-extensions && make $@ + cd x2goserver-xsession && make $@ build-indep: cd x2goserver && make $@ cd x2goserver-printing && make $@ cd x2goserver-compat && make $@ cd x2goserver-extensions && make $@ + cd x2goserver-xsession && make $@ install: cd x2goserver && make $@ cd x2goserver-printing && make $@ cd x2goserver-compat && make $@ cd x2goserver-extensions && make $@ + cd x2goserver-xsession && make $@ uninstall: cd x2goserver-extensions && make $@ cd x2goserver-compat && make $@ cd x2goserver-printing && make $@ cd x2goserver && make $@ + cd x2goserver-xsession && make $@ diff --git a/debian/changelog b/debian/changelog index 0a78ac4..179f5fa 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,8 @@ x2goserver (3.0.99.8-0~x2go1) UNRELEASED; urgency=low * New upstream version (3.0.99.8): - Fix feature list in x2goserver-extensions. + - Add Xsession.d processing to X2Go (as x2goserver-xsession add-on + package). -- Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Wed, 26 Oct 2011 17:37:10 +0200 diff --git a/debian/control b/debian/control index dc1d274..139ed5f 100644 --- a/debian/control +++ b/debian/control @@ -38,7 +38,9 @@ Recommends: xinit, x2goserver-extensions (= ${source:Version}) Suggests: - x2goserver-printing (= ${source:Version}), x2goserver-compat (= ${source:Version}) + x2goserver-printing (= ${source:Version}), + x2goserver-compat (= ${source:Version}), + x2goserver-xsession (= ${source:Version}) Breaks: x2goserver-one, x2goserver-home, @@ -139,3 +141,26 @@ Description: X2go server daemon scripts (extensions) if you want non-legacy X2go clients to be able to access your server without lack of features. +Package: x2goserver-xsession +Architecture: all +Depends: + ${misc:Depends}, + x2goserver (>= ${source:Version}), x2goserver (<< ${source:Version}.1~), + x11-common +Description: X2go server daemon scripts (Xsession runner) + X2go is a server based computing environment with + - session resuming + - low bandwith support + - LDAP support + - client side mass storage mounting support + - audio support + - authentication by smartcard and USB stick + . + This X2go server add-on enables Xsession script handling + when starting desktop sessions with X2go. + . + Amongst others the parsing of Xsession scripts will + enable desktop-profiles, ssh-agent startups, gpgagent + startups and many more Xsession related features on + X2go session login automagically. + diff --git a/x2goserver-xsession/Makefile b/x2goserver-xsession/Makefile new file mode 100755 index 0000000..ec4a063 --- /dev/null +++ b/x2goserver-xsession/Makefile @@ -0,0 +1,95 @@ +#!/usr/bin/make -f + +SRC_DIR=$(CURDIR) +SHELL=/bin/bash + +INSTALL_DIR=install -d -o root -g root -m 755 +INSTALL_FILE=install -o root -g root -m 644 +INSTALL_PROGRAM=install -o root -g root -m 755 + +RM_FILE=rm -f +RM_DIR=rmdir -p --ignore-fail-on-non-empty + +DESTDIR= +PREFIX=/usr/local +ETCDIR=/etc/x2go +#BINDIR=$(PREFIX)/bin +#SBINDIR=$(PREFIX)/sbin +#LIBDIR=$(PREFIX)/lib/x2go +MANDIR=$(PREFIX)/share/man +SHAREDIR=$(PREFIX)/share/x2go + +#BIN_SCRIPTS=$(shell cd bin && ls) +#SBIN_SCRIPTS=$(shell cd sbin && ls) +#LIB_FILES=$(shell cd lib && ls) +ETC_FILES=$(shell cd etc && ls) +FEATURE_SCRIPTS=$(shell cd share/x2gofeature.d && ls *.features) + +#man_pages = `cd man && find * -type f` + +#MAN2HTML_BIN = man2html +#MAN2HTML_SRC = man +#MAN2HTML_DEST = .build_man2html/html + +all: clean build + +build: build-indep + +build-indep: build_man2html + +build-arch: + +build_man2html: +# mkdir -p $(MAN2HTML_DEST) +# for man_page in $(man_pages); do mkdir -p `dirname $(MAN2HTML_DEST)/$$man_page`; done +# for man_page in $(man_pages); do $(MAN2HTML_BIN) -r $(MAN2HTML_SRC)/$$man_page > $(MAN2HTML_DEST)/$$man_page.html; done + +clean: clean_man2html + +clean_man2html: +# rm -rf `dirname $(MAN2HTML_DEST)` + +install: install_scripts install_config install_man install_version + +install_scripts: +# $(INSTALL_DIR) $(DESTDIR)$(BINDIR) +# $(INSTALL_DIR) $(DESTDIR)$(SBINDIR) + $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR) + $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/x2gofeature.d +# $(INSTALL_PROGRAM) bin/* $(DESTDIR)$(BINDIR)/ +# $(INSTALL_PROGRAM) sbin/* $(DESTDIR)$(SBINDIR)/ + $(INSTALL_PROGRAM) share/x2gofeature.d/*.features $(DESTDIR)$(SHAREDIR)/x2gofeature.d/ + +install_config: + $(INSTALL_DIR) $(DESTDIR)$(ETCDIR) + $(INSTALL_FILE) etc/* $(DESTDIR)$(ETCDIR)/ + +install_man: +# $(INSTALL_DIR) $(DESTDIR)$(MANDIR) +# $(INSTALL_DIR) $(DESTDIR)$(MANDIR)/man8 +# $(INSTALL_FILE) man/man8/*.8 $(DESTDIR)$(MANDIR)/man8 +# gzip -f $(DESTDIR)$(MANDIR)/man8/x2go*.8 + +install_version: + $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR) + $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/versions + $(INSTALL_FILE) VERSION.x2goserver-xsession $(DESTDIR)$(SHAREDIR)/versions/VERSION.x2goserver-xsession + +uninstall: uninstall_scripts uninstall_config uninstall_man uninstall_version + +uninstall_scripts: +# for file in $(BIN_SCRIPTS); do $(RM_FILE) $(DESTDIR)$(BINDIR)/$$file; done +# for file in $(SBIN_SCRIPTS); do $(RM_FILE) $(DESTDIR)$(SBINDIR)/$$file; done + for file in $(FEATURE_SCRIPTS); do $(RM_FILE) $(DESTDIR)$(SHAREDIR)/x2gofeature.d/$$file; done + +uninstall_config: + for file in $(ETC_FILES); do $(RM_FILE) $(DESTDIR)$(ETCDIR)/$$file; done + +uninstall_man: +# for file in $(BIN_SCRIPTS); do $(RM_FILE) $(DESTDIR)$(MANDIR)/man8/$$file.8.gz; done +# for file in $(SBIN_SCRIPTS); do $(RM_FILE) $(DESTDIR)$(MANDIR)/man8/$$file.8.gz; done +# $(RM_DIR) $(DESTDIR)$(MANDIR) || true + +uninstall_version: + $(RM_FILE) $(DESTDIR)$(SHAREDIR)/versions/VERSION.x2goserver-xsession + $(RM_DIR) $(DESTDIR)$(SHAREDIR)/versions || true diff --git a/x2goserver-compat/VERSION.x2goserver-compat b/x2goserver-xsession/VERSION.x2goserver-xsession similarity index 100% copy from x2goserver-compat/VERSION.x2goserver-compat copy to x2goserver-xsession/VERSION.x2goserver-xsession diff --git a/x2goserver-xsession/doc/README.Xsession-x2go b/x2goserver-xsession/doc/README.Xsession-x2go new file mode 100644 index 0000000..6324737 --- /dev/null +++ b/x2goserver-xsession/doc/README.Xsession-x2go @@ -0,0 +1,15 @@ +Xsession-x2go README +==================== + +With X2Go it is possible to use Xsession config files of your +local X11 system. + +By default most files and folders related to Xsession config +are symlinks to the corresponding file/folder in /etc/X11. + +If you want to customize your X2Go server's Xsession setup +copy the corresponding files from /etc/X11 to /etc/x2go and +adapt the setup to your needs. + +light+love, +Mike Gabriel, 20111027 diff --git a/x2goserver-xsession/etc/Xresources b/x2goserver-xsession/etc/Xresources new file mode 120000 index 0000000..484aa45 --- /dev/null +++ b/x2goserver-xsession/etc/Xresources @@ -0,0 +1 @@ +/etc/X11/Xresources \ No newline at end of file diff --git a/x2goserver-xsession/etc/Xsession b/x2goserver-xsession/etc/Xsession new file mode 100755 index 0000000..6a6ca58 --- /dev/null +++ b/x2goserver-xsession/etc/Xsession @@ -0,0 +1,113 @@ +#!/bin/sh +# +# /etc/x2go/Xsession +# +# X2go Xsession file -- used by x2goserver Xsession.d add-on. + +# This file has been derived from the global Xsession file in Debian squeeze + +set -e + +PROGNAME=XSession-x2go + +message () { + # pretty-print messages of arbitrary length; use xmessage if it + # is available and $DISPLAY is set + MESSAGE="$PROGNAME: $*" + echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2 + if [ -n "$DISPLAY" ] && which xmessage > /dev/null 2>&1; then + echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} | xmessage -center -file - + fi +} + +message_nonl () { + # pretty-print messages of arbitrary length (no trailing newline); use + # xmessage if it is available and $DISPLAY is set + MESSAGE="$PROGNAME: $*" + echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2; + if [ -n "$DISPLAY" ] && which xmessage > /dev/null 2>&1; then + echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} | xmessage -center -file - + fi +} + +errormsg () { + # exit script with error + message "$*" + exit 1 +} + +internal_errormsg () { + # exit script with error; essentially a "THIS SHOULD NEVER HAPPEN" message + # One big call to message() for the sake of xmessage; if we had two then + # the user would have dismissed the error we want reported before seeing the + # request to report it. + errormsg "$*" \ + "Please report the installed version of the \"x2goserver\"" \ + "package and the complete text of this error message to" \ + "<x2go-dev@lists.x2go.org>." +} + +# initialize variables for use by all session scripts + +OPTIONFILE=/etc/x2go/Xsession.options + +SYSRESOURCES=/etc/x2go/Xresources +USRRESOURCES=$HOME/.Xresources-x2go + +SYSSESSIONDIR=/etc/x2go/Xsession.d +USERXSESSION=$HOME/.xsession-x2go +USERXSESSIONRC=$HOME/.xsessionrc-x2go +ALTUSERXSESSION=$HOME/.Xsession-x2go +ERRFILE=$HOME/.xsession-x2go-errors + +# attempt to create an error file; abort if we cannot +if (umask 077 && touch "$ERRFILE") 2> /dev/null && [ -w "$ERRFILE" ] && + [ ! -L "$ERRFILE" ]; then + chmod 600 "$ERRFILE" +elif ERRFILE=$(tempfile 2> /dev/null); then + if ! ln -sf "$ERRFILE" "${TMPDIR:=/tmp}/xsession-x2go-$USER"; then + message "warning: unable to symlink \"$TMPDIR/xsession-x2go-$USER\" to" \ + "\"$ERRFILE\"; look for session log/errors in" \ + "\"$TMPDIR/xsession-x2go-$USER\"." + fi +else + errormsg "unable to create X session (X2Go) log/error file; aborting." +fi + +exec >>"$ERRFILE" 2>&1 + +echo "$PROGNAME: X session started for $LOGNAME at $(date)" + +# sanity check; is our session script directory present? +if [ ! -d "$SYSSESSIONDIR" ]; then + errormsg "no \"$SYSSESSIONDIR\" directory found; aborting." +fi + +# Attempt to create a file of non-zero length in /tmp; a full filesystem can +# cause mysterious X session failures. We do not use touch, :, or test -w +# because they won't actually create a file with contents. We also let standard +# error from tempfile and echo go to the error file to aid the user in +# determining what went wrong. +WRITE_TEST=$(tempfile) +if ! echo "*" >>"$WRITE_TEST"; then + message "warning: unable to write to ${WRITE_TEST%/*}; X session (X2Go) may" \ + "exit with an error" +fi +rm -f "$WRITE_TEST" + +# use run-parts to source every file in the session directory; we source +# instead of executing so that the variables and functions defined above +# are available to the scripts, and so that they can pass variables to each +# other +SESSIONFILES=$(run-parts --list $SYSSESSIONDIR) +if [ -n "$SESSIONFILES" ]; then + set +e + for SESSIONFILE in $SESSIONFILES; do + . $SESSIONFILE + done + set -e +fi + +exit 0 + +# vim:set ai et sts=2 sw=2 tw=80: diff --git a/x2goserver-xsession/etc/Xsession.d b/x2goserver-xsession/etc/Xsession.d new file mode 120000 index 0000000..f64317e --- /dev/null +++ b/x2goserver-xsession/etc/Xsession.d @@ -0,0 +1 @@ +/etc/X11/Xsession.d \ No newline at end of file diff --git a/x2goserver-xsession/etc/Xsession.options b/x2goserver-xsession/etc/Xsession.options new file mode 120000 index 0000000..72929e1 --- /dev/null +++ b/x2goserver-xsession/etc/Xsession.options @@ -0,0 +1 @@ +/etc/X11/Xsession.options \ No newline at end of file diff --git a/x2goserver-printing/share/x2gofeature.d/x2goserver-printing.features b/x2goserver-xsession/share/x2gofeature.d/x2goserver-xsession.features similarity index 96% copy from x2goserver-printing/share/x2gofeature.d/x2goserver-printing.features copy to x2goserver-xsession/share/x2gofeature.d/x2goserver-xsession.features index 7332656..9fb329e 100755 --- a/x2goserver-printing/share/x2gofeature.d/x2goserver-printing.features +++ b/x2goserver-xsession/share/x2gofeature.d/x2goserver-xsession.features @@ -29,7 +29,8 @@ X2GO_FEATURE=$1 # check for X2go server core features case "$X2GO_FEATURE" in - "X2GO_PRINTING") echo "ok"; exit 0;; + "X2GO_XSESSION") echo "ok"; exit 0;; *) exit -1;; + esac diff --git a/x2goserver/bin/x2gostartagent b/x2goserver/bin/x2gostartagent index 00c2a58..3d26a9e 100755 --- a/x2goserver/bin/x2gostartagent +++ b/x2goserver/bin/x2gostartagent @@ -238,6 +238,9 @@ X2GO_AGENT_RETVAL=$? test $X2GO_AGENT_RETVAL && { $X2GO_LIB_PATH/x2gosyslog "$0" "notice" "successfully started X2go agent session with ID $SESSION_NAME" + # initialize x2goserver-xsession (process /etc/x2go/Xsession) + x2gofeature X2GO_XSESSION &>/dev/null && [ "x$SESSION_TYPE" = "xD" ] && . /etc/x2go/Xsession + # run x2goserver-extensions for post-start x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME post-start hooks/post-receive -- x2goserver.git (X2go Server) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "x2goserver.git" (X2go Server).