[X2go-Commits] x2goserver.git - build-main (branch) updated: 3.0.99.7-17-gdf472e9

X2go dev team git-admin at x2go.org
Sun Nov 20 18:55:22 CET 2011


The branch, build-main has been updated
       via  df472e95f6b39498d50db8fff849bd93beff05c1 (commit)
       via  d008b49704c62448ca12ecf7f73f071393951834 (commit)
       via  ac20aac62ee6ff4361b08308baef746b32ee9b8e (commit)
       via  f73cf4bc7dc508af1e771ac913389f6a6a5f2914 (commit)
       via  e4b3509fafdfe32784216183f7c89badf5aa25dc (commit)
       via  08e735f08cde6ce6b86386ab6ddf54dbe47b8df3 (commit)
       via  4404c69ef1d3be6908f128f8f291fc3309e83e37 (commit)
       via  43fef4c666441f126759223f0fe612539a580ca8 (commit)
       via  95ec74e42d54ed5747fca18c3753f556e5249b37 (commit)
       via  4fc8a771b56c267e489a8a7faa4089864149ac43 (commit)
       via  8580ba4b53602556e9e5b96bd6e87e2945b5be2f (commit)
       via  a5e451560ad1d70ce2cd26333fc585e2830ccb15 (commit)
       via  606b4ffa50bab0425db81bd2e1a55d9c8585c040 (commit)
       via  e7d3f6b1b26b4c956c76a716c200093b228f6962 (commit)
       via  aaf29c0565aee2f6e46d25e33dfc53c05b674646 (commit)
       via  e8d2037ab25e6cf0d137cbe99c1859ded58ddea0 (commit)
       via  fb44b9ef4c59e138777562ebc8bfe831a877cf4e (commit)
      from  1c87d105f5607c6980219cd005de1bd1fed584a9 (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 -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 Makefile                                           |    6 +
 debian/changelog                                   |   17 +++
 debian/control                                     |   29 +++++-
 debian/x2goserver-printing.postinst                |    7 +-
 debian/x2goserver-printing.postrm                  |    2 +
 ...er-extensions.dirs => x2goserver-xsession.dirs} |    2 +-
 debian/x2goserver-xsession.docs                    |    1 +
 debian/x2goserver-xsession.install                 |    3 +
 debian/x2goserver.postrm                           |    2 +
 x2goserver-compat/VERSION.x2goserver-compat        |    2 +-
 .../VERSION.x2goserver-extensions                  |    2 +-
 .../x2gofeature.d/x2goserver-extensions.features   |    1 -
 x2goserver-printing/VERSION.x2goserver-printing    |    2 +-
 x2goserver-xsession/Makefile                       |   95 +++++++++++++++
 x2goserver-xsession/VERSION.x2goserver-xsession    |    1 +
 x2goserver-xsession/doc/README.Xsession-x2go       |   15 +++
 x2goserver-xsession/etc/Xresources                 |    1 +
 x2goserver-xsession/etc/Xsession                   |  121 ++++++++++++++++++++
 x2goserver-xsession/etc/Xsession.d                 |    1 +
 x2goserver-xsession/etc/Xsession.options           |    1 +
 .../x2gofeature.d/x2goserver-xsession.features     |    3 +-
 x2goserver/VERSION.x2goserver                      |    2 +-
 x2goserver/bin/x2goresume-session                  |    8 +-
 x2goserver/bin/x2goruncommand                      |   18 ++-
 x2goserver/bin/x2gostartagent                      |    6 +-
 x2goserver/bin/x2gosuspend-session                 |    8 +-
 x2goserver/bin/x2goterminate-session               |    8 +-
 27 files changed, 333 insertions(+), 31 deletions(-)
 copy debian/{x2goserver-extensions.dirs => x2goserver-xsession.dirs} (81%)
 create mode 100644 debian/x2goserver-xsession.docs
 create mode 100644 debian/x2goserver-xsession.install
 create mode 100755 x2goserver-xsession/Makefile
 create mode 100644 x2goserver-xsession/VERSION.x2goserver-xsession
 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 2f4e1f7..d4926ac 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,20 @@
+x2goserver (3.0.99.8-0~x2go1) unstable; 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).
+    - Ignore failures of x2gofeature calls, fixes x2goserver being
+      installed without x2goserver-extensions.
+    - Set X2Go log level to info when running Xsession parts.
+  * Make sure that package scripts (postinst, postrm, etc.) exit with
+    exit code 0 at the end of the script.
+  * Fix non-local printing with X2Go: x2goprint user on X2Go server host
+    needs a shell to accept incoming print jobs from the central CUPS
+    server(s).
+
+ -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de>  Sun, 20 Nov 2011 18:54:26 +0100
+
 x2goserver (3.0.99.7-0~x2go1) unstable; urgency=low
 
   * New upstream version (3.0.99.7):
diff --git a/debian/control b/debian/control
index dc1d274..8be5cdc 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,
@@ -77,7 +79,7 @@ Replaces:
  x2goprint
 Suggests:
  cups-x2go
-Description: X2go server daemon scripts (extensions)
+Description: X2go server daemon scripts (printing)
  X2go is a server based computing environment with
     - session resuming
     - low bandwith support
@@ -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/debian/x2goserver-printing.postinst b/debian/x2goserver-printing.postinst
index 00aa2b4..8ad8f80 100755
--- a/debian/x2goserver-printing.postinst
+++ b/debian/x2goserver-printing.postinst
@@ -35,12 +35,15 @@ case "$1" in
 			echo "Creating x2goprint user." >&2
 			adduser --system \
 			        --disabled-password --disabled-login \
-			        --shell /bin/false --group --home /var/spool/x2goprint x2goprint
+			        --shell /bin/sh --group --home /var/spool/x2goprint x2goprint
 		else
 			echo "User x2goprint already exists." >&2
 			# make sure all settings are appropriate
 			if [ "`id -gn x2goprint`" != "x2goprint" ]; then
-				usermod --gid x2goprint# x2goprint
+				usermod --gid x2goprint x2goprint
+			fi
+			if getent passwd x2goprint | egrep -v ".*:x:.*:.*:.*:.*:/bin/sh" 1>/dev/null 2>/dev/null; then
+				usermod --shell /bin/sh x2goprint
 			fi
 			if [ "`ls -1d ~x2goprint`" != "/var/spool/x2goprint" ]; then
 				test -d /var/spool/x2goprint && \
diff --git a/debian/x2goserver-printing.postrm b/debian/x2goserver-printing.postrm
index 63cf12d..16b0f1e 100755
--- a/debian/x2goserver-printing.postrm
+++ b/debian/x2goserver-printing.postrm
@@ -33,3 +33,5 @@ esac
 # generated by other debhelper scripts.
 
 #DEBHELPER#
+
+exit 0
\ No newline at end of file
diff --git a/debian/x2goserver-extensions.dirs b/debian/x2goserver-xsession.dirs
similarity index 81%
copy from debian/x2goserver-extensions.dirs
copy to debian/x2goserver-xsession.dirs
index 45adc59..e1541a6 100644
--- a/debian/x2goserver-extensions.dirs
+++ b/debian/x2goserver-xsession.dirs
@@ -1,3 +1,3 @@
-usr/bin
+etc/x2go
 usr/share/x2go
 usr/share/x2go/versions
