[X2Go-Commits] x2gothinclient.git - wheezy-tce (branch) updated: 1.0.1.8-70-gbe15f7f

X2Go dev team git-admin at x2go.org
Fri Mar 29 16:34:49 CET 2013


The branch, wheezy-tce has been updated
       via  be15f7fafb8204df30ef4afc81e6556d094410ba (commit)
       via  940adc9b5c6c51b920070bc007166789453da752 (commit)
      from  719d5615fb68c4a7480364e429687d844578199f (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 be15f7fafb8204df30ef4afc81e6556d094410ba
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Fri Mar 29 16:34:07 2013 +0100

    Launch X2Go TCE via /etc/X11/default-display-manager. Add debconf template to handle default display manager selection. Inspired by Debian's gdm package.

commit 940adc9b5c6c51b920070bc007166789453da752
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Fri Mar 29 16:16:41 2013 +0100

    Export de_DE.UTF-8 and  to TCE daemon.

-----------------------------------------------------------------------

Summary of changes:
 debian/changelog                |    4 ++
 debian/x2gothinclient.config    |   50 ++++++++++++++++++++++++
 debian/x2gothinclient.init      |   61 +++++++++++++++--------------
 debian/x2gothinclient.postinst  |   30 +++++++++++++++
 debian/x2gothinclient.prerm     |   81 +++++++++++++++++++++++++++++++++++++++
 debian/x2gothinclient.templates |   20 ++++++++++
 6 files changed, 217 insertions(+), 29 deletions(-)
 create mode 100644 debian/x2gothinclient.config
 create mode 100755 debian/x2gothinclient.prerm
 create mode 100644 debian/x2gothinclient.templates

The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index 1771cdd..f5bb270 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -53,6 +53,7 @@ x2gothinclient (1.0.99.1-0~x2go1) UNRELEASED; urgency=low
       /etc/fstab template.
     - x2gothinclient_update: make sure config target folders exist.
     - x2gothinclient_create: syntax fix, spotted by Thomas Güttler (Fixes: #95).
+    - Export $LANG and $LANGUAGE to TCE daemon.
   * /debian/control:
     + Maintainer change in package: X2Go Developers <x2go-dev at lists.berlios.de>.
     + Priority: optional.
@@ -70,6 +71,9 @@ x2gothinclient (1.0.99.1-0~x2go1) UNRELEASED; urgency=low
       installed into package.
   * /debian/x2gothinclient.init:
     + Update pointer to X2Go TCE documentation on http://wiki.x2go.org.
+  * Launch X2Go TCE via /etc/X11/default-display-manager. Add debconf template
+    to handle default display manager selection. Inspired by Debian's gdm
+    package.
 
   [ Oleksandr Shneyder ]
   * New upstream version (1.0.99.1):
diff --git a/debian/x2gothinclient.config b/debian/x2gothinclient.config
new file mode 100644
index 0000000..ac2bcc9
--- /dev/null
+++ b/debian/x2gothinclient.config
@@ -0,0 +1,50 @@
+#!/bin/sh
+# x2gothinclient package configuration script
+
+set -e
+
+# source debconf library
+. /usr/share/debconf/confmodule
+
+DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager
+
+OLD_DEFAULT=
+db_metaget shared/default-x-display-manager owners
+OWNERS="$RET"
+db_metaget shared/default-x-display-manager choices
+CHOICES="$RET"
+
+if [ "$OWNERS" != "$CHOICES" ]; then
+  db_subst shared/default-x-display-manager choices $OWNERS
+  db_fset shared/default-x-display-manager seen false
+fi
+
+if [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" ]; then
+  OLD_DAEMON="$(grep -v '^[[:space:]]*#' \
+                            "$DEFAULT_DISPLAY_MANAGER_FILE" |
+                            head -n 1)"
+  OLD_DEFAULT="$(basename $OLD_DAEMON 2>/dev/null || true)"
+  if [ -n "$OLD_DEFAULT" ]; then
+    db_set shared/default-x-display-manager "$OLD_DEFAULT"
+  fi
+else
+  if db_get shared/default-x-display-manager; then
+    OLD_DEFAULT="$RET"
+  fi
+fi
+
+db_input high shared/default-x-display-manager || true
+db_go
+
+# using this display manager?
+db_get shared/default-x-display-manager
+CURRENT_DEFAULT="$RET"
+
+# remove the default display manager file if we're going to change it
+if [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" ]; then
+  if [ "$OLD_DEFAULT" != "$CURRENT_DEFAULT" ]; then
+    mv $DEFAULT_DISPLAY_MANAGER_FILE $DEFAULT_DISPLAY_MANAGER_FILE.dpkg-tmp
+  fi
+fi
+
+exit 0
diff --git a/debian/x2gothinclient.init b/debian/x2gothinclient.init
index 18d4181..56b817b 100644
--- a/debian/x2gothinclient.init
+++ b/debian/x2gothinclient.init
@@ -29,6 +29,16 @@
 # Short-Description: Start and stop the x2go thinclient daemon
 ### END INIT INFO
 
+set -e
+
+# use system's locale settings for the X2Go Client in TCE mode
+if [ -r /etc/default/locale ]; then
+	. /etc/default/locale
+	export LANG LANGUAGE
+fi
+
+. /lib/lsb/init-functions
+
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 export HOSTNAME
 DAEMON=/usr/sbin/x2gothinclientd
@@ -45,42 +55,36 @@ fi
 # pre-init X2Go Thin Client through init script...
 test -x /etc/x2go/x2gothinclient_init && . /etc/x2go/x2gothinclient_init
 
-set -e
+# To start x2gothinclient even if it is not the default display manager, change
+# HEED_DEFAULT_DISPLAY_MANAGER to "false."
+HEED_DEFAULT_DISPLAY_MANAGER=${HEED_DEFAULT_DISPLAY_MANAGER:-true}
+DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager
 
 case "$1" in
   start)
-	echo -n "Starting $DESC: "
-	start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
-		--exec $DAEMON -- $DAEMON_OPTS
-	echo "$NAME."
+	CONFIGURED_DAEMON="$(basename \"$(cat $DEFAULT_DISPLAY_MANAGER_FILE 2> /dev/null)\")"
+	if grep -wqs text /proc/cmdline; then
+		log_warning_msg "Not starting GNOME Display Manager (gdm); found 'text' in kernel commandline."
+	elif [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" ] && \
+	    [ "$HEED_DEFAULT_DISPLAY_MANAGER" = "true" ] && \
+	    [ "$CONFIGURED_DAEMON" != x2gothinclientd ] ; then
+		log_action_msg "Not starting X2Go Client in TCE mode; it is not configured as default display manager"
+	else
+		log_daemon_msg "Starting $DESC" "x2gothinclientd"
+		start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
+		log_end_msg $?
+	fi
 	;;
   stop)
-	echo -n "Stopping $DESC: "
-	start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid && echo "$NAME." || echo "not running"
+	if [ -e /var/run/$NAME.pid ]; then
+		log_daemon_msg "Stopping $DESC" "x2gothinclientd"
+		start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid && echo "$NAME." || echo "not running"
+		log_end_msg $?
+	fi
 	;;
-  #reload)
-	#
-	#	If the daemon can reload its config files on the fly
-	#	for example by sending it SIGHUP, do it here.
-	#
-	#	If the daemon responds to changes in its config file
-	#	directly anyway, make this a do-nothing entry.
-	#
-	# echo "Reloading $DESC configuration files."
-	# start-stop-daemon --stop --signal 1 --quiet --pidfile \
-	#	/var/run/$NAME.pid --exec $DAEMON
-  #;;
   force-reload)
-	#
-	#	If the "reload" option is implemented, move the "force-reload"
-	#	option to the "reload" entry above. If not, "force-reload" is
-	#	just the same as "restart" except that it does nothing if the
-	#   daemon isn't already running.
 	# check wether $DAEMON is running. If so, restart
-	start-stop-daemon --stop --test --quiet --pidfile \
-		/var/run/$NAME.pid  \
-	&& $0 restart \
-	|| exit 0
+	start-stop-daemon --stop --test --quiet --pidfile /var/run/$NAME.pid && $0 restart || exit 0
 	;;
   restart)
 	$0 stop
