[X2go-Commits] x2goserver.git - build-main (branch) updated: 3.1.1.2

X2Go dev team git-admin at x2go.org
Fri Jun 29 17:46:36 CEST 2012


The branch, build-main has been updated
       via  4b25144ff4a9b71347e04e841c0b7dee3eb5f86d (commit)
       via  5c11e7e4e870b057bccba4c87d2e42209d5e899a (commit)
       via  1368c7b4026cf2c8b0c81c890179eaa8bfc39f58 (commit)
       via  2ca1e9eb6500ebceb0a37df33bbd785bc7b91f1b (commit)
       via  00a58a2e62e849fa85e2a996957bdd6a371c17d4 (commit)
       via  b625d7b3c3bcc55d632360377424a0101765abb6 (commit)
       via  84027cfd24dfdbba3b1eb602728a3baf6cd810df (commit)
       via  0c300e8537a7049872ff468802d50dc783c67995 (commit)
       via  c9e29f65b5f2d176db850832d0f801576279f711 (commit)
       via  197c283ddac5dad3d438b28bdb8404aea610d3b8 (commit)
       via  ffd7b50051f441dd63ed724216c67ff657cbf99b (commit)
       via  85cbd8a06b78ed13d9ad2a3de47b4d854ae9e5d7 (commit)
       via  49688c37bb09861fee632a40130278e312f6216b (commit)
       via  612f5ecbe31f42cbeb5148d9126660e09bbc7adb (commit)
      from  dc092a92bb23b613d76c6357022fc04c30acd213 (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                                   |   21 ++++++++++++
 x2goserver-compat/VERSION.x2goserver-compat        |    2 +-
 .../VERSION.x2goserver-extensions                  |    2 +-
 .../VERSION.x2goserver-fmbindings                  |    2 +-
 x2goserver-printing/VERSION.x2goserver-printing    |    2 +-
 x2goserver-pyhoca/VERSION.x2goserver-pyhoca        |    2 +-
 .../bin}/.placeholder                              |    0
 .../man/man8}/.placeholder                         |    0
 x2goserver-xsession/VERSION.x2goserver-xsession    |    2 +-
 x2goserver/Makefile                                |    2 +-
 x2goserver/VERSION.x2goserver                      |    2 +-
 x2goserver/bin/x2gomountdirs                       |   12 +++---
 x2goserver/bin/x2goruncommand                      |    2 +-
 x2goserver/bin/x2gostartagent                      |   18 ++++++++--
 x2goserver/bin/x2goumount-session                  |   24 ++++++++++++--
 x2goserver/man/man8/x2gosetkeyboard.8              |   34 ++++++++++++++++++++
 x2goserver/sbin/x2gocleansessions                  |    7 ++--
 x2goserver/sbin/x2golistsessions_root              |    2 +-
 18 files changed, 109 insertions(+), 27 deletions(-)
 copy {x2goserver-extensions/lib/extensions/fail-resume.d => x2goserver-pyhoca/bin}/.placeholder (100%)
 copy {x2goserver-extensions/lib/extensions/fail-resume.d => x2goserver-pyhoca/man/man8}/.placeholder (100%)
 create mode 100644 x2goserver/man/man8/x2gosetkeyboard.8

The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index 845e2b7..f31cd4e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,24 @@
+x2goserver (3.1.1.2-0~x2go1) unstable; urgency=low
+
+  [ Mike Gabriel ]
+  * New upstream version (3.1.1.2):
+    - Place session.log into /tmp directory, make x2gocleansessions and
+      x2golistsessions_root work even if home directories are mounted
+      via NFSv4+Krb5 and not accessible by root. 
+    - Use -fPIE gcc (position independed executable) for building
+      x2gosqlitewrapper.c (as suggested by Jan Engelhardt).
+    - Clean up session.log tmp directory if empty.
+    - Move all X2Go tmp folders (mount points) to /tmp/.x2go-<user>.
+      Make sure all tmp folders get removed if not used any more. Drop
+      symlink ~/media if no client-side folders are mounted into a
+      session.
+    - Fix crashes of x2gocleansessions due to faulty syslog calls.
+    - Drop redundant hostname calls in x2gocleansessions.
+    - Launch x2goagent with $NX_TEMP=/tmp, otherwise it will fail to
+      create the X11 Unix domain sockets.
+
+ -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de>  Fri, 29 Jun 2012 17:44:57 +0200
+
 x2goserver (3.1.1.1-0~x2go1) unstable; urgency=low
 
   [ Mike Gabriel ]
