diff options
-rw-r--r-- | debian/VERSION (renamed from debian/VERSION.x2goagent) | 0 | ||||
-rw-r--r-- | debian/changelog | 5 | ||||
-rw-r--r-- | debian/patches/400_nxcomp-version.full+lite.patch | 240 | ||||
-rw-r--r-- | debian/patches/series | 1 | ||||
-rwxr-xr-x | debian/roll-tarballs.sh | 4 | ||||
-rwxr-xr-x | debian/rules | 3 |
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} |