[X2go-Commits] x2goserver.git - master (branch) updated: 3.1.1.0-18-g3fa5425

X2Go dev team git-admin at x2go.org
Wed May 23 13:45:32 CEST 2012


The branch, master has been updated
       via  3fa5425554f3c40e1d4a2717f575c406f471c1a3 (commit)
      from  1af7be02935673fbe6afe3f4ba75d3ae65f6f62e (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 3fa5425554f3c40e1d4a2717f575c406f471c1a3
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed May 23 13:39:03 2012 +0200

    Add support for client-side keyboard detection. Moved script x2gosetkeyboard from x2goserver-pyhoca into x2goserver package.

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

Summary of changes:
 debian/changelog                                   |    2 +
 debian/x2goserver-pyhoca.docs                      |    2 +-
 debian/x2goserver-pyhoca.install                   |    4 +-
 debian/x2goserver-pyhoca.manpages                  |    2 +-
 x2goserver-pyhoca/Makefile                         |   36 ++++++++++----------
 x2goserver-pyhoca/man/man8/x2gosetkeyboard.8       |   34 ------------------
 .../share/x2gofeature.d/x2goserver-pyhoca.features |    1 -
 x2goserver/bin/x2goresume-session                  |    6 +++
 .../bin/x2gosetkeyboard                            |    5 ++-
 x2goserver/bin/x2gostartagent                      |    6 +++-
 x2goserver/share/x2gofeature.d/x2goserver.features |    1 +
 11 files changed, 40 insertions(+), 59 deletions(-)
 delete mode 100644 x2goserver-pyhoca/man/man8/x2gosetkeyboard.8
 rename {x2goserver-pyhoca => x2goserver}/bin/x2gosetkeyboard (95%)

The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index 525dcdf..107a2a2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -18,6 +18,8 @@ x2goserver (3.1.1.1-0~x2go1) UNRELEASED; urgency=low
       x2gostartagent.
     - Export NX_ROOT=$HOME/.x2go in x2gostartagent. Makes the keyboard file
       in X2Go session cache directory.
+    - Add support for client-side keyboard detection. Moved script
+      x2gosetkeyboard from x2goserver-pyhoca into x2goserver package.
 
  -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de>  Wed, 04 Apr 2012 11:44:14 +0200
 
diff --git a/debian/x2goserver-pyhoca.docs b/debian/x2goserver-pyhoca.docs
index 6652b35..3a19506 100644
--- a/debian/x2goserver-pyhoca.docs
+++ b/debian/x2goserver-pyhoca.docs
@@ -1 +1 @@
-x2goserver-pyhoca/.build_man2html/html
+#x2goserver-pyhoca/.build_man2html/html
diff --git a/debian/x2goserver-pyhoca.install b/debian/x2goserver-pyhoca.install
index 7ba0b60..69985ca 100644
--- a/debian/x2goserver-pyhoca.install
+++ b/debian/x2goserver-pyhoca.install
@@ -1,3 +1,3 @@
-x2goserver-pyhoca/bin/x2go*      /usr/bin/
+#x2goserver-pyhoca/bin/x2go*      /usr/bin/
 x2goserver-pyhoca/VERSION.x2goserver-pyhoca      /usr/share/x2go/versions/
-x2goserver-pyhoca/share/x2gofeature.d/*              /usr/share/x2go/x2gofeature.d/
+#x2goserver-pyhoca/share/x2gofeature.d/*              /usr/share/x2go/x2gofeature.d/
diff --git a/debian/x2goserver-pyhoca.manpages b/debian/x2goserver-pyhoca.manpages
index 845a36c..6f35882 100644
--- a/debian/x2goserver-pyhoca.manpages
+++ b/debian/x2goserver-pyhoca.manpages
@@ -1 +1 @@
-x2goserver-pyhoca/man/man8/*
\ No newline at end of file
+#x2goserver-pyhoca/man/man8/*
\ No newline at end of file
diff --git a/x2goserver-pyhoca/Makefile b/x2goserver-pyhoca/Makefile
index 8fc06fa..c24be41 100755
--- a/x2goserver-pyhoca/Makefile
+++ b/x2goserver-pyhoca/Makefile
@@ -39,25 +39,25 @@ 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) $(MAN2HTML_SRC)/$$man_page > $(MAN2HTML_DEST)/$$man_page.html; done
+#	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) $(MAN2HTML_SRC)/$$man_page > $(MAN2HTML_DEST)/$$man_page.html; done
 
 clean: clean_man2html
 
 clean_man2html:
-	rm -rf `dirname $(MAN2HTML_DEST)`
+#	rm -rf `dirname $(MAN2HTML_DEST)`
 
 install: install_scripts install_config install_man install_version
 
 install_scripts:
-	$(INSTALL_DIR) $(DESTDIR)$(BINDIR)
+#	$(INSTALL_DIR) $(DESTDIR)$(BINDIR)
 #	$(INSTALL_DIR) $(DESTDIR)$(SBINDIR)
-	$(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)
-	$(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/x2gofeature.d
-	$(INSTALL_PROGRAM) bin/*                $(DESTDIR)$(BINDIR)/
+#	$(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_PROGRAM) share/x2gofeature.d/*.features $(DESTDIR)$(SHAREDIR)/x2gofeature.d/
 
 install_config:
 #	$(INSTALL_DIR) $(DESTDIR)$(ETCDIR)
@@ -67,10 +67,10 @@ install_config:
 #	$(INSTALL_FILE) etc/x2gosql/sql         $(DESTDIR)$(ETCDIR)/x2gosql
 
 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_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)
@@ -80,10 +80,10 @@ install_version:
 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 $(BIN_SCRIPTS); do $(RM_FILE) $(DESTDIR)$(BINDIR)/$$file; done
 #	for file in $(SBIN_SCRIPTS); do $(RM_FILE) $(DESTDIR)$(SBINDIR)/$$file; done
 #	for file in $(LIB_FILES); do $(RM_FILE) $(DESTDIR)$(LIBDIR)/$$file; done
-	for file in $(FEATURE_SCRIPTS); do $(RM_FILE) $(DESTDIR)$(SHAREDIR)/x2gofeature.d/$$file; done
+#	for file in $(FEATURE_SCRIPTS); do $(RM_FILE) $(DESTDIR)$(SHAREDIR)/x2gofeature.d/$$file; done
 
 uninstall_config:
 #	$(RM_FILE) $(DESTDIR)$(ETCDIR)/x2goserver.conf
@@ -93,9 +93,9 @@ uninstall_config:
 #	$(RM_DIR)  $(DESTDIR)$(ETCDIR)/x2gosql || true
 
 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
+#	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-pyhoca
diff --git a/x2goserver-pyhoca/man/man8/x2gosetkeyboard.8 b/x2goserver-pyhoca/man/man8/x2gosetkeyboard.8
deleted file mode 100644
index 3e9baaf..0000000
--- a/x2goserver-pyhoca/man/man8/x2gosetkeyboard.8
+++ /dev/null
@@ -1,34 +0,0 @@
-'\" -*- coding: utf-8 -*-
-.if \n(.g .ds T< \\FC
-.if \n(.g .ds T> \\F[\n[.fam]]
-.de URL
-\\$2 \(la\\$1\(ra\\$3
-..
-.if \n(.g .mso www.tmac
-.TH x2gosetkeyboard 8 "Mar 2012" "Version 3.1.1.x" "X2Go Server Tool (PyHoca)"
-.SH NAME
-x2gosetkeyboard \- Allow server-side Keyboard Setting Updates issued by X2Go Client
-.SH SYNOPSIS
-'nh
-.fi
-.ad l
-x2gosetkeyboard
-
-.SH DESCRIPTION
-\fBx2gosetkeyboard\fR looks for a 'keyboard' file in the X2Go session directory and introspects
-the X2Go session keyboard settings requested from the client side.
-.PP
-If no 'keyboard' file is present in the X2Go session directory, nothing happens (i.e. no error
-will be raised).
-.SH RETURN VALUES
-If \fBx2gosetkeyboard\fR successfully sets the session's keyboard parameters an exit code of 0 is
-returned. Also, if the file ${HOME}/.x2go/C-${X2GO_SESSION}/keyboard is not presented at the
-expected location, a zero-exitcode is returned.
-.PP
-If the command fails on its way, then the exitcode of the failing command is returned.
-.SH FILES
-${HOME}/.x2go/C-${X2GO_SESSION}/keyboard
-.PP
-.SH AUTHOR
-This manual has been written by Mike Gabriel <mike.gabriel at das-netzwerkteam.de> for the X2Go project
-(http://www.x2go.org).
diff --git a/x2goserver-pyhoca/share/x2gofeature.d/x2goserver-pyhoca.features b/x2goserver-pyhoca/share/x2gofeature.d/x2goserver-pyhoca.features
index 1737ad8..2411c0e 100755
--- a/x2goserver-pyhoca/share/x2gofeature.d/x2goserver-pyhoca.features
+++ b/x2goserver-pyhoca/share/x2gofeature.d/x2goserver-pyhoca.features
@@ -29,7 +29,6 @@ X2GO_FEATURE=$1
 # check for X2Go server core features
 case "$X2GO_FEATURE" in
 
-    "X2GO_SET_KEYBOARD") echo "ok"; exit 0;;
     *) exit -1;;
 
 esac
diff --git a/x2goserver/bin/x2goresume-session b/x2goserver/bin/x2goresume-session
index 50cb638..fd001e8 100755
--- a/x2goserver/bin/x2goresume-session
+++ b/x2goserver/bin/x2goresume-session
@@ -171,6 +171,12 @@ kill -HUP $X2GO_AGENT_PID &>/dev/null && {
 	#done
 	(sleep 1; $X2GO_LIB_PATH/x2goresume  "$X2GO_CLIENT" "$SESSION_NAME"  "$GR_PORT" "$SOUND_PORT" "$FS_PORT" > /dev/null;)
 
+	# set client-side keyboard model, type, variant, etc.
+	if [ "$X2GO_SET_KBD" != "0" ]
+		X2GO_DISPLAY=$(echo $X2GO_SESSION | cut -d"-" -f2)
+		(sleep 1; DISPLAY=:$X2GO_DISPLAY.0 x2gosetkeyboard;)
+	fi
+
 	# resume x2godesktopsharing, if it has been in use before the session got suspended
 	x2gofeature X2GO_DESKTOPSHARING &>/dev/null && x2goresume-desktopsharing "$SESSION_NAME" || true
 
diff --git a/x2goserver-pyhoca/bin/x2gosetkeyboard b/x2goserver/bin/x2gosetkeyboard
similarity index 95%
rename from x2goserver-pyhoca/bin/x2gosetkeyboard
rename to x2goserver/bin/x2gosetkeyboard
index 481d01a..6ca357e 100755
--- a/x2goserver-pyhoca/bin/x2gosetkeyboard
+++ b/x2goserver/bin/x2gosetkeyboard
@@ -48,12 +48,15 @@ read_keyboard_file() {
 
 update_keymap() {
 
+	if [ "$XKB_RULES" = "evdev" ]; then
+		XKB_RULES="xfree86"
+	fi
 	# prepare for setxkbmap call
 	[ -n "$XKB_RULES" ] && XKB_RULES="-rules $XKB_RULES"
 	[ -n "$XKB_MODEL" ] && XKB_MODEL="-model $XKB_MODEL"
 	[ -n "$XKB_LAYOUT" ] && XKB_LAYOUT="-layout $XKB_LAYOUT"
 	[ -n "$XKB_VARIANT" ] && XKB_VARIANT="-variant $XKB_VARIANT"
-	[ -n "$XKB_OPTIONS" ] && XKB_OPTIONS="-options $XKB_OPTIONS"
+	[ -n "$XKB_OPTIONS" ] && XKB_OPTIONS="-option $XKB_OPTIONS"
 
 	# update keyboard map
 	setxkbmap $XKB_RULES $XKB_MODEL $XKB_LAYOUT $XKB_VARIANT $XKB_OPTIONS
diff --git a/x2goserver/bin/x2gostartagent b/x2goserver/bin/x2gostartagent
index 6531218..234047c 100755
--- a/x2goserver/bin/x2gostartagent
+++ b/x2goserver/bin/x2gostartagent
@@ -251,8 +251,12 @@ if  [ "$X2GO_STYPE" == "S" ]; then
 	x2goagent -nolisten tcp $X2GODPIOPTION_ -$SESSION_TYPE -auth "$XAUTHORITY" -shadow $SHADOW_DESKTOP -shadowmode $SHADOW_MODE -geometry ${X2GO_GEOMETRY} -name "${SESSION_WINDOW_TITLE}"  "${NX_AGENT}" 2>"${SESSION_DIR}/session.log" &
 else
 	x2goagent -nolisten tcp $X2GODPIOPTION_ $XDMCPOPT -$SESSION_TYPE $NOEXITPARAM -auth "$XAUTHORITY" -geometry ${X2GO_GEOMETRY} -name "${SESSION_WINDOW_TITLE}"  "${NX_AGENT}" 2>"${SESSION_DIR}/session.log" &
-fi
 
+	# if we do not enforce a special keybaord type/layout/variant, use the one detected on the client-side
+	if [ "$X2GO_SET_KBD" != "0" ]
+		(sleep 1; x2gosetkeyboard; )
+	fi
+fi
 
 X2GO_AGENT_PID=$!
 X2GO_AGENT_RETVAL=$?
diff --git a/x2goserver/share/x2gofeature.d/x2goserver.features b/x2goserver/share/x2gofeature.d/x2goserver.features
index a5dd741..db4aaf2 100755
--- a/x2goserver/share/x2gofeature.d/x2goserver.features
+++ b/x2goserver/share/x2gofeature.d/x2goserver.features
@@ -35,6 +35,7 @@ case "$X2GO_FEATURE" in
     "X2GO_UMOUNTSESSION_ONLYPATH") echo "ok"; exit 0;;
     "X2GO_PUBLISHED_APPLICATIONS") echo "ok"; exit 0;;
     "X2GO_SERVERSIDE_DESKTOPCOMMANDS") echo "ok"; exit 0;;
+    "X2GO_SET_KEYBOARD") echo "ok"; exit 0;;
     *) exit -1;;
 
 esac


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