diff --git a/x2goserver-compat/VERSION.x2goserver-compat b/x2goserver-compat/VERSION.x2goserver-compat
index 164a848..2fc27ca 100644
--- a/x2goserver-compat/VERSION.x2goserver-compat
+++ b/x2goserver-compat/VERSION.x2goserver-compat
@@ -1 +1 @@
-3.1.1.1
\ No newline at end of file
+3.1.1.2
\ No newline at end of file
diff --git a/x2goserver-extensions/VERSION.x2goserver-extensions b/x2goserver-extensions/VERSION.x2goserver-extensions
index 164a848..2fc27ca 100644
--- a/x2goserver-extensions/VERSION.x2goserver-extensions
+++ b/x2goserver-extensions/VERSION.x2goserver-extensions
@@ -1 +1 @@
-3.1.1.1
\ No newline at end of file
+3.1.1.2
\ No newline at end of file
diff --git a/x2goserver-fmbindings/VERSION.x2goserver-fmbindings b/x2goserver-fmbindings/VERSION.x2goserver-fmbindings
index 646c786..ff03238 100644
--- a/x2goserver-fmbindings/VERSION.x2goserver-fmbindings
+++ b/x2goserver-fmbindings/VERSION.x2goserver-fmbindings
@@ -1 +1 @@
-3.1.1.1
+3.1.1.2
diff --git a/x2goserver-printing/VERSION.x2goserver-printing b/x2goserver-printing/VERSION.x2goserver-printing
index 164a848..2fc27ca 100644
--- a/x2goserver-printing/VERSION.x2goserver-printing
+++ b/x2goserver-printing/VERSION.x2goserver-printing
@@ -1 +1 @@
-3.1.1.1
\ No newline at end of file
+3.1.1.2
\ No newline at end of file
diff --git a/x2goserver-pyhoca/VERSION.x2goserver-pyhoca b/x2goserver-pyhoca/VERSION.x2goserver-pyhoca
index 164a848..2fc27ca 100644
--- a/x2goserver-pyhoca/VERSION.x2goserver-pyhoca
+++ b/x2goserver-pyhoca/VERSION.x2goserver-pyhoca
@@ -1 +1 @@
-3.1.1.1
\ No newline at end of file
+3.1.1.2
\ No newline at end of file
diff --git a/x2goserver-extensions/lib/extensions/fail-resume.d/.placeholder b/x2goserver-pyhoca/bin/.placeholder
similarity index 100%
copy from x2goserver-extensions/lib/extensions/fail-resume.d/.placeholder
copy to x2goserver-pyhoca/bin/.placeholder
diff --git a/x2goserver-extensions/lib/extensions/fail-resume.d/.placeholder b/x2goserver-pyhoca/man/man8/.placeholder
similarity index 100%
copy from x2goserver-extensions/lib/extensions/fail-resume.d/.placeholder
copy to x2goserver-pyhoca/man/man8/.placeholder
diff --git a/x2goserver-xsession/VERSION.x2goserver-xsession b/x2goserver-xsession/VERSION.x2goserver-xsession
index 164a848..2fc27ca 100644
--- a/x2goserver-xsession/VERSION.x2goserver-xsession
+++ b/x2goserver-xsession/VERSION.x2goserver-xsession
@@ -1 +1 @@
-3.1.1.1
\ No newline at end of file
+3.1.1.2
\ No newline at end of file
diff --git a/x2goserver/Makefile b/x2goserver/Makefile
index c90f1c9..be689c5 100755
--- a/x2goserver/Makefile
+++ b/x2goserver/Makefile
@@ -37,7 +37,7 @@ build: build-arch build-indep
 build-arch: build_setgidwrappers
 
 build_setgidwrappers:
-	gcc -o x2gosqlitewrapper x2gosqlitewrapper.c
+	gcc -fPIE -o x2gosqlitewrapper x2gosqlitewrapper.c
 
 build-indep: build_man2html
 
