[X2Go-Commits] [nx-libs] 01/02: Add 400_nxcomp-version.full+lite.patch. Allow 4-digit version comparison during NX session handshake. (Fixes: #610).

git-admin at x2go.org git-admin at x2go.org
Thu Oct 2 11:54:36 CEST 2014


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

x2go pushed a commit to branch master
in repository nx-libs.

commit 61d047d630bf1dceb61e25f63360969a5416e596
Author: Nito Martinez <Nito at Qindel.ES>
Date:   Thu Oct 2 10:40:55 2014 +0200

    Add 400_nxcomp-version.full+lite.patch. Allow 4-digit version comparison during NX session handshake. (Fixes: #610).
---
 debian/{VERSION.x2goagent => VERSION}             |    0
 debian/changelog                                  |    5 +
 debian/patches/400_nxcomp-version.full+lite.patch |  240 +++++++++++++++++++++
 debian/patches/series                             |    1 +
 debian/roll-tarballs.sh                           |    4 +-
 debian/rules                                      |    3 +-
 6 files changed, 251 insertions(+), 2 deletions(-)

diff --git a/debian/VERSION.x2goagent b/debian/VERSION
similarity index 100%
rename from debian/VERSION.x2goagent
rename to debian/VERSION
diff --git a/debian/changelog b/debian/changelog
index 2c41937..535d008 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 at 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 0000000..703cec8
--- /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 at 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 e23de8d..7b068d1 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 6f7d712..3da027c 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 c6bc4b1..042061c 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}

--
Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git


More information about the x2go-commits mailing list