diff --git a/debian/x2goserver-xsession.docs b/debian/x2goserver-xsession.docs
new file mode 100644
index 0000000..093650e
--- /dev/null
+++ b/debian/x2goserver-xsession.docs
@@ -0,0 +1 @@
+x2goserver-xsession/doc
\ No newline at end of file
diff --git a/debian/x2goserver-xsession.install b/debian/x2goserver-xsession.install
new file mode 100644
index 0000000..31531bb
--- /dev/null
+++ b/debian/x2goserver-xsession.install
@@ -0,0 +1,3 @@
+x2goserver-xsession/etc/*                               /etc/x2go/
+x2goserver-xsession/VERSION.x2goserver-xsession         /usr/share/x2go/versions/
+x2goserver-xsession/share/x2gofeature.d/*               /usr/share/x2go/x2gofeature.d/
diff --git a/debian/x2goserver.postrm b/debian/x2goserver.postrm
index eada048..ec6b579 100755
--- a/debian/x2goserver.postrm
+++ b/debian/x2goserver.postrm
@@ -40,3 +40,5 @@ esac
 # generated by other debhelper scripts.
 
 #DEBHELPER#
+
+exit 0
\ No newline at end of file
diff --git a/x2goserver-compat/VERSION.x2goserver-compat b/x2goserver-compat/VERSION.x2goserver-compat
index c89e6f8..d720f99 100644
--- a/x2goserver-compat/VERSION.x2goserver-compat
+++ b/x2goserver-compat/VERSION.x2goserver-compat
@@ -1 +1 @@
-3.0.99.7
\ No newline at end of file
+3.0.99.8
\ No newline at end of file
diff --git a/x2goserver-extensions/VERSION.x2goserver-extensions b/x2goserver-extensions/VERSION.x2goserver-extensions
index c89e6f8..d720f99 100644
--- a/x2goserver-extensions/VERSION.x2goserver-extensions
+++ b/x2goserver-extensions/VERSION.x2goserver-extensions
@@ -1 +1 @@
-3.0.99.7
\ No newline at end of file
+3.0.99.8
\ No newline at end of file
diff --git a/x2goserver-extensions/share/x2gofeature.d/x2goserver-extensions.features b/x2goserver-extensions/share/x2gofeature.d/x2goserver-extensions.features
index eb4e740..7e50dd7 100755
--- a/x2goserver-extensions/share/x2gofeature.d/x2goserver-extensions.features
+++ b/x2goserver-extensions/share/x2gofeature.d/x2goserver-extensions.features
@@ -30,7 +30,6 @@ X2GO_FEATURE=$1
 case "$X2GO_FEATURE" in
 
     "X2GO_SET_KEYBOARD") echo "ok"; exit 0;;
-    "X2GO_LIST_MOUNTS") echo "ok"; exit 0;;
     "X2GO_RUN_EXTENSIONS") echo "ok"; exit 0;;
     *) exit -1;;
 
diff --git a/x2goserver-printing/VERSION.x2goserver-printing b/x2goserver-printing/VERSION.x2goserver-printing
index c89e6f8..d720f99 100644
--- a/x2goserver-printing/VERSION.x2goserver-printing
+++ b/x2goserver-printing/VERSION.x2goserver-printing
@@ -1 +1 @@
-3.0.99.7
\ No newline at end of file
+3.0.99.8
\ No newline at end of file
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-xsession/VERSION.x2goserver-xsession b/x2goserver-xsession/VERSION.x2goserver-xsession
new file mode 100644
index 0000000..d720f99
--- /dev/null
+++ b/x2goserver-xsession/VERSION.x2goserver-xsession
@@ -0,0 +1 @@
+3.0.99.8
\ No newline at end of file
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..bda13bd
--- /dev/null
+++ b/x2goserver-xsession/etc/Xsession
@@ -0,0 +1,121 @@
+#!/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)
+SYSSESSIONDIR=/etc/x2go/Xsession.d
+
+SESSIONFILES=$(run-parts --list $SYSSESSIONDIR)
+
+### source Xsession files
+if [ -n "$SESSIONFILES" ]; then
+
+    set +e
+    for SESSIONFILE in $SESSIONFILES; do
+        /usr/lib/x2go/x2gosyslog "$0" "info" "executing $SESSIONFILE"
+        . $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/VERSION.x2goserver b/x2goserver/VERSION.x2goserver
index c89e6f8..d720f99 100644
--- a/x2goserver/VERSION.x2goserver
+++ b/x2goserver/VERSION.x2goserver
@@ -1 +1 @@
-3.0.99.7
\ No newline at end of file
+3.0.99.8
\ No newline at end of file
diff --git a/x2goserver/bin/x2goresume-session b/x2goserver/bin/x2goresume-session
index c4f9158..16a7f0c 100755
--- a/x2goserver/bin/x2goresume-session
+++ b/x2goserver/bin/x2goresume-session
@@ -84,16 +84,16 @@ echo "$NEWOPTIONS" >${SESSION_DIR}/options
 $X2GO_LIB_PATH/x2goresume  $X2GO_CLIENT $SESSION_NAME  > /dev/null
 
 # run x2goserver-extensions for pre-resume
-x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME pre-resume
+x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME pre-resume || true
 
 kill -HUP $X2GO_AGENT_PID &>/dev/null && {
 	$X2GO_LIB_PATH/x2gosyslog "$0" "notice" "client $X2GO_CLIENT has successfully resumed session with ID $SESSION_NAME"
 
 	# resume x2godesktopsharing, if it has been in use before the session got suspended
-	x2gofeature X2GO_DESKTOPSHARING &>/dev/null && x2goresume-desktopsharing $SESSION_NAME
+	x2gofeature X2GO_DESKTOPSHARING &>/dev/null && x2goresume-desktopsharing $SESSION_NAME || true
 
 	# run x2goserver-extensions for post-resume
-	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME post-resume
+	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME post-resume || true
 
 } || {
 	err_msg="ERROR: failed to resume session with ID $SESSION_NAME"
@@ -105,7 +105,7 @@ kill -HUP $X2GO_AGENT_PID &>/dev/null && {
 	$X2GO_LIB_PATH/x2gochangestatus 'F' $SESSION_NAME  > /dev/null
 
 	# run x2goserver-extensions for fail-resume
-	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME fail-resume
+	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME fail-resume || true
 
 }
 
diff --git a/x2goserver/bin/x2goruncommand b/x2goserver/bin/x2goruncommand
index 6ac93c1..d3f0d98 100755
--- a/x2goserver/bin/x2goruncommand
+++ b/x2goserver/bin/x2goruncommand
@@ -110,12 +110,20 @@ then
 fi
 
 # run x2goserver-extensions for pre-runcommand
-x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME pre-runcommand
+x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME pre-runcommand || true
 
 sucessful_run=false
 if [ "$EXEC" != "" ] && [ -x $EXEC ]; then
 	$X2GO_LIB_PATH/x2gosyslog "$0" "debug" "running command $EXEC"
-	$cmd
+
+	x2gofeature X2GO_XSESSION &>/dev/null && [ "x$X2GO_SESS_TYPE" = "xD" ] && {
+		STARTUP=$cmd
+		$X2GO_LIB_PATH/x2gosyslog "$0" "notice" "launching session with Xsession-x2go mechanism, using STARTUP=\"$STARTUP\""
+		STARTUP="$STARTUP" /etc/x2go/Xsession
+	} || {
+		$cmd
+	}
+
 	#### some applications can quit immediately, we will wait here as long as x2goagent exists
 	if [  "$X2GO_SESS_TYPE" == "R" ] && [ "$IMEXIT" == "false" ]; then
 		$X2GO_LIB_PATH/x2gosyslog "$0" "debug" "command $EXEC forked to background, waiting for agent to finish"
@@ -127,19 +135,19 @@ if [ "$EXEC" != "" ] && [ -x $EXEC ]; then
 	successful_run=true
 
 	# run x2goserver-extensions for post-runcommand
-	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME post-runcommand
+	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME post-runcommand || true
 
 else
 	$X2GO_LIB_PATH/x2gosyslog "$0" "err" "ERROR: command $EXEC failed to execute"
 	echo "X2GORUNCOMMAND ERR NOEXEC:$cmd" > $MESSAGE_FILE
 
 	# run x2goserver-extensions for fail-runcommand
-	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME fail-runcommand
+	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME fail-runcommand || true
 
 fi
 
 # stop x2godesktopsharing process gracefully...
-x2gofeature X2GO_DESKTOPSHARING >/dev/null && x2godesktopsharing-terminate $X2GO_SESSION
+x2gofeature X2GO_DESKTOPSHARING >/dev/null && x2godesktopsharing-terminate $X2GO_SESSION || true
 
 kill -TERM  $X2GO_AGENT_PID
 $X2GO_LIB_PATH/x2gochangestatus 'F' $X2GO_SESSION  > /dev/null
diff --git a/x2goserver/bin/x2gostartagent b/x2goserver/bin/x2gostartagent
index 00c2a58..32d16b8 100755
--- a/x2goserver/bin/x2gostartagent
+++ b/x2goserver/bin/x2gostartagent
@@ -225,7 +225,7 @@ else
 fi
 
 # run x2goserver-extensions for pre-start
-x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME pre-start
+x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME pre-start || true
 
 if  [ "$X2GO_STYPE" == "S" ]; then
 	LD_LIBRARY_PATH=$X2GO_LIB x2goagent $X2GODPIOPTION_  -$SESSION_TYPE -auth ~/.Xauthority -S -shadow $SHADOW_DESKTOP -shadowmode $SHADOW_MODE -geometry ${X2GO_GEOMETRY} -name "X2GO-${SESSION_NAME}"  ${NX_AGENT} 2>${SESSION_DIR}/session.log &
@@ -239,13 +239,13 @@ test $X2GO_AGENT_RETVAL && {
 	$X2GO_LIB_PATH/x2gosyslog "$0" "notice" "successfully started X2go agent session with ID $SESSION_NAME"
 
 	# run x2goserver-extensions for post-start
-	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME post-start
+	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME post-start || true
 
 } || {
 	$X2GO_LIB_PATH/x2gosyslog "$0" "err" "ERROR: failed to start X2go agent session with ID $SESSION_NAME"
 
 	# run x2goserver-extensions for fail-start
-	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME fail-start
+	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME fail-start || true
 
 }
 
diff --git a/x2goserver/bin/x2gosuspend-session b/x2goserver/bin/x2gosuspend-session
index c2d627d..ffc19f9 100755
--- a/x2goserver/bin/x2gosuspend-session
+++ b/x2goserver/bin/x2gosuspend-session
@@ -39,16 +39,16 @@ killall -HUP knotify &>/dev/null
 $X2GO_LIB_PATH/x2gochangestatus 'S' $SESSION_NAME  > /dev/null
 
 # terminate x2godesktopsharing instance and remember that it was running...
-x2gofeature X2GO_DESKTOPSHARING &>/dev/null && x2gosuspend-desktopsharing $SESSION_NAME
+x2gofeature X2GO_DESKTOPSHARING &>/dev/null && x2gosuspend-desktopsharing $SESSION_NAME || true
 
 # run x2goserver-extensions for pre-suspend
-x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME pre-suspend
+x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME pre-suspend || true
 
 kill -HUP $X2GO_AGENT_PID &>/dev/null && {
 	$X2GO_LIB_PATH/x2gosyslog "$0" "notice" "session with ID $SESSION_NAME has been suspended successfully"
 
 	# run x2goserver-extensions for post-suspend
-	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME post-suspend
+	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME post-suspend || true
 
 } || {
 	err_msg="ERROR: failed to suspend session with ID $SESSION_NAME"
@@ -60,7 +60,7 @@ kill -HUP $X2GO_AGENT_PID &>/dev/null && {
 	$X2GO_LIB_PATH/x2gochangestatus 'F' $SESSION_NAME  > /dev/null
 
 	# run x2goserver-extensions for fail-suspend
-	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME fail-suspend
+	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME fail-suspend || true
 
 }
 
diff --git a/x2goserver/bin/x2goterminate-session b/x2goserver/bin/x2goterminate-session
index 66fd118..d07b9c0 100755
--- a/x2goserver/bin/x2goterminate-session
+++ b/x2goserver/bin/x2goterminate-session
@@ -36,16 +36,16 @@ X2GO_AGENT_PID=`echo "$X2GO_AGENT_PID"| awk {'print $1'}`
 $X2GO_LIB_PATH/x2gochangestatus 'F' $SESSION_NAME  > /dev/null
 
 # stop x2godesktopsharing process gracefully...
-x2gofeature X2GO_DESKTOPSHARING &>/dev/null && x2goterminate-desktopsharing $SESSION_NAME
+x2gofeature X2GO_DESKTOPSHARING &>/dev/null && x2goterminate-desktopsharing $SESSION_NAME || true
 
 # run x2goserver-extensions for pre-terminate
-x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME pre-terminate
+x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME pre-terminate || true
 
 kill -TERM $X2GO_AGENT_PID &>/dev/null && {
 	$X2GO_LIB_PATH/x2gosyslog "$0" "notice" "session with ID $SESSION_NAME has been terminated successfully"
 
 	# run x2goserver-extensions for post-terminate
-	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME post-terminate
+	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME post-terminate || true
 
 } || {
 	err_msg="ERROR: failed to terminate session with ID $SESSION_NAME"
@@ -56,7 +56,7 @@ kill -TERM $X2GO_AGENT_PID &>/dev/null && {
 	$X2GO_LIB_PATH/x2gosyslog "$0" "err" "$err_msg"
 
 	# run x2goserver-extensions for fail-terminate
-	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME fail-terminate
+	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME fail-terminate || true
 
 }
 


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