The branch, build-main has been updated via be15f7fafb8204df30ef4afc81e6556d094410ba (commit) from 940adc9b5c6c51b920070bc007166789453da752 (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: debian/changelog | 3 ++ debian/x2gothinclient.config | 50 ++++++++++++++++++++++++ debian/x2gothinclient.init | 55 +++++++++++++------------- debian/x2gothinclient.postinst | 30 +++++++++++++++ debian/x2gothinclient.prerm | 81 +++++++++++++++++++++++++++++++++++++++ debian/x2gothinclient.templates | 20 ++++++++++ 6 files changed, 210 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 8f0c2c6..f5bb270 100644 --- a/debian/changelog +++ b/debian/changelog @@ -71,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 d08d131..56b817b 100644 --- a/debian/x2gothinclient.init +++ b/debian/x2gothinclient.init @@ -29,12 +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 @@ -51,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 @@ -95,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).