Commit cf029b61 authored by Mike Gabriel's avatar Mike Gabriel

Add 212_nxcomp_build-on-Android.patch. Fix FTBFS of nxproxy/nxcomp when build…

Add 212_nxcomp_build-on-Android.patch. Fix FTBFS of nxproxy/nxcomp when build against the Android system. (Fixes: #339).
parent fa886dff
...@@ -35,6 +35,10 @@ nx-libs (2:3.5.0.25-0x2go1) UNRELEASED; urgency=low ...@@ -35,6 +35,10 @@ nx-libs (2:3.5.0.25-0x2go1) UNRELEASED; urgency=low
parameter overrides the clipboard NX option. Possible values are parameter overrides the clipboard NX option. Possible values are
both or 1, client, server, none or 0. 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: * Update patches, to make them apply cleanly after above changes:
+ 220_nxproxy-bind-loopback-only.full+lite.patch + 220_nxproxy-bind-loopback-only.full+lite.patch
+ 016_nx-X11_install-location.debian.patch + 016_nx-X11_install-location.debian.patch
......
Author: Nito Martinez <Nito@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_;
...@@ -69,7 +69,7 @@ Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> ...@@ -69,7 +69,7 @@ Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
else if (strcasecmp(name, "accept") == 0) else if (strcasecmp(name, "accept") == 0)
{ {
if (*connectHost != '\0') if (*connectHost != '\0')
@@ -13774,7 +13800,14 @@ @@ -13778,7 +13804,14 @@
} }
else else
{ {
......
...@@ -52,6 +52,7 @@ ...@@ -52,6 +52,7 @@
209_x2goagent_add-man-page.full.patch 209_x2goagent_add-man-page.full.patch
210_nxagent+nxcomp_save_session_state.full+lite.patch 210_nxagent+nxcomp_save_session_state.full+lite.patch
211_nxcomp_set_default_options.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 220_nxproxy_bind-loopback-only.full+lite.patch
300_nxagent_set-wm-class.full.patch 300_nxagent_set-wm-class.full.patch
301_nx-X11_use-shared-libs.full.patch 301_nx-X11_use-shared-libs.full.patch
......
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