@@ -89,7 +93,6 @@ case "$1" in
 	;;
   *)
 	N=/etc/init.d/$NAME
-	# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
 	echo "Usage: $N {start|stop|restart|force-reload}" >&2
 	exit 1
 	;;
diff --git a/debian/x2gothinclient.postinst b/debian/x2gothinclient.postinst
index bc7f005..be096ce 100755
--- a/debian/x2gothinclient.postinst
+++ b/debian/x2gothinclient.postinst
@@ -5,6 +5,9 @@
 
 set -e
 
+# source debconf's configuration module
+. /usr/share/debconf/confmodule
+
 # summary of how this script can be called:
 #        * <postinst> `configure' <most-recently-configured-version>
 #        * <old-postinst> `abort-upgrade' <new version>
@@ -17,6 +20,33 @@ set -e
 # for details, see http://www.debian.org/doc/debian-policy/ or
 # the debian-policy package
 
+THIS_PACKAGE=x2gothinclient
+DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager
+
+# debconf is not a registry, so we only fiddle with the default file if it
+# does not exist
+if [ ! -e $DEFAULT_DISPLAY_MANAGER_FILE ]; then
+	if db_get shared/default-x-display-manager; then
+		# workaround debconf passthru bug (#379198)
+		if [ -z "$RET" ]; then
+			$RET="$THIS_PACKAGE"
+		fi
+		if [ "$THIS_PACKAGE" != "$RET" ]; then
+			echo "Please be sure to run \"dpkg --configure $RET\"."
+		fi
+		echo "/usr/sbin/x2gothinclientd" > $DEFAULT_DISPLAY_MANAGER_FILE
+	fi
+fi
+
+# remove the displaced old default display manager file if it exists
+if [ -e "$DEFAULT_DISPLAY_MANAGER_FILE.dpkg-tmp" ]; then
+	rm "$DEFAULT_DISPLAY_MANAGER_FILE.dpkg-tmp"
+fi
+
+# debconf hangs if gdm gets started below without this
+db_stop || true
+
+
 case "$1" in
 	configure)
 
