[X2Go-Commits] [x2goclient] 04/05: debian{, -qt4, -qt5}: Add a Qt5-based debian(-qt5)/ packaging folder and make it easy to switch between Qt4 and Qt5 build by simply changing the symlink target of debian/ (which is, yes indeed, a symlink, not a directory anymore).

git-admin at x2go.org git-admin at x2go.org
Fri Jan 22 22:13:57 CET 2021


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository x2goclient.

commit 36296338c29994e9af121dcc7488e11f1e38da3a
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Fri Jan 22 21:51:17 2021 +0100

    debian{,-qt4,-qt5}: Add a Qt5-based debian(-qt5)/ packaging folder and make it easy to switch between Qt4 and Qt5 build by simply changing the symlink target of debian/ (which is, yes indeed, a symlink, not a directory anymore).
---
 debian                                             |   1 +
 {debian => debian-common}/changelog                |   4 +
 {debian => debian-common}/copyright                |  90 +--
 {debian => debian-common}/source/format            |   0
 debian-common/upstream/metadata                    |   8 +
 debian-common/upstream/signing-key.asc             | 210 ++++++
 debian-common/watch                                |   3 +
 debian-qt4/changelog                               |   1 +
 {debian => debian-qt4}/compat                      |   0
 {debian => debian-qt4}/control                     |   0
 debian-qt4/copyright                               |   1 +
 {debian => debian-qt4}/menu                        |   0
 {debian => debian-qt4}/rules                       |   0
 debian-qt4/source                                  |   1 +
 debian-qt4/upstream                                |   1 +
 debian-qt4/watch                                   |   1 +
 {debian => debian-qt4}/x2goclient.dirs             |   0
 {debian => debian-qt4}/x2goclient.docs             |   0
 {debian => debian-qt4}/x2goclient.examples         |   0
 {debian => debian-qt4}/x2goclient.install          |   0
 {debian => debian-qt4}/x2goclient.manpages         |   0
 {debian => debian-qt4}/x2goplugin-provider.install |   0
 {debian => debian-qt4}/x2goplugin.install          |   0
 debian-qt5/changelog                               |   1 +
 debian-qt5/control                                 |  57 ++
 debian-qt5/copyright                               |   1 +
 .../patches/1002_fix-ftbfs-on-non-linux.patch      | 749 +++++++++++++++++++++
 debian-qt5/patches/README                          |   3 +
 debian-qt5/patches/series                          |   2 +
 debian-qt5/patches/update_makefile_qt5-build.patch |  18 +
 debian-qt5/rules                                   |  35 +
 debian-qt5/source                                  |   1 +
 debian-qt5/upstream                                |   1 +
 debian-qt5/watch                                   |   1 +
 {debian => debian-qt5}/x2goclient.dirs             |   4 +-
 {debian => debian-qt5}/x2goclient.docs             |   0
 {debian => debian-qt5}/x2goclient.examples         |   0
 .../x2goclient.install                             |  10 +-
 38 files changed, 1155 insertions(+), 49 deletions(-)

diff --git a/debian b/debian
new file mode 120000
index 0000000..eb6b140
--- /dev/null
+++ b/debian
@@ -0,0 +1 @@
+debian-qt4
\ No newline at end of file
diff --git a/debian/changelog b/debian-common/changelog
similarity index 99%
rename from debian/changelog
rename to debian-common/changelog
index 61b8348..b13a26c 100644
--- a/debian/changelog
+++ b/debian-common/changelog
@@ -44,6 +44,10 @@ x2goclient (4.1.2.3-0x2go1) UNRELEASED; urgency=medium
       extension.
   * debian/x2gocient.install:
     + Install x-x2go.xml into bin:pkg x2goclient.
+  * debian/{,-qt4,-qt5}:
+    + Add a Qt5-based debian(-qt5)/ packaging folder and make it easy to switch
+      between Qt4 and Qt5 build by simply changing the symlink target of
+      debian/ (which is, yes indeed, a symlink, not a directory anymore).
   * x2goclient.spec:
     + Install x-x2go.xml into bin:pkg and run update-mime-database during
       postinst.
diff --git a/debian/copyright b/debian-common/copyright
similarity index 64%
rename from debian/copyright
rename to debian-common/copyright
index a587d06..104e6fb 100644
--- a/debian/copyright
+++ b/debian-common/copyright
@@ -1,12 +1,24 @@
 Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 Upstream-Name: x2goclient
-Upstream-Contact: Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
+Upstream-Contact: Mihai Moldovan <ionic at ionic.de>
 Source: https://wiki.x2go.org
 
 Files: *