diff --git a/x2goserver/VERSION.x2goserver b/x2goserver/VERSION.x2goserver
index 164a848..2fc27ca 100644
--- a/x2goserver/VERSION.x2goserver
+++ b/x2goserver/VERSION.x2goserver
@@ -1 +1 @@
-3.1.1.1
\ No newline at end of file
+3.1.1.2
\ No newline at end of file
diff --git a/x2goserver/bin/x2gomountdirs b/x2goserver/bin/x2gomountdirs
index 88948e3..d4249ad 100755
--- a/x2goserver/bin/x2gomountdirs
+++ b/x2goserver/bin/x2gomountdirs
@@ -33,7 +33,7 @@ setlogmask( LOG_UPTO(x2gologlevel()) );
 
 syslog('info', "x2gomountdirs has been called with options: @ARGV");
 
-my $tmp_dir = $ENV{'TMP'} || '/tmp';
+my $tmp_dir = '/tmp';
 
 my $type=shift;
 my $session=shift;
@@ -100,12 +100,12 @@ close(F);
 chmod(0600,"$key");
 chmod(0600,"$key.ident");
 
-my $mdir="$tmp_dir/$ENV{'USER'}_media";
+my $mdir="$tmp_dir/.x2go-$ENV{'USER'}/media";
 my $ldir="$ENV{'HOME'}/media";
 my $spooldir_lnk="$ENV{'HOME'}/.x2go/C-$session/spool";
-my $spooldir="$tmp_dir/spool_$ENV{'USER'}";
+my $spooldir="$tmp_dir/.x2go-$ENV{'USER'}/spool";
 my $mimeboxdir_lnk="$ENV{'HOME'}/.x2go/C-$session/mimebox";
-my $mimeboxdir="$tmp_dir/mimebox_$ENV{'USER'}";
+my $mimeboxdir="$tmp_dir/.x2go-$ENV{'USER'}/mimebox";
 
 if (! -e $mdir)
 {
@@ -139,7 +139,7 @@ if (! -e $spooldir)
 }
 chmod(0700,$spooldir);
 
-$spooldir="$spooldir/$session";
+$spooldir="$spooldir/C-$session";
 if (! -e $spooldir)
 {
 	mkdir($spooldir);
@@ -152,7 +152,7 @@ if (! -e $mimeboxdir)
 }
 chmod(0700,$mimeboxdir);
 
