[X2go-Commits] x2goserver.git - master (branch) updated: 3.0.99.7-3-gaaf29c0

X2go dev team git-admin at x2go.org
Thu Oct 27 10:02:54 CEST 2011


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 at 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 at 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 at 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).




More information about the x2go-commits mailing list