[X2go-Commits] nx-libs.git - master (branch) updated: redist-server/3.5.0.2-10-g8f76198

X2go dev team git-admin at x2go.org
Wed Jan 11 17:37:48 CET 2012


The branch, master has been updated
       via  8f76198c5012a04ca8b5e10c3f133815008178ba (commit)
       via  0d3a820b3ed1f76860cdee8dc0532674d621f1e3 (commit)
       via  d9d49b5d8606df5d400c34726cdc5fb9cccaa47b (commit)
       via  43de8b97236e4fe94d06c2152da732aafaaa32ce (commit)
       via  fdfed536ce4408e19a0b0e4732e3630cd542c051 (commit)
       via  9d99eeb539ccb085dcce4899eed5926f0ea13f92 (commit)
       via  6ae3d7efcc0ad028809c69b6a43a19fdd2d9d100 (commit)
       via  405bc8f259f230947e5fe8341f0bab8f0f88c678 (commit)
       via  19f24873388ce9a2136f8d3fe8145d6ce4576730 (commit)
       via  3744795d3c3b526cd2438b6e9423f8f09b372db1 (commit)
      from  eaea40dec0dc42e78b610837330cf39ca13beb8f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 8f76198c5012a04ca8b5e10c3f133815008178ba
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Jan 11 17:37:45 2012 +0100

    Add binary package: x2goagent, includes man page patch: 209_x2goagent-add-man-page.patch

commit 0d3a820b3ed1f76860cdee8dc0532674d621f1e3
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Jan 11 17:34:18 2012 +0100

    Revert "Drop patch: 101_nxagent_set-rgb-path.path, add patch: 202_nxagent_set-rgb-path-x2go-flavour-aware.patch."
    
    This reverts commit d9d49b5d8606df5d400c34726cdc5fb9cccaa47b.

commit d9d49b5d8606df5d400c34726cdc5fb9cccaa47b
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Jan 11 17:25:08 2012 +0100

    Drop patch: 101_nxagent_set-rgb-path.path, add patch: 202_nxagent_set-rgb-path-x2go-flavour-aware.patch.

commit 43de8b97236e4fe94d06c2152da732aafaaa32ce
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Jan 11 17:03:23 2012 +0100

    Add patch: 209_x2goagent-add-man-page.patch.

commit fdfed536ce4408e19a0b0e4732e3630cd542c051
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Jan 11 16:41:26 2012 +0100

    Add patch: 023_add-x2goagent-wrapper.patch.

commit 9d99eeb539ccb085dcce4899eed5926f0ea13f92
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Jan 11 16:38:36 2012 +0100

    remove copy+paste cruft from debian/patches/999_nxagent_unbrand-nxagent-brand-x2goagent.patch

commit 6ae3d7efcc0ad028809c69b6a43a19fdd2d9d100
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Jan 11 16:38:10 2012 +0100

    add EOL at EOF

commit 405bc8f259f230947e5fe8341f0bab8f0f88c678
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Jan 11 16:17:51 2012 +0100

    Add X2Go agent / NX agent flavouring via patch system:
      - 200_nxagent_check-binary-x2go-flavour.patch
      - 201_nxagent_set-x2go-icon-if-x2goagent-flavour.patch
      - 300_nxagent_set-wm-class.patch
      - 999_nxagent_unbrand-nxagent-brand-x2goagent.patch

commit 19f24873388ce9a2136f8d3fe8145d6ce4576730
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Jan 11 16:15:38 2012 +0100

    Drop NX agent unbrand patch from FreeNX.

commit 3744795d3c3b526cd2438b6e9423f8f09b372db1
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Jan 11 15:31:11 2012 +0100

    Rename nxagent-unbrand patch, so that is the last patch to be applied (999_<patchname>).

-----------------------------------------------------------------------

Summary of changes:
 debian/changelog                                   |   17 ++
 debian/control                                     |   24 ++
 debian/patches/023_add-x2goagent-wrapper.patch     |   27 ++
 .../200_nxagent_check-binary-x2go-flavour.patch    |   64 +++++
 debian/patches/200_nxagent_unbrand-agent.patch     |   61 -----
 ...xagent_set-x2go-icon-if-x2goagent-flavour.patch |  220 ++++++++++++++++
 debian/patches/209_x2goagent-add-man-page.patch    |   38 +++
 debian/patches/300_nxagent_set-wm-class.patch      |   60 +++++
 ...9_nxagent_unbrand-nxagent-brand-x2goagent.patch |  274 ++++++++++++++++++++
 debian/patches/series                              |    8 +-
 debian/x2goagent.dirs                              |    3 +
 debian/x2goagent.install                           |    3 +
 debian/x2goagent.links                             |    1 +
 debian/x2goagent.manpages                          |    1 +
 14 files changed, 739 insertions(+), 62 deletions(-)
 create mode 100644 debian/patches/023_add-x2goagent-wrapper.patch
 create mode 100644 debian/patches/200_nxagent_check-binary-x2go-flavour.patch
 delete mode 100644 debian/patches/200_nxagent_unbrand-agent.patch
 create mode 100644 debian/patches/201_nxagent_set-x2go-icon-if-x2goagent-flavour.patch
 create mode 100644 debian/patches/209_x2goagent-add-man-page.patch
 create mode 100644 debian/patches/300_nxagent_set-wm-class.patch
 create mode 100644 debian/patches/999_nxagent_unbrand-nxagent-brand-x2goagent.patch
 create mode 100644 debian/x2goagent.dirs
 create mode 100644 debian/x2goagent.install
 create mode 100644 debian/x2goagent.links
 create mode 100644 debian/x2goagent.manpages

The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index e0e37b7..81f2d95 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,20 @@
+nx-libs (2:3.5.0.2-1) UNRELEASED; urgency=low
+
+  * Rename nxagent-unbrand patch, so that is the last patch to be applied
+    (999_<patchname>).
+  * Drop NX agent unbrand patch from FreeNX.
+  * Add X2Go agent / NX agent flavouring via patch system:
+    - 200_nxagent_check-binary-x2go-flavour.patch
+    - 201_nxagent_set-x2go-icon-if-x2goagent-flavour.patch
+    - 300_nxagent_set-wm-class.patch
+    - 999_nxagent_unbrand-nxagent-brand-x2goagent.patch
+  * Add patch: 023_add-x2goagent-wrapper.patch.
+  * Add patch: 209_x2goagent-add-man-page.patch.
+  * Add binary package: x2goagent, includes man page
+    patch: 209_x2goagent-add-man-page.patch
+
+ -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de>  Wed, 11 Jan 2012 15:30:36 +0100
+
 nx-libs (2:3.5.0.2-0) unstable; urgency=low
 
   * Re-add binary wrapper scripts to the patch system as we