-$mimeboxdir="$mimeboxdir/$session";
+$mimeboxdir="$mimeboxdir/C-$session";
 if (! -e $mimeboxdir)
 {
 	mkdir($mimeboxdir);
diff --git a/x2goserver/bin/x2goruncommand b/x2goserver/bin/x2goruncommand
index 012f713..6e62709 100755
--- a/x2goserver/bin/x2goruncommand
+++ b/x2goserver/bin/x2goruncommand
@@ -246,5 +246,5 @@ test -r /etc/x2go/x2go_logout && . /etc/x2go/x2go_logout
 
 # clean up session dir if not in debug mode and if session has been successful
 if [ "$($X2GO_LIB_PATH/x2gologlevel)" != "7" ] && [ "x$successful_run" = "xtrue" ]; then
-	(sleep 10; rm -Rf "$HOME/.x2go/C-$X2GO_SESSION")&
+	(sleep 10; rm -Rf "${HOME}/.x2go/C-${X2GO_SESSION}"; rm -f "/tmp/.x2go-${USER}/session-C-${X2GO_SESSION}.log"; rmdir --ignore-fail-on-non-empty "/tmp/.x2go-${USER}"; )&
 fi
diff --git a/x2goserver/bin/x2gostartagent b/x2goserver/bin/x2gostartagent
index e772bf4..fedd6ba 100755
--- a/x2goserver/bin/x2gostartagent
+++ b/x2goserver/bin/x2gostartagent
@@ -190,6 +190,14 @@ fi
 
 SESSION_DIR="${X2GO_ROOT}/C-${SESSION_NAME}"
 
+# do not use $TMP or $TEMP here, the session.log file location has to be accessible by root
+SESSION_LOG="/tmp/.x2go-${USER}/session-C-${SESSION_NAME}.log"
+mkdir -p $(dirname "${SESSION_LOG}")
+chmod -f 0700 $(dirname "${SESSION_LOG}")
+touch "${SESSION_LOG}"
+chmod -f 0600 "${SESSION_LOG}"
+ln -s "${SESSION_DIR}/session.log" "${SESSION_LOG}"
+
 if [ ! -d "$X2GO_ROOT" ]; then
 	mkdir "$X2GO_ROOT"
 fi
@@ -215,9 +223,9 @@ xauth -f "$XAUTHORITY" add "${HOSTNAME}:${X2GO_PORT}" MIT-MAGIC-COOKIE-1 "${X2GO
 
 
 if [ "$X2GO_SET_KBD" == "0" ] || [ "$X2GO_KBD_TYPE" == "auto" ];then
-    X2GO_HOST="nx/nx,link=${X2GO_LINK},pack=${X2GO_PACK},limit=0,root=${SESSION_DIR},cache=8M,images=32M,type=${X2GO_TYPE},id=${SESSION_NAME},cookie=$X2GO_COOKIE,errors=${SESSION_DIR}/session.log,kbtype=null/null,geometry=${X2GO_GEOMETRY},resize=${X2GO_RESIZE},fullscreen=${X2GO_FULLSCREEN},accept=${REMOTE},listen=${GR_PORT},client=linux,menu=0"
+    X2GO_HOST="nx/nx,link=${X2GO_LINK},pack=${X2GO_PACK},limit=0,root=${SESSION_DIR},cache=8M,images=32M,type=${X2GO_TYPE},id=${SESSION_NAME},cookie=$X2GO_COOKIE,errors=${SESSION_LOG},kbtype=null/null,geometry=${X2GO_GEOMETRY},resize=${X2GO_RESIZE},fullscreen=${X2GO_FULLSCREEN},accept=${REMOTE},listen=${GR_PORT},client=linux,menu=0"
 else
-    X2GO_HOST="nx/nx,link=${X2GO_LINK},pack=${X2GO_PACK},limit=0,root=${SESSION_DIR},cache=8M,images=32M,type=${X2GO_TYPE},id=${SESSION_NAME},cookie=$X2GO_COOKIE,errors=${SESSION_DIR}/session.log,kbtype=${X2GO_KBD_TYPE},geometry=${X2GO_GEOMETRY},resize=${X2GO_RESIZE},fullscreen=${X2GO_FULLSCREEN},accept=${REMOTE},listen=${GR_PORT},client=linux,menu=0"
+    X2GO_HOST="nx/nx,link=${X2GO_LINK},pack=${X2GO_PACK},limit=0,root=${SESSION_DIR},cache=8M,images=32M,type=${X2GO_TYPE},id=${SESSION_NAME},cookie=$X2GO_COOKIE,errors=${SESSION_LOG},kbtype=${X2GO_KBD_TYPE},geometry=${X2GO_GEOMETRY},resize=${X2GO_RESIZE},fullscreen=${X2GO_FULLSCREEN},accept=${REMOTE},listen=${GR_PORT},client=linux,menu=0"
 fi
 
 
@@ -247,9 +255,11 @@ x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions "$SESSI
 SESSION_WINDOW_TITLE="X2GO-${SESSION_NAME}"
 
 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" &
+	# set NX_TEMP to /tmp, make sure x2goagent starts when pam_tmpdir.so is in use
+	NX_TEMP=/tmp 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_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" &
+	# set NX_TEMP to /tmp, make sure x2goagent starts when pam_tmpdir.so is in use
+	NX_TEMP=/tmp x2goagent -nolisten tcp $X2GODPIOPTION_ $XDMCPOPT -$SESSION_TYPE $NOEXITPARAM -auth "$XAUTHORITY" -geometry ${X2GO_GEOMETRY} -name "${SESSION_WINDOW_TITLE}"  "${NX_AGENT}" 2>"${SESSION_LOG}" &
 fi
 
 X2GO_AGENT_PID=$!
diff --git a/x2goserver/bin/x2goumount-session b/x2goserver/bin/x2goumount-session
index 6d5f062..01d3857 100755
--- a/x2goserver/bin/x2goumount-session
+++ b/x2goserver/bin/x2goumount-session
@@ -34,13 +34,17 @@ setlogmask( LOG_UPTO(x2gologlevel()) );
 
 syslog('info', "x2goumount-session has been called with options: @ARGV");
 
-my $tmp_dir = $ENV{'TMP'} || '/tmp';
+my $tmp_dir = '/tmp';
 
 my $session=shift;
 my $only_path=shift;
 my $uname=$ENV{'USER'};
 my $serv=hostname;
 
+my $mdir="$tmp_dir/.x2go-$ENV{'USER'}/media";
+my $spooldir="$tmp_dir/.x2go-$ENV{'USER'}/spool";
+my $mimeboxdir="$tmp_dir/.x2go-$ENV{'USER'}/mimebox";
+
 if ($only_path)
 {
 	$only_path=~s/\/ramdrive\/mnt\///;
@@ -57,8 +61,8 @@ if ($only_path)
 
 	### FIXME: handle CDROM and Removable Media mounts here, as well!!!
 
-	$only_path="$tmp_dir/$ENV{'USER'}_media/disk/$only_path";
-	#                                       ^^^^
+	$only_path="$tmp_dir/.x2go-$ENV{'USER'}/media/disk/$only_path";
+	#                                             ^^^^
 	syslog('debug',"x2goumount-session unmounting $only_path only");
 }
 
@@ -193,6 +197,20 @@ break:
 cont:
 }
 
