[X2go-Commits] x2goserver.git - build-main (branch) updated: 3.0.99.10-43-g988da79
X2go dev team
git-admin at x2go.org
Wed Feb 22 14:39:37 CET 2012
The branch, build-main has been updated
via 988da7922e3dc848d49c42ad2b6cff8fb2783297 (commit)
via 763775ea379d06d28340bf9f9ae55e1242044692 (commit)
via c7c08d58deb17843064a18749af07124b13a4cf5 (commit)
via c9abfa3b2b358c183e06b78e725ebb7d5b5e0750 (commit)
via 1974cdcefbe9e30bb78c3e9eff74d863062d1cf7 (commit)
via 9c0321a3a7ebe21afba303397cdaec61f44b5fef (commit)
via 25339e0d943a7592b1fe776d2ec08be6d9a723e2 (commit)
via 183e55caf0729743747154bedb87776dc51fb6b1 (commit)
via b1de1ed47501af09628afbdb15fff8130afdfe7a (commit)
via 839ab4f783081aecf5667588c791f7ef5986568c (commit)
via add1c479ab49cda6325f89ba1cbc45d57f8a1685 (commit)
via d1a5d757ef2e45912f2f58162a6e6c39fa482d13 (commit)
via 6d06ba1e3e965314e6a8753b11e69aeb45f8b5ad (commit)
via 65b0817cef86ea0ee0085d539571bd4e689c6055 (commit)
via e298bd19efb2fc0b1e7d1ec256332f8d9871d2fd (commit)
via b4684ddfafa899ff10de734b9b0957dcd38909c2 (commit)
via 305f7e897420aa9b0e151ffd37b7e1dd62def9e8 (commit)
via adabd159ef48fad1bb827c76c17a2604d30ec4b5 (commit)
via cefc9b0522ff5a9c5b996263961c94d8b5a56e62 (commit)
via cc498e94b2e95ac0c4ef92a01732906065b25e8d (commit)
via 3650aefe3e6399040a0fff6ccf5d174ab1d3b65d (commit)
via 9da2c4d6265d79db87121bb529901759f3c2af4f (commit)
via db9fa7f16780b11876c1b66399be76929feaea03 (commit)
via 0253416b5e4b2e90b0a142b9219c3e808def41d8 (commit)
via 4f8e5f05cf758b6b7d98cc563da553b05b443cd2 (commit)
via b1536548a685d8fc96640a42fdea53e5281a9072 (commit)
via 51771f645ffa60d561e156847dbc79cce6b41d4d (commit)
via c557ccdfbfac96bfa63e14d522999a20a7b2c57a (commit)
via b5a057b8b849d74bae0a1aabc16989ca594a5b6a (commit)
via c4a1ea405879b07d351b6c10da02bb891c02c45b (commit)
via 53a830ca3b3ecde7acab042323f00c988756c47d (commit)
via ce30528b3b0ba6252e6617a835fd0909274a9759 (commit)
via 9d58cdf8b93ba5f041bb643d6b28214493cc8353 (commit)
via 3a1746539fe58fb31aab0eb6862647d279890edf (commit)
via 745b2b21be2df3a91bf8c0870054cbc2138b37e1 (commit)
via 53ce826d7ea804ca27c03e382571bdf5f54ed974 (commit)
via b9ece48b618177723721afd452e506bfe521adc5 (commit)
via 2cffebd0aab22890d25a3f7539068c95087e9a2e (commit)
via 8ac7d8934719d90fcd35769836c02c3e3a54f85b (commit)
via 9c621a42b9143d9cfa7f481d3b909693fc6564b2 (commit)
via 414d6c5d3fc471d5ede367620801d9268bb5c372 (commit)
via 63556d25c3a86f187d16b0e44a5beef76a27bc84 (commit)
via dc0e5721b977a248c2b1e0b7e26b4549ed996d92 (commit)
from 858d1df7444b742015c0a140b1cc0be26945351a (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 988da7922e3dc848d49c42ad2b6cff8fb2783297
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date: Wed Feb 22 14:37:50 2012 +0100
release 3.1.0.0
-----------------------------------------------------------------------
Summary of changes:
Makefile | 6 +
Makefile.docupload | 2 +-
debian/changelog | 53 +++++++++
debian/control | 29 +++++
debian/po/POTFILES.in | 1 +
debian/po/de.po | 48 ++++++++
debian/po/templates.pot | 41 +++++++
debian/templates | 9 ++
...-extensions.dirs => x2goserver-fmbindings.dirs} | 0
debian/x2goserver-fmbindings.install | 3 +
debian/x2goserver-fmbindings.manpages | 1 +
...rver.preinst => x2goserver-fmbindings.postinst} | 26 ++---
...rinting.postrm => x2goserver-fmbindings.postrm} | 32 +++---
debian/x2goserver.config | 16 +++
debian/x2goserver.docs | 1 +
debian/x2goserver.postinst | 3 +
x2goserver-compat/Makefile | 2 +-
x2goserver-compat/VERSION.x2goserver-compat | 2 +-
x2goserver-compat/man/man8/x2gosuspend-agent.8 | 2 +-
x2goserver-compat/man/man8/x2gosuspend.8 | 2 +-
x2goserver-compat/man/man8/x2goterminate.8 | 2 +-
x2goserver-extensions/Makefile | 2 +-
.../VERSION.x2goserver-extensions | 2 +-
.../bin/x2goserver-run-extensions | 6 +-
.../man/man8/x2goserver-run-extensions.8 | 2 +-
.../Makefile | 23 +----
.../VERSION.x2goserver-fmbindings | 1 +
.../bin/x2gofm | 15 ++--
x2goserver-fmbindings/man/man8/x2gofm.8 | 26 +++++
.../share/applications/x2gofm.desktop | 9 ++
.../share/mime/packages/sshfs-x2go.xml | 21 ++++
.../x2gofeature.d/x2goserver-fmbindings.features | 10 +-
x2goserver-printing/Makefile | 2 +-
x2goserver-printing/VERSION.x2goserver-printing | 2 +-
x2goserver-printing/man/man8/x2goprint.8 | 2 +-
x2goserver-pyhoca/Makefile | 2 +-
x2goserver-pyhoca/VERSION.x2goserver-pyhoca | 2 +-
x2goserver-pyhoca/bin/x2gosetkeyboard | 10 +-
x2goserver-pyhoca/man/man8/x2gosetkeyboard.8 | 2 +-
x2goserver-xsession/Makefile | 2 +-
x2goserver-xsession/VERSION.x2goserver-xsession | 2 +-
x2goserver/Makefile | 2 +-
x2goserver/VERSION.x2goserver | 2 +-
x2goserver/bin/x2gocmdexitmessage | 2 +-
x2goserver/bin/x2gofeature | 2 +-
x2goserver/bin/x2gomountdirs | 54 ++++++----
x2goserver/bin/x2goresume-session | 113 +++++++++++++++----
x2goserver/bin/x2goruncommand | 28 +++---
x2goserver/bin/x2gostartagent | 105 +++++++++---------
x2goserver/bin/x2gosuspend-session | 22 ++--
x2goserver/bin/x2goterminate-session | 22 ++--
x2goserver/bin/x2goumount-session | 53 ++++++----
x2goserver/bin/x2goversion | 4 +-
x2goserver/doc/README.upgrade-pgsql-database | 42 +++++++
x2goserver/lib/x2godbwrapper.pm | 56 +++++++---
x2goserver/lib/x2goresume | 5 +-
x2goserver/lib/{x2goinsertport => x2gormport} | 3 +-
x2goserver/lib/x2gosqlitewrapper.pl | 24 ++++-
x2goserver/man/man8/x2gobasepath.8 | 2 +-
x2goserver/man/man8/x2gocleansessions.8 | 2 +-
x2goserver/man/man8/x2gocmdexitmessage.8 | 2 +-
x2goserver/man/man8/x2godbadmin.8 | 2 +-
x2goserver/man/man8/x2gofeature.8 | 2 +-
x2goserver/man/man8/x2gogetservers.8 | 25 +++++
x2goserver/man/man8/x2golistdesktops.8 | 4 +-
x2goserver/man/man8/x2golistmounts.8 | 2 +-
x2goserver/man/man8/x2golistsessions.8 | 2 +-
x2goserver/man/man8/x2golistsessions_root.8 | 2 +-
x2goserver/man/man8/x2gomountdirs.8 | 2 +-
x2goserver/man/man8/x2goresume-session.8 | 2 +-
x2goserver/man/man8/x2goruncommand.8 | 2 +-
x2goserver/man/man8/x2gosessionlimit.8 | 2 +-
x2goserver/man/man8/x2goshowblocks.8 | 2 +-
x2goserver/man/man8/x2gostartagent.8 | 2 +-
x2goserver/man/man8/x2gosuspend-session.8 | 2 +-
x2goserver/man/man8/x2goterminate-session.8 | 2 +-
x2goserver/man/man8/x2goumount-session.8 | 2 +-
x2goserver/man/man8/x2goversion.8 | 2 +-
x2goserver/sbin/x2gocleansessions | 5 +-
x2goserver/sbin/x2godbadmin | 4 +-
x2goserver/share/x2go/versions/VERSION.x2goserver | 1 -
81 files changed, 741 insertions(+), 297 deletions(-)
create mode 100644 debian/po/POTFILES.in
create mode 100644 debian/po/de.po
create mode 100644 debian/po/templates.pot
create mode 100644 debian/templates
copy debian/{x2goserver-extensions.dirs => x2goserver-fmbindings.dirs} (100%)
create mode 100644 debian/x2goserver-fmbindings.install
create mode 100644 debian/x2goserver-fmbindings.manpages
copy debian/{x2goserver.preinst => x2goserver-fmbindings.postinst} (66%)
copy debian/{x2goserver-printing.postrm => x2goserver-fmbindings.postrm} (59%)
create mode 100755 debian/x2goserver.config
copy {x2goserver-pyhoca => x2goserver-fmbindings}/Makefile (62%)
create mode 100644 x2goserver-fmbindings/VERSION.x2goserver-fmbindings
copy x2goserver/bin/x2gobasepath => x2goserver-fmbindings/bin/x2gofm (75%)
create mode 100644 x2goserver-fmbindings/man/man8/x2gofm.8
create mode 100644 x2goserver-fmbindings/share/applications/x2gofm.desktop
create mode 100644 x2goserver-fmbindings/share/mime/packages/sshfs-x2go.xml
copy x2goserver-xsession/share/x2gofeature.d/x2goserver-xsession.features => x2goserver-fmbindings/share/x2go/x2gofeature.d/x2goserver-fmbindings.features (74%)
create mode 100644 x2goserver/doc/README.upgrade-pgsql-database
copy x2goserver/lib/{x2goinsertport => x2gormport} (95%)
create mode 100644 x2goserver/man/man8/x2gogetservers.8
delete mode 120000 x2goserver/share/x2go/versions/VERSION.x2goserver
The diff of changes is:
diff --git a/Makefile b/Makefile
index 77ae676..da9d5db 100755
--- a/Makefile
+++ b/Makefile
@@ -11,6 +11,7 @@ build_man2html:
$(MAKE) -C x2goserver-compat $@
$(MAKE) -C x2goserver-extensions $@
$(MAKE) -C x2goserver-xsession $@
+ $(MAKE) -C x2goserver-fmbindings $@
$(MAKE) -C x2goserver-pyhoca $@
clean:
@@ -19,6 +20,7 @@ clean:
$(MAKE) -C x2goserver-compat $@
$(MAKE) -C x2goserver-extensions $@
$(MAKE) -C x2goserver-xsession $@
+ $(MAKE) -C x2goserver-fmbindings $@
$(MAKE) -C x2goserver-pyhoca $@
build-arch:
@@ -27,6 +29,7 @@ build-arch:
$(MAKE) -C x2goserver-compat $@
$(MAKE) -C x2goserver-extensions $@
$(MAKE) -C x2goserver-xsession $@
+ $(MAKE) -C x2goserver-fmbindings $@
$(MAKE) -C x2goserver-pyhoca $@
build-indep:
@@ -35,6 +38,7 @@ build-indep:
$(MAKE) -C x2goserver-compat $@
$(MAKE) -C x2goserver-extensions $@
$(MAKE) -C x2goserver-xsession $@
+ $(MAKE) -C x2goserver-fmbindings $@
$(MAKE) -C x2goserver-pyhoca $@
install:
@@ -43,6 +47,7 @@ install:
$(MAKE) -C x2goserver-compat $@
$(MAKE) -C x2goserver-extensions $@
$(MAKE) -C x2goserver-xsession $@
+ $(MAKE) -C x2goserver-fmbindings $@
$(MAKE) -C x2goserver-pyhoca $@
uninstall:
@@ -51,4 +56,5 @@ uninstall:
$(MAKE) -C x2goserver-compat $@
$(MAKE) -C x2goserver-extensions $@
$(MAKE) -C x2goserver-xsession $@
+ $(MAKE) -C x2goserver-fmbindings $@
$(MAKE) -C x2goserver-pyhoca $@
diff --git a/Makefile.docupload b/Makefile.docupload
index 70dfc1c..8c9e770 100644
--- a/Makefile.docupload
+++ b/Makefile.docupload
@@ -15,7 +15,7 @@ all: doc
doc: clean docbuild docupload
docbuild:
- make -f Makefile build_man2html
+ ${MAKE} -f Makefile build_man2html
docupload:
ssh -l${DOC_USER} ${DOC_HOST} "{ mkdir -p ${DOC_PATCH_x2goserver}; rm -Rfv ${DOC_PATCH_x2goserver}/*; }"
diff --git a/debian/changelog b/debian/changelog
index b11ad14..84f0a9c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,56 @@
+x2goserver (3.1.0.0-0~x2go1) unstable; urgency=low
+
+ [ Oleksandr Shneyder ]
+ * New upstream version (3.1.0.0):
+ - remove ports used by X2Go session from database after session was finished
+ if postgres backend is used.
+ - before resuming X2Go session check if reserved ports still available
+ in other case find new free ports, save them in database and send to
+ x2goclient
+ - run netstat -tl --all to find free ports for graphic, sound and sshfs
+ tunnels in x2gostartagent and x2goresume-session
+
+ [ Milan Knížek ]
+ * New upstream version (3.1.0.0):
+ - Fix removal of desktop link on x2goumount-session if local folder of a
+ Windows client gets unmounted.
+ - Remove redundant -S option from x2goagent start-up command line.
+ - Use -f $XAUTHORITY with xauth calls.
+
+ [ Sören Plönnigs ]
+ * New upstream version (3.1.0.0):
+ - Only run kdialog/zenity from x2goumount-session if either of them exists
+ in the system's $PATH.
+
+ [ Jan Engelhardt ]
+ * New upstream version (3.1.0.0):
+ - Use /cgi-bin/man/ path in web'ified man pages.
+ - Use ,,${MAKE}'' instead of ,,make'' in Makefile.
+
+ [ Mike Gabriel ]
+ * New upstream version (3.1.0.0):
+ - Provide new package x2goserver-fmbindings. Derived from a package draft
+ provided by Milan Knížek (Thanks!).
+ - Do not create desktop icons for rootless (i.e. non-desktop) sessions.
+ - Allow other $XAUTHORITY values than the default ($HOME/.Xauthority).
+ - For x2gomountdirs / x2goumount-session allow other TMP paths than
+ /tmp. Use ENV{'TMP'} instead, unless it is empty. Then use /tmp.
+ - Place quotations where appropriate into shell scripts.
+ - Fix call to x2goterminate-desktopsharing in x2goruncommand.
+ - Tolerate user names containing "-" characters (SQLite DB backend).
+ - Make sure x2gocleansessions close _all_ open file handles after
+ forking as a daemon.
+ - Add copyright header for x2gofm script.
+ - Add man page for x2gogetservers script.
+ - Add man page for x2gofm wrapper script.
+ - Update date and release version in man pages.
+ * Let x2goserver package suggest x2goserver-fmbindings.
+ * Add package upgrade warning for installation using PostgreSQL. The
+ upgrade warning refers to README.upgrade-pgsql-database.
+ * x2goserver-fmbindings does not have to depend on ${shlibs:Depends}.
+
+ -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de> Wed, 22 Feb 2012 14:37:34 +0100
+
x2goserver (3.0.99.10-0~x2go1) unstable; urgency=low
[ Mike Gabriel ]
diff --git a/debian/control b/debian/control
index 0a51bcd..a8578fe 100644
--- a/debian/control
+++ b/debian/control
@@ -43,6 +43,7 @@ Suggests:
x2goserver-printing (= ${source:Version}),
x2goserver-compat (= ${source:Version}),
x2goserver-xsession (= ${source:Version}),
+ x2goserver-fmbindings (= ${source:Version}),
x2goserver-pyhoca (= ${source:Version})
Breaks:
x2goserver-one,
@@ -167,6 +168,33 @@ Description: X2Go server daemon scripts (Xsession runner)
startups and many more Xsession related features on
X2Go session login automagically.
+Package: x2goserver-fmbindings
+Architecture: all
+Depends:
+ ${misc:Depends},
+ x2goserver (>= ${source:Version}), x2goserver (<< ${source:Version}.1~),
+ desktop-file-utils,
+ xdg-utils
+Description: Generic (freedesktop-based) file manager bindings for X2Go
+ 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
+ .
+ x2goserver-fmbindings contains generic MIME type information
+ for X2Go's local folder sharing. It can be used with all
+ freedesktop.org compliant desktop shells.
+ .
+ However, this package will be superseded by other, more specific
+ destkop binding components, if installed and being used with the
+ corresponding desktop shell:
+ - under LXDE by x2golxdebindings
+ - under GNOME by x2gognomebindings
+ - under KDE4 by plasma-widget-x2go
+
Package: x2goserver-pyhoca
Architecture: all
Depends:
@@ -189,3 +217,4 @@ Description: X2Go server daemon scripts (add-ons for pyhoca client)
Functionalities this package adds:
- renaming of session window titles
- setting detailled X keyboard parameters
+
diff --git a/debian/po/POTFILES.in b/debian/po/POTFILES.in
new file mode 100644
index 0000000..cef83a3
--- /dev/null
+++ b/debian/po/POTFILES.in
@@ -0,0 +1 @@
+[type: gettext/rfc822deb] templates
diff --git a/debian/po/de.po b/debian/po/de.po
new file mode 100644
index 0000000..11de240
--- /dev/null
+++ b/debian/po/de.po
@@ -0,0 +1,48 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: x2goserver at packages.debian.org\n"
+"POT-Creation-Date: 2012-02-22 13:45+0100\n"
+"PO-Revision-Date: 2012-02-22 13:52+0100\n"
+"Last-Translator: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: text
+#. Description
+#: ../templates:1001
+msgid "X2Go Server / PostgreSQL Upgrade"
+msgstr "X2Go Server / PostgreSQL Upgrade"
+
+#. Type: text
+#. Description
+#: ../templates:1001
+msgid "You have configured X2Go Server with PostgreSQL as session DB backend and you are upgrading x2goserver from a version minor to 3.1.0.0."
+msgstr "Ihr X2Go Server nutzt eine PostgreSQL Datenbank, um X2Go Sitzungsdaten zu verwalten, und Sie aktualisieren gerade das Paket x2goserver von einer Version kleiner als 3.1.0.0."
+
+#. Type: text
+#. Description
+#: ../templates:1001
+#| msgid ""
+#| "Please follow these PostgreSQL DB upgrade instructions before you "
+#| "continue using your X2Go Server: /usr/share/doc/x2goserver/README.upgrade-"
+#| "pgsql-database"
+msgid "Please follow these PostgreSQL DB upgrade instructions before you continue using your X2Go Server: /usr/share/doc/x2goserver/README.upgrade-pgsql-database.gz"
+msgstr "Bitte befolgen Sie daher die PostgreSQL-Aktualisierungshinweise bevor sie mit der Weiternutzung Ihres X2Go Servers fortfahren: /usr/share/doc/x2goserver/README.upgrade-pgsl-database.gz"
+
diff --git a/debian/po/templates.pot b/debian/po/templates.pot
new file mode 100644
index 0000000..657ffb4
--- /dev/null
+++ b/debian/po/templates.pot
@@ -0,0 +1,41 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: x2goserver at packages.debian.org\n"
+"POT-Creation-Date: 2012-02-22 13:45+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: text
+#. Description
+#: ../templates:1001
+msgid "X2Go Server / PostgreSQL Upgrade"
+msgstr ""
+
+#. Type: text
+#. Description
+#: ../templates:1001
+msgid ""
+"You have configured X2Go Server with PostgreSQL as session DB backend and "
+"you are upgrading x2goserver from a version minor to 3.1.0.0."
+msgstr ""
+
+#. Type: text
+#. Description
+#: ../templates:1001
+msgid ""
+"Please follow these PostgreSQL DB upgrade instructions before you continue "
+"using your X2Go Server: /usr/share/doc/x2goserver/README.upgrade-pgsql-"
+"database.gz"
+msgstr ""
diff --git a/debian/templates b/debian/templates
new file mode 100644
index 0000000..db48433
--- /dev/null
+++ b/debian/templates
@@ -0,0 +1,9 @@
+Template: x2goserver/postgresql-upgrade-3_1_0_0
+Type: text
+_Description: X2Go Server / PostgreSQL Upgrade
+ You have configured X2Go Server with PostgreSQL as session DB backend and
+ you are upgrading x2goserver from a version minor to 3.1.0.0.
+ .
+ Please follow these PostgreSQL DB upgrade instructions before you continue
+ using your X2Go Server:
+ /usr/share/doc/x2goserver/README.upgrade-pgsql-database.gz
diff --git a/debian/x2goserver-extensions.dirs b/debian/x2goserver-fmbindings.dirs
similarity index 100%
copy from debian/x2goserver-extensions.dirs
copy to debian/x2goserver-fmbindings.dirs
diff --git a/debian/x2goserver-fmbindings.install b/debian/x2goserver-fmbindings.install
new file mode 100644
index 0000000..aeb426e
--- /dev/null
+++ b/debian/x2goserver-fmbindings.install
@@ -0,0 +1,3 @@
+x2goserver-fmbindings/VERSION.x2goserver-fmbindings usr/share/x2go/versions/
+x2goserver-fmbindings/share/* usr/share/
+x2goserver-fmbindings/bin/* usr/bin/
diff --git a/debian/x2goserver-fmbindings.manpages b/debian/x2goserver-fmbindings.manpages
new file mode 100644
index 0000000..ec148a6
--- /dev/null
+++ b/debian/x2goserver-fmbindings.manpages
@@ -0,0 +1 @@
+x2goserver-fmbindings/man/man8/*
\ No newline at end of file
diff --git a/debian/x2goserver.preinst b/debian/x2goserver-fmbindings.postinst
similarity index 66%
copy from debian/x2goserver.preinst
copy to debian/x2goserver-fmbindings.postinst
index 117bb2c..cbe42ae 100755
--- a/debian/x2goserver.preinst
+++ b/debian/x2goserver-fmbindings.postinst
@@ -1,5 +1,5 @@
#!/bin/sh
-# preinst script for x2goserver
+# postinst script for x2gognomebindings
#
# see: dh_installdeb(1)
@@ -19,20 +19,18 @@ set -e
case "$1" in
- install|upgrade)
- # cleanup old x2goserver installations
- rm -Rfv /var/db/x2go/
- if getent group x2gousers >/dev/null; then
- echo "The ,,x2gousers'' is no longer used by x2go and can be"
- echo "removed as soon as no users are members of this group"
- fi
- ;;
- abort-upgrade)
- ;;
+ configure)
+ update-desktop-database
+ update-mime-database /usr/share/mime
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+ ;;
+
*)
- echo "preinst called with unknown argument \`$1'" >&2
+ echo "postinst called with unknown argument \`$1'" >&2
exit 1
- ;;
+ ;;
esac
# dh_installdeb will replace this with shell code automatically
@@ -41,5 +39,3 @@ esac
#DEBHELPER#
exit 0
-
-
diff --git a/debian/x2goserver-printing.postrm b/debian/x2goserver-fmbindings.postrm
similarity index 59%
copy from debian/x2goserver-printing.postrm
copy to debian/x2goserver-fmbindings.postrm
index 16b0f1e..4c31ba2 100755
--- a/debian/x2goserver-printing.postrm
+++ b/debian/x2goserver-fmbindings.postrm
@@ -1,7 +1,10 @@
-#! /bin/sh
-# postrm script for x2goserver-printing
+#!/bin/sh
+# postrm script for x2gognomebindings
#
# see: dh_installdeb(1)
+
+set -e
+
# summary of how this script can be called:
# * <postrm> `remove'
# * <postrm> `purge'
@@ -10,23 +13,22 @@
# * <new-postrm> `abort-install'
# * <new-postrm> `abort-install' <old-version>
# * <new-postrm> `abort-upgrade' <old-version>
-# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
-# for details, see /usr/share/doc/packaging-manual/
-
-set -e
+# * <disappearer's-postrm> `disappear' <overwriter>
+# <overwriter-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
case "$1" in
- purge)
- getent passwd x2goprint >/dev/null && deluser x2goprint
- getent group x2goprint >/dev/null && delgroup x2goprint
- ;;
- remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
- ;;
+ purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+ update-desktop-database
+ update-mime-database /usr/share/mime
+ ;;
+
*)
echo "postrm called with unknown argument \`$1'" >&2
- exit 0
- ;;
+ exit 1
+ ;;
esac
# dh_installdeb will replace this with shell code automatically
@@ -34,4 +36,4 @@ esac
#DEBHELPER#
-exit 0
\ No newline at end of file
+exit 0
diff --git a/debian/x2goserver.config b/debian/x2goserver.config
new file mode 100755
index 0000000..b7012da
--- /dev/null
+++ b/debian/x2goserver.config
@@ -0,0 +1,16 @@
+#!/bin/sh -e
+
+# Source debconf library.
+. /usr/share/debconf/confmodule
+
+LASTVERSION=$2
+
+if dpkg --compare-versions "$LASTVERSION" lt "3.1.0.0" && \
+ [ -e /etc/x2go/x2gosql/sql ] && \
+ egrep "^backend=postgres.*" /etc/x2go/x2gosql/sql >/dev/null; then
+
+ db_input critical x2goserver/postgresql-upgrade-3_1_0_0 || true
+ db_go
+
+fi
+
diff --git a/debian/x2goserver.docs b/debian/x2goserver.docs
index 6c7d3af..869c67e 100644
--- a/debian/x2goserver.docs
+++ b/debian/x2goserver.docs
@@ -1 +1,2 @@
x2goserver/.build_man2html/html
+x2goserver/doc/*
diff --git a/debian/x2goserver.postinst b/debian/x2goserver.postinst
index 68d83d7..f1582a8 100755
--- a/debian/x2goserver.postinst
+++ b/debian/x2goserver.postinst
@@ -5,6 +5,9 @@
set -e
+# Source debconf library.
+. /usr/share/debconf/confmodule
+
# summary of how this script can be called:
# * <postinst> `configure' <most-recently-configured-version>
# * <old-postinst> `abort-upgrade' <new version>
diff --git a/x2goserver-compat/Makefile b/x2goserver-compat/Makefile
index 576f9ce..6bdc94c 100755
--- a/x2goserver-compat/Makefile
+++ b/x2goserver-compat/Makefile
@@ -41,7 +41,7 @@ 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
+ for man_page in $(man_pages); do $(MAN2HTML_BIN) $(MAN2HTML_SRC)/$$man_page > $(MAN2HTML_DEST)/$$man_page.html; done
clean: clean_man2html
diff --git a/x2goserver-compat/VERSION.x2goserver-compat b/x2goserver-compat/VERSION.x2goserver-compat
index 026a698..075493a 100644
--- a/x2goserver-compat/VERSION.x2goserver-compat
+++ b/x2goserver-compat/VERSION.x2goserver-compat
@@ -1 +1 @@
-3.0.99.10
\ No newline at end of file
+3.1.0.0
\ No newline at end of file
diff --git a/x2goserver-compat/man/man8/x2gosuspend-agent.8 b/x2goserver-compat/man/man8/x2gosuspend-agent.8
index 4eb6564..0256909 100644
--- a/x2goserver-compat/man/man8/x2gosuspend-agent.8
+++ b/x2goserver-compat/man/man8/x2gosuspend-agent.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2gosuspend-agent 1 "18 May 2011" "Version 3.0.99.x" "X2Go Server Tool"
+.TH x2gosuspend-agent 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool (compat)"
.SH NAME
x2gosuspend-agent \- X2Go Server Script (deprecated, shipped for compatibility with old clients)
.SH SYNOPSIS
diff --git a/x2goserver-compat/man/man8/x2gosuspend.8 b/x2goserver-compat/man/man8/x2gosuspend.8
index ebb0cac..e7aa661 100644
--- a/x2goserver-compat/man/man8/x2gosuspend.8
+++ b/x2goserver-compat/man/man8/x2gosuspend.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2gosuspend 1 "18 May 2011" "Version 3.0.99.x" "X2Go Server Tool"
+.TH x2gosuspend 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool (compat)"
.SH NAME
x2gosuspend \- X2Go Server Script (deprecated, shipped for compatibility with old clients)
.SH SYNOPSIS
diff --git a/x2goserver-compat/man/man8/x2goterminate.8 b/x2goserver-compat/man/man8/x2goterminate.8
index 8e170a0..5af4784 100644
--- a/x2goserver-compat/man/man8/x2goterminate.8
+++ b/x2goserver-compat/man/man8/x2goterminate.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2goterminate 1 "18 May 2011" "Version 3.0.99.x" "X2Go Server Tool"
+.TH x2goterminate 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool (compat)"
.SH NAME
x2goterminate \- X2Go Server Script (deprecated, shipped for compatibility with old clients)
.SH SYNOPSIS
diff --git a/x2goserver-extensions/Makefile b/x2goserver-extensions/Makefile
index 02a9525..2fe807c 100755
--- a/x2goserver-extensions/Makefile
+++ b/x2goserver-extensions/Makefile
@@ -41,7 +41,7 @@ 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
+ for man_page in $(man_pages); do $(MAN2HTML_BIN) $(MAN2HTML_SRC)/$$man_page > $(MAN2HTML_DEST)/$$man_page.html; done
clean: clean_man2html
diff --git a/x2goserver-extensions/VERSION.x2goserver-extensions b/x2goserver-extensions/VERSION.x2goserver-extensions
index 026a698..075493a 100644
--- a/x2goserver-extensions/VERSION.x2goserver-extensions
+++ b/x2goserver-extensions/VERSION.x2goserver-extensions
@@ -1 +1 @@
-3.0.99.10
\ No newline at end of file
+3.1.0.0
\ No newline at end of file
diff --git a/x2goserver-extensions/bin/x2goserver-run-extensions b/x2goserver-extensions/bin/x2goserver-run-extensions
index 3df2066..c7b671c 100755
--- a/x2goserver-extensions/bin/x2goserver-run-extensions
+++ b/x2goserver-extensions/bin/x2goserver-run-extensions
@@ -27,13 +27,13 @@ X2GO_LIB_PATH=`echo -n \$(x2gobasepath)/lib/x2go`
$X2GO_LIB_PATH/x2gosyslog "$0" "info" "$(basename $0) called with options: $@"
-X2GO_SESSION=$1
-X2GO_MODALITY=$2
+X2GO_SESSION="$1"
+X2GO_MODALITY="$2"
# scan extensions and execute them
find /usr/lib/x2go/extensions/${X2GO_MODALITY}.d/ -maxdepth 1 -mindepth 1 | egrep "/[0-9]{3}_[[:alnum:]]+" | sort | while read x2go_extension; do
$X2GO_LIB_PATH/x2gosyslog "$0" "debug" "executing $x2go_extension with option $X2GO_SESSION"
- $x2go_extension $X2GO_SESSION &>/dev/null && {
+ $x2go_extension "$X2GO_SESSION" &>/dev/null && {
$X2GO_LIB_PATH/x2gosyslog "$0" "info" "$x2go_extension$(basename $0) for session $X2GO_SESSION has finished sucessfully"
} || {
$X2GO_LIB_PATH/x2gosyslog "$0" "warn" "$x2go_extension$(basename $0) for session $X2GO_SESSION returned a non-zero exit code, continuing..."
diff --git a/x2goserver-extensions/man/man8/x2goserver-run-extensions.8 b/x2goserver-extensions/man/man8/x2goserver-run-extensions.8
index c0fb50b..d63cf6f 100644
--- a/x2goserver-extensions/man/man8/x2goserver-run-extensions.8
+++ b/x2goserver-extensions/man/man8/x2goserver-run-extensions.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2goserver-run-extensions 8 "Sep 2011" "Version 3.0.99.x" "X2Go Server Tool"
+.TH x2goserver-run-extensions 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2goserver-run-extensions \- Run X2Go Server Extensions
.SH SYNOPSIS
diff --git a/x2goserver-pyhoca/Makefile b/x2goserver-fmbindings/Makefile
similarity index 62%
copy from x2goserver-pyhoca/Makefile
copy to x2goserver-fmbindings/Makefile
index aa6a562..bd9aa69 100755
--- a/x2goserver-pyhoca/Makefile
+++ b/x2goserver-fmbindings/Makefile
@@ -41,7 +41,7 @@ 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
+ for man_page in $(man_pages); do $(MAN2HTML_BIN) $(MAN2HTML_SRC)/$$man_page > $(MAN2HTML_DEST)/$$man_page.html; done
clean: clean_man2html
@@ -51,20 +51,11 @@ clean_man2html:
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_DIR) $(DESTDIR)$(ETCDIR)/x2gosql
-# $(INSTALL_DIR) $(DESTDIR)$(ETCDIR)/x2gosql/passwords
-# $(INSTALL_FILE) etc/x2goserver.conf $(DESTDIR)$(ETCDIR)/
-# $(INSTALL_FILE) etc/x2gosql/sql $(DESTDIR)$(ETCDIR)/x2gosql
install_man:
$(INSTALL_DIR) $(DESTDIR)$(MANDIR)
@@ -75,22 +66,14 @@ install_man:
install_version:
$(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)
$(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/versions
- $(INSTALL_FILE) VERSION.x2goserver-pyhoca $(DESTDIR)$(SHAREDIR)/versions/VERSION.x2goserver-pyhoca
+ $(INSTALL_FILE) VERSION.x2goserver-extensions $(DESTDIR)$(SHAREDIR)/versions/VERSION.x2goserver-extensions
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 $(LIB_FILES); do $(RM_FILE) $(DESTDIR)$(LIBDIR)/$$file; done
for file in $(FEATURE_SCRIPTS); do $(RM_FILE) $(DESTDIR)$(SHAREDIR)/x2gofeature.d/$$file; done
uninstall_config:
-# $(RM_FILE) $(DESTDIR)$(ETCDIR)/x2goserver.conf
-# $(RM_FILE) $(DESTDIR)$(ETCDIR)/x2gosql/sql
-# $(RM_DIR) $(DESTDIR)$(ETCDIR) || true
-# $(RM_DIR) $(DESTDIR)$(ETCDIR)/x2gosql/passwords || true
-# $(RM_DIR) $(DESTDIR)$(ETCDIR)/x2gosql || true
uninstall_man:
for file in $(BIN_SCRIPTS); do $(RM_FILE) $(DESTDIR)$(MANDIR)/man8/$$file.8.gz; done
@@ -98,5 +81,5 @@ uninstall_man:
$(RM_DIR) $(DESTDIR)$(MANDIR) || true
uninstall_version:
- $(RM_FILE) $(DESTDIR)$(SHAREDIR)/versions/VERSION.x2goserver-pyhoca
+ $(RM_FILE) $(DESTDIR)$(SHAREDIR)/versions/VERSION.x2goserver-extensions
$(RM_DIR) $(DESTDIR)$(SHAREDIR)/versions || true
diff --git a/x2goserver-fmbindings/VERSION.x2goserver-fmbindings b/x2goserver-fmbindings/VERSION.x2goserver-fmbindings
new file mode 100644
index 0000000..f8d7555
--- /dev/null
+++ b/x2goserver-fmbindings/VERSION.x2goserver-fmbindings
@@ -0,0 +1 @@
+3.1.0.0
diff --git a/x2goserver/bin/x2gobasepath b/x2goserver-fmbindings/bin/x2gofm
similarity index 75%
copy from x2goserver/bin/x2gobasepath
copy to x2goserver-fmbindings/bin/x2gofm
index 35f18bd..9070055 100755
--- a/x2goserver/bin/x2gobasepath
+++ b/x2goserver-fmbindings/bin/x2gofm
@@ -17,14 +17,13 @@
# Free Software Foundation, Inc.,
# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
#
-# Copyright (C) 2007-2012 Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+# Copyright (C) 2012 Milan Knížek <knizek.confy at gmail.com>
+# Copyright (C) 2012 Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
use strict;
-use Cwd;
-use Cwd q{abs_path};
-use File::Basename;
-my $dir = dirname($0);
-my $base_path = abs_path("$dir/..");
-
-print "$base_path";
+my $fname=shift;
+open(F,"<$fname") or die "can't open $fname";
+my $dir=<F>;
+close(F);
+system( "xdg-open $dir" );
diff --git a/x2goserver-fmbindings/man/man8/x2gofm.8 b/x2goserver-fmbindings/man/man8/x2gofm.8
new file mode 100644
index 0000000..4f49941
--- /dev/null
+++ b/x2goserver-fmbindings/man/man8/x2gofm.8
@@ -0,0 +1,26 @@
+'\" -*- 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 x2gofm 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server"
+.SH NAME
+x2gofm \- X2Go wrapper for Browsing X2Go Shared Folders
+.SH SYNOPSIS
+'nh
+.fi
+.ad l
+x2gofm <shared-folder>
+
+.SH DESCRIPTION
+\fBx2gofm\fR is a component of the generic file manager bindings for X2Go's shared folders.
+\fBx2gofm\fR uses XDG (namely x2go-open <dir>) to launch the default file browser on all
+client-side folders shared via X2Go.
+.PP
+The default file browser is defined by the freedesktop.org specification of the running desktop
+environment.
+.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-fmbindings/share/applications/x2gofm.desktop b/x2goserver-fmbindings/share/applications/x2gofm.desktop
new file mode 100644
index 0000000..d747b1e
--- /dev/null
+++ b/x2goserver-fmbindings/share/applications/x2gofm.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=x2gofm
+MimeType=application/sshfsdisk-x2go;application/sshfscdrom-x2go;application/sshfsremovable-x2go
+Exec=x2gofm %f
+Type=Application
+Terminal=false
+NoDisplay=true
+Icon=file-manager
diff --git a/x2goserver-fmbindings/share/mime/packages/sshfs-x2go.xml b/x2goserver-fmbindings/share/mime/packages/sshfs-x2go.xml
new file mode 100644
index 0000000..f6e7a0d
--- /dev/null
+++ b/x2goserver-fmbindings/share/mime/packages/sshfs-x2go.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
+ <mime-type type="application/sshfscdrom-x2go">
+ <comment>SSHFS CDROM</comment>
+ <comment xml:lang="de">SSHFS CDROM</comment>
+ <glob pattern="* (sshfs-cdrom)"/>
+ <generic-icon name="folder-remote"/>
+ </mime-type>
+ <mime-type type="application/sshfsdisk-x2go">
+ <comment>SSHFS Disk</comment>
+ <comment xml:lang="de">SSHFS Freigabe</comment>
+ <glob pattern="* (sshfs-disk)"/>
+ <generic-icon name="folder-remote"/>
+ </mime-type>
+ <mime-type type="application/sshfsremovable-x2go">
+ <comment>SSHFS Removable</comment>
+ <comment xml:lang="de">SSHFS Gerät</comment>
+ <glob pattern="* (sshfs-removable)"/>
+ <generic-icon name="folder-remote"/>
+ </mime-type>
+</mime-info>
diff --git a/x2goserver-xsession/share/x2gofeature.d/x2goserver-xsession.features b/x2goserver-fmbindings/share/x2go/x2gofeature.d/x2goserver-fmbindings.features
similarity index 74%
copy from x2goserver-xsession/share/x2gofeature.d/x2goserver-xsession.features
copy to x2goserver-fmbindings/share/x2go/x2gofeature.d/x2goserver-fmbindings.features
index cc20f85..c1d5827 100755
--- a/x2goserver-xsession/share/x2gofeature.d/x2goserver-xsession.features
+++ b/x2goserver-fmbindings/share/x2go/x2gofeature.d/x2goserver-fmbindings.features
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright (C) 2007-2012 X2Go Project - http://wiki.x2go.org
+# Copyright (C) 2007-2011 X2go Project - http://wiki.x2go.org
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,8 +17,8 @@
# Free Software Foundation, Inc.,
# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
#
-# Copyright (C) 2011-2012 Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
-# Copyright (C) 2011-2012 Heinz-Markus Graesing <heinz-m.graesing at obviously-nice.de>
+# Copyright (C) 2011 Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
+# Copyright (C) 2011 Heinz-Markus Graesing <heinz-m.graesing at obviously-nice.de>
X2GO_LIB_PATH=`echo -n \$(x2gobasepath)/lib/x2go`
@@ -26,10 +26,10 @@ $X2GO_LIB_PATH/x2gosyslog "$0" "info" "$(basename $0) called with options: $@"
X2GO_FEATURE=$1
-# check for X2Go server core features
+# check for X2go server core features
case "$X2GO_FEATURE" in
- "X2GO_XSESSION") echo "ok"; exit 0;;
+ "X2GO_FMBINDINGS") echo "ok"; exit 0;;
*) exit -1;;
esac
diff --git a/x2goserver-printing/Makefile b/x2goserver-printing/Makefile
index 04f93bf..28ee92a 100755
--- a/x2goserver-printing/Makefile
+++ b/x2goserver-printing/Makefile
@@ -41,7 +41,7 @@ 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
+ for man_page in $(man_pages); do $(MAN2HTML_BIN) $(MAN2HTML_SRC)/$$man_page > $(MAN2HTML_DEST)/$$man_page.html; done
clean: clean_man2html
diff --git a/x2goserver-printing/VERSION.x2goserver-printing b/x2goserver-printing/VERSION.x2goserver-printing
index 026a698..075493a 100644
--- a/x2goserver-printing/VERSION.x2goserver-printing
+++ b/x2goserver-printing/VERSION.x2goserver-printing
@@ -1 +1 @@
-3.0.99.10
\ No newline at end of file
+3.1.0.0
\ No newline at end of file
diff --git a/x2goserver-printing/man/man8/x2goprint.8 b/x2goserver-printing/man/man8/x2goprint.8
index 11a5e0a..1786dee 100644
--- a/x2goserver-printing/man/man8/x2goprint.8
+++ b/x2goserver-printing/man/man8/x2goprint.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2goprint 8 "Sep 2011" "Version 3.0.99.x" "X2Go Server Tool"
+.TH x2goprint 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2goprint \- Process X2Go Print Job
.SH SYNOPSIS
diff --git a/x2goserver-pyhoca/Makefile b/x2goserver-pyhoca/Makefile
index aa6a562..8fc06fa 100755
--- a/x2goserver-pyhoca/Makefile
+++ b/x2goserver-pyhoca/Makefile
@@ -41,7 +41,7 @@ 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
+ for man_page in $(man_pages); do $(MAN2HTML_BIN) $(MAN2HTML_SRC)/$$man_page > $(MAN2HTML_DEST)/$$man_page.html; done
clean: clean_man2html
diff --git a/x2goserver-pyhoca/VERSION.x2goserver-pyhoca b/x2goserver-pyhoca/VERSION.x2goserver-pyhoca
index 026a698..075493a 100644
--- a/x2goserver-pyhoca/VERSION.x2goserver-pyhoca
+++ b/x2goserver-pyhoca/VERSION.x2goserver-pyhoca
@@ -1 +1 @@
-3.0.99.10
\ No newline at end of file
+3.1.0.0
\ No newline at end of file
diff --git a/x2goserver-pyhoca/bin/x2gosetkeyboard b/x2goserver-pyhoca/bin/x2gosetkeyboard
index 26a50f8..481d01a 100755
--- a/x2goserver-pyhoca/bin/x2gosetkeyboard
+++ b/x2goserver-pyhoca/bin/x2gosetkeyboard
@@ -38,11 +38,11 @@ test -f ${X2GO_CLIENT_KBD_FILE} || exit 0
read_keyboard_file() {
# retrieve keyboard settings from keyboard file in X2Go session dir
- XKB_RULES=$(cat ${X2GO_CLIENT_KBD_FILE} | egrep "^rules.*" | head -n1 | cut -d "=" -f2 | cut -d" " -f1)
- XKB_MODEL=$(cat ${X2GO_CLIENT_KBD_FILE} | egrep "^model.*" | head -n1 | cut -d "=" -f2 | cut -d" " -f1)
- XKB_LAYOUT=$(cat ${X2GO_CLIENT_KBD_FILE} | egrep "^layout.*" | head -n1 | cut -d "=" -f2 | cut -d" " -f1)
- XKB_VARIANT=$(cat ${X2GO_CLIENT_KBD_FILE} | egrep "^variant.*" | head -n1 | cut -d "=" -f2 | cut -d" " -f1)
- XKB_OPTIONS=$(cat ${X2GO_CLIENT_KBD_FILE} | egrep "^options.*" | head -n1 | cut -d "=" -f2 | cut -d" " -f1)
+ XKB_RULES="$(cat ${X2GO_CLIENT_KBD_FILE} | egrep "^rules.*" | head -n1 | cut -d "=" -f2 | cut -d" " -f1)"
+ XKB_MODEL="$(cat ${X2GO_CLIENT_KBD_FILE} | egrep "^model.*" | head -n1 | cut -d "=" -f2 | cut -d" " -f1)"
+ XKB_LAYOUT="$(cat ${X2GO_CLIENT_KBD_FILE} | egrep "^layout.*" | head -n1 | cut -d "=" -f2 | cut -d" " -f1)"
+ XKB_VARIANT="$(cat ${X2GO_CLIENT_KBD_FILE} | egrep "^variant.*" | head -n1 | cut -d "=" -f2 | cut -d" " -f1)"
+ XKB_OPTIONS="$(cat ${X2GO_CLIENT_KBD_FILE} | egrep "^options.*" | head -n1 | cut -d "=" -f2 | cut -d" " -f1)"
}
diff --git a/x2goserver-pyhoca/man/man8/x2gosetkeyboard.8 b/x2goserver-pyhoca/man/man8/x2gosetkeyboard.8
index 77c5055..a87d080 100644
--- a/x2goserver-pyhoca/man/man8/x2gosetkeyboard.8
+++ b/x2goserver-pyhoca/man/man8/x2gosetkeyboard.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2gosetkeyboard 8 "31 May 2011" "Version 3.0.99.x" "X2Go Server Tool (Extension)"
+.TH x2gosetkeyboard 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool (PyHoca)"
.SH NAME
x2gosetkeyboard \- Allow server-side Keyboard Setting Updates issued by X2Go Client
.SH SYNOPSIS
diff --git a/x2goserver-xsession/Makefile b/x2goserver-xsession/Makefile
index 741ec99..7a56c87 100755
--- a/x2goserver-xsession/Makefile
+++ b/x2goserver-xsession/Makefile
@@ -43,7 +43,7 @@ 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
+# for man_page in $(man_pages); do $(MAN2HTML_BIN) $(MAN2HTML_SRC)/$$man_page > $(MAN2HTML_DEST)/$$man_page.html; done
clean: clean_man2html
diff --git a/x2goserver-xsession/VERSION.x2goserver-xsession b/x2goserver-xsession/VERSION.x2goserver-xsession
index 026a698..075493a 100644
--- a/x2goserver-xsession/VERSION.x2goserver-xsession
+++ b/x2goserver-xsession/VERSION.x2goserver-xsession
@@ -1 +1 @@
-3.0.99.10
\ No newline at end of file
+3.1.0.0
\ No newline at end of file
diff --git a/x2goserver/Makefile b/x2goserver/Makefile
index d934497..c90f1c9 100755
--- a/x2goserver/Makefile
+++ b/x2goserver/Makefile
@@ -44,7 +44,7 @@ build-indep: build_man2html
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
+ for man_page in $(man_pages); do $(MAN2HTML_BIN) $(MAN2HTML_SRC)/$$man_page > $(MAN2HTML_DEST)/$$man_page.html; done
clean: clean_arch clean_man2html
diff --git a/x2goserver/VERSION.x2goserver b/x2goserver/VERSION.x2goserver
index 026a698..075493a 100644
--- a/x2goserver/VERSION.x2goserver
+++ b/x2goserver/VERSION.x2goserver
@@ -1 +1 @@
-3.0.99.10
\ No newline at end of file
+3.1.0.0
\ No newline at end of file
diff --git a/x2goserver/bin/x2gocmdexitmessage b/x2goserver/bin/x2gocmdexitmessage
index a8e122b..e8002ee 100755
--- a/x2goserver/bin/x2gocmdexitmessage
+++ b/x2goserver/bin/x2gocmdexitmessage
@@ -28,4 +28,4 @@ $X2GO_LIB_PATH/x2gosyslog "$0" "info" "$(basename $0) called with options: $@"
$X2GO_LIB_PATH/x2gosyslog "$0" "debug" "command output starts with: $(head -n5 $MESSAGE_FILE | sed s/\n/ /g)"
# return command output of the command that was issued by x2goruncommand
-cat $MESSAGE_FILE
+cat "$MESSAGE_FILE"
diff --git a/x2goserver/bin/x2gofeature b/x2goserver/bin/x2gofeature
index 997418e..f379070 100755
--- a/x2goserver/bin/x2gofeature
+++ b/x2goserver/bin/x2gofeature
@@ -30,7 +30,7 @@ $X2GO_LIB_PATH/x2gosyslog "$0" "info" "$(basename $0) called with options: $@"
X2GO_FEATURE=$1
# run x2gofeature scripts of X2Go extensions
-test -d $X2GO_SHARE_PATH/x2gofeature.d && {
+test -d "$X2GO_SHARE_PATH/x2gofeature.d" && {
for subscript in $X2GO_SHARE_PATH/x2gofeature.d/*.features; do
$subscript $@ && exit 0
done
diff --git a/x2goserver/bin/x2gomountdirs b/x2goserver/bin/x2gomountdirs
index 0d52a7b..58f3590 100755
--- a/x2goserver/bin/x2gomountdirs
+++ b/x2goserver/bin/x2gomountdirs
@@ -33,6 +33,8 @@ setlogmask( LOG_UPTO(x2gologlevel()) );
syslog('info', "x2gomountdirs has been called with options: @ARGV");
+my $tmp_dir = $ENV{'TMP'} || '/tmp';
+
my $type=shift;
my $session=shift;
my $user=shift;
@@ -98,12 +100,12 @@ close(F);
chmod(0600,"$key");
chmod(0600,"$key.ident");
-my $mdir="/tmp/$ENV{'USER'}_media";
+my $mdir="$tmp_dir/$ENV{'USER'}_media";
my $ldir="$ENV{'HOME'}/media";
my $spooldir_lnk="$ENV{'HOME'}/.x2go/C-$session/spool";
-my $spooldir="/tmp/spool_$ENV{'USER'}";
+my $spooldir="$tmp_dir/spool_$ENV{'USER'}";
my $mimeboxdir_lnk="$ENV{'HOME'}/.x2go/C-$session/mimebox";
-my $mimeboxdir="/tmp/mimebox_$ENV{'USER'}";
+my $mimeboxdir="$tmp_dir/mimebox_$ENV{'USER'}";
if (! -e $mdir)
{
@@ -264,44 +266,52 @@ for (my $i=0;$i<@dirs;$i++)
}
if (! $printspool && ! $mimeboxspool && ! $useplasmoid )
{
+
my $fname="$ENV{'HOME'}/Desktop";
- my $current_desktop = "";
- if ($session =~ m/stDGNOME/)
+ my $current_desktop = "NONE";
+ if (($session =~ m/_stDGNOME_dp/) && system("x2gofeature X2GO_GNOMEBINDINGS >/dev/null") == 0)
{
$current_desktop="-gnome";
}
- elsif ($session =~ m/stDLXDE/)
+ elsif (($session =~ m/_stDLXDE_dp/) && system("x2gofeature X2GO_LXDEBINDINGS >/dev/null") == 0)
{
$current_desktop="-lxde";
}
+ elsif (($session =~ m/_stD.*_dp/) && system("x2gofeature X2GO_FMBINDINGS >/dev/null") == 0)
+ {
+ $current_desktop="";
+ }
my $p=@dirs[$i];
$p=~s/\/cygdrive\///g;
$p=~s/\//_/g;
$fname="$fname/$p";
- if ($type eq "dir")
- {
- $fname="$fname\ (sshfs-disk$current_desktop)";
- syslog('info', "creating desktop icon for ,, at dirs[$i]'' at ,,$fname'', media type is: client-side folder on harddrive");
- }
- else
+ if ("$current_desktop" ne "NONE")
{
- if ($fname =~ m/CDROM/)
+ if ($type eq "dir")
{
- $fname="$fname\ (sshfs-cdrom$current_desktop)";
- syslog('info', "creating desktop icon for ,, at dirs[$i]'' at ,,$fname'', media type is: optical disc");
+ $fname="$fname\ (sshfs-disk$current_desktop)";
+ syslog('info', "creating desktop icon for ,, at dirs[$i]'' at ,,$fname'', media type is: client-side folder on harddrive");
}
else
{
- $fname="$fname\ (sshfs-removable$current_desktop)";
- syslog('info', "creating desktop icon for ,, at dirs[$i]'' at ,,$fname'', media type is: removable device");
+ if ($fname =~ m/CDROM/)
+ {
+ $fname="$fname\ (sshfs-cdrom$current_desktop)";
+ syslog('info', "creating desktop icon for ,, at dirs[$i]'' at ,,$fname'', media type is: optical disc");
+ }
+ else
+ {
+ $fname="$fname\ (sshfs-removable$current_desktop)";
+ syslog('info', "creating desktop icon for ,, at dirs[$i]'' at ,,$fname'', media type is: removable device");
+ }
+ $fname=~s/_ramdrive_mnt_//;
}
- $fname=~s/_ramdrive_mnt_//;
+ print "fname: $fname\n";
+ open(F,">$fname");
+ print F "$mntpath\n$session\n\n\0";
+ close(F);
}
- print "fname: $fname\n";
- open(F,">$fname");
- print F "$mntpath\n$session\n\n\0";
- close(F);
}
}
else
diff --git a/x2goserver/bin/x2goresume-session b/x2goserver/bin/x2goresume-session
index 9023e86..e03751a 100755
--- a/x2goserver/bin/x2goresume-session
+++ b/x2goserver/bin/x2goresume-session
@@ -20,25 +20,25 @@
# Copyright (C) 2007-2012 Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
# Copyright (C) 2007-2012 Heinz-Markus Graesing <heinz-m.graesing at obviously-nice.de>
-SESSION_NAME=$1
-X2GO_GEOMETRY=$2
-X2GO_LINK=$3
-X2GO_PACK=$4
-X2GO_KBD_LAYOUT=$5
-X2GO_KBD_TYPE=$6
-X2GO_SET_KBD=$7
+SESSION_NAME="$1"
+X2GO_GEOMETRY="$2"
+X2GO_LINK="$3"
+X2GO_PACK="$4"
+X2GO_KBD_LAYOUT="$5"
+X2GO_KBD_TYPE="$6"
+X2GO_SET_KBD="$7"
X2GO_LIB_PATH=`echo -n \$(x2gobasepath)/lib/x2go`
-X2GO_AGENT_PID=`$X2GO_LIB_PATH/x2gogetagent $SESSION_NAME`
+X2GO_AGENT_PID=`$X2GO_LIB_PATH/x2gogetagent "$SESSION_NAME"`
-X2GO_ROOT=${HOME}/.x2go
+X2GO_ROOT="${HOME}/.x2go"
X2GO_RESIZE=0
X2GO_FULLSCREEN=0
-NX_XINERAMA_CONF=$X2GO_ROOT/C-$SESSION_NAME/xinerama.conf
-if [ -e $NX_XINERAMA_CONF ]
+NX_XINERAMA_CONF="$X2GO_ROOT/C-$SESSION_NAME/xinerama.conf"
+if [ -e "$NX_XINERAMA_CONF" ]
then
- rm $NX_XINERAMA_CONF
+ rm "$NX_XINERAMA_CONF"
fi
$X2GO_LIB_PATH/x2gosyslog "$0" "info" "$(basename $0) called with options: $@"
@@ -54,7 +54,66 @@ then
X2GO_FULLSCREEN=1
fi
-SESSION_DIR=${X2GO_ROOT}/C-${SESSION_NAME}
+
+SESSIONINFO=`x2golistsessions | grep "${SESSION_NAME}" | sed "s/|/,/g"`
+
+GR_PORT=`echo "$SESSIONINFO" | awk -F, {'print $9'}`
+SOUND_PORT=`echo "$SESSIONINFO" | awk -F, {'print $10'}`
+FS_PORT=`echo "$SESSIONINFO" | awk -F, {'print $14'}`
+SERVER=`echo "$SESSIONINFO" | awk -F, {'print $4'}`
+
+$X2GO_LIB_PATH/x2gosyslog "$0" "debug" "old ports: $GR_PORT, $SOUND_PORT, $FS_PORT"
+
+#Get all used in system ports from netstat output
+SYSTEM_PORTS=`netstat -nt -all | awk '{ n=split($0,lines,"\n"); for(i=1;i<=n;i++){split (lines[i],words," ");delim=split(words[4],ports,":"); if(delim>1)printf ("|%s|\n",ports[delim])} }'`
+
+#check if saved in DB ports free
+if grep -q "|${GR_PORT}|" <<<$SYSTEM_PORTS ; then
+ $X2GO_LIB_PATH/x2gosyslog "$0" "debug" "port $GR_PORT is already in use"
+ $X2GO_LIB_PATH/x2gormport "$HOSTNAME" "$SESSION_NAME" "$GR_PORT"
+ GR_PORT=""
+fi
+if grep -q "|${SOUND_PORT}|" <<<$SYSTEM_PORTS ; then
+ $X2GO_LIB_PATH/x2gosyslog "$0" "debug" "port $SOUND_PORT is already in use"
+ $X2GO_LIB_PATH/x2gormport "$HOSTNAME" "$SESSION_NAME" "$SOUND_PORT"
+ SOUND_PORT=""
+fi
+if grep -q "|${FS_PORT}|" <<<$SYSTEM_PORTS ; then
+ $X2GO_LIB_PATH/x2gosyslog "$0" "debug" "port "$FS_PORT" is already in use"
+ $X2GO_LIB_PATH/x2gormport "$HOSTNAME" "$SESSION_NAME" "$FS_PORT"
+ FS_PORT=""
+fi
+
+SSH_PORT=30000 #First ssh port 30001
+
+#Get all used in system ports from X2Go database and netstat output
+USED_PORTS=`$X2GO_LIB_PATH/x2gogetports "$HOSTNAME"; netstat -nt -all | awk '{ n=split($0,lines,"\n"); for(i=1;i<=n;i++){split (lines[i],words," ");delim=split(words[4],ports,":"); if(delim>1)printf ("|%s|\n",ports[delim])} }'`
+
+while [ "$GR_PORT" == "" ] || [ "$SOUND_PORT" == "" ] || [ "$FS_PORT" == "" ]; do
+ OUTPUT=""
+ while [ "$OUTPUT" != "inserted" ]; do
+ SSH_PORT=$(($SSH_PORT + 1))
+
+ #get free port
+ SSH_PORT=`echo "for(\\$i=$SSH_PORT;\\$br ne \"true\";\\$i++){ if(\"$USED_PORTS\" =~ m/\\|\\$i\\|/){\\$br=\"false\";}else{\\$br=\"true\";print \\$i;}}"|perl`
+
+ #check if port in /etc/services
+ SERV=`grep $SSH_PORT /etc/services`
+ if [ "$SERV" == "" ]; then
+ OUTPUT=`$X2GO_LIB_PATH/x2goinsertport "$HOSTNAME" "$SESSION_NAME" "$SSH_PORT"`
+ fi
+ done
+ if [ "$GR_PORT" == "" ]; then
+ GR_PORT="$SSH_PORT"
+ elif [ "$SOUND_PORT" == "" ]; then
+ SOUND_PORT="$SSH_PORT"
+ else
+ FS_PORT="$SSH_PORT"
+ fi
+done
+
+
+SESSION_DIR="${X2GO_ROOT}/C-${SESSION_NAME}"
OPTIONS=`cat ${SESSION_DIR}/options`
GSTR=`echo "$OPTIONS" | awk -F, {'print $13'}`
@@ -63,9 +122,11 @@ FSTR=`echo "$OPTIONS" | awk -F, {'print $15'}`
LSTR=`echo "$OPTIONS" | awk -F, {'print $2'}`
PSTR=`echo "$OPTIONS" | awk -F, {'print $3'}`
KTSTR=`echo "$OPTIONS" | awk -F, {'print $12'}`
+LISTSTR=`echo "$OPTIONS" | awk -F, {'print $17'}`
+
-KTSTR=`echo $KTSTR | sed "s/\//\\\\\\\\\//"`
-X2GO_KBD_TYPE=`echo $X2GO_KBD_TYPE | sed "s/\//\\\\\\\\\//"`
+KTSTR=`echo "$KTSTR" | sed "s/\//\\\\\\\\\//"`
+X2GO_KBD_TYPE=`echo "$X2GO_KBD_TYPE" | sed "s/\//\\\\\\\\\//"`
if [ "$X2GO_SET_KBD" == "0" ]
then
@@ -77,29 +138,30 @@ NEWOPTIONS=`echo "$OPTIONS" | sed -e "s/$LSTR/link=$X2GO_LINK/"\
-e "s/$KTSTR/kbtype=$X2GO_KBD_TYPE/"\
-e "s/$GSTR/geometry=$X2GO_GEOMETRY/"\
-e "s/$RSTR/resize=$X2GO_RESIZE/"\
+ -e "s/$LISTSTR/listen=$GR_PORT/"\
-e "s/$FSTR/fullscreen=$X2GO_FULLSCREEN/"`
-X2GO_CLIENT=`echo $SSH_CLIENT | awk '{print $1}'`
+X2GO_CLIENT=`echo "$SSH_CLIENT" | awk '{print $1}'`
if [ "$X2GO_CLIENT" == "" ]
then
- X2GO_CLIENT=$HOSTNAME
+ X2GO_CLIENT="$HOSTNAME"
fi
-echo "$NEWOPTIONS" >${SESSION_DIR}/options
+echo "$NEWOPTIONS" >"${SESSION_DIR}/options"
-$X2GO_LIB_PATH/x2goresume $X2GO_CLIENT $SESSION_NAME > /dev/null
+$X2GO_LIB_PATH/x2goresume "$X2GO_CLIENT" "$SESSION_NAME" "$GR_PORT" "$SOUND_PORT" "$FS_PORT" > /dev/null
# run x2goserver-extensions for pre-resume
-x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME pre-resume || true
+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 || true
+ 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 || true
+ 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"
@@ -108,10 +170,13 @@ kill -HUP $X2GO_AGENT_PID &>/dev/null && {
# If we reach here it means that the x2goagent process of the session has vanisshed
# If this happens than we mark the session as finished...
- $X2GO_LIB_PATH/x2gochangestatus 'F' $SESSION_NAME > /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 || true
+ x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions "$SESSION_NAME" fail-resume || true
}
+echo "gr_port=$GR_PORT"
+echo "sound_port=$SOUND_PORT"
+echo "fs_port=$FS_PORT"
diff --git a/x2goserver/bin/x2goruncommand b/x2goserver/bin/x2goruncommand
index 451ee59..0a664b6 100755
--- a/x2goserver/bin/x2goruncommand
+++ b/x2goserver/bin/x2goruncommand
@@ -36,11 +36,11 @@ export X2GO_AGENT_PID
export X2GO_SESSION
cmd=`echo $cmd |sed 's/X2GO_SPACE_CHAR/ /g'`
-X2GO_ROOT=${HOME}/.x2go
-MESSAGE_FILE=$X2GO_ROOT/C-$X2GO_SESSION/cmdoutput
-echo "exec $cmd" >> $MESSAGE_FILE
+X2GO_ROOT="${HOME}/.x2go"
+MESSAGE_FILE="$X2GO_ROOT/C-$X2GO_SESSION/cmdoutput"
+echo "exec $cmd" >> "$MESSAGE_FILE"
-NX_XINERAMA_CONF=$X2GO_ROOT/C-$X2GO_SESSION/xinerama.conf
+NX_XINERAMA_CONF="$X2GO_ROOT/C-$X2GO_SESSION/xinerama.conf"
export NX_XINERAMA_CONF
# make Kerberos's ticket cache known inside the X2Go session
@@ -52,7 +52,7 @@ export QT_GRAPHICSSYSTEM=native
IMEXIT="false"
NX_XINERAMA_LIBS=/usr/lib/nx/X11/Xinerama
-test -n $LD_LIBRARY_PATH && LD_LIBRARY_PATH=$NX_XINERAMA_LIBS:$LD_LIBRARY_PATH || LD_LIBRARY_PATH=$NX_XINERAMA_LIBS
+test -n "$LD_LIBRARY_PATH" && LD_LIBRARY_PATH=$NX_XINERAMA_LIBS:$LD_LIBRARY_PATH || LD_LIBRARY_PATH="$NX_XINERAMA_LIBS"
export LD_LIBRARY_PATH
if [ "$sndsys" == "esd" ]; then
@@ -116,14 +116,14 @@ fi
EXEC=`which $cmd`
-BNAME=`basename $EXEC`
+BNAME=`basename "$EXEC"`
if [ "$BNAME" == "rdesktop" ]
then
IMEXIT="true"
fi
# run x2goserver-extensions for pre-runcommand
-x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME pre-runcommand || true
+x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions "$SESSION_NAME" pre-runcommand || true
sucessful_run=false
if [ "$EXEC" != "" ] && [ -x $EXEC ]; then
@@ -148,26 +148,26 @@ 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 || true
+ 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
+ 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 || true
+ 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 || true
+x2gofeature X2GO_DESKTOPSHARING >/dev/null && x2goterminate-desktopsharing "$X2GO_SESSION" || true
kill -TERM $X2GO_AGENT_PID
-$X2GO_LIB_PATH/x2gochangestatus 'F' $X2GO_SESSION > /dev/null
+$X2GO_LIB_PATH/x2gochangestatus 'F' "$X2GO_SESSION" > /dev/null
export HOSTNAME
-x2goumount-session $X2GO_SESSION
+x2goumount-session "$X2GO_SESSION"
# 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")&
fi
diff --git a/x2goserver/bin/x2gostartagent b/x2goserver/bin/x2gostartagent
index a4952bc..679852e 100755
--- a/x2goserver/bin/x2gostartagent
+++ b/x2goserver/bin/x2gostartagent
@@ -27,24 +27,26 @@ $X2GO_LIB_PATH/x2gosyslog "$0" "info" "$(basename $0) called with options: $@"
X2GO_PORT=49 #First port for X2GO=50
SSH_PORT=30000 #First ssh port 30001
-X2GO_ROOT=${HOME}/.x2go
+X2GO_ROOT="${HOME}/.x2go"
REMOTE=localhost
-X2GO_CLIENT=`echo $SSH_CLIENT | awk '{print $1}'`
+X2GO_CLIENT=`echo "$SSH_CLIENT" | awk '{print $1}'`
$X2GO_LIB_PATH/x2gosyslog "$0" "debug" "client announced itself as ,,$X2GO_CLIENT''"
-X2GO_GEOMETRY=$1; shift
-X2GO_LINK=$1; shift
-X2GO_PACK=$1; shift
-X2GO_TYPE=$1; shift
-X2GO_KBD_LAYOUT=$1; shift
-X2GO_KBD_TYPE=$1; shift
-X2GO_SET_KBD=$1; shift
-X2GO_STYPE=$1; shift
-X2GO_CMD=$1; shift
+X2GO_GEOMETRY="$1"; shift
+X2GO_LINK="$1"; shift
+X2GO_PACK="$1"; shift
+X2GO_TYPE="$1"; shift
+X2GO_KBD_LAYOUT="$1"; shift
+X2GO_KBD_TYPE="$1"; shift
+X2GO_SET_KBD="$1"; shift
+X2GO_STYPE="$1"; shift
+X2GO_CMD="$1"; shift
X2GO_RESIZE=0
X2GO_FULLSCREEN=0
+XAUTHORITY=${XAUTHORITY:-"$HOME/.Xauthority"}
+
if [ "$X2GO_STYPE" == "S" ]; then
SHADOW_MODE=`echo "$X2GO_CMD"|awk '{split($0,a,"XSHAD"); print a[1]}'`
@@ -58,7 +60,7 @@ if [ "$X2GO_STYPE" == "S" ]; then
$X2GO_LIB_PATH/x2gosyslog "$0" "debug" "shadow session requested: mode $SHADOW_MODE, user: $SHADOW_USER, desktop: $SHADOW_DESKTOP"
} || {
- SHADREQ_USER=$1; shift
+ SHADREQ_USER="$1"; shift
$X2GO_LIB_PATH/x2gosyslog "$0" "debug" "preparing shadow session request for user $SHADREQ_USER, agent starts for user ${USER}"
}
@@ -66,18 +68,18 @@ if [ "$X2GO_STYPE" == "S" ]; then
$X2GO_LIB_PATH/x2gosyslog "$0" "notice" "user ,,$USER'' requests desktop sharing from user ,,$SHADOW_USER'' for desktop ,,$SHADOW_DESKTOP''"
$X2GO_LIB_PATH/x2gosyslog "$0" "debug" "executing command: x2godesktopsharing client $X2GO_CLIENT $X2GO_GEOMETRY $X2GO_LINK $X2GO_PACK $X2GO_TYPE $X2GO_KBD_LAYOUT $X2GO_KBD_TYPE $X2GO_SET_KBD $X2GO_STYPE $X2GO_CMD $USER"
- OUTPUT=`x2godesktopsharing client $X2GO_CLIENT $X2GO_GEOMETRY $X2GO_LINK $X2GO_PACK $X2GO_TYPE $X2GO_KBD_LAYOUT $X2GO_KBD_TYPE $X2GO_SET_KBD $X2GO_STYPE $X2GO_CMD $USER`
+ OUTPUT=`x2godesktopsharing client "$X2GO_CLIENT" "$X2GO_GEOMETRY" "$X2GO_LINK" "$X2GO_PACK" "$X2GO_TYPE" "$X2GO_KBD_LAYOUT" "$X2GO_KBD_TYPE" "$X2GO_SET_KBD" "$X2GO_STYPE" "$X2GO_CMD" "$USER"`
$X2GO_LIB_PATH/x2gosyslog "$0" "debug" "command result is: $OUTPUT"
if [ "$OUTPUT" == "DENY" ]; then
echo "ACCESS DENIED" 1>&2
$X2GO_LIB_PATH/x2gosyslog "$0" "err" "ERROR: user $SHADOW_USER denied desktop sharing session"
exit -1
fi
- X2GO_COOKIE=`echo $OUTPUT | awk '{print $2}'`
- X2GO_PORT=`echo $OUTPUT | awk '{print $1}'`
+ X2GO_COOKIE=`echo "$OUTPUT" | awk '{print $2}'`
+ X2GO_PORT=`echo "$OUTPUT" | awk '{print $1}'`
$X2GO_LIB_PATH/x2gosyslog "$0" "debug" "received shadow session information: cookie: $X2GO_COOKIE, port: $X2GO_PORT"
- xauth add ${HOSTNAME}/unix:${X2GO_PORT} MIT-MAGIC-COOKIE-1 ${X2GO_COOKIE}
- xauth add ${HOSTNAME}:${X2GO_PORT} MIT-MAGIC-COOKIE-1 ${X2GO_COOKIE}
+ xauth -f "$XAUTHORITY" add "${HOSTNAME}/unix:${X2GO_PORT}" MIT-MAGIC-COOKIE-1 "${X2GO_COOKIE}"
+ xauth -f "$XAUTHORITY" add "${HOSTNAME}:${X2GO_PORT}" MIT-MAGIC-COOKIE-1 "${X2GO_COOKIE}"
echo $X2GO_PORT
echo $X2GO_COOKIE
@@ -91,14 +93,14 @@ if [ "$X2GO_STYPE" == "S" ]; then
fi
LIMIT=`x2gosessionlimit`
-LWORD=`echo $LIMIT | awk '{print $1}'`
+LWORD=`echo "$LIMIT" | awk '{print $1}'`
if [ "$LWORD" == "LIMIT" ]; then
echo $LIMIT 1>&2
exit -1
fi
-export NX_CLIENT=$X2GO_LIB_PATH/x2gosuspend-agent
+export NX_CLIENT="$X2GO_LIB_PATH/x2gosuspend-agent"
COLORDEPTH=`echo "$X2GO_TYPE"|awk '{split($0,a,"-depth_"); print a[2]}'`
@@ -111,11 +113,14 @@ elif [ "$X2GO_STYPE" == "S" ]; then
fi
if [ "$X2GO_CLIENT" == "" ]; then
- X2GO_CLIENT=$HOSTNAME
+ X2GO_CLIENT="$HOSTNAME"
fi
USED_DISPLAYS=`$X2GO_LIB_PATH/x2gogetdisplays $HOSTNAME`
+#Get all used in system ports from X2Go database and netstat output
+USED_PORTS=`$X2GO_LIB_PATH/x2gogetports $HOSTNAME ; netstat -nt -all | awk '{ n=split($0,lines,"\n"); for(i=1;i<=n;i++){split (lines[i],words," ");delim=split(words[4],ports,":"); if(delim>1)printf ("|%s|\n",ports[delim])} }'`
+
while [ "$OUTPUT" != "inserted" ]; do
X2GO_PORT=$(($X2GO_PORT + 1))
@@ -125,45 +130,39 @@ while [ "$OUTPUT" != "inserted" ]; do
NX_PORT=$(($X2GO_PORT + 6000))
if [ -e "/tmp/.X${X2GO_PORT}-lock" ] ||
[ -e "/tmp/.X11-unix/X${X2GO_PORT}" ] ||
- netstat -ntl 2>/dev/null | grep -q ":${NX_PORT} "; then
+ grep -q "|${NX_PORT}|" <<<$USED_PORTS ; then
OUTPUT="XXX"
else
- SESSION_NAME=${USER}-${X2GO_PORT}-`date +"%s"`
+ SESSION_NAME="${USER}-${X2GO_PORT}-`date +\"%s\"`"
if [ "$COLORDEPTH" != "" ]; then
- SESSION_NAME="$SESSION_NAME"_st${SESSION_TYPE}${X2GO_CMD}_dp${COLORDEPTH}
+ SESSION_NAME="${SESSION_NAME}_st${SESSION_TYPE}${X2GO_CMD}_dp${COLORDEPTH}"
SESSION_NAME=`echo "$SESSION_NAME" | sed -e "s/:/PP/g"`
fi
- OUTPUT=`$X2GO_LIB_PATH/x2goinsertsession $X2GO_PORT $HOSTNAME $SESSION_NAME`
+ OUTPUT=`$X2GO_LIB_PATH/x2goinsertsession "$X2GO_PORT" "$HOSTNAME" "$SESSION_NAME"`
fi
done
-USED_PORTS=`$X2GO_LIB_PATH/x2gogetports $HOSTNAME`
-
-
while [ "$GR_PORT" == "" ] || [ "$SOUND_PORT" == "" ] || [ "$FS_PORT" == "" ]; do
OUTPUT=""
while [ "$OUTPUT" != "inserted" ]; do
SSH_PORT=$(($SSH_PORT + 1))
- #check if port in /etc/services
+ #get free port
SSH_PORT=`echo "for(\\$i=$SSH_PORT;\\$br ne \"true\";\\$i++){ if(\"$USED_PORTS\" =~ m/\\|\\$i\\|/){\\$br=\"false\";}else{\\$br=\"true\";print \\$i;}}"|perl`
+ #check if port in /etc/services
SERV=`grep $SSH_PORT /etc/services`
if [ "$SERV" == "" ]; then
- CR=`echo "use IO::Socket; \\$sock = new IO::Socket::INET ( LocalAddr => 'localhost',LocalPort => \"$SSH_PORT\",\
- Proto => 'tcp',Listen => 1,Reuse =>1 ) or die ;print \"OK\";close(\\$sock);"|perl 2>/dev/null`
- if [ "$CR" == "OK" ]; then
- OUTPUT=`$X2GO_LIB_PATH/x2goinsertport $HOSTNAME $SESSION_NAME $SSH_PORT`
- fi
+ OUTPUT=`$X2GO_LIB_PATH/x2goinsertport "$HOSTNAME" "$SESSION_NAME" "$SSH_PORT"`
fi
done
if [ "$GR_PORT" == "" ]; then
- GR_PORT=$SSH_PORT
+ GR_PORT="$SSH_PORT"
elif [ "$SOUND_PORT" == "" ]; then
- SOUND_PORT=$SSH_PORT
+ SOUND_PORT="$SSH_PORT"
else
- FS_PORT=$SSH_PORT
+ FS_PORT="$SSH_PORT"
fi
done
@@ -178,23 +177,23 @@ if [ "$X2GO_GEOMETRY" == "fullscreen" ]; then
fi
if [ "$X2GO_STYPE" == "S" ]; then
- X2GO_GEOMETRY=`DISPLAY=$SHADOW_DESKTOP xwininfo -root | grep geometry`
+ X2GO_GEOMETRY=`DISPLAY="$SHADOW_DESKTOP" xwininfo -root | grep geometry`
X2GO_GEOMETRY=`echo "$X2GO_GEOMETRY" | sed -e "s/ //g"`
X2GO_GEOMETRY=`echo "$X2GO_GEOMETRY" | sed -e "s/-geometry//"`
fi
-SESSION_DIR=${X2GO_ROOT}/C-${SESSION_NAME}
+SESSION_DIR="${X2GO_ROOT}/C-${SESSION_NAME}"
-if [ ! -d $X2GO_ROOT ]; then
- mkdir $X2GO_ROOT
+if [ ! -d "$X2GO_ROOT" ]; then
+ mkdir "$X2GO_ROOT"
fi
-if [ ! -d $X2GO_ROOT/ssh ]; then
- mkdir $X2GO_ROOT/ssh
+if [ ! -d "$X2GO_ROOT/ssh" ]; then
+ mkdir "$X2GO_ROOT/ssh"
fi
-if [ ! -d $SESSION_DIR ]; then
- mkdir $SESSION_DIR
+if [ ! -d "$SESSION_DIR" ]; then
+ mkdir "$SESSION_DIR"
fi
X2GO_COOKIE=`mcookie`
@@ -205,8 +204,8 @@ PATH="${PATH}:${X2GO_BIN}/"
export PATH
-xauth add ${HOSTNAME}/unix:${X2GO_PORT} MIT-MAGIC-COOKIE-1 ${X2GO_COOKIE}
-xauth add ${HOSTNAME}:${X2GO_PORT} MIT-MAGIC-COOKIE-1 ${X2GO_COOKIE}
+xauth -f "$XAUTHORITY" add "${HOSTNAME}/unix:${X2GO_PORT}" MIT-MAGIC-COOKIE-1 "${X2GO_COOKIE}"
+xauth -f "$XAUTHORITY" add "${HOSTNAME}:${X2GO_PORT}" MIT-MAGIC-COOKIE-1 "${X2GO_COOKIE}"
if [ "$X2GO_SET_KBD" == "0" ]
@@ -217,7 +216,7 @@ else
fi
-echo "${X2GO_HOST}:${X2GO_PORT}" >${SESSION_DIR}/options
+echo "${X2GO_HOST}:${X2GO_PORT}" >"${SESSION_DIR}/options"
NX_AGENT=":${X2GO_PORT}"
SAVED_DISPLAY="$DISPLAY"
@@ -238,14 +237,14 @@ else
fi
# run x2goserver-extensions for pre-start
-x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME pre-start || true
+x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions "$SESSION_NAME" pre-start || true
SESSION_WINDOW_TITLE="X2GO-${SESSION_NAME}"
if [ "$X2GO_STYPE" == "S" ]; then
- x2goagent $X2GODPIOPTION_ -$SESSION_TYPE -auth ~/.Xauthority -S -shadow $SHADOW_DESKTOP -shadowmode $SHADOW_MODE -geometry ${X2GO_GEOMETRY} -name "${SESSION_WINDOW_TITLE}" ${NX_AGENT} 2>${SESSION_DIR}/session.log &
+ x2goagent $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 $X2GODPIOPTION_ $XDMCPOPT -$SESSION_TYPE -auth ~/.Xauthority -geometry ${X2GO_GEOMETRY} -name "${SESSION_WINDOW_TITLE}" ${NX_AGENT} 2>${SESSION_DIR}/session.log &
+ x2goagent $X2GODPIOPTION_ $XDMCPOPT -$SESSION_TYPE -auth "$XAUTHORITY" -geometry ${X2GO_GEOMETRY} -name "${SESSION_WINDOW_TITLE}" "${NX_AGENT}" 2>"${SESSION_DIR}/session.log" &
fi
@@ -255,19 +254,19 @@ 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 || true
+ 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 || true
+ x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions "$SESSION_NAME" fail-start || true
}
X2GO_SND_PORT=1024
-$X2GO_LIB_PATH/x2gocreatesession $X2GO_COOKIE $X2GO_AGENT_PID $X2GO_CLIENT $GR_PORT $SOUND_PORT $FS_PORT $SESSION_NAME > /dev/null
+$X2GO_LIB_PATH/x2gocreatesession "$X2GO_COOKIE" "$X2GO_AGENT_PID" "$X2GO_CLIENT" "$GR_PORT" "$SOUND_PORT" "$FS_PORT" "$SESSION_NAME" > /dev/null
echo $X2GO_PORT
echo $X2GO_COOKIE
diff --git a/x2goserver/bin/x2gosuspend-session b/x2goserver/bin/x2gosuspend-session
index b9eeb7f..f823c69 100755
--- a/x2goserver/bin/x2gosuspend-session
+++ b/x2goserver/bin/x2gosuspend-session
@@ -21,34 +21,34 @@
# Copyright (C) 2007-2012 Heinz-Markus Graesing <heinz-m.graesing at obviously-nice.de>
if [ $# -eq 1 ]; then
- SESSION_NAME=$1
+ SESSION_NAME="$1"
else
- SESSION_NAME=$X2GO_SESSION
+ SESSION_NAME="$X2GO_SESSION"
fi
X2GO_LIB_PATH=`echo -n \$(x2gobasepath)/lib/x2go`
$X2GO_LIB_PATH/x2gosyslog "$0" "info" "$(basename $0) called with options: $@"
-X2GO_AGENT_PID=`$X2GO_LIB_PATH/x2gogetagent $SESSION_NAME`
+X2GO_AGENT_PID=`$X2GO_LIB_PATH/x2gogetagent "$SESSION_NAME"`
X2GO_AGENT_PID=`echo "$X2GO_AGENT_PID"| awk {'print $1'}`
# workaround for knotify, keep silent in case no knotify is running
killall -HUP knotify &>/dev/null
-$X2GO_LIB_PATH/x2gochangestatus 'S' $SESSION_NAME > /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 || true
+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 || true
+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 || true
+ 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"
@@ -57,13 +57,13 @@ kill -HUP $X2GO_AGENT_PID &>/dev/null && {
# If we reach here it means that the x2goagent process of the session has vanisshed
# If this happens than we mark the session as finished...
- $X2GO_LIB_PATH/x2gochangestatus 'F' $SESSION_NAME > /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 || true
+ x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions "$SESSION_NAME" fail-suspend || true
}
-export HOSTNAME
-x2goumount-session $SESSION_NAME
+export HOSTNAME
+x2goumount-session "$SESSION_NAME"
diff --git a/x2goserver/bin/x2goterminate-session b/x2goserver/bin/x2goterminate-session
index 10df64a..271f714 100755
--- a/x2goserver/bin/x2goterminate-session
+++ b/x2goserver/bin/x2goterminate-session
@@ -21,31 +21,31 @@
# Copyright (C) 2007-2012 Heinz-Markus Graesing <heinz-m.graesing at obviously-nice.de>
if [ $# -eq 1 ]; then
- SESSION_NAME=$1
+ SESSION_NAME="$1"
else
- SESSION_NAME=$X2GO_SESSION
+ SESSION_NAME="$X2GO_SESSION"
fi
X2GO_LIB_PATH=`echo -n \$(x2gobasepath)/lib/x2go`
$X2GO_LIB_PATH/x2gosyslog "$0" "info" "$(basename $0) called with options: $@"
-X2GO_AGENT_PID=`$X2GO_LIB_PATH/x2gogetagent $SESSION_NAME`
+X2GO_AGENT_PID=`$X2GO_LIB_PATH/x2gogetagent "$SESSION_NAME"`
X2GO_AGENT_PID=`echo "$X2GO_AGENT_PID"| awk {'print $1'}`
-$X2GO_LIB_PATH/x2gochangestatus 'F' $SESSION_NAME > /dev/null
+$X2GO_LIB_PATH/x2gochangestatus 'F' "$SESSION_NAME" > /dev/null
# stop x2godesktopsharing process gracefully...
-x2gofeature X2GO_DESKTOPSHARING &>/dev/null && x2goterminate-desktopsharing $SESSION_NAME || true
+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 || true
+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"
+ $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 || true
+ 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,14 +56,14 @@ 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 || true
+ x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions "$SESSION_NAME" fail-terminate || true
}
export HOSTNAME
-x2goumount-session $SESSION_NAME
+x2goumount-session "$SESSION_NAME"
# if we are not running in log level debug (=7) then clean up session dir
if [ "$($X2GO_LIB_PATH/x2gologlevel)" != "7" ]; then
- (sleep 10; rm -Rf $HOME/.x2go/C-$X2GO_SESSION)&
+ (sleep 10; rm -Rf "$HOME/.x2go/C-$X2GO_SESSION")&
fi
diff --git a/x2goserver/bin/x2goumount-session b/x2goserver/bin/x2goumount-session
index 46befc8..88bc7fc 100755
--- a/x2goserver/bin/x2goumount-session
+++ b/x2goserver/bin/x2goumount-session
@@ -34,6 +34,8 @@ setlogmask( LOG_UPTO(x2gologlevel()) );
syslog('info', "x2goumount-session has been called with options: @ARGV");
+my $tmp_dir = $ENV{'TMP'} || '/tmp';
+
my $session=shift;
my $only_path=shift;
my $uname=$ENV{'USER'};
@@ -44,9 +46,9 @@ if ($only_path)
$only_path=~s/\/ramdrive\/mnt\///;
$only_path=~ s/\//_/g;
- ### FIXME: handle CDROM and Removable Media mounts here, as well!!!
+ ### FIXME: handle CDROM and Removable Media mounts here, as well!!!
- $only_path="/tmp/$ENV{'USER'}_media/disk/$only_path";
+ $only_path="$tmp_dir/$ENV{'USER'}_media/disk/$only_path";
# ^^^^
syslog('debug',"x2goumount-session unmounting $only_path only");
}
@@ -75,7 +77,7 @@ for ($i=0;$i<@outp;$i++)
@outp[$i]=~s/ //g;
chomp(@outp[$i]);
chomp(@outp[$i]);
- chomp(@outp[$i]);
+ chomp(@outp[$i]);
my @line=split('\|',"@outp[$i]");
my $path="@line[0]:@line[1]";
if ($only_path)
@@ -113,45 +115,54 @@ break:
syslog('err', "ERROR: failed to unmount @line[1]");
if ($use_zenity == 0)
{
- system("kdialog --error \"@line[1]\"&");
+ system("which kdialog &>/dev/null && kdialog --error \"ERROR (X2Go): Failed to unmount @line[1]\"&");
}
else
{
- system("zenity --error --text \"@line[1]\"&");
+ system("which zenity &>/dev/null && zenity --error --text \"ERROR (X2Go): Failed to unmount @line[1]\"&");
}
}
}
if (! $found)
{
+
+ $remote=~s/\/cygdrive\///g;
$remote=~s/\//_/g;
$remote=(split(":","$remote"))[1];
$remote="$ENV{'HOME'}/Desktop/$remote";
- my $current_desktop = '';
- if ($session =~ m/stDGNOME/)
+ my $current_desktop = 'NONE';
+ if (($session =~ m/_stDGNOME_dp/) && system("x2gofeature X2GO_GNOMEBINDINGS >/dev/null") == 0)
{
$current_desktop="-gnome";
}
- elsif ($session =~ m/stDLXDE/)
+ elsif (($session =~ m/_stDLXDE_dp/) && system("x2gofeature X2GO_LXDEBINDINGS >/dev/null") == 0)
{
$current_desktop="-lxde";
}
-
- if ( -e "$remote\ (sshfs-disk$current_desktop)")
+ elsif (($session =~ m/_st.*_dp/) && system("x2gofeature X2GO_FMBINDINGS >/dev/null") == 0)
{
- syslog('info', "removing desktop icon ,,$remote (sshfs-disk$current_desktop)''");
- unlink("$remote\ (sshfs-disk$current_desktop)");
+ $current_desktop="";
}
- $remote=~s/%2framdrive%2fmnt%2f//;
- if ( -e "$remote\ (sshfs-removable$current_desktop)")
- {
- syslog('info', "removing desktop icon ,,$remote\ (sshfs-removable$current_desktop)''");
- unlink("$remote\ (sshfs-removable$current_desktop)");
- }
- if ( -e "$remote\ (sshfs-cdrom/$current_desktop)")
+
+ if ("$current_desktop" ne "NONE")
{
- syslog('info', "removing desktop icon ,,$remote\ (sshfs-cdrom$current_desktop)''");
- unlink("$remote\ (sshfs-cdrom$current_desktop)");
+ if ( -e "$remote\ (sshfs-disk$current_desktop)")
+ {
+ syslog('info', "removing desktop icon ,,$remote (sshfs-disk$current_desktop)''");
+ unlink("$remote\ (sshfs-disk$current_desktop)");
+ }
+ $remote=~s/%2framdrive%2fmnt%2f//;
+ if ( -e "$remote\ (sshfs-removable$current_desktop)")
+ {
+ syslog('info', "removing desktop icon ,,$remote\ (sshfs-removable$current_desktop)''");
+ unlink("$remote\ (sshfs-removable$current_desktop)");
+ }
+ if ( -e "$remote\ (sshfs-cdrom/$current_desktop)")
+ {
+ syslog('info', "removing desktop icon ,,$remote\ (sshfs-cdrom$current_desktop)''");
+ unlink("$remote\ (sshfs-cdrom$current_desktop)");
+ }
}
db_deletemount ($session, @line[1]);
rmdir (@line[1]);
diff --git a/x2goserver/bin/x2goversion b/x2goserver/bin/x2goversion
index 3720bf0..a1fea45 100755
--- a/x2goserver/bin/x2goversion
+++ b/x2goserver/bin/x2goversion
@@ -40,8 +40,8 @@ if [ -n "$1" ]; then
echo "Version information for X2Go component '$X2GO_COMPONENT' is not available." >&1
fi
else
- cd ${X2GO_VERSIONS_BASEPATH}
- for compfile in `ls ${X2GO_VERSIONS_BASEPATH}`; do
+ cd "${X2GO_VERSIONS_BASEPATH}"
+ for compfile in `ls "${X2GO_VERSIONS_BASEPATH}"`; do
X2GO_COMPONENT="$(echo $compfile | cut -d"." -f2)"
X2GO_COMPONENT_VERSION="$(get_version $compfile)"
echo "${X2GO_COMPONENT}: ${X2GO_COMPONENT_VERSION}"
diff --git a/x2goserver/doc/README.upgrade-pgsql-database b/x2goserver/doc/README.upgrade-pgsql-database
new file mode 100644
index 0000000..5e7de9d
--- /dev/null
+++ b/x2goserver/doc/README.upgrade-pgsql-database
@@ -0,0 +1,42 @@
+
+#######################################
+###
+### X2Go DB maintenance after upgrades
+###
+#######################################
+
+UPGRADING
+=========
+
+Normally no DB upgrades are necessary on x2goserver package upgrades. However, there are some
+exceptions for some specific version of the x2goserver package.
+
+
+Upgrading to x2goserver 3.1.0.0
+-------------------------------
+
+From: x2goserver (<= 3.0.99.10)
+To: x2goserver (>= 3.1.0.0)
+Description: The user (access) permissions on table ,,used_ports'' have been changed.
+ X2Go users in the PostgreSQL database need access to this new column.
+ .
+ Alternative 1: recreate all X2Go db users
+ .
+ x2godbadmin --rmuser <username>
+ x2godbadmin --adduser <username>
+ .
+ Alternative 2:
+ .
+ Run this SQL command for each x2gouser_<user> in the X2Go PostgreSQL database
+ .
+ $ su - postgres
+ $ psql
+ psql (<YOUR-PSQL-VERSION)
+ Type "help" for help.
+ .
+ postgres=# \connect x2go_sessions
+ x2go_sessions=# GRANT SELECT ON used_ports TO "x2gouser_<username1>";
+ x2go_sessions=# GRANT SELECT ON used_ports TO "x2gouser_<username2>";
+ ...
+
+
diff --git a/x2goserver/lib/x2godbwrapper.pm b/x2goserver/lib/x2godbwrapper.pm
index df707df..aec0294 100644
--- a/x2goserver/lib/x2godbwrapper.pm
+++ b/x2goserver/lib/x2godbwrapper.pm
@@ -86,7 +86,7 @@ if ($backend eq 'postgres')
use base 'Exporter';
our @EXPORT=('db_listsessions','db_listsessions_all', 'db_getservers', 'db_getagent', 'db_resume', 'db_changestatus',
- 'db_getdisplays', 'db_insertsession', 'db_getports', 'db_insertport', 'db_createsession', 'db_insertmount',
+ 'db_getdisplays', 'db_insertsession', 'db_getports', 'db_insertport', 'db_rmport', 'db_createsession', 'db_insertmount',
'db_getmounts', 'db_deletemount', 'db_getdisplay', 'dbsys_getmounts', 'dbsys_listsessionsroot',
'dbsys_listsessionsroot_all', 'dbsys_rmsessionsroot');
@@ -100,6 +100,8 @@ sub dbsys_rmsessionsroot
my $sth=$dbh->prepare("delete from sessions where session_id='$sid'");
$sth->execute() or die;
+ $sth=$dbh->prepare("delete from used_ports where session_id='$sid'");
+ $sth->execute() or die;
}
if($backend eq 'sqlite')
{
@@ -230,7 +232,7 @@ sub db_deletemount
my $path=shift or die "argument \"path\" missed";
if ($backend eq 'postgres')
{
- my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $_;
+ my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $_;
my $sth=$dbh->prepare("delete from mounts_view where session_id='$sid' and path='$path'");
$sth->execute();
$sth->finish();
@@ -251,7 +253,7 @@ sub db_insertmount
my $res_ok=0;
if ($backend eq 'postgres')
{
- my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $_;
+ my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $_;
my $sth=$dbh->prepare("insert into mounts (session_id,path,client) values ('$sid','$path','$client')");
$sth->execute();
if (!$sth->err())
@@ -279,7 +281,7 @@ sub db_insertsession
my $sid=shift or die "argument \"session_id\" missed";
if ($backend eq 'postgres')
{
- my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $_;
+ my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $_;
my $sth=$dbh->prepare("insert into sessions (display,server,uname,session_id) values ('$display','$server','$uname','$sid')");
$sth->execute()or die $_;
$sth->finish();
@@ -307,7 +309,7 @@ sub db_createsession
my $sid=shift or die "argument \"session_id\" missed";
if ($backend eq 'postgres')
{
- my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $_;
+ my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $_;
my $sth=$dbh->prepare("update sessions_view set status='R',last_time=now(),
cookie='$cookie',agent_pid='$pid',client='$client',gr_port='$gr_port',
sound_port='$snd_port',fs_port='$fs_port' where session_id='$sid'");
@@ -333,7 +335,7 @@ sub db_insertport
my $sshport=shift or die "argument \"port\" missed";
if ($backend eq 'postgres')
{
- my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $_;
+ my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $_;
my $sth=$dbh->prepare("insert into used_ports (server,session_id,port) values ('$server','$sid','$sshport')");
$sth->execute()or die;
$sth->finish();
@@ -346,32 +348,56 @@ sub db_insertport
syslog('debug', "db_insertport called, session ID: $sid, server: $server, SSH port: $sshport");
}
+sub db_rmport
+{
+ my $server=shift or die "argument \"server\" missed";
+ my $sid=shift or die "argument \"session_id\" missed";
+ my $sshport=shift or die "argument \"port\" missed";
+ if ($backend eq 'postgres')
+ {
+ my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $_;
+ my $sth=$dbh->prepare("delete from used_ports where server='$server' and session_id='$sid' and port='$sshport'");
+ $sth->execute()or die;
+ $sth->finish();
+ $dbh->disconnect();
+ }
+ if ($backend eq 'sqlite')
+ {
+ `$x2go_lib_path/x2gosqlitewrapper rmport $server $sid $sshport`;
+ }
+ syslog('debug', "db_rmport called, session ID: $sid, server: $server, SSH port: $sshport");
+}
+
sub db_resume
{
my $client=shift or die "argument \"client\" missed";
- my $sid=shift or die "argument \"session_id\" missed";
+ my $sid=shift or die "argument \"session_id\" missed";
+ my $gr_port=shift or die "argument \"gr_port\" missed";
+ my $sound_port=shift or die "argument \"sound_port\" missed";
+ my $fs_port=shift or die "argument \"fs_port\" missed";
if ($backend eq 'postgres')
{
- my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $_;
- my $sth=$dbh->prepare("update sessions_view set last_time=now(),status='R',client='$client' where session_id = '$sid'");
+ my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $_;
+ my $sth=$dbh->prepare("update sessions_view set last_time=now(),status='R',client='$client',gr_port='$gr_port',
+ sound_port='$sound_port',fs_port='$fs_port' where session_id = '$sid'");
$sth->execute()or die;
$sth->finish();
$dbh->disconnect();
}
if ($backend eq 'sqlite')
{
- `$x2go_lib_path/x2gosqlitewrapper resume $client $sid`;
+ `$x2go_lib_path/x2gosqlitewrapper resume $client $sid $gr_port $sound_port $fs_port`;
}
- syslog('debug', "db_resume called, session ID: $sid, client: $client");
+ syslog('debug', "db_resume called, session ID: $sid, client: $client, gr_port: $gr_port, sound_port: $sound_port, fs_port: $fs_port");
}
sub db_changestatus
{
my $status=shift or die "argument \"status\" missed";
- my $sid=shift or die "argument \"session_id\" missed";
+ my $sid=shift or die "argument \"session_id\" missed";
if ($backend eq 'postgres')
{
- my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $_;
+ my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $_;
my $sth=$dbh->prepare("update sessions_view set last_time=now(),status='$status' where session_id = '$sid'");
$sth->execute()or die;
$sth->finish();
@@ -388,7 +414,7 @@ sub db_getdisplays
{
my @displays;
#ignore $server
- my $server=shift or die "argument \"server\" missed";
+ my $server=shift or die "argument \"server\" missed";
if ($backend eq 'postgres')
{
my @strings;
@@ -418,7 +444,7 @@ sub db_getports
{
my @ports;
#ignore $server
- my $server=shift or die "argument \"server\" missed";
+ my $server=shift or die "argument \"server\" missed";
if ($backend eq 'postgres')
{
my @strings;
diff --git a/x2goserver/lib/x2goresume b/x2goserver/lib/x2goresume
index 2e64542..7391cd3 100755
--- a/x2goserver/lib/x2goresume
+++ b/x2goserver/lib/x2goresume
@@ -33,8 +33,11 @@ setlogmask( LOG_UPTO(x2gologlevel()) );
my $client=shift or die;
my $sid=shift or die;
+my $gr_port=shift or die;
+my $snd_port=shift or die;
+my $fs_port=shift or die;
-db_resume($client, $sid);
+db_resume($client, $sid, $gr_port, $snd_port, $fs_port);
# closing syslog
closelog;
diff --git a/x2goserver/lib/x2goinsertport b/x2goserver/lib/x2gormport
similarity index 95%
copy from x2goserver/lib/x2goinsertport
copy to x2goserver/lib/x2gormport
index bc18d96..4ba632d 100755
--- a/x2goserver/lib/x2goinsertport
+++ b/x2goserver/lib/x2gormport
@@ -35,8 +35,7 @@ my $server=shift or die;
my $sid=shift or die;
my $port=shift or die;
-db_insertport($server,$sid,$port);
-print "inserted";
+db_rmport($server,$sid,$port);
# closing syslog
closelog;
\ No newline at end of file
diff --git a/x2goserver/lib/x2gosqlitewrapper.pl b/x2goserver/lib/x2gosqlitewrapper.pl
index 53041f8..1e3b7e3 100755
--- a/x2goserver/lib/x2gosqlitewrapper.pl
+++ b/x2goserver/lib/x2gosqlitewrapper.pl
@@ -153,14 +153,28 @@ elsif($cmd eq "insertport")
$sth->finish();
}
+elsif($cmd eq "rmport")
+{
+ my $server=shift or die "argument \"server\" missed";
+ my $sid=shift or die "argument \"session_id\" missed";
+ my $sshport=shift or die "argument \"port\" missed";
+ my $sth=$dbh->prepare("delete from used_ports where server=? and session_id=? and port=?");
+ check_user($sid);
+ $sth->execute($server, $sid, $sshport) or die;
+ $sth->finish();
+}
+
elsif($cmd eq "resume")
{
my $client=shift or die "argument \"client\" missed";
my $sid=shift or die "argument \"session_id\" missed";
+ my $gr_port=shift or die "argument \"gr_port\" missed";
+ my $sound_port=shift or die "argument \"sound_port\" missed";
+ my $fs_port=shift or die "argument \"fs_port\" missed";
check_user($sid);
my $sth=$dbh->prepare("update sessions set last_time=datetime('now','localtime'),status='R',
- client=? where session_id = ? and uname=?");
- $sth->execute($client, $sid, $realuser) or die;
+ client=?,gr_port=?,sound_port=?,fs_port=? where session_id = ? and uname=?");
+ $sth->execute($client, $gr_port, $sound_port, $fs_port, $sid, $realuser) or die;
$sth->finish();
}
@@ -310,8 +324,10 @@ sub check_user
my $sid=shift or die "argument \"session_id\" missed";
return if $realuser eq "root";
# session id looks like someuser-51-1304005895_stDgnome-session_dp24
- my ( $user, $rest ) = split('-', $sid, 2);
- $user eq $realuser or die "$realuser is not authorized (should be $user)";
+ # during DB insertsession it only looks like someuser-51-1304005895
+ my $user = "$sid";
+ $user =~ s/$realuser-[0-9]{2,}-[0-9]{10,}.*/$realuser/;
+ $user eq $realuser or die "$realuser is not authorized";
}
sub fetchrow_printall_array
diff --git a/x2goserver/man/man8/x2gobasepath.8 b/x2goserver/man/man8/x2gobasepath.8
index e2dde5c..52c4346 100644
--- a/x2goserver/man/man8/x2gobasepath.8
+++ b/x2goserver/man/man8/x2gobasepath.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2gobasepath 8 "Sep 2011" "Version 3.0.99.x" "X2Go Server Admin Tool"
+.TH x2gobasepath 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2gobasepath \- Detect Base Path of X2Go Server Installation
.SH SYNOPSIS
diff --git a/x2goserver/man/man8/x2gocleansessions.8 b/x2goserver/man/man8/x2gocleansessions.8
index baef7e8..a45e8a0 100644
--- a/x2goserver/man/man8/x2gocleansessions.8
+++ b/x2goserver/man/man8/x2gocleansessions.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2gocleansessions 8 "Sep 2011" "Version 3.0.99.x" "X2Go Server Admin Tool"
+.TH x2gocleansessions 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2gocleansessions \- X2Go Server Cleanup Daemon
.SH SYNOPSIS
diff --git a/x2goserver/man/man8/x2gocmdexitmessage.8 b/x2goserver/man/man8/x2gocmdexitmessage.8
index 18ffdd7..64d51ac 100644
--- a/x2goserver/man/man8/x2gocmdexitmessage.8
+++ b/x2goserver/man/man8/x2gocmdexitmessage.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2gocmdexitmessage 8 "July 2011" "Version 3.0.99.x" "X2Go Server Tool"
+.TH x2gocmdexitmessage 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2gocmdexitmessage \- Exit Message of X2Go Command
.SH SYNOPSIS
diff --git a/x2goserver/man/man8/x2godbadmin.8 b/x2goserver/man/man8/x2godbadmin.8
index 0ec4a07..c027021 100644
--- a/x2goserver/man/man8/x2godbadmin.8
+++ b/x2goserver/man/man8/x2godbadmin.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2godbadmin 8 "July 2011" "Version 3.0.99.x" "X2Go Server Admin Tool"
+.TH x2godbadmin 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Admin Tool"
.SH NAME
x2godbadmin \- X2Go Server Database Administrator
.SH SYNOPSIS
diff --git a/x2goserver/man/man8/x2gofeature.8 b/x2goserver/man/man8/x2gofeature.8
index be222c0..67937a4 100644
--- a/x2goserver/man/man8/x2gofeature.8
+++ b/x2goserver/man/man8/x2gofeature.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2gofeature 8 "Sep 2011" "Version 3.0.99.x" "X2Go Server Admin Tool"
+.TH x2gofeature 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2gofeature \- Query X2Go Feature Availability on X2Go Server
.SH SYNOPSIS
diff --git a/x2goserver/man/man8/x2gogetservers.8 b/x2goserver/man/man8/x2gogetservers.8
new file mode 100644
index 0000000..ed7270f
--- /dev/null
+++ b/x2goserver/man/man8/x2gogetservers.8
@@ -0,0 +1,25 @@
+'\" -*- 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 x2gogetservers 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
+.SH NAME
+x2gogetservers \- Retrieve list of available X2Go servers
+.SH SYNOPSIS
+'nh
+.fi
+.ad l
+x2gogetservers
+
+.SH DESCRIPTION
+\fBx2gogetservers\fR retrieves a list of available X2Go servers. This command is
+only used by \fIx2goclient\fR if it runs in LDAP mode.
+.PP
+The \fBx2gogetservers\fR is run with X2Go user privileges.
+
+.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/man/man8/x2golistdesktops.8 b/x2goserver/man/man8/x2golistdesktops.8
index f804b9a..4125c37 100644
--- a/x2goserver/man/man8/x2golistdesktops.8
+++ b/x2goserver/man/man8/x2golistdesktops.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2golistdesktops 8 "Sep 2011" "Version 3.0.99.x" "X2Go Server Tool"
+.TH x2golistdesktops 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2golistdesktops \- List Available X Desktops
.SH SYNOPSIS
@@ -23,7 +23,7 @@ is used here.
a list of available desktops that may be candidates for X2Go desktop sharing (shadow sessions).
.PP
The list of desktops will include local desktop sessions (launched via KDM, GDM, etc.) run by the same user, X2Go desktop
-sessions run by the same user and desktop sessions of other users (local or remote) that are announced via
+sessions run by the same user and desktop sessions of other users (local or remote) that are announced via
the \fBx2godesktopsharing\fR utility.
.SH RETURN VALUES
A list of available X desktops, line-by-line.
diff --git a/x2goserver/man/man8/x2golistmounts.8 b/x2goserver/man/man8/x2golistmounts.8
index e8c19ad..176ffd9 100644
--- a/x2goserver/man/man8/x2golistmounts.8
+++ b/x2goserver/man/man8/x2golistmounts.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2golistmounts 8 "Sep 2011" "Version 3.0.99.x" "X2Go Server Tool"
+.TH x2golistmounts 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2golistmounts \- List Mounted Shares for an X2Go Session
.SH SYNOPSIS
diff --git a/x2goserver/man/man8/x2golistsessions.8 b/x2goserver/man/man8/x2golistsessions.8
index f1c162c..91a76e9 100644
--- a/x2goserver/man/man8/x2golistsessions.8
+++ b/x2goserver/man/man8/x2golistsessions.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2golistsessions 8 "Sep 2011" "Version 3.0.99.x" "X2Go Server Tool"
+.TH x2golistsessions 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2golistsessions \- List Available X2Go Sessions for User
.SH SYNOPSIS
diff --git a/x2goserver/man/man8/x2golistsessions_root.8 b/x2goserver/man/man8/x2golistsessions_root.8
index be21d7d..f68073f 100644
--- a/x2goserver/man/man8/x2golistsessions_root.8
+++ b/x2goserver/man/man8/x2golistsessions_root.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2golistsessions_root 8 "Sep 2011" "Version 3.0.99.x" "X2Go Server Admin Tool"
+.TH x2golistsessions_root 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Admin Tool"
.SH NAME
x2golistsessions_root \- List X2Go Sessions for System
.SH SYNOPSIS
diff --git a/x2goserver/man/man8/x2gomountdirs.8 b/x2goserver/man/man8/x2gomountdirs.8
index 81c8808..69b2fe7 100644
--- a/x2goserver/man/man8/x2gomountdirs.8
+++ b/x2goserver/man/man8/x2gomountdirs.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2gomountdirs 8 "Sep 2011" "Version 3.0.99.x" "X2Go Server Tool"
+.TH x2gomountdirs 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2gomountdirs \- Share Client-Side Folder with X2Go Session
.SH SYNOPSIS
diff --git a/x2goserver/man/man8/x2goresume-session.8 b/x2goserver/man/man8/x2goresume-session.8
index b0db3a9..f8efed9 100644
--- a/x2goserver/man/man8/x2goresume-session.8
+++ b/x2goserver/man/man8/x2goresume-session.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2goresume-session 8 "Sep 2011" "Version 3.0.99.x" "X2Go Server Tool"
+.TH x2goresume-session 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2goresume-session \- Resume X2Go Session
.SH SYNOPSIS
diff --git a/x2goserver/man/man8/x2goruncommand.8 b/x2goserver/man/man8/x2goruncommand.8
index 52d03b4..bf22a9e 100644
--- a/x2goserver/man/man8/x2goruncommand.8
+++ b/x2goserver/man/man8/x2goruncommand.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2goruncommand 8 "Sep 2011" "Version 3.0.99.x" "X2Go Server Tool"
+.TH x2goruncommand 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2goruncommand \- Launch Command inside an X2Go Session
.SH SYNOPSIS
diff --git a/x2goserver/man/man8/x2gosessionlimit.8 b/x2goserver/man/man8/x2gosessionlimit.8
index ac59d66..4e2443d 100644
--- a/x2goserver/man/man8/x2gosessionlimit.8
+++ b/x2goserver/man/man8/x2gosessionlimit.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2gosessionlimit 8 "Sep 2011" "Version 3.0.99.x" "X2Go Server Admin Tool"
+.TH x2gosessionlimit 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2gosessionlimit \- Detect Session Limit for User or Group
.SH SYNOPSIS
diff --git a/x2goserver/man/man8/x2goshowblocks.8 b/x2goserver/man/man8/x2goshowblocks.8
index b7ec0c7..8eb8d4f 100644
--- a/x2goserver/man/man8/x2goshowblocks.8
+++ b/x2goserver/man/man8/x2goshowblocks.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2goshowblocks 8 "Sep 2011" "Version 3.0.99.x" "X2Go Server Tool"
+.TH x2goshowblocks 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2goshowblocks \- Show X2Go-Mounted Block Devices
.SH SYNOPSIS
diff --git a/x2goserver/man/man8/x2gostartagent.8 b/x2goserver/man/man8/x2gostartagent.8
index 4ba06c8..0fd81cd 100644
--- a/x2goserver/man/man8/x2gostartagent.8
+++ b/x2goserver/man/man8/x2gostartagent.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2gostartagent 8 "18 May 2011" "Version 3.0.99.x" "X2Go Server Tool"
+.TH x2gostartagent 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2gostartagent \- Start a New X2Go Session
.SH SYNOPSIS
diff --git a/x2goserver/man/man8/x2gosuspend-session.8 b/x2goserver/man/man8/x2gosuspend-session.8
index 5acfe24..89fe595 100644
--- a/x2goserver/man/man8/x2gosuspend-session.8
+++ b/x2goserver/man/man8/x2gosuspend-session.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2gosuspend-session 8 "Sep 2011" "Version 3.0.99.x" "X2Go Server Tool"
+.TH x2gosuspend-session 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2gosuspend-session \- Suspend an X2Go Session
.SH SYNOPSIS
diff --git a/x2goserver/man/man8/x2goterminate-session.8 b/x2goserver/man/man8/x2goterminate-session.8
index b619552..054da4e 100644
--- a/x2goserver/man/man8/x2goterminate-session.8
+++ b/x2goserver/man/man8/x2goterminate-session.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2goterminate-session 8 "Sep 2011" "Version 3.0.99.x" "X2Go Server Tool"
+.TH x2goterminate-session 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2goterminate-session \- Terminate an X2Go Session
.SH SYNOPSIS
diff --git a/x2goserver/man/man8/x2goumount-session.8 b/x2goserver/man/man8/x2goumount-session.8
index 0af51fe..d48ce13 100644
--- a/x2goserver/man/man8/x2goumount-session.8
+++ b/x2goserver/man/man8/x2goumount-session.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2goumount-session 8 "Sep 2011" "Version 3.0.99.x" "X2Go Server Tool"
+.TH x2goumount-session 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2goumount-session \- Unshare mounted Folders from X2Go Session
.SH SYNOPSIS
diff --git a/x2goserver/man/man8/x2goversion.8 b/x2goserver/man/man8/x2goversion.8
index f91997c..56b78d7 100644
--- a/x2goserver/man/man8/x2goversion.8
+++ b/x2goserver/man/man8/x2goversion.8
@@ -5,7 +5,7 @@
\\$2 \(la\\$1\(ra\\$3
..
.if \n(.g .mso www.tmac
-.TH x2goversion 8 "31 May 2011" "Version 3.0.99.x" "X2Go Server Tool (Extension)"
+.TH x2goversion 8 "Feb 2012" "Version 3.1.0.x" "X2Go Server Tool"
.SH NAME
x2goversion \- Retrieve Code Versions of X2Go Server Components
.SH SYNOPSIS
diff --git a/x2goserver/sbin/x2gocleansessions b/x2goserver/sbin/x2gocleansessions
index 963ab32..b3f65db 100755
--- a/x2goserver/sbin/x2gocleansessions
+++ b/x2goserver/sbin/x2gocleansessions
@@ -86,9 +86,8 @@ elsif ($pid != 0)
}
elsif ($pid == 0 )
{
- close(STDIN);
- close(STDOUT);
- close(STDERR);
+ # close any open file descriptor left open by our parent before the fork
+ for (glob "/proc/$$/fd/*") { POSIX::close($1) if m{/(\d+)$}; }
$SIG{TERM}=\&catch_term;
diff --git a/x2goserver/sbin/x2godbadmin b/x2goserver/sbin/x2godbadmin
index 84dfc5d..fc86ca8 100755
--- a/x2goserver/sbin/x2godbadmin
+++ b/x2goserver/sbin/x2godbadmin
@@ -333,6 +333,9 @@ sub add_user()
$sth=$dbh->prepare("GRANT INSERT, UPDATE, DELETE ON sessions, used_ports, mounts TO \"x2gouser_$user\"");
$sth->execute();
+ $sth=$dbh->prepare("GRANT SELECT ON used_ports TO \"x2gouser_$user\"");
+ $sth->execute();
+
$sth=$dbh->prepare("GRANT SELECT, UPDATE, DELETE ON sessions_view, mounts_view, servers_view, ports_view TO \"x2gouser_$user\"");
$sth->execute();
$sth->finish();
@@ -455,7 +458,6 @@ sub create_tables()
");
$sth->execute() or die;
-
$sth=$dbh->prepare("
create or replace RULE insert_port_priv AS ON INSERT
TO used_ports where NEW.creator_id <> current_user and current_user <> '$x2goadmin'
diff --git a/x2goserver/share/x2go/versions/VERSION.x2goserver b/x2goserver/share/x2go/versions/VERSION.x2goserver
deleted file mode 120000
index fc1b443..0000000
--- a/x2goserver/share/x2go/versions/VERSION.x2goserver
+++ /dev/null
@@ -1 +0,0 @@
-../../../VERSION.x2goserver
\ No newline at end of file
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