[X2Go-Commits] [nx-libs] 21/24: Fix FTBFS of nxproxy/nxcomp on Android (212_nxcomp_build-on-Android.full+lite.patch).

git-admin at x2go.org git-admin at x2go.org
Tue Feb 10 21:51:01 CET 2015


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

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

commit 79f218b563f6a4d3b17e92ee85ad242575daf8da
Author: Nito Martinez <Nito at Qindel.ES>
Date:   Tue Feb 10 19:47:58 2015 +0100

    Fix FTBFS of nxproxy/nxcomp on Android (212_nxcomp_build-on-Android.full+lite.patch).
---
 .../212_nxcomp_build-on-Android.full+lite.patch    |  253 --------------------
 debian/patches/series                              |    1 -
 nxcomp/Jpeg.cpp                                    |    3 +
 nxcomp/Loop.cpp                                    |   12 +-
 nxcomp/Pgn.cpp                                     |    3 +
 nxcomp/Proxy.cpp                                   |    7 +
 nxcomp/ServerChannel.cpp                           |   52 +++-
 7 files changed, 64 insertions(+), 267 deletions(-)

diff --git a/debian/patches/212_nxcomp_build-on-Android.full+lite.patch b/debian/patches/212_nxcomp_build-on-Android.full+lite.patch
deleted file mode 100644
index 528d33b..0000000
--- a/debian/patches/212_nxcomp_build-on-Android.full+lite.patch
+++ /dev/null
@@ -1,253 +0,0 @@
-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/series b/debian/patches/series
index 0174ca1..b6a4677 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +1,3 @@
-212_nxcomp_build-on-Android.full+lite.patch
 220_nxproxy_bind-loopback-only.full+lite.patch
 300_nxagent_set-wm-class.full.patch
 301_nx-X11_use-shared-libs.full.patch
diff --git a/nxcomp/Jpeg.cpp b/nxcomp/Jpeg.cpp
index 9f71cba..414d373 100644
--- 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>
diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp
index d5c8eb2..05b5145 100644
--- a/nxcomp/Loop.cpp
+++ b/nxcomp/Loop.cpp
@@ -4187,7 +4187,7 @@ int SetupDisplaySocket(int &xServerAddrFamily, sockaddr *&xServerAddr,
 
   #endif
 
-  char *separator = rindex(display, ':');
+  char *separator = strrchr(display, ':');
 
   if ((separator == NULL) || !isdigit(*(separator + 1)))
   {
@@ -8240,7 +8240,7 @@ int ParseEnvironmentOptions(const char *env, int force)
   char *name;
   char *value;
 
-  value = rindex(nextOpts, ':');
+  value = strrchr(nextOpts, ':');
 
   if (value != NULL)
   {
@@ -11010,7 +11010,7 @@ int ParsePackOption(const char *opt)
                                       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 @@ int SetShmem()
     control -> ShmemServer = 0;
   }
 
+  // For android, no shared memory available
+  control -> ShmemServer = 0;
+  control -> ShmemClientSize = 0;
+
   return 1;
 }
 
@@ -13525,7 +13529,7 @@ int ParseHostOption(const char *opt, char *host, int &port)
 
   int newPort = port;
 
-  const char *separator = rindex(opt, ':');
+  const char *separator = strrchr(opt, ':');
 
   if (separator != NULL)
   {
diff --git a/nxcomp/Pgn.cpp b/nxcomp/Pgn.cpp
index af26724..cdcde84 100644
--- 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>
diff --git a/nxcomp/Proxy.cpp b/nxcomp/Proxy.cpp
index d6c67e0..9b38661 100644
--- 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__)
 
diff --git a/nxcomp/ServerChannel.cpp b/nxcomp/ServerChannel.cpp
index 4e6dea3..0f3a3e5 100644
--- 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 @@ int ServerChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
 
                   priority_++;
                 }
-
                 //
                 // Account this data to the original opcode.
                 //
@@ -1500,7 +1501,6 @@ int ServerChannel::handleRead(EncodeBuffer &encodeBuffer, const unsigned char *m
             continue;
           }
         }
-
         //
         // Check if user pressed the CTRL+ALT+SHIFT+ESC key
         // sequence because was unable to kill the session
@@ -5475,7 +5475,7 @@ int ServerChannel::handleColormap(unsigned char &opcode, unsigned char *&buffer,
     *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 @@ int ServerChannel::handleShmemReply(EncodeBuffer &encodeBuffer, const unsigned c
   {
     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 @@ int ServerChannel::handleShmemReply(EncodeBuffer &encodeBuffer, const unsigned c
       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 @@ int ServerChannel::handleShmemRequest(DecodeBuffer &decodeBuffer, unsigned char
       // memory support is disabled by the
       // user.
       //
-
+#ifndef ANDROID
       if (control -> ShmemServer == 1 &&
               control -> ShmemServerSize > 0 &&
                   enableServer == 1)
@@ -7252,8 +7262,12 @@ int ServerChannel::handleShmemRequest(DecodeBuffer &decodeBuffer, unsigned char
       {
         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 @@ int ServerChannel::handleShmemRequest(DecodeBuffer &decodeBuffer, unsigned char
 
         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 @@ int ServerChannel::handleShmemRequest(DecodeBuffer &decodeBuffer, unsigned char
           #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 @@ int ServerChannel::handleShmem(unsigned char &opcode, unsigned char *&buffer,
 
     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 @@ void ServerChannel::handleShmemStateRemove()
 {
   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_;

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