aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/VERSION (renamed from debian/VERSION.x2goagent)0
-rw-r--r--debian/changelog5
-rw-r--r--debian/patches/400_nxcomp-version.full+lite.patch240
-rw-r--r--debian/patches/series1
-rwxr-xr-xdebian/roll-tarballs.sh4
-rwxr-xr-xdebian/rules3
6 files changed, 251 insertions, 2 deletions
diff --git a/debian/VERSION.x2goagent b/debian/VERSION
index 12170348d..12170348d 100644
--- a/debian/VERSION.x2goagent
+++ b/debian/VERSION
diff --git a/debian/changelog b/debian/changelog
index 2c4193746..535d008c2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,15 @@
nx-libs (2:3.5.0.28-0x2go1) UNRELEASED; urgency=medium
+ [ Mike Gabriel ]
* Provide COPYING file in tarball. Update debian/copyright.
* Add 025_nxcomp-fix-ftbfs-against-jpeg9a.full+lite.patch. Fix FTBFS when
built against libjpeg9a. Thanks to Gabriel Marcano for sending this in.
(Fixes: #578).
+ [ Nito Martinez ]
+ * Add 400_nxcomp-version.full+lite.patch. Allow 4-digit version comparison
+ during NX session handshake. (Fixes: #610).
+
-- Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Mon, 30 Jun 2014 15:05:54 +0200
nx-libs (2:3.5.0.27-0x2go1) unstable; urgency=medium
diff --git a/debian/patches/400_nxcomp-version.full+lite.patch b/debian/patches/400_nxcomp-version.full+lite.patch
new file mode 100644
index 000000000..703cec823
--- /dev/null
+++ b/debian/patches/400_nxcomp-version.full+lite.patch
@@ -0,0 +1,240 @@
+Description: Allow version 4-digit version comparison/handshake
+Author: Nito Martinez <Nito@Qindel.ES>
+--- a/nxcomp/Control.cpp
++++ b/nxcomp/Control.cpp
+@@ -15,6 +15,7 @@
+ /* */
+ /**************************************************************************/
+
++#include "NX.h"
+ #include "NXpack.h"
+
+ #include "Control.h"
+@@ -594,44 +595,17 @@
+ RemoteVersionMajor = -1;
+ RemoteVersionMinor = -1;
+ RemoteVersionPatch = -1;
++ RemoteVersionMaintenancePatch = -1;
+
+ CompatVersionMajor = -1;
+ CompatVersionMinor = -1;
+ CompatVersionPatch = -1;
++ CompatVersionMaintenancePatch = -1;
+
+- char version[32];
+-
+- strcpy(version, VERSION);
+-
+- char *value;
+-
+- value = strtok(version, ".");
+-
+- for (int i = 0; value != NULL && i < 3; i++)
+- {
+- switch (i)
+- {
+- case 0:
+-
+- LocalVersionMajor = atoi(value);
+-
+- break;
+-
+- case 1:
+-
+- LocalVersionMinor = atoi(value);
+-
+- break;
+-
+- case 2:
+-
+- LocalVersionPatch = atoi(value);
+-
+- break;
+- }
+-
+- value = strtok(NULL, ".");
+- }
++ LocalVersionMajor = NXMajorVersion();
++ LocalVersionMinor = NXMinorVersion();
++ LocalVersionPatch = NXPatchVersion();
++ LocalVersionMaintenancePatch = NXMaintenancePatchVersion();
+
+ #ifdef TEST
+ *logofs << "Control: Major version is " << LocalVersionMajor
+--- a/nxcomp/Control.h
++++ b/nxcomp/Control.h
+@@ -299,17 +299,26 @@
+ // Version number of local and remote proxy.
+ //
+
++ /*
++ * LocalVersionMaintenancePatch, RemoteVersionMaintenancePatch
++ * CompatVersionMaintenancePatch
++ *
++ * currently not used, for future compatibility checks
++ */
+ int LocalVersionMajor;
+ int LocalVersionMinor;
+ int LocalVersionPatch;
++ int LocalVersionMaintenancePatch;
+
+ int RemoteVersionMajor;
+ int RemoteVersionMinor;
+ int RemoteVersionPatch;
++ int RemoteVersionMaintenancePatch;
+
+ int CompatVersionMajor;
+ int CompatVersionMinor;
+ int CompatVersionPatch;
++ int CompatVersionMaintenancePatch;
+
+ //
+ // Which unpack methods are implemented in proxy?
+--- a/nxcomp/Loop.cpp
++++ b/nxcomp/Loop.cpp
+@@ -14250,7 +14250,8 @@
+ cerr << "NXPROXY - " << "Version "
+ << control -> LocalVersionMajor << "."
+ << control -> LocalVersionMinor << "."
+- << control -> LocalVersionPatch;
++ << control -> LocalVersionPatch << "."
++ << control -> LocalVersionMaintenancePatch;
+
+ cerr << endl;
+ }
+--- a/nxcomp/Makefile.in
++++ b/nxcomp/Makefile.in
+@@ -105,7 +105,8 @@
+
+ CSRC = MD5.c \
+ Pack.c \
+- Vars.c
++ Vars.c \
++ Version.c
+
+ CXXSRC = Loop.cpp \
+ Children.cpp \
+--- a/nxcomp/NX.h
++++ b/nxcomp/NX.h
+@@ -442,6 +442,12 @@
+
+ extern void NXTransCleanup(void) __attribute__((noreturn));
+
++extern const char* NXVersion();
++extern int NXMajorVersion();
++extern int NXMinorVersion();
++extern int NXPatchVersion();
++extern int NXMaintenancePatchVersion();
++
+ #ifdef __cplusplus
+ }
+ #endif
+--- /dev/null
++++ b/nxcomp/Version.c
+@@ -0,0 +1,106 @@
++/**************************************************************************/
++/* */
++/* Copyright (C) 2014 Qindel http://qindel.com and QVD http://theqvd.com */
++/* */
++/* 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 version 3 of the License, or (at */
++/* your option) any later version. */
++/* */
++/* 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>. */
++/* */
++/* Additional permission under GNU GPL version 3 section 7 */
++/* */
++/* If you modify this Program, or any covered work, by linking or */
++/* combining it with [name of library] (or a modified version of that */
++/* library), containing parts covered by the terms of [name of library's */
++/* license], the licensors of this Program grant you additional */
++/* permission to convey the resulting work. {Corresponding Source for a */
++/* non-source form of such a combination shall include the source code */
++/* for the parts of [name of library] used as well as that of the covered */
++/* work.} */
++/* */
++/* */
++/**************************************************************************/
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include "NX.h"
++
++
++static int _NXVersionMajor = -1;
++static int _NXVersionMinor = -1;
++static int _NXVersionPatch = -1;
++static int _NXVersionMaintenancePatch = -1;
++
++
++const char* NXVersion() {
++ const char *version = VERSION;
++ return version;
++}
++
++void _parseNXVersion() {
++ char version[32];
++ int i;
++ strcpy(version, VERSION);
++
++ char *value;
++ /* Reset values to 0 if undefined */
++ _NXVersionMajor = _NXVersionMinor = _NXVersionPatch = _NXVersionMaintenancePatch = 0;
++
++
++#define NXVERSIONSEPARATOR "."
++ value = strtok(version, NXVERSIONSEPARATOR);
++
++ for (i = 0; value != NULL && i < 4; i++)
++ {
++ switch (i)
++ {
++ case 0:
++ _NXVersionMajor = atoi(value);
++ break;
++
++ case 1:
++ _NXVersionMinor = atoi(value);
++ break;
++
++ case 2:
++ _NXVersionPatch = atoi(value);
++ break;
++
++ case 3:
++ _NXVersionMaintenancePatch = atoi(value);
++ break;
++ }
++
++ value = strtok(NULL, NXVERSIONSEPARATOR);
++ }
++}
++
++int NXMajorVersion() {
++ if (_NXVersionMajor == -1)
++ _parseNXVersion();
++ return _NXVersionMajor;
++}
++int NXMinorVersion() {
++ if (_NXVersionMinor == -1)
++ _parseNXVersion();
++ return _NXVersionMinor;
++}
++int NXPatchVersion() {
++ if (_NXVersionPatch == -1)
++ _parseNXVersion();
++ return _NXVersionPatch;
++}
++int NXMaintenancePatchVersion() {
++ if (_NXVersionMaintenancePatch == -1)
++ _parseNXVersion();
++ return _NXVersionMaintenancePatch;
++}
diff --git a/debian/patches/series b/debian/patches/series
index e23de8ded..7b068d1ce 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -60,6 +60,7 @@
301_nx-X11_use-shared-libs.full.patch
302_nx-X11_xkbbasedir-detection.full.patch
320_nxagent_configurable-keystrokes.full.patch
+400_nxcomp-version.full+lite.patch
600_nx-X11+nxcompext+nxcompshad_unique-libnames.full.patch
601_nx-X11_build-option-changes-to-not-use-bundled-libraries.full.patch
602_nx-X11_initgroups.full.patch
diff --git a/debian/roll-tarballs.sh b/debian/roll-tarballs.sh
index 6f7d7127b..3da027c11 100755
--- a/debian/roll-tarballs.sh
+++ b/debian/roll-tarballs.sh
@@ -86,7 +86,8 @@ if [ "x$MODE" = "xfull" ]; then
cp -v $file doc/applied-patches
echo ${file##*/} >> doc/applied-patches/series
done
- cp -v debian/rgb debian/VERSION.x2goagent .
+ cp -v debian/rgb ./
+ cp -v debian/VERSION ./VERSION.x2goagent
else
rm -Rf "nxcompshad"*
rm -Rf "nxcompext"*
@@ -97,6 +98,7 @@ else
echo ${file##*/} >> doc/applied-patches/series
done
fi
+cp -v debian/VERSION ./nxcomp/VERSION
cp -v debian/COPYING.full+lite COPYING
# apply all patches shipped in debian/patches and create a copy of them that we ship with the tarball
diff --git a/debian/rules b/debian/rules
index c6bc4b15b..042061cf5 100755
--- a/debian/rules
+++ b/debian/rules
@@ -42,7 +42,8 @@ override_dh_auto_build:
mkdir -p etc/
ln -s ../debian/keystrokes.cfg etc/keystrokes.cfg
ln -s debian/rgb
- ln -s debian/VERSION.x2goagent
+ ln -sf VERSION.x2goagent debian/VERSION
+ ln -sf nxcomp/VERSION debian/VERSION
# remove bundled libraries (keep this in sync with roll-tarball.sh)
rm -Rf nx-X11/extras/{drm,expat,fontconfig,freetype2,fonts,ogl-sample,regex,rman,ttf2pt1,x86emu,zlib}