diff --git a/debian/control b/debian/control
index 82cf2ae..845e115 100644
--- a/debian/control
+++ b/debian/control
@@ -94,6 +94,30 @@ Description: NX agent
  requests locally, ensuring that the most common source of round-trips are
  nearly reduced to zero.
 
+Package: x2goagent
+Architecture: any
+Depends:
+ libnx-x11 (>= ${source:Version}), libnx-x11 (<< ${source:Version}.1~),
+ nxagent (>= ${source:Version})
+ ${shlibs:Depends},
+ ${misc:Depends}
+Suggests:
+ x2goserver
+Description: NX agent
+ X2Go is a software suite that uses NX technology for remote desktop
+ computing.
+ .
+ NX technology implements a very efficient compression of the X11 protocol.
+ This increases performance when using X applications over a network,
+ especially a slow one.
+ .
+ X2Go agent functionality has been completely incorporated into NX agent's
+ code base. If the nxagent binary is executed under the name of `x2goagent',
+ the X2Go functionalities get activated.
+ .
+ The x2goagent package is a wrapper that activates X2Go branding in nxagent.
+ Please refer to the nxagent package's description for more information on NX.
+
 Package: nxproxy
 Architecture: any
 Depends:
diff --git a/debian/patches/023_add-x2goagent-wrapper.patch b/debian/patches/023_add-x2goagent-wrapper.patch
new file mode 100644
index 0000000..ca53fde
--- /dev/null
+++ b/debian/patches/023_add-x2goagent-wrapper.patch
@@ -0,0 +1,27 @@
+--- /dev/null
++++ b/bin/x2goagent
+@@ -0,0 +1,24 @@
++#!/bin/bash
++
++# Copyright (C) 2012 Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
++#
++# 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/.
++
++NX_LIBS=/usr/lib/nx
++LD_LIBRARY_PATH=/usr/lib/nx:/usr/lib/nx/X11:$LD_LIBRARY_PATH
++
++export NX_LIBS
++export LD_LIBRARY_PATH
++
++exec /usr/lib/nx/x2goagent "$@"
diff --git a/debian/patches/200_nxagent_check-binary-x2go-flavour.patch b/debian/patches/200_nxagent_check-binary-x2go-flavour.patch
new file mode 100644
index 0000000..089b570
--- /dev/null
+++ b/debian/patches/200_nxagent_check-binary-x2go-flavour.patch
@@ -0,0 +1,64 @@
+Description: Detect nxagent/x2goagent flavour
+ Whether the agent runs in X2Go or NX mode is decide by the
+ name of the binary that executes the code.
+ .
+ Binary name equal to nxagent -> (Free)NX flavour
+ Binary name equal to x2goagent -> X2Go flavour
+Forwarded: not-needed
+Author: Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
+Last-Update: 2012-01-11
+--- a/nx-X11/programs/Xserver/hw/nxagent/Init.c
++++ b/nx-X11/programs/Xserver/hw/nxagent/Init.c
+@@ -178,6 +178,29 @@
+ 
+ int nxagentDoFullGeneration = 1;
+ 
++ /*
++ * 1 if agent running as X2goAgent
++ * 0 if NX Agent
++ */
++int nxagentX2go;
++
++/*
++ * Checking if agent is x2go agent
++ */
++
++void checkX2goAgent()
++{
++  extern const char *__progname;
++  if( strcasecmp(__progname,"x2goagent") == 0)
++  {
++    fprintf(stderr, "\nrunning as X2Go Agent\n");
++    nxagentX2go=1;
++  }
++  else
++    nxagentX2go=0;
++}
++
++
+ /*
+  * Called at X server's initialization.
+  */
+@@ -194,6 +217,11 @@
+   #endif
+ 
+   /*
++   * Check if we running as X2Go Agent
++   */
++  checkX2goAgent();
++
++  /*
+    * Print our pid and version information.
+    */
+ 
+--- a/nx-X11/programs/Xserver/hw/nxagent/Init.h
++++ b/nx-X11/programs/Xserver/hw/nxagent/Init.h
+@@ -37,6 +37,8 @@
+ extern int nxagentBackingStore;
+ extern int nxagentSaveUnder;
+ 
++extern int  nxagentX2go;
++
+ extern ServerGrabInfoRec nxagentGrabServerInfo;
+ 
+ #endif /* __Init_H__ */
diff --git a/debian/patches/200_nxagent_unbrand-agent.patch b/debian/patches/200_nxagent_unbrand-agent.patch
deleted file mode 100644
index c9aea04..0000000
--- a/debian/patches/200_nxagent_unbrand-agent.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-Description: Unbrand NX Agent Startup Screen
- By design this patch is probably not interesting to
- NX upstream.
-Forwarded: not-needed
-Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
-Last-Update: 2012-12-31
---- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c
-+++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
-@@ -1754,7 +1754,20 @@
-       #ifdef TEST
-       fprintf(stderr, "nxagentOpenScreen: Created new default window with id [%ld].\n",
-                   nxagentDefaultWindows[pScreen->myNum]);
-+      
-+      fprintf(stderr, "nxagentOpenScreen: Setting WM_CLASS and WM_NAME for window withid [%ld].\n",
-+                  nxagentDefaultWindows[pScreen->myNum]);      
-       #endif
-+      
-+      XClassHint hint;
-+      hint.res_name=malloc(strlen(HINT)+1);
-+      hint.res_class=malloc(strlen(HINT)+1);
-+      strcpy(hint.res_name,HINT);
-+      strcpy(hint.res_class,HINT);
-+      XSetClassHint(nxagentDisplay,nxagentDefaultWindows[pScreen->myNum],&hint);
-+      free(hint.res_name);
-+      free(hint.res_class);
-+      
- 
-       if (nxagentOption(Fullscreen))
-       {
---- a/nx-X11/programs/Xserver/hw/nxagent/Screen.h
-+++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.h
-@@ -36,6 +36,8 @@
- #define MIN_NXAGENT_HEIGHT 60
- #define NXAGENT_FRAME_WIDTH 2000
- 
-+#define HINT "NXAgent"
-+
- #define nxagentSetPrintGeometry(screen) \
-     nxagentPrintGeometryFlags = (1 << (screen));
-     
---- a/nx-X11/programs/Xserver/hw/nxagent/Splash.c
-+++ b/nx-X11/programs/Xserver/hw/nxagent/Splash.c
-@@ -204,6 +204,7 @@
- 
-   nxagentPixmapLogo = XCreatePixmap(nxagentDisplay, win, width, height, nxagentLogoDepth);
- 
-+  return;
-   if (!nxagentPixmapLogo)
-   {
-     return;
---- a/nx-X11/programs/Xserver/hw/nxagent/Display.c
-+++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c
-@@ -1919,7 +1919,7 @@
-   XlibPixmap IconPixmap;
-   XlibPixmap IconShape;
- 
--  snprintf(default_path, PATH_MAX-1, "/usr/NX/share/images/%s", NXAGENT_ICON_NAME);
-+  snprintf(default_path, PATH_MAX-1, "/usr/share/pixmaps/%s", NXAGENT_ICON_NAME);
- 
-   if ((icon_fp = fopen(default_path, "r")) == NULL)
-   {
diff --git a/debian/patches/201_nxagent_set-x2go-icon-if-x2goagent-flavour.patch b/debian/patches/201_nxagent_set-x2go-icon-if-x2goagent-flavour.patch
new file mode 100644
index 0000000..ff3861d
--- /dev/null
+++ b/debian/patches/201_nxagent_set-x2go-icon-if-x2goagent-flavour.patch
@@ -0,0 +1,220 @@
+Description: X2Go icon when run with x2goagent flavour
+ Depending on the binary name of the agent either nxagent.xpm
+ or x2go.xpm is used as window icon.
+Forwarded: not-needed
+Author: Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
+Last-Update: 2012-01-11
+--- a/nx-X11/programs/Xserver/hw/nxagent/Display.c	2012-01-11 10:09:05.000000000 +0100
++++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c	2012-01-11 12:28:11.000000000 +0100
+@@ -77,6 +77,7 @@ is" without express or implied warranty.
+ #include "NXlib.h"
+ 
+ #include NXAGENT_ICON_NAME
++#include X2GOAGENT_ICON_NAME
+ 
+ /*
+  * Set here the required log level.
+@@ -1918,12 +1919,29 @@ Bool nxagentMakeIcon(Display *display, P
+   Bool success = False;
+   XlibPixmap IconPixmap;
+   XlibPixmap IconShape;
++  char* agent_icon_name;
++  char* agentIconData;
+ 
+-  snprintf(default_path, PATH_MAX-1, "/usr/NX/share/images/%s", NXAGENT_ICON_NAME);
++  /*
++   * selecting x2go icon when running as X2Go agent
++   */
++  if(nxagentX2go)
++  {
++    agent_icon_name=X2GOAGENT_ICON_NAME;
++    agentIconData=x2goagentIconData;
++  }
++  else
++  {
++    agent_icon_name=NXAGENT_ICON_NAME;
++    agentIconData=nxagentIconData;
++  }
++
++
++  snprintf(default_path, PATH_MAX-1, "/usr/NX/share/images/%s", agent_icon_name);
+ 
+   if ((icon_fp = fopen(default_path, "r")) == NULL)
+   {
+-    icon_fp = nxagentLookForIconFile(NXAGENT_ICON_NAME, "r", icon_path);
++    icon_fp = nxagentLookForIconFile(agent_icon_name, "r", icon_path);
+ 
+     if (icon_fp != NULL)
+     {
+@@ -1962,7 +1980,7 @@ Bool nxagentMakeIcon(Display *display, P
+   {
+      status = XpmCreatePixmapFromData(display,
+                                         DefaultRootWindow(display),
+-                                        nxagentIconData,
++                                        agentIconData,
+                                         &IconPixmap,
+                                         &IconShape,
+                                         NULL);
+--- a/nx-X11/programs/Xserver/hw/nxagent/Icons.h	2012-01-11 10:09:05.000000000 +0100
++++ b/nx-X11/programs/Xserver/hw/nxagent/Icons.h	2012-01-11 12:17:21.000000000 +0100
+@@ -24,6 +24,8 @@
+ 
+ #define NXAGENT_ICON_NAME  "nxagent.xpm"
+ 
++#define X2GOAGENT_ICON_NAME  "x2go.xpm"
++
+ #define NXAGENT_PLACEHOLDER_NAME  "nxmissing.xpm"
+ 
+ #endif /* __Icons_H__ */
+--- a/nx-X11/programs/Xserver/hw/nxagent/x2go.xpm	1970-01-01 01:00:00.000000000 +0100
++++ b/nx-X11/programs/Xserver/hw/nxagent/x2go.xpm	2012-01-11 12:26:24.000000000 +0100
+@@ -0,0 +1,148 @@
++/* XPM */
++static char  *x2goagentIconData[]={
++"128 128 17 1",
++". c None",
++"m c #323232",
++"l c #323232",
++"f c #323232",
++"e c #323232",
++"o c #323232",
++"# c #323232",
++"h c #323232",
++"i c #323232",
++"n c #323232",
++"d c #323232",
++"a c #323232",
++"g c #323232",
++"j c #323232",
++"b c #323232",
++"k c #323232",
++"c c #323232",
++".....#abccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbde.....",
++"...fbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccgf...",
++"..#ccccaheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeijccckf..",
++".ecccgl..................................................................................................................ejcckf.",
++".bccd.....................................................................................................................mdccg.",
++"#cca.......................................................................................................................mjcce",
++"gckm........................................................................................................................eccd",
++"ccn..........................................................................................................................jcb",
++"cce..........................................................................................................................icc",
++"ccm..........................................................................................................................ecc",
++"cc...........................................................................................................................ecc",
++"cc...........................................................................................................................ecc",
++"cc...........................................................................................................................ecc",
++"cc...........................................................................................................................ecc",
++"cc............................................meeee..........................................................................ecc",
++"cc.........eeeeeeeeoiiiiiiiinggggggggjccccccccccccc....#ggggggggggggggggggggggggggggf.............ggggggggggggggggggggggf....ecc",
++"cc....meeeeoiiiiiiiinggggggggjccccccccccccccccccccc....icccccccccccccccccccccccccccce.............cccccccccccccccccccccce....ecc",
++"cc....................................meeeeeeeeoiii....icccccccccccccccccccccccccccce.............cccccccccccccccccccccce....ecc",
++"cc.......................................................menbccccccccccccccccccbhe..................logccccccccccccghe.......ecc",
++"cc...........................................................iccccccccccccccccdm.......................#cccccccccke..........ecc",
++"cc..............................................lee...........#cccccccccccccckm.........................jccccccckm...........ecc",
++"cc........feeeeeeeeoiiiiiiiiiaggggggggjcccccccccccc............icccccccccccccd..........................icccccccf............ecc",
++"cc....meeeeeoiiiiiiiinggggggggjcccccccccccccccccccciiiiii#m.....jcccccccccccci..........................icccccci.............ecc",
++"cc......................................eeeeeeeeeiiiiiiiiigl....eccccccccccccd..........................dcccccj..............ecc",
++"cc...............................................................dcccccccccccj..........................bccccce..............ecc",
++"cc...............................................................lccccccccccccl........................lccccca...............ecc",
++"cc.............................................meeeeeeee#iiiie....dccccccccccch........................icccccl...............ecc",
++"cc.........meeeeeeeeoiiiiiiiinggggggggjccccccccccccccccccccccb....ecccccccccccb........................bccccn................ecc",
++"cc....meeeeiiiiiiiiiaggggggggbcccccccccccccccccccccccccccccccc#....gccccccccccco......................#cccckm................ecc",
++"cc....................................meeeeeeeeeiiiiiiiiiaggggd....#cccccccccccg......................bcccci.................ecc",
++"cc..................................................................bcccccccccccf....................#cccckm.................ecc",
++"cc..................................................................hcccccccccccd...................mkcccci..................ecc",
++"cc............................................meeeeeeeeoiiiiiiiil...mkcccccccccccl..................icccckm..................ecc",
++"cc.........eeeeeeeeoiiiiiiiinggggggggjccccccccccccccccccccccccccn....dccccccccccci.................mkcccci...................ecc",
++"cc....meeeeeiiiiiiiiiaggggggggbccccccccccccccccccccccccccccccccckm...lccccccccccck.................icccckm...................ecc",
++"cc.....................................leeeeeeeeoiiiiiiiiigggggggo....accccccccccc#...............mkcccch....................ecc",
++"cc....................................................................ecccccccccccb...............iccccb.....................ecc",
++"cc.....................................................................jccccccccccce.............mkcccc#.....................ecc",
++"cc.............................................meeeeeeeeehiiiiiiii#....#ccccccccccca.............nccccb......................ecc",
++"cc........feeeeeeee#iiiiiiiiigggggggggkccccccccccccccccccccccccccccl....kcccccccccccl...........lccccc#......................ecc",
++"cc....meeeeeoiiiiiiiiigggggggggkcccccccccccccccccccccccccccccccccccd....icccccccccccd...........dccccb.......................ecc",
++"cc......................................leeeeeeeeoiiiiiiiingggggggga....mccccccccccckm.........lccccc#.......................ecc",
++"cc.......................................................................dccccccccccch.........dccccb........................ecc",
++"cc.......................................................................lcccccccccccb........lccccc#........................ecc",
++"cc.............................................meeeeeeeeoiiiiiiiingggo....gccccccccccc#.......dccccg.........................ecc",
++"cc.........meeeeeeeeoiiiiiiiinggggggggjccccccccccccccccccccccccccccccg....occcccccccccg......lccccce.........................ecc",
++"cc....meeeeiiiiiiiiiaggggggggbcccccccccccccccccccccccccccccccccccccccce....bccccccccccce.....gccccg..........................ecc",
++"cc....................................meeeeeeeeeiiiiiiiiigggggggggkcccd....#cccccccccccd....eccccce..........................ecc",
++"cc.........................................................................mkcccccccccccl...gccccg...........................ecc",
++"cc..........................................................................nccccccccccci..eccccce...........................ecc",
++"cc............................................meeeeeeeeoiiiiiiiingggggggm...lccccccccccckm.gccccg............................ecc",
++"cc.........eeeeeeeeoiiiiiiiinggggggggjcccccccccccccccccccccccccccccccccc#....dccccccccccc#eccccce............................ecc",
++"cc....meeeeeiiiiiiiiiaggggggggkcccccccccccccccccccccccccccccccccccccccccb....ecccccccccccbgccccg.............................ecc",
++"cc.....................................leeeeeeeeoiiiiiiiiigggggggggkccccco....gccccccccccccccccl.............................ecc",
++"cc............................................................................#cccccccccccccccd..............................ecc",
++"cc.............................................................................bccccccccccccccl..............................ecc",
++"cc.............................................leeeeeeeeeiiiiiiiiiagggggggi....icccccccccccccd...............................ecc",
++"cc........feeeeeeee#iiiiiiiingggggggggkccccccccccccccccccccccccccccccccccckm...mkccccccccccccl...............................ecc",
++"cc....meeeeeoiiiiiiiiigggggggggkccccccccccccccccccccccccccccccccccccccccccci....dccccccccccca................................ecc",
++"cc......................................leeeeeeeeoiiiiiiiiigggggggggccccccck....lccccccccccckm...............................ecc",
++"cc...............................................................................accccccccccc#...............................ecc",
++"cc...............................................................................ecccccccccccb...............................ecc",
++"cc............................................leeeeeeeeeiiiiiiiiiaggggggggbcce....bccccccccccce..............................ecc",
++"cc.......feeeeeeee#iiiiiiiiigggggggggkcccccccccccccccccccccccccccccccccccccccd....#cccccccccccg..............................ecc",
++"cc....meeeeeeoiiiiiiiingggggggggccccccccccccccccccccccccccccccccccccccccccccccl....kcccccccccccl.............................ecc",
++"cc.......................................feeeeeeeehiiiiiiiidggggggggbccccccccci....ncccccccccccd.............................ecc",
++"cc...........................................................................mm....bccccccccccccm............................ecc",
++"cc................................................................................#ccccccccccccci............................ecc",
++"cc..........................................leeeeeeee#iiiiiiiidggggggggbcccccl....bccccccccccccck............................ecc",
++"cc......feeeeeeeehiiiiiiiiaggggggggkccccccccccccccccccccccccccccccccccccccccd....#ccccccccccccccc#...........................ecc",
++"cc....meeeeeee#iiiiiiiidggggggggjcccccccccccccccccccccccccccccccccccccccccccl....bcccccccccccccccb...........................ecc",
++"cc.......................................meeeeeeeeeiiiiiiiiigggggggggkcccccd....#cccccbccccccccccce..........................ecc",
++"cc..............................................................................bccccdhcccccccccccg..........................ecc",
++"cc.............................................................................#ccccclmkcccccccccccl.........................ecc",
++"cc..........................................meeeeeeeeeiiiiiiiiiaggggggggbkm....bccccd..ncccccccccccd.........................ecc",
++"cc.....leeeeeeeeoiiiiiiiiigggggggggkccccccccccccccccccccccccccccccccccccci....hcccckl..lccccccccccccm........................ecc",
++"cc....meeeeeeeehiiiiiiiidggggggggbcccccccccccccccccccccccccccccccccccccckm...mkcccci....dccccccccccci........................ecc",
++"cc........................................leeeeeeee#iiiiiiiinggggggggjcci....icccckm....eccccccccccck........................ecc",
++"cc..........................................................................mkcccci......gccccccccccc#.......................ecc",
++"cc..........................................................................icccckm......#cccccccccccb.......................ecc",
++"cc.........................................leeeeeeeeoiiiiiiiiigggggggga....mkcccci........bccccccccccce......................ecc",
++"cc....meeeeeeeeoiiiiiiiiigggggggggkccccccccccccccccccccccccccccccccccci....icccckm........hcccccccccccg......................ecc",
++"cc.....feeeeeeeehiiiiiiiiaggggggggkcccccccccccccccccccccccccccccccccckm...mkcccci.........mkcccccccccccl.....................ecc",
++"cc.........................................feeeeeeeehiiiiiiiiagggggggh....icccckm..........icccccccccccd.....................ecc",
++"cc.......................................................................mkcccci...........lccccccccccccm....................ecc",
++"cc.......................................................................icccckm............dccccccccccci....................ecc",
++"cc...........................................eeeeeeeeehiiiiiiiidggga....mkcccci.............fccccccccccck....................ecc",
++"cc......feeeeeeee#iiiiiiiingggggggggccccccccccccccccccccccccccccccci....iccccb...............gccccccccccc#...................ecc",
++"cc....meeeeeeeoiiiiiiiiigggggggggbcccccccccccccccccccccccccccccccckm...mkcccc#...............occcccccccccb...................ecc",
++"cc........................................meeeeeeeeeiiiiiiiiidgggg#....iccccb.................bccccccccccce..................ecc",
++"cc....................................................................mkcccc#.................#cccccccccccg..................ecc",
++"cc....................................................................iccccb..................mkcccccccccccl.................ecc",
++"cc..........................................eeeeeeeeeiiiiiiiiiaga....mkcccc#...................icccccccccccd.................ecc",
++"cc.....leeeeeeee#iiiiiiiinggggggggjccccccccccccccccccccccccccccci....iccccb....................lccccccccccccm................ecc",
++"cc....meeeeeeee#iiiiiiiiigggggggggkcccccccccccccccccccccccccccckm...mkcccc#.....................dccccccccccci................ecc",
++"cc.........................................leeeeeeeeoiiiiiiiiiah....iccccb......................lccccccccccck................ecc",
++"cc.................................................................mkcccc#.......................gccccccccccc#...............ecc",
++"cc.................................................................dccccj........................ecccccccccccj...............ecc",
++"cc..........................................leeeeeeeeeiiiiiiih....lccccce.........................bccccccccccce..............ecc",
++"cc....meeeeeeeeeiiiiiiiiidgggggggggcccccccccccccccccccccccccci....dccccg..........................#ccccccccccca..............ecc",
++"cc.....feeeeeeeeiiiiiiiinggggggggbcccccccccccccccccccccccccckm...lccccce...........................kcccccccccccl.............ecc",
++"cc........................................leeeeeeeehiiiiiiiih....dccccg............................ncccccccccccd.............ecc",
++"cc..............................................................lccccce............................fccccccccccccf............ecc",
++"cc..............................................................dccccb..............................jcccccccccccg............ecc",
++"cc.........................................meeeeeeeeoiiiiil....lcccccn..............................icccccccccccce...........ecc",
++"cc......feeeeeeeehiiiiiiiigggggggggccccccccccccccccjgggggo.....gccccc#..............................eccccccccccccbm..........ecc",
++"cc....meeeeeeeoiiiiiiiiidgggggggggccccccccccccccccc...........hcccccco...............................cccccccccccccn..........ecc",
++"cc.........................................leeeeeee..........ecccccccn..............................lcccccccccccccc#.........ecc",
++"cc..........................................................#kccccccckf.............................nccccccccccccccc#........ecc",
++"cc........................................................ldcccccccccck#m.........................lncccccccccccccccccdl......ecc",
++"cc.........................................feeeeeee....ogjcccccccccccccccggi..................oggbcccccccccccccccccccccja....ecc",
++"cc.....leeeeeeee#iiiiiiiidggggggggbcccccccccccccccc....icccccccccccccccccccg..................icccccccccccccccccccccccccc....ecc",
++"cc....meeeeeeeehiiiiiiiiaggggggggkccccccccccccccccc....icccccccccccccccccccg..................icccccccccccccccccccccccccc....ecc",
++"cc........................................feeeeeeee..........................................................................ecc",
++"cc...........................................................................................................................ecc",
++"cc...........................................................................................................................ecc",
++"cc...........................................................................................................................ecc",
++"cc...........................................................................................................................ecc",
++"cc...........................................................................................................................ecc",
++"cce..........................................................................................................................hcc",
++"ccn..........................................................................................................................acb",
++"jcb.........................................................................................................................lcca",
++"hcci........................................................................................................................acc#",
++"mkcc#......................................................................................................................dccb.",
++".occci...................................................................................................................macccf.",
++"..#cccbne.............................................................................................................menkccc#..",
++"...okccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbe...",
++"....mhjccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccg#....."};
+
diff --git a/debian/patches/209_x2goagent-add-man-page.patch b/debian/patches/209_x2goagent-add-man-page.patch
new file mode 100644
index 0000000..00ade43
--- /dev/null
+++ b/debian/patches/209_x2goagent-add-man-page.patch
@@ -0,0 +1,38 @@
+--- /dev/null
++++ b/nx-X11/programs/Xserver/hw/nxagent/man/x2goagent.1
+@@ -0,0 +1,35 @@
++.TH x2goagent 1
++.SH NAME
++x2goagent \- X2Go Agent.
++.SH SYNOPSIS
++.B x2goagent
++.I "[options]"
++
++.SH DESCRIPTION
++\fBx2goagent\fR is an Xnest-like X server for remote application/desktop access.
++.PP
++\fBx2goagent\fR implements a very efficient compression of the X11 protocol.
++.PP
++This increases performance when using X applications over high latency and
++low bandwidth networks, while providing a local (LAN-like) usage experience
++even if connecting from off-site locations (via cable modem or GSM).
++.PP
++\fBx2goagent\fR is not designed to be used as a standalone application.
++It has to be launched on the server side by the X2Go server software.
++.PP
++Available clients are
++\fBx2goclient\fR, \fBpyhoca-gui\fR and \fBpyhoca-gui\fR (using the
++Python X2Go API).
++
++.SH OPTIONS
++.TP
++.B \--help
++Lists all others options that are not listed here.
++
++.SH FURTHER READINGS
++Information on X2Go: http://wiki.x2go.org
++.PP
++Information on NX: http://www.nomachine.com
++
++.SH AUTHOR
++This manual page was written by Mike Gabriel <mike.gabriel at das-netzwerkteam.de>.
diff --git a/debian/patches/300_nxagent_set-wm-class.patch b/debian/patches/300_nxagent_set-wm-class.patch
new file mode 100644
index 0000000..765d6bc
--- /dev/null
+++ b/debian/patches/300_nxagent_set-wm-class.patch
@@ -0,0 +1,60 @@
+Description: Set WM_CLASS to X2GoAgent/NXAgent
+ Depending on the binary name of the agent either NXAgent
+ or X2GoAgent is set as WM_Class.
+ .
+ This is needed for some window managers (like the one shipped with
+ Maemo)
+ .
+ The original WM_CLASS patch has been taken from the FreeNX patch
+ series, author unknown.
+ .
+ The nxagent/x2goagent has been done by the X2Go Project, author
+ see below.
+Forwarded: not-needed
+Author: Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
+Last-Update: 2012-01-11
+--- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c
++++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
+@@ -1756,6 +1756,42 @@
+                   nxagentDefaultWindows[pScreen->myNum]);
+       #endif
+ 
++      /*
++       * Setting WM_CLASS to "X2GoAgent" when running in X2Go Agent mode
++       * we need it to properly display all window parameters by some WMs
++       * (for example on Maemo)
++       */
++      if(nxagentX2go)
++      {
++        #ifdef TEST
++        fprintf(stderr, "nxagentOpenScreen: Setting WM_CLASS and WM_NAME for window withid [%ld].\n",
++                nxagentDefaultWindows[pScreen->myNum]);
++        #endif
++        XClassHint hint;
++        hint.res_name=malloc(strlen("X2GoAgent")+1);
++        hint.res_class=malloc(strlen("X2GoAgent")+1);
++        strcpy(hint.res_name,"X2GoAgent");
++        strcpy(hint.res_class,"X2GoAgent");
++        XSetClassHint(nxagentDisplay,nxagentDefaultWindows[pScreen->myNum],&hint);
++        free(hint.res_name);
++        free(hint.res_class);
++      } else {
++        #ifdef TEST
++        fprintf(stderr, "nxagentOpenScreen: Setting WM_CLASS and WM_NAME for window withid [%ld].\n",
++                nxagentDefaultWindows[pScreen->myNum]);      
++        #endif
++      
++        XClassHint hint;
++        hint.res_name=malloc(strlen("NXAgent")+1);
++        hint.res_class=malloc(strlen("NXAgent")+1);
++        strcpy(hint.res_name,"NXAgent");
++        strcpy(hint.res_class,"NXAgent");
++        XSetClassHint(nxagentDisplay,nxagentDefaultWindows[pScreen->myNum],&hint);
++        free(hint.res_name);
++        free(hint.res_class);
++      }
++
++
+       if (nxagentOption(Fullscreen))
+       {
+         nxagentFullscreenWindow = nxagentDefaultWindows[pScreen->myNum];
diff --git a/debian/patches/999_nxagent_unbrand-nxagent-brand-x2goagent.patch b/debian/patches/999_nxagent_unbrand-nxagent-brand-x2goagent.patch
new file mode 100644
index 0000000..54e5996
--- /dev/null
+++ b/debian/patches/999_nxagent_unbrand-nxagent-brand-x2goagent.patch
@@ -0,0 +1,274 @@
+Description: Unbrand NX Agent Startup Screen / Brand X2Go Agent Startup Screen
+ When launched with NX Agent flavour, the startup screen gets unbranded by
+ this patch (the !M logo does not get shown).
+ .
+ When launched with X2Go Agent flavour, the startup screen gets branded
+ with the X2GO logo.
+Forwarded: not-needed
+Author: Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
+Last-Update: 2012-01-11
+--- a/nx-X11/programs/Xserver/hw/nxagent/Splash.c
++++ b/nx-X11/programs/Xserver/hw/nxagent/Splash.c
+@@ -35,6 +35,7 @@
+ #include "Windows.h"
+ #include "Atoms.h"
+ #include "Trap.h"
++#include "Init.h"
+ 
+ /*
+  * Set here the required log level.
+@@ -53,6 +54,7 @@
+ int nxagentLogoWhite;
+ int nxagentLogoRed;
+ int nxagentLogoBlack;
++int nxagentLogoGray;
+ 
+ void nxagentPaintLogo(Window win, GC gc, int scale, int width, int height);
+ 
+@@ -166,6 +168,15 @@
+   XPoint    m[12];
+   int w, h, c, w2, h2;
+ 
++  /*
++   * Show only X2GO Logo when running as X2Go Agent
++   */
++   if(! nxagentX2go)
++   {
++     nxagentPixmapLogo = 0L;
++     return;
++   }
++
+   #ifdef DEBUG
+   fprintf(stderr, "nxagenShowtLogo: Got called.\n");
+   #endif
+@@ -218,75 +229,146 @@
+   XSetForeground(nxagentDisplay, gc, nxagentLogoRed);
+   XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
+ 
+-  rect[0].x = w2-10*c;               rect[0].y = h2-8*c;
+-  rect[1].x = w2-10*c;               rect[1].y = h2+8*c;
+-  rect[2].x = w2+10*c;               rect[2].y = h2+8*c;
+-  rect[3].x = w2+10*c;               rect[3].y = h2-8*c;
++  /*
++   * Draw X2GO Logo
++   */
+ 
++  /*
++   * Begin 'X'.
++   */
++
++  XSetForeground(nxagentDisplay, gc, nxagentLogoGray);
++  XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
++  rect[0].x = w2-7*c;               rect[0].y = h2-5*c;
++  rect[1].x = w2-8*c;               rect[1].y = h2-5*c;
++  rect[2].x = w2-4*c;               rect[2].y = h2+3*c;
++  rect[3].x = w2-3*c;               rect[3].y = h2+3*c;
+   XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+ 
+-  #ifdef NXAGENT_LOGO_DEBUG
+-  fprintf(stderr, "filled red rect\n");
+-  #endif
++  rect[0].x = w2-4*c;               rect[0].y = h2-5*c;
++  rect[1].x = w2-3*c;               rect[1].y = h2-5*c;
++  rect[2].x = w2-7*c;               rect[2].y = h2+3*c;
++  rect[3].x = w2-8*c;               rect[3].y = h2+3*c;
++  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+ 
+-  rect[0].x = w2-9*c;               rect[0].y = h2-7*c;
+-  rect[1].x = w2-9*c;               rect[1].y = h2+7*c;
+-  rect[2].x = w2+9*c;               rect[2].y = h2+7*c;
+-  rect[3].x = w2+9*c;               rect[3].y = h2-7*c;
++  /*
++   * End 'X'.
++   */
+ 
+-  XSetForeground(nxagentDisplay, gc, nxagentLogoWhite);
+-  XSetBackground(nxagentDisplay, gc, nxagentLogoRed);
++  /*
++   * Start '2'.
++   */
++
++  rect[0].x = w2-2*c;               rect[0].y = h2-5*c;
++  rect[1].x = w2-1*c;               rect[1].y = h2-5*c;
++  rect[2].x = w2-1*c;               rect[2].y = h2-3*c;
++  rect[3].x = w2-2*c;               rect[3].y = h2-3*c;
++  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
++
++  rect[0].x = w2-2*c;               rect[0].y = h2-5*c;
++  rect[1].x = w2+2*c;               rect[1].y = h2-5*c;
++  rect[2].x = w2+2*c;               rect[2].y = h2-4*c;
++  rect[3].x = w2-2*c;               rect[3].y = h2-4*c;
++  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+ 
++  rect[0].x = w2+1*c;               rect[0].y = h2-5*c;
++  rect[1].x = w2+2*c;               rect[1].y = h2-5*c;
++  rect[2].x = w2+2*c;               rect[2].y = h2-2*c;
++  rect[3].x = w2+1*c;               rect[3].y = h2-2*c;
+   XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+ 
++  rect[0].x = w2+2*c;               rect[0].y = h2-2*c;
++  rect[1].x = w2+1*c;               rect[1].y = h2-2*c;
++  rect[2].x = w2-2*c;               rect[2].y = h2+2*c;
++  rect[3].x = w2-1*c;               rect[3].y = h2+2*c;
++  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
++
++
++  rect[0].x = w2-2*c;               rect[0].y = h2+2*c;
++  rect[1].x = w2+2*c;               rect[1].y = h2+2*c;
++  rect[2].x = w2+2*c;               rect[2].y = h2+3*c;
++  rect[3].x = w2-2*c;               rect[3].y = h2+3*c;
++  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+   /*
+-   * Begin 'M'.
++   * End '2'.
+    */
+ 
+-  m[0].x = w2-3*c;  m[0].y = h2-5*c;
+-  m[1].x = w2+7*c;  m[1].y = h2-5*c;
+-  m[2].x = w2+7*c;  m[2].y = h2+5*c;
+-  m[3].x = w2+5*c;  m[3].y = h2+5*c;
+-  m[4].x = w2+5*c;  m[4].y = h2-3*c;
+-  m[5].x = w2+3*c;  m[5].y = h2-3*c;
+-  m[6].x = w2+3*c;  m[6].y = h2+5*c;
+-  m[7].x = w2+1*c;  m[7].y = h2+5*c;
+-  m[8].x = w2+1*c;  m[8].y = h2-3*c;
+-  m[9].x = w2-1*c;  m[9].y = h2-3*c;
+-  m[10].x = w2-1*c; m[10].y = h2+5*c;
+-  m[11].x = w2-3*c; m[11].y = h2+5*c;
++  /*
++   * Start 'G'.
++   */
+ 
+-  XSetForeground(nxagentDisplay, gc, nxagentLogoRed);
+-  XSetBackground(nxagentDisplay, gc, nxagentLogoWhite);
++  rect[0].x = w2+3*c;               rect[0].y = h2-5*c;
++  rect[1].x = w2+7*c;               rect[1].y = h2-5*c;
++  rect[2].x = w2+7*c;               rect[2].y = h2-4*c;
++  rect[3].x = w2+3*c;               rect[3].y = h2-4*c;
++  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+ 
+-  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, m, 12, Nonconvex, CoordModeOrigin);
++  rect[0].x = w2+3*c;               rect[0].y = h2-5*c;
++  rect[1].x = w2+4*c;               rect[1].y = h2-5*c;
++  rect[2].x = w2+4*c;               rect[2].y = h2+3*c;
++  rect[3].x = w2+3*c;               rect[3].y = h2+3*c;
++  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+ 
++  rect[0].x = w2+3*c;               rect[0].y = h2+2*c;
++  rect[1].x = w2+7*c;               rect[1].y = h2+2*c;
++  rect[2].x = w2+7*c;               rect[2].y = h2+3*c;
++  rect[3].x = w2+3*c;               rect[3].y = h2+3*c;
++  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
++
++  rect[0].x = w2+6*c;               rect[0].y = h2-5*c;
++  rect[1].x = w2+7*c;               rect[1].y = h2-5*c;
++  rect[2].x = w2+7*c;               rect[2].y = h2-3*c;
++  rect[3].x = w2+6*c;               rect[3].y = h2-3*c;
++  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
++
++  rect[0].x = w2+6*c;               rect[0].y = h2-0*c;
++  rect[1].x = w2+7*c;               rect[1].y = h2-0*c;
++  rect[2].x = w2+7*c;               rect[2].y = h2+3*c;
++  rect[3].x = w2+6*c;               rect[3].y = h2+3*c;
++  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
++
++  rect[0].x = w2+5*c;               rect[0].y = h2-1*c;
++  rect[1].x = w2+7*c;               rect[1].y = h2-1*c;
++  rect[2].x = w2+7*c;               rect[2].y = h2+0*c;
++  rect[3].x = w2+5*c;               rect[3].y = h2+0*c;
++  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+   /*
+-   * End 'M'.
++   * End 'G'.
+    */
+ 
+   /*
+-   * Begin '!'.
++   * Start 'O'.
+    */
+ 
+-  rect[0].x = w2-7*c;               rect[0].y = h2-5*c;
+-  rect[1].x = w2-5*c;               rect[1].y = h2-5*c;
+-  rect[2].x = w2-5*c;               rect[2].y = h2+2*c;
+-  rect[3].x = w2-7*c;               rect[3].y = h2+2*c;
++  rect[0].x = w2+8*c;               rect[0].y = h2-5*c;
++  rect[1].x = w2+12*c;              rect[1].y = h2-5*c;
++  rect[2].x = w2+12*c;              rect[2].y = h2-4*c;
++  rect[3].x = w2+8*c;               rect[3].y = h2-4*c;
++  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+ 
++  rect[0].x = w2+8*c;               rect[0].y = h2+3*c;
++  rect[1].x = w2+12*c;              rect[1].y = h2+3*c;
++  rect[2].x = w2+12*c;              rect[2].y = h2+2*c;
++  rect[3].x = w2+8*c;               rect[3].y = h2+2*c;
+   XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+ 
+-  rect[0].x = w2-7*c;               rect[0].y = h2+3*c;
+-  rect[1].x = w2-5*c;               rect[1].y = h2+3*c;
+-  rect[2].x = w2-5*c;               rect[2].y = h2+5*c;
+-  rect[3].x = w2-7*c;               rect[3].y = h2+5*c;
++  rect[0].x = w2+8*c;               rect[0].y = h2-5*c;
++  rect[1].x = w2+9*c;               rect[1].y = h2-5*c;
++  rect[2].x = w2+9*c;               rect[2].y = h2+3*c;
++  rect[3].x = w2+8*c;               rect[3].y = h2+3*c;
++  XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+ 
++  rect[0].x = w2+11*c;               rect[0].y = h2-5*c;
++  rect[1].x = w2+12*c;               rect[1].y = h2-5*c;
++  rect[2].x = w2+12*c;               rect[2].y = h2+3*c;
++  rect[3].x = w2+11*c;               rect[3].y = h2+3*c;
+   XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin);
+ 
+   /*
+-   * End 'M'.
++   * End 'O'.
+    */
+ 
++
+   XSetWindowBackgroundPixmap(nxagentDisplay, win, nxagentPixmapLogo);
+ 
+   #ifdef NXAGENT_LOGO_DEBUG
+--- a/nx-X11/programs/Xserver/hw/nxagent/Splash.h
++++ b/nx-X11/programs/Xserver/hw/nxagent/Splash.h
+@@ -33,6 +33,7 @@
+ extern int nxagentLogoWhite;
+ extern int nxagentLogoRed;
+ extern int nxagentLogoBlack;
++extern int nxagentLogoGray;
+ 
+ extern Window nxagentSplashWindow;
+ 
+--- a/nx-X11/programs/Xserver/hw/nxagent/Display.c
++++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c
+@@ -1408,6 +1408,7 @@
+     nxagentLogoBlack = 0x000000;
+     nxagentLogoRed   = 0xff0000;
+     nxagentLogoWhite = 0xffffff;
++    nxagentLogoGray  = 0x222222;
+   }
+   else
+   {
+@@ -1418,6 +1419,7 @@
+     nxagentLogoRed   = nxagentLogoColor(0xff0000);
+     nxagentLogoBlack = nxagentLogoColor(0x000000);
+     nxagentLogoWhite = 0xffffff;
++    nxagentLogoGray  = nxagentLogoColor(0x222222);
+   }
+ 
+   #ifdef WATCH
+@@ -2678,6 +2680,7 @@
+     nxagentLogoBlack = 0x000000;
+     nxagentLogoRed   = 0xff0000;
+     nxagentLogoWhite = 0xffffff;
++    nxagentLogoGray  = 0x222222;
+   }
+   else
+   {
+@@ -2688,6 +2691,7 @@
+     nxagentLogoRed   = nxagentLogoColor(0xff0000);
+     nxagentLogoBlack = nxagentLogoColor(0x000000);
+     nxagentLogoWhite = 0xffffff;
++    nxagentLogoGray  = nxagentLogoColor(0x222222);
+   }
+ 
+   useXpmIcon = nxagentMakeIcon(nxagentDisplay, &nxagentIconPixmap, &nxagentIconShape);
diff --git a/debian/patches/series b/debian/patches/series
index a02a19b..26d3ee8 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -20,6 +20,7 @@
 020_add-nxagent-wrapper.patch
 021_add-nxauth-wrapper.patch
 022_add-nxproxy-wrapper.patch
+023_add-x2goagent-wrapper.patch
 101_nxagent_set-rgb-path.patch
 102_xserver-xext_set-securitypolicy-path.patch
 103_nxagent_set-X0-config-path.patch
@@ -29,4 +30,9 @@
 108_nxagent_wine-close-delay.patch
 109_nxagent_locale-utf8-compound-text.patch
 110_nxagent_createpixmap-bounds-check.patch
-200_nxagent_unbrand-agent.patch
+200_nxagent_check-binary-x2go-flavour.patch
+201_nxagent_set-x2go-icon-if-x2goagent-flavour.patch
+209_x2goagent-add-man-page.patch
+300_nxagent_set-wm-class.patch
+999_nxagent_unbrand-nxagent-brand-x2goagent.patch
+
diff --git a/debian/x2goagent.dirs b/debian/x2goagent.dirs
new file mode 100644
index 0000000..042e97d
--- /dev/null
+++ b/debian/x2goagent.dirs
@@ -0,0 +1,3 @@
+usr/bin
+usr/lib/nx
+usr/share/x2go
\ No newline at end of file
diff --git a/debian/x2goagent.install b/debian/x2goagent.install
new file mode 100644
index 0000000..8fa8af8
--- /dev/null
+++ b/debian/x2goagent.install
@@ -0,0 +1,3 @@
+bin/x2goagent                                  usr/bin
+debian/rgb                                     usr/share/x2go
+nx-X11/programs/Xserver/hw/nxagent/x2go.xpm    usr/share/pixmaps
\ No newline at end of file
diff --git a/debian/x2goagent.links b/debian/x2goagent.links
new file mode 100644
index 0000000..48b2ea5
--- /dev/null
+++ b/debian/x2goagent.links
@@ -0,0 +1 @@
+usr/lib/nx/nxagent usr/lib/x2go/x2goagent
diff --git a/debian/x2goagent.manpages b/debian/x2goagent.manpages
new file mode 100644
index 0000000..2a8850e
--- /dev/null
+++ b/debian/x2goagent.manpages
@@ -0,0 +1 @@
+nx-X11/programs/Xserver/hw/nxagent/man/x2goagent.1


hooks/post-receive
-- 
nx-libs.git (NX libraries (redistributed))

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "nx-libs.git" (NX libraries (redistributed)).




More information about the x2go-commits mailing list