Commit 61d047d6 authored by Nito Martinez's avatar Nito Martinez Committed by Mike Gabriel

Add 400_nxcomp-version.full+lite.patch. Allow 4-digit version comparison during…

Add 400_nxcomp-version.full+lite.patch. Allow 4-digit version comparison during NX session handshake. (Fixes: #610).
parent c9bc8acc
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
......
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;
+}
......@@ -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
......
......@@ -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
......
......@@ -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}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment