[X2Go-Commits] [nx-libs] 01/01: Add 212_nxcomp_build-on-Android.patch. Fix FTBFS of nxproxy/nxcomp when build against the Android system. (Fixes: #339).

git-admin at x2go.org git-admin at x2go.org
Sun Jun 29 15:12:56 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 cf029b619af06951d2170995e97e3eb883c3c265
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Sun Jun 29 15:11:31 2014 +0200

    Add 212_nxcomp_build-on-Android.patch. Fix FTBFS of nxproxy/nxcomp when build against the Android system. (Fixes: #339).
---
 debian/changelog                                   |    4 +
 debian/patches/212_nxcomp_build-on-Android.patch   |  253 ++++++++++++++++++++
 .../220_nxproxy_bind-loopback-only.full+lite.patch |    2 +-
 debian/patches/series                              |    1 +
 4 files changed, 259 insertions(+), 1 deletion(-)

diff --git a/debian/changelog b/debian/changelog
index c4524f5..1162610 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -35,6 +35,10 @@ nx-libs (2:3.5.0.25-0x2go1) UNRELEASED; urgency=low
     parameter overrides the clipboard NX option. Possible values are
     both or 1, client, server, none or 0.
 
+  [ Nito Martínez ]
+  * Add 212_nxcomp_build-on-Android.patch. Fix FTBFS of nxproxy/nxcomp when
+    build against the Android system. (Fixes: #339).
+
   * Update patches, to make them apply cleanly after above changes:
     + 220_nxproxy-bind-loopback-only.full+lite.patch
     + 016_nx-X11_install-location.debian.patch
diff --git a/debian/patches/212_nxcomp_build-on-Android.patch b/debian/patches/212_nxcomp_build-on-Android.patch
new file mode 100644
index 0000000..528d33b
--- /dev/null
+++ b/debian/patches/212_nxcomp_build-on-Android.patch
@@ -0,0 +1,253 @@
+Author: Nito Martinez <Nito at Qindel.ES>
+Description: Fix FTBFS of nxproxy/nxcomp on Android
+
+--- a/nxcomp/Jpeg.cpp
++++ b/nxcomp/Jpeg.cpp
+@@ -17,6 +17,9 @@
+ 
+ #include <X11/Xmd.h>
+ 
++#ifdef ANDROID
++#include <strings.h>
++#endif
+ #include <unistd.h>
+ #include <setjmp.h>
+ #include <zlib.h>
+--- a/nxcomp/Loop.cpp
++++ b/nxcomp/Loop.cpp
+@@ -4187,7 +4187,7 @@
+ 
+   #endif
+ 
+-  char *separator = rindex(display, ':');
++  char *separator = strrchr(display, ':');
+ 
+   if ((separator == NULL) || !isdigit(*(separator + 1)))
+   {
+@@ -8240,7 +8240,7 @@
+   char *name;
+   char *value;
+ 
+-  value = rindex(nextOpts, ':');
++  value = strrchr(nextOpts, ':');
+ 
+   if (value != NULL)
+   {
+@@ -11010,7 +11010,7 @@
+                                       packMethod == PACK_LOSSLESS ||
+                                           packMethod == PACK_ADAPTIVE)
+   {
+-    const char *dash = rindex(opt, '-');
++    const char *dash = strrchr(opt, '-');
+ 
+     if (dash != NULL && strlen(dash) == 2 &&
+             *(dash + 1) >= '0' && *(dash + 1) <= '9')
+@@ -12275,6 +12275,10 @@
+     control -> ShmemServer = 0;
+   }
+ 
++  // For android, no shared memory available
++  control -> ShmemServer = 0;
++  control -> ShmemClientSize = 0;
++
+   return 1;
+ }
+ 
+@@ -13525,7 +13529,7 @@
+ 
+   int newPort = port;
+ 
+-  const char *separator = rindex(opt, ':');
++  const char *separator = strrchr(opt, ':');
+ 
+   if (separator != NULL)
+   {
+--- a/nxcomp/Pgn.cpp
++++ b/nxcomp/Pgn.cpp
+@@ -23,6 +23,9 @@
+ 
+ #include <X11/Xmd.h>
+ 
++#ifdef ANDROID
++#include <strings.h>
++#endif
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <png.h>
+--- a/nxcomp/Proxy.cpp
++++ b/nxcomp/Proxy.cpp
+@@ -20,6 +20,11 @@
+ #include <cstdlib>
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#ifdef ANDROID
++#include <netinet/in.h>
++#include <netinet/ip.h>
++#include <netinet/tcp.h>
++#endif
+ 
+ #include "Misc.h"
+ 
+@@ -31,9 +36,11 @@
+ #include <sys/un.h>
+ #endif
+ 
++#ifndef ANDROID
+ #include <netinet/in.h>
+ #include <netinet/ip.h>
+ #include <netinet/tcp.h>
++#endif
+ 
+ #if defined(__EMX__ ) || defined(__CYGWIN32__)
+ 
+--- a/nxcomp/ServerChannel.cpp
++++ b/nxcomp/ServerChannel.cpp
+@@ -18,7 +18,9 @@
+ #include <string.h>
+ #include <sys/types.h>
+ #include <sys/ipc.h>
++#ifndef ANDROID
+ #include <sys/shm.h>
++#endif
+ 
+ #include <X11/X.h>
+ #include <X11/Xatom.h>
+@@ -1079,7 +1081,6 @@
+ 
+                   priority_++;
+                 }
+-
+                 //
+                 // Account this data to the original opcode.
+                 //
+@@ -1500,7 +1501,6 @@
+             continue;
+           }
+         }
+-
+         //
+         // Check if user pressed the CTRL+ALT+SHIFT+ESC key
+         // sequence because was unable to kill the session
+@@ -5475,7 +5475,7 @@
+     *logofs << "handleColormap: Dumping colormap entries:\n"
+             << logofs_flush;
+ 
+-    const unsigned char *p = unpackState_[resource] -> colormap -> data;
++    const unsigned char *p = (const unsigned char *) unpackState_[resource] -> colormap -> data;
+ 
+     for (unsigned int i = 0; i < unpackState_[resource] ->
+              colormap -> entries; i++)
+@@ -7100,7 +7100,12 @@
+   {
+     encodeBuffer.encodeValue(stage, 2);
+ 
++#ifndef ANDROID
+     shmemState_ -> present = *(buffer + 8);
++#else
++    shmemState_ -> present = 0;
++    cerr << "Info: handleShmemReply: In android no shared memory. Setting present to 0 hardcoded\n";
++#endif
+     shmemState_ -> opcode  = *(buffer + 9);
+     shmemState_ -> event   = *(buffer + 10);
+     shmemState_ -> error   = *(buffer + 11);
+@@ -7128,7 +7133,12 @@
+       cerr << "Info" << ": Using shared memory parameters 1/"
+            << (shmemState_ -> size / 1024) << "K.\n";
+ 
++#ifndef ANDROID
+       shmemState_ -> enabled = 1;
++#else
++      cerr << "Info: handleShmemReply: In android no shared memory. Setting enabled to -1. This should not be displayed\n";
++      shmemState_ -> enabled = -1;
++#endif
+ 
+       encodeBuffer.encodeBoolValue(1);
+     }
+@@ -7241,7 +7251,7 @@
+       // memory support is disabled by the
+       // user.
+       //
+-
++#ifndef ANDROID
+       if (control -> ShmemServer == 1 &&
+               control -> ShmemServerSize > 0 &&
+                   enableServer == 1)
+@@ -7252,8 +7262,12 @@
+       {
+         memcpy(buffer + 8, "NO-MIT-", 7);
+       }
++#else
++      cerr << "Info: handleShmemRequest: In android no shared memory. Returning NO-MIT- answer\n";
+ 
+-      sequenceQueue_.push(clientSequence_, opcode,
++        memcpy(buffer + 8, "NO-MIT-", 7);
++#endif
++     sequenceQueue_.push(clientSequence_, opcode,
+                               opcodeStore_ -> getShmemParameters, stage);
+ 
+       //
+@@ -7289,9 +7303,13 @@
+ 
+         shmemState_ -> size = control -> ShmemServerSize;
+ 
++#ifndef ANDROID
+         shmemState_ -> id = shmget(IPC_PRIVATE, shmemState_ -> size,
+                                        IPC_CREAT | permissions);
+-
++#else
++	cerr << "Info: handleShmemReqyest: In android no shared memory (shmget). This message should not be displayed present should never be 1 in android\n";
++	shmemState_ -> id = -1;
++#endif
+         if (shmemState_ -> id >= 0)
+         {
+           #if defined(TEST) || defined(INFO)
+@@ -7302,8 +7320,12 @@
+           #endif
+ 
+ 
++#ifndef ANDROID
+           shmemState_ -> address = shmat(shmemState_ -> id, 0, 0);
+-
++#else
++	  cerr << "Info: handleShmemReqyest: In android no shared memory (shmat). This message should not be displayed. present should never be 1 in android\n";
++	  shmemState_ -> address = NULL;
++#endif
+           if (shmemState_ -> address != NULL)
+           {
+             #ifdef TEST
+@@ -7437,6 +7459,10 @@
+ 
+     return 0;
+   }
++#ifdef ANDROID
++  cerr << "Info: handleShmem: In android no shared memory.  enabled should never be 1. This should not be displayed\n";
++  return 0;
++#endif
+ 
+   //
+   // Ignore null requests and requests that will not result
+@@ -8054,14 +8080,22 @@
+ {
+   if (shmemState_ != NULL)
+   {
+-    if (shmemState_ -> address != NULL)
++   if (shmemState_ -> address != NULL)
+     {
+-      shmdt((char *) shmemState_ -> address);
++#ifndef ANDROID
++       shmdt((char *) shmemState_ -> address);
++#else
++    cerr << "Info: handleShmemStateRemove: In android no shared memory. This should not be displayed. address should always be NULL\n";
++#endif
+     }
+ 
+     if (shmemState_ -> id > 0)
+     {
++#ifndef ANDROID
+       shmctl(shmemState_ -> id, IPC_RMID, 0);
++#else
++      cerr << "Info: handleShmemStateRemove: In android no shared memory. This should not be displayed. id should always be 0\n";
++#endif
+     }
+ 
+     delete shmemState_;
diff --git a/debian/patches/220_nxproxy_bind-loopback-only.full+lite.patch b/debian/patches/220_nxproxy_bind-loopback-only.full+lite.patch
index 7992918..c65b855 100644
--- a/debian/patches/220_nxproxy_bind-loopback-only.full+lite.patch
+++ b/debian/patches/220_nxproxy_bind-loopback-only.full+lite.patch
@@ -69,7 +69,7 @@ Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
      else if (strcasecmp(name, "accept") == 0)
      {
        if (*connectHost != '\0')
-@@ -13774,7 +13800,14 @@
+@@ -13778,7 +13804,14 @@
      }
      else
      {
diff --git a/debian/patches/series b/debian/patches/series
index c3957f3..5c3f659 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -52,6 +52,7 @@
 209_x2goagent_add-man-page.full.patch
 210_nxagent+nxcomp_save_session_state.full+lite.patch
 211_nxcomp_set_default_options.full+lite.patch
+212_nxcomp_build-on-Android.patch
 220_nxproxy_bind-loopback-only.full+lite.patch
 300_nxagent_set-wm-class.full.patch
 301_nx-X11_use-shared-libs.full.patch

--
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