+# try to eliminate parent directory of mountpoints
+rmdir ("$mdir/disk");
+rmdir ("$mdir/cd");
+rmdir ("$mdir/rm");
+rmdir ("$mdir");
+if (( ! -d "$mdir" ) && ( -l "$ENV{'HOME'}/media" ))
+{
+	system("rm -f $ENV{'HOME'}/media");
+}
+rmdir ("$spooldir/C-$session");
+rmdir ("$spooldir");
+rmdir ("$mimeboxdir/C-$session");
+rmdir ("$mimeboxdir");
+
 # closing syslog 
 closelog;
 
diff --git a/x2goserver/man/man8/x2gosetkeyboard.8 b/x2goserver/man/man8/x2gosetkeyboard.8
new file mode 100644
index 0000000..3e9baaf
--- /dev/null
+++ b/x2goserver/man/man8/x2gosetkeyboard.8
@@ -0,0 +1,34 @@
+'\" -*- 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/sbin/x2gocleansessions b/x2goserver/sbin/x2gocleansessions
index 6e21482..aaed31d 100755
--- a/x2goserver/sbin/x2gocleansessions
+++ b/x2goserver/sbin/x2gocleansessions
@@ -55,7 +55,7 @@ sub check_stat
 {
 	my $sess=shift;
 	my $user=shift;
-	my $log="~$user/.x2go/C-$sess/session.log";
+	my $log="/tmp/.x2go-${user}/session-C-${sess}.log";
 	my $text=`tail -1 $log 2>/dev/null`;
 	if ($text =~ m/Session suspended/)
 	{
@@ -93,7 +93,6 @@ elsif ($pid == 0 )
 
 	while(sleep 5)
 	{
-		$serv=`hostname`;
 		my $outp=`$x2go_lib_path/x2golistsessions_sql $serv 2>/dev/null`;
 		my @outp=split("\n","$outp");
 		for (my $i=0;$i<@outp;$i++)
@@ -119,8 +118,8 @@ elsif ($pid == 0 )
 					if (!check_stat(@sinfo[1], at sinfo[11]))
 					{
 						system("su @sinfo[11] -c  \"$x2go_lib_path/x2gochangestatus 'S' @sinfo[1] \" > /dev/null");
-						syslog("@sinfo[1] is suspended, changing status from @sinfo[4] to S");
-						syslog("@sinfo[1]: unmounting all shares");
+						syslog('debug', "@sinfo[1] is suspended, changing status from @sinfo[4] to S");
+						syslog('debug', "@sinfo[1]: unmounting all shares");
 						system( "su @sinfo[11] -c \"export HOSTNAME && x2goumount-session @sinfo[1]\" 2> /dev/null");
 					}
 				}
diff --git a/x2goserver/sbin/x2golistsessions_root b/x2goserver/sbin/x2golistsessions_root
index dddcae3..71fc5dd 100755
--- a/x2goserver/sbin/x2golistsessions_root
+++ b/x2goserver/sbin/x2golistsessions_root
@@ -34,7 +34,7 @@ sub check_stat
 {
 	my $sess=shift;
 	my $user=shift;
-	my $log="~$user/.x2go/C-$sess/session.log";
+	my $log="/tmp/.x2go-${user}/session-C-${sess}.log";
 	my $text=`tail -1 $log 2>/dev/null`;
 	if ($text =~ m/Session suspended/)
 	{


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