-Copyright: 2005-2020, Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
-           2005-2020, Heinz-Markus Graesing <heinz-m.graesing at obviously-nice.de>
-           2005-2020, obviously nice - https://www.obviously-nice.de
+Copyright: 2005-2017, Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
+           2005-2017, Heinz-Markus Graesing <heinz-m.graesing at obviously-nice.de>
+           2005-2017, obviously nice - http://www.obviouslynice.de
+License: GPL-2+~OpenSSL
+
+Files: Makefile.docupload
+Copyright: 2010-2016, Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+License: GPL-3
+
+Files: debian/*
+Copyright: 2007, Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
+           2011-2012, Reinhard Tartler <siretart at tauware.de>
+           2011-2018, Mike Gabriel <sunweaver at debian.org>
+License: GPL-2+ or GPL-2+~OpenSSL
+
 License: GPL-2+
  This program is free software; you can redistribute it
  and/or modify it under the terms of the GNU General Public
@@ -28,46 +40,8 @@ License: GPL-2+
  On Debian systems, the full text of the GNU General Public
  License version 2 can be found in the file
  `/usr/share/common-licenses/GPL-2'.
-Comment:
- Quoting from README.OpenSSL-Exception...
- .
- * In addition, as a special exception, the copyright holders give
- * permission to link the code of portions of this program with the
- * OpenSSL library under certain conditions as described in each
- * individual source file, and distribute linked combinations
- * including the two.
- * You must obey the GNU General Public License in all respects
- * for all of the code used other than OpenSSL.  If you modify
- * file(s) with this exception, you may extend this exception to your
- * version of the file(s), but you are not obligated to do so.  If you
- * do not wish to do so, delete this exception statement from your
- * version.  If you delete this exception statement from all source
- * files in the program, then also delete it here.
 
-Files: Makefile.docupload
-Copyright: 2010-2020, Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-License: GPL-3
- 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
- the Free Software Foundation, version 3 of the License.
- .
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
- .
- You should have received a copy of the GNU General Public License
- along with this program.  If not, see <https://www.gnu.org/licenses/>.
- .
- On Debian systems, the full text of the GNU General Public
- License version 3 can be found in the file
- `/usr/share/common-licenses/GPL-3'.
-
-Files: debian/*
-Copyright: 2007-2020, Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
-           2011-2020, Reinhard Tartler <siretart at tauware.de>
-           2011-2020, Mike Gabriel <sunweaver at debian.org>
-License: GPL-2+
+License: GPL-2+~OpenSSL
  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 the Free Software Foundation; either
@@ -88,3 +62,33 @@ License: GPL-2+
  On Debian systems, the full text of the GNU General Public
  License version 2 can be found in the file
  `/usr/share/common-licenses/GPL-2'.
+ .
+ In addition, as a special exception, the copyright holders give
+ permission to link the code of portions of this program with the
+ OpenSSL library under certain conditions as described in each
+ individual source file, and distribute linked combinations
+ including the two.
+ You must obey the GNU General Public License in all respects
+ for all of the code used other than OpenSSL.  If you modify
+ file(s) with this exception, you may extend this exception to your
+ version of the file(s), but you are not obligated to do so.  If you
+ do not wish to do so, delete this exception statement from your
+ version.  If you delete this exception statement from all source
+ files in the program, then also delete it here.
+
+License: GPL-3
+ 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
+ the Free Software Foundation, version 3 of the License.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 3 can be found in the file
+ `/usr/share/common-licenses/GPL-3'.
diff --git a/debian/source/format b/debian-common/source/format
similarity index 100%
rename from debian/source/format
rename to debian-common/source/format
diff --git a/debian-common/upstream/metadata b/debian-common/upstream/metadata
new file mode 100644
index 0000000..5702ec5
--- /dev/null
+++ b/debian-common/upstream/metadata
@@ -0,0 +1,8 @@
+Name: X2Go Client
+Bug-Database: https://bugs.x2go.org/src:x2goclient
+Bug-Submit: https://bugs.x2go.org/Reporting.html
+Contact: x2go-dev at lists.x2go.org
+Donation: https://wiki.x2go.org/doku.php/doc:sponsors
+Repository: git://code.x2go.org/x2goclient.git
+Repository-Browse: https://code.x2go.org/gitweb?p=x2goclient.git;a=summary
+Security-Contact: security at lists.x2go.org
diff --git a/debian-common/upstream/signing-key.asc b/debian-common/upstream/signing-key.asc
new file mode 100644
index 0000000..0e6e7d6
--- /dev/null
+++ b/debian-common/upstream/signing-key.asc
@@ -0,0 +1,210 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1
+
+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
+ZRs60sdFXk+ppSLNlHSlhfuJ3DW3sv8/07s01FFbDqt0fGj/GhoYTbrv5KGT8/bp
+rdPPYTlmRP4m9JHWTNtTUtBOdvbJ3EvQOgVcyJW+eC0a93yms6gZ1pEoxTlu45yb
+N+QfM+ZdyRpgtGqboIB1GLM+gw7CHZqqFZJY4LxjIftT0dBP2B7Yn5fPKVfi+Ea0
+i6WCTURMVc7HKdr/7yoFQkahen3CVsM9qJ5HalM0d1UwNOKSedbTOLc6M+xUZyxt
+vgfQODwiPEUay3GuL7NW0GuWlHmWVLyPpyfhu65ZKKurn6Q+Z8yJU/f9vEYvt7Tx
+kfBXr8WTT7jgvzZJT1+b09I/XiV5RcGvOfXmiJcwtCtNaWtlIEdhYnJpZWwgPG1p
+a2UuZ2FicmllbEBtb29ud2VhdmVycy5uZXQ+iQI9BBMBCAAnBQJR/1OyAhsDBQkK
+wiSEBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEJr0azAldxsxESsP/2oECQab
+zFWAGocjiaOFPmBoJfUm7s3dkNiGTVBAW4P8h/Y+Y70GsMQ2bJXArs/XRpHvono/
+GRyo6FSsqcK67LRI1lw5czIBV5ZPpoeaoLMRqd69nSut5/7+DbyfYE2S9ywmcGsJ
+L7uqFEMiMw/v+iiiBTnpwNQwm9pwQKm3Tj2AqacaYteuVu5/vAkD9bJGkDbYVQ5O
+v9LXIOUZrxlNOrTUDC4Dq5FbKbV4PKm8q1kWun5V2psQc8biKyLoCumcRpm1Pnxv
+LhNzZ67Tje4kYznMhGDKQ+fts+vtuDH2pluiiqqk0lw7qOOuelTzb44SKKgvarrc
+7KWSJs4Jzcbi5JaJ1uIDXhJJtAtGItGmoaRUDPk8m25lDyPXE44M8bkzeriPt6pc
+8+jFcz96X7BTaRJTkaZKLfQdMlMnmRp4IG+J08aVEsXUfjTMq+RaZOAWYiHaRhB7
+N7Pq/EMGS/RDvT7xPvzBb9ghj3N883IyKC657MBhXT/l6Xxc5PA+yabfCPGKChr+
+ZBp6sW0mt6FudBhvj7lR1wNYAgqxJ+lnyMME47kYwwo60FSCadBthwy+fVqotw9w
+6zoD1ztj1z9xwYKnMhXY2WiOvQIKng/RmfqS40or8fNFSMG448J34YqTpSJQ9tN6
+wT2hALTcMNayV09AYm+sWiizrT1eWh7xLJ2ttCVNaWtlIEdhYnJpZWwgPG1pa2Uu
+Z2FicmllbEB1YnVudHUuZGU+iQI9BBMBCAAnBQJR/1OyAhsDBQkKwiSEBQsJCAcD
+BRUKCQgLBRYCAwEAAh4BAheAAAoJEJr0azAldxsx2qoP/jnjQ83vthjp8dgH812q
+8fH/fK33VOBqfMMZy43LSPJqvpkkjMw9I2XLsEoeuXHVl6nJSQ6w/e98HME0rics
+fUxMuPfHIahJIDy0nfhebyzA6ytxY9g5t/lIJ+z4wbJEsDWaRNVcmRCKYY+hrMHA
++f7+UPBBQFlGrkNixUMTG4vnqtQANO6mbrAuNfsx2RJRYfJK//vDvq264bunGEWq
+MrEeHo/napq3vCQz6P0Iglc338nVqoY/MuE9qtA8YZYQANZKRpMU8xcen78bXjt6
+nFjf7ClDSsUHF1XOqLo0k6v7gbUOV1p//NX0Qq0CZ5RHz9J9VqAwOMryLL9JSvih
+ahcq0a1UljFEQ3Tdjs1qIWhOLe/m3hZ5wskqBi7RVM3NaonK1DLMyfqDrjqMBVW+
+s8gfAgN0X7MuFvkUZN4mJybZH2Uj2JMB+bAd1xp1WIjbn5pXzH4PIJpIfACF9+0R
+l1JiX8o/b29vluO7OYJtf2XfXETsNB2sAe9GDZX4Gras9Yshh7APBJnISqMOawAi
+Jae99pDyOmWcjZ/DpP+LCztBu6mnutQjsFAp5D3jjwbEQ0f7sh1Ww+rtqxzn003X
+5xaHmAng0wgAsP5HgT83a7ATxdWJ4EiIZcJyE/mn54ml1Af4vlwf/C7sq0jnKykx
+AP+3kMnbQ+u7VR3PGod+oqREtDBNaWtlIEdhYnJpZWwgPG1pa2UuZ2FicmllbEBp
+dC16dWt1bmZ0LXNjaHVsZS5kZT6JAj0EEwEIACcFAlH/U7ICGwMFCQrCJIQFCwkI
+BwMFFQoJCAsFFgIDAQACHgECF4AACgkQmvRrMCV3GzEnNRAAgQVqP9zE9ZlxcykN
+Pj52Xy42yd7FfI9UubE9qZa4/VESRpTyptWVff7yw4MhxeSJI8Neu9MeWy79e31l
+U44BK2G3aJbcntTSu357cNQ8aiq0jEn6VHYPWAP7LdcI2oXVg4tG09CaL1ZpQwfk
+e2/frEz+3D8+rgWo/ki+0cbLGL+y43rhUXftFEDCWhcrH45hraVdIoaVaYHCUHiK
+s+DZryfTANmA/v/2L20+Fbw80fbooEdyo4798Kv5xnWbOCqZ1dv1HA4J2x+7MMUw
+6e0HkCBeSUlmvfZEmoX5AMPrme2O8bm+MYwk0Ku9u67XaDXcEoKXj+Hak5ThBKJ/
+Vf1/XwTL6f1qc4YdmJ1K++c89+1AQixk+Fbw8Z6CYABh4Xe3V3f3eXr8lE1iXmLp
+itp4F0hLRYwMVPQzoezAzFtZaehNAsOPqI20lku3iuRxBNszhLl1XKRGGLhv4mar
+gQFB2t3QvbBGdQq7Y16d0yFkUPe36vehbQKUBvvMMiS9Lr68+F/3oGsWF3797dfr
+Wvr0aH9xGIfZCHqmt/kJ7/PTq3IqDn3PyiLbZ7qKGf4t8dKKHfMW5HgCOdkYtyAg
+sJeGq6Qd7PxFnTr1iTdd8MzUWQsmfeR5NU/4zymHsEBIXneKcTKWzQ8CEZMHTBqJ
+D3OKQCMnK0/ShaO4cUbv12bOi4S0LE1pa2UgR2FicmllbCA8bS5nYWJyaWVsQGRh
+cy1uZXR6d2Vya3RlYW0uZGU+iQI9BBMBCAAnAhsDBQsJCAcDBRUKCQgLBRYCAwEA
+Ah4BAheABQJRZSAxBQkKwiSEAAoJEJr0azAldxsx6QwP/0p6qeJ12czIoDP2kttj
+3himSZGLOHKA6cuHEv5Debry8od9p7EMZJrZJeJI6pjUMF4NuPxVBvAl9K7tMM3o
+kfO+hrqn0i5+uQfAnO1sjiDP4awYGUmwIP/b+0R/0CorCfE80r7lGYQPisrIb24K
+zdJ2+17fRkXfJCJrolTOAPAIYwJbA0lR74OLJrug6lbRH475PcvK3s8aqL3Gd0L+
+khkE/JvKxPOr4Yu7WaN7sE2VJTzBzQBxUwgG6wY91vL25MJ83n909OVvmDSg4CDS
+VzfzUeytRBhM/6kY8IlrOTPsaRNYmdqswSTU5NRV2Old3mhbpmfUlUjTpWWnFXUP
+uWLG0FeTVqXB5yPhNk9sCXipU2Wg1fsnsU5YrajnypeI1TnqL1GGa6sUx6zg7rpa
+/OcZpQwf1Fb8CB3pJVVK745u7t+8iDVbm0nrC2RdZIxh5uuj3OYFxOcgLrVVGoiA
+db+aKrDr0OzQqk09bQjLFRTO6r6D6BvLg/AXZGEAgoITfbgkxWXtwJ7Ghse47+kH
+c8W/sWjSVwBDVLpbvaUL6SyBAdXOksNNGX09gX6eYjtP/vSiuE34nvPHNXZm676I
+lJMD8MAgY32j0I0l3C0/Rj6bcVBRi4yTs3Ih1Jipg+4Jrw2o6f9nWg39UMiy0XQm
+4LA37BlyvcH/7kH60sWb40a5tB1NaWtlIEdhYnJpZWwgPG1pa2VAdWJ1bnR1LmRl
+PokCPQQTAQgAJwUCUf9TsgIbAwUJCsIkhAULCQgHAwUVCgkICwUWAgMBAAIeAQIX
+gAAKCRCa9GswJXcbMXVzD/9G7hYH8dHQZl0Pncp1tIPWQW4a65OLwSRCtQFNWmhc
+ttIKIYVb1Tbi6vlDMIB7bmN2y5N+hk/9ZD7eL0oFT2YjM2U9e/AF4BrCXvIGLWES
+7+D3TZ1IokXnsr27kV0N5prefGqOta3wPawbspbbrBhBuBJ4wwPjB8isVlubqB5q
+Kftc625mRzl0w3q1MUkZp1HzzVBqKpQoWHTWqEso1IIDFrhZhfS5nnxABw+oMzpD
+GJ3QOo/EAlm5+Y3TI37fvJ2MkX9ryKEMYU358eYnbu2Y63ocKE52jAewkSqlLxwF
+2qNHou2wDA0J1yKIGLRzJI48erlRzvGh7vK2f2it3ovm+0a0xmV5k2i4neVhAHqf
+q9wDqX2+zJEC7yXgnD9GdP2IuG4jm53ziF3784W7QP1aNIG+k8/3q35wq3Dy9WA0
++35Xrw/VHK/d4dk2DrQRrC7kbKWJQ6OUNDlh0RRQuQA7iqkRWvIkqZp0lTmmetlM
+0nDbvIsVBUtPVLWfEq4Ts7t+cVf3CTNiRdVZeV96ZPRigapyJ+VSSTXs75XEOuYS
+m9FCCHMuqldp/PU3ml2kZSZtbRZR8oNElvLUTRs3wpEZUPdnu1Lc1SYF6LRErw8J
+ruU8HCKegM7o7ELr5lPLOr/vpDHkLp3BwLLOKd7gzN9kvZGNEkLWQjiWaq2zZbOZ
+hbQjTWlrZSBHYWJyaWVsIDxtaWtlQG1vb253ZWF2ZXJzLm5ldD6JAj0EEwEIACcF
+AlH/U7ICGwMFCQrCJIQFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AACgkQmvRrMCV3
+GzHwPQ/+KbaMePmsxaGh5hSch5nOKRcp8uWicgOab2jSf//a/ISN50vL0Rn8L5H/
+ebEyCBQBRV3uDNNzVYVMkPsrBlC3PyP2Aa/EI1X8RcJGhTCHG55zsKDcLc3kMYY+
+b3wV2pDKMaS0WcpcSvUBqFmXfhGhaaYJqXytAMjO4Na6pbRKaqdIfum3chfayH9G
+5FcGaFiYUPoBDPE6xp+mPyOZwZaSTnZsCt4ufYsJeaiMh3MZSX6lbLCud9K+OGiw
+JJIhytL7Z2fI7u+C2lnwCVCbygyIMaXG/soB34zeGMr9kO/C87xydeRhlqWtBVOI
+Y0giR6f3FYqVx9N25Vf6qrafBltGmy3VQw4gbDeUFDg72Zg1+7e0+a4Z9mc7WROK
+Xn5tf7rcGrsp5d4DiRnxLyP9ZNSYB62G7fnd7v5vpi72OT9WcDShImeacSkgsRcT
+J/47IA5ZdKnBcnXHWrNkA21Tdqlc4MH6dMTifi9oYzcmlkmsj/fyV4wCeWGa5pzK
+Wq1HSTWrMeH2Wjn1MpMuTlkAUiWLfUoN6B0eMPv9rypVldlwypOn1PD30ky7UKE/
+UzJxpqgvKyGyDNuECREuteRlGIyh4xTPUHVgIPxcyMxq9FLJs/yBWhiW/X3BRvjc
+Hokwa2mu7HWZmNCw0hYp/98EDLlRBF3y56b0+Equ0l2LGS50RRm0I01pa2UgR2Fi
+cmllbCA8c3Vud2VhdmVyQGRlYmlhbi5vcmc+iQI9BBMBCAAnBQJR/1OzAhsDBQkK
+wiSEBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEJr0azAldxsx7EEP/RbKhkgs
+anfqXMowtBXYYFtrcMf8CuwE4hBpUmp6GaGt6ui8Tf188zx/ow915dpbmpQM/Hjn
+ysqMtLGiBp0RF+Wb7lRQlBLmDsfpr1uPxNkIDBo9QQgIZC+VVS2A463owBg1khT+
+9UgIgdoFBelklw47240BjTDXVVieJELpApkkkYsyszUXHrKEOjgegy6osfBUn3tU
+k2sN0MEUv6JkhGiGkoySj94Um3ys6lMmDH3jvE8RDunMKuZGok6A5cq/Bf59/F7n
+3Ny8c+4ZlyC2VsBhc3PALxSocbWm1GHQLBctAncSc6d7/TE+EHKRp9ePVEY0UAte
+l3yYVY+U672YEivKAnuXzJMefnBhI1jeB2FgEdRLqQpLYmh1jJCjByY8k/NI3cZy
+u9/tP7xAuHV6qHvZ7hmLkXmHBTB9RwWgyRoF4mfdbWy51Nj8oX+4RfiU3hYzLbom
+RTeZ8JPHuXICNvKxj/HBexbq6KkWsSmj5xqs8pSjLki+1svdxU2cdDnsMoWE+eoV
+jgFQRPbUxruc0+XemwQYSajyN+qn9tK4Hs9Lrq2kw4sTAyKIHuw1w2JtM24oymkS
+IaA3zwZxY3aw/KuG+ddF11w+dKJPP53JqlgCH/wsWbvzkrY+TMVfzGnba+TBrXPd
+Tkv36aJDK1yqyYcehzaiMGwhd7rGJo9sBr3ouQINBFAI/RwBEAChyuVdqfG7zXmQ
+tTrOEU/omnexAdxNFe5yrbwGBZ/sPPyBqW6AE9MQR0pOSvHECJIZneIcQmyZbwfh
+c3LnomH6Oks6pbT7hG89zoR6a/UzOB90C4SQo0D7dqvcROqFWefniiUjqsyjQW6U
+MKik0T/QsgICNIt6Q9dOU+PazAKWbKXfmFcliJOC3DAsKShAczHPYvX6KDKgZ1H8
+7eUTBAnWkjuhpqdZXx91riNCQukN/Wrptja0R1RnHa5Hknv2mOmM2TGkJsPVO8ZF
+aN6SRk/1iLvhmC3JOHzqEA9U/XHfRrv8dvTKx96onrd/yxASou2t+M9g7QhGho+8
+v9FfFes7adVEyYtV56GjoYeTQuq5t8DyDNnVW71F9qDUQww3LpmS90c0mbyxJp5z
+3S2fn1o8tQ+1oF7l3gmLq2Wkm7Z7PvkDq2a3ckwOtDpyt83l5nQhIAYfBYc31I8O
+EBxVwYFmspBBBoohxDaBVsZyc7eU4JjgyTGDIKIlf4x6mdY6m8HanK/h+0ku/uvF
+85Ddn/fJ7BIZF/CtP4Bb+LWNxb8L5zmwtk8YW0byAFc/BSPYJhsAYjvh4WEaToqy
+7d/arEU5UMwgl2IElq0RiiM3rgbNqnafNl+FQc+o6cF4j9wv5n9htqRS4gBy9rej
+VS44u8aD4Wj2QV08sNdGE86ozLB0NQARAQABiQIfBBgBCAAJBQJQCP0cAhsMAAoJ
+EJr0azAldxsxm5sQALwbMxxTkJU2oMY4eJK2jDMqBTeeN7P1phrvQaya2brZY+Ql
+JNXDs3DrB8K9qXzgkurLTAvy2r3SnHR278SnuUTeVoqWFEReIMsUZNxwsfZfMr0J
+ydHKCqOE9X3JNjtgais1tgqnDCAvzz0t3p2FeXAN9Hg+a8QpmPOp2HAMBdayK+Qx
+iwTALegoLWZFrc3N/+gdQ2s/ApJbnkQqzBzzy75PvnncFSkYzKnaWS24DqMVKBtq
+Xcp0DQiluvsLx6W3shqlLPTcyNwZN9W+drHkzyb/p16N2MqMaLxQWlpNsiK59DDy
+CkIUmHBEykozNT2qYPA6l6DnIv5r+TjXC8ERnHiEceSlwx9MX2+KBlv6HxYeDA39
+m76YJLzgzJKD+gbBizR+Ug+L8Un0qtwwkXMH53xg1h3HWZlrFjVvaCzhG2ZOuGFF
+dt1w14c0QfjEdpGFJ8MZbxQW4VVjgsrPiIX+aeijqMxd2zYcsrPs5oSd4Nt4OVlz
+wRWJe860vtDydLu1rxxYsIN32fjaHN/oPD52rgH84tUlMVgYyuGi4DrGvcbOGByA
+B5SYUQ+gFtR9fkbLXTx+HhhCHXD5CwnHOeisj7auo4PVHEbZ3HEGUcpJ8NtjiBPf
+lThKtJ9XqtY/pMVPQlLGqCJtt6BclQ3SNJQvgeJu0tcdLb++lX/BNx5VoYH+
+=+XWS
+-----END PGP PUBLIC KEY BLOCK-----
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1
+
+mQENBE2tuy4BCADGBBdB0ODen5YK/QkIrngZygroJg2SA/THvQHQ3COU0YZM3WGn
+rgj1noGygBDPbf5CeUM6oFW1xeW40LAxl5RNN2qFFQQFoccZ/4RwhVcAUQBxptbJ
+L1wk/A+U49eL5QnoqSSCp+26fLJNizFgXL6r78oVbG/KIC4dZyNo9K5aA5xNxz1w
+eW5HMXJI06QJjqF4NRAXYwqPnR1iiVsCzQUTKx8U/KCIkbay94Bvgk6vCLi62Cw5
+Z407c8NOmXw8BqrNVqgNGwkylLP3ly+ccL0GNNBLKzt7S29Oe4pbl6kfFwd2fcPk
+yXAkMXnNcrpsna6M93pVNSWy0H0DEXlHvr5tABEBAAG0K1gyZ28gR2l0IEFkbWlu
+aXN0cmF0b3IgPGdpdC1hZG1pbkB4MmdvLm9yZz6JATgEEwECACIFAk2tuy4CGwMG
+CwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEPSnZ4ycawsrUucIAKsISRirU6qb
+LvmaAsSHuzJVknEning3FYNsoCGN8BzERwLEJXfzibu9i6ULI5guYwjR7/P9QRuo
+al3FN85+cOYwENOYXYqdEQTcrszLFCattQw2IVg5zfq9P6BmjtXWceMkcMreH03v
+i3UwY/D/14ORWvPX/JVis/ARlUPo5jN97EEJbWSpkvHwgeakzEfptIqpDW/j1wNe
+ENpB94jgHM9br0bOGH1VXseOqN141lGgoqH1IQdc/LqDls6VXZD2WjpjFQFWWEE5
+J/YohX5eF5VGRT+uuTeFr87/lQBZHq+F3KlA5aCwBOcu91J8RVPJfrEsoPWgX6Df
+Fr7XVCHZAhG5AQ0ETa27LgEIAMAX7bqT3jW1Ffr4Ndh94cYopDGUuyStwiFBMW7L
+wWEc6Go9D3T/0e3vLfktDOgstckHNlz5Wv+Q4j0gpTcseqC3bn0VGPHQyNARfYvL
+guabqHeFxxFHYHo9RawHEfTYWFRw+h/2INtihOyNuzJVltrpPmkiTTQ9p5lKH+QR
+a2zJSPZjQA+CSg+IpLfC9YEDiU8s4BQfPPI+2TptO8iCqDpIEXETGdIXdwp9PzKP
+pBSK1rBiPnCF+LyqYY6JInhQqvT4SCdYg6ukDMjmYEJ4ID7yr3J2meb8X0xKWfwn
+cGee8P4NQCOlKg7m3j88E/NDSh4waA2uech5x6u7tfiyJ40AEQEAAYkBHwQYAQIA
+CQUCTa27LgIbDAAKCRD0p2eMnGsLKyFfCADEy04ycshk1WSwNMrL7nXvDDLpe63f
+tOcODEDDOxoQ283U9yHV4/1p3CYM5YN7y5kHvvTD56/6ULs89iZhTZe1TIm3FQxQ
+MYvuI2Auy4AVbEFCKWTg6+PgWeLvLoGsQ0edTb9OwyiaawVlOwGxjRVoU7E0V8xs
+h9rIY/11F6w6kAEBYxEGqoZthefhODjn7Ffxs4fZYPevw/w4/rwa6DwyQNuybCac
+IiVGUmcLGBYa0C+qiwLY3LFekfmEmFIwaeADI/crDKJOL1Qss/TkXERtZ73gJRfD
+EKS4kfioXKwMYFGuN5rfcdqODk0nHDSWu9833dlH2+c3fcSIWVIMXEPG
+=b3FB
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/debian-common/watch b/debian-common/watch
new file mode 100644
index 0000000..91d6bc7
--- /dev/null
+++ b/debian-common/watch
@@ -0,0 +1,3 @@
+version=3
+opts=pgpsigurlmangle=s/$/.asc/ \
+https://code.x2go.org/releases/source/x2goclient/x2goclient-(\d+\.\d+\.\d+\.\d+)\.tar\.gz
diff --git a/debian-qt4/changelog b/debian-qt4/changelog
new file mode 120000
index 0000000..ddd751e
--- /dev/null
+++ b/debian-qt4/changelog
@@ -0,0 +1 @@
+../debian-common/changelog
\ No newline at end of file
diff --git a/debian/compat b/debian-qt4/compat
similarity index 100%
rename from debian/compat
rename to debian-qt4/compat
diff --git a/debian/control b/debian-qt4/control
similarity index 100%
rename from debian/control
rename to debian-qt4/control
diff --git a/debian-qt4/copyright b/debian-qt4/copyright
new file mode 120000
index 0000000..613ba8d
--- /dev/null
+++ b/debian-qt4/copyright
@@ -0,0 +1 @@
+../debian-common/copyright
\ No newline at end of file
diff --git a/debian/menu b/debian-qt4/menu
similarity index 100%
rename from debian/menu
rename to debian-qt4/menu
diff --git a/debian/rules b/debian-qt4/rules
similarity index 100%
rename from debian/rules
rename to debian-qt4/rules
diff --git a/debian-qt4/source b/debian-qt4/source
new file mode 120000
index 0000000..6840b09
--- /dev/null
+++ b/debian-qt4/source
@@ -0,0 +1 @@
+../debian-common/source
\ No newline at end of file
diff --git a/debian-qt4/upstream b/debian-qt4/upstream
new file mode 120000
index 0000000..5f6c874
--- /dev/null
+++ b/debian-qt4/upstream
@@ -0,0 +1 @@
+../debian-common/upstream
\ No newline at end of file
diff --git a/debian-qt4/watch b/debian-qt4/watch
new file mode 120000
index 0000000..046c942
--- /dev/null
+++ b/debian-qt4/watch
@@ -0,0 +1 @@
+../debian-common/watch
\ No newline at end of file
diff --git a/debian/x2goclient.dirs b/debian-qt4/x2goclient.dirs
similarity index 100%
copy from debian/x2goclient.dirs
copy to debian-qt4/x2goclient.dirs
diff --git a/debian/x2goclient.docs b/debian-qt4/x2goclient.docs
similarity index 100%
copy from debian/x2goclient.docs
copy to debian-qt4/x2goclient.docs
diff --git a/debian/x2goclient.examples b/debian-qt4/x2goclient.examples
similarity index 100%
copy from debian/x2goclient.examples
copy to debian-qt4/x2goclient.examples
diff --git a/debian/x2goclient.install b/debian-qt4/x2goclient.install
similarity index 100%
rename from debian/x2goclient.install
rename to debian-qt4/x2goclient.install
diff --git a/debian/x2goclient.manpages b/debian-qt4/x2goclient.manpages
similarity index 100%
rename from debian/x2goclient.manpages
rename to debian-qt4/x2goclient.manpages
diff --git a/debian/x2goplugin-provider.install b/debian-qt4/x2goplugin-provider.install
similarity index 100%
rename from debian/x2goplugin-provider.install
rename to debian-qt4/x2goplugin-provider.install
diff --git a/debian/x2goplugin.install b/debian-qt4/x2goplugin.install
similarity index 100%
rename from debian/x2goplugin.install
rename to debian-qt4/x2goplugin.install
diff --git a/debian-qt5/changelog b/debian-qt5/changelog
new file mode 120000
index 0000000..ddd751e
--- /dev/null
+++ b/debian-qt5/changelog
@@ -0,0 +1 @@
+../debian-common/changelog
\ No newline at end of file
diff --git a/debian-qt5/control b/debian-qt5/control
new file mode 100644
index 0000000..7023fb1
--- /dev/null
+++ b/debian-qt5/control
@@ -0,0 +1,57 @@
+Source: x2goclient
+Section: x11
+Priority: optional
+Maintainer: X2Go Developers <x2go-dev at lists.x2go.org>
+Uploaders:
+ Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>,
+ Mike Gabriel <mike.gabriel at das-netzwerkteam.de>,
+ Mihai Moldovan <ionic at ionic.de>,
+Build-Depends:
+ apache2-dev,
+ debhelper-compat (= 12),
+ dpkg-dev (>= 1.16.1.1),
+ libldap2-dev,
+ libssh-dev (>= 0.5.4-2~),
+ libcups2-dev,
+ libqt5svg5-dev,
+ libqt5x11extras5-dev,
+ libx11-dev,
+ libxpm-dev,
+ man2html-base | man2html,
+ pkg-config,
+ qtbase5-dev,
+ qttools5-dev-tools,
+ quilt,
+Standards-Version: 4.5.1
+Homepage: https://wiki.x2go.org/
+Vcs-Git: https://salsa.debian.org/debian-remote-team/x2goclient.git
+Vcs-Browser: https://salsa.debian.org/debian-remote-team/x2goclient/
+
+Package: x2goclient
+Architecture: any
+Depends:
+ ${shlibs:Depends},
+ ${misc:Depends},
+ openssh-client,
+ nxproxy,
+Recommends:
+ openssh-server,
+ rdesktop | freerdp-x11,
+Suggests:
+ pinentry-x2go,
+Conflicts:
+ x2goclient-gtk,
+Replaces:
+ x2goclient-gtk,
+Description: X2Go Client application (Qt5)
+ X2Go is a serverbased computing environment with
+    - session resuming
+    - low bandwidth support
+    - session brokerage support
+    - client-side mass storage mounting support
+    - client-side printing support
+    - audio support
+    - authentication by smartcard and USB stick
+ .
+ X2Go Client is a graphical client (Qt5) for the X2Go system.
+ You can use it to connect to running sessions and start new sessions.
diff --git a/debian-qt5/copyright b/debian-qt5/copyright
new file mode 120000
index 0000000..613ba8d
--- /dev/null
+++ b/debian-qt5/copyright
@@ -0,0 +1 @@
+../debian-common/copyright
\ No newline at end of file
diff --git a/debian-qt5/patches/1002_fix-ftbfs-on-non-linux.patch b/debian-qt5/patches/1002_fix-ftbfs-on-non-linux.patch
new file mode 100644
index 0000000..efa55af
--- /dev/null
+++ b/debian-qt5/patches/1002_fix-ftbfs-on-non-linux.patch
@@ -0,0 +1,749 @@
+Description: Successfully built on Debian GNU/kFreeBSD and Debian GNU/Hurd
+Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+
+--- a/src/clicklineedit.cpp
++++ b/src/clicklineedit.cpp
+@@ -31,7 +31,7 @@
+ {
+ }
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+ void ClickLineEdit::mouseReleaseEvent ( QMouseEvent * event )
+ {
+ 	QLineEdit::mouseReleaseEvent(event);
+--- a/src/clicklineedit.h
++++ b/src/clicklineedit.h
+@@ -31,7 +31,7 @@
+ 		~ClickLineEdit();
+ 	signals:
+ 		void clicked();
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+ 	protected:
+ 		virtual void mouseReleaseEvent ( QMouseEvent * event );
+ /*		virtual void focusInEvent ( QFocusEvent * event );
+--- a/src/editconnectiondialog.cpp
++++ b/src/editconnectiondialog.cpp
+@@ -85,7 +85,7 @@
+     connect ( sessSet,SIGNAL ( nameChanged ( const QString & ) ),this,
+               SLOT ( slot_changeCaption ( const QString& ) ) );
+     connect ( this,SIGNAL ( accepted() ),this,SLOT ( slot_accepted() ) );
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     connect (sessSet, SIGNAL(directRDP(bool,bool)), this, SLOT(slot_directRDP(bool,bool)));
+ 
+     connect (sessSet,
+@@ -112,7 +112,7 @@
+         setContentsMargins ( 3,3,3,3 );
+     fr->setCurrentIndex ( ind );
+     slot_changeCaption(sessSet->sessionName());
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     sessSet->slot_rdpDirectClicked();
+ #endif
+ }
+@@ -171,7 +171,7 @@
+     }
+ }
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+ void EditConnectionDialog::slot_directRDP(bool direct, bool isXDMCP)
+ {
+     fr->setTabEnabled(1,!direct);
+--- a/src/editconnectiondialog.h
++++ b/src/editconnectiondialog.h
+@@ -64,7 +64,7 @@
+     void slot_changeCaption ( const QString& newName );
+     void slot_accepted();
+     void slot_default();
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     void slot_directRDP(bool direct, bool isXDMCP);
+ #endif
+ };
+--- a/src/ongetpass.cpp
++++ b/src/ongetpass.cpp
+@@ -52,7 +52,7 @@
+     QApplication app ( argc,argv );
+ 
+ #ifndef Q_WS_HILDON
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+ #if QT_VERSION < 0x050000
+     app.setStyle ( new QPlastiqueStyle() );
+ #else
+--- a/src/onmainwindow.cpp
++++ b/src/onmainwindow.cpp
+@@ -62,7 +62,7 @@
+     }
+ #endif
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     image=shape=0;
+ #endif
+     x2goInfof(1) << tr("Starting X2Go Client %1...").arg (QString (VERSION));
+@@ -152,7 +152,7 @@
+     systemDisablePA=false;
+ #endif /* defined (Q_OS_DARWIN) || defined (Q_OS_WIN) */
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     directRDP = false;
+ #endif /* defined (Q_OS_LINUX) */
+ 
+@@ -235,7 +235,7 @@
+     addToAppNames ( "OFFICE",tr ( "OpenOffice.org" ) );
+     addToAppNames ( "TERMINAL",tr ( "Terminal" ) );
+ 
+-#ifndef Q_OS_LINUX
++#if defined(Q_OS_DARWIN) || defined(Q_OS_WIN)
+ #if QT_VERSION < 0x050000
+     widgetExtraStyle = new QPlastiqueStyle ();
+ #else
+@@ -545,7 +545,7 @@
+ 
+ 
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     if (thinMode)
+     {
+         QTimer *timer = new QTimer(this);
+@@ -680,7 +680,7 @@
+     {
+         if (!isHidden())
+             hide();
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+         XSync(QX11Info::display(),false);
+ #endif
+     }
+@@ -1435,7 +1435,7 @@
+                                  QVariant ( isMaximized() ) );
+         st.setting()->sync();
+         x2goDebug<<"Saved settings.";
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+         if (image)
+             XFreePixmap(QX11Info::display(),image);
+         if (shape)
+@@ -2812,7 +2812,7 @@
+         autologin=st->setting()->value (
+                       sid+"/autologin",
+                       ( QVariant ) false ).toBool();
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+         if(command =="XDMCP" && st->setting()->value (
+                       sid+"/directxdmcp",
+                       ( QVariant ) false ).toBool())
+@@ -3423,7 +3423,7 @@
+         if (config.brokerNoAuth && brokerNoauthWithSessionUsername) {
+             config.brokerUser = login->text();
+         }
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+         X2goSettings* st=new X2goSettings(config.iniFile, QSettings::IniFormat);
+         QString sid=sessionExplorer->getLastSession()->id();
+         QString cmd=st->setting()->value ( sid+"/command",
+@@ -3485,7 +3485,7 @@
+     sshConnection->executeCommand ( "x2gogetservers", this, SLOT ( slotGetServers ( bool, QString,int ) ));
+ }
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+ void ONMainWindow::startDirectRDP()
+ {
+     if (!(sessionExplorer->getLastSession())) {
+@@ -3740,7 +3740,7 @@
+ {
+     connectionType=conType;
+     setEnabled ( false );
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     directRDP=false;
+ #endif
+     QString passwd;
+@@ -3810,7 +3810,7 @@
+                                     ( QVariant ) false ).toBool();
+     krbDelegation=st->setting()->value ( sid+"/krbdelegation",
+                                          ( QVariant ) false ).toBool();
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     directRDP=(st->setting()->value ( sid+"/directrdp",
+                                       ( QVariant ) false ).toBool() && cmd == "RDP");
+ 
+@@ -5236,7 +5236,7 @@
+ void ONMainWindow::slotSuspendSess()
+ {
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     if (directRDP)
+     {
+         nxproxy->terminate();
+@@ -5314,7 +5314,7 @@
+     {
+         sendEventToBroker(SUSPENDING);
+     }
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     if (directRDP)
+     {
+         nxproxy->terminate();
+@@ -5338,7 +5338,7 @@
+ 
+ void ONMainWindow::slotTermSessFromSt()
+ {
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     if (directRDP)
+     {
+ 
+@@ -5424,7 +5424,7 @@
+ void ONMainWindow::slotTermSess()
+ {
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     if (directRDP)
+     {
+         nxproxy->terminate();
+@@ -5844,7 +5844,7 @@
+             sshConnection->executeCommand (scmd);
+ 
+             bool sysPulse=false;
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+             loadPulseModuleNativeProtocol();
+             QFile file ( "/etc/default/pulseaudio" );
+             if ( file.open ( QIODevice::ReadOnly |
+@@ -6511,7 +6511,7 @@
+ 
+ void ONMainWindow::slotProxyError ( QProcess::ProcessError err )
+ {
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     if(err==QProcess::FailedToStart && directRDP)
+     {
+         QString main_text = tr("Failed to start RDP or XDMCP client");
+@@ -6614,7 +6614,7 @@
+             }
+         }
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+         if (directRDP)
+             nxproxy=0;
+ #endif
+@@ -6627,7 +6627,7 @@
+     nxproxy=0l;
+     proxyWinId=0;
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     if (directRDP)
+     {
+         if (closeDisconnect)
+@@ -9937,7 +9937,7 @@
+     return false;
+ }
+ 
+-#ifndef Q_OS_LINUX
++#if defined(Q_OS_WIN) || defined(Q_OS_DARWIN)
+ void ONMainWindow::setWidgetStyle ( QWidget* widget )
+ {
+     widget->setStyle ( widgetExtraStyle );
+@@ -10334,7 +10334,7 @@
+                                  ( QVariant )
+                                  "UTF-8" ).toString();
+ #endif
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+             QString fromCode=st.setting()->value (
+                                  sid+"/iconvfrom",
+                                  ( QVariant ) tr (
+@@ -11544,7 +11544,7 @@
+     else
+         pixmap=*(sessionExplorer->getLastSession()->sessIcon());
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+ 
+     XStoreName(QX11Info::display(), proxyWinId, title.toLocal8Bit().data());
+ 
+@@ -11591,7 +11591,7 @@
+ void ONMainWindow::slotSetProxyWinFullscreen()
+ {
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+ 
+     QRect geom=QApplication::desktop()->screenGeometry(localDisplayNumber-1);
+     Atom atom = XInternAtom ( QX11Info::display(), "_NET_WM_STATE_FULLSCREEN", True );
+@@ -11647,7 +11647,7 @@
+         ", h: "+ QString("%1").arg(geom.height());
+     x2goDebug<<"Resizing proxy window to fit display: " + QString("%1").arg(disp) + " " + geoStr;
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     XSync(QX11Info::display(),false);
+     XMoveResizeWindow(QX11Info::display(), proxyWinId, geom.x(), geom.y(), 800, 600);
+     XMapWindow(QX11Info::display(), proxyWinId);
+@@ -11667,7 +11667,7 @@
+         return QRect();
+     return proxyRect;
+ #endif
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     QRect proxyRect;
+     Window root;
+     int x,y;
+@@ -11754,7 +11754,7 @@
+         xinSizeInc=1;
+     else
+         xinSizeInc=-1;
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     lastDisplayGeometry.setWidth(lastDisplayGeometry.width()+xinSizeInc);
+     XSync(QX11Info::display(),false);
+     XResizeWindow(QX11Info::display(), proxyWinId,
+@@ -11893,7 +11893,7 @@
+     setStatStatus();
+     act_embedContol->setText ( tr ( "Attach X2Go window" ) );
+     act_embedContol->setIcon ( QIcon ( iconsPath("/32x32/attach.png" ) ));
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     //if QX11EmbedContainer cannot embed window, check if window exists
+     //and reconnect
+     if ( !embedControlChanged )
+@@ -12301,7 +12301,7 @@
+ 
+ void ONMainWindow::slotChangeKbdLayout(const QString& layout)
+ {
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     QStringList args;
+     args<<"-layout"<<layout;
+ 
+@@ -12378,7 +12378,7 @@
+     pass->setEchoMode ( QLineEdit::Password );
+     pass->setFocus();
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     connect ( login,SIGNAL ( clicked() ),this,
+               SLOT ( slotActivateWindow() ) );
+     connect ( pass,SIGNAL ( clicked() ),this,
+@@ -13354,7 +13354,7 @@
+     dr.rmdir ( path );
+ }
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+ long ONMainWindow::X11FindWindow ( QString text, long rootWin )
+ {
+     Window    wParent;
+@@ -13395,7 +13395,7 @@
+ long ONMainWindow::findWindow ( QString text )
+ {
+     x2goDebug<<"Searching window with title: " + text;
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     return X11FindWindow ( text );
+ #endif
+ #ifdef Q_OS_WIN
+--- a/src/onmainwindow.h
++++ b/src/onmainwindow.h
+@@ -797,7 +797,7 @@
+     bool newSession;
+     bool runStartApp;
+     bool ldapOnly;
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     bool directRDP;
+ #endif
+ 
+@@ -910,7 +910,7 @@
+     QRect dispGeometry;
+ #endif
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     long image, shape;
+ #endif
+ 
+@@ -1196,7 +1196,7 @@
+ 
+ private:
+     void resizeProxyWinOnDisplay(int display);
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     long X11FindWindow ( QString text, long rootWin=0 );
+ #endif
+     void addToAppNames ( QString intName, QString transName );
+@@ -1222,7 +1222,7 @@
+     void printSshDError_noAuthorizedKeysFile();
+     void loadPulseModuleNativeProtocol();
+     void initEmbedToolBar();
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     void startDirectRDP();
+ #endif
+     void filterDesktops ( const QString& filter,
+--- a/src/onmainwindow_privat.h
++++ b/src/onmainwindow_privat.h
+@@ -87,11 +87,9 @@
+ #include "contest.h"
+ 
+ #if !defined Q_OS_WIN
+-#include <sys/mount.h>
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+ #include <X11/Xatom.h>
+ #include <X11/xpm.h>
+-#include <linux/fs.h>
+ #endif // Q_OS_LINUX
+ #endif // !defined Q_OS_WIN
+ 
+@@ -153,7 +151,7 @@
+ #include <QHostInfo>
+ #endif
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+ #if QT_VERSION < 0x050000
+ #include <QX11Info>
+ #else
+--- a/src/pulsemanager.cpp
++++ b/src/pulsemanager.cpp
+@@ -135,7 +135,7 @@
+ #elif defined (Q_OS_WIN)
+   server_working_dir_ = QString (app_dir_ + "/pulse/");
+   server_binary_ = QString (app_dir_ + "/pulse/pulseaudio.exe");
+-#elif defined (Q_OS_LINUX)
++#elif defined (Q_OS_LINUX) || defined (Q_OS_FREEBSD_KERNEL) || defined (Q_OS_HURD)
+   std::ssize_t path_len = pathconf (".", _PC_PATH_MAX);
+ 
+   if (-1 == path_len) {
+@@ -206,7 +206,7 @@
+     start_osx ();
+ #elif defined (Q_OS_WIN)
+     start_win ();
+-#elif defined (Q_OS_LINUX)
++#elif defined (Q_OS_LINUX) || defined (Q_OS_FREEBSD_KERNEL) || defined (Q_OS_HURD)
+     start_linux ();
+ #endif // defined (Q_OS_DARWIN)
+   }
+--- a/src/sessionbutton.cpp
++++ b/src/sessionbutton.cpp
+@@ -484,7 +484,7 @@
+     }
+     else if ( command =="RDP" )
+     {
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+         if (st->setting()->value ( sid+"/directrdp",
+                                    ( QVariant ) false ).toBool())
+             directRDP=true;
+@@ -495,7 +495,7 @@
+     }
+     else if ( command =="XDMCP" )
+     {
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+         if (st->setting()->value ( sid+"/directxdmcp",
+                                    ( QVariant ) false ).toBool()) {
+             directRDP=true;
+--- a/src/sessionwidget.cpp
++++ b/src/sessionwidget.cpp
+@@ -95,7 +95,7 @@
+     sshPort->setMinimum ( 0 );
+     sshPort->setMaximum ( 65535 );
+     sshPort->setToolTip (ssh_port_tooltip_text);
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     rdpPort=new QSpinBox ( sgb );
+     rdpPort->setValue ( mainWindow->getDefaultSshPort().toInt() );
+     rdpPort->setMinimum ( 0 );
+@@ -127,7 +127,7 @@
+     elLay->addWidget ( server );
+     elLay->addWidget ( uname );
+     elLay->addWidget ( sshPort );
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     elLay->addWidget ( rdpPort );
+ #endif
+     suLay->addLayout ( slLay );
+@@ -254,7 +254,7 @@
+         sessLay->addSpacing ( 15 );
+     sessLay->addWidget ( sgb );
+     sessLay->addWidget ( deskSess );
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     cbDirectRDP=new QCheckBox(tr("Direct RDP connection"), deskSess);
+     cmdLay->addWidget(cbDirectRDP,2,0,1,6);
+     cbDirectRDP->hide();
+@@ -292,7 +292,7 @@
+     connect (server, SIGNAL(textChanged(const QString&)),this, SLOT(slot_emitSettings()));
+     connect (uname, SIGNAL(textChanged(const QString&)),this, SLOT(slot_emitSettings()));
+     connect (cbKrbLogin, SIGNAL(clicked(bool)), this, SLOT(slot_krbChecked()));
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     connect (rdpPort, SIGNAL(valueChanged(int)),this, SLOT(slot_emitSettings()));
+ #endif
+ 
+@@ -376,7 +376,7 @@
+ }
+ 
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+ void SessionWidget::slot_rdpDirectClicked()
+ {
+     bool isDirectRDP=cbDirectRDP->isChecked();
+@@ -488,7 +488,7 @@
+ {
+     leCmdIp->setText ( tr ( "Command:" ) );
+     pbAdvanced->hide();
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     cbDirectRDP->hide();
+ #endif
+     leCmdIp->show();
+@@ -516,7 +516,7 @@
+                 leCmdIp->setText ( tr ( "Server:" ) );
+                 pbAdvanced->show();
+                 cmd->setText ( rdpServer );
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+                 cbDirectRDP->show();
+ #endif
+             }
+@@ -524,7 +524,7 @@
+             {
+                 leCmdIp->setText ( tr ( "XDMCP server:" ) );
+                 cmd->setText ( xdmcpServer );
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+                 cbDirectRDP->show();
+                 cbDirectRDP->setText(tr ("direct XDMCP connection"));
+ #endif
+@@ -536,7 +536,7 @@
+             cmd->setText ( "" );
+         }
+     }
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     slot_rdpDirectClicked();
+ #endif
+ }
+@@ -611,7 +611,7 @@
+             sessionId+"/sshport",
+             ( QVariant ) mainWindow->getDefaultSshPort().toInt()
+         ).toInt() );
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     rdpPort->setValue (
+         st.setting()->value (
+             sessionId+"/rdpport",3389
+@@ -699,7 +699,7 @@
+                                     ( QVariant ) "" ).toString().trimmed();
+     xdmcpServer=st.setting()->value ( sessionId+"/xdmcpserver",
+                                       ( QVariant ) "localhost" ).toString().trimmed();
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     if(st.setting()->value (sessionId+"/directrdp",false ).toBool())
+     {
+         cbDirectRDP->setChecked(true);
+@@ -773,7 +773,7 @@
+             cmd->setEnabled ( true );
+             cmd->setText ( rdpServer );
+             pbAdvanced->show();
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+             cbDirectRDP->show();
+             slot_rdpDirectClicked();
+ #endif
+@@ -784,7 +784,7 @@
+             sessBox->setCurrentIndex ( XDMCP );
+             cmd->setEnabled ( true );
+             cmd->setText ( xdmcpServer );
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+             cbDirectRDP->show();
+             slot_rdpDirectClicked();
+ #endif
+@@ -804,7 +804,7 @@
+ 
+     cbKdrive->setChecked(st.setting()->value (sessionId+"/kdrive", false).toBool() );
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     slot_rdpDirectClicked();
+ #endif
+     slot_krbChecked();
+@@ -830,7 +830,7 @@
+     icon->setIcon ( QIcon ( sessIcon ) );
+     sshPort->setValue (
+         mainWindow->getDefaultSshPort().toInt() );
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     rdpPort->setValue (3389);
+ #endif
+ 
+@@ -876,7 +876,7 @@
+ 
+     st.setting()->setValue ( sessionId+"/key",
+                              ( QVariant ) key->text().trimmed() );
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     st.setting()->setValue ( sessionId+"/rdpport",
+                              ( QVariant ) rdpPort->value() );
+ #endif
+@@ -885,7 +885,7 @@
+     st.setting()->setValue(sessionId+"/autologin",( QVariant ) cbAutoLogin->isChecked());
+     st.setting()->setValue(sessionId+"/krblogin",( QVariant ) cbKrbLogin->isChecked());
+     st.setting()->setValue(sessionId+"/krbdelegation",( QVariant ) cbKrbDelegation->isChecked());
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     st.setting()->setValue(sessionId+"/directrdp",( QVariant ) cbDirectRDP->isChecked());
+     st.setting()->setValue(sessionId+"/directxdmcp",( QVariant ) cbDirectRDP->isChecked());
+ #endif
+@@ -981,7 +981,7 @@
+     return sessName->text();
+ }
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+ void SessionWidget::slot_emitSettings()
+ {
+     emit settingsChanged(server->text(), QString::number( rdpPort->value()), uname->text());
+--- a/src/sessionwidget.h
++++ b/src/sessionwidget.h
+@@ -53,7 +53,7 @@
+     void slot_krbChecked();
+     void slot_openFolder();
+ public slots:
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     void slot_rdpDirectClicked();
+     void slot_emitSettings();
+ #endif
+@@ -66,14 +66,14 @@
+     QSpinBox* sshPort;
+     ONMainWindow* parent;
+     bool newSession;
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     QSpinBox* rdpPort;
+ #endif
+     QLineEdit* key;
+     QCheckBox* cbAutoLogin;
+     QCheckBox* cbKrbLogin;
+     QCheckBox* cbKrbDelegation;
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     QCheckBox* cbDirectRDP;
+ #endif
+     QString sessIcon;
+@@ -111,7 +111,7 @@
+     void readConfig();
+ signals:
+     void nameChanged ( const QString & );
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     void directRDP(bool, bool);
+     void settingsChanged(const QString &, const QString &, const QString &);
+ #endif
+--- a/src/settingswidget.cpp
++++ b/src/settingswidget.cpp
+@@ -199,7 +199,7 @@
+     setLay->addWidget ( dgb );
+     setLay->addWidget ( clipGr );
+     setLay->addWidget ( kgb );
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+ #ifdef CFGCLIENT
+     rdpBox=new QGroupBox ( tr ( "RDP client" ),this );
+     setLay->addWidget ( rdpBox );
+@@ -301,7 +301,7 @@
+ }
+ 
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+ void SettingsWidget::setDirectRdp(bool direct, bool isXDMCP)
+ {
+     clipGr->setVisible(!direct);
+@@ -417,7 +417,7 @@
+             displayNumber->setValue(1);
+     }
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+ #ifdef CFGCLIENT
+     maxRes->setChecked(st.setting()->value ( sessionId+"/maxdim", false).toBool());
+     QString client=st.setting()->value ( sessionId+"/rdpclient","rdesktop").toString();
+@@ -553,7 +553,7 @@
+     st.setting()->setValue ( sessionId+"/display",
+                              ( QVariant ) displayNumber->value() );
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+ #ifdef CFGCLIENT
+     st.setting()->setValue ( sessionId+"/maxdim",
+                              ( QVariant ) maxRes->isChecked() );
+@@ -663,7 +663,7 @@
+     st.setting()->sync();
+ }
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+ void SettingsWidget::setServerSettings(QString server, QString port, QString user)
+ {
+     this->server=server;
+--- a/src/settingswidget.h
++++ b/src/settingswidget.h
+@@ -43,7 +43,7 @@
+     ~SettingsWidget();
+     void setDefaults();
+     void saveSettings();
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     void setDirectRdp(bool direct, bool isXDMCP);
+ public slots:
+     void setServerSettings(QString server, QString port, QString user);
+@@ -87,7 +87,7 @@
+     QRadioButton *rbClipClient;
+     QRadioButton *rbClipNone;
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     QGroupBox *rdpBox;
+     QRadioButton* rRdesktop;
+     QRadioButton* rXfreeRDPOld;
+--- a/src/sharewidget.cpp
++++ b/src/sharewidget.cpp
+@@ -240,7 +240,7 @@
+                                            ( QVariant )
+                                            "UTF-8" ).toString();
+ #endif
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD_KERNEL) || defined(Q_OS_HURD)
+     QString fromCode=st.setting()->value ( sessionId+"/iconvfrom",
+                                            ( QVariant ) tr (
+                                                    "ISO8859-1" ) ).toString();
+--- a/src/InteractionDialog.cpp
++++ b/src/InteractionDialog.cpp
+@@ -87,7 +87,7 @@
+     textEdit->setFrameStyle ( QFrame::StyledPanel|QFrame::Plain );
+     cancelButton->setFlat(true);
+ 
+-#ifndef Q_OS_LINUX
++#if defined(Q_OS_DARWIN) || defined(Q_OS_WIN)
+     QStyle* widgetExtraStyle;
+ #if QT_VERSION < 0x050000
+     widgetExtraStyle = new QPlastiqueStyle ();
diff --git a/debian-qt5/patches/README b/debian-qt5/patches/README
new file mode 100644
index 0000000..80c1584
--- /dev/null
+++ b/debian-qt5/patches/README
@@ -0,0 +1,3 @@
+0xxx: Grabbed from upstream development.
+1xxx: Possibly relevant for upstream adoption.
+2xxx: Only relevant for official Debian release.
diff --git a/debian-qt5/patches/series b/debian-qt5/patches/series
new file mode 100644
index 0000000..eab3a65
--- /dev/null
+++ b/debian-qt5/patches/series
@@ -0,0 +1,2 @@
+update_makefile_qt5-build.patch
+1002_fix-ftbfs-on-non-linux.patch
diff --git a/debian-qt5/patches/update_makefile_qt5-build.patch b/debian-qt5/patches/update_makefile_qt5-build.patch
new file mode 100644
index 0000000..85b0063
--- /dev/null
+++ b/debian-qt5/patches/update_makefile_qt5-build.patch
@@ -0,0 +1,18 @@
+Description: Update Makefile to support qt5.
+Author:  Scarlett Clark <sgclark at kde.org>
+Last-Update: 2018-03-27
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/Makefile
++++ b/Makefile
+@@ -20,8 +20,8 @@
+ BINDIR=$(PREFIX)/bin
+ SHAREDIR=$(PREFIX)/share
+ MANDIR=$(SHAREDIR)/man
+-QMAKE_BINARY=qmake-qt4
+-LRELEASE_BINARY=lrelease-qt4
++QMAKE_BINARY=qmake
++LRELEASE_BINARY=lrelease
+ QMAKE_OPTS=
+ 
+ LDFLAGS=
diff --git a/debian-qt5/rules b/debian-qt5/rules
new file mode 100755
index 0000000..288516c
--- /dev/null
+++ b/debian-qt5/rules
@@ -0,0 +1,35 @@
+#!/usr/bin/make -f
+
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+DPKG_EXPORT_BUILDFLAGS = 1
+export QT_SELECT=qt5
+include /usr/share/dpkg/buildflags.mk
+
+%:
+	dh $@ --with=quilt
+
+override_dh_auto_configure:
+	cp debian/changelog res/txt/changelog
+	if [ -f ChangeLog.gitlog ]; then cp ChangeLog.gitlog res/txt/git-info; fi
+	dh_auto_configure
+
+override_dh_auto_build:
+	make PREFIX=/usr build_client
+	make PREFIX=/usr build_man
+
+override_dh_auto_install:
+	make install_client DESTDIR=$(CURDIR)/$(PACKAGE) PREFIX=/usr
+	make install_man DESTDIR=$(CURDIR)/$(PACKAGE) PREFIX=/usr
+
+override_dh_auto_clean:
+	dh_auto_clean
+	# clean stray .qm files that are not handled by clean rule in upstream Makefile
+	mkdir -p txt/
+	rm -Rf res/i18n/x2goclient_*.qm
+	rm -f  res/txt/changelog
+
+override_dh_missing:
+	dh_missing --fail-missing
+
+get-orig-source:
+	uscan --noconf --force-download --rename --download-current-version --destdir=..
diff --git a/debian-qt5/source b/debian-qt5/source
new file mode 120000
index 0000000..6840b09
--- /dev/null
+++ b/debian-qt5/source
@@ -0,0 +1 @@
+../debian-common/source
\ No newline at end of file
diff --git a/debian-qt5/upstream b/debian-qt5/upstream
new file mode 120000
index 0000000..5f6c874
--- /dev/null
+++ b/debian-qt5/upstream
@@ -0,0 +1 @@
+../debian-common/upstream
\ No newline at end of file
diff --git a/debian-qt5/watch b/debian-qt5/watch
new file mode 120000
index 0000000..046c942
--- /dev/null
+++ b/debian-qt5/watch
@@ -0,0 +1 @@
+../debian-common/watch
\ No newline at end of file
diff --git a/debian/x2goclient.dirs b/debian-qt5/x2goclient.dirs
similarity index 78%
copy from debian/x2goclient.dirs
copy to debian-qt5/x2goclient.dirs
index ceef262..ee163ee 100644
--- a/debian/x2goclient.dirs
+++ b/debian-qt5/x2goclient.dirs
@@ -1,6 +1,6 @@
 usr/bin/
-usr/share/x2goclient
-usr/share/x2goclient/icons
+usr/share/x2goclient/
+usr/share/x2goclient/icons/
 usr/share/icons/hicolor/128x128/apps/
 usr/share/icons/hicolor/16x16/apps/
 usr/share/icons/hicolor/64x64/apps/
diff --git a/debian/x2goclient.docs b/debian-qt5/x2goclient.docs
similarity index 100%
rename from debian/x2goclient.docs
rename to debian-qt5/x2goclient.docs
diff --git a/debian/x2goclient.examples b/debian-qt5/x2goclient.examples
similarity index 100%
rename from debian/x2goclient.examples
rename to debian-qt5/x2goclient.examples
diff --git a/debian/x2goclient.dirs b/debian-qt5/x2goclient.install
similarity index 60%
rename from debian/x2goclient.dirs
rename to debian-qt5/x2goclient.install
index ceef262..4216286 100644
--- a/debian/x2goclient.dirs
+++ b/debian-qt5/x2goclient.install
@@ -1,9 +1,11 @@
 usr/bin/
-usr/share/x2goclient
-usr/share/x2goclient/icons
+usr/share/applications/
+usr/share/mime/
+usr/share/x2goclient/icons/
+usr/share/x2goclient/icons/
+usr/share/x2goclient/icons/
 usr/share/icons/hicolor/128x128/apps/
 usr/share/icons/hicolor/16x16/apps/
 usr/share/icons/hicolor/64x64/apps/
 usr/share/icons/hicolor/32x32/apps/
-usr/share/applications/
-
+usr/share/man/

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goclient.git


More information about the x2go-commits mailing list