diff --git a/debian/x2gothinclient.prerm b/debian/x2gothinclient.prerm
new file mode 100755
index 0000000..92edd7a
--- /dev/null
+++ b/debian/x2gothinclient.prerm
@@ -0,0 +1,81 @@
+#! /bin/sh
+
+# prerm script for x2gothinclient
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# source debconf's configuration module
+. /usr/share/debconf/confmodule
+
+# summary of how this script can be called:
+#        * <prerm> `remove'
+#        * <old-prerm> `upgrade' <new-version>
+#        * <new-prerm> `failed-upgrade' <old-version>
+#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-prerm> `deconfigure' `in-favour'
+#        <package-being-installed> <version> `removing'
+#        <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+THIS_PACKAGE=x2gothinclient
+DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager
+
+if [ "$1" = "remove" -o "$1" = "deconfigure" ]; then
+
+	# disown this question
+	db_unregister shared/default-x-display-manager || true
+
+	# does the question still exist?
+	if db_get shared/default-x-display-manager; then
+		db_metaget shared/default-x-display-manager owners
+		db_subst shared/default-x-display-manager choices "$RET"
+		db_get shared/default-x-display-manager
+		# are we removing the currently selected display manager?
+		if [ "$THIS_PACKAGE" = "$RET" ]; then
+			if [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" ]; then
+				if [ "$(cat $DEFAULT_DISPLAY_MANAGER_FILE)" = "/usr/sbin/x2gothinclientd" ]; then
+					rm "$DEFAULT_DISPLAY_MANAGER_FILE"
+				fi
+			fi
+
+			# ask the user to choose a new default
+			db_fset shared/default-x-display-manager seen false
+			db_input critical shared/default-x-display-manager || true
+			db_go
+
+			# if the display manager file doesn't exist, write it with the path
+			# to the new default display manager
+			if [ ! -e $DEFAULT_DISPLAY_MANAGER_FILE ]; then
+				db_get shared/default-x-display-manager
+				echo "Please be sure to run \"dpkg-reconfigure $RET\"."
+				db_get "$RET"/daemon_name
+				echo "$RET" > "$DEFAULT_DISPLAY_MANAGER_FILE"
+			fi
+		fi
+	fi
+fi
+
+
+case "$1" in
+	remove)
+		if [ -x /etc/init.d/x2gothinclient ]; then
+			invoke-rc.d x2gothinclient stop
+		fi
+		;;
+	deconfigure|upgrade|failed-upgrade)
+		:
+		;;
+	*) echo "$0: didn't understand being called with \`$1'" 1>&2
+		exit 1
+		;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/x2gothinclient.templates b/debian/x2gothinclient.templates
new file mode 100644
index 0000000..7a99ad9
--- /dev/null
+++ b/debian/x2gothinclient.templates
@@ -0,0 +1,20 @@
+Template: shared/default-x-display-manager
+Type: select
+Choices: ${choices}
+Description: Default display manager:
+ On X2Go thin clients X2Go Client is sort of used as a display manager. For
+ this, X2Go Client gets started in TCE mode. The TCE acronym stands for thin
+ client environment. In TCE mode, X2Go Client manages the default display of the
+ X Window System.
+ .
+ Generally, a display manager is a program that provides graphical login
+ capabilities for the X Window System. Other display managers for example
+ are GDM, KDM, etc. Login is--in most cases--granted to the local system.
+ .
+ However, X2Go Client in TCE mode does appear like a display manager,
+ but it will log you onto pre-defined X2Go sessions on remote servers.
+ .
+ As you are about to install X2Go Client in TCE mode on this machine
+ and as you already have other display managers installed on this machine,
+ please explicitly select which display manager is supposed to be the default
+ for your system.


hooks/post-receive
-- 
x2gothinclient.git (X2Go Thin Client Environment)

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 "x2gothinclient.git" (X2Go Thin Client Environment).




More information about the x2go